rawsql-ts 0.11.43-beta → 0.12.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 +12 -12
- package/dist/esm/index.js +18 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +15 -19
- package/dist/esm/index.min.js.map +4 -4
- package/dist/esm/src/index.d.ts +18 -0
- package/dist/esm/src/index.js +18 -0
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/models/BinarySelectQuery.d.ts +25 -1
- package/dist/esm/src/models/BinarySelectQuery.js +28 -0
- package/dist/esm/src/models/BinarySelectQuery.js.map +1 -1
- package/dist/esm/src/models/Clause.d.ts +14 -2
- package/dist/esm/src/models/Clause.js +26 -1
- package/dist/esm/src/models/Clause.js.map +1 -1
- package/dist/esm/src/models/CreateTableQuery.d.ts +99 -5
- package/dist/esm/src/models/CreateTableQuery.js +85 -10
- package/dist/esm/src/models/CreateTableQuery.js.map +1 -1
- package/dist/esm/src/models/DDLStatements.d.ts +195 -0
- package/dist/esm/src/models/DDLStatements.js +201 -0
- package/dist/esm/src/models/DDLStatements.js.map +1 -0
- package/dist/esm/src/models/DeleteQuery.d.ts +17 -0
- package/dist/esm/src/models/DeleteQuery.js +16 -0
- package/dist/esm/src/models/DeleteQuery.js.map +1 -0
- package/dist/esm/src/models/InsertQuery.d.ts +7 -1
- package/dist/esm/src/models/InsertQuery.js +6 -2
- package/dist/esm/src/models/InsertQuery.js.map +1 -1
- package/dist/esm/src/models/MergeQuery.d.ts +63 -0
- package/dist/esm/src/models/MergeQuery.js +94 -0
- package/dist/esm/src/models/MergeQuery.js.map +1 -0
- package/dist/esm/src/models/SelectQuery.d.ts +37 -1
- package/dist/esm/src/models/SelectQuery.js +4 -1
- package/dist/esm/src/models/SelectQuery.js.map +1 -1
- package/dist/esm/src/models/SimpleSelectQuery.d.ts +29 -1
- package/dist/esm/src/models/SimpleSelectQuery.js +32 -0
- package/dist/esm/src/models/SimpleSelectQuery.js.map +1 -1
- package/dist/esm/src/models/SqlComponent.d.ts +2 -1
- package/dist/esm/src/models/SqlComponent.js +1 -1
- package/dist/esm/src/models/SqlComponent.js.map +1 -1
- package/dist/esm/src/models/SqlPrintToken.d.ts +36 -0
- package/dist/esm/src/models/SqlPrintToken.js +35 -0
- package/dist/esm/src/models/SqlPrintToken.js.map +1 -1
- package/dist/esm/src/models/ValuesQuery.d.ts +25 -1
- package/dist/esm/src/models/ValuesQuery.js +28 -0
- package/dist/esm/src/models/ValuesQuery.js.map +1 -1
- package/dist/esm/src/parsers/AlterTableParser.d.ts +25 -0
- package/dist/esm/src/parsers/AlterTableParser.js +428 -0
- package/dist/esm/src/parsers/AlterTableParser.js.map +1 -0
- package/dist/esm/src/parsers/AnalyzeStatementParser.d.ts +13 -0
- package/dist/esm/src/parsers/AnalyzeStatementParser.js +90 -0
- package/dist/esm/src/parsers/AnalyzeStatementParser.js.map +1 -0
- package/dist/esm/src/parsers/CreateIndexParser.d.ts +16 -0
- package/dist/esm/src/parsers/CreateIndexParser.js +237 -0
- package/dist/esm/src/parsers/CreateIndexParser.js.map +1 -0
- package/dist/esm/src/parsers/CreateTableParser.d.ts +41 -0
- package/dist/esm/src/parsers/CreateTableParser.js +734 -0
- package/dist/esm/src/parsers/CreateTableParser.js.map +1 -0
- package/dist/esm/src/parsers/DeleteClauseParser.d.ts +11 -0
- package/dist/esm/src/parsers/DeleteClauseParser.js +33 -0
- package/dist/esm/src/parsers/DeleteClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/DeleteQueryParser.d.ts +16 -0
- package/dist/esm/src/parsers/DeleteQueryParser.js +73 -0
- package/dist/esm/src/parsers/DeleteQueryParser.js.map +1 -0
- package/dist/esm/src/parsers/DropConstraintParser.d.ts +12 -0
- package/dist/esm/src/parsers/DropConstraintParser.js +47 -0
- package/dist/esm/src/parsers/DropConstraintParser.js.map +1 -0
- package/dist/esm/src/parsers/DropIndexParser.d.ts +12 -0
- package/dist/esm/src/parsers/DropIndexParser.js +69 -0
- package/dist/esm/src/parsers/DropIndexParser.js.map +1 -0
- package/dist/esm/src/parsers/DropTableParser.d.ts +12 -0
- package/dist/esm/src/parsers/DropTableParser.js +59 -0
- package/dist/esm/src/parsers/DropTableParser.js.map +1 -0
- package/dist/esm/src/parsers/ExplainStatementParser.d.ts +23 -0
- package/dist/esm/src/parsers/ExplainStatementParser.js +185 -0
- package/dist/esm/src/parsers/ExplainStatementParser.js.map +1 -0
- package/dist/esm/src/parsers/FunctionExpressionParser.d.ts +4 -0
- package/dist/esm/src/parsers/FunctionExpressionParser.js +25 -8
- package/dist/esm/src/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/esm/src/parsers/InsertQueryParser.js +103 -31
- package/dist/esm/src/parsers/InsertQueryParser.js.map +1 -1
- package/dist/esm/src/parsers/MergeQueryParser.d.ts +26 -0
- package/dist/esm/src/parsers/MergeQueryParser.js +479 -0
- package/dist/esm/src/parsers/MergeQueryParser.js.map +1 -0
- package/dist/esm/src/parsers/ParenExpressionParser.js +25 -0
- package/dist/esm/src/parsers/ParenExpressionParser.js.map +1 -1
- package/dist/esm/src/parsers/ReturningClauseParser.js +50 -7
- package/dist/esm/src/parsers/ReturningClauseParser.js.map +1 -1
- package/dist/esm/src/parsers/SelectClauseParser.js +3 -3
- package/dist/esm/src/parsers/SelectClauseParser.js.map +1 -1
- package/dist/esm/src/parsers/SelectQueryParser.d.ts +4 -0
- package/dist/esm/src/parsers/SelectQueryParser.js +4 -0
- package/dist/esm/src/parsers/SelectQueryParser.js.map +1 -1
- package/dist/esm/src/parsers/SetClauseParser.js +97 -15
- package/dist/esm/src/parsers/SetClauseParser.js.map +1 -1
- package/dist/esm/src/parsers/SqlParser.d.ts +40 -0
- package/dist/esm/src/parsers/SqlParser.js +400 -0
- package/dist/esm/src/parsers/SqlParser.js.map +1 -0
- package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +65 -3
- package/dist/esm/src/parsers/SqlPrintTokenParser.js +1145 -38
- package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/esm/src/parsers/SqlTokenizer.d.ts +24 -2
- package/dist/esm/src/parsers/SqlTokenizer.js +135 -74
- package/dist/esm/src/parsers/SqlTokenizer.js.map +1 -1
- package/dist/esm/src/parsers/UpdateQueryParser.js +11 -1
- package/dist/esm/src/parsers/UpdateQueryParser.js.map +1 -1
- package/dist/esm/src/parsers/UsingClauseParser.d.ts +11 -0
- package/dist/esm/src/parsers/UsingClauseParser.js +29 -0
- package/dist/esm/src/parsers/UsingClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/ValueParser.js +5 -1
- package/dist/esm/src/parsers/ValueParser.js.map +1 -1
- package/dist/esm/src/parsers/ValuesQueryParser.d.ts +0 -2
- package/dist/esm/src/parsers/ValuesQueryParser.js +5 -45
- package/dist/esm/src/parsers/ValuesQueryParser.js.map +1 -1
- package/dist/esm/src/parsers/utils/LexemeCommentUtils.d.ts +6 -0
- package/dist/esm/src/parsers/utils/LexemeCommentUtils.js +26 -0
- package/dist/esm/src/parsers/utils/LexemeCommentUtils.js.map +1 -0
- package/dist/esm/src/tokenReaders/CommandTokenReader.js +50 -2
- package/dist/esm/src/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/esm/src/tokenReaders/LiteralTokenReader.js +8 -5
- package/dist/esm/src/tokenReaders/LiteralTokenReader.js.map +1 -1
- package/dist/esm/src/tokenReaders/OperatorTokenReader.js +10 -1
- package/dist/esm/src/tokenReaders/OperatorTokenReader.js.map +1 -1
- package/dist/esm/src/tokenReaders/TypeTokenReader.js +11 -1
- package/dist/esm/src/tokenReaders/TypeTokenReader.js.map +1 -1
- package/dist/esm/src/transformers/InsertQuerySelectValuesConverter.d.ts +18 -0
- package/dist/esm/src/transformers/InsertQuerySelectValuesConverter.js +118 -0
- package/dist/esm/src/transformers/InsertQuerySelectValuesConverter.js.map +1 -0
- package/dist/esm/src/transformers/LinePrinter.d.ts +1 -0
- package/dist/esm/src/transformers/LinePrinter.js +12 -0
- package/dist/esm/src/transformers/LinePrinter.js.map +1 -1
- package/dist/esm/src/transformers/OnelineFormattingHelper.d.ts +29 -0
- package/dist/esm/src/transformers/OnelineFormattingHelper.js +95 -0
- package/dist/esm/src/transformers/OnelineFormattingHelper.js.map +1 -0
- package/dist/esm/src/transformers/QueryBuilder.d.ts +47 -13
- package/dist/esm/src/transformers/QueryBuilder.js +424 -62
- package/dist/esm/src/transformers/QueryBuilder.js.map +1 -1
- package/dist/esm/src/transformers/SqlFormatter.d.ts +13 -1
- package/dist/esm/src/transformers/SqlFormatter.js +13 -4
- package/dist/esm/src/transformers/SqlFormatter.js.map +1 -1
- package/dist/esm/src/transformers/SqlPrinter.d.ts +47 -8
- package/dist/esm/src/transformers/SqlPrinter.js +625 -72
- package/dist/esm/src/transformers/SqlPrinter.js.map +1 -1
- package/dist/esm/src/types/Formatting.d.ts +8 -0
- package/dist/esm/src/types/Formatting.js +2 -0
- package/dist/esm/src/types/Formatting.js.map +1 -0
- package/dist/esm/src/utils/ParserStringUtils.d.ts +6 -0
- package/dist/esm/src/utils/ParserStringUtils.js +28 -0
- package/dist/esm/src/utils/ParserStringUtils.js.map +1 -0
- package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
- package/dist/index.min.js +14 -18
- package/dist/index.min.js.map +4 -4
- package/dist/src/index.d.ts +18 -0
- package/dist/src/index.js +18 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/models/BinarySelectQuery.d.ts +25 -1
- package/dist/src/models/BinarySelectQuery.js +28 -0
- package/dist/src/models/BinarySelectQuery.js.map +1 -1
- package/dist/src/models/Clause.d.ts +14 -2
- package/dist/src/models/Clause.js +29 -2
- package/dist/src/models/Clause.js.map +1 -1
- package/dist/src/models/CreateTableQuery.d.ts +99 -5
- package/dist/src/models/CreateTableQuery.js +90 -11
- package/dist/src/models/CreateTableQuery.js.map +1 -1
- package/dist/src/models/DDLStatements.d.ts +195 -0
- package/dist/src/models/DDLStatements.js +216 -0
- package/dist/src/models/DDLStatements.js.map +1 -0
- package/dist/src/models/DeleteQuery.d.ts +17 -0
- package/dist/src/models/DeleteQuery.js +20 -0
- package/dist/src/models/DeleteQuery.js.map +1 -0
- package/dist/src/models/InsertQuery.d.ts +7 -1
- package/dist/src/models/InsertQuery.js +6 -2
- package/dist/src/models/InsertQuery.js.map +1 -1
- package/dist/src/models/MergeQuery.d.ts +63 -0
- package/dist/src/models/MergeQuery.js +104 -0
- package/dist/src/models/MergeQuery.js.map +1 -0
- package/dist/src/models/SelectQuery.d.ts +37 -1
- package/dist/src/models/SelectQuery.js +7 -1
- package/dist/src/models/SelectQuery.js.map +1 -1
- package/dist/src/models/SimpleSelectQuery.d.ts +29 -1
- package/dist/src/models/SimpleSelectQuery.js +32 -0
- package/dist/src/models/SimpleSelectQuery.js.map +1 -1
- package/dist/src/models/SqlComponent.d.ts +2 -1
- package/dist/src/models/SqlComponent.js +1 -1
- package/dist/src/models/SqlComponent.js.map +1 -1
- package/dist/src/models/SqlPrintToken.d.ts +36 -0
- package/dist/src/models/SqlPrintToken.js +35 -0
- package/dist/src/models/SqlPrintToken.js.map +1 -1
- package/dist/src/models/ValuesQuery.d.ts +25 -1
- package/dist/src/models/ValuesQuery.js +28 -0
- package/dist/src/models/ValuesQuery.js.map +1 -1
- package/dist/src/parsers/AlterTableParser.d.ts +25 -0
- package/dist/src/parsers/AlterTableParser.js +432 -0
- package/dist/src/parsers/AlterTableParser.js.map +1 -0
- package/dist/src/parsers/AnalyzeStatementParser.d.ts +13 -0
- package/dist/src/parsers/AnalyzeStatementParser.js +94 -0
- package/dist/src/parsers/AnalyzeStatementParser.js.map +1 -0
- package/dist/src/parsers/CreateIndexParser.d.ts +16 -0
- package/dist/src/parsers/CreateIndexParser.js +241 -0
- package/dist/src/parsers/CreateIndexParser.js.map +1 -0
- package/dist/src/parsers/CreateTableParser.d.ts +41 -0
- package/dist/src/parsers/CreateTableParser.js +738 -0
- package/dist/src/parsers/CreateTableParser.js.map +1 -0
- package/dist/src/parsers/DeleteClauseParser.d.ts +11 -0
- package/dist/src/parsers/DeleteClauseParser.js +37 -0
- package/dist/src/parsers/DeleteClauseParser.js.map +1 -0
- package/dist/src/parsers/DeleteQueryParser.d.ts +16 -0
- package/dist/src/parsers/DeleteQueryParser.js +77 -0
- package/dist/src/parsers/DeleteQueryParser.js.map +1 -0
- package/dist/src/parsers/DropConstraintParser.d.ts +12 -0
- package/dist/src/parsers/DropConstraintParser.js +51 -0
- package/dist/src/parsers/DropConstraintParser.js.map +1 -0
- package/dist/src/parsers/DropIndexParser.d.ts +12 -0
- package/dist/src/parsers/DropIndexParser.js +73 -0
- package/dist/src/parsers/DropIndexParser.js.map +1 -0
- package/dist/src/parsers/DropTableParser.d.ts +12 -0
- package/dist/src/parsers/DropTableParser.js +63 -0
- package/dist/src/parsers/DropTableParser.js.map +1 -0
- package/dist/src/parsers/ExplainStatementParser.d.ts +23 -0
- package/dist/src/parsers/ExplainStatementParser.js +189 -0
- package/dist/src/parsers/ExplainStatementParser.js.map +1 -0
- package/dist/src/parsers/FunctionExpressionParser.d.ts +4 -0
- package/dist/src/parsers/FunctionExpressionParser.js +25 -8
- package/dist/src/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/src/parsers/InsertQueryParser.js +103 -31
- package/dist/src/parsers/InsertQueryParser.js.map +1 -1
- package/dist/src/parsers/MergeQueryParser.d.ts +26 -0
- package/dist/src/parsers/MergeQueryParser.js +483 -0
- package/dist/src/parsers/MergeQueryParser.js.map +1 -0
- package/dist/src/parsers/ParenExpressionParser.js +25 -0
- package/dist/src/parsers/ParenExpressionParser.js.map +1 -1
- package/dist/src/parsers/ReturningClauseParser.js +50 -7
- package/dist/src/parsers/ReturningClauseParser.js.map +1 -1
- package/dist/src/parsers/SelectClauseParser.js +2 -2
- package/dist/src/parsers/SelectClauseParser.js.map +1 -1
- package/dist/src/parsers/SelectQueryParser.d.ts +4 -0
- package/dist/src/parsers/SelectQueryParser.js +4 -0
- package/dist/src/parsers/SelectQueryParser.js.map +1 -1
- package/dist/src/parsers/SetClauseParser.js +97 -15
- package/dist/src/parsers/SetClauseParser.js.map +1 -1
- package/dist/src/parsers/SqlParser.d.ts +40 -0
- package/dist/src/parsers/SqlParser.js +409 -0
- package/dist/src/parsers/SqlParser.js.map +1 -0
- package/dist/src/parsers/SqlPrintTokenParser.d.ts +65 -3
- package/dist/src/parsers/SqlPrintTokenParser.js +1143 -36
- package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/src/parsers/SqlTokenizer.d.ts +24 -2
- package/dist/src/parsers/SqlTokenizer.js +139 -74
- package/dist/src/parsers/SqlTokenizer.js.map +1 -1
- package/dist/src/parsers/UpdateQueryParser.js +11 -1
- package/dist/src/parsers/UpdateQueryParser.js.map +1 -1
- package/dist/src/parsers/UsingClauseParser.d.ts +11 -0
- package/dist/src/parsers/UsingClauseParser.js +33 -0
- package/dist/src/parsers/UsingClauseParser.js.map +1 -0
- package/dist/src/parsers/ValueParser.js +5 -1
- package/dist/src/parsers/ValueParser.js.map +1 -1
- package/dist/src/parsers/ValuesQueryParser.d.ts +0 -2
- package/dist/src/parsers/ValuesQueryParser.js +5 -45
- package/dist/src/parsers/ValuesQueryParser.js.map +1 -1
- package/dist/src/parsers/utils/LexemeCommentUtils.d.ts +6 -0
- package/dist/src/parsers/utils/LexemeCommentUtils.js +29 -0
- package/dist/src/parsers/utils/LexemeCommentUtils.js.map +1 -0
- package/dist/src/tokenReaders/CommandTokenReader.js +50 -2
- package/dist/src/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/src/tokenReaders/LiteralTokenReader.js +8 -5
- package/dist/src/tokenReaders/LiteralTokenReader.js.map +1 -1
- package/dist/src/tokenReaders/OperatorTokenReader.js +10 -1
- package/dist/src/tokenReaders/OperatorTokenReader.js.map +1 -1
- package/dist/src/tokenReaders/TypeTokenReader.js +11 -1
- package/dist/src/tokenReaders/TypeTokenReader.js.map +1 -1
- package/dist/src/transformers/InsertQuerySelectValuesConverter.d.ts +18 -0
- package/dist/src/transformers/InsertQuerySelectValuesConverter.js +122 -0
- package/dist/src/transformers/InsertQuerySelectValuesConverter.js.map +1 -0
- package/dist/src/transformers/LinePrinter.d.ts +1 -0
- package/dist/src/transformers/LinePrinter.js +12 -0
- package/dist/src/transformers/LinePrinter.js.map +1 -1
- package/dist/src/transformers/OnelineFormattingHelper.d.ts +29 -0
- package/dist/src/transformers/OnelineFormattingHelper.js +99 -0
- package/dist/src/transformers/OnelineFormattingHelper.js.map +1 -0
- package/dist/src/transformers/QueryBuilder.d.ts +47 -13
- package/dist/src/transformers/QueryBuilder.js +433 -60
- package/dist/src/transformers/QueryBuilder.js.map +1 -1
- package/dist/src/transformers/SqlFormatter.d.ts +13 -1
- package/dist/src/transformers/SqlFormatter.js +20 -5
- package/dist/src/transformers/SqlFormatter.js.map +1 -1
- package/dist/src/transformers/SqlPrinter.d.ts +47 -8
- package/dist/src/transformers/SqlPrinter.js +625 -72
- package/dist/src/transformers/SqlPrinter.js.map +1 -1
- package/dist/src/types/Formatting.d.ts +8 -0
- package/dist/src/types/Formatting.js +3 -0
- package/dist/src/types/Formatting.js.map +1 -0
- package/dist/src/utils/ParserStringUtils.d.ts +6 -0
- package/dist/src/utils/ParserStringUtils.js +31 -0
- package/dist/src/utils/ParserStringUtils.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { SqlTokenizer } from "./SqlTokenizer";
|
|
2
|
+
import { ExplainOption, ExplainStatement } from "../models/DDLStatements";
|
|
3
|
+
import { IdentifierString, RawString } from "../models/ValueComponent";
|
|
4
|
+
import { TokenType } from "../models/Lexeme";
|
|
5
|
+
import { ValueParser } from "./ValueParser";
|
|
6
|
+
/**
|
|
7
|
+
* Parses EXPLAIN statements including legacy shorthand flags and option lists.
|
|
8
|
+
*/
|
|
9
|
+
export class ExplainStatementParser {
|
|
10
|
+
static parse(sql, parseNested) {
|
|
11
|
+
const tokenizer = new SqlTokenizer(sql);
|
|
12
|
+
const lexemes = tokenizer.readLexemes();
|
|
13
|
+
const result = this.parseFromLexeme(lexemes, 0, parseNested);
|
|
14
|
+
if (result.newIndex < lexemes.length) {
|
|
15
|
+
throw new Error(`[ExplainStatementParser] Unexpected token "${lexemes[result.newIndex].value}" after EXPLAIN statement.`);
|
|
16
|
+
}
|
|
17
|
+
return result.value;
|
|
18
|
+
}
|
|
19
|
+
static parseFromLexeme(lexemes, index, parseNested) {
|
|
20
|
+
let idx = index;
|
|
21
|
+
const first = lexemes[idx];
|
|
22
|
+
if (!first || first.value.toLowerCase() !== "explain") {
|
|
23
|
+
throw new Error(`[ExplainStatementParser] Expected EXPLAIN at index ${idx}.`);
|
|
24
|
+
}
|
|
25
|
+
idx++;
|
|
26
|
+
const options = [];
|
|
27
|
+
// Collect legacy shorthand flags (ANALYZE, VERBOSE) before option list.
|
|
28
|
+
while (this.isLegacyFlag(lexemes[idx])) {
|
|
29
|
+
const flagLexeme = lexemes[idx];
|
|
30
|
+
const optionName = new IdentifierString(flagLexeme.value.toLowerCase());
|
|
31
|
+
if (flagLexeme.comments && flagLexeme.comments.length > 0) {
|
|
32
|
+
optionName.comments = [...flagLexeme.comments];
|
|
33
|
+
}
|
|
34
|
+
const option = new ExplainOption({
|
|
35
|
+
name: optionName,
|
|
36
|
+
value: new RawString("true"),
|
|
37
|
+
});
|
|
38
|
+
options.push(option);
|
|
39
|
+
idx++;
|
|
40
|
+
}
|
|
41
|
+
// Parse optional parenthesised option list.
|
|
42
|
+
if (lexemes[idx] && (lexemes[idx].type & TokenType.OpenParen) !== 0) {
|
|
43
|
+
const optionResult = this.parseOptionList(lexemes, idx);
|
|
44
|
+
options.push(...optionResult.options);
|
|
45
|
+
idx = optionResult.newIndex;
|
|
46
|
+
if (optionResult.trailingComments && optionResult.trailingComments.length > 0) {
|
|
47
|
+
// Promote comments that follow the option list so they attach to the nested statement.
|
|
48
|
+
this.attachTrailingCommentsToNextLexeme(lexemes, idx, optionResult.trailingComments);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (idx >= lexemes.length) {
|
|
52
|
+
throw new Error("[ExplainStatementParser] EXPLAIN must be followed by a statement to analyze.");
|
|
53
|
+
}
|
|
54
|
+
const nested = parseNested(lexemes, idx);
|
|
55
|
+
const statement = nested.value;
|
|
56
|
+
idx = nested.newIndex;
|
|
57
|
+
const explain = new ExplainStatement({
|
|
58
|
+
options: options.length > 0 ? options : null,
|
|
59
|
+
statement,
|
|
60
|
+
});
|
|
61
|
+
return { value: explain, newIndex: idx };
|
|
62
|
+
}
|
|
63
|
+
static parseOptionList(lexemes, index) {
|
|
64
|
+
let idx = index;
|
|
65
|
+
if (!(lexemes[idx].type & TokenType.OpenParen)) {
|
|
66
|
+
throw new Error(`[ExplainStatementParser] Expected '(' to start option list at index ${idx}.`);
|
|
67
|
+
}
|
|
68
|
+
idx++; // consume '('
|
|
69
|
+
const options = [];
|
|
70
|
+
let trailingComments = null;
|
|
71
|
+
while (idx < lexemes.length) {
|
|
72
|
+
const token = lexemes[idx];
|
|
73
|
+
if (!token) {
|
|
74
|
+
throw new Error("[ExplainStatementParser] Unterminated option list.");
|
|
75
|
+
}
|
|
76
|
+
if (token.type & TokenType.CloseParen) {
|
|
77
|
+
idx++; // consume ')'
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
if (!this.canStartOptionName(token)) {
|
|
81
|
+
throw new Error(`[ExplainStatementParser] Expected option name inside EXPLAIN option list at index ${idx}, found "${token.value}".`);
|
|
82
|
+
}
|
|
83
|
+
const nameComponent = new IdentifierString(token.value.toLowerCase());
|
|
84
|
+
if (token.comments && token.comments.length > 0) {
|
|
85
|
+
nameComponent.comments = [...token.comments];
|
|
86
|
+
}
|
|
87
|
+
idx++;
|
|
88
|
+
let value = null;
|
|
89
|
+
// Optional equals sign before value.
|
|
90
|
+
if (lexemes[idx] && (lexemes[idx].type & TokenType.Operator) && lexemes[idx].value === "=") {
|
|
91
|
+
idx++;
|
|
92
|
+
}
|
|
93
|
+
// Consume explicit value when present (anything other than comma/close paren).
|
|
94
|
+
if (lexemes[idx] && !(lexemes[idx].type & TokenType.Comma) && !(lexemes[idx].type & TokenType.CloseParen)) {
|
|
95
|
+
const parsedValue = ValueParser.parseFromLexeme(lexemes, idx);
|
|
96
|
+
value = parsedValue.value;
|
|
97
|
+
idx = parsedValue.newIndex;
|
|
98
|
+
}
|
|
99
|
+
if (!value) {
|
|
100
|
+
value = new RawString("true");
|
|
101
|
+
}
|
|
102
|
+
options.push(new ExplainOption({ name: nameComponent, value }));
|
|
103
|
+
if (!lexemes[idx]) {
|
|
104
|
+
throw new Error("[ExplainStatementParser] Unterminated option list.");
|
|
105
|
+
}
|
|
106
|
+
if (lexemes[idx].type & TokenType.Comma) {
|
|
107
|
+
idx++;
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
if (lexemes[idx].type & TokenType.CloseParen) {
|
|
111
|
+
trailingComments = this.extractAfterComments(lexemes[idx]);
|
|
112
|
+
idx++;
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
throw new Error(`[ExplainStatementParser] Expected ',' or ')' after EXPLAIN option at index ${idx}, found "${lexemes[idx].value}".`);
|
|
116
|
+
}
|
|
117
|
+
return { options, newIndex: idx, trailingComments };
|
|
118
|
+
}
|
|
119
|
+
static isLegacyFlag(lexeme) {
|
|
120
|
+
if (!lexeme) {
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
if (!(lexeme.type & (TokenType.Identifier | TokenType.Command | TokenType.Function | TokenType.Type))) {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
const keyword = lexeme.value.toLowerCase();
|
|
127
|
+
return keyword === "analyze" || keyword === "verbose";
|
|
128
|
+
}
|
|
129
|
+
static canStartOptionName(lexeme) {
|
|
130
|
+
return (lexeme.type & (TokenType.Identifier | TokenType.Command | TokenType.Function | TokenType.Type)) !== 0;
|
|
131
|
+
}
|
|
132
|
+
static extractAfterComments(token) {
|
|
133
|
+
let collected = null;
|
|
134
|
+
if (token.positionedComments && token.positionedComments.length > 0) {
|
|
135
|
+
// Split out 'after' comments so they can be reassigned to the following token.
|
|
136
|
+
const retained = [];
|
|
137
|
+
for (const posComment of token.positionedComments) {
|
|
138
|
+
if (posComment.position === 'after' && posComment.comments && posComment.comments.length > 0) {
|
|
139
|
+
if (!collected) {
|
|
140
|
+
collected = [];
|
|
141
|
+
}
|
|
142
|
+
collected.push(...posComment.comments);
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
retained.push(posComment);
|
|
146
|
+
}
|
|
147
|
+
token.positionedComments = retained.length > 0 ? retained : undefined;
|
|
148
|
+
}
|
|
149
|
+
if (token.comments && token.comments.length > 0) {
|
|
150
|
+
// Fall back to legacy comment storage when positioned comments are absent.
|
|
151
|
+
if (!collected) {
|
|
152
|
+
collected = [];
|
|
153
|
+
}
|
|
154
|
+
collected.push(...token.comments);
|
|
155
|
+
token.comments = null;
|
|
156
|
+
}
|
|
157
|
+
return collected;
|
|
158
|
+
}
|
|
159
|
+
static attachTrailingCommentsToNextLexeme(lexemes, index, comments) {
|
|
160
|
+
if (!comments || comments.length === 0) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
const target = lexemes[index];
|
|
164
|
+
if (!target) {
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
if (!target.positionedComments) {
|
|
168
|
+
// Initialise positioned comments to allow inserting 'before' entries.
|
|
169
|
+
target.positionedComments = [];
|
|
170
|
+
}
|
|
171
|
+
const beforeEntry = target.positionedComments.find(pos => pos.position === 'before');
|
|
172
|
+
if (beforeEntry) {
|
|
173
|
+
// Append to existing leading comments on the target lexeme.
|
|
174
|
+
beforeEntry.comments.push(...comments);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
// Seed a new leading comment entry on the next lexeme.
|
|
178
|
+
target.positionedComments.push({
|
|
179
|
+
position: 'before',
|
|
180
|
+
comments: [...comments],
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=ExplainStatementParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExplainStatementParser.js","sourceRoot":"","sources":["../../../../src/parsers/ExplainStatementParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,4 +57,8 @@ export declare class FunctionExpressionParser {
|
|
|
57
57
|
* @returns Parsed arguments, closing parenthesis comments, and new index
|
|
58
58
|
*/
|
|
59
59
|
private static parseArgumentWithComments;
|
|
60
|
+
/**
|
|
61
|
+
* Normalize closing parenthesis comments to preserve positioned and legacy comment metadata.
|
|
62
|
+
*/
|
|
63
|
+
private static getClosingComments;
|
|
60
64
|
}
|
|
@@ -6,6 +6,7 @@ import { FullNameParser } from "./FullNameParser";
|
|
|
6
6
|
import { SelectQueryParser } from "./SelectQueryParser";
|
|
7
7
|
import { OrderByClauseParser } from "./OrderByClauseParser";
|
|
8
8
|
import { ParseError } from "./ParseError";
|
|
9
|
+
import { extractLexemeComments } from "./utils/LexemeCommentUtils";
|
|
9
10
|
export class FunctionExpressionParser {
|
|
10
11
|
/**
|
|
11
12
|
* Parse ARRAY expressions - handles both ARRAY[...] (literal) and ARRAY(...) (query) syntax
|
|
@@ -165,7 +166,7 @@ export class FunctionExpressionParser {
|
|
|
165
166
|
const value = new FunctionCall(namespaces, name.name, arg.value, over.value, withinGroup, withOrdinality, internalOrderBy);
|
|
166
167
|
// Set closing comments if available
|
|
167
168
|
if (closingComments && closingComments.length > 0) {
|
|
168
|
-
value;
|
|
169
|
+
value.addPositionedComments("after", closingComments);
|
|
169
170
|
}
|
|
170
171
|
return { value, newIndex: idx };
|
|
171
172
|
}
|
|
@@ -173,7 +174,7 @@ export class FunctionExpressionParser {
|
|
|
173
174
|
const value = new FunctionCall(namespaces, name.name, arg.value, null, withinGroup, withOrdinality, internalOrderBy);
|
|
174
175
|
// Set closing comments if available
|
|
175
176
|
if (closingComments && closingComments.length > 0) {
|
|
176
|
-
value;
|
|
177
|
+
value.addPositionedComments("after", closingComments);
|
|
177
178
|
}
|
|
178
179
|
return { value, newIndex: idx };
|
|
179
180
|
}
|
|
@@ -321,7 +322,7 @@ export class FunctionExpressionParser {
|
|
|
321
322
|
idx++;
|
|
322
323
|
// Handle empty arguments
|
|
323
324
|
if (idx < lexemes.length && (lexemes[idx].type & TokenType.CloseParen)) {
|
|
324
|
-
const closingComments = lexemes[idx]
|
|
325
|
+
const closingComments = this.getClosingComments(lexemes[idx]);
|
|
325
326
|
idx++;
|
|
326
327
|
return { arguments: new ValueList([]), orderByClause: null, closingComments, newIndex: idx };
|
|
327
328
|
}
|
|
@@ -330,7 +331,7 @@ export class FunctionExpressionParser {
|
|
|
330
331
|
const wildcard = new ColumnReference(null, "*");
|
|
331
332
|
idx++;
|
|
332
333
|
if (idx < lexemes.length && (lexemes[idx].type & TokenType.CloseParen)) {
|
|
333
|
-
const closingComments = lexemes[idx]
|
|
334
|
+
const closingComments = this.getClosingComments(lexemes[idx]);
|
|
334
335
|
idx++;
|
|
335
336
|
return { arguments: wildcard, orderByClause: null, closingComments, newIndex: idx };
|
|
336
337
|
}
|
|
@@ -373,7 +374,7 @@ export class FunctionExpressionParser {
|
|
|
373
374
|
if (idx >= lexemes.length || !(lexemes[idx].type & TokenType.CloseParen)) {
|
|
374
375
|
throw ParseError.fromUnparsedLexemes(lexemes, idx, `Expected closing parenthesis.`);
|
|
375
376
|
}
|
|
376
|
-
const closingComments = lexemes[idx]
|
|
377
|
+
const closingComments = this.getClosingComments(lexemes[idx]);
|
|
377
378
|
idx++;
|
|
378
379
|
// Return single argument if only one, otherwise return ValueList
|
|
379
380
|
const argumentsValue = args.length === 1 ? args[0] : new ValueList(args);
|
|
@@ -396,7 +397,7 @@ export class FunctionExpressionParser {
|
|
|
396
397
|
const args = [];
|
|
397
398
|
// Check for empty parentheses
|
|
398
399
|
if (idx < lexemes.length && (lexemes[idx].type & TokenType.CloseParen)) {
|
|
399
|
-
const closingComments = lexemes[idx]
|
|
400
|
+
const closingComments = this.getClosingComments(lexemes[idx]);
|
|
400
401
|
idx++; // Skip closing parenthesis
|
|
401
402
|
return { value: new ValueList([]), closingComments, newIndex: idx };
|
|
402
403
|
}
|
|
@@ -408,7 +409,7 @@ export class FunctionExpressionParser {
|
|
|
408
409
|
if (idx >= lexemes.length || !(lexemes[idx].type & TokenType.CloseParen)) {
|
|
409
410
|
throw ParseError.fromUnparsedLexemes(lexemes, idx, `Expected closing parenthesis after wildcard '*'.`);
|
|
410
411
|
}
|
|
411
|
-
const closingComments = lexemes[idx]
|
|
412
|
+
const closingComments = this.getClosingComments(lexemes[idx]);
|
|
412
413
|
idx++;
|
|
413
414
|
return { value: wildcard, closingComments, newIndex: idx };
|
|
414
415
|
}
|
|
@@ -453,12 +454,28 @@ export class FunctionExpressionParser {
|
|
|
453
454
|
if (idx >= lexemes.length || !(lexemes[idx].type & TokenType.CloseParen)) {
|
|
454
455
|
throw ParseError.fromUnparsedLexemes(lexemes, idx, `Expected closing parenthesis.`);
|
|
455
456
|
}
|
|
456
|
-
const closingComments = lexemes[idx]
|
|
457
|
+
const closingComments = this.getClosingComments(lexemes[idx]);
|
|
457
458
|
idx++;
|
|
458
459
|
// Return single argument if only one, otherwise return ValueList
|
|
459
460
|
const argumentsValue = args.length === 1 ? args[0] : new ValueList(args);
|
|
460
461
|
return { value: argumentsValue, closingComments, newIndex: idx };
|
|
461
462
|
}
|
|
463
|
+
/**
|
|
464
|
+
* Normalize closing parenthesis comments to preserve positioned and legacy comment metadata.
|
|
465
|
+
*/
|
|
466
|
+
static getClosingComments(lexeme) {
|
|
467
|
+
if (!lexeme) {
|
|
468
|
+
return null;
|
|
469
|
+
}
|
|
470
|
+
const commentInfo = extractLexemeComments(lexeme);
|
|
471
|
+
if (commentInfo.after.length > 0) {
|
|
472
|
+
return commentInfo.after;
|
|
473
|
+
}
|
|
474
|
+
if (commentInfo.before.length > 0) {
|
|
475
|
+
return commentInfo.before;
|
|
476
|
+
}
|
|
477
|
+
return null;
|
|
478
|
+
}
|
|
462
479
|
}
|
|
463
480
|
/**
|
|
464
481
|
* Aggregate functions that support internal ORDER BY clause
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionExpressionParser.js","sourceRoot":"","sources":["../../../../src/parsers/FunctionExpressionParser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FunctionExpressionParser.js","sourceRoot":"","sources":["../../../../src/parsers/FunctionExpressionParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,13 @@ import { InsertQuery } from "../models/InsertQuery";
|
|
|
4
4
|
import { TokenType } from "../models/Lexeme";
|
|
5
5
|
import { SqlTokenizer } from "./SqlTokenizer";
|
|
6
6
|
import { SelectQueryParser } from "./SelectQueryParser";
|
|
7
|
+
import { InsertClause } from "../models/Clause";
|
|
7
8
|
import { WithClauseParser } from "./WithClauseParser";
|
|
8
|
-
import { SimpleSelectQuery } from "../models/SimpleSelectQuery";
|
|
9
9
|
import { SourceExpressionParser } from "./SourceExpressionParser";
|
|
10
|
-
import {
|
|
10
|
+
import { ValuesQueryParser } from "./ValuesQueryParser";
|
|
11
|
+
import { ReturningClauseParser } from "./ReturningClauseParser";
|
|
12
|
+
import { IdentifierString } from "../models/ValueComponent";
|
|
13
|
+
import { extractLexemeComments } from "./utils/LexemeCommentUtils";
|
|
11
14
|
export class InsertQueryParser {
|
|
12
15
|
/**
|
|
13
16
|
* Parse SQL string to InsertQuery AST.
|
|
@@ -15,7 +18,7 @@ export class InsertQueryParser {
|
|
|
15
18
|
*/
|
|
16
19
|
static parse(query) {
|
|
17
20
|
const tokenizer = new SqlTokenizer(query);
|
|
18
|
-
const lexemes = tokenizer.
|
|
21
|
+
const lexemes = tokenizer.readLexemes();
|
|
19
22
|
const result = this.parseFromLexeme(lexemes, 0);
|
|
20
23
|
if (result.newIndex < lexemes.length) {
|
|
21
24
|
throw new Error(`Syntax error: Unexpected token "${lexemes[result.newIndex].value}" at position ${result.newIndex}. The INSERT query is complete but there are additional tokens.`);
|
|
@@ -26,55 +29,124 @@ export class InsertQueryParser {
|
|
|
26
29
|
* Parse from lexeme array (for internal use and tests)
|
|
27
30
|
*/
|
|
28
31
|
static parseFromLexeme(lexemes, index) {
|
|
29
|
-
var _a, _b, _c;
|
|
32
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
30
33
|
let idx = index;
|
|
31
|
-
let
|
|
32
|
-
if (lexemes[idx].value === "with") {
|
|
34
|
+
let withClause = null;
|
|
35
|
+
if (((_a = lexemes[idx]) === null || _a === void 0 ? void 0 : _a.value) === "with") {
|
|
33
36
|
const result = WithClauseParser.parseFromLexeme(lexemes, idx);
|
|
34
|
-
|
|
37
|
+
withClause = result.value;
|
|
35
38
|
idx = result.newIndex;
|
|
36
39
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
throw new Error(`Syntax error at position ${idx}: Expected 'INSERT INTO' but found '${
|
|
40
|
+
if (!lexemes[idx] || lexemes[idx].value !== "insert into") {
|
|
41
|
+
const found = (_c = (_b = lexemes[idx]) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : "end of input";
|
|
42
|
+
throw new Error(`Syntax error at position ${idx}: Expected 'INSERT INTO' but found '${found}'.`);
|
|
40
43
|
}
|
|
44
|
+
const insertKeywordLexeme = lexemes[idx];
|
|
45
|
+
const insertKeywordComments = extractLexemeComments(insertKeywordLexeme);
|
|
41
46
|
idx++;
|
|
42
|
-
// Parse table and optional alias/schema using SourceExpressionParser
|
|
43
47
|
const sourceResult = SourceExpressionParser.parseTableSourceFromLexemes(lexemes, idx);
|
|
48
|
+
const targetSource = sourceResult.value;
|
|
49
|
+
const targetDatasource = targetSource.datasource;
|
|
44
50
|
idx = sourceResult.newIndex;
|
|
45
|
-
//
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
// Route inline comments immediately following INSERT INTO to the table reference.
|
|
52
|
+
if (insertKeywordComments.after.length > 0) {
|
|
53
|
+
targetDatasource.addPositionedComments("before", insertKeywordComments.after);
|
|
54
|
+
}
|
|
55
|
+
let columnIdentifiers = null;
|
|
56
|
+
let trailingInsertComments = [];
|
|
57
|
+
if (((_d = lexemes[idx]) === null || _d === void 0 ? void 0 : _d.type) === TokenType.OpenParen) {
|
|
58
|
+
const openParenLexeme = lexemes[idx];
|
|
59
|
+
const parenComments = extractLexemeComments(openParenLexeme);
|
|
48
60
|
idx++;
|
|
49
|
-
|
|
50
|
-
|
|
61
|
+
if (parenComments.before.length > 0) {
|
|
62
|
+
// Comments before '(' belong after the table name.
|
|
63
|
+
targetDatasource.addPositionedComments("after", parenComments.before);
|
|
64
|
+
}
|
|
65
|
+
columnIdentifiers = [];
|
|
66
|
+
let pendingBeforeForNext = [...parenComments.after];
|
|
67
|
+
while (idx < lexemes.length && (lexemes[idx].type & TokenType.Identifier)) {
|
|
68
|
+
const columnLexeme = lexemes[idx];
|
|
69
|
+
const columnComments = extractLexemeComments(columnLexeme);
|
|
70
|
+
const column = new IdentifierString(columnLexeme.value);
|
|
71
|
+
// Attach leading comments gathered from preceding tokens and the identifier itself.
|
|
72
|
+
const beforeComments = [];
|
|
73
|
+
if (pendingBeforeForNext.length > 0) {
|
|
74
|
+
beforeComments.push(...pendingBeforeForNext);
|
|
75
|
+
}
|
|
76
|
+
if (columnComments.before.length > 0) {
|
|
77
|
+
beforeComments.push(...columnComments.before);
|
|
78
|
+
}
|
|
79
|
+
if (beforeComments.length > 0) {
|
|
80
|
+
column.addPositionedComments("before", beforeComments);
|
|
81
|
+
}
|
|
82
|
+
if (columnComments.after.length > 0) {
|
|
83
|
+
column.addPositionedComments("after", columnComments.after);
|
|
84
|
+
}
|
|
85
|
+
columnIdentifiers.push(column);
|
|
86
|
+
pendingBeforeForNext = [];
|
|
51
87
|
idx++;
|
|
52
|
-
if (((
|
|
88
|
+
if (((_e = lexemes[idx]) === null || _e === void 0 ? void 0 : _e.type) === TokenType.Comma) {
|
|
89
|
+
const commaComments = extractLexemeComments(lexemes[idx]);
|
|
90
|
+
pendingBeforeForNext = [...commaComments.after];
|
|
53
91
|
idx++;
|
|
92
|
+
continue;
|
|
54
93
|
}
|
|
55
|
-
|
|
56
|
-
break;
|
|
57
|
-
}
|
|
94
|
+
break;
|
|
58
95
|
}
|
|
59
|
-
if (
|
|
96
|
+
if (pendingBeforeForNext.length > 0 && columnIdentifiers.length > 0) {
|
|
97
|
+
columnIdentifiers[columnIdentifiers.length - 1].addPositionedComments("after", pendingBeforeForNext);
|
|
98
|
+
pendingBeforeForNext = [];
|
|
99
|
+
}
|
|
100
|
+
if (((_f = lexemes[idx]) === null || _f === void 0 ? void 0 : _f.type) !== TokenType.CloseParen) {
|
|
60
101
|
throw new Error(`Syntax error at position ${idx}: Expected ')' after column list.`);
|
|
61
102
|
}
|
|
103
|
+
const closeParenComments = extractLexemeComments(lexemes[idx]);
|
|
62
104
|
idx++;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (
|
|
67
|
-
|
|
105
|
+
if (closeParenComments.before.length > 0 && columnIdentifiers.length > 0) {
|
|
106
|
+
columnIdentifiers[columnIdentifiers.length - 1].addPositionedComments("after", closeParenComments.before);
|
|
107
|
+
}
|
|
108
|
+
if (closeParenComments.after.length > 0) {
|
|
109
|
+
// Comments after ')' should trail the entire INSERT clause.
|
|
110
|
+
trailingInsertComments = closeParenComments.after;
|
|
68
111
|
}
|
|
69
|
-
|
|
70
|
-
|
|
112
|
+
if (columnIdentifiers.length === 0) {
|
|
113
|
+
columnIdentifiers = [];
|
|
71
114
|
}
|
|
72
115
|
}
|
|
73
|
-
idx
|
|
116
|
+
if (idx >= lexemes.length) {
|
|
117
|
+
throw new Error(`Syntax error: Unexpected end of input while parsing INSERT statement. VALUES or SELECT clause expected.`);
|
|
118
|
+
}
|
|
119
|
+
const nextToken = lexemes[idx].value.toLowerCase();
|
|
120
|
+
let dataQuery;
|
|
121
|
+
if (nextToken === "values") {
|
|
122
|
+
const valuesResult = ValuesQueryParser.parseFromLexeme(lexemes, idx);
|
|
123
|
+
dataQuery = valuesResult.value;
|
|
124
|
+
idx = valuesResult.newIndex;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
const selectResult = SelectQueryParser.parseFromLexeme(lexemes, idx);
|
|
128
|
+
dataQuery = selectResult.value;
|
|
129
|
+
idx = selectResult.newIndex;
|
|
130
|
+
}
|
|
131
|
+
let returningClause = null;
|
|
132
|
+
if (((_g = lexemes[idx]) === null || _g === void 0 ? void 0 : _g.value) === "returning") {
|
|
133
|
+
const returningResult = ReturningClauseParser.parseFromLexeme(lexemes, idx);
|
|
134
|
+
returningClause = returningResult.value;
|
|
135
|
+
idx = returningResult.newIndex;
|
|
136
|
+
}
|
|
137
|
+
const insertClause = new InsertClause(targetSource, columnIdentifiers !== null && columnIdentifiers !== void 0 ? columnIdentifiers : null);
|
|
138
|
+
if (insertKeywordComments.before.length > 0) {
|
|
139
|
+
insertClause.addPositionedComments("before", insertKeywordComments.before);
|
|
140
|
+
}
|
|
141
|
+
if (trailingInsertComments.length > 0) {
|
|
142
|
+
insertClause.addPositionedComments("after", trailingInsertComments);
|
|
143
|
+
}
|
|
74
144
|
return {
|
|
75
145
|
value: new InsertQuery({
|
|
76
|
-
|
|
77
|
-
|
|
146
|
+
withClause,
|
|
147
|
+
insertClause,
|
|
148
|
+
selectQuery: dataQuery,
|
|
149
|
+
returning: returningClause
|
|
78
150
|
}),
|
|
79
151
|
newIndex: idx
|
|
80
152
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InsertQueryParser.js","sourceRoot":"","sources":["../../../../src/parsers/InsertQueryParser.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AACrG,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAU,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"InsertQueryParser.js","sourceRoot":"","sources":["../../../../src/parsers/InsertQueryParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { MergeQuery } from "../models/MergeQuery";
|
|
2
|
+
import { Lexeme } from "../models/Lexeme";
|
|
3
|
+
export declare class MergeQueryParser {
|
|
4
|
+
/**
|
|
5
|
+
* Parse SQL string to MergeQuery AST.
|
|
6
|
+
* @param query SQL string
|
|
7
|
+
*/
|
|
8
|
+
static parse(query: string): MergeQuery;
|
|
9
|
+
/**
|
|
10
|
+
* Parse from lexeme array (for internal use and tests).
|
|
11
|
+
*/
|
|
12
|
+
static parseFromLexeme(lexemes: Lexeme[], index: number): {
|
|
13
|
+
value: MergeQuery;
|
|
14
|
+
newIndex: number;
|
|
15
|
+
};
|
|
16
|
+
private static parseWhenClauses;
|
|
17
|
+
private static parseMatchType;
|
|
18
|
+
private static parseAction;
|
|
19
|
+
private static parseSetClause;
|
|
20
|
+
private static parseInsertAction;
|
|
21
|
+
private static parseInsertColumnProjection;
|
|
22
|
+
private static isSetClauseTerminator;
|
|
23
|
+
private static mergeUnique;
|
|
24
|
+
private static addUniquePositionedComments;
|
|
25
|
+
private static getLowerValue;
|
|
26
|
+
}
|