Commit Graph

394 Commits

Author SHA1 Message Date
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
hayden
081ff7f067 docs: update feature_request issue template 2024-02-06 14:32:23 +08:00
hayden
d11a39556b docs: add issue templates 2024-02-06 14:28:35 +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
30b7f27486 chore(release): 4.0.0-beta.4.11 2024-01-04 11:48:51 +08:00
霜序
4d19f05890 fix: rename createLexerFormCharStream to createLexerFromCharStream (#243) 2024-01-04 11:47:19 +08:00
hayden
1c288b737a docs: replace index png 2023-12-25 16:10:34 +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
f6bc7594e1 docs: update visitor demo 2023-12-20 11:12:18 +08:00
hayden
24dee75dfe chore(release): 4.0.0-beta.4.10 2023-12-19 20:55:17 +08:00
hayden
447ab7f331 docs: update visitor demo and listener demo 2023-12-19 20:51:40 +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
55a4832047 chore(release): 4.0.0-beta.4.9 2023-12-13 11:45:39 +08:00
hayden
2ce915cf5d build: remove baseUrl conf because it is danger 2023-12-13 11:38:30 +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
fd50c09a86
docs: update README (#234) 2023-12-12 20:30:44 +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
61a00d7bb8 build: remove sourceMap 2023-12-08 20:29:34 +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
f93ffb93bf chore: noEmit when check types 2023-11-29 15:07:44 +08:00
hayden
7673443aa6 chore(release): 4.0.0-beta.4.8 2023-11-29 15:00:42 +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
7c75164449
docs: update docs (#224)
* docs: change authours field

* docs: upgrade docs
2023-11-29 14:56:52 +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
hayden
84b2d776dc chore(release): 4.0.0-beta.4.7 2023-11-24 16:58:42 +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
hayden
7b7cc1b49c chore(release): 4.0.0-beta.4.6 2023-11-20 09:58:23 +08:00
hayden
9f668ac420 build: add prepublishOnly hook 2023-11-20 09:58:11 +08:00