rawsql-ts 0.11.44-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.
Files changed (61) hide show
  1. package/dist/esm/index.min.js +9 -9
  2. package/dist/esm/index.min.js.map +3 -3
  3. package/dist/esm/src/models/DDLStatements.d.ts +38 -0
  4. package/dist/esm/src/models/DDLStatements.js +61 -1
  5. package/dist/esm/src/models/DDLStatements.js.map +1 -1
  6. package/dist/esm/src/models/SqlPrintToken.d.ts +3 -0
  7. package/dist/esm/src/models/SqlPrintToken.js +3 -0
  8. package/dist/esm/src/models/SqlPrintToken.js.map +1 -1
  9. package/dist/esm/src/parsers/AnalyzeStatementParser.d.ts +13 -0
  10. package/dist/esm/src/parsers/AnalyzeStatementParser.js +90 -0
  11. package/dist/esm/src/parsers/AnalyzeStatementParser.js.map +1 -0
  12. package/dist/esm/src/parsers/ExplainStatementParser.d.ts +23 -0
  13. package/dist/esm/src/parsers/ExplainStatementParser.js +185 -0
  14. package/dist/esm/src/parsers/ExplainStatementParser.js.map +1 -0
  15. package/dist/esm/src/parsers/ParenExpressionParser.js +25 -0
  16. package/dist/esm/src/parsers/ParenExpressionParser.js.map +1 -1
  17. package/dist/esm/src/parsers/SqlParser.d.ts +4 -2
  18. package/dist/esm/src/parsers/SqlParser.js +56 -0
  19. package/dist/esm/src/parsers/SqlParser.js.map +1 -1
  20. package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +8 -0
  21. package/dist/esm/src/parsers/SqlPrintTokenParser.js +131 -7
  22. package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
  23. package/dist/esm/src/tokenReaders/CommandTokenReader.js +1 -0
  24. package/dist/esm/src/tokenReaders/CommandTokenReader.js.map +1 -1
  25. package/dist/esm/src/transformers/OnelineFormattingHelper.js +7 -0
  26. package/dist/esm/src/transformers/OnelineFormattingHelper.js.map +1 -1
  27. package/dist/esm/src/transformers/SqlPrinter.d.ts +1 -0
  28. package/dist/esm/src/transformers/SqlPrinter.js +29 -1
  29. package/dist/esm/src/transformers/SqlPrinter.js.map +1 -1
  30. package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
  31. package/dist/index.min.js +9 -9
  32. package/dist/index.min.js.map +3 -3
  33. package/dist/src/models/DDLStatements.d.ts +38 -0
  34. package/dist/src/models/DDLStatements.js +64 -1
  35. package/dist/src/models/DDLStatements.js.map +1 -1
  36. package/dist/src/models/SqlPrintToken.d.ts +3 -0
  37. package/dist/src/models/SqlPrintToken.js +3 -0
  38. package/dist/src/models/SqlPrintToken.js.map +1 -1
  39. package/dist/src/parsers/AnalyzeStatementParser.d.ts +13 -0
  40. package/dist/src/parsers/AnalyzeStatementParser.js +94 -0
  41. package/dist/src/parsers/AnalyzeStatementParser.js.map +1 -0
  42. package/dist/src/parsers/ExplainStatementParser.d.ts +23 -0
  43. package/dist/src/parsers/ExplainStatementParser.js +189 -0
  44. package/dist/src/parsers/ExplainStatementParser.js.map +1 -0
  45. package/dist/src/parsers/ParenExpressionParser.js +25 -0
  46. package/dist/src/parsers/ParenExpressionParser.js.map +1 -1
  47. package/dist/src/parsers/SqlParser.d.ts +4 -2
  48. package/dist/src/parsers/SqlParser.js +56 -0
  49. package/dist/src/parsers/SqlParser.js.map +1 -1
  50. package/dist/src/parsers/SqlPrintTokenParser.d.ts +8 -0
  51. package/dist/src/parsers/SqlPrintTokenParser.js +130 -6
  52. package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
  53. package/dist/src/tokenReaders/CommandTokenReader.js +1 -0
  54. package/dist/src/tokenReaders/CommandTokenReader.js.map +1 -1
  55. package/dist/src/transformers/OnelineFormattingHelper.js +7 -0
  56. package/dist/src/transformers/OnelineFormattingHelper.js.map +1 -1
  57. package/dist/src/transformers/SqlPrinter.d.ts +1 -0
  58. package/dist/src/transformers/SqlPrinter.js +29 -1
  59. package/dist/src/transformers/SqlPrinter.js.map +1 -1
  60. package/dist/tsconfig.tsbuildinfo +1 -1
  61. package/package.json +3 -3
@@ -155,3 +155,41 @@ export declare class DropConstraintStatement extends SqlComponent {
155
155
  behavior?: DropBehavior;
156
156
  });
157
157
  }
158
+ /**
159
+ * Option entry within an EXPLAIN statement.
160
+ */
161
+ export declare class ExplainOption extends SqlComponent {
162
+ static kind: symbol;
163
+ name: IdentifierString;
164
+ value: ValueComponent | null;
165
+ constructor(params: {
166
+ name: IdentifierString;
167
+ value?: ValueComponent | null;
168
+ });
169
+ }
170
+ /**
171
+ * EXPLAIN statement representation.
172
+ */
173
+ export declare class ExplainStatement extends SqlComponent {
174
+ static kind: symbol;
175
+ options: ExplainOption[] | null;
176
+ statement: SqlComponent;
177
+ constructor(params: {
178
+ options?: ExplainOption[] | null;
179
+ statement: SqlComponent;
180
+ });
181
+ }
182
+ /**
183
+ * ANALYZE statement representation.
184
+ */
185
+ export declare class AnalyzeStatement extends SqlComponent {
186
+ static kind: symbol;
187
+ verbose: boolean;
188
+ target: QualifiedName | null;
189
+ columns: IdentifierString[] | null;
190
+ constructor(params?: {
191
+ verbose?: boolean;
192
+ target?: QualifiedName | null;
193
+ columns?: IdentifierString[] | null;
194
+ });
195
+ }
@@ -1,8 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DropConstraintStatement = exports.AlterTableStatement = exports.AlterTableDropColumn = exports.AlterTableDropConstraint = exports.AlterTableAddConstraint = exports.CreateIndexStatement = exports.IndexColumnDefinition = exports.DropIndexStatement = exports.DropTableStatement = void 0;
3
+ exports.AnalyzeStatement = exports.ExplainStatement = exports.ExplainOption = exports.DropConstraintStatement = exports.AlterTableStatement = exports.AlterTableDropColumn = exports.AlterTableDropConstraint = exports.AlterTableAddConstraint = exports.CreateIndexStatement = exports.IndexColumnDefinition = exports.DropIndexStatement = exports.DropTableStatement = void 0;
4
4
  const SqlComponent_1 = require("./SqlComponent");
5
5
  const ValueComponent_1 = require("./ValueComponent");
6
+ function cloneIdentifierWithComments(identifier) {
7
+ const clone = new ValueComponent_1.IdentifierString(identifier.name);
8
+ // Preserve positioned comment metadata while cloning identifiers.
9
+ if (identifier.positionedComments) {
10
+ clone.positionedComments = identifier.positionedComments.map(entry => ({
11
+ position: entry.position,
12
+ comments: [...entry.comments],
13
+ }));
14
+ }
15
+ else if (identifier.comments && identifier.comments.length > 0) {
16
+ // Copy legacy comment arrays when no positioned comments exist.
17
+ clone.comments = [...identifier.comments];
18
+ }
19
+ return clone;
20
+ }
6
21
  /**
7
22
  * DROP TABLE statement representation.
8
23
  */
@@ -150,4 +165,52 @@ class DropConstraintStatement extends SqlComponent_1.SqlComponent {
150
165
  }
151
166
  exports.DropConstraintStatement = DropConstraintStatement;
152
167
  DropConstraintStatement.kind = Symbol("DropConstraintStatement");
168
+ /**
169
+ * Option entry within an EXPLAIN statement.
170
+ */
171
+ class ExplainOption extends SqlComponent_1.SqlComponent {
172
+ constructor(params) {
173
+ var _a;
174
+ super();
175
+ // Clone the option name so explain options keep associated metadata.
176
+ this.name = cloneIdentifierWithComments(params.name);
177
+ this.value = (_a = params.value) !== null && _a !== void 0 ? _a : null;
178
+ }
179
+ }
180
+ exports.ExplainOption = ExplainOption;
181
+ ExplainOption.kind = Symbol("ExplainOption");
182
+ /**
183
+ * EXPLAIN statement representation.
184
+ */
185
+ class ExplainStatement extends SqlComponent_1.SqlComponent {
186
+ constructor(params) {
187
+ super();
188
+ this.options = params.options ? params.options.map(option => new ExplainOption(option)) : null;
189
+ this.statement = params.statement;
190
+ }
191
+ }
192
+ exports.ExplainStatement = ExplainStatement;
193
+ ExplainStatement.kind = Symbol("ExplainStatement");
194
+ /**
195
+ * ANALYZE statement representation.
196
+ */
197
+ class AnalyzeStatement extends SqlComponent_1.SqlComponent {
198
+ constructor(params) {
199
+ var _a;
200
+ super();
201
+ this.verbose = (_a = params === null || params === void 0 ? void 0 : params.verbose) !== null && _a !== void 0 ? _a : false;
202
+ this.target = (params === null || params === void 0 ? void 0 : params.target)
203
+ ? new ValueComponent_1.QualifiedName(params.target.namespaces, params.target.name)
204
+ : null;
205
+ if (params === null || params === void 0 ? void 0 : params.columns) {
206
+ // Clone target columns so position-aware comments remain intact.
207
+ this.columns = params.columns.map(cloneIdentifierWithComments);
208
+ }
209
+ else {
210
+ this.columns = null;
211
+ }
212
+ }
213
+ }
214
+ exports.AnalyzeStatement = AnalyzeStatement;
215
+ AnalyzeStatement.kind = Symbol("AnalyzeStatement");
153
216
  //# sourceMappingURL=DDLStatements.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DDLStatements.js","sourceRoot":"","sources":["../../../src/models/DDLStatements.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAC9C,qDAK0B;AAS1B;;GAEG;AACH,MAAa,kBAAmB,SAAQ,2BAAY;IAMhD,YAAY,MAAgF;;QACxF,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,8BAAa,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,KAAK,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,IAAI,CAAC;IAC5C,CAAC;;AAXL,gDAYC;AAXU,uBAAI,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAa/C;;GAEG;AACH,MAAa,kBAAmB,SAAQ,2BAAY;IAOhD,YAAY,MAKX;;QACG,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,8BAAa,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAClG,IAAI,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,KAAK,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,MAAA,MAAM,CAAC,YAAY,mCAAI,KAAK,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,IAAI,CAAC;IAC5C,CAAC;;AAlBL,gDAmBC;AAlBU,uBAAI,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAoB/C;;GAEG;AACH,MAAa,qBAAsB,SAAQ,2BAAY;IAQnD,YAAY,MAMX;;QACG,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,IAAI,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,MAAA,MAAM,CAAC,UAAU,mCAAI,IAAI,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,IAAI,CAAC;QAC1C,IAAI,CAAC,aAAa,GAAG,MAAA,MAAM,CAAC,aAAa,mCAAI,IAAI,CAAC;IACtD,CAAC;;AArBL,sDAsBC;AArBU,0BAAI,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAuBlD;;GAEG;AACH,MAAa,oBAAqB,SAAQ,2BAAY;IAclD,YAAY,MAYX;;QACG,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAA,MAAM,CAAC,MAAM,mCAAI,KAAK,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,MAAA,MAAM,CAAC,YAAY,mCAAI,KAAK,CAAC;QACjD,IAAI,CAAC,WAAW,GAAG,MAAA,MAAM,CAAC,WAAW,mCAAI,KAAK,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,8BAAa,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACvF,IAAI,CAAC,SAAS,GAAG,IAAI,8BAAa,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACvF,IAAI,CAAC,WAAW,GAAG,MAAA,MAAM,CAAC,WAAW,mCAAI,IAAI,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;;YAAC,OAAA,IAAI,qBAAqB,CAAC;gBAC/D,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,SAAS,EAAE,MAAA,GAAG,CAAC,SAAS,mCAAI,IAAI;gBAChC,aAAa,EAAE,MAAA,GAAG,CAAC,aAAa,mCAAI,IAAI;aAC3C,CAAC,CAAA;SAAA,CAAC,CAAC;QACJ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3D,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,MAAA,MAAM,CAAC,WAAW,mCAAI,IAAI,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,MAAA,MAAM,CAAC,UAAU,mCAAI,IAAI,CAAC;IAChD,CAAC;;AA7CL,oDA8CC;AA7CU,yBAAI,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AA+CjD;;GAEG;AACH,MAAa,uBAAwB,SAAQ,2BAAY;IAMrD,YAAY,MAIX;;QACG,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,MAAA,MAAM,CAAC,WAAW,mCAAI,KAAK,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,KAAK,CAAC;IAC7C,CAAC;;AAfL,0DAgBC;AAfU,4BAAI,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAiBpD;;GAEG;AACH,MAAa,wBAAyB,SAAQ,2BAAY;IAMtD,YAAY,MAIX;;QACG,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,KAAK,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,IAAI,CAAC;IAC5C,CAAC;;AAfL,4DAgBC;AAfU,6BAAI,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAiBrD;;GAEG;AACH,MAAa,oBAAqB,SAAQ,2BAAY;IAMlD,YAAY,MAIX;;QACG,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,KAAK,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,IAAI,CAAC;IAC5C,CAAC;;AAfL,oDAgBC;AAfU,yBAAI,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAmBjD;;GAEG;AACH,MAAa,mBAAoB,SAAQ,2BAAY;IAOjD,YAAY,MAKX;;QACG,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,IAAI,8BAAa,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,GAAG,MAAA,MAAM,CAAC,IAAI,mCAAI,KAAK,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,KAAK,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;;AAlBL,kDAmBC;AAlBU,wBAAI,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAoBhD;;GAEG;AACH,MAAa,uBAAwB,SAAQ,2BAAY;IAMrD,YAAY,MAAyF;;QACjG,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,KAAK,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,IAAI,CAAC;IAC5C,CAAC;;AAXL,0DAYC;AAXU,4BAAI,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC"}
1
+ {"version":3,"file":"DDLStatements.js","sourceRoot":"","sources":["../../../src/models/DDLStatements.ts"],"names":[],"mappings":"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"}
@@ -98,6 +98,9 @@ export declare enum SqlPrintTokenContainerType {
98
98
  AlterTableDropConstraint = "AlterTableDropConstraint",
99
99
  AlterTableDropColumn = "AlterTableDropColumn",
100
100
  DropConstraintStatement = "DropConstraintStatement",
101
+ ExplainStatement = "ExplainStatement",
102
+ ExplainOption = "ExplainOption",
103
+ AnalyzeStatement = "AnalyzeStatement",
101
104
  MergeQuery = "MergeQuery",
102
105
  MergeWhenClause = "MergeWhenClause",
103
106
  MergeUpdateAction = "MergeUpdateAction",
@@ -104,6 +104,9 @@ var SqlPrintTokenContainerType;
104
104
  SqlPrintTokenContainerType["AlterTableDropConstraint"] = "AlterTableDropConstraint";
105
105
  SqlPrintTokenContainerType["AlterTableDropColumn"] = "AlterTableDropColumn";
106
106
  SqlPrintTokenContainerType["DropConstraintStatement"] = "DropConstraintStatement";
107
+ SqlPrintTokenContainerType["ExplainStatement"] = "ExplainStatement";
108
+ SqlPrintTokenContainerType["ExplainOption"] = "ExplainOption";
109
+ SqlPrintTokenContainerType["AnalyzeStatement"] = "AnalyzeStatement";
107
110
  SqlPrintTokenContainerType["MergeQuery"] = "MergeQuery";
108
111
  SqlPrintTokenContainerType["MergeWhenClause"] = "MergeWhenClause";
109
112
  SqlPrintTokenContainerType["MergeUpdateAction"] = "MergeUpdateAction";
@@ -1 +1 @@
1
- {"version":3,"file":"SqlPrintToken.js","sourceRoot":"","sources":["../../../src/models/SqlPrintToken.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqlPrintToken.js","sourceRoot":"","sources":["../../../src/models/SqlPrintToken.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { AnalyzeStatement } from "../models/DDLStatements";
2
+ import { Lexeme } from "../models/Lexeme";
3
+ /**
4
+ * Parses ANALYZE statements.
5
+ */
6
+ export declare class AnalyzeStatementParser {
7
+ static parse(sql: string): AnalyzeStatement;
8
+ static parseFromLexeme(lexemes: Lexeme[], index: number): {
9
+ value: AnalyzeStatement;
10
+ newIndex: number;
11
+ };
12
+ private static canStartQualifiedName;
13
+ }
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AnalyzeStatementParser = void 0;
4
+ const SqlTokenizer_1 = require("./SqlTokenizer");
5
+ const DDLStatements_1 = require("../models/DDLStatements");
6
+ const Lexeme_1 = require("../models/Lexeme");
7
+ const FullNameParser_1 = require("./FullNameParser");
8
+ const ValueComponent_1 = require("../models/ValueComponent");
9
+ /**
10
+ * Parses ANALYZE statements.
11
+ */
12
+ class AnalyzeStatementParser {
13
+ static parse(sql) {
14
+ const tokenizer = new SqlTokenizer_1.SqlTokenizer(sql);
15
+ const lexemes = tokenizer.readLexemes();
16
+ const result = this.parseFromLexeme(lexemes, 0);
17
+ if (result.newIndex < lexemes.length) {
18
+ throw new Error(`[AnalyzeStatementParser] Unexpected token "${lexemes[result.newIndex].value}" after ANALYZE statement.`);
19
+ }
20
+ return result.value;
21
+ }
22
+ static parseFromLexeme(lexemes, index) {
23
+ var _a, _b, _c, _d, _e;
24
+ let idx = index;
25
+ if (((_a = lexemes[idx]) === null || _a === void 0 ? void 0 : _a.value.toLowerCase()) !== "analyze") {
26
+ throw new Error(`[AnalyzeStatementParser] Expected ANALYZE at index ${idx}.`);
27
+ }
28
+ idx++;
29
+ // Capture optional VERBOSE modifier immediately after ANALYZE.
30
+ let verbose = false;
31
+ if (((_b = lexemes[idx]) === null || _b === void 0 ? void 0 : _b.value.toLowerCase()) === "verbose") {
32
+ verbose = true;
33
+ idx++;
34
+ }
35
+ // Parse optional target relation name if present.
36
+ let target = null;
37
+ if (this.canStartQualifiedName(lexemes[idx])) {
38
+ const { namespaces, name, newIndex } = FullNameParser_1.FullNameParser.parseFromLexeme(lexemes, idx);
39
+ target = new ValueComponent_1.QualifiedName(namespaces, name);
40
+ idx = newIndex;
41
+ }
42
+ // Parse optional column list guarded by parentheses.
43
+ let columns = null;
44
+ if (((_c = lexemes[idx]) === null || _c === void 0 ? void 0 : _c.type) & Lexeme_1.TokenType.OpenParen) {
45
+ if (!target) {
46
+ throw new Error("[AnalyzeStatementParser] Column list requires a target relation before '('.");
47
+ }
48
+ idx++; // consume '('
49
+ columns = [];
50
+ // Loop through comma-separated column identifiers until closing parenthesis.
51
+ while (idx < lexemes.length) {
52
+ if (lexemes[idx].type & Lexeme_1.TokenType.CloseParen) {
53
+ if (columns.length === 0) {
54
+ throw new Error("[AnalyzeStatementParser] Column list must include at least one column identifier.");
55
+ }
56
+ idx++; // consume ')'
57
+ break;
58
+ }
59
+ const { name, newIndex } = FullNameParser_1.FullNameParser.parseFromLexeme(lexemes, idx);
60
+ columns.push(name);
61
+ idx = newIndex;
62
+ if (((_d = lexemes[idx]) === null || _d === void 0 ? void 0 : _d.type) & Lexeme_1.TokenType.Comma) {
63
+ idx++;
64
+ continue;
65
+ }
66
+ if (((_e = lexemes[idx]) === null || _e === void 0 ? void 0 : _e.type) & Lexeme_1.TokenType.CloseParen) {
67
+ idx++; // consume ')'
68
+ break;
69
+ }
70
+ throw new Error(`[AnalyzeStatementParser] Expected ',' or ')' after column identifier at index ${idx}.`);
71
+ }
72
+ if (columns === null || columns.length === 0) {
73
+ throw new Error("[AnalyzeStatementParser] Column list cannot be empty.");
74
+ }
75
+ }
76
+ // Reject trailing identifiers when no target was provided.
77
+ if (!target && lexemes[idx] && !(lexemes[idx].type & Lexeme_1.TokenType.CloseParen)) {
78
+ throw new Error(`[AnalyzeStatementParser] Unexpected token "${lexemes[idx].value}" after ANALYZE clause.`);
79
+ }
80
+ const statement = new DDLStatements_1.AnalyzeStatement({ verbose, target, columns });
81
+ return { value: statement, newIndex: idx };
82
+ }
83
+ static canStartQualifiedName(lexeme) {
84
+ if (!lexeme) {
85
+ return false;
86
+ }
87
+ if (lexeme.type & (Lexeme_1.TokenType.Identifier | Lexeme_1.TokenType.Command | Lexeme_1.TokenType.Function | Lexeme_1.TokenType.Type)) {
88
+ return true;
89
+ }
90
+ return (lexeme.type & Lexeme_1.TokenType.OpenBracket) !== 0;
91
+ }
92
+ }
93
+ exports.AnalyzeStatementParser = AnalyzeStatementParser;
94
+ //# sourceMappingURL=AnalyzeStatementParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnalyzeStatementParser.js","sourceRoot":"","sources":["../../../src/parsers/AnalyzeStatementParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { ExplainStatement } from "../models/DDLStatements";
2
+ import { Lexeme } from "../models/Lexeme";
3
+ import { SqlComponent } from "../models/SqlComponent";
4
+ type NestedStatementParser = (lexemes: Lexeme[], index: number) => {
5
+ value: SqlComponent;
6
+ newIndex: number;
7
+ };
8
+ /**
9
+ * Parses EXPLAIN statements including legacy shorthand flags and option lists.
10
+ */
11
+ export declare class ExplainStatementParser {
12
+ static parse(sql: string, parseNested: NestedStatementParser): ExplainStatement;
13
+ static parseFromLexeme(lexemes: Lexeme[], index: number, parseNested: NestedStatementParser): {
14
+ value: ExplainStatement;
15
+ newIndex: number;
16
+ };
17
+ private static parseOptionList;
18
+ private static isLegacyFlag;
19
+ private static canStartOptionName;
20
+ private static extractAfterComments;
21
+ private static attachTrailingCommentsToNextLexeme;
22
+ }
23
+ export {};
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExplainStatementParser = void 0;
4
+ const SqlTokenizer_1 = require("./SqlTokenizer");
5
+ const DDLStatements_1 = require("../models/DDLStatements");
6
+ const ValueComponent_1 = require("../models/ValueComponent");
7
+ const Lexeme_1 = require("../models/Lexeme");
8
+ const ValueParser_1 = require("./ValueParser");
9
+ /**
10
+ * Parses EXPLAIN statements including legacy shorthand flags and option lists.
11
+ */
12
+ class ExplainStatementParser {
13
+ static parse(sql, parseNested) {
14
+ const tokenizer = new SqlTokenizer_1.SqlTokenizer(sql);
15
+ const lexemes = tokenizer.readLexemes();
16
+ const result = this.parseFromLexeme(lexemes, 0, parseNested);
17
+ if (result.newIndex < lexemes.length) {
18
+ throw new Error(`[ExplainStatementParser] Unexpected token "${lexemes[result.newIndex].value}" after EXPLAIN statement.`);
19
+ }
20
+ return result.value;
21
+ }
22
+ static parseFromLexeme(lexemes, index, parseNested) {
23
+ let idx = index;
24
+ const first = lexemes[idx];
25
+ if (!first || first.value.toLowerCase() !== "explain") {
26
+ throw new Error(`[ExplainStatementParser] Expected EXPLAIN at index ${idx}.`);
27
+ }
28
+ idx++;
29
+ const options = [];
30
+ // Collect legacy shorthand flags (ANALYZE, VERBOSE) before option list.
31
+ while (this.isLegacyFlag(lexemes[idx])) {
32
+ const flagLexeme = lexemes[idx];
33
+ const optionName = new ValueComponent_1.IdentifierString(flagLexeme.value.toLowerCase());
34
+ if (flagLexeme.comments && flagLexeme.comments.length > 0) {
35
+ optionName.comments = [...flagLexeme.comments];
36
+ }
37
+ const option = new DDLStatements_1.ExplainOption({
38
+ name: optionName,
39
+ value: new ValueComponent_1.RawString("true"),
40
+ });
41
+ options.push(option);
42
+ idx++;
43
+ }
44
+ // Parse optional parenthesised option list.
45
+ if (lexemes[idx] && (lexemes[idx].type & Lexeme_1.TokenType.OpenParen) !== 0) {
46
+ const optionResult = this.parseOptionList(lexemes, idx);
47
+ options.push(...optionResult.options);
48
+ idx = optionResult.newIndex;
49
+ if (optionResult.trailingComments && optionResult.trailingComments.length > 0) {
50
+ // Promote comments that follow the option list so they attach to the nested statement.
51
+ this.attachTrailingCommentsToNextLexeme(lexemes, idx, optionResult.trailingComments);
52
+ }
53
+ }
54
+ if (idx >= lexemes.length) {
55
+ throw new Error("[ExplainStatementParser] EXPLAIN must be followed by a statement to analyze.");
56
+ }
57
+ const nested = parseNested(lexemes, idx);
58
+ const statement = nested.value;
59
+ idx = nested.newIndex;
60
+ const explain = new DDLStatements_1.ExplainStatement({
61
+ options: options.length > 0 ? options : null,
62
+ statement,
63
+ });
64
+ return { value: explain, newIndex: idx };
65
+ }
66
+ static parseOptionList(lexemes, index) {
67
+ let idx = index;
68
+ if (!(lexemes[idx].type & Lexeme_1.TokenType.OpenParen)) {
69
+ throw new Error(`[ExplainStatementParser] Expected '(' to start option list at index ${idx}.`);
70
+ }
71
+ idx++; // consume '('
72
+ const options = [];
73
+ let trailingComments = null;
74
+ while (idx < lexemes.length) {
75
+ const token = lexemes[idx];
76
+ if (!token) {
77
+ throw new Error("[ExplainStatementParser] Unterminated option list.");
78
+ }
79
+ if (token.type & Lexeme_1.TokenType.CloseParen) {
80
+ idx++; // consume ')'
81
+ break;
82
+ }
83
+ if (!this.canStartOptionName(token)) {
84
+ throw new Error(`[ExplainStatementParser] Expected option name inside EXPLAIN option list at index ${idx}, found "${token.value}".`);
85
+ }
86
+ const nameComponent = new ValueComponent_1.IdentifierString(token.value.toLowerCase());
87
+ if (token.comments && token.comments.length > 0) {
88
+ nameComponent.comments = [...token.comments];
89
+ }
90
+ idx++;
91
+ let value = null;
92
+ // Optional equals sign before value.
93
+ if (lexemes[idx] && (lexemes[idx].type & Lexeme_1.TokenType.Operator) && lexemes[idx].value === "=") {
94
+ idx++;
95
+ }
96
+ // Consume explicit value when present (anything other than comma/close paren).
97
+ if (lexemes[idx] && !(lexemes[idx].type & Lexeme_1.TokenType.Comma) && !(lexemes[idx].type & Lexeme_1.TokenType.CloseParen)) {
98
+ const parsedValue = ValueParser_1.ValueParser.parseFromLexeme(lexemes, idx);
99
+ value = parsedValue.value;
100
+ idx = parsedValue.newIndex;
101
+ }
102
+ if (!value) {
103
+ value = new ValueComponent_1.RawString("true");
104
+ }
105
+ options.push(new DDLStatements_1.ExplainOption({ name: nameComponent, value }));
106
+ if (!lexemes[idx]) {
107
+ throw new Error("[ExplainStatementParser] Unterminated option list.");
108
+ }
109
+ if (lexemes[idx].type & Lexeme_1.TokenType.Comma) {
110
+ idx++;
111
+ continue;
112
+ }
113
+ if (lexemes[idx].type & Lexeme_1.TokenType.CloseParen) {
114
+ trailingComments = this.extractAfterComments(lexemes[idx]);
115
+ idx++;
116
+ break;
117
+ }
118
+ throw new Error(`[ExplainStatementParser] Expected ',' or ')' after EXPLAIN option at index ${idx}, found "${lexemes[idx].value}".`);
119
+ }
120
+ return { options, newIndex: idx, trailingComments };
121
+ }
122
+ static isLegacyFlag(lexeme) {
123
+ if (!lexeme) {
124
+ return false;
125
+ }
126
+ if (!(lexeme.type & (Lexeme_1.TokenType.Identifier | Lexeme_1.TokenType.Command | Lexeme_1.TokenType.Function | Lexeme_1.TokenType.Type))) {
127
+ return false;
128
+ }
129
+ const keyword = lexeme.value.toLowerCase();
130
+ return keyword === "analyze" || keyword === "verbose";
131
+ }
132
+ static canStartOptionName(lexeme) {
133
+ return (lexeme.type & (Lexeme_1.TokenType.Identifier | Lexeme_1.TokenType.Command | Lexeme_1.TokenType.Function | Lexeme_1.TokenType.Type)) !== 0;
134
+ }
135
+ static extractAfterComments(token) {
136
+ let collected = null;
137
+ if (token.positionedComments && token.positionedComments.length > 0) {
138
+ // Split out 'after' comments so they can be reassigned to the following token.
139
+ const retained = [];
140
+ for (const posComment of token.positionedComments) {
141
+ if (posComment.position === 'after' && posComment.comments && posComment.comments.length > 0) {
142
+ if (!collected) {
143
+ collected = [];
144
+ }
145
+ collected.push(...posComment.comments);
146
+ continue;
147
+ }
148
+ retained.push(posComment);
149
+ }
150
+ token.positionedComments = retained.length > 0 ? retained : undefined;
151
+ }
152
+ if (token.comments && token.comments.length > 0) {
153
+ // Fall back to legacy comment storage when positioned comments are absent.
154
+ if (!collected) {
155
+ collected = [];
156
+ }
157
+ collected.push(...token.comments);
158
+ token.comments = null;
159
+ }
160
+ return collected;
161
+ }
162
+ static attachTrailingCommentsToNextLexeme(lexemes, index, comments) {
163
+ if (!comments || comments.length === 0) {
164
+ return;
165
+ }
166
+ const target = lexemes[index];
167
+ if (!target) {
168
+ return;
169
+ }
170
+ if (!target.positionedComments) {
171
+ // Initialise positioned comments to allow inserting 'before' entries.
172
+ target.positionedComments = [];
173
+ }
174
+ const beforeEntry = target.positionedComments.find(pos => pos.position === 'before');
175
+ if (beforeEntry) {
176
+ // Append to existing leading comments on the target lexeme.
177
+ beforeEntry.comments.push(...comments);
178
+ }
179
+ else {
180
+ // Seed a new leading comment entry on the next lexeme.
181
+ target.positionedComments.push({
182
+ position: 'before',
183
+ comments: [...comments],
184
+ });
185
+ }
186
+ }
187
+ }
188
+ exports.ExplainStatementParser = ExplainStatementParser;
189
+ //# 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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"}
@@ -77,6 +77,31 @@ class ParenExpressionParser {
77
77
  const result = ValueParser_1.ValueParser.parseArgument(Lexeme_1.TokenType.OpenParen, Lexeme_1.TokenType.CloseParen, lexemes, index);
78
78
  idx = result.newIndex;
79
79
  const value = new ValueComponent_1.ParenExpression(result.value);
80
+ // Preserve comments that trail immediately after the closing parenthesis (e.g. `(expr) -- note`).
81
+ const closingIndex = idx - 1;
82
+ if (closingIndex >= 0 && closingIndex < lexemes.length) {
83
+ const closingLexeme = lexemes[closingIndex];
84
+ if (closingLexeme.type & Lexeme_1.TokenType.CloseParen) {
85
+ if (closingLexeme.positionedComments && closingLexeme.positionedComments.length > 0) {
86
+ const afterComments = closingLexeme.positionedComments
87
+ .filter(comment => comment.position === 'after' && comment.comments.length > 0)
88
+ .map(comment => ({
89
+ position: comment.position,
90
+ comments: [...comment.comments],
91
+ }));
92
+ if (afterComments.length > 0) {
93
+ value.positionedComments = value.positionedComments
94
+ ? [...value.positionedComments, ...afterComments]
95
+ : afterComments;
96
+ }
97
+ }
98
+ else if (closingLexeme.comments && closingLexeme.comments.length > 0) {
99
+ value.comments = value.comments
100
+ ? value.comments.concat(closingLexeme.comments)
101
+ : [...closingLexeme.comments];
102
+ }
103
+ }
104
+ }
80
105
  return { value, newIndex: idx };
81
106
  }
82
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ParenExpressionParser.js","sourceRoot":"","sources":["../../../src/parsers/ParenExpressionParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ParenExpressionParser.js","sourceRoot":"","sources":["../../../src/parsers/ParenExpressionParser.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,8 @@ import type { UpdateQuery } from '../models/UpdateQuery';
4
4
  import type { DeleteQuery } from '../models/DeleteQuery';
5
5
  import type { CreateTableQuery } from '../models/CreateTableQuery';
6
6
  import type { MergeQuery } from '../models/MergeQuery';
7
- import type { DropTableStatement, DropIndexStatement, CreateIndexStatement, AlterTableStatement, DropConstraintStatement } from '../models/DDLStatements';
8
- export type ParsedStatement = SelectQuery | InsertQuery | UpdateQuery | DeleteQuery | CreateTableQuery | MergeQuery | DropTableStatement | DropIndexStatement | CreateIndexStatement | AlterTableStatement | DropConstraintStatement;
7
+ import type { DropTableStatement, DropIndexStatement, CreateIndexStatement, AlterTableStatement, DropConstraintStatement, AnalyzeStatement, ExplainStatement } from '../models/DDLStatements';
8
+ export type ParsedStatement = SelectQuery | InsertQuery | UpdateQuery | DeleteQuery | CreateTableQuery | MergeQuery | DropTableStatement | DropIndexStatement | CreateIndexStatement | AlterTableStatement | DropConstraintStatement | AnalyzeStatement | ExplainStatement;
9
9
  export interface SqlParserOptions {
10
10
  mode?: 'single' | 'multiple';
11
11
  skipEmptyStatements?: boolean;
@@ -22,6 +22,7 @@ export declare class SqlParser {
22
22
  static parseMany(sql: string, options?: SqlParserManyOptions): ParsedStatement[];
23
23
  private static dispatchParse;
24
24
  private static parseSelectStatement;
25
+ private static parseExplainStatement;
25
26
  private static parseInsertStatement;
26
27
  private static parseUpdateStatement;
27
28
  private static parseDeleteStatement;
@@ -31,6 +32,7 @@ export declare class SqlParser {
31
32
  private static parseCreateIndexStatement;
32
33
  private static parseAlterTableStatement;
33
34
  private static parseDropConstraintStatement;
35
+ private static parseAnalyzeStatement;
34
36
  private static parseMergeStatement;
35
37
  private static getCommandAfterWith;
36
38
  private static cloneLexemeArray;