dt-sql-parser 4.0.0-ng.2 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/README.md +119 -112
  2. package/dist/index.d.ts +7 -9
  3. package/dist/index.js +4 -7
  4. package/dist/lib/SQLParserBase.d.ts +8 -0
  5. package/dist/lib/SQLParserBase.js +14 -0
  6. package/dist/lib/{flinksql → flink}/FlinkSqlLexer.d.ts +2 -2
  7. package/dist/lib/{flinksql → flink}/FlinkSqlLexer.js +2 -1
  8. package/dist/lib/{flinksql → flink}/FlinkSqlParser.d.ts +5 -11
  9. package/dist/lib/{flinksql → flink}/FlinkSqlParser.js +2065 -2054
  10. package/dist/lib/{flinksql → flink}/FlinkSqlParserListener.d.ts +0 -13
  11. package/dist/lib/{flinksql → flink}/FlinkSqlParserListener.js +1 -1
  12. package/dist/lib/{flinksql → flink}/FlinkSqlParserVisitor.d.ts +0 -8
  13. package/dist/lib/{flinksql → flink}/FlinkSqlParserVisitor.js +2 -1
  14. package/dist/lib/hive/HiveSqlLexer.d.ts +258 -257
  15. package/dist/lib/hive/HiveSqlLexer.js +1794 -1786
  16. package/dist/lib/hive/HiveSqlParser.d.ts +1266 -3176
  17. package/dist/lib/hive/HiveSqlParser.js +23046 -33454
  18. package/dist/lib/hive/HiveSqlParserListener.d.ts +141 -2036
  19. package/dist/lib/hive/HiveSqlParserVisitor.d.ts +151 -1358
  20. package/dist/lib/hive/HiveSqlParserVisitor.js +1 -0
  21. package/dist/lib/impala/ImpalaSqlLexer.d.ts +170 -154
  22. package/dist/lib/impala/ImpalaSqlLexer.js +1179 -1099
  23. package/dist/lib/impala/ImpalaSqlParser.d.ts +282 -240
  24. package/dist/lib/impala/ImpalaSqlParser.js +3881 -3744
  25. package/dist/lib/impala/ImpalaSqlParserListener.d.ts +22 -11
  26. package/dist/lib/impala/ImpalaSqlParserVisitor.d.ts +14 -7
  27. package/dist/lib/impala/ImpalaSqlParserVisitor.js +1 -0
  28. package/dist/lib/index.d.ts +6 -8
  29. package/dist/lib/index.js +6 -8
  30. package/dist/lib/mysql/MySqlLexer.d.ts +2 -2
  31. package/dist/lib/mysql/MySqlLexer.js +1 -0
  32. package/dist/lib/mysql/MySqlParser.d.ts +347 -418
  33. package/dist/lib/mysql/MySqlParser.js +10484 -11099
  34. package/dist/lib/mysql/MySqlParserListener.d.ts +41 -126
  35. package/dist/lib/mysql/MySqlParserVisitor.d.ts +23 -76
  36. package/dist/lib/mysql/MySqlParserVisitor.js +1 -0
  37. package/dist/lib/{pgsql/PostgreSQLLexer.d.ts → postgresql/PostgreSqlLexer.d.ts} +3 -3
  38. package/dist/lib/{pgsql/PostgreSQLLexer.js → postgresql/PostgreSqlLexer.js} +618 -617
  39. package/dist/lib/{pgsql/PostgreSQLParser.d.ts → postgresql/PostgreSqlParser.d.ts} +3598 -3484
  40. package/dist/lib/{pgsql/PostgreSQLParser.js → postgresql/PostgreSqlParser.js} +41502 -42831
  41. package/dist/lib/{pgsql/PostgreSQLParserListener.d.ts → postgresql/PostgreSqlParserListener.d.ts} +2797 -2730
  42. package/dist/lib/{pgsql/PostgreSQLParserListener.js → postgresql/PostgreSqlParserListener.js} +3 -3
  43. package/dist/lib/{pgsql/PostgreSQLParserVisitor.d.ts → postgresql/PostgreSqlParserVisitor.d.ts} +1845 -1810
  44. package/dist/lib/{pgsql/PostgreSQLParserVisitor.js → postgresql/PostgreSqlParserVisitor.js} +4 -3
  45. package/dist/lib/spark/SparkSqlLexer.d.ts +305 -298
  46. package/dist/lib/spark/SparkSqlLexer.js +1777 -1735
  47. package/dist/lib/spark/SparkSqlParser.d.ts +1764 -669
  48. package/dist/lib/spark/SparkSqlParser.js +15460 -10769
  49. package/dist/lib/spark/SparkSqlParserListener.d.ts +1285 -35
  50. package/dist/lib/spark/SparkSqlParserVisitor.d.ts +790 -21
  51. package/dist/lib/spark/SparkSqlParserVisitor.js +1 -0
  52. package/dist/lib/{trinosql → trino}/TrinoSqlLexer.d.ts +2 -2
  53. package/dist/lib/{trinosql → trino}/TrinoSqlLexer.js +2 -1
  54. package/dist/lib/{trinosql → trino}/TrinoSqlListener.d.ts +7 -5
  55. package/dist/lib/{trinosql → trino}/TrinoSqlListener.js +1 -1
  56. package/dist/lib/{trinosql → trino}/TrinoSqlParser.d.ts +11 -5
  57. package/dist/lib/{trinosql → trino}/TrinoSqlParser.js +360 -320
  58. package/dist/lib/{trinosql → trino}/TrinoSqlVisitor.d.ts +4 -3
  59. package/dist/lib/{trinosql → trino}/TrinoSqlVisitor.js +2 -1
  60. package/dist/parser/common/{basicParser.d.ts → basicSQL.d.ts} +22 -19
  61. package/dist/parser/common/{basicParser.js → basicSQL.js} +52 -34
  62. package/dist/parser/common/entityCollector.d.ts +78 -0
  63. package/dist/parser/common/entityCollector.js +191 -0
  64. package/dist/parser/common/{utils/findCaretTokenIndex.d.ts → findCaretTokenIndex.d.ts} +2 -2
  65. package/dist/parser/common/{utils/findCaretTokenIndex.js → findCaretTokenIndex.js} +3 -2
  66. package/dist/parser/common/parseErrorListener.d.ts +6 -6
  67. package/dist/parser/common/parseErrorListener.js +1 -1
  68. package/dist/parser/common/simpleStack.d.ts +10 -0
  69. package/dist/parser/common/simpleStack.js +23 -0
  70. package/dist/parser/common/splitListener.d.ts +8 -0
  71. package/dist/parser/common/splitListener.js +12 -0
  72. package/dist/parser/common/textAndWord.d.ts +52 -0
  73. package/dist/parser/common/textAndWord.js +58 -0
  74. package/dist/parser/common/{basic-parser-types.d.ts → types.d.ts} +4 -31
  75. package/dist/parser/common/types.js +34 -0
  76. package/dist/parser/flink/flinkEntityCollector.d.ts +33 -0
  77. package/dist/parser/flink/flinkEntityCollector.js +84 -0
  78. package/dist/parser/flink/flinkSplitListener.d.ts +6 -0
  79. package/dist/parser/flink/flinkSplitListener.js +6 -0
  80. package/dist/parser/flink/index.d.ts +17 -0
  81. package/dist/parser/{flinksql.js → flink/index.js} +26 -37
  82. package/dist/parser/hive/hiveEntityCollector.d.ts +35 -0
  83. package/dist/parser/hive/hiveEntityCollector.js +90 -0
  84. package/dist/parser/hive/hiveSplitListener.d.ts +6 -0
  85. package/dist/parser/hive/hiveSplitListener.js +6 -0
  86. package/dist/parser/hive/index.d.ts +17 -0
  87. package/dist/parser/{hive.js → hive/index.js} +24 -34
  88. package/dist/parser/impala/impalaEntityCollector.d.ts +35 -0
  89. package/dist/parser/impala/impalaEntityCollector.js +90 -0
  90. package/dist/parser/impala/impalaSplitListener.d.ts +6 -0
  91. package/dist/parser/impala/impalaSplitListener.js +6 -0
  92. package/dist/parser/impala/index.d.ts +17 -0
  93. package/dist/parser/{impala.js → impala/index.js} +24 -34
  94. package/dist/parser/index.d.ts +7 -8
  95. package/dist/parser/index.js +7 -8
  96. package/dist/parser/mysql/index.d.ts +17 -0
  97. package/dist/parser/{mysql.js → mysql/index.js} +24 -34
  98. package/dist/parser/mysql/mysqlEntityCollector.d.ts +37 -0
  99. package/dist/parser/mysql/mysqlEntityCollector.js +96 -0
  100. package/dist/parser/mysql/mysqlSplitListener.d.ts +6 -0
  101. package/dist/parser/mysql/mysqlSplitListener.js +6 -0
  102. package/dist/parser/postgresql/index.d.ts +17 -0
  103. package/dist/parser/postgresql/index.js +130 -0
  104. package/dist/parser/postgresql/postgreEntityCollector.d.ts +37 -0
  105. package/dist/parser/postgresql/postgreEntityCollector.js +96 -0
  106. package/dist/parser/postgresql/postgreSplitListener.d.ts +6 -0
  107. package/dist/parser/postgresql/postgreSplitListener.js +6 -0
  108. package/dist/parser/spark/index.d.ts +17 -0
  109. package/dist/parser/{spark.js → spark/index.js} +29 -40
  110. package/dist/parser/spark/sparkEntityCollector.d.ts +37 -0
  111. package/dist/parser/spark/sparkEntityCollector.js +96 -0
  112. package/dist/parser/spark/sparkSplitListener.d.ts +6 -0
  113. package/dist/parser/spark/sparkSplitListener.js +6 -0
  114. package/dist/parser/trino/index.d.ts +17 -0
  115. package/dist/parser/{trinosql.js → trino/index.js} +25 -36
  116. package/dist/parser/trino/trinoEntityCollector.d.ts +30 -0
  117. package/dist/parser/trino/trinoEntityCollector.js +75 -0
  118. package/dist/parser/trino/trinoSplitListener.d.ts +6 -0
  119. package/dist/parser/trino/trinoSplitListener.js +6 -0
  120. package/package.json +1 -1
  121. package/dist/lib/plsql/PlSqlBaseLexer.d.ts +0 -5
  122. package/dist/lib/plsql/PlSqlBaseLexer.js +0 -7
  123. package/dist/lib/plsql/PlSqlBaseParser.d.ts +0 -10
  124. package/dist/lib/plsql/PlSqlBaseParser.js +0 -22
  125. package/dist/lib/plsql/PlSqlLexer.d.ts +0 -2381
  126. package/dist/lib/plsql/PlSqlLexer.js +0 -16440
  127. package/dist/lib/plsql/PlSqlParser.d.ts +0 -17080
  128. package/dist/lib/plsql/PlSqlParser.js +0 -184484
  129. package/dist/lib/plsql/PlSqlParserListener.d.ts +0 -8003
  130. package/dist/lib/plsql/PlSqlParserListener.js +0 -11
  131. package/dist/lib/plsql/PlSqlParserVisitor.d.ts +0 -5095
  132. package/dist/lib/plsql/PlSqlParserVisitor.js +0 -11
  133. package/dist/parser/common/basic-parser-types.js +0 -34
  134. package/dist/parser/flinksql.d.ts +0 -23
  135. package/dist/parser/hive.d.ts +0 -23
  136. package/dist/parser/impala.d.ts +0 -23
  137. package/dist/parser/mysql.d.ts +0 -23
  138. package/dist/parser/pgsql.d.ts +0 -23
  139. package/dist/parser/pgsql.js +0 -140
  140. package/dist/parser/plsql.d.ts +0 -13
  141. package/dist/parser/plsql.js +0 -25
  142. package/dist/parser/spark.d.ts +0 -23
  143. package/dist/parser/trinosql.d.ts +0 -23
  144. package/dist/utils/index.d.ts +0 -19
  145. package/dist/utils/index.js +0 -170
  146. package/dist/utils/token.d.ts +0 -59
  147. package/dist/utils/token.js +0 -48
@@ -0,0 +1,96 @@
1
+ import { EntityContextType } from '../common/types';
2
+ import { StmtContextType, EntityCollector } from '../common/entityCollector';
3
+ export class SparkEntityCollector extends EntityCollector {
4
+ /** ====== Entity Begin */
5
+ exitNamespaceName(ctx) {
6
+ this.pushEntity(ctx, EntityContextType.DATABASE);
7
+ }
8
+ exitNamespaceNameCreate(ctx) {
9
+ this.pushEntity(ctx, EntityContextType.DATABASE_CREATE);
10
+ }
11
+ exitTableName(ctx) {
12
+ this.pushEntity(ctx, EntityContextType.TABLE);
13
+ }
14
+ exitTableNameCreate(ctx) {
15
+ this.pushEntity(ctx, EntityContextType.TABLE_CREATE);
16
+ }
17
+ exitViewName(ctx) {
18
+ this.pushEntity(ctx, EntityContextType.VIEW);
19
+ }
20
+ exitViewNameCreate(ctx) {
21
+ this.pushEntity(ctx, EntityContextType.VIEW_CREATE);
22
+ }
23
+ exitFunctionNameCreate(ctx) {
24
+ this.pushEntity(ctx, EntityContextType.FUNCTION_CREATE);
25
+ }
26
+ exitColumnNameCreate(ctx) {
27
+ this.pushEntity(ctx, EntityContextType.COLUMN_CREATE);
28
+ }
29
+ /** ===== Statement begin */
30
+ enterSingleStatement(ctx) {
31
+ this.pushStmt(ctx, StmtContextType.COMMON_STMT);
32
+ }
33
+ exitSingleStatement(ctx) {
34
+ this.popStmt();
35
+ }
36
+ enterCreateTable(ctx) {
37
+ this.pushStmt(ctx, StmtContextType.CREATE_TABLE_STMT);
38
+ }
39
+ exitCreateTable(ctx) {
40
+ this.popStmt();
41
+ }
42
+ enterCreateTableLike(ctx) {
43
+ this.pushStmt(ctx, StmtContextType.CREATE_TABLE_STMT);
44
+ }
45
+ exitCreateTableLike(ctx) {
46
+ this.popStmt();
47
+ }
48
+ enterReplaceTable(ctx) {
49
+ this.pushStmt(ctx, StmtContextType.CREATE_TABLE_STMT);
50
+ }
51
+ exitReplaceTable(ctx) {
52
+ this.popStmt();
53
+ }
54
+ enterCreateView(ctx) {
55
+ this.pushStmt(ctx, StmtContextType.CREATE_VIEW_STMT);
56
+ }
57
+ exitCreateView(ctx) {
58
+ this.popStmt();
59
+ }
60
+ enterCreateTempViewUsing(ctx) {
61
+ this.pushStmt(ctx, StmtContextType.CREATE_VIEW_STMT);
62
+ }
63
+ exitCreateTempViewUsing(ctx) {
64
+ this.popStmt();
65
+ }
66
+ enterQueryStatement(ctx) {
67
+ this.pushStmt(ctx, StmtContextType.SELECT_STMT);
68
+ }
69
+ exitQueryStatement(ctx) {
70
+ this.popStmt();
71
+ }
72
+ enterInsertFromQuery(ctx) {
73
+ this.pushStmt(ctx, StmtContextType.INSERT_STMT);
74
+ }
75
+ exitInsertFromQuery(ctx) {
76
+ this.popStmt();
77
+ }
78
+ enterMultipleInsert(ctx) {
79
+ this.pushStmt(ctx, StmtContextType.INSERT_STMT);
80
+ }
81
+ exitMultipleInsert(ctx) {
82
+ this.popStmt();
83
+ }
84
+ enterCreateNamespace(ctx) {
85
+ this.pushStmt(ctx, StmtContextType.CREATE_DATABASE_STMT);
86
+ }
87
+ exitCreateNamespace(ctx) {
88
+ this.popStmt();
89
+ }
90
+ enterCreateFunction(ctx) {
91
+ this.pushStmt(ctx, StmtContextType.CREATE_FUNCTION_STMT);
92
+ }
93
+ exitCreateFunction(ctx) {
94
+ this.popStmt();
95
+ }
96
+ }
@@ -0,0 +1,6 @@
1
+ import { SingleStatementContext } from '../../lib/spark/SparkSqlParser';
2
+ import { SparkSqlParserListener } from '../../lib/spark/SparkSqlParserListener';
3
+ import { SplitListener } from '../common/splitListener';
4
+ export declare class SparkSqlSplitListener extends SplitListener<SingleStatementContext> implements SparkSqlParserListener {
5
+ exitSingleStatement(ctx: SingleStatementContext): void;
6
+ }
@@ -0,0 +1,6 @@
1
+ import { SplitListener } from '../common/splitListener';
2
+ export class SparkSqlSplitListener extends SplitListener {
3
+ exitSingleStatement(ctx) {
4
+ this._statementsContext.push(ctx);
5
+ }
6
+ }
@@ -0,0 +1,17 @@
1
+ import { CharStream, CommonTokenStream, Token } from 'antlr4ng';
2
+ import { CandidatesCollection } from 'antlr4-c3';
3
+ import { TrinoSqlLexer } from '../../lib/trino/TrinoSqlLexer';
4
+ import { TrinoSqlParser, ProgramContext } from '../../lib/trino/TrinoSqlParser';
5
+ import { BasicSQL } from '../common/basicSQL';
6
+ import { Suggestions } from '../common/types';
7
+ import { TrinoSqlSplitListener } from './trinoSplitListener';
8
+ import { TrinoEntityCollector } from './trinoEntityCollector';
9
+ export { TrinoSqlSplitListener, TrinoEntityCollector };
10
+ export declare class TrinoSQL extends BasicSQL<TrinoSqlLexer, ProgramContext, TrinoSqlParser> {
11
+ protected createLexerFromCharStream(charStreams: CharStream): TrinoSqlLexer;
12
+ protected createParserFromTokenStream(tokenStream: CommonTokenStream): TrinoSqlParser;
13
+ protected get splitListener(): TrinoSqlSplitListener;
14
+ protected createEntityCollector(input: string, caretTokenIndex?: number): TrinoEntityCollector;
15
+ protected preferredRules: Set<number>;
16
+ protected processCandidates(candidates: CandidatesCollection, allTokens: Token[], caretTokenIndex: number, tokenIndexOffset: number): Suggestions<Token>;
17
+ }
@@ -1,8 +1,11 @@
1
- import { TrinoSqlLexer } from '../lib/trinosql/TrinoSqlLexer';
2
- import { TrinoSqlParser, } from '../lib/trinosql/TrinoSqlParser';
3
- import BasicParser from './common/basicParser';
4
- import { SyntaxContextType } from './common/basic-parser-types';
5
- export default class TrinoSQL extends BasicParser {
1
+ import { TrinoSqlLexer } from '../../lib/trino/TrinoSqlLexer';
2
+ import { TrinoSqlParser } from '../../lib/trino/TrinoSqlParser';
3
+ import { BasicSQL } from '../common/basicSQL';
4
+ import { EntityContextType } from '../common/types';
5
+ import { TrinoSqlSplitListener } from './trinoSplitListener';
6
+ import { TrinoEntityCollector } from './trinoEntityCollector';
7
+ export { TrinoSqlSplitListener, TrinoEntityCollector };
8
+ export class TrinoSQL extends BasicSQL {
6
9
  constructor() {
7
10
  super(...arguments);
8
11
  this.preferredRules = new Set([
@@ -20,16 +23,17 @@ export default class TrinoSQL extends BasicParser {
20
23
  ]);
21
24
  }
22
25
  createLexerFromCharStream(charStreams) {
23
- const lexer = new TrinoSqlLexer(charStreams);
24
- return lexer;
26
+ return new TrinoSqlLexer(charStreams);
25
27
  }
26
28
  createParserFromTokenStream(tokenStream) {
27
- const parser = new TrinoSqlParser(tokenStream);
28
- return parser;
29
+ return new TrinoSqlParser(tokenStream);
29
30
  }
30
31
  get splitListener() {
31
32
  return new TrinoSqlSplitListener();
32
33
  }
34
+ createEntityCollector(input, caretTokenIndex) {
35
+ return new TrinoEntityCollector(input, caretTokenIndex);
36
+ }
33
37
  processCandidates(candidates, allTokens, caretTokenIndex, tokenIndexOffset) {
34
38
  const originalSyntaxSuggestions = [];
35
39
  const keywords = [];
@@ -37,46 +41,46 @@ export default class TrinoSQL extends BasicParser {
37
41
  const [ruleType, candidateRule] = candidate;
38
42
  const startTokenIndex = candidateRule.startTokenIndex + tokenIndexOffset;
39
43
  const tokenRanges = allTokens.slice(startTokenIndex, caretTokenIndex + tokenIndexOffset + 1);
40
- let syntaxContextType;
44
+ let syntaxContextType = void 0;
41
45
  switch (ruleType) {
42
46
  case TrinoSqlParser.RULE_catalogName: {
43
- syntaxContextType = SyntaxContextType.CATALOG;
47
+ syntaxContextType = EntityContextType.CATALOG;
44
48
  break;
45
49
  }
46
50
  case TrinoSqlParser.RULE_schemaName: {
47
- syntaxContextType = SyntaxContextType.DATABASE;
51
+ syntaxContextType = EntityContextType.DATABASE;
48
52
  break;
49
53
  }
50
54
  case TrinoSqlParser.RULE_schemaNameCreate: {
51
- syntaxContextType = SyntaxContextType.DATABASE_CREATE;
55
+ syntaxContextType = EntityContextType.DATABASE_CREATE;
52
56
  break;
53
57
  }
54
58
  case TrinoSqlParser.RULE_tableName: {
55
- syntaxContextType = SyntaxContextType.TABLE;
59
+ syntaxContextType = EntityContextType.TABLE;
56
60
  break;
57
61
  }
58
62
  case TrinoSqlParser.RULE_tableNameCreate: {
59
- syntaxContextType = SyntaxContextType.TABLE_CREATE;
63
+ syntaxContextType = EntityContextType.TABLE_CREATE;
60
64
  break;
61
65
  }
62
66
  case TrinoSqlParser.RULE_viewName: {
63
- syntaxContextType = SyntaxContextType.VIEW;
67
+ syntaxContextType = EntityContextType.VIEW;
64
68
  break;
65
69
  }
66
70
  case TrinoSqlParser.RULE_viewNameCreate: {
67
- syntaxContextType = SyntaxContextType.VIEW_CREATE;
71
+ syntaxContextType = EntityContextType.VIEW_CREATE;
68
72
  break;
69
73
  }
70
74
  case TrinoSqlParser.RULE_functionName: {
71
- syntaxContextType = SyntaxContextType.FUNCTION;
75
+ syntaxContextType = EntityContextType.FUNCTION;
72
76
  break;
73
77
  }
74
78
  case TrinoSqlParser.RULE_columnNameCreate: {
75
- syntaxContextType = SyntaxContextType.COLUMN_CREATE;
79
+ syntaxContextType = EntityContextType.COLUMN_CREATE;
76
80
  break;
77
81
  }
78
82
  case TrinoSqlParser.RULE_columnName: {
79
- syntaxContextType = SyntaxContextType.COLUMN;
83
+ syntaxContextType = EntityContextType.COLUMN;
80
84
  break;
81
85
  }
82
86
  default:
@@ -92,7 +96,7 @@ export default class TrinoSQL extends BasicParser {
92
96
  for (let candidate of candidates.tokens) {
93
97
  const symbolicName = this._parser.vocabulary.getSymbolicName(candidate[0]);
94
98
  const displayName = this._parser.vocabulary.getDisplayName(candidate[0]);
95
- if (symbolicName && symbolicName.startsWith('KW_')) {
99
+ if (displayName && symbolicName && symbolicName.startsWith('KW_')) {
96
100
  const keyword = displayName.startsWith("'") && displayName.endsWith("'")
97
101
  ? displayName.slice(1, -1)
98
102
  : displayName;
@@ -105,18 +109,3 @@ export default class TrinoSQL extends BasicParser {
105
109
  };
106
110
  }
107
111
  }
108
- export class TrinoSqlSplitListener {
109
- constructor() {
110
- this._statementsContext = [];
111
- this.exitSingleStatement = (ctx) => {
112
- this._statementsContext.push(ctx);
113
- };
114
- }
115
- visitTerminal() { }
116
- visitErrorNode() { }
117
- enterEveryRule() { }
118
- exitEveryRule() { }
119
- get statementsContext() {
120
- return this._statementsContext;
121
- }
122
- }
@@ -0,0 +1,30 @@
1
+ import type { ColumnNameCreateContext, CreateMaterializedViewContext, CreateSchemaContext, CreateTableAsSelectContext, CreateTableContext, CreateViewContext, InsertIntoContext, QueryStatementContext, SchemaNameContext, SchemaNameCreateContext, SingleStatementContext, TableNameContext, TableNameCreateContext, ViewNameContext, ViewNameCreateContext } from '../../lib/trino/TrinoSqlParser';
2
+ import type { TrinoSqlListener } from '../../lib/trino/TrinoSqlListener';
3
+ import { EntityCollector } from '../common/entityCollector';
4
+ export declare class TrinoEntityCollector extends EntityCollector implements TrinoSqlListener {
5
+ /** ====== Entity Begin */
6
+ exitSchemaName(ctx: SchemaNameContext): void;
7
+ exitSchemaNameCreate(ctx: SchemaNameCreateContext): void;
8
+ exitTableName(ctx: TableNameContext): void;
9
+ exitTableNameCreate(ctx: TableNameCreateContext): void;
10
+ exitViewName(ctx: ViewNameContext): void;
11
+ exitViewNameCreate(ctx: ViewNameCreateContext): void;
12
+ exitColumnNameCreate(ctx: ColumnNameCreateContext): void;
13
+ /** ===== Statement begin */
14
+ enterSingleStatement(ctx: SingleStatementContext): void;
15
+ exitSingleStatement(ctx: SingleStatementContext): void;
16
+ enterCreateSchema(ctx: CreateSchemaContext): void;
17
+ exitCreateSchema(ctx: CreateSchemaContext): void;
18
+ enterCreateTableAsSelect(ctx: CreateTableAsSelectContext): void;
19
+ exitCreateTableAsSelect(ctx: CreateTableAsSelectContext): void;
20
+ enterCreateTable(ctx: CreateTableContext): void;
21
+ exitCreateTable(ctx: CreateTableContext): void;
22
+ enterCreateView(ctx: CreateViewContext): void;
23
+ exitCreateView(ctx: CreateViewContext): void;
24
+ enterCreateMaterializedView(ctx: CreateMaterializedViewContext): void;
25
+ exitCreateMaterializedView(ctx: CreateMaterializedViewContext): void;
26
+ enterQueryStatement(ctx: QueryStatementContext): void;
27
+ exitQueryStatement(ctx: QueryStatementContext): void;
28
+ enterInsertInto(ctx: InsertIntoContext): void;
29
+ exitInsertInto(ctx: InsertIntoContext): void;
30
+ }
@@ -0,0 +1,75 @@
1
+ import { EntityContextType } from '../common/types';
2
+ import { StmtContextType, EntityCollector } from '../common/entityCollector';
3
+ export class TrinoEntityCollector extends EntityCollector {
4
+ /** ====== Entity Begin */
5
+ exitSchemaName(ctx) {
6
+ this.pushEntity(ctx, EntityContextType.DATABASE);
7
+ }
8
+ exitSchemaNameCreate(ctx) {
9
+ this.pushEntity(ctx, EntityContextType.DATABASE_CREATE);
10
+ }
11
+ exitTableName(ctx) {
12
+ this.pushEntity(ctx, EntityContextType.TABLE);
13
+ }
14
+ exitTableNameCreate(ctx) {
15
+ this.pushEntity(ctx, EntityContextType.TABLE_CREATE);
16
+ }
17
+ exitViewName(ctx) {
18
+ this.pushEntity(ctx, EntityContextType.VIEW);
19
+ }
20
+ exitViewNameCreate(ctx) {
21
+ this.pushEntity(ctx, EntityContextType.VIEW_CREATE);
22
+ }
23
+ exitColumnNameCreate(ctx) {
24
+ this.pushEntity(ctx, EntityContextType.COLUMN_CREATE);
25
+ }
26
+ /** ===== Statement begin */
27
+ enterSingleStatement(ctx) {
28
+ this.pushStmt(ctx, StmtContextType.COMMON_STMT);
29
+ }
30
+ exitSingleStatement(ctx) {
31
+ this.popStmt();
32
+ }
33
+ enterCreateSchema(ctx) {
34
+ this.pushStmt(ctx, StmtContextType.CREATE_DATABASE_STMT);
35
+ }
36
+ exitCreateSchema(ctx) {
37
+ this.popStmt();
38
+ }
39
+ enterCreateTableAsSelect(ctx) {
40
+ this.pushStmt(ctx, StmtContextType.CREATE_TABLE_STMT);
41
+ }
42
+ exitCreateTableAsSelect(ctx) {
43
+ this.popStmt();
44
+ }
45
+ enterCreateTable(ctx) {
46
+ this.pushStmt(ctx, StmtContextType.CREATE_TABLE_STMT);
47
+ }
48
+ exitCreateTable(ctx) {
49
+ this.popStmt();
50
+ }
51
+ enterCreateView(ctx) {
52
+ this.pushStmt(ctx, StmtContextType.CREATE_VIEW_STMT);
53
+ }
54
+ exitCreateView(ctx) {
55
+ this.popStmt();
56
+ }
57
+ enterCreateMaterializedView(ctx) {
58
+ this.pushStmt(ctx, StmtContextType.CREATE_VIEW_STMT);
59
+ }
60
+ exitCreateMaterializedView(ctx) {
61
+ this.popStmt();
62
+ }
63
+ enterQueryStatement(ctx) {
64
+ this.pushStmt(ctx, StmtContextType.SELECT_STMT);
65
+ }
66
+ exitQueryStatement(ctx) {
67
+ this.popStmt();
68
+ }
69
+ enterInsertInto(ctx) {
70
+ this.pushStmt(ctx, StmtContextType.INSERT_STMT);
71
+ }
72
+ exitInsertInto(ctx) {
73
+ this.popStmt();
74
+ }
75
+ }
@@ -0,0 +1,6 @@
1
+ import { SingleStatementContext } from '../../lib/trino/TrinoSqlParser';
2
+ import { TrinoSqlListener } from '../../lib/trino/TrinoSqlListener';
3
+ import { SplitListener } from '../common/splitListener';
4
+ export declare class TrinoSqlSplitListener extends SplitListener<SingleStatementContext> implements TrinoSqlListener {
5
+ exitSingleStatement(ctx: SingleStatementContext): void;
6
+ }
@@ -0,0 +1,6 @@
1
+ import { SplitListener } from '../common/splitListener';
2
+ export class TrinoSqlSplitListener extends SplitListener {
3
+ exitSingleStatement(ctx) {
4
+ this._statementsContext.push(ctx);
5
+ }
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dt-sql-parser",
3
- "version": "4.0.0-ng.2",
3
+ "version": "4.0.1",
4
4
  "authors": "DTStack Corporation",
5
5
  "description": "SQL Parsers for BigData, built with antlr4",
6
6
  "keywords": [
@@ -1,5 +0,0 @@
1
- import { Lexer } from "antlr4ng";
2
- export default abstract class PlSqlBaseLexer extends Lexer {
3
- _interp: any;
4
- IsNewlineAtPos(pos: number): boolean;
5
- }
@@ -1,7 +0,0 @@
1
- import { Lexer } from "antlr4ng";
2
- export default class PlSqlBaseLexer extends Lexer {
3
- IsNewlineAtPos(pos) {
4
- const la = this._input.LA(pos);
5
- return la == -1 || String.fromCharCode(la) == '\n';
6
- }
7
- }
@@ -1,10 +0,0 @@
1
- import { Parser, TokenStream } from "antlr4ng";
2
- export default abstract class PlSqlBaseParser extends Parser {
3
- private _isVersion10;
4
- private _isVersion12;
5
- constructor(input: TokenStream);
6
- isVersion10(): boolean;
7
- isVersion12(): boolean;
8
- setVersion10(value: boolean): void;
9
- setVersion12(value: boolean): void;
10
- }
@@ -1,22 +0,0 @@
1
- import { Parser } from "antlr4ng";
2
- export default class PlSqlBaseParser extends Parser {
3
- constructor(input) {
4
- super(input);
5
- this._isVersion10 = false;
6
- this._isVersion12 = true;
7
- this._isVersion10 = false;
8
- this._isVersion12 = true;
9
- }
10
- isVersion10() {
11
- return this._isVersion10;
12
- }
13
- isVersion12() {
14
- return this._isVersion12;
15
- }
16
- setVersion10(value) {
17
- this._isVersion10 = value;
18
- }
19
- setVersion12(value) {
20
- this._isVersion12 = value;
21
- }
22
- }