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.
- package/README.md +119 -112
- package/dist/index.d.ts +7 -9
- package/dist/index.js +4 -7
- package/dist/lib/SQLParserBase.d.ts +8 -0
- package/dist/lib/SQLParserBase.js +14 -0
- package/dist/lib/{flinksql → flink}/FlinkSqlLexer.d.ts +2 -2
- package/dist/lib/{flinksql → flink}/FlinkSqlLexer.js +2 -1
- package/dist/lib/{flinksql → flink}/FlinkSqlParser.d.ts +5 -11
- package/dist/lib/{flinksql → flink}/FlinkSqlParser.js +2065 -2054
- package/dist/lib/{flinksql → flink}/FlinkSqlParserListener.d.ts +0 -13
- package/dist/lib/{flinksql → flink}/FlinkSqlParserListener.js +1 -1
- package/dist/lib/{flinksql → flink}/FlinkSqlParserVisitor.d.ts +0 -8
- package/dist/lib/{flinksql → flink}/FlinkSqlParserVisitor.js +2 -1
- package/dist/lib/hive/HiveSqlLexer.d.ts +258 -257
- package/dist/lib/hive/HiveSqlLexer.js +1794 -1786
- package/dist/lib/hive/HiveSqlParser.d.ts +1266 -3176
- package/dist/lib/hive/HiveSqlParser.js +23046 -33454
- package/dist/lib/hive/HiveSqlParserListener.d.ts +141 -2036
- package/dist/lib/hive/HiveSqlParserVisitor.d.ts +151 -1358
- package/dist/lib/hive/HiveSqlParserVisitor.js +1 -0
- package/dist/lib/impala/ImpalaSqlLexer.d.ts +170 -154
- package/dist/lib/impala/ImpalaSqlLexer.js +1179 -1099
- package/dist/lib/impala/ImpalaSqlParser.d.ts +282 -240
- package/dist/lib/impala/ImpalaSqlParser.js +3881 -3744
- package/dist/lib/impala/ImpalaSqlParserListener.d.ts +22 -11
- package/dist/lib/impala/ImpalaSqlParserVisitor.d.ts +14 -7
- package/dist/lib/impala/ImpalaSqlParserVisitor.js +1 -0
- package/dist/lib/index.d.ts +6 -8
- package/dist/lib/index.js +6 -8
- package/dist/lib/mysql/MySqlLexer.d.ts +2 -2
- package/dist/lib/mysql/MySqlLexer.js +1 -0
- package/dist/lib/mysql/MySqlParser.d.ts +347 -418
- package/dist/lib/mysql/MySqlParser.js +10484 -11099
- package/dist/lib/mysql/MySqlParserListener.d.ts +41 -126
- package/dist/lib/mysql/MySqlParserVisitor.d.ts +23 -76
- package/dist/lib/mysql/MySqlParserVisitor.js +1 -0
- package/dist/lib/{pgsql/PostgreSQLLexer.d.ts → postgresql/PostgreSqlLexer.d.ts} +3 -3
- package/dist/lib/{pgsql/PostgreSQLLexer.js → postgresql/PostgreSqlLexer.js} +618 -617
- package/dist/lib/{pgsql/PostgreSQLParser.d.ts → postgresql/PostgreSqlParser.d.ts} +3598 -3484
- package/dist/lib/{pgsql/PostgreSQLParser.js → postgresql/PostgreSqlParser.js} +41502 -42831
- package/dist/lib/{pgsql/PostgreSQLParserListener.d.ts → postgresql/PostgreSqlParserListener.d.ts} +2797 -2730
- package/dist/lib/{pgsql/PostgreSQLParserListener.js → postgresql/PostgreSqlParserListener.js} +3 -3
- package/dist/lib/{pgsql/PostgreSQLParserVisitor.d.ts → postgresql/PostgreSqlParserVisitor.d.ts} +1845 -1810
- package/dist/lib/{pgsql/PostgreSQLParserVisitor.js → postgresql/PostgreSqlParserVisitor.js} +4 -3
- package/dist/lib/spark/SparkSqlLexer.d.ts +305 -298
- package/dist/lib/spark/SparkSqlLexer.js +1777 -1735
- package/dist/lib/spark/SparkSqlParser.d.ts +1764 -669
- package/dist/lib/spark/SparkSqlParser.js +15460 -10769
- package/dist/lib/spark/SparkSqlParserListener.d.ts +1285 -35
- package/dist/lib/spark/SparkSqlParserVisitor.d.ts +790 -21
- package/dist/lib/spark/SparkSqlParserVisitor.js +1 -0
- package/dist/lib/{trinosql → trino}/TrinoSqlLexer.d.ts +2 -2
- package/dist/lib/{trinosql → trino}/TrinoSqlLexer.js +2 -1
- package/dist/lib/{trinosql → trino}/TrinoSqlListener.d.ts +7 -5
- package/dist/lib/{trinosql → trino}/TrinoSqlListener.js +1 -1
- package/dist/lib/{trinosql → trino}/TrinoSqlParser.d.ts +11 -5
- package/dist/lib/{trinosql → trino}/TrinoSqlParser.js +360 -320
- package/dist/lib/{trinosql → trino}/TrinoSqlVisitor.d.ts +4 -3
- package/dist/lib/{trinosql → trino}/TrinoSqlVisitor.js +2 -1
- package/dist/parser/common/{basicParser.d.ts → basicSQL.d.ts} +22 -19
- package/dist/parser/common/{basicParser.js → basicSQL.js} +52 -34
- package/dist/parser/common/entityCollector.d.ts +78 -0
- package/dist/parser/common/entityCollector.js +191 -0
- package/dist/parser/common/{utils/findCaretTokenIndex.d.ts → findCaretTokenIndex.d.ts} +2 -2
- package/dist/parser/common/{utils/findCaretTokenIndex.js → findCaretTokenIndex.js} +3 -2
- package/dist/parser/common/parseErrorListener.d.ts +6 -6
- package/dist/parser/common/parseErrorListener.js +1 -1
- package/dist/parser/common/simpleStack.d.ts +10 -0
- package/dist/parser/common/simpleStack.js +23 -0
- package/dist/parser/common/splitListener.d.ts +8 -0
- package/dist/parser/common/splitListener.js +12 -0
- package/dist/parser/common/textAndWord.d.ts +52 -0
- package/dist/parser/common/textAndWord.js +58 -0
- package/dist/parser/common/{basic-parser-types.d.ts → types.d.ts} +4 -31
- package/dist/parser/common/types.js +34 -0
- package/dist/parser/flink/flinkEntityCollector.d.ts +33 -0
- package/dist/parser/flink/flinkEntityCollector.js +84 -0
- package/dist/parser/flink/flinkSplitListener.d.ts +6 -0
- package/dist/parser/flink/flinkSplitListener.js +6 -0
- package/dist/parser/flink/index.d.ts +17 -0
- package/dist/parser/{flinksql.js → flink/index.js} +26 -37
- package/dist/parser/hive/hiveEntityCollector.d.ts +35 -0
- package/dist/parser/hive/hiveEntityCollector.js +90 -0
- package/dist/parser/hive/hiveSplitListener.d.ts +6 -0
- package/dist/parser/hive/hiveSplitListener.js +6 -0
- package/dist/parser/hive/index.d.ts +17 -0
- package/dist/parser/{hive.js → hive/index.js} +24 -34
- package/dist/parser/impala/impalaEntityCollector.d.ts +35 -0
- package/dist/parser/impala/impalaEntityCollector.js +90 -0
- package/dist/parser/impala/impalaSplitListener.d.ts +6 -0
- package/dist/parser/impala/impalaSplitListener.js +6 -0
- package/dist/parser/impala/index.d.ts +17 -0
- package/dist/parser/{impala.js → impala/index.js} +24 -34
- package/dist/parser/index.d.ts +7 -8
- package/dist/parser/index.js +7 -8
- package/dist/parser/mysql/index.d.ts +17 -0
- package/dist/parser/{mysql.js → mysql/index.js} +24 -34
- package/dist/parser/mysql/mysqlEntityCollector.d.ts +37 -0
- package/dist/parser/mysql/mysqlEntityCollector.js +96 -0
- package/dist/parser/mysql/mysqlSplitListener.d.ts +6 -0
- package/dist/parser/mysql/mysqlSplitListener.js +6 -0
- package/dist/parser/postgresql/index.d.ts +17 -0
- package/dist/parser/postgresql/index.js +130 -0
- package/dist/parser/postgresql/postgreEntityCollector.d.ts +37 -0
- package/dist/parser/postgresql/postgreEntityCollector.js +96 -0
- package/dist/parser/postgresql/postgreSplitListener.d.ts +6 -0
- package/dist/parser/postgresql/postgreSplitListener.js +6 -0
- package/dist/parser/spark/index.d.ts +17 -0
- package/dist/parser/{spark.js → spark/index.js} +29 -40
- package/dist/parser/spark/sparkEntityCollector.d.ts +37 -0
- package/dist/parser/spark/sparkEntityCollector.js +96 -0
- package/dist/parser/spark/sparkSplitListener.d.ts +6 -0
- package/dist/parser/spark/sparkSplitListener.js +6 -0
- package/dist/parser/trino/index.d.ts +17 -0
- package/dist/parser/{trinosql.js → trino/index.js} +25 -36
- package/dist/parser/trino/trinoEntityCollector.d.ts +30 -0
- package/dist/parser/trino/trinoEntityCollector.js +75 -0
- package/dist/parser/trino/trinoSplitListener.d.ts +6 -0
- package/dist/parser/trino/trinoSplitListener.js +6 -0
- package/package.json +1 -1
- package/dist/lib/plsql/PlSqlBaseLexer.d.ts +0 -5
- package/dist/lib/plsql/PlSqlBaseLexer.js +0 -7
- package/dist/lib/plsql/PlSqlBaseParser.d.ts +0 -10
- package/dist/lib/plsql/PlSqlBaseParser.js +0 -22
- package/dist/lib/plsql/PlSqlLexer.d.ts +0 -2381
- package/dist/lib/plsql/PlSqlLexer.js +0 -16440
- package/dist/lib/plsql/PlSqlParser.d.ts +0 -17080
- package/dist/lib/plsql/PlSqlParser.js +0 -184484
- package/dist/lib/plsql/PlSqlParserListener.d.ts +0 -8003
- package/dist/lib/plsql/PlSqlParserListener.js +0 -11
- package/dist/lib/plsql/PlSqlParserVisitor.d.ts +0 -5095
- package/dist/lib/plsql/PlSqlParserVisitor.js +0 -11
- package/dist/parser/common/basic-parser-types.js +0 -34
- package/dist/parser/flinksql.d.ts +0 -23
- package/dist/parser/hive.d.ts +0 -23
- package/dist/parser/impala.d.ts +0 -23
- package/dist/parser/mysql.d.ts +0 -23
- package/dist/parser/pgsql.d.ts +0 -23
- package/dist/parser/pgsql.js +0 -140
- package/dist/parser/plsql.d.ts +0 -13
- package/dist/parser/plsql.js +0 -25
- package/dist/parser/spark.d.ts +0 -23
- package/dist/parser/trinosql.d.ts +0 -23
- package/dist/utils/index.d.ts +0 -19
- package/dist/utils/index.js +0 -170
- package/dist/utils/token.d.ts +0 -59
- 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 MySqlEntityCollector extends EntityCollector {
|
|
4
|
+
/** ====== Entity Begin */
|
|
5
|
+
exitDatabaseName(ctx) {
|
|
6
|
+
this.pushEntity(ctx, EntityContextType.DATABASE);
|
|
7
|
+
}
|
|
8
|
+
exitDatabaseNameCreate(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
|
+
enterQueryCreateTable(ctx) {
|
|
37
|
+
this.pushStmt(ctx, StmtContextType.CREATE_TABLE_STMT);
|
|
38
|
+
}
|
|
39
|
+
exitQueryCreateTable(ctx) {
|
|
40
|
+
this.popStmt();
|
|
41
|
+
}
|
|
42
|
+
enterColumnCreateTable(ctx) {
|
|
43
|
+
this.pushStmt(ctx, StmtContextType.CREATE_TABLE_STMT);
|
|
44
|
+
}
|
|
45
|
+
exitColumnCreateTable(ctx) {
|
|
46
|
+
this.popStmt();
|
|
47
|
+
}
|
|
48
|
+
enterCopyCreateTable(ctx) {
|
|
49
|
+
this.pushStmt(ctx, StmtContextType.CREATE_TABLE_STMT);
|
|
50
|
+
}
|
|
51
|
+
exitCopyCreateTable(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
|
+
enterSimpleSelect(ctx) {
|
|
61
|
+
this.pushStmt(ctx, StmtContextType.SELECT_STMT);
|
|
62
|
+
}
|
|
63
|
+
exitSimpleSelect(ctx) {
|
|
64
|
+
this.popStmt();
|
|
65
|
+
}
|
|
66
|
+
enterUnionAndLateralSelect(ctx) {
|
|
67
|
+
this.pushStmt(ctx, StmtContextType.SELECT_STMT);
|
|
68
|
+
}
|
|
69
|
+
exitUnionAndLateralSelect(ctx) {
|
|
70
|
+
this.popStmt();
|
|
71
|
+
}
|
|
72
|
+
enterSelectExpression(ctx) {
|
|
73
|
+
this.pushStmt(ctx, StmtContextType.SELECT_STMT);
|
|
74
|
+
}
|
|
75
|
+
exitSelectExpression(ctx) {
|
|
76
|
+
this.popStmt();
|
|
77
|
+
}
|
|
78
|
+
enterInsertStatement(ctx) {
|
|
79
|
+
this.pushStmt(ctx, StmtContextType.INSERT_STMT);
|
|
80
|
+
}
|
|
81
|
+
exitInsertStatement(ctx) {
|
|
82
|
+
this.popStmt();
|
|
83
|
+
}
|
|
84
|
+
enterCreateDatabase(ctx) {
|
|
85
|
+
this.pushStmt(ctx, StmtContextType.CREATE_DATABASE_STMT);
|
|
86
|
+
}
|
|
87
|
+
exitCreateDatabase(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/mysql/MySqlParser';
|
|
2
|
+
import { MySqlParserListener } from '../../lib/mysql/MySqlParserListener';
|
|
3
|
+
import { SplitListener } from '../common/splitListener';
|
|
4
|
+
export declare class MysqlSplitListener extends SplitListener<SingleStatementContext> implements MySqlParserListener {
|
|
5
|
+
exitSingleStatement(ctx: SingleStatementContext): void;
|
|
6
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CandidatesCollection } from 'antlr4-c3';
|
|
2
|
+
import { CharStream, CommonTokenStream, Token } from 'antlr4ng';
|
|
3
|
+
import { PostgreSqlLexer } from '../../lib/postgresql/PostgreSqlLexer';
|
|
4
|
+
import { PostgreSqlParser, ProgramContext } from '../../lib/postgresql/PostgreSqlParser';
|
|
5
|
+
import { Suggestions } from '../common/types';
|
|
6
|
+
import { BasicSQL } from '../common/basicSQL';
|
|
7
|
+
import { PostgreSqlEntityCollector } from './postgreEntityCollector';
|
|
8
|
+
import { PostgreSqlSplitListener } from './postgreSplitListener';
|
|
9
|
+
export { PostgreSqlEntityCollector, PostgreSqlSplitListener };
|
|
10
|
+
export declare class PostgreSQL extends BasicSQL<PostgreSqlLexer, ProgramContext, PostgreSqlParser> {
|
|
11
|
+
protected createLexerFromCharStream(charStreams: CharStream): PostgreSqlLexer;
|
|
12
|
+
protected createParserFromTokenStream(tokenStream: CommonTokenStream): PostgreSqlParser;
|
|
13
|
+
protected preferredRules: Set<number>;
|
|
14
|
+
protected get splitListener(): PostgreSqlSplitListener;
|
|
15
|
+
protected createEntityCollector(input: string, caretTokenIndex?: number): PostgreSqlEntityCollector;
|
|
16
|
+
protected processCandidates(candidates: CandidatesCollection, allTokens: Token[], caretTokenIndex: number, tokenIndexOffset: number): Suggestions<Token>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { PostgreSqlLexer } from '../../lib/postgresql/PostgreSqlLexer';
|
|
2
|
+
import { PostgreSqlParser } from '../../lib/postgresql/PostgreSqlParser';
|
|
3
|
+
import { EntityContextType } from '../common/types';
|
|
4
|
+
import { BasicSQL } from '../common/basicSQL';
|
|
5
|
+
import { PostgreSqlEntityCollector } from './postgreEntityCollector';
|
|
6
|
+
import { PostgreSqlSplitListener } from './postgreSplitListener';
|
|
7
|
+
export { PostgreSqlEntityCollector, PostgreSqlSplitListener };
|
|
8
|
+
export class PostgreSQL extends BasicSQL {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.preferredRules = new Set([
|
|
12
|
+
PostgreSqlParser.RULE_table_name_create,
|
|
13
|
+
PostgreSqlParser.RULE_table_name,
|
|
14
|
+
PostgreSqlParser.RULE_function_name,
|
|
15
|
+
PostgreSqlParser.RULE_function_name_create,
|
|
16
|
+
PostgreSqlParser.RULE_schema_name_create,
|
|
17
|
+
PostgreSqlParser.RULE_schema_name,
|
|
18
|
+
PostgreSqlParser.RULE_view_name_create,
|
|
19
|
+
PostgreSqlParser.RULE_view_name,
|
|
20
|
+
PostgreSqlParser.RULE_database_name_create,
|
|
21
|
+
PostgreSqlParser.RULE_database_name,
|
|
22
|
+
PostgreSqlParser.RULE_procedure_name_create,
|
|
23
|
+
PostgreSqlParser.RULE_procedure_name,
|
|
24
|
+
PostgreSqlParser.RULE_column_name_create,
|
|
25
|
+
PostgreSqlParser.RULE_column_name, // column name
|
|
26
|
+
]);
|
|
27
|
+
}
|
|
28
|
+
createLexerFromCharStream(charStreams) {
|
|
29
|
+
return new PostgreSqlLexer(charStreams);
|
|
30
|
+
}
|
|
31
|
+
createParserFromTokenStream(tokenStream) {
|
|
32
|
+
return new PostgreSqlParser(tokenStream);
|
|
33
|
+
}
|
|
34
|
+
get splitListener() {
|
|
35
|
+
return new PostgreSqlSplitListener();
|
|
36
|
+
}
|
|
37
|
+
createEntityCollector(input, caretTokenIndex) {
|
|
38
|
+
return new PostgreSqlEntityCollector(input, caretTokenIndex);
|
|
39
|
+
}
|
|
40
|
+
processCandidates(candidates, allTokens, caretTokenIndex, tokenIndexOffset) {
|
|
41
|
+
const originalSyntaxSuggestions = [];
|
|
42
|
+
const keywords = [];
|
|
43
|
+
for (let candidate of candidates.rules) {
|
|
44
|
+
const [ruleType, candidateRule] = candidate;
|
|
45
|
+
const startTokenIndex = candidateRule.startTokenIndex + tokenIndexOffset;
|
|
46
|
+
const tokenRanges = allTokens.slice(startTokenIndex, caretTokenIndex + tokenIndexOffset + 1);
|
|
47
|
+
let syntaxContextType = void 0;
|
|
48
|
+
switch (ruleType) {
|
|
49
|
+
case PostgreSqlParser.RULE_table_name_create: {
|
|
50
|
+
syntaxContextType = EntityContextType.TABLE_CREATE;
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
case PostgreSqlParser.RULE_table_name: {
|
|
54
|
+
syntaxContextType = EntityContextType.TABLE;
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
case PostgreSqlParser.RULE_function_name_create: {
|
|
58
|
+
syntaxContextType = EntityContextType.FUNCTION_CREATE;
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
case PostgreSqlParser.RULE_function_name: {
|
|
62
|
+
syntaxContextType = EntityContextType.FUNCTION;
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
case PostgreSqlParser.RULE_schema_name_create: {
|
|
66
|
+
syntaxContextType = EntityContextType.DATABASE_CREATE;
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
case PostgreSqlParser.RULE_schema_name: {
|
|
70
|
+
syntaxContextType = EntityContextType.DATABASE;
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
case PostgreSqlParser.RULE_view_name_create: {
|
|
74
|
+
syntaxContextType = EntityContextType.VIEW_CREATE;
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
case PostgreSqlParser.RULE_view_name: {
|
|
78
|
+
syntaxContextType = EntityContextType.VIEW;
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
case PostgreSqlParser.RULE_database_name_create: {
|
|
82
|
+
syntaxContextType = EntityContextType.DATABASE_CREATE;
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
case PostgreSqlParser.RULE_database_name: {
|
|
86
|
+
syntaxContextType = EntityContextType.DATABASE;
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
case PostgreSqlParser.RULE_procedure_name_create: {
|
|
90
|
+
syntaxContextType = EntityContextType.PROCEDURE_CREATE;
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
case PostgreSqlParser.RULE_procedure_name: {
|
|
94
|
+
syntaxContextType = EntityContextType.PROCEDURE;
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
case PostgreSqlParser.RULE_column_name_create: {
|
|
98
|
+
syntaxContextType = EntityContextType.COLUMN_CREATE;
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
case PostgreSqlParser.RULE_column_name: {
|
|
102
|
+
syntaxContextType = EntityContextType.COLUMN;
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
default:
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
if (syntaxContextType) {
|
|
109
|
+
originalSyntaxSuggestions.push({
|
|
110
|
+
syntaxContextType,
|
|
111
|
+
wordRanges: tokenRanges,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
for (let candidate of candidates.tokens) {
|
|
116
|
+
const symbolicName = this._parser.vocabulary.getSymbolicName(candidate[0]);
|
|
117
|
+
const displayName = this._parser.vocabulary.getDisplayName(candidate[0]);
|
|
118
|
+
if (displayName && symbolicName && symbolicName.startsWith('KW_')) {
|
|
119
|
+
const keyword = displayName.startsWith("'") && displayName.endsWith("'")
|
|
120
|
+
? displayName.slice(1, -1)
|
|
121
|
+
: displayName;
|
|
122
|
+
keywords.push(keyword);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return {
|
|
126
|
+
syntax: originalSyntaxSuggestions,
|
|
127
|
+
keywords,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ColumnCreateTableContext, ColumnNameCreateContext, CreateDatabaseContext, CreateForeignTableContext, CreateMaterializedViewContext, CreatePartitionForeignTableContext, CreateViewContext, CreatefunctionstmtContext, DatabaseNameContext, DatabaseNameCreateContext, FunctionNameCreateContext, InsertStatementContext, QueryCreateTableContext, SelectStatementContext, SingleStmtContext, TableNameContext, TableNameCreateContext, ViewNameContext, ViewNameCreateContext } from '../../lib/postgresql/PostgreSqlParser';
|
|
2
|
+
import type { PostgreSqlParserListener } from '../../lib/postgresql/PostgreSqlParserListener';
|
|
3
|
+
import { EntityCollector } from '../common/entityCollector';
|
|
4
|
+
export declare class PostgreSqlEntityCollector extends EntityCollector implements PostgreSqlParserListener {
|
|
5
|
+
/** ====== Entity Begin */
|
|
6
|
+
exitDatabaseName(ctx: DatabaseNameContext): void;
|
|
7
|
+
exitDatabaseNameCreate(ctx: DatabaseNameCreateContext): void;
|
|
8
|
+
exitTableName(ctx: TableNameContext): void;
|
|
9
|
+
exitTableNameCreate(ctx: TableNameCreateContext): void;
|
|
10
|
+
exitViewName(ctx: ViewNameContext): void;
|
|
11
|
+
exitViewNameCreate(ctx: ViewNameCreateContext): void;
|
|
12
|
+
exitFunctionNameCreate(ctx: FunctionNameCreateContext): void;
|
|
13
|
+
exitColumnNameCreate(ctx: ColumnNameCreateContext): void;
|
|
14
|
+
/** ===== Statement begin */
|
|
15
|
+
enterSingleStatement(ctx: SingleStmtContext): void;
|
|
16
|
+
exitSingleStatement(ctx: SingleStmtContext): void;
|
|
17
|
+
enterCreateDatabase(ctx: CreateDatabaseContext): void;
|
|
18
|
+
exitCreateDatabase(ctx: CreateDatabaseContext): void;
|
|
19
|
+
enterQueryCreateTable(ctx: QueryCreateTableContext): void;
|
|
20
|
+
exitQueryCreateTable(ctx: QueryCreateTableContext): void;
|
|
21
|
+
enterColumnCreateTable(ctx: ColumnCreateTableContext): void;
|
|
22
|
+
exitColumnCreateTable(ctx: ColumnCreateTableContext): void;
|
|
23
|
+
enterCreateForeignTable(ctx: CreateForeignTableContext): void;
|
|
24
|
+
exitCreateForeignTable(ctx: CreateForeignTableContext): void;
|
|
25
|
+
enterCreatePartitionForeignTable(ctx: CreatePartitionForeignTableContext): void;
|
|
26
|
+
exitCreatePartitionForeignTable(ctx: CreatePartitionForeignTableContext): void;
|
|
27
|
+
enterCreateView(ctx: CreateViewContext): void;
|
|
28
|
+
exitCreateView(ctx: CreateViewContext): void;
|
|
29
|
+
enterCreateMaterializedView(ctx: CreateMaterializedViewContext): void;
|
|
30
|
+
exitCreateMaterializedView(ctx: CreateMaterializedViewContext): void;
|
|
31
|
+
enterSelectStatement(ctx: SelectStatementContext): void;
|
|
32
|
+
exitSelectStatement(ctx: SelectStatementContext): void;
|
|
33
|
+
enterInsertStatement(ctx: InsertStatementContext): void;
|
|
34
|
+
exitInsertStatement(ctx: InsertStatementContext): void;
|
|
35
|
+
enterCreatefunctionstmt(ctx: CreatefunctionstmtContext): void;
|
|
36
|
+
exitCreatefunctionstmt(ctx: CreatefunctionstmtContext): void;
|
|
37
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { EntityContextType } from '../common/types';
|
|
2
|
+
import { StmtContextType, EntityCollector } from '../common/entityCollector';
|
|
3
|
+
export class PostgreSqlEntityCollector extends EntityCollector {
|
|
4
|
+
/** ====== Entity Begin */
|
|
5
|
+
exitDatabaseName(ctx) {
|
|
6
|
+
this.pushEntity(ctx, EntityContextType.DATABASE);
|
|
7
|
+
}
|
|
8
|
+
exitDatabaseNameCreate(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
|
+
enterCreateDatabase(ctx) {
|
|
37
|
+
this.pushStmt(ctx, StmtContextType.CREATE_DATABASE_STMT);
|
|
38
|
+
}
|
|
39
|
+
exitCreateDatabase(ctx) {
|
|
40
|
+
this.popStmt();
|
|
41
|
+
}
|
|
42
|
+
enterQueryCreateTable(ctx) {
|
|
43
|
+
this.pushStmt(ctx, StmtContextType.CREATE_TABLE_STMT);
|
|
44
|
+
}
|
|
45
|
+
exitQueryCreateTable(ctx) {
|
|
46
|
+
this.popStmt();
|
|
47
|
+
}
|
|
48
|
+
enterColumnCreateTable(ctx) {
|
|
49
|
+
this.pushStmt(ctx, StmtContextType.CREATE_TABLE_STMT);
|
|
50
|
+
}
|
|
51
|
+
exitColumnCreateTable(ctx) {
|
|
52
|
+
this.popStmt();
|
|
53
|
+
}
|
|
54
|
+
enterCreateForeignTable(ctx) {
|
|
55
|
+
this.pushStmt(ctx, StmtContextType.CREATE_TABLE_STMT);
|
|
56
|
+
}
|
|
57
|
+
exitCreateForeignTable(ctx) {
|
|
58
|
+
this.popStmt();
|
|
59
|
+
}
|
|
60
|
+
enterCreatePartitionForeignTable(ctx) {
|
|
61
|
+
this.pushStmt(ctx, StmtContextType.CREATE_TABLE_STMT);
|
|
62
|
+
}
|
|
63
|
+
exitCreatePartitionForeignTable(ctx) {
|
|
64
|
+
this.popStmt();
|
|
65
|
+
}
|
|
66
|
+
enterCreateView(ctx) {
|
|
67
|
+
this.pushStmt(ctx, StmtContextType.CREATE_VIEW_STMT);
|
|
68
|
+
}
|
|
69
|
+
exitCreateView(ctx) {
|
|
70
|
+
this.popStmt();
|
|
71
|
+
}
|
|
72
|
+
enterCreateMaterializedView(ctx) {
|
|
73
|
+
this.pushStmt(ctx, StmtContextType.CREATE_VIEW_STMT);
|
|
74
|
+
}
|
|
75
|
+
exitCreateMaterializedView(ctx) {
|
|
76
|
+
this.popStmt();
|
|
77
|
+
}
|
|
78
|
+
enterSelectStatement(ctx) {
|
|
79
|
+
this.pushStmt(ctx, StmtContextType.SELECT_STMT);
|
|
80
|
+
}
|
|
81
|
+
exitSelectStatement(ctx) {
|
|
82
|
+
this.popStmt();
|
|
83
|
+
}
|
|
84
|
+
enterInsertStatement(ctx) {
|
|
85
|
+
this.pushStmt(ctx, StmtContextType.INSERT_STMT);
|
|
86
|
+
}
|
|
87
|
+
exitInsertStatement(ctx) {
|
|
88
|
+
this.popStmt();
|
|
89
|
+
}
|
|
90
|
+
enterCreatefunctionstmt(ctx) {
|
|
91
|
+
this.pushStmt(ctx, StmtContextType.CREATE_FUNCTION_STMT);
|
|
92
|
+
}
|
|
93
|
+
exitCreatefunctionstmt(ctx) {
|
|
94
|
+
this.popStmt();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { SingleStmtContext } from '../../lib/postgresql/PostgreSqlParser';
|
|
2
|
+
import { PostgreSqlParserListener } from '../../lib/postgresql/PostgreSqlParserListener';
|
|
3
|
+
import { SplitListener } from '../common/splitListener';
|
|
4
|
+
export declare class PostgreSqlSplitListener extends SplitListener<SingleStmtContext> implements PostgreSqlParserListener {
|
|
5
|
+
exitSingleStmt(ctx: SingleStmtContext): void;
|
|
6
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CharStream, CommonTokenStream, Token } from 'antlr4ng';
|
|
2
|
+
import { CandidatesCollection } from 'antlr4-c3';
|
|
3
|
+
import { SparkSqlLexer } from '../../lib/spark/SparkSqlLexer';
|
|
4
|
+
import { SparkSqlParser, ProgramContext } from '../../lib/spark/SparkSqlParser';
|
|
5
|
+
import { BasicSQL } from '../common/basicSQL';
|
|
6
|
+
import { Suggestions } from '../common/types';
|
|
7
|
+
import { SparkSqlSplitListener } from './sparkSplitListener';
|
|
8
|
+
import { SparkEntityCollector } from './sparkEntityCollector';
|
|
9
|
+
export { SparkSqlSplitListener, SparkEntityCollector };
|
|
10
|
+
export declare class SparkSQL extends BasicSQL<SparkSqlLexer, ProgramContext, SparkSqlParser> {
|
|
11
|
+
protected createLexerFromCharStream(charStreams: CharStream): SparkSqlLexer;
|
|
12
|
+
protected createParserFromTokenStream(tokenStream: CommonTokenStream): SparkSqlParser;
|
|
13
|
+
protected preferredRules: Set<number>;
|
|
14
|
+
protected get splitListener(): SparkSqlSplitListener;
|
|
15
|
+
protected createEntityCollector(input: string, caretTokenIndex?: number): SparkEntityCollector;
|
|
16
|
+
protected processCandidates(candidates: CandidatesCollection, allTokens: Token[], caretTokenIndex: number, tokenIndexOffset: number): Suggestions<Token>;
|
|
17
|
+
}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import { SparkSqlLexer } from '
|
|
2
|
-
import { SparkSqlParser
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
|
|
1
|
+
import { SparkSqlLexer } from '../../lib/spark/SparkSqlLexer';
|
|
2
|
+
import { SparkSqlParser } from '../../lib/spark/SparkSqlParser';
|
|
3
|
+
import { BasicSQL } from '../common/basicSQL';
|
|
4
|
+
import { EntityContextType } from '../common/types';
|
|
5
|
+
import { SparkSqlSplitListener } from './sparkSplitListener';
|
|
6
|
+
import { SparkEntityCollector } from './sparkEntityCollector';
|
|
7
|
+
export { SparkSqlSplitListener, SparkEntityCollector };
|
|
8
|
+
export class SparkSQL extends BasicSQL {
|
|
6
9
|
constructor() {
|
|
7
10
|
super(...arguments);
|
|
8
11
|
this.preferredRules = new Set([
|
|
9
|
-
SparkSqlParser.
|
|
10
|
-
SparkSqlParser.
|
|
12
|
+
SparkSqlParser.RULE_namespaceName,
|
|
13
|
+
SparkSqlParser.RULE_namespaceNameCreate,
|
|
11
14
|
SparkSqlParser.RULE_tableName,
|
|
12
15
|
SparkSqlParser.RULE_tableNameCreate,
|
|
13
16
|
SparkSqlParser.RULE_viewName,
|
|
@@ -19,16 +22,17 @@ export default class SparkSQL extends BasicParser {
|
|
|
19
22
|
]);
|
|
20
23
|
}
|
|
21
24
|
createLexerFromCharStream(charStreams) {
|
|
22
|
-
|
|
23
|
-
return lexer;
|
|
25
|
+
return new SparkSqlLexer(charStreams);
|
|
24
26
|
}
|
|
25
27
|
createParserFromTokenStream(tokenStream) {
|
|
26
|
-
|
|
27
|
-
return parser;
|
|
28
|
+
return new SparkSqlParser(tokenStream);
|
|
28
29
|
}
|
|
29
30
|
get splitListener() {
|
|
30
31
|
return new SparkSqlSplitListener();
|
|
31
32
|
}
|
|
33
|
+
createEntityCollector(input, caretTokenIndex) {
|
|
34
|
+
return new SparkEntityCollector(input, caretTokenIndex);
|
|
35
|
+
}
|
|
32
36
|
processCandidates(candidates, allTokens, caretTokenIndex, tokenIndexOffset) {
|
|
33
37
|
const originalSyntaxSuggestions = [];
|
|
34
38
|
const keywords = [];
|
|
@@ -36,46 +40,46 @@ export default class SparkSQL extends BasicParser {
|
|
|
36
40
|
const [ruleType, candidateRule] = candidate;
|
|
37
41
|
const startTokenIndex = candidateRule.startTokenIndex + tokenIndexOffset;
|
|
38
42
|
const tokenRanges = allTokens.slice(startTokenIndex, caretTokenIndex + tokenIndexOffset + 1);
|
|
39
|
-
let syntaxContextType;
|
|
43
|
+
let syntaxContextType = void 0;
|
|
40
44
|
switch (ruleType) {
|
|
41
|
-
case SparkSqlParser.
|
|
42
|
-
syntaxContextType =
|
|
45
|
+
case SparkSqlParser.RULE_namespaceName: {
|
|
46
|
+
syntaxContextType = EntityContextType.DATABASE;
|
|
43
47
|
break;
|
|
44
48
|
}
|
|
45
|
-
case SparkSqlParser.
|
|
46
|
-
syntaxContextType =
|
|
49
|
+
case SparkSqlParser.RULE_namespaceNameCreate: {
|
|
50
|
+
syntaxContextType = EntityContextType.DATABASE_CREATE;
|
|
47
51
|
break;
|
|
48
52
|
}
|
|
49
53
|
case SparkSqlParser.RULE_tableName: {
|
|
50
|
-
syntaxContextType =
|
|
54
|
+
syntaxContextType = EntityContextType.TABLE;
|
|
51
55
|
break;
|
|
52
56
|
}
|
|
53
57
|
case SparkSqlParser.RULE_tableNameCreate: {
|
|
54
|
-
syntaxContextType =
|
|
58
|
+
syntaxContextType = EntityContextType.TABLE_CREATE;
|
|
55
59
|
break;
|
|
56
60
|
}
|
|
57
61
|
case SparkSqlParser.RULE_viewName: {
|
|
58
|
-
syntaxContextType =
|
|
62
|
+
syntaxContextType = EntityContextType.VIEW;
|
|
59
63
|
break;
|
|
60
64
|
}
|
|
61
65
|
case SparkSqlParser.RULE_viewNameCreate: {
|
|
62
|
-
syntaxContextType =
|
|
66
|
+
syntaxContextType = EntityContextType.VIEW_CREATE;
|
|
63
67
|
break;
|
|
64
68
|
}
|
|
65
69
|
case SparkSqlParser.RULE_functionName: {
|
|
66
|
-
syntaxContextType =
|
|
70
|
+
syntaxContextType = EntityContextType.FUNCTION;
|
|
67
71
|
break;
|
|
68
72
|
}
|
|
69
73
|
case SparkSqlParser.RULE_functionNameCreate: {
|
|
70
|
-
syntaxContextType =
|
|
74
|
+
syntaxContextType = EntityContextType.FUNCTION_CREATE;
|
|
71
75
|
break;
|
|
72
76
|
}
|
|
73
77
|
case SparkSqlParser.RULE_columnName: {
|
|
74
|
-
syntaxContextType =
|
|
78
|
+
syntaxContextType = EntityContextType.COLUMN;
|
|
75
79
|
break;
|
|
76
80
|
}
|
|
77
81
|
case SparkSqlParser.RULE_columnNameCreate: {
|
|
78
|
-
syntaxContextType =
|
|
82
|
+
syntaxContextType = EntityContextType.COLUMN_CREATE;
|
|
79
83
|
break;
|
|
80
84
|
}
|
|
81
85
|
default:
|
|
@@ -91,7 +95,7 @@ export default class SparkSQL extends BasicParser {
|
|
|
91
95
|
for (const candidate of candidates.tokens) {
|
|
92
96
|
const symbolicName = this._parser.vocabulary.getSymbolicName(candidate[0]);
|
|
93
97
|
const displayName = this._parser.vocabulary.getDisplayName(candidate[0]);
|
|
94
|
-
if (symbolicName && symbolicName.startsWith('KW_')) {
|
|
98
|
+
if (displayName && symbolicName && symbolicName.startsWith('KW_')) {
|
|
95
99
|
const keyword = displayName.startsWith("'") && displayName.endsWith("'")
|
|
96
100
|
? displayName.slice(1, -1)
|
|
97
101
|
: displayName;
|
|
@@ -104,18 +108,3 @@ export default class SparkSQL extends BasicParser {
|
|
|
104
108
|
};
|
|
105
109
|
}
|
|
106
110
|
}
|
|
107
|
-
export class SparkSqlSplitListener {
|
|
108
|
-
constructor() {
|
|
109
|
-
this._statementsContext = [];
|
|
110
|
-
this.exitSingleStatement = (ctx) => {
|
|
111
|
-
this._statementsContext.push(ctx);
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
visitTerminal() { }
|
|
115
|
-
visitErrorNode() { }
|
|
116
|
-
enterEveryRule() { }
|
|
117
|
-
exitEveryRule() { }
|
|
118
|
-
get statementsContext() {
|
|
119
|
-
return this._statementsContext;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { NamespaceNameContext, NamespaceNameCreateContext, SingleStatementContext, TableNameContext, TableNameCreateContext, ViewNameContext, ViewNameCreateContext, FunctionNameCreateContext, ColumnNameCreateContext, CreateTableContext, CreateTableLikeContext, ReplaceTableContext, QueryStatementContext, InsertFromQueryContext, MultipleInsertContext, CreateViewContext, CreateTempViewUsingContext, CreateNamespaceContext, CreateFunctionContext } from '../../lib/spark/SparkSqlParser';
|
|
2
|
+
import type { SparkSqlParserListener } from '../../lib/spark/SparkSqlParserListener';
|
|
3
|
+
import { EntityCollector } from '../common/entityCollector';
|
|
4
|
+
export declare class SparkEntityCollector extends EntityCollector implements SparkSqlParserListener {
|
|
5
|
+
/** ====== Entity Begin */
|
|
6
|
+
exitNamespaceName(ctx: NamespaceNameContext): void;
|
|
7
|
+
exitNamespaceNameCreate(ctx: NamespaceNameCreateContext): void;
|
|
8
|
+
exitTableName(ctx: TableNameContext): void;
|
|
9
|
+
exitTableNameCreate(ctx: TableNameCreateContext): void;
|
|
10
|
+
exitViewName(ctx: ViewNameContext): void;
|
|
11
|
+
exitViewNameCreate(ctx: ViewNameCreateContext): void;
|
|
12
|
+
exitFunctionNameCreate(ctx: FunctionNameCreateContext): void;
|
|
13
|
+
exitColumnNameCreate(ctx: ColumnNameCreateContext): void;
|
|
14
|
+
/** ===== Statement begin */
|
|
15
|
+
enterSingleStatement(ctx: SingleStatementContext): void;
|
|
16
|
+
exitSingleStatement(ctx: SingleStatementContext): void;
|
|
17
|
+
enterCreateTable(ctx: CreateTableContext): void;
|
|
18
|
+
exitCreateTable(ctx: CreateTableContext): void;
|
|
19
|
+
enterCreateTableLike(ctx: CreateTableLikeContext): void;
|
|
20
|
+
exitCreateTableLike(ctx: CreateTableLikeContext): void;
|
|
21
|
+
enterReplaceTable(ctx: ReplaceTableContext): void;
|
|
22
|
+
exitReplaceTable(ctx: ReplaceTableContext): void;
|
|
23
|
+
enterCreateView(ctx: CreateViewContext): void;
|
|
24
|
+
exitCreateView(ctx: CreateViewContext): void;
|
|
25
|
+
enterCreateTempViewUsing(ctx: CreateTempViewUsingContext): void;
|
|
26
|
+
exitCreateTempViewUsing(ctx: CreateTempViewUsingContext): void;
|
|
27
|
+
enterQueryStatement(ctx: QueryStatementContext): void;
|
|
28
|
+
exitQueryStatement(ctx: QueryStatementContext): void;
|
|
29
|
+
enterInsertFromQuery(ctx: InsertFromQueryContext): void;
|
|
30
|
+
exitInsertFromQuery(ctx: InsertFromQueryContext): void;
|
|
31
|
+
enterMultipleInsert(ctx: MultipleInsertContext): void;
|
|
32
|
+
exitMultipleInsert(ctx: MultipleInsertContext): void;
|
|
33
|
+
enterCreateNamespace(ctx: CreateNamespaceContext): void;
|
|
34
|
+
exitCreateNamespace(ctx: CreateNamespaceContext): void;
|
|
35
|
+
enterCreateFunction(ctx: CreateFunctionContext): void;
|
|
36
|
+
exitCreateFunction(ctx: CreateFunctionContext): void;
|
|
37
|
+
}
|