琉易
0e752fb9a8
fix : #298 support hive set configuration properties ( #299 )
...
* fix : #298 support hive set configuration properties
* feat: simplify the hive syntax file
2024-04-21 12:13:06 +08:00
琉易
31b57a494b
fix : #295 #297 optimize impala data types suggestion and create table ( #296 )
...
* fix : #295 impala data types suggestion
* fix : #297 impala create table with STRUCT
2024-04-21 12:10:36 +08:00
琉易
37974ca0cb
fix : #290 hive lifecycle ( #293 )
2024-04-19 17:19:36 +08:00
琉易
da77180a50
feat: #290 support dtstack SparkSQL/HiveSQL lifecycle ( #292 )
2024-04-19 09:32:10 +08:00
Hayden
c6615aecac
build: open ts strict check ( #279 )
...
* feat: no check lib dir
* feat: open strict check to src dir
* test: update test tsconfig.json
* feat: remove any type
* feat: do not export AbstractParseTreeVisitor
* feat: export StmtContextType as enum
* build: improve antlr4 script
2024-03-27 19:04:16 +08:00
Hayden
bb0fad1dbe
refactor: standard naming ( #278 )
...
* refactor: rename flinksql to flink
* refactor: rename pgsql to postgresql
* refactor: rename trinosql to trino
* refactor: replace all default exports with named export
* refactor: rename basicParser to basicSQL
* refactor: rename basic-parser-types to types
* refactor: replace arrow func with plain func
2024-03-27 10:33:25 +08:00
Hayden
a99721162b
feat: collect entity ( #265 )
...
* feat: add text and word utils
* feat: add entity collector class
* refactor: rename SyntaxContextType to EntityContextType
* refactor: improve EntityCollector
* feat: improve mysql parser grammar
* feat: add mysql entity collector
* test: mysql entity collector tests
* feat: remove useless method
* feat: improve spark grammar file
* feat: add spark entity collector
* test: spark entity collector unit tests
* feat: remove useless code
* feat: add queryStatement label
* feat: add crateDatabaseStmt
* feat: add trino entity collector
* feat: rename trinosql to trino
* test: trino collect entity unit tests
* test: fix spark test
* feat(impala): support impale entity collector (#256 )
* Feat/collect entity hive (#263 )
* feat(hive): support hive collect entity
* feat(hive): update tableAllColumns
* feat: replace antlr4ts with antlr4ng
* feat(pgsql): pgsql collect entity (#268 )
* feat(pgsql): pgsql collect entity
* feat(pgsql): optimize some name
---------
Co-authored-by: zhaoge <>
* feat: get word text by token.text
* feat: supprt collect db/function and add splitListener (#270 )
* feat: supprt collect db/function and add splitListner
* feat: remove SplitListener interface in baseParser to use SplitListener in root
* fix(mysql): fix show create xxx not celloct as createXXXEntity type
* test: fix pgsql unit tests
* Feat/error recover predicate (#274 )
* feat: optimize pgsql grammar
* feat: add sql parser base
* feat: apply SQLParserBase
* feat: add geAllEntities method
* test: test collect table when missing column
* feat: compose collect and suggestion (#276 )
* feat: mark stmt which contain caret
* test: correct name of getAllEntities
* test: remove misscolumn unit tests
* test: add suggestionWithEntity tests
* feat: flink collect entity (#277 )
* feat: improve flink sql parser
* feat: support flink entity collector
* test: flink entity collect unit test
* feat: move combine entities to parent class
---------
Co-authored-by: 霜序 <976060700@qq.com>
Co-authored-by: XCynthia <942884029@qq.com>
2024-03-26 14:28:27 +08:00
Hayden
3f62ad0d32
feat: use SLL mode ( #269 )
...
* feat: use SLL(*) PredictionMode for better performance
* feat: optimize mysql grammar to fit SLL mode
* feat: optimize postgre grammmar to fit SLL mode
* feat: optimize spark grammar to fit SLL mode
* test: correct unit tests
* feat: optimize pgsql grammar
2024-03-19 11:27:23 +08:00
JackWang032
a05f099aa1
feat: add toMatchUnorderedArrary matcher and apply it ( #271 )
...
* feat: add toMatchUnorderedArrary matcher replace tokenSuggestion test
* fix: revert benchmark and replace matcher of trinosql
---------
Co-authored-by: jialan <jialan@dtstack.com>
2024-03-01 16:48:53 +08:00
Hayden
195878da9b
feat: migrate to antlr4ng ( #267 )
...
* feat: replace antlr4ts with antlr4ng
* feat: switch caseInsensitive option on
* feat: recompile all g4 file
* feat: update parser to fit antlr4ng
* test: update test to fit antlr4ng
2024-02-26 20:25:09 +08:00
JackWang032
5ce89cb421
feat(spark): support materialized view for spark sql ( #262 )
...
* feat(spark): support materialized view for spark sql
* fix(spark): code review update
* fix(spark): update spark materilized view and zorder grammar
* test(spark): add syntaxSuggestion test of materialized view
---------
Co-authored-by: jialan <jialan@dtstack.com>
2024-02-26 17:25:19 +08:00
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
ecbbee32c7
test: remove barrier files to improve unit testing performance ( #249 )
...
* test: remove barrier files to improve unit testing performance
* chore: change check-types command
2024-01-19 21:10:00 +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
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
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
霜序
4be3640219
fix: add partitioned by sql unit test and compile impala ( #221 )
2023-11-29 10:02:16 +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
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
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
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
琉易
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
d0ad381833
test: spark sql query syntax unit test ( #173 )
...
* test: add spark query unit test and check grammar
* test: add select explain、lateralSubQuery、transform unit test
* chore: fileName exchange
---------
Co-authored-by: dilu <dilu@dtstack.com>
2023-10-10 16:25:43 +08:00
琉易
7bbaba6398
test: spark DML test ( #169 )
...
Co-authored-by: liuyi <liuyi@dtstack.com>
2023-10-09 09:51:16 +08:00
琉易
d13a92914d
feat: spark sql DDL test ( #170 )
...
Co-authored-by: liuyi <liuyi@dtstack.com>
2023-10-09 09:49:48 +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
XCynthia
2ec03f1770
feat: hive Authorization syntax and unit tests ( #159 )
...
Co-authored-by: zhaoge <>
2023-09-12 20:10:43 +08:00
XCynthia
6a99d63d71
test: hive select/describe/load/alterTable syntax unit test ( #158 )
...
Co-authored-by: zhaoge <>
2023-09-11 18:52:25 +08:00
XCynthia
97ab76af76
Feat check hive create syntax ( #157 )
...
* check and update abort and alter sql
* delete superfluous space
* update grammar lib after change alter parser
* update alter parser to be compatible
* check create sql
---------
Co-authored-by: zhaoge <>
2023-09-06 16:42:04 +08:00
Hayden
885b85e842
Test/hive dml ( #155 )
...
* feat: add showIndex parser rule
* test: uncomment show index test cases
* test: add unit tests about DML syntax to HiveSQL
* test: add unit tests about export and import syntax to HiveSQL
* refactor: recompile hive grammar
* test: correct description of HiveSQL unit tests
2023-09-06 15:15:04 +08:00