Commit Graph

161 Commits

Author SHA1 Message Date
XCynthia
337885be8b
fix(pgsql): (issue #255) select from support view name (#257)
Co-authored-by: zhaoge <>
2024-02-05 16:24:14 +08:00
Hayden
1038a3a828
fix: trino validation (#248)
* fix: #246 program does not match standaloneClause

* test: patch unit tests
2024-01-16 11:14:03 +08:00
霜序
4d19f05890 fix: rename createLexerFormCharStream to createLexerFromCharStream (#243) 2024-01-04 11:47:19 +08:00
Hayden
9c52542ec7
Feat/range boundary (#241)
* feat: unify the index, line and column in all APIs

* docs: describe index, line and column
2023-12-22 19:12:29 +08:00
hayden
d4c97ef833 feat: export visitor and listener as type 2023-12-19 20:03:15 +08:00
Hayden
8f72a5af60
Fix/export abstract visitor (#237)
* fix: #236 export AbstractParseTreeVisitor

* build: set isolatedModules true

* feat: import parser about from filters
2023-12-19 19:22:27 +08:00
Hayden
3c7c59fb70
feat: optimize suggestion (#231)
* feat: optimize the strategy of finding the right range

* test: apply commentOtherLine util to all suggestion tests

* test: decomment suggestion test cases

* test: add suggestion test cases in multiple statements

* chore: improve comments

* test: update log info in test
2023-12-13 11:33:47 +08:00
Hayden
14a5214e82
support format g4 (#232)
* chore: install antlr-format-cli to format g4 files

* style: format all g4 files

* chore: apply antlr-format to lint-staged
2023-12-12 20:05:21 +08:00
hayden
17eba1f2aa feat: add readonly modifier 2023-12-12 20:04:18 +08:00
hayden
eb5b0a5550 refactor: move findCaretTokenIndex file to parser/common/utils 2023-12-12 20:04:18 +08:00
hayden
96b0376510 fix: correct import path 2023-12-12 20:04:18 +08:00
Hayden
ee8b468778
feat: add ErrorStrategy(#230)
* refactor: rename errorHandler to errorListener

* feat: add ErrorStrategy to mark context exceptions

* test: errorStrategy unit tests
2023-12-11 17:34:49 +08:00
Hayden
23f5aac113
Fix/split listener (#228)
* feat: improve FlinkSqlSplitListener

* feat: improve ImpalaSqlSplitListener

* feat: improve MysqlSplitListener

* fix: correct PgSqlSplitListener

* feat: improve TrinoSqlSplitListener

* test: add split listener unit test

* chore: ignore iml file

* feat: add pgsql missing rules

* test: fix pgsql unit tests
2023-12-08 18:33:16 +08:00
霜序
8c594cf0f2
fix(impala): update impala nonReserved and keywords use as functionName (#229) 2023-12-07 13:52:09 +08:00
霜序
484c881583
fix: add missing expression predicate to impala parser(#225)
* fix(impala): add select supprt is true/false/unknown and support more SEMICOLON

* fix(impala): not use emptyStatement replace SEMICOLON

* test(impala): add select unit test sql and test splitSQLByStatement
2023-11-30 19:56:07 +08:00
Hayden
340ccae7d7
feat: deprecate legacy util (#223)
* feat: deprecate legacy util

* test: legacy utils unit test
2023-11-29 14:58:24 +08:00
hayden
329f161d2d feat: export impala listener and visitor 2023-11-29 10:48:10 +08:00
hayden
a98f7f938a feat: recomplie plsql parser 2023-11-29 10:48:10 +08:00
霜序
4be3640219
fix: add partitioned by sql unit test and compile impala (#221) 2023-11-29 10:02:16 +08:00
Hayden
4fbb85dfba
chore: clean comment (#220)
* build: add clean comment script

* chore: clean comment to hide sensitive information
2023-11-28 21:28:20 +08:00
Hayden
31a811d1bb
Feat column codeCompletion (#218)
* feat: flink support column suggestion

* feat: flink column suggestion unit test

* feat: hive support column suggestion

* feat: hive column suggestion unit test

* feat: trinosql support column suggestion

* feat: trino column suggest unit test

* feat: sparksql collect column suggesstion

* feat: spark column suggestion unit test

* feat: rebuild flinksql lib
2023-11-28 21:18:44 +08:00
琉易
3dadc0c4b5
feat: mysql auto complete (#219)
* refactor: mysql auto complete

* test: mysql auto complete

---------

Co-authored-by: liuyi <liuyi@dtstack.com>
2023-11-28 21:17:18 +08:00
霜序
e203f1a48a
feat: support impala (#184)
* feat(impala): add impala sqlLexer

* feat(impala): add impala grammar

* feat(impala): add alter table sql

* feat(impala): update alter table sql

* feat(impala): add alter db sql

* feat(impala): add alter view sql

* feat(impala): add compute stats/comment statement and update partition_desc for alter table

* feat(impala): add drop statement sql

* feat(impala): add revoke and grant sql

* feat(impala): add create db/function/role/view sql

* feat(impala): add describe/explain/invalidata_metadata/load_data sql

* feat(impala): add refresh/set/shutdown sql

* feat(impala): add truncate_table/use/values sql

* fix(impala): update shutdown and invaliddate_metadata

* feat(impala): add show/update/upsert sql

* feat(impala): add create/insert sql

* feat(impala): add select and delete sql

* feat(impala): add impala tokens and fix todo

* feat(impala): update impalaparser and some test unit

* feat(impala): add syntax suggestion

* feat(impala): add syntax suggestion

* feat(impala): update test unit

* feat(impala): remove reference

* fix(impala): add statement for sqlname and collect tableName

* fix(impala): fix syntax suggestion unit test

* fix(impala): update syntax suggestion and collect column

* feat(impala): add collect column create
2023-11-28 21:11:07 +08:00
XCynthia
db05cb3e4f
feat: pgsql collect column name (#216)
* feat(pgsql: collect column name): pgsql: collect column name

* feat(pgsql): repair column name's unit test and sql

* feat(pgsql): pgsql: collect expression's column

* feat(update column's collect of some expression): pgsql: update column's collect of some expression

---------

Co-authored-by: zhaoge <>
2023-11-28 10:07:29 +08:00
琉易
428d851913
feat: #190 improve mysql grammer (#196)
* refactor: generic rename to mysql

* refactor: g4 with mysql syntax

* test: mysql syntax

* refactor: remove useless keywords

* refactor: remove nonReserved keywords

* refactor: lint specificFunction

---------

Co-authored-by: liuyi <liuyi@dtstack.com>
2023-11-27 15:25:40 +08:00
琉易
6bbcb3c8d3
fix: #213 flinksql expression syntax (#215)
* fix: #213 use uid to replace SLASH_TEXT in dtFilePath rule

* test: #213 flinksql syntax expression

---------

Co-authored-by: liuyi <liuyi@dtstack.com>
2023-11-23 20:59:21 +08:00
hayden
00b66ccf44 feat: add column to syntaxContextType 2023-11-20 19:45:24 +08:00
zhaoge
a5757a30b6 feat: pgsql: update routine's name 2023-11-20 09:41:12 +08:00
zhaoge
adeb26b7df feat: pgsql: optimize drop rule's content 2023-11-20 09:41:12 +08:00
zhaoge
4736a65e0c feat(pgsql: upgrade rules' name): pgsql: upgrade rules' name 2023-11-20 09:41:12 +08:00
XCynthia
cbb1279f9e
feat: support pgsql code completion (#205)
* feat: pgsql: complete sql, upgrade syntax file and complete autoImprove

* feat: pgsql: complete unit test

* feat: pgsql: update unit test for autocomplete

* feat(pgsql: update split's context type ): pgsql: update split's context type

* feat(pgsql: update schema, table, procedure, tablespace, function, view,database's rule name): pgsql

* feat: pgsql: update usualName's rule realize

* feat: pgsql:update funcName's using

---------

Co-authored-by: zhaoge <>
2023-11-15 15:34:42 +08:00
XCynthia
2e6d18e7dc
feat: improve pgsql grammar and add unit tests(#201)
* feat(pgsql: upgrade keywords and refresh them to parser file): pgsql

* feat(pgsql: check create table's syntax): pgsql

* feat(pgsql: check and update drop syntax): pgsql: check and update drop syntax

* feat: pgsql: check create's sql syntax and update g4 file

* feat: pgsql:complete other's sql and syntax except select, insert, drop

* feat: pgsql: update create, delete, insert, select, update and others' syntax

* test: pgsql: update alter's sql

* feat: pgsql: update syntax g4 file

* feat: pgsql: upgrade keywords to without '_P' in lexer and parser file

* docs: pgsql: update copyright and Reference of parser and lexer

---------

Co-authored-by: zhaoge <>
2023-11-09 11:53:40 +08:00
liuyi
56c410ebb1 fix: #197 keyword rename like value more 2023-11-02 15:07:01 +08:00
Hayden
21dcb3fdce
Improve/flink keywords (#195)
* refactor: improve flinksql keywords rule

* test: correct flink sql unit test
2023-10-30 17:57:27 +08:00
Hayden
887de81521
refactor: replace string pattern with lexer rule (#194) 2023-10-26 15:35:52 +08:00
hayden
9a93be64af fix: correct import path of CaretPosition 2023-10-24 17:51:36 +08:00
Hayden
91b7fd24c0
Feat/trino sql (#188)
* refactor: prefix trino lexer rule name with KW_

* test: add commentOtherLine function

* feat: optimize trino antlr grammar to adapt to c3

* feat: trinosqlParser supports codeCompletion and spliting

* test: trinoSql codeCompletion unit tests
2023-10-24 14:37:27 +08:00
hayden
917cb988f2 feat: export trino sql 2023-10-20 17:48:29 +08:00
琉易
0d9d3d65f3
test: accurate description (#183)
* test: accurate description

* refactor: optimize the use of tableName and viewName for

---------

Co-authored-by: liuyi <liuyi@dtstack.com>
2023-10-18 10:53:43 +08:00
Hayden
f9dbd9fc23
Refactor/basic parser (#182)
* feat: replace errorCollector with ParserErrorListener to collect lexer error

* refactor: remove useless method in basicParser

* feat: correct splitSQLByStatement method

* feat: rename parse to parseWithCache and add new parse method

* refactor: rename parserTree to parseTree

* test: rename parserTree to parseTree

* refactor: rename parserError to parseError

* feat: export ErrorHandler type

* feat: use errorhandler form params

* test: basic parser unit tests

* style: lint via prettier
2023-10-16 17:59:28 +08:00
Hayden
7de192d486
chroe: devops (#180)
* ci: add dependencies about lint tool

* ci: replace eslint with prettier

* ci: add husky, cz and commitlint

* style: lint fix via prettier

* ci: add prettier and check-types to github workflow

'
2023-10-13 11:16:36 +08:00
琉易
4d1dfa676f
feat: support spark sql auto complete (#179)
* refactor: spark sql g4

* feat: support spark sql suggestion

* test: spark sql suggestion unit test

* test: hive spell check

* feat: spark sql keyword has multiple values

* test: KW_NOT KW_RLIKE split into two value

---------

Co-authored-by: liuyi <liuyi@dtstack.com>
2023-10-12 17:08:21 +08:00
Hayden
53ead45ff5
Optimize/auto complete (#178)
* feat: optimize hive function name auto complete

* feat: optimize flink rules that c3 prefer to

* feat: optimize flink autoComplete

* test: flink auto complete unit tests
2023-10-11 17:15:06 +08:00
Hayden
c4030929b2
Feat/auto complete (#175)
* feat: update hive grammar to adapt to c3

* feat: support viewName, dbName, fnName autoComplete to hive

* test: add hive suggestion unit test

* test: optimze flink suggestion unit tests
2023-10-10 16:37:49 +08:00
Frank
d1c2920f80
Feat/spark sql auxiliary syntax (#165)
* feat: supplement SparkSQL add syntax unit test

* chore: recompile spark listener & visitor

---------

Co-authored-by: dilu <dilu@dtstack.com>
2023-10-09 09:49:22 +08:00
Frank
05da14d007
Feat/spark g4 (#168)
* feat: spark g4 test

* fix: fixed build lint

---------

Co-authored-by: liuyi <liuyi@dtstack.com>
Co-authored-by: dilu <dilu@dtstack.com>
2023-10-08 14:23:06 +08:00
XCynthia
0a9a7d15d3
test: hive complete data types' check and unit tests (#160)
* feat: add Authorization SQL and update syntax file

* test: hive complete data types' check and unit tests

* feat: hive add syntax complete automaticlly

* feat: update hive's syntax complete

feat:update hive's syntax complete

---------

Co-authored-by: zhaoge <>
2023-10-08 14:14:03 +08:00
hayden
b8c47d0ac9 feat: declare copyright ownership 2023-09-27 17:54:46 +08:00
琉易
623a004cd1
refactor: spark sql grammar (#163)
* feat: import apache spark g4

* feat: optimize parser g4

* feat: replace KW_

* fix: remove useless rules

---------

Co-authored-by: liuyi <liuyi@dtstack.com>
2023-09-27 09:54:13 +08:00
XCynthia
2ec03f1770
feat: hive Authorization syntax and unit tests (#159)
Co-authored-by: zhaoge <>
2023-09-12 20:10:43 +08:00