rawsql-ts 0.16.0 → 0.17.0
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 +161 -875
- package/dist/esm/index.d.ts +7 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +22 -20
- package/dist/esm/index.min.js.map +4 -4
- package/dist/esm/models/Clause.d.ts +15 -3
- package/dist/esm/models/Clause.js +2 -1
- package/dist/esm/models/Clause.js.map +1 -1
- package/dist/esm/models/CreateTableQuery.d.ts +3 -0
- package/dist/esm/models/CreateTableQuery.js +5 -4
- package/dist/esm/models/CreateTableQuery.js.map +1 -1
- package/dist/esm/models/DDLStatements.d.ts +71 -0
- package/dist/esm/models/DDLStatements.js +63 -0
- package/dist/esm/models/DDLStatements.js.map +1 -1
- package/dist/esm/models/KeywordTrie.d.ts +2 -3
- package/dist/esm/models/KeywordTrie.js +26 -27
- package/dist/esm/models/KeywordTrie.js.map +1 -1
- package/dist/esm/models/SqlPrintToken.d.ts +1 -0
- package/dist/esm/models/SqlPrintToken.js +1 -0
- package/dist/esm/models/SqlPrintToken.js.map +1 -1
- package/dist/esm/parsers/CheckpointStatementParser.d.ts +8 -0
- package/dist/esm/parsers/CheckpointStatementParser.js +14 -0
- package/dist/esm/parsers/CheckpointStatementParser.js.map +1 -0
- package/dist/esm/parsers/ClusterStatementParser.d.ts +8 -0
- package/dist/esm/parsers/ClusterStatementParser.js +14 -0
- package/dist/esm/parsers/ClusterStatementParser.js.map +1 -0
- package/dist/esm/parsers/CommandExpressionParser.js.map +1 -1
- package/dist/esm/parsers/CommentOnParser.d.ts +23 -0
- package/dist/esm/parsers/CommentOnParser.js +61 -0
- package/dist/esm/parsers/CommentOnParser.js.map +1 -0
- package/dist/esm/parsers/CommonTableParser.d.ts +5 -1
- package/dist/esm/parsers/CommonTableParser.js +94 -16
- package/dist/esm/parsers/CommonTableParser.js.map +1 -1
- package/dist/esm/parsers/CreateIndexParser.js +12 -6
- package/dist/esm/parsers/CreateIndexParser.js.map +1 -1
- package/dist/esm/parsers/CreateTableParser.d.ts +2 -0
- package/dist/esm/parsers/CreateTableParser.js +11 -2
- package/dist/esm/parsers/CreateTableParser.js.map +1 -1
- package/dist/esm/parsers/ExplainStatementParser.js.map +1 -1
- package/dist/esm/parsers/FullNameParser.js +35 -3
- package/dist/esm/parsers/FullNameParser.js.map +1 -1
- package/dist/esm/parsers/OrderByClauseParser.js.map +1 -1
- package/dist/esm/parsers/ReindexStatementParser.d.ts +8 -0
- package/dist/esm/parsers/ReindexStatementParser.js +14 -0
- package/dist/esm/parsers/ReindexStatementParser.js.map +1 -0
- package/dist/esm/parsers/SelectQueryParser.js.map +1 -1
- package/dist/esm/parsers/SourceParser.js +6 -1
- package/dist/esm/parsers/SourceParser.js.map +1 -1
- package/dist/esm/parsers/SqlParser.d.ts +12 -2
- package/dist/esm/parsers/SqlParser.js +117 -251
- package/dist/esm/parsers/SqlParser.js.map +1 -1
- package/dist/esm/parsers/SqlPrintTokenParser.d.ts +1 -0
- package/dist/esm/parsers/SqlPrintTokenParser.js +32 -4
- package/dist/esm/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/esm/parsers/SqlTokenizer.d.ts +5 -0
- package/dist/esm/parsers/SqlTokenizer.js +181 -67
- package/dist/esm/parsers/SqlTokenizer.js.map +1 -1
- package/dist/esm/parsers/UsingClauseParser.js.map +1 -1
- package/dist/esm/parsers/VacuumStatementParser.d.ts +8 -0
- package/dist/esm/parsers/VacuumStatementParser.js +14 -0
- package/dist/esm/parsers/VacuumStatementParser.js.map +1 -0
- package/dist/esm/tokenReaders/CommandTokenReader.js +22 -4
- package/dist/esm/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/esm/tokenReaders/StringSpecifierTokenReader.d.ts +2 -0
- package/dist/esm/tokenReaders/StringSpecifierTokenReader.js +30 -13
- package/dist/esm/tokenReaders/StringSpecifierTokenReader.js.map +1 -1
- package/dist/esm/tokenReaders/TokenReaderManager.d.ts +0 -7
- package/dist/esm/tokenReaders/TokenReaderManager.js +16 -48
- package/dist/esm/tokenReaders/TokenReaderManager.js.map +1 -1
- package/dist/esm/transformers/AliasRenamer.d.ts +1 -0
- package/dist/esm/transformers/AliasRenamer.js +7 -1
- package/dist/esm/transformers/AliasRenamer.js.map +1 -1
- package/dist/esm/transformers/CTECollector.d.ts +5 -2
- package/dist/esm/transformers/CTECollector.js +49 -0
- package/dist/esm/transformers/CTECollector.js.map +1 -1
- package/dist/esm/transformers/CTEDependencyTracer.d.ts +6 -1
- package/dist/esm/transformers/CTEDependencyTracer.js +44 -2
- package/dist/esm/transformers/CTEDependencyTracer.js.map +1 -1
- package/dist/esm/transformers/CTEDisabler.d.ts +6 -0
- package/dist/esm/transformers/CTEDisabler.js +19 -0
- package/dist/esm/transformers/CTEDisabler.js.map +1 -1
- package/dist/esm/transformers/CTERenamer.js +5 -2
- package/dist/esm/transformers/CTERenamer.js.map +1 -1
- package/dist/esm/transformers/ColumnReferenceCollector.d.ts +4 -0
- package/dist/esm/transformers/ColumnReferenceCollector.js +69 -1
- package/dist/esm/transformers/ColumnReferenceCollector.js.map +1 -1
- package/dist/esm/transformers/DeleteResultSelectConverter.js.map +1 -1
- package/dist/esm/transformers/DynamicQueryBuilder.d.ts +87 -11
- package/dist/esm/transformers/DynamicQueryBuilder.js +237 -9
- package/dist/esm/transformers/DynamicQueryBuilder.js.map +1 -1
- package/dist/esm/transformers/ExistsPredicateInjector.d.ts +33 -0
- package/dist/esm/transformers/ExistsPredicateInjector.js +294 -0
- package/dist/esm/transformers/ExistsPredicateInjector.js.map +1 -0
- package/dist/esm/transformers/FixtureCteBuilder.js +5 -2
- package/dist/esm/transformers/FixtureCteBuilder.js.map +1 -1
- package/dist/esm/transformers/InsertResultSelectConverter.d.ts +1 -0
- package/dist/esm/transformers/InsertResultSelectConverter.js +28 -7
- package/dist/esm/transformers/InsertResultSelectConverter.js.map +1 -1
- package/dist/esm/transformers/LinePrinter.d.ts +4 -2
- package/dist/esm/transformers/LinePrinter.js +93 -22
- package/dist/esm/transformers/LinePrinter.js.map +1 -1
- package/dist/esm/transformers/MergeResultSelectConverter.js.map +1 -1
- package/dist/esm/transformers/OptimizeUnusedLeftJoins.d.ts +33 -0
- package/dist/esm/transformers/OptimizeUnusedLeftJoins.js +333 -0
- package/dist/esm/transformers/OptimizeUnusedLeftJoins.js.map +1 -0
- package/dist/esm/transformers/PruneOptionalConditionBranches.d.ts +10 -0
- package/dist/esm/transformers/PruneOptionalConditionBranches.js +197 -0
- package/dist/esm/transformers/PruneOptionalConditionBranches.js.map +1 -0
- package/dist/esm/transformers/SchemaCollector.d.ts +3 -0
- package/dist/esm/transformers/SchemaCollector.js +37 -1
- package/dist/esm/transformers/SchemaCollector.js.map +1 -1
- package/dist/esm/transformers/SelectValueCollector.d.ts +5 -0
- package/dist/esm/transformers/SelectValueCollector.js +44 -2
- package/dist/esm/transformers/SelectValueCollector.js.map +1 -1
- package/dist/esm/transformers/SqlParamInjector.d.ts +5 -1
- package/dist/esm/transformers/SqlParamInjector.js +47 -11
- package/dist/esm/transformers/SqlParamInjector.js.map +1 -1
- package/dist/esm/transformers/SqlPrinter.js +8 -2
- package/dist/esm/transformers/SqlPrinter.js.map +1 -1
- package/dist/esm/transformers/TableSourceCollector.d.ts +9 -1
- package/dist/esm/transformers/TableSourceCollector.js +72 -5
- package/dist/esm/transformers/TableSourceCollector.js.map +1 -1
- package/dist/esm/transformers/UpdateResultSelectConverter.js.map +1 -1
- package/dist/esm/transformers/UpstreamSelectQueryFinder.d.ts +5 -0
- package/dist/esm/transformers/UpstreamSelectQueryFinder.js +46 -1
- package/dist/esm/transformers/UpstreamSelectQueryFinder.js.map +1 -1
- package/dist/esm/utils/CommentUtils.d.ts +1 -0
- package/dist/esm/utils/CommentUtils.js +14 -4
- package/dist/esm/utils/CommentUtils.js.map +1 -1
- package/dist/esm/utils/MultiQuerySplitter.d.ts +7 -11
- package/dist/esm/utils/MultiQuerySplitter.js +105 -66
- package/dist/esm/utils/MultiQuerySplitter.js.map +1 -1
- package/dist/esm/utils/ParameterRemover.d.ts +4 -0
- package/dist/esm/utils/ParameterRemover.js +23 -0
- package/dist/esm/utils/ParameterRemover.js.map +1 -1
- package/dist/esm/utils/ScopeResolver.d.ts +5 -2
- package/dist/esm/utils/ScopeResolver.js +37 -18
- package/dist/esm/utils/ScopeResolver.js.map +1 -1
- package/dist/esm/utils/charLookupTable.d.ts +6 -0
- package/dist/esm/utils/charLookupTable.js +9 -1
- package/dist/esm/utils/charLookupTable.js.map +1 -1
- package/dist/esm/utils/serialTypeNormalization.d.ts +15 -0
- package/dist/esm/utils/serialTypeNormalization.js +55 -0
- package/dist/esm/utils/serialTypeNormalization.js.map +1 -0
- package/dist/esm/utils/stringUtils.js +51 -26
- package/dist/esm/utils/stringUtils.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +21 -19
- package/dist/index.min.js.map +4 -4
- package/dist/models/CreateTableQuery.js +5 -4
- package/dist/models/CreateTableQuery.js.map +1 -1
- package/dist/models/DDLStatements.js +14 -1
- package/dist/models/DDLStatements.js.map +1 -1
- package/dist/models/KeywordTrie.js +26 -27
- package/dist/models/KeywordTrie.js.map +1 -1
- package/dist/models/SqlPrintToken.js +1 -0
- package/dist/models/SqlPrintToken.js.map +1 -1
- package/dist/parsers/CommentOnParser.js +65 -0
- package/dist/parsers/CommentOnParser.js.map +1 -0
- package/dist/parsers/CreateIndexParser.js +12 -6
- package/dist/parsers/CreateIndexParser.js.map +1 -1
- package/dist/parsers/CreateTableParser.js +6 -1
- package/dist/parsers/CreateTableParser.js.map +1 -1
- package/dist/parsers/FullNameParser.js +35 -3
- package/dist/parsers/FullNameParser.js.map +1 -1
- package/dist/parsers/SqlParser.js +93 -307
- package/dist/parsers/SqlParser.js.map +1 -1
- package/dist/parsers/SqlPrintTokenParser.js +27 -3
- package/dist/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/parsers/SqlTokenizer.js +176 -67
- package/dist/parsers/SqlTokenizer.js.map +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/models/CreateTableQuery.d.ts +3 -0
- package/dist/src/models/DDLStatements.d.ts +15 -0
- package/dist/src/models/KeywordTrie.d.ts +2 -3
- package/dist/src/models/SqlPrintToken.d.ts +1 -0
- package/dist/src/parsers/CommentOnParser.d.ts +23 -0
- package/dist/src/parsers/CreateTableParser.d.ts +1 -0
- package/dist/src/parsers/SqlParser.d.ts +8 -2
- package/dist/src/parsers/SqlPrintTokenParser.d.ts +1 -0
- package/dist/src/parsers/SqlTokenizer.d.ts +5 -0
- package/dist/src/tokenReaders/StringSpecifierTokenReader.d.ts +2 -0
- package/dist/src/tokenReaders/TokenReaderManager.d.ts +0 -7
- package/dist/src/transformers/DynamicQueryBuilder.d.ts +12 -0
- package/dist/src/transformers/LinePrinter.d.ts +4 -2
- package/dist/src/transformers/PruneOptionalConditionBranches.d.ts +10 -0
- package/dist/src/utils/CommentUtils.d.ts +1 -0
- package/dist/src/utils/MultiQuerySplitter.d.ts +7 -11
- package/dist/tokenReaders/CommandTokenReader.js +21 -4
- package/dist/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/tokenReaders/StringSpecifierTokenReader.js +30 -13
- package/dist/tokenReaders/StringSpecifierTokenReader.js.map +1 -1
- package/dist/tokenReaders/TokenReaderManager.js +16 -48
- package/dist/tokenReaders/TokenReaderManager.js.map +1 -1
- package/dist/transformers/DynamicQueryBuilder.js +24 -2
- package/dist/transformers/DynamicQueryBuilder.js.map +1 -1
- package/dist/transformers/LinePrinter.js +93 -22
- package/dist/transformers/LinePrinter.js.map +1 -1
- package/dist/transformers/PruneOptionalConditionBranches.js +201 -0
- package/dist/transformers/PruneOptionalConditionBranches.js.map +1 -0
- package/dist/tsconfig.browser.tsbuildinfo +1 -1
- package/dist/utils/CommentUtils.js +14 -4
- package/dist/utils/CommentUtils.js.map +1 -1
- package/dist/utils/MultiQuerySplitter.js +105 -66
- package/dist/utils/MultiQuerySplitter.js.map +1 -1
- package/dist/utils/stringUtils.js +42 -23
- package/dist/utils/stringUtils.js.map +1 -1
- package/package.json +65 -64
- package/LICENSE +0 -21
|
@@ -16,6 +16,11 @@ import { ExplainStatementParser } from './ExplainStatementParser';
|
|
|
16
16
|
import { CreateSequenceParser, AlterSequenceParser } from './SequenceParser';
|
|
17
17
|
import { CreateSchemaParser } from './CreateSchemaParser';
|
|
18
18
|
import { DropSchemaParser } from './DropSchemaParser';
|
|
19
|
+
import { VacuumStatementParser } from './VacuumStatementParser';
|
|
20
|
+
import { ReindexStatementParser } from './ReindexStatementParser';
|
|
21
|
+
import { ClusterStatementParser } from './ClusterStatementParser';
|
|
22
|
+
import { CheckpointStatementParser } from './CheckpointStatementParser';
|
|
23
|
+
import { CommentOnParser } from './CommentOnParser';
|
|
19
24
|
/**
|
|
20
25
|
* Canonical entry point for SQL parsing.
|
|
21
26
|
* Delegates to dedicated parsers for SELECT, INSERT, UPDATE, and DELETE statements, and is designed to embrace additional statement types next.
|
|
@@ -26,6 +31,19 @@ export class SqlParser {
|
|
|
26
31
|
const skipEmpty = (_a = options.skipEmptyStatements) !== null && _a !== void 0 ? _a : true;
|
|
27
32
|
const mode = (_b = options.mode) !== null && _b !== void 0 ? _b : 'single';
|
|
28
33
|
const tokenizer = new SqlTokenizer(sql);
|
|
34
|
+
// Fast path for the common single-statement parse used by benchmarks and most callers.
|
|
35
|
+
if (mode === 'single' && skipEmpty) {
|
|
36
|
+
const first = this.readNextMeaningfulStatement(tokenizer, 0);
|
|
37
|
+
if (!first) {
|
|
38
|
+
throw new Error('[SqlParser] No SQL statements found in input.');
|
|
39
|
+
}
|
|
40
|
+
const parsed = this.dispatchParse(first, 1);
|
|
41
|
+
const remainder = this.readNextMeaningfulStatement(tokenizer, first.nextPosition);
|
|
42
|
+
if (remainder) {
|
|
43
|
+
throw new Error('[SqlParser] Unexpected additional statement detected at index 2. Use parseMany or set mode to "multiple" to allow multiple statements.');
|
|
44
|
+
}
|
|
45
|
+
return parsed;
|
|
46
|
+
}
|
|
29
47
|
// Acquire the first meaningful statement so future dispatching can inspect its leading keyword.
|
|
30
48
|
const first = this.consumeNextStatement(tokenizer, 0, skipEmpty);
|
|
31
49
|
if (!first) {
|
|
@@ -103,6 +121,7 @@ export class SqlParser {
|
|
|
103
121
|
return this.parseDeleteStatement(segment, statementIndex);
|
|
104
122
|
case 'create table':
|
|
105
123
|
case 'create temporary table':
|
|
124
|
+
case 'create unlogged table':
|
|
106
125
|
return this.parseCreateTableStatement(segment, statementIndex);
|
|
107
126
|
case 'merge into':
|
|
108
127
|
return this.parseMergeStatement(segment, statementIndex);
|
|
@@ -127,305 +146,134 @@ export class SqlParser {
|
|
|
127
146
|
return this.parseAlterSequenceStatement(segment, statementIndex);
|
|
128
147
|
case 'drop constraint':
|
|
129
148
|
return this.parseDropConstraintStatement(segment, statementIndex);
|
|
149
|
+
case 'comment on table':
|
|
150
|
+
case 'comment on column':
|
|
151
|
+
return this.parseCommentOnStatement(segment, statementIndex);
|
|
130
152
|
case 'analyze':
|
|
131
153
|
return this.parseAnalyzeStatement(segment, statementIndex);
|
|
132
154
|
case 'explain':
|
|
133
155
|
return this.parseExplainStatement(segment, statementIndex);
|
|
156
|
+
case 'vacuum':
|
|
157
|
+
case 'vacuum full':
|
|
158
|
+
return this.parseVacuumStatement(segment, statementIndex);
|
|
159
|
+
case 'reindex':
|
|
160
|
+
case 'reindex table':
|
|
161
|
+
case 'reindex index':
|
|
162
|
+
case 'reindex schema':
|
|
163
|
+
return this.parseReindexStatement(segment, statementIndex);
|
|
164
|
+
case 'cluster':
|
|
165
|
+
return this.parseClusterStatement(segment, statementIndex);
|
|
166
|
+
case 'checkpoint':
|
|
167
|
+
return this.parseCheckpointStatement(segment, statementIndex);
|
|
134
168
|
default:
|
|
135
169
|
throw new Error(`[SqlParser] Statement ${statementIndex} starts with unsupported token "${segment.lexemes[0].value}".`);
|
|
136
170
|
}
|
|
137
171
|
}
|
|
138
172
|
static parseSelectStatement(segment, statementIndex) {
|
|
139
|
-
|
|
140
|
-
try {
|
|
141
|
-
const result = SelectQueryParser.parseFromLexeme(segment.lexemes, 0);
|
|
142
|
-
if (result.newIndex < segment.lexemes.length) {
|
|
143
|
-
const unexpected = segment.lexemes[result.newIndex];
|
|
144
|
-
const position = (_b = (_a = unexpected.position) === null || _a === void 0 ? void 0 : _a.startPosition) !== null && _b !== void 0 ? _b : segment.statementStart;
|
|
145
|
-
throw new Error(`[SqlParser] Unexpected token "${unexpected.value}" in statement ${statementIndex} at character ${position}.`);
|
|
146
|
-
}
|
|
147
|
-
return result.value;
|
|
148
|
-
}
|
|
149
|
-
catch (error) {
|
|
150
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
151
|
-
throw new Error(`[SqlParser] Failed to parse SELECT statement ${statementIndex}: ${message}`);
|
|
152
|
-
}
|
|
173
|
+
return this.parseStatementWithParser(segment, statementIndex, 'SELECT', (lexemes, startIndex) => SelectQueryParser.parseFromLexeme(lexemes, startIndex));
|
|
153
174
|
}
|
|
154
175
|
static parseExplainStatement(segment, statementIndex) {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
if (nestedStart >= lexemes.length) {
|
|
159
|
-
throw new Error("[ExplainStatementParser] Missing statement after EXPLAIN options.");
|
|
160
|
-
}
|
|
161
|
-
const nestedSegment = {
|
|
162
|
-
lexemes: lexemes.slice(nestedStart),
|
|
163
|
-
statementStart: segment.statementStart,
|
|
164
|
-
statementEnd: segment.statementEnd,
|
|
165
|
-
nextPosition: segment.nextPosition,
|
|
166
|
-
rawText: segment.rawText,
|
|
167
|
-
leadingComments: segment.leadingComments,
|
|
168
|
-
};
|
|
169
|
-
const statement = this.dispatchParse(nestedSegment, statementIndex);
|
|
170
|
-
return { value: statement, newIndex: lexemes.length };
|
|
171
|
-
});
|
|
172
|
-
if (result.newIndex < segment.lexemes.length) {
|
|
173
|
-
const unexpected = segment.lexemes[result.newIndex];
|
|
174
|
-
const position = (_b = (_a = unexpected.position) === null || _a === void 0 ? void 0 : _a.startPosition) !== null && _b !== void 0 ? _b : segment.statementStart;
|
|
175
|
-
throw new Error(`[SqlParser] Unexpected token "${unexpected.value}" in EXPLAIN statement ${statementIndex} at character ${position}.`);
|
|
176
|
+
return this.parseStatementWithCallback(segment, statementIndex, 'EXPLAIN', () => ExplainStatementParser.parseFromLexeme(segment.lexemes, 0, (lexemes, nestedStart) => {
|
|
177
|
+
if (nestedStart >= lexemes.length) {
|
|
178
|
+
throw new Error("[ExplainStatementParser] Missing statement after EXPLAIN options.");
|
|
176
179
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
180
|
+
const nestedSegment = {
|
|
181
|
+
lexemes: lexemes.slice(nestedStart),
|
|
182
|
+
statementStart: segment.statementStart,
|
|
183
|
+
statementEnd: segment.statementEnd,
|
|
184
|
+
nextPosition: segment.nextPosition,
|
|
185
|
+
rawText: segment.rawText,
|
|
186
|
+
leadingComments: segment.leadingComments,
|
|
187
|
+
};
|
|
188
|
+
const statement = this.dispatchParse(nestedSegment, statementIndex);
|
|
189
|
+
return { value: statement, newIndex: lexemes.length };
|
|
190
|
+
}), `EXPLAIN statement ${statementIndex}`);
|
|
191
|
+
}
|
|
192
|
+
static parseVacuumStatement(segment, statementIndex) {
|
|
193
|
+
return this.parseStatementWithParser(segment, statementIndex, 'VACUUM', (lexemes, startIndex) => VacuumStatementParser.parseFromLexeme(lexemes, startIndex), `VACUUM statement ${statementIndex}`);
|
|
194
|
+
}
|
|
195
|
+
static parseReindexStatement(segment, statementIndex) {
|
|
196
|
+
return this.parseStatementWithParser(segment, statementIndex, 'REINDEX', (lexemes, startIndex) => ReindexStatementParser.parseFromLexeme(lexemes, startIndex), `REINDEX statement ${statementIndex}`);
|
|
197
|
+
}
|
|
198
|
+
static parseClusterStatement(segment, statementIndex) {
|
|
199
|
+
return this.parseStatementWithParser(segment, statementIndex, 'CLUSTER', (lexemes, startIndex) => ClusterStatementParser.parseFromLexeme(lexemes, startIndex), `CLUSTER statement ${statementIndex}`);
|
|
200
|
+
}
|
|
201
|
+
static parseCheckpointStatement(segment, statementIndex) {
|
|
202
|
+
return this.parseStatementWithParser(segment, statementIndex, 'CHECKPOINT', (lexemes, startIndex) => CheckpointStatementParser.parseFromLexeme(lexemes, startIndex), `CHECKPOINT statement ${statementIndex}`);
|
|
183
203
|
}
|
|
184
204
|
static parseInsertStatement(segment, statementIndex) {
|
|
185
|
-
|
|
186
|
-
try {
|
|
187
|
-
const result = InsertQueryParser.parseFromLexeme(segment.lexemes, 0);
|
|
188
|
-
if (result.newIndex < segment.lexemes.length) {
|
|
189
|
-
const unexpected = segment.lexemes[result.newIndex];
|
|
190
|
-
const position = (_b = (_a = unexpected.position) === null || _a === void 0 ? void 0 : _a.startPosition) !== null && _b !== void 0 ? _b : segment.statementStart;
|
|
191
|
-
throw new Error(`[SqlParser] Unexpected token "${unexpected.value}" in statement ${statementIndex} at character ${position}.`);
|
|
192
|
-
}
|
|
193
|
-
return result.value;
|
|
194
|
-
}
|
|
195
|
-
catch (error) {
|
|
196
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
197
|
-
throw new Error(`[SqlParser] Failed to parse INSERT statement ${statementIndex}: ${message}`);
|
|
198
|
-
}
|
|
205
|
+
return this.parseStatementWithParser(segment, statementIndex, 'INSERT', (lexemes, startIndex) => InsertQueryParser.parseFromLexeme(lexemes, startIndex));
|
|
199
206
|
}
|
|
200
207
|
static parseUpdateStatement(segment, statementIndex) {
|
|
201
|
-
|
|
202
|
-
try {
|
|
203
|
-
const result = UpdateQueryParser.parseFromLexeme(segment.lexemes, 0);
|
|
204
|
-
if (result.newIndex < segment.lexemes.length) {
|
|
205
|
-
const unexpected = segment.lexemes[result.newIndex];
|
|
206
|
-
const position = (_b = (_a = unexpected.position) === null || _a === void 0 ? void 0 : _a.startPosition) !== null && _b !== void 0 ? _b : segment.statementStart;
|
|
207
|
-
throw new Error(`[SqlParser] Unexpected token "${unexpected.value}" in statement ${statementIndex} at character ${position}.`);
|
|
208
|
-
}
|
|
209
|
-
return result.value;
|
|
210
|
-
}
|
|
211
|
-
catch (error) {
|
|
212
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
213
|
-
throw new Error(`[SqlParser] Failed to parse UPDATE statement ${statementIndex}: ${message}`);
|
|
214
|
-
}
|
|
208
|
+
return this.parseStatementWithParser(segment, statementIndex, 'UPDATE', (lexemes, startIndex) => UpdateQueryParser.parseFromLexeme(lexemes, startIndex));
|
|
215
209
|
}
|
|
216
210
|
static parseDeleteStatement(segment, statementIndex) {
|
|
217
|
-
|
|
218
|
-
try {
|
|
219
|
-
const result = DeleteQueryParser.parseFromLexeme(segment.lexemes, 0);
|
|
220
|
-
// Guard against trailing tokens that would indicate multiple statements in DELETE parsing.
|
|
221
|
-
if (result.newIndex < segment.lexemes.length) {
|
|
222
|
-
const unexpected = segment.lexemes[result.newIndex];
|
|
223
|
-
const position = (_b = (_a = unexpected.position) === null || _a === void 0 ? void 0 : _a.startPosition) !== null && _b !== void 0 ? _b : segment.statementStart;
|
|
224
|
-
throw new Error(`[SqlParser] Unexpected token "${unexpected.value}" in statement ${statementIndex} at character ${position}.`);
|
|
225
|
-
}
|
|
226
|
-
return result.value;
|
|
227
|
-
}
|
|
228
|
-
catch (error) {
|
|
229
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
230
|
-
throw new Error(`[SqlParser] Failed to parse DELETE statement ${statementIndex}: ${message}`);
|
|
231
|
-
}
|
|
211
|
+
return this.parseStatementWithParser(segment, statementIndex, 'DELETE', (lexemes, startIndex) => DeleteQueryParser.parseFromLexeme(lexemes, startIndex));
|
|
232
212
|
}
|
|
233
213
|
static parseCreateTableStatement(segment, statementIndex) {
|
|
234
|
-
|
|
235
|
-
try {
|
|
236
|
-
const result = CreateTableParser.parseFromLexeme(segment.lexemes, 0);
|
|
237
|
-
if (result.newIndex < segment.lexemes.length) {
|
|
238
|
-
const unexpected = segment.lexemes[result.newIndex];
|
|
239
|
-
const position = (_b = (_a = unexpected.position) === null || _a === void 0 ? void 0 : _a.startPosition) !== null && _b !== void 0 ? _b : segment.statementStart;
|
|
240
|
-
throw new Error(`[SqlParser] Unexpected token "${unexpected.value}" in statement ${statementIndex} at character ${position}.`);
|
|
241
|
-
}
|
|
242
|
-
return result.value;
|
|
243
|
-
}
|
|
244
|
-
catch (error) {
|
|
245
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
246
|
-
throw new Error(`[SqlParser] Failed to parse CREATE TABLE statement ${statementIndex}: ${message}`);
|
|
247
|
-
}
|
|
214
|
+
return this.parseStatementWithParser(segment, statementIndex, 'CREATE TABLE', (lexemes, startIndex) => CreateTableParser.parseFromLexeme(lexemes, startIndex));
|
|
248
215
|
}
|
|
249
216
|
static parseDropTableStatement(segment, statementIndex) {
|
|
250
|
-
|
|
251
|
-
try {
|
|
252
|
-
const result = DropTableParser.parseFromLexeme(segment.lexemes, 0);
|
|
253
|
-
if (result.newIndex < segment.lexemes.length) {
|
|
254
|
-
const unexpected = segment.lexemes[result.newIndex];
|
|
255
|
-
const position = (_b = (_a = unexpected.position) === null || _a === void 0 ? void 0 : _a.startPosition) !== null && _b !== void 0 ? _b : segment.statementStart;
|
|
256
|
-
throw new Error(`[SqlParser] Unexpected token "${unexpected.value}" in statement ${statementIndex} at character ${position}.`);
|
|
257
|
-
}
|
|
258
|
-
return result.value;
|
|
259
|
-
}
|
|
260
|
-
catch (error) {
|
|
261
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
262
|
-
throw new Error(`[SqlParser] Failed to parse DROP TABLE statement ${statementIndex}: ${message}`);
|
|
263
|
-
}
|
|
217
|
+
return this.parseStatementWithParser(segment, statementIndex, 'DROP TABLE', (lexemes, startIndex) => DropTableParser.parseFromLexeme(lexemes, startIndex));
|
|
264
218
|
}
|
|
265
219
|
static parseDropSchemaStatement(segment, statementIndex) {
|
|
266
|
-
|
|
267
|
-
try {
|
|
268
|
-
const result = DropSchemaParser.parseFromLexeme(segment.lexemes, 0);
|
|
269
|
-
if (result.newIndex < segment.lexemes.length) {
|
|
270
|
-
const unexpected = segment.lexemes[result.newIndex];
|
|
271
|
-
const position = (_b = (_a = unexpected.position) === null || _a === void 0 ? void 0 : _a.startPosition) !== null && _b !== void 0 ? _b : segment.statementStart;
|
|
272
|
-
throw new Error(`[SqlParser] Unexpected token "${unexpected.value}" in statement ${statementIndex} at character ${position}.`);
|
|
273
|
-
}
|
|
274
|
-
return result.value;
|
|
275
|
-
}
|
|
276
|
-
catch (error) {
|
|
277
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
278
|
-
throw new Error(`[SqlParser] Failed to parse DROP SCHEMA statement ${statementIndex}: ${message}`);
|
|
279
|
-
}
|
|
220
|
+
return this.parseStatementWithParser(segment, statementIndex, 'DROP SCHEMA', (lexemes, startIndex) => DropSchemaParser.parseFromLexeme(lexemes, startIndex));
|
|
280
221
|
}
|
|
281
222
|
static parseDropIndexStatement(segment, statementIndex) {
|
|
282
|
-
|
|
283
|
-
try {
|
|
284
|
-
const result = DropIndexParser.parseFromLexeme(segment.lexemes, 0);
|
|
285
|
-
if (result.newIndex < segment.lexemes.length) {
|
|
286
|
-
const unexpected = segment.lexemes[result.newIndex];
|
|
287
|
-
const position = (_b = (_a = unexpected.position) === null || _a === void 0 ? void 0 : _a.startPosition) !== null && _b !== void 0 ? _b : segment.statementStart;
|
|
288
|
-
throw new Error(`[SqlParser] Unexpected token "${unexpected.value}" in statement ${statementIndex} at character ${position}.`);
|
|
289
|
-
}
|
|
290
|
-
return result.value;
|
|
291
|
-
}
|
|
292
|
-
catch (error) {
|
|
293
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
294
|
-
throw new Error(`[SqlParser] Failed to parse DROP INDEX statement ${statementIndex}: ${message}`);
|
|
295
|
-
}
|
|
223
|
+
return this.parseStatementWithParser(segment, statementIndex, 'DROP INDEX', (lexemes, startIndex) => DropIndexParser.parseFromLexeme(lexemes, startIndex));
|
|
296
224
|
}
|
|
297
225
|
static parseCreateIndexStatement(segment, statementIndex) {
|
|
298
|
-
|
|
299
|
-
try {
|
|
300
|
-
const result = CreateIndexParser.parseFromLexeme(segment.lexemes, 0);
|
|
301
|
-
if (result.newIndex < segment.lexemes.length) {
|
|
302
|
-
const unexpected = segment.lexemes[result.newIndex];
|
|
303
|
-
const position = (_b = (_a = unexpected.position) === null || _a === void 0 ? void 0 : _a.startPosition) !== null && _b !== void 0 ? _b : segment.statementStart;
|
|
304
|
-
throw new Error(`[SqlParser] Unexpected token "${unexpected.value}" in statement ${statementIndex} at character ${position}.`);
|
|
305
|
-
}
|
|
306
|
-
return result.value;
|
|
307
|
-
}
|
|
308
|
-
catch (error) {
|
|
309
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
310
|
-
throw new Error(`[SqlParser] Failed to parse CREATE INDEX statement ${statementIndex}: ${message}`);
|
|
311
|
-
}
|
|
226
|
+
return this.parseStatementWithParser(segment, statementIndex, 'CREATE INDEX', (lexemes, startIndex) => CreateIndexParser.parseFromLexeme(lexemes, startIndex));
|
|
312
227
|
}
|
|
313
228
|
static parseCreateSchemaStatement(segment, statementIndex) {
|
|
314
|
-
|
|
315
|
-
try {
|
|
316
|
-
const result = CreateSchemaParser.parseFromLexeme(segment.lexemes, 0);
|
|
317
|
-
if (result.newIndex < segment.lexemes.length) {
|
|
318
|
-
const unexpected = segment.lexemes[result.newIndex];
|
|
319
|
-
const position = (_b = (_a = unexpected.position) === null || _a === void 0 ? void 0 : _a.startPosition) !== null && _b !== void 0 ? _b : segment.statementStart;
|
|
320
|
-
throw new Error(`[SqlParser] Unexpected token "${unexpected.value}" in statement ${statementIndex} at character ${position}.`);
|
|
321
|
-
}
|
|
322
|
-
return result.value;
|
|
323
|
-
}
|
|
324
|
-
catch (error) {
|
|
325
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
326
|
-
throw new Error(`[SqlParser] Failed to parse CREATE SCHEMA statement ${statementIndex}: ${message}`);
|
|
327
|
-
}
|
|
229
|
+
return this.parseStatementWithParser(segment, statementIndex, 'CREATE SCHEMA', (lexemes, startIndex) => CreateSchemaParser.parseFromLexeme(lexemes, startIndex));
|
|
328
230
|
}
|
|
329
231
|
static parseCreateSequenceStatement(segment, statementIndex) {
|
|
330
|
-
|
|
331
|
-
try {
|
|
332
|
-
const result = CreateSequenceParser.parseFromLexeme(segment.lexemes, 0);
|
|
333
|
-
// Ensure no trailing lexemes remain after the CREATE SEQUENCE clause.
|
|
334
|
-
if (result.newIndex < segment.lexemes.length) {
|
|
335
|
-
const unexpected = segment.lexemes[result.newIndex];
|
|
336
|
-
const position = (_b = (_a = unexpected.position) === null || _a === void 0 ? void 0 : _a.startPosition) !== null && _b !== void 0 ? _b : segment.statementStart;
|
|
337
|
-
throw new Error(`[SqlParser] Unexpected token "${unexpected.value}" in statement ${statementIndex} at character ${position}.`);
|
|
338
|
-
}
|
|
339
|
-
return result.value;
|
|
340
|
-
}
|
|
341
|
-
catch (error) {
|
|
342
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
343
|
-
throw new Error(`[SqlParser] Failed to parse CREATE SEQUENCE statement ${statementIndex}: ${message}`);
|
|
344
|
-
}
|
|
232
|
+
return this.parseStatementWithParser(segment, statementIndex, 'CREATE SEQUENCE', (lexemes, startIndex) => CreateSequenceParser.parseFromLexeme(lexemes, startIndex));
|
|
345
233
|
}
|
|
346
234
|
static parseAlterSequenceStatement(segment, statementIndex) {
|
|
347
|
-
|
|
348
|
-
try {
|
|
349
|
-
const result = AlterSequenceParser.parseFromLexeme(segment.lexemes, 0);
|
|
350
|
-
// Validate that the ALTER SEQUENCE statement consumed all available tokens.
|
|
351
|
-
if (result.newIndex < segment.lexemes.length) {
|
|
352
|
-
const unexpected = segment.lexemes[result.newIndex];
|
|
353
|
-
const position = (_b = (_a = unexpected.position) === null || _a === void 0 ? void 0 : _a.startPosition) !== null && _b !== void 0 ? _b : segment.statementStart;
|
|
354
|
-
throw new Error(`[SqlParser] Unexpected token "${unexpected.value}" in statement ${statementIndex} at character ${position}.`);
|
|
355
|
-
}
|
|
356
|
-
return result.value;
|
|
357
|
-
}
|
|
358
|
-
catch (error) {
|
|
359
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
360
|
-
throw new Error(`[SqlParser] Failed to parse ALTER SEQUENCE statement ${statementIndex}: ${message}`);
|
|
361
|
-
}
|
|
235
|
+
return this.parseStatementWithParser(segment, statementIndex, 'ALTER SEQUENCE', (lexemes, startIndex) => AlterSequenceParser.parseFromLexeme(lexemes, startIndex));
|
|
362
236
|
}
|
|
363
237
|
static parseAlterTableStatement(segment, statementIndex) {
|
|
364
|
-
|
|
365
|
-
try {
|
|
366
|
-
const result = AlterTableParser.parseFromLexeme(segment.lexemes, 0);
|
|
367
|
-
if (result.newIndex < segment.lexemes.length) {
|
|
368
|
-
const unexpected = segment.lexemes[result.newIndex];
|
|
369
|
-
const position = (_b = (_a = unexpected.position) === null || _a === void 0 ? void 0 : _a.startPosition) !== null && _b !== void 0 ? _b : segment.statementStart;
|
|
370
|
-
throw new Error(`[SqlParser] Unexpected token "${unexpected.value}" in statement ${statementIndex} at character ${position}.`);
|
|
371
|
-
}
|
|
372
|
-
return result.value;
|
|
373
|
-
}
|
|
374
|
-
catch (error) {
|
|
375
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
376
|
-
throw new Error(`[SqlParser] Failed to parse ALTER TABLE statement ${statementIndex}: ${message}`);
|
|
377
|
-
}
|
|
238
|
+
return this.parseStatementWithParser(segment, statementIndex, 'ALTER TABLE', (lexemes, startIndex) => AlterTableParser.parseFromLexeme(lexemes, startIndex));
|
|
378
239
|
}
|
|
379
240
|
static parseDropConstraintStatement(segment, statementIndex) {
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
const unexpected = segment.lexemes[result.newIndex];
|
|
385
|
-
const position = (_b = (_a = unexpected.position) === null || _a === void 0 ? void 0 : _a.startPosition) !== null && _b !== void 0 ? _b : segment.statementStart;
|
|
386
|
-
throw new Error(`[SqlParser] Unexpected token "${unexpected.value}" in statement ${statementIndex} at character ${position}.`);
|
|
387
|
-
}
|
|
388
|
-
return result.value;
|
|
389
|
-
}
|
|
390
|
-
catch (error) {
|
|
391
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
392
|
-
throw new Error(`[SqlParser] Failed to parse DROP CONSTRAINT statement ${statementIndex}: ${message}`);
|
|
393
|
-
}
|
|
241
|
+
return this.parseStatementWithParser(segment, statementIndex, 'DROP CONSTRAINT', (lexemes, startIndex) => DropConstraintParser.parseFromLexeme(lexemes, startIndex));
|
|
242
|
+
}
|
|
243
|
+
static parseCommentOnStatement(segment, statementIndex) {
|
|
244
|
+
return this.parseStatementWithParser(segment, statementIndex, 'COMMENT ON', (lexemes, startIndex) => CommentOnParser.parseFromLexeme(lexemes, startIndex));
|
|
394
245
|
}
|
|
395
246
|
static parseAnalyzeStatement(segment, statementIndex) {
|
|
396
|
-
|
|
247
|
+
return this.parseStatementWithParser(segment, statementIndex, 'ANALYZE', (lexemes, startIndex) => AnalyzeStatementParser.parseFromLexeme(lexemes, startIndex));
|
|
248
|
+
}
|
|
249
|
+
static parseMergeStatement(segment, statementIndex) {
|
|
250
|
+
return this.parseStatementWithParser(segment, statementIndex, 'MERGE', (lexemes, startIndex) => MergeQueryParser.parseFromLexeme(lexemes, startIndex));
|
|
251
|
+
}
|
|
252
|
+
static parseStatementWithParser(segment, statementIndex, statementLabel, parser, trailingContext = `statement ${statementIndex}`) {
|
|
253
|
+
return this.parseStatementWithCallback(segment, statementIndex, statementLabel, () => parser(segment.lexemes, 0), trailingContext);
|
|
254
|
+
}
|
|
255
|
+
static parseStatementWithCallback(segment, statementIndex, statementLabel, parse, trailingContext = `statement ${statementIndex}`) {
|
|
397
256
|
try {
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
if (result.newIndex < segment.lexemes.length) {
|
|
402
|
-
const unexpected = segment.lexemes[result.newIndex];
|
|
403
|
-
const position = (_b = (_a = unexpected.position) === null || _a === void 0 ? void 0 : _a.startPosition) !== null && _b !== void 0 ? _b : segment.statementStart;
|
|
404
|
-
throw new Error(`[SqlParser] Unexpected token "${unexpected.value}" in statement ${statementIndex} at character ${position}.`);
|
|
405
|
-
}
|
|
257
|
+
const result = parse();
|
|
258
|
+
// Keep trailing-token validation centralized so every statement parser reports the same shape of error.
|
|
259
|
+
this.assertFullyConsumed(segment, result.newIndex, trailingContext);
|
|
406
260
|
return result.value;
|
|
407
261
|
}
|
|
408
262
|
catch (error) {
|
|
409
|
-
|
|
410
|
-
throw new Error(`[SqlParser] Failed to parse ANALYZE statement ${statementIndex}: ${message}`);
|
|
263
|
+
throw new Error(`[SqlParser] Failed to parse ${statementLabel} statement ${statementIndex}: ${this.errorMessage(error)}`);
|
|
411
264
|
}
|
|
412
265
|
}
|
|
413
|
-
static
|
|
266
|
+
static assertFullyConsumed(segment, newIndex, trailingContext) {
|
|
414
267
|
var _a, _b;
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
if (result.newIndex < segment.lexemes.length) {
|
|
418
|
-
// Guard against trailing tokens that would indicate parsing stopped prematurely.
|
|
419
|
-
const unexpected = segment.lexemes[result.newIndex];
|
|
420
|
-
const position = (_b = (_a = unexpected.position) === null || _a === void 0 ? void 0 : _a.startPosition) !== null && _b !== void 0 ? _b : segment.statementStart;
|
|
421
|
-
throw new Error(`[SqlParser] Unexpected token "${unexpected.value}" in statement ${statementIndex} at character ${position}.`);
|
|
422
|
-
}
|
|
423
|
-
return result.value;
|
|
424
|
-
}
|
|
425
|
-
catch (error) {
|
|
426
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
427
|
-
throw new Error(`[SqlParser] Failed to parse MERGE statement ${statementIndex}: ${message}`);
|
|
268
|
+
if (newIndex >= segment.lexemes.length) {
|
|
269
|
+
return;
|
|
428
270
|
}
|
|
271
|
+
const unexpected = segment.lexemes[newIndex];
|
|
272
|
+
const position = (_b = (_a = unexpected.position) === null || _a === void 0 ? void 0 : _a.startPosition) !== null && _b !== void 0 ? _b : segment.statementStart;
|
|
273
|
+
throw new Error(`[SqlParser] Unexpected token "${unexpected.value}" in ${trailingContext} at character ${position}.`);
|
|
274
|
+
}
|
|
275
|
+
static errorMessage(error) {
|
|
276
|
+
return error instanceof Error ? error.message : String(error);
|
|
429
277
|
}
|
|
430
278
|
static getCommandAfterWith(lexemes) {
|
|
431
279
|
var _a;
|
|
@@ -438,6 +286,24 @@ export class SqlParser {
|
|
|
438
286
|
return null;
|
|
439
287
|
}
|
|
440
288
|
}
|
|
289
|
+
static readNextMeaningfulStatement(tokenizer, cursor) {
|
|
290
|
+
let localCursor = cursor;
|
|
291
|
+
let carry = null;
|
|
292
|
+
while (true) {
|
|
293
|
+
const segment = tokenizer.readNextStatement(localCursor, carry);
|
|
294
|
+
carry = null;
|
|
295
|
+
if (!segment) {
|
|
296
|
+
return null;
|
|
297
|
+
}
|
|
298
|
+
if (segment.lexemes.length > 0) {
|
|
299
|
+
return segment;
|
|
300
|
+
}
|
|
301
|
+
localCursor = segment.nextPosition;
|
|
302
|
+
if (segment.leadingComments && segment.leadingComments.length > 0) {
|
|
303
|
+
carry = segment.leadingComments;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
441
307
|
static consumeNextStatement(tokenizer, cursor, skipEmpty) {
|
|
442
308
|
let localCursor = cursor;
|
|
443
309
|
let carry = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlParser.js","sourceRoot":"","sources":["../../../src/parsers/SqlParser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SqlParser.js","sourceRoot":"","sources":["../../../src/parsers/SqlParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -304,6 +304,7 @@ export declare class SqlPrintTokenParser implements SqlComponentVisitor<SqlPrint
|
|
|
304
304
|
private visitDropTableStatement;
|
|
305
305
|
private visitDropIndexStatement;
|
|
306
306
|
private visitDropSchemaStatement;
|
|
307
|
+
private visitCommentOnStatement;
|
|
307
308
|
private visitAlterTableStatement;
|
|
308
309
|
private visitAlterTableAddConstraint;
|
|
309
310
|
private visitAlterTableDropConstraint;
|
|
@@ -12,7 +12,7 @@ import { UpdateQuery } from "../models/UpdateQuery";
|
|
|
12
12
|
import { DeleteQuery } from "../models/DeleteQuery";
|
|
13
13
|
import { CreateTableQuery, TableColumnDefinition, ColumnConstraintDefinition, TableConstraintDefinition, ReferenceDefinition } from "../models/CreateTableQuery";
|
|
14
14
|
import { MergeQuery, MergeWhenClause, MergeUpdateAction, MergeDeleteAction, MergeInsertAction, MergeDoNothingAction } from "../models/MergeQuery";
|
|
15
|
-
import { DropTableStatement, DropIndexStatement, CreateIndexStatement, CreateSchemaStatement, DropSchemaStatement, IndexColumnDefinition, AlterTableStatement, AlterTableAddConstraint, AlterTableDropConstraint, AlterTableAddColumn, AlterTableDropColumn, AlterTableAlterColumnDefault, DropConstraintStatement, ExplainStatement, AnalyzeStatement, CreateSequenceStatement, AlterSequenceStatement } from "../models/DDLStatements";
|
|
15
|
+
import { DropTableStatement, DropIndexStatement, CreateIndexStatement, CreateSchemaStatement, DropSchemaStatement, CommentOnStatement, IndexColumnDefinition, AlterTableStatement, AlterTableAddConstraint, AlterTableDropConstraint, AlterTableAddColumn, AlterTableDropColumn, AlterTableAlterColumnDefault, DropConstraintStatement, ExplainStatement, AnalyzeStatement, CreateSequenceStatement, AlterSequenceStatement } from "../models/DDLStatements";
|
|
16
16
|
export var ParameterStyle;
|
|
17
17
|
(function (ParameterStyle) {
|
|
18
18
|
ParameterStyle["Anonymous"] = "anonymous";
|
|
@@ -264,6 +264,7 @@ export class SqlPrintTokenParser {
|
|
|
264
264
|
this.handlers.set(DropTableStatement.kind, (expr) => this.visitDropTableStatement(expr));
|
|
265
265
|
this.handlers.set(DropIndexStatement.kind, (expr) => this.visitDropIndexStatement(expr));
|
|
266
266
|
this.handlers.set(DropSchemaStatement.kind, (expr) => this.visitDropSchemaStatement(expr));
|
|
267
|
+
this.handlers.set(CommentOnStatement.kind, (expr) => this.visitCommentOnStatement(expr));
|
|
267
268
|
this.handlers.set(AlterTableStatement.kind, (expr) => this.visitAlterTableStatement(expr));
|
|
268
269
|
this.handlers.set(AlterTableAddConstraint.kind, (expr) => this.visitAlterTableAddConstraint(expr));
|
|
269
270
|
this.handlers.set(AlterTableDropConstraint.kind, (expr) => this.visitAlterTableDropConstraint(expr));
|
|
@@ -1574,9 +1575,16 @@ export class SqlPrintTokenParser {
|
|
|
1574
1575
|
const beforeComments = arg.getPositionedComments('before');
|
|
1575
1576
|
const afterComments = arg.getPositionedComments('after');
|
|
1576
1577
|
if (beforeComments.length > 0) {
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1578
|
+
if (arg.value instanceof CaseExpression) {
|
|
1579
|
+
const commentBlocks = this.createCommentBlocks(beforeComments);
|
|
1580
|
+
token.innerTokens.push(...commentBlocks);
|
|
1581
|
+
token.innerTokens.push(new SqlPrintToken(SqlPrintTokenType.commentNewline, ''));
|
|
1582
|
+
}
|
|
1583
|
+
else {
|
|
1584
|
+
const commentTokens = this.createInlineCommentSequence(beforeComments);
|
|
1585
|
+
token.innerTokens.push(...commentTokens);
|
|
1586
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
1587
|
+
}
|
|
1580
1588
|
}
|
|
1581
1589
|
token.innerTokens.push(this.visit(arg.value));
|
|
1582
1590
|
if (afterComments.length > 0 && !isParenExpression) {
|
|
@@ -1980,6 +1988,10 @@ export class SqlPrintTokenParser {
|
|
|
1980
1988
|
token.innerTokens.push(this.visit(arg.argument));
|
|
1981
1989
|
}
|
|
1982
1990
|
token.innerTokens.push(SqlPrintTokenParser.PAREN_CLOSE_TOKEN);
|
|
1991
|
+
if (arg.withOrdinality) {
|
|
1992
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
1993
|
+
token.innerTokens.push(new SqlPrintToken(SqlPrintTokenType.keyword, 'with ordinality'));
|
|
1994
|
+
}
|
|
1983
1995
|
return token;
|
|
1984
1996
|
}
|
|
1985
1997
|
visitSourceAliasExpression(arg) {
|
|
@@ -3079,6 +3091,22 @@ export class SqlPrintTokenParser {
|
|
|
3079
3091
|
}
|
|
3080
3092
|
return token;
|
|
3081
3093
|
}
|
|
3094
|
+
visitCommentOnStatement(arg) {
|
|
3095
|
+
const keyword = arg.targetKind === 'table' ? 'comment on table' : 'comment on column';
|
|
3096
|
+
const token = new SqlPrintToken(SqlPrintTokenType.keyword, keyword, SqlPrintTokenContainerType.CommentOnStatement);
|
|
3097
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
3098
|
+
token.innerTokens.push(arg.target.accept(this));
|
|
3099
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
3100
|
+
token.innerTokens.push(new SqlPrintToken(SqlPrintTokenType.keyword, 'is'));
|
|
3101
|
+
token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
|
|
3102
|
+
if (arg.comment === null) {
|
|
3103
|
+
token.innerTokens.push(new SqlPrintToken(SqlPrintTokenType.keyword, 'null'));
|
|
3104
|
+
}
|
|
3105
|
+
else {
|
|
3106
|
+
token.innerTokens.push(arg.comment.accept(this));
|
|
3107
|
+
}
|
|
3108
|
+
return token;
|
|
3109
|
+
}
|
|
3082
3110
|
visitAlterTableStatement(arg) {
|
|
3083
3111
|
const keywordParts = ['alter', 'table'];
|
|
3084
3112
|
if (arg.ifExists) {
|