dt-sql-parser 4.4.2 → 4.5.0-beta.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 +140 -3
- package/dist/lib/SQLParserBase.d.ts +13 -1
- package/dist/lib/SQLParserBase.js +40 -5
- package/dist/lib/flink/FlinkSqlLexer.d.ts +397 -399
- package/dist/lib/flink/FlinkSqlLexer.js +2489 -2504
- package/dist/lib/flink/FlinkSqlParser.d.ts +726 -728
- package/dist/lib/flink/FlinkSqlParser.js +4727 -5330
- package/dist/lib/flink/FlinkSqlParserListener.d.ts +132 -90
- package/dist/lib/flink/FlinkSqlParserVisitor.d.ts +84 -57
- package/dist/lib/hive/HiveSqlParser.d.ts +338 -239
- package/dist/lib/hive/HiveSqlParser.js +6466 -5794
- package/dist/lib/hive/HiveSqlParserListener.d.ts +88 -0
- package/dist/lib/hive/HiveSqlParserVisitor.d.ts +56 -0
- package/dist/lib/impala/ImpalaSqlParser.d.ts +236 -125
- package/dist/lib/impala/ImpalaSqlParser.js +4257 -3483
- package/dist/lib/impala/ImpalaSqlParserListener.d.ts +109 -14
- package/dist/lib/impala/ImpalaSqlParserVisitor.d.ts +69 -8
- package/dist/lib/mysql/MySqlParser.d.ts +403 -306
- package/dist/lib/mysql/MySqlParser.js +10694 -10030
- package/dist/lib/mysql/MySqlParserListener.d.ts +121 -18
- package/dist/lib/mysql/MySqlParserVisitor.d.ts +75 -10
- package/dist/lib/postgresql/PostgreSqlParser.d.ts +256 -173
- package/dist/lib/postgresql/PostgreSqlParser.js +14934 -11710
- package/dist/lib/postgresql/PostgreSqlParserListener.d.ts +97 -5
- package/dist/lib/postgresql/PostgreSqlParserVisitor.d.ts +61 -3
- package/dist/lib/spark/SparkSqlParser.d.ts +314 -149
- package/dist/lib/spark/SparkSqlParser.js +6185 -5227
- package/dist/lib/spark/SparkSqlParserListener.d.ts +180 -5
- package/dist/lib/spark/SparkSqlParserVisitor.d.ts +113 -3
- package/dist/lib/trino/TrinoSqlListener.d.ts +90 -37
- package/dist/lib/trino/TrinoSqlParser.d.ts +219 -165
- package/dist/lib/trino/TrinoSqlParser.js +4942 -4615
- package/dist/lib/trino/TrinoSqlVisitor.d.ts +55 -21
- package/dist/parser/common/basicSQL.d.ts +5 -5
- package/dist/parser/common/basicSQL.js +4 -2
- package/dist/parser/common/entityCollector.d.ts +91 -4
- package/dist/parser/common/entityCollector.js +227 -11
- package/dist/parser/common/textAndWord.d.ts +9 -1
- package/dist/parser/common/textAndWord.js +2 -0
- package/dist/parser/common/types.d.ts +2 -0
- package/dist/parser/common/types.js +2 -0
- package/dist/parser/flink/flinkEntityCollector.d.ts +10 -2
- package/dist/parser/flink/flinkEntityCollector.js +76 -14
- package/dist/parser/flink/index.js +5 -2
- package/dist/parser/hive/hiveEntityCollector.d.ts +13 -1
- package/dist/parser/hive/hiveEntityCollector.js +85 -12
- package/dist/parser/impala/impalaEntityCollector.d.ts +7 -1
- package/dist/parser/impala/impalaEntityCollector.js +63 -12
- package/dist/parser/impala/index.js +2 -1
- package/dist/parser/mysql/index.js +3 -1
- package/dist/parser/mysql/mysqlEntityCollector.d.ts +10 -1
- package/dist/parser/mysql/mysqlEntityCollector.js +65 -12
- package/dist/parser/mysql/mysqlErrorListener.js +2 -0
- package/dist/parser/postgresql/postgreEntityCollector.d.ts +12 -1
- package/dist/parser/postgresql/postgreEntityCollector.js +99 -22
- package/dist/parser/spark/index.js +3 -1
- package/dist/parser/spark/sparkEntityCollector.d.ts +13 -1
- package/dist/parser/spark/sparkEntityCollector.js +88 -12
- package/dist/parser/trino/trinoEntityCollector.d.ts +7 -1
- package/dist/parser/trino/trinoEntityCollector.js +53 -12
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ColumnNameCommentContext, ColumnNameTypeConstraintContext, CreateDatabaseStatementContext, CreateTableStatementContext, CreateViewStatementContext, TableSourceContext, UniqueJoinSourceContext, } from '../../lib/hive/HiveSqlParser';
|
|
2
|
-
import { AttrName, EntityCollector, StmtContextType } from '../common/entityCollector';
|
|
1
|
+
import { ColumnNameCommentContext, ColumnNameTypeConstraintContext, CreateDatabaseStatementContext, CreateTableStatementContext, CreateViewStatementContext, HiveSqlParser, PartitionedTableFunctionContext, SelectItemContext, SubQuerySourceContext, TableSourceContext, UniqueJoinSourceContext, VirtualTableSourceContext, } from '../../lib/hive/HiveSqlParser';
|
|
2
|
+
import { AttrName, ColumnDeclareType, EntityCollector, isChildContextOf, StmtContextType, TableDeclareType, } from '../common/entityCollector';
|
|
3
3
|
import { EntityContextType } from '../common/types';
|
|
4
4
|
export class HiveEntityCollector extends EntityCollector {
|
|
5
5
|
/** ====== Entity Begin */
|
|
@@ -11,18 +11,57 @@ export class HiveEntityCollector extends EntityCollector {
|
|
|
11
11
|
},
|
|
12
12
|
]);
|
|
13
13
|
}
|
|
14
|
+
/** Table Entity Rules */
|
|
14
15
|
exitTableName(ctx) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
this.pushEntity(ctx, EntityContextType.TABLE, [
|
|
17
|
+
{
|
|
18
|
+
attrName: AttrName.alias,
|
|
19
|
+
endContextList: [TableSourceContext.name, UniqueJoinSourceContext.name],
|
|
20
|
+
},
|
|
21
|
+
], {
|
|
22
|
+
declareType: TableDeclareType.LITERAL,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
/** Virtual Table Entity Rules */
|
|
26
|
+
exitAtomValuesClause(ctx) {
|
|
27
|
+
if (!isChildContextOf(ctx, HiveSqlParser.RULE_fromClause))
|
|
28
|
+
return;
|
|
29
|
+
this.pushEntity(ctx, EntityContextType.TABLE, [
|
|
30
|
+
{
|
|
31
|
+
attrName: AttrName.alias,
|
|
32
|
+
endContextList: [VirtualTableSourceContext.name],
|
|
33
|
+
},
|
|
34
|
+
], {
|
|
35
|
+
declareType: TableDeclareType.EXPRESSION,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
/** SubQuery Table Entity Rules */
|
|
39
|
+
exitQueryStatementExpression(ctx) {
|
|
40
|
+
if (!isChildContextOf(ctx, HiveSqlParser.RULE_fromClause))
|
|
41
|
+
return;
|
|
42
|
+
this.pushEntity(ctx, EntityContextType.TABLE, [
|
|
43
|
+
{
|
|
44
|
+
attrName: AttrName.alias,
|
|
45
|
+
endContextList: [SubQuerySourceContext.name],
|
|
46
|
+
},
|
|
47
|
+
], {
|
|
48
|
+
declareType: TableDeclareType.EXPRESSION,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/** Partitioned Table Entity Rules */
|
|
52
|
+
exitAtomPartitionedTableFunction(ctx) {
|
|
53
|
+
if (!isChildContextOf(ctx, HiveSqlParser.RULE_fromClause))
|
|
54
|
+
return;
|
|
55
|
+
this.pushEntity(ctx, EntityContextType.TABLE, [
|
|
56
|
+
{
|
|
57
|
+
attrName: AttrName.alias,
|
|
58
|
+
endContextList: [PartitionedTableFunctionContext.name],
|
|
59
|
+
},
|
|
60
|
+
], {
|
|
61
|
+
declareType: TableDeclareType.EXPRESSION,
|
|
62
|
+
});
|
|
25
63
|
}
|
|
64
|
+
/** Column Entity Rules */
|
|
26
65
|
exitColumnNameCreate(ctx) {
|
|
27
66
|
this.pushEntity(ctx, EntityContextType.COLUMN_CREATE, [
|
|
28
67
|
{
|
|
@@ -35,6 +74,37 @@ export class HiveEntityCollector extends EntityCollector {
|
|
|
35
74
|
},
|
|
36
75
|
]);
|
|
37
76
|
}
|
|
77
|
+
exitSelectLiteralColumnName(ctx) {
|
|
78
|
+
if (!isChildContextOf(ctx, HiveSqlParser.RULE_selectItem))
|
|
79
|
+
return;
|
|
80
|
+
this.pushEntity(ctx, EntityContextType.COLUMN, [
|
|
81
|
+
{
|
|
82
|
+
attrName: AttrName.alias,
|
|
83
|
+
endContextList: [SelectItemContext.name],
|
|
84
|
+
},
|
|
85
|
+
], {
|
|
86
|
+
declareType: ColumnDeclareType.LITERAL,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
exitSelectExpressionColumnName(ctx) {
|
|
90
|
+
if (!isChildContextOf(ctx, HiveSqlParser.RULE_selectItem))
|
|
91
|
+
return;
|
|
92
|
+
this.pushEntity(ctx, EntityContextType.COLUMN, [
|
|
93
|
+
{
|
|
94
|
+
attrName: AttrName.alias,
|
|
95
|
+
endContextList: [SelectItemContext.name],
|
|
96
|
+
},
|
|
97
|
+
], {
|
|
98
|
+
declareType: ColumnDeclareType.EXPRESSION,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
exitTableAllColumns(ctx) {
|
|
102
|
+
if (!isChildContextOf(ctx, HiveSqlParser.RULE_selectItem))
|
|
103
|
+
return;
|
|
104
|
+
this.pushEntity(ctx, EntityContextType.COLUMN, [], {
|
|
105
|
+
declareType: ColumnDeclareType.ALL,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
38
108
|
exitViewNameCreate(ctx) {
|
|
39
109
|
this.pushEntity(ctx, EntityContextType.VIEW_CREATE, [
|
|
40
110
|
{
|
|
@@ -43,6 +113,9 @@ export class HiveEntityCollector extends EntityCollector {
|
|
|
43
113
|
},
|
|
44
114
|
]);
|
|
45
115
|
}
|
|
116
|
+
exitSelectList(ctx) {
|
|
117
|
+
this.pushEntity(ctx, EntityContextType.QUERY_RESULT);
|
|
118
|
+
}
|
|
46
119
|
exitViewName(ctx) {
|
|
47
120
|
this.pushEntity(ctx, EntityContextType.VIEW);
|
|
48
121
|
}
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
import { ImpalaSqlParserListener } from '../../lib';
|
|
2
|
-
import { ColumnNamePathCreateContext, CreateAggregateFunctionContext, CreateFunctionContext, CreateKuduTableAsSelectContext, CreateSchemaContext, CreateTableLikeContext, CreateTableSelectContext, CreateViewContext, DatabaseNameCreateContext, DatabaseNamePathContext, FunctionNameCreateContext, InsertStatementContext, QueryStatementContext, SingleStatementContext, TableNameCreateContext, TableNamePathContext, ViewNameCreateContext, ViewNamePathContext } from '../../lib/impala/ImpalaSqlParser';
|
|
2
|
+
import { AtomSubQueryTableSourceContext, ColumnNamePathCreateContext, CreateAggregateFunctionContext, CreateFunctionContext, CreateKuduTableAsSelectContext, CreateSchemaContext, CreateTableLikeContext, CreateTableSelectContext, CreateViewContext, DatabaseNameCreateContext, DatabaseNamePathContext, FunctionNameCreateContext, InsertStatementContext, QueryStatementContext, SelectExpressionColumnNameContext, SelectListContext, SelectLiteralColumnNameContext, SingleStatementContext, TableAllColumnsContext, TableNameCreateContext, TableNamePathContext, UnnestContext, ViewNameCreateContext, ViewNamePathContext } from '../../lib/impala/ImpalaSqlParser';
|
|
3
3
|
import { EntityCollector } from '../common/entityCollector';
|
|
4
4
|
export declare class ImpalaEntityCollector extends EntityCollector implements ImpalaSqlParserListener {
|
|
5
5
|
/** ===== Entity begin */
|
|
6
6
|
exitTableNameCreate(ctx: TableNameCreateContext): void;
|
|
7
7
|
exitTableNamePath(ctx: TableNamePathContext): void;
|
|
8
|
+
exitAtomSubQueryTableSource(ctx: AtomSubQueryTableSourceContext): void;
|
|
9
|
+
exitUnnest(ctx: UnnestContext): void;
|
|
8
10
|
exitColumnNamePathCreate(ctx: ColumnNamePathCreateContext): void;
|
|
9
11
|
exitViewNameCreate(ctx: ViewNameCreateContext): void;
|
|
10
12
|
exitViewNamePath(ctx: ViewNamePathContext): void;
|
|
11
13
|
exitDatabaseNamePath(ctx: DatabaseNamePathContext): void;
|
|
12
14
|
exitDatabaseNameCreate(ctx: DatabaseNameCreateContext): void;
|
|
13
15
|
exitFunctionNameCreate(ctx: FunctionNameCreateContext): void;
|
|
16
|
+
exitSelectList(ctx: SelectListContext): void;
|
|
17
|
+
exitSelectLiteralColumnName(ctx: SelectLiteralColumnNameContext): void;
|
|
18
|
+
exitSelectExpressionColumnName(ctx: SelectExpressionColumnNameContext): void;
|
|
19
|
+
exitTableAllColumns(ctx: TableAllColumnsContext): void;
|
|
14
20
|
/** ===== Statement begin */
|
|
15
21
|
enterSingleStatement(ctx: SingleStatementContext): void;
|
|
16
22
|
exitSingleStatement(ctx: SingleStatementContext): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ColumnDefinitionContext, CreateKuduTableAsSelectContext, CreateSchemaContext, CreateTableSelectContext, CreateViewContext, KuduTableElementContext,
|
|
2
|
-
import { AttrName, EntityCollector, StmtContextType } from '../common/entityCollector';
|
|
1
|
+
import { AliasedRelationContext, ColumnDefinitionContext, CreateKuduTableAsSelectContext, CreateSchemaContext, CreateTableSelectContext, CreateViewContext, KuduTableElementContext, SelectItemContext, ViewColumnItemContext, } from '../../lib/impala/ImpalaSqlParser';
|
|
2
|
+
import { AttrName, ColumnDeclareType, EntityCollector, StmtContextType, TableDeclareType, } from '../common/entityCollector';
|
|
3
3
|
import { EntityContextType } from '../common/types';
|
|
4
4
|
export class ImpalaEntityCollector extends EntityCollector {
|
|
5
5
|
/** ===== Entity begin */
|
|
@@ -15,16 +15,34 @@ export class ImpalaEntityCollector extends EntityCollector {
|
|
|
15
15
|
]);
|
|
16
16
|
}
|
|
17
17
|
exitTableNamePath(ctx) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
18
|
+
this.pushEntity(ctx, EntityContextType.TABLE, [
|
|
19
|
+
{
|
|
20
|
+
attrName: AttrName.alias,
|
|
21
|
+
endContextList: [AliasedRelationContext.name],
|
|
22
|
+
},
|
|
23
|
+
], {
|
|
24
|
+
declareType: TableDeclareType.LITERAL,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
exitAtomSubQueryTableSource(ctx) {
|
|
28
|
+
this.pushEntity(ctx, EntityContextType.TABLE, [
|
|
29
|
+
{
|
|
30
|
+
attrName: AttrName.alias,
|
|
31
|
+
endContextList: [AliasedRelationContext.name],
|
|
32
|
+
},
|
|
33
|
+
], {
|
|
34
|
+
declareType: TableDeclareType.EXPRESSION,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
exitUnnest(ctx) {
|
|
38
|
+
this.pushEntity(ctx, EntityContextType.TABLE, [
|
|
39
|
+
{
|
|
40
|
+
attrName: AttrName.alias,
|
|
41
|
+
endContextList: [AliasedRelationContext.name],
|
|
42
|
+
},
|
|
43
|
+
], {
|
|
44
|
+
declareType: TableDeclareType.EXPRESSION,
|
|
45
|
+
});
|
|
28
46
|
}
|
|
29
47
|
exitColumnNamePathCreate(ctx) {
|
|
30
48
|
this.pushEntity(ctx, EntityContextType.COLUMN_CREATE, [
|
|
@@ -71,6 +89,39 @@ export class ImpalaEntityCollector extends EntityCollector {
|
|
|
71
89
|
exitFunctionNameCreate(ctx) {
|
|
72
90
|
this.pushEntity(ctx, EntityContextType.FUNCTION_CREATE);
|
|
73
91
|
}
|
|
92
|
+
exitSelectList(ctx) {
|
|
93
|
+
this.pushEntity(ctx, EntityContextType.QUERY_RESULT);
|
|
94
|
+
}
|
|
95
|
+
exitSelectLiteralColumnName(ctx) {
|
|
96
|
+
this.pushEntity(ctx, EntityContextType.COLUMN, [
|
|
97
|
+
{
|
|
98
|
+
attrName: AttrName.alias,
|
|
99
|
+
endContextList: [SelectItemContext.name],
|
|
100
|
+
},
|
|
101
|
+
], {
|
|
102
|
+
declareType: ColumnDeclareType.LITERAL,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
exitSelectExpressionColumnName(ctx) {
|
|
106
|
+
this.pushEntity(ctx, EntityContextType.COLUMN, [
|
|
107
|
+
{
|
|
108
|
+
attrName: AttrName.alias,
|
|
109
|
+
endContextList: [SelectItemContext.name],
|
|
110
|
+
},
|
|
111
|
+
], {
|
|
112
|
+
declareType: ColumnDeclareType.EXPRESSION,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
exitTableAllColumns(ctx) {
|
|
116
|
+
this.pushEntity(ctx, EntityContextType.COLUMN, [
|
|
117
|
+
{
|
|
118
|
+
attrName: AttrName.alias,
|
|
119
|
+
endContextList: [SelectItemContext.name],
|
|
120
|
+
},
|
|
121
|
+
], {
|
|
122
|
+
declareType: ColumnDeclareType.ALL,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
74
125
|
/** ===== Statement begin */
|
|
75
126
|
enterSingleStatement(ctx) {
|
|
76
127
|
this.pushStmt(ctx, StmtContextType.COMMON_STMT);
|
|
@@ -102,7 +102,8 @@ export class ImpalaSQL extends BasicSQL {
|
|
|
102
102
|
candidateRule.ruleList.includes(ImpalaSqlParser.RULE_whereClause) ||
|
|
103
103
|
candidateRule.ruleList.includes(ImpalaSqlParser.RULE_whenClause) ||
|
|
104
104
|
candidateRule.ruleList.includes(ImpalaSqlParser.RULE_partitionByClause) ||
|
|
105
|
-
candidateRule.ruleList.includes(ImpalaSqlParser.RULE_relation)
|
|
105
|
+
candidateRule.ruleList.includes(ImpalaSqlParser.RULE_relation) ||
|
|
106
|
+
candidateRule.ruleList.includes(ImpalaSqlParser.RULE_functionCallExpression)) {
|
|
106
107
|
syntaxContextType = EntityContextType.COLUMN;
|
|
107
108
|
}
|
|
108
109
|
}
|
|
@@ -25,6 +25,7 @@ export class MySQL extends BasicSQL {
|
|
|
25
25
|
MySqlParser.RULE_functionName,
|
|
26
26
|
MySqlParser.RULE_functionNameCreate,
|
|
27
27
|
MySqlParser.RULE_columnName,
|
|
28
|
+
MySqlParser.RULE_columnNamePath,
|
|
28
29
|
MySqlParser.RULE_columnNameCreate,
|
|
29
30
|
...this.excludeKeywordRules,
|
|
30
31
|
]);
|
|
@@ -88,7 +89,8 @@ export class MySQL extends BasicSQL {
|
|
|
88
89
|
syntaxContextType = EntityContextType.FUNCTION_CREATE;
|
|
89
90
|
break;
|
|
90
91
|
}
|
|
91
|
-
case MySqlParser.RULE_columnName:
|
|
92
|
+
case MySqlParser.RULE_columnName:
|
|
93
|
+
case MySqlParser.RULE_columnNamePath: {
|
|
92
94
|
syntaxContextType = EntityContextType.COLUMN;
|
|
93
95
|
break;
|
|
94
96
|
}
|
|
@@ -1,16 +1,25 @@
|
|
|
1
|
-
import { ColumnCreateTableContext, ColumnNameCreateContext, CopyCreateTableContext, CreateDatabaseContext, CreateFunctionContext, CreateFunctionLoadableContext, CreateViewContext, DatabaseNameContext, DatabaseNameCreateContext, FunctionNameCreateContext, InsertStatementContext, QueryCreateTableContext, SelectStatementContext, SingleStatementContext, TableNameContext, TableNameCreateContext, ViewNameContext, ViewNameCreateContext } from '../../lib/mysql/MySqlParser';
|
|
1
|
+
import { ColumnCreateTableContext, ColumnNameCreateContext, CopyCreateTableContext, CreateDatabaseContext, CreateFunctionContext, CreateFunctionLoadableContext, CreateViewContext, DatabaseNameContext, DatabaseNameCreateContext, FunctionNameCreateContext, InsertStatementContext, QueryCreateTableContext, SelectElementsContext, SelectExpressionElementContext, SelectLiteralColumnNameContext, SelectStatementContext, SingleStatementContext, TableNameContext, TableNameCreateContext, ViewNameContext, ViewNameCreateContext, TableAllColumnsContext, AtomSubQueryTableSourceContext, PureAllColumnsContext, SelectElement_dot_emptyContext } from '../../lib/mysql/MySqlParser';
|
|
2
2
|
import type { MySqlParserListener } from '../../lib/mysql/MySqlParserListener';
|
|
3
3
|
import { EntityCollector } from '../common/entityCollector';
|
|
4
4
|
export declare class MySqlEntityCollector extends EntityCollector implements MySqlParserListener {
|
|
5
5
|
/** ====== Entity Begin */
|
|
6
6
|
exitDatabaseName(ctx: DatabaseNameContext): void;
|
|
7
7
|
exitDatabaseNameCreate(ctx: DatabaseNameCreateContext): void;
|
|
8
|
+
/** Table Entity Rules */
|
|
8
9
|
exitTableName(ctx: TableNameContext): void;
|
|
10
|
+
/** SubQuery Table Entity Rules */
|
|
11
|
+
exitAtomSubQueryTableSource(ctx: AtomSubQueryTableSourceContext): void;
|
|
9
12
|
exitTableNameCreate(ctx: TableNameCreateContext): void;
|
|
10
13
|
exitViewName(ctx: ViewNameContext): void;
|
|
11
14
|
exitViewNameCreate(ctx: ViewNameCreateContext): void;
|
|
12
15
|
exitFunctionNameCreate(ctx: FunctionNameCreateContext): void;
|
|
16
|
+
exitSelectElements(ctx: SelectElementsContext): void;
|
|
13
17
|
exitColumnNameCreate(ctx: ColumnNameCreateContext): void;
|
|
18
|
+
exitTableAllColumns(ctx: TableAllColumnsContext): void;
|
|
19
|
+
exitPureAllColumns(ctx: PureAllColumnsContext): void;
|
|
20
|
+
exitSelectLiteralColumnName(ctx: SelectLiteralColumnNameContext): void;
|
|
21
|
+
exitSelectElement_dot_empty(ctx: SelectElement_dot_emptyContext): void;
|
|
22
|
+
exitSelectExpressionElement(ctx: SelectExpressionElementContext): void;
|
|
14
23
|
/** ===== Statement begin */
|
|
15
24
|
enterSingleStatement(ctx: SingleStatementContext): void;
|
|
16
25
|
exitSingleStatement(ctx: SingleStatementContext): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ColumnCreateTableContext, CreateDefinitionContext, CreateFunctionContext,
|
|
2
|
-
import { AttrName, EntityCollector, StmtContextType } from '../common/entityCollector';
|
|
1
|
+
import { ColumnCreateTableContext, CreateDefinitionContext, CreateFunctionContext, TableSourceItemContext, AtomTableItemContext, SubqueryTableItemContext, SelectElement_labelContext, SelectElement_exprContext, } from '../../lib/mysql/MySqlParser';
|
|
2
|
+
import { AttrName, ColumnDeclareType, EntityCollector, StmtContextType, TableDeclareType, } from '../common/entityCollector';
|
|
3
3
|
import { EntityContextType } from '../common/types';
|
|
4
4
|
export class MySqlEntityCollector extends EntityCollector {
|
|
5
5
|
/** ====== Entity Begin */
|
|
@@ -9,17 +9,27 @@ export class MySqlEntityCollector extends EntityCollector {
|
|
|
9
9
|
exitDatabaseNameCreate(ctx) {
|
|
10
10
|
this.pushEntity(ctx, EntityContextType.DATABASE_CREATE);
|
|
11
11
|
}
|
|
12
|
+
/** Table Entity Rules */
|
|
12
13
|
exitTableName(ctx) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
14
|
+
this.pushEntity(ctx, EntityContextType.TABLE, [
|
|
15
|
+
{
|
|
16
|
+
attrName: AttrName.alias,
|
|
17
|
+
endContextList: [TableSourceItemContext.name, AtomTableItemContext.name],
|
|
18
|
+
},
|
|
19
|
+
], {
|
|
20
|
+
declareType: TableDeclareType.LITERAL,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
/** SubQuery Table Entity Rules */
|
|
24
|
+
exitAtomSubQueryTableSource(ctx) {
|
|
25
|
+
this.pushEntity(ctx, EntityContextType.TABLE, [
|
|
26
|
+
{
|
|
27
|
+
attrName: AttrName.alias,
|
|
28
|
+
endContextList: [TableSourceItemContext.name, SubqueryTableItemContext.name],
|
|
29
|
+
},
|
|
30
|
+
], {
|
|
31
|
+
declareType: TableDeclareType.EXPRESSION,
|
|
32
|
+
});
|
|
23
33
|
}
|
|
24
34
|
exitTableNameCreate(ctx) {
|
|
25
35
|
this.pushEntity(ctx, EntityContextType.TABLE_CREATE, [
|
|
@@ -43,6 +53,9 @@ export class MySqlEntityCollector extends EntityCollector {
|
|
|
43
53
|
},
|
|
44
54
|
]);
|
|
45
55
|
}
|
|
56
|
+
exitSelectElements(ctx) {
|
|
57
|
+
this.pushEntity(ctx, EntityContextType.QUERY_RESULT);
|
|
58
|
+
}
|
|
46
59
|
exitColumnNameCreate(ctx) {
|
|
47
60
|
this.pushEntity(ctx, EntityContextType.COLUMN_CREATE, [
|
|
48
61
|
{
|
|
@@ -55,6 +68,46 @@ export class MySqlEntityCollector extends EntityCollector {
|
|
|
55
68
|
},
|
|
56
69
|
]);
|
|
57
70
|
}
|
|
71
|
+
exitTableAllColumns(ctx) {
|
|
72
|
+
this.pushEntity(ctx, EntityContextType.COLUMN, [], {
|
|
73
|
+
declareType: ColumnDeclareType.ALL,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
exitPureAllColumns(ctx) {
|
|
77
|
+
this.pushEntity(ctx, EntityContextType.COLUMN, [], {
|
|
78
|
+
declareType: ColumnDeclareType.ALL,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
exitSelectLiteralColumnName(ctx) {
|
|
82
|
+
// Handle empty column case (e.g., "select from")
|
|
83
|
+
// When emptyColumn matches, the context has no actual tokens
|
|
84
|
+
if (!ctx.start || !ctx.stop || ctx.start.start > ctx.stop.stop) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
this.pushEntity(ctx, EntityContextType.COLUMN, [
|
|
88
|
+
{
|
|
89
|
+
attrName: AttrName.alias,
|
|
90
|
+
endContextList: [SelectElement_labelContext.name],
|
|
91
|
+
},
|
|
92
|
+
], {
|
|
93
|
+
declareType: ColumnDeclareType.LITERAL,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
exitSelectElement_dot_empty(ctx) {
|
|
97
|
+
this.pushEntity(ctx, EntityContextType.COLUMN, [], {
|
|
98
|
+
declareType: ColumnDeclareType.LITERAL,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
exitSelectExpressionElement(ctx) {
|
|
102
|
+
this.pushEntity(ctx, EntityContextType.COLUMN, [
|
|
103
|
+
{
|
|
104
|
+
attrName: AttrName.alias,
|
|
105
|
+
endContextList: [SelectElement_exprContext.name],
|
|
106
|
+
},
|
|
107
|
+
], {
|
|
108
|
+
declareType: ColumnDeclareType.EXPRESSION,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
58
111
|
/** ===== Statement begin */
|
|
59
112
|
enterSingleStatement(ctx) {
|
|
60
113
|
this.pushStmt(ctx, StmtContextType.COMMON_STMT);
|
|
@@ -14,6 +14,7 @@ export class MysqlErrorListener extends ParseErrorListener {
|
|
|
14
14
|
[MySqlParser.RULE_functionName, 'function'],
|
|
15
15
|
[MySqlParser.RULE_functionNameCreate, 'function'],
|
|
16
16
|
[MySqlParser.RULE_columnName, 'column'],
|
|
17
|
+
[MySqlParser.RULE_columnNamePath, 'column'],
|
|
17
18
|
[MySqlParser.RULE_columnNameCreate, 'column'],
|
|
18
19
|
]);
|
|
19
20
|
}
|
|
@@ -48,6 +49,7 @@ export class MysqlErrorListener extends ParseErrorListener {
|
|
|
48
49
|
case MySqlParser.RULE_tableName:
|
|
49
50
|
case MySqlParser.RULE_functionName:
|
|
50
51
|
case MySqlParser.RULE_viewName:
|
|
52
|
+
case MySqlParser.RULE_columnNamePath:
|
|
51
53
|
case MySqlParser.RULE_columnName: {
|
|
52
54
|
if (!result.includes(`{existing}${name}`)) {
|
|
53
55
|
result.push(`{existing}${name}`);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type AlterTableStmtContext, type ColumnCreateTableContext, type ColumnNameCreateContext, type CreateDatabaseContext, type CreateForeignTableContext, type CreateFunctionStmtContext, type CreateMaterializedViewContext, type CreatePartitionForeignTableContext, type CreateViewContext, type DatabaseNameContext, type DatabaseNameCreateContext, type FunctionNameCreateContext, type InsertStatementContext, type ProcedureNameContext, type ProcedureNameCreateContext, type QueryCreateTableContext, type SelectStatementContext, type SingleStmtContext, type TableNameContext, type TableNameCreateContext, type ViewNameContext, type ViewNameCreateContext } from '../../lib/postgresql/PostgreSqlParser';
|
|
1
|
+
import { type AlterTableStmtContext, type ColumnCreateTableContext, type ColumnNameCreateContext, type CreateDatabaseContext, type CreateForeignTableContext, type CreateFunctionStmtContext, type CreateMaterializedViewContext, type CreatePartitionForeignTableContext, type CreateViewContext, type DatabaseNameContext, type DatabaseNameCreateContext, FuncTableContext, type FunctionNameCreateContext, type InsertStatementContext, type ProcedureNameContext, type ProcedureNameCreateContext, type QueryCreateTableContext, SelectExpressionColumnNameContext, SelectLiteralColumnNameContext, SelectNoParensContext, type SelectStatementContext, SelectWithParensContext, type SingleStmtContext, TableAllColumnsContext, type TableNameContext, type TableNameCreateContext, Target_dot_emptyContext, Target_emptyContext, TargetListContext, type ViewNameContext, type ViewNameCreateContext, XmlTableContext } from '../../lib/postgresql/PostgreSqlParser';
|
|
2
2
|
import type { PostgreSqlParserListener } from '../../lib/postgresql/PostgreSqlParserListener';
|
|
3
3
|
import { EntityCollector } from '../common/entityCollector';
|
|
4
4
|
export declare class PostgreSqlEntityCollector extends EntityCollector implements PostgreSqlParserListener {
|
|
@@ -6,11 +6,20 @@ export declare class PostgreSqlEntityCollector extends EntityCollector implement
|
|
|
6
6
|
exitDatabaseName(ctx: DatabaseNameContext): void;
|
|
7
7
|
exitDatabaseNameCreate(ctx: DatabaseNameCreateContext): void;
|
|
8
8
|
exitTableName(ctx: TableNameContext): void;
|
|
9
|
+
exitXmlTable(ctx: XmlTableContext): void;
|
|
10
|
+
exitFuncTable(ctx: FuncTableContext): void;
|
|
11
|
+
exitSelectWithParens(ctx: SelectWithParensContext): void;
|
|
9
12
|
exitTableNameCreate(ctx: TableNameCreateContext): void;
|
|
10
13
|
exitViewName(ctx: ViewNameContext): void;
|
|
11
14
|
exitViewNameCreate(ctx: ViewNameCreateContext): void;
|
|
12
15
|
exitFunctionNameCreate(ctx: FunctionNameCreateContext): void;
|
|
13
16
|
exitColumnNameCreate(ctx: ColumnNameCreateContext): void;
|
|
17
|
+
exitTargetList(ctx: TargetListContext): void;
|
|
18
|
+
exitTableAllColumns(ctx: TableAllColumnsContext): void;
|
|
19
|
+
exitTarget_empty(ctx: Target_emptyContext): void;
|
|
20
|
+
exitTarget_dot_empty(ctx: Target_dot_emptyContext): void;
|
|
21
|
+
exitSelectExpressionColumnName(ctx: SelectExpressionColumnNameContext): void;
|
|
22
|
+
exitSelectLiteralColumnName(ctx: SelectLiteralColumnNameContext): void;
|
|
14
23
|
exitProcedureName(ctx: ProcedureNameContext): void;
|
|
15
24
|
exitProcedureNameCreate(ctx: ProcedureNameCreateContext): void;
|
|
16
25
|
/** ===== Statement begin */
|
|
@@ -32,6 +41,8 @@ export declare class PostgreSqlEntityCollector extends EntityCollector implement
|
|
|
32
41
|
exitCreateMaterializedView(ctx: CreateMaterializedViewContext): void;
|
|
33
42
|
enterSelectStatement(ctx: SelectStatementContext): void;
|
|
34
43
|
exitSelectStatement(ctx: SelectStatementContext): void;
|
|
44
|
+
enterSelectNoParens(ctx: SelectNoParensContext): void;
|
|
45
|
+
exitSelectNoParens(ctx: SelectNoParensContext): void;
|
|
35
46
|
enterInsertStatement(ctx: InsertStatementContext): void;
|
|
36
47
|
exitInsertStatement(ctx: InsertStatementContext): void;
|
|
37
48
|
enterCreateFunctionStmt(ctx: CreateFunctionStmtContext): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Column_defContext, TableRefContext, } from '../../lib/postgresql/PostgreSqlParser';
|
|
2
|
-
import { AttrName, EntityCollector, StmtContextType } from '../common/entityCollector';
|
|
1
|
+
import { Column_defContext, ExpressionTableContext, PostgreSqlParser, TableRefContext, Target_labelContext, } from '../../lib/postgresql/PostgreSqlParser';
|
|
2
|
+
import { AttrName, ColumnDeclareType, EntityCollector, isChildContextOf, StmtContextType, TableDeclareType, } from '../common/entityCollector';
|
|
3
3
|
import { EntityContextType } from '../common/types';
|
|
4
4
|
export class PostgreSqlEntityCollector extends EntityCollector {
|
|
5
5
|
/** ====== Entity Begin */
|
|
@@ -10,31 +10,57 @@ export class PostgreSqlEntityCollector extends EntityCollector {
|
|
|
10
10
|
this.pushEntity(ctx, EntityContextType.DATABASE_CREATE);
|
|
11
11
|
}
|
|
12
12
|
exitTableName(ctx) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
13
|
+
this.pushEntity(ctx, EntityContextType.TABLE, [
|
|
14
|
+
{
|
|
15
|
+
attrName: AttrName.alias,
|
|
16
|
+
endContextList: [TableRefContext.name],
|
|
17
|
+
},
|
|
18
|
+
], {
|
|
19
|
+
declareType: TableDeclareType.LITERAL,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
exitXmlTable(ctx) {
|
|
23
|
+
this.pushEntity(ctx, EntityContextType.TABLE, [
|
|
24
|
+
{
|
|
25
|
+
attrName: AttrName.alias,
|
|
26
|
+
endContextList: [ExpressionTableContext.name],
|
|
27
|
+
},
|
|
28
|
+
], {
|
|
29
|
+
declareType: TableDeclareType.EXPRESSION,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
exitFuncTable(ctx) {
|
|
33
|
+
this.pushEntity(ctx, EntityContextType.TABLE, [
|
|
34
|
+
{
|
|
35
|
+
attrName: AttrName.alias,
|
|
36
|
+
endContextList: [ExpressionTableContext.name],
|
|
37
|
+
},
|
|
38
|
+
], {
|
|
39
|
+
declareType: TableDeclareType.EXPRESSION,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
exitSelectWithParens(ctx) {
|
|
43
|
+
if (!isChildContextOf(ctx, PostgreSqlParser.RULE_expressionTable))
|
|
44
|
+
return;
|
|
45
|
+
this.pushEntity(ctx, EntityContextType.TABLE, [
|
|
46
|
+
{
|
|
47
|
+
attrName: AttrName.alias,
|
|
48
|
+
endContextList: [ExpressionTableContext.name],
|
|
49
|
+
},
|
|
50
|
+
], {
|
|
51
|
+
declareType: TableDeclareType.EXPRESSION,
|
|
52
|
+
});
|
|
23
53
|
}
|
|
24
54
|
exitTableNameCreate(ctx) {
|
|
25
55
|
this.pushEntity(ctx, EntityContextType.TABLE_CREATE);
|
|
26
56
|
}
|
|
27
57
|
exitViewName(ctx) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
endContextList: [TableRefContext.name],
|
|
35
|
-
},
|
|
36
|
-
]
|
|
37
|
-
: undefined);
|
|
58
|
+
this.pushEntity(ctx, EntityContextType.VIEW, [
|
|
59
|
+
{
|
|
60
|
+
attrName: AttrName.alias,
|
|
61
|
+
endContextList: [TableRefContext.name],
|
|
62
|
+
},
|
|
63
|
+
]);
|
|
38
64
|
}
|
|
39
65
|
exitViewNameCreate(ctx) {
|
|
40
66
|
this.pushEntity(ctx, EntityContextType.VIEW_CREATE);
|
|
@@ -54,6 +80,51 @@ export class PostgreSqlEntityCollector extends EntityCollector {
|
|
|
54
80
|
},
|
|
55
81
|
]);
|
|
56
82
|
}
|
|
83
|
+
exitTargetList(ctx) {
|
|
84
|
+
// Only create QUERY_RESULT for targetList that is direct child of simpleSelect
|
|
85
|
+
if (!isChildContextOf(ctx, PostgreSqlParser.RULE_simpleSelect))
|
|
86
|
+
return;
|
|
87
|
+
this.pushEntity(ctx, EntityContextType.QUERY_RESULT);
|
|
88
|
+
}
|
|
89
|
+
exitTableAllColumns(ctx) {
|
|
90
|
+
if (!isChildContextOf(ctx, PostgreSqlParser.RULE_targetList))
|
|
91
|
+
return;
|
|
92
|
+
this.pushEntity(ctx, EntityContextType.COLUMN, [], {
|
|
93
|
+
declareType: ColumnDeclareType.ALL,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
exitTarget_empty(ctx) {
|
|
97
|
+
// Don't create entity for empty column here
|
|
98
|
+
// The targetList will create QUERY_RESULT entity
|
|
99
|
+
// Empty targetEl means the QUERY_RESULT has no columns
|
|
100
|
+
}
|
|
101
|
+
exitTarget_dot_empty(ctx) {
|
|
102
|
+
// Create COLUMN entity for incomplete column reference (e.g., "tb.|")
|
|
103
|
+
// This allows completion to suggest columns from table "tb"
|
|
104
|
+
this.pushEntity(ctx, EntityContextType.COLUMN, [], {
|
|
105
|
+
declareType: ColumnDeclareType.LITERAL,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
exitSelectExpressionColumnName(ctx) {
|
|
109
|
+
this.pushEntity(ctx, EntityContextType.COLUMN, [
|
|
110
|
+
{
|
|
111
|
+
attrName: AttrName.alias,
|
|
112
|
+
endContextList: [Target_labelContext.name],
|
|
113
|
+
},
|
|
114
|
+
], {
|
|
115
|
+
declareType: ColumnDeclareType.EXPRESSION,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
exitSelectLiteralColumnName(ctx) {
|
|
119
|
+
this.pushEntity(ctx, EntityContextType.COLUMN, [
|
|
120
|
+
{
|
|
121
|
+
attrName: AttrName.alias,
|
|
122
|
+
endContextList: [Target_labelContext.name],
|
|
123
|
+
},
|
|
124
|
+
], {
|
|
125
|
+
declareType: ColumnDeclareType.LITERAL,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
57
128
|
exitProcedureName(ctx) {
|
|
58
129
|
this.pushEntity(ctx, EntityContextType.PROCEDURE);
|
|
59
130
|
}
|
|
@@ -115,6 +186,12 @@ export class PostgreSqlEntityCollector extends EntityCollector {
|
|
|
115
186
|
exitSelectStatement(ctx) {
|
|
116
187
|
this.popStmt();
|
|
117
188
|
}
|
|
189
|
+
enterSelectNoParens(ctx) {
|
|
190
|
+
this.pushStmt(ctx, StmtContextType.SELECT_STMT);
|
|
191
|
+
}
|
|
192
|
+
exitSelectNoParens(ctx) {
|
|
193
|
+
this.popStmt();
|
|
194
|
+
}
|
|
118
195
|
enterInsertStatement(ctx) {
|
|
119
196
|
this.pushStmt(ctx, StmtContextType.INSERT_STMT);
|
|
120
197
|
}
|
|
@@ -30,6 +30,7 @@ export class SparkSQL extends BasicSQL {
|
|
|
30
30
|
SparkSqlParser.RULE_functionNameCreate,
|
|
31
31
|
SparkSqlParser.RULE_columnName,
|
|
32
32
|
SparkSqlParser.RULE_columnNamePath,
|
|
33
|
+
SparkSqlParser.RULE_columnNamePathAllowEmpty,
|
|
33
34
|
SparkSqlParser.RULE_columnNameCreate,
|
|
34
35
|
...this.excludeKeywordRules,
|
|
35
36
|
]);
|
|
@@ -101,7 +102,8 @@ export class SparkSQL extends BasicSQL {
|
|
|
101
102
|
syntaxContextType = EntityContextType.COLUMN_CREATE;
|
|
102
103
|
break;
|
|
103
104
|
}
|
|
104
|
-
case SparkSqlParser.RULE_columnNamePath:
|
|
105
|
+
case SparkSqlParser.RULE_columnNamePath:
|
|
106
|
+
case SparkSqlParser.RULE_columnNamePathAllowEmpty: {
|
|
105
107
|
if (candidateRule.ruleList.includes(SparkSqlParser.RULE_whenClause) ||
|
|
106
108
|
candidateRule.ruleList.includes(SparkSqlParser.RULE_whereClause) ||
|
|
107
109
|
candidateRule.ruleList.includes(SparkSqlParser.RULE_joinRelation) ||
|
|
@@ -1,16 +1,28 @@
|
|
|
1
|
-
import { ColumnNameCreateContext, CreateFunctionContext, CreateNamespaceContext, CreateTableContext, CreateTableLikeContext, CreateTempViewUsingContext, CreateViewContext, FunctionNameCreateContext, InsertFromQueryContext, MultipleInsertContext, NamespaceNameContext, NamespaceNameCreateContext, QueryStatementContext, ReplaceTableContext, SingleStatementContext, TableNameContext, TableNameCreateContext, ViewNameContext, ViewNameCreateContext } from '../../lib/spark/SparkSqlParser';
|
|
1
|
+
import { AtomSubQueryTableSourceContext, ColumnNameCreateContext, CreateFunctionContext, CreateNamespaceContext, CreateTableContext, CreateTableLikeContext, CreateTempViewUsingContext, CreateViewContext, FunctionNameCreateContext, FunctionTableSourceContext, InlineTableSourceContext, InsertFromQueryContext, MultipleInsertContext, NamespaceNameContext, NamespaceNameCreateContext, QueryStatementContext, ReplaceTableContext, SelectExpressionColumnNameContext, SelectListContext, SelectLiteralColumnNameContext, SingleStatementContext, TableAllColumnsContext, TableNameContext, TableNameCreateContext, ViewNameContext, ViewNameCreateContext } from '../../lib/spark/SparkSqlParser';
|
|
2
2
|
import type { SparkSqlParserListener } from '../../lib/spark/SparkSqlParserListener';
|
|
3
3
|
import { EntityCollector } from '../common/entityCollector';
|
|
4
4
|
export declare class SparkEntityCollector extends EntityCollector implements SparkSqlParserListener {
|
|
5
5
|
/** ====== Entity Begin */
|
|
6
6
|
exitNamespaceName(ctx: NamespaceNameContext): void;
|
|
7
7
|
exitNamespaceNameCreate(ctx: NamespaceNameCreateContext): void;
|
|
8
|
+
/** Table Entity Rules */
|
|
8
9
|
exitTableName(ctx: TableNameContext): void;
|
|
10
|
+
/** Inline Table Entity Rules */
|
|
11
|
+
exitInlineTableSource(ctx: InlineTableSourceContext): void;
|
|
12
|
+
/** Function Table Entity Rules */
|
|
13
|
+
exitFunctionTableSource(ctx: FunctionTableSourceContext): void;
|
|
14
|
+
/** SubQuery Table Entity Rules */
|
|
15
|
+
exitAtomSubQueryTableSource(ctx: AtomSubQueryTableSourceContext): void;
|
|
9
16
|
exitTableNameCreate(ctx: TableNameCreateContext): void;
|
|
10
17
|
exitViewName(ctx: ViewNameContext): void;
|
|
18
|
+
exitSelectList(ctx: SelectListContext): void;
|
|
11
19
|
exitViewNameCreate(ctx: ViewNameCreateContext): void;
|
|
12
20
|
exitFunctionNameCreate(ctx: FunctionNameCreateContext): void;
|
|
21
|
+
/** Column Entity Rules */
|
|
13
22
|
exitColumnNameCreate(ctx: ColumnNameCreateContext): void;
|
|
23
|
+
exitSelectLiteralColumnName(ctx: SelectLiteralColumnNameContext): void;
|
|
24
|
+
exitSelectExpressionColumnName(ctx: SelectExpressionColumnNameContext): void;
|
|
25
|
+
exitTableAllColumns(ctx: TableAllColumnsContext): void;
|
|
14
26
|
/** ===== Statement begin */
|
|
15
27
|
enterSingleStatement(ctx: SingleStatementContext): void;
|
|
16
28
|
exitSingleStatement(ctx: SingleStatementContext): void;
|