rawsql-ts 0.23.1 → 0.24.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/dist/esm/index.min.js +11 -11
  2. package/dist/esm/index.min.js.map +4 -4
  3. package/dist/esm/models/Clause.d.ts +30 -2
  4. package/dist/esm/models/Clause.js +25 -2
  5. package/dist/esm/models/Clause.js.map +1 -1
  6. package/dist/esm/models/InsertQuery.d.ts +3 -1
  7. package/dist/esm/models/InsertQuery.js +3 -2
  8. package/dist/esm/models/InsertQuery.js.map +1 -1
  9. package/dist/esm/models/SqlPrintToken.d.ts +1 -0
  10. package/dist/esm/models/SqlPrintToken.js +1 -0
  11. package/dist/esm/models/SqlPrintToken.js.map +1 -1
  12. package/dist/esm/models/ValueComponent.d.ts +13 -2
  13. package/dist/esm/models/ValueComponent.js +12 -1
  14. package/dist/esm/models/ValueComponent.js.map +1 -1
  15. package/dist/esm/parsers/FunctionExpressionParser.d.ts +8 -0
  16. package/dist/esm/parsers/FunctionExpressionParser.js +66 -5
  17. package/dist/esm/parsers/FunctionExpressionParser.js.map +1 -1
  18. package/dist/esm/parsers/GroupByParser.d.ts +1 -0
  19. package/dist/esm/parsers/GroupByParser.js +30 -7
  20. package/dist/esm/parsers/GroupByParser.js.map +1 -1
  21. package/dist/esm/parsers/InsertQueryParser.d.ts +2 -0
  22. package/dist/esm/parsers/InsertQueryParser.js +120 -3
  23. package/dist/esm/parsers/InsertQueryParser.js.map +1 -1
  24. package/dist/esm/parsers/ReturningClauseParser.d.ts +1 -0
  25. package/dist/esm/parsers/ReturningClauseParser.js +46 -2
  26. package/dist/esm/parsers/ReturningClauseParser.js.map +1 -1
  27. package/dist/esm/parsers/SqlPrintTokenParser.d.ts +14 -0
  28. package/dist/esm/parsers/SqlPrintTokenParser.js +106 -8
  29. package/dist/esm/parsers/SqlPrintTokenParser.js.map +1 -1
  30. package/dist/esm/parsers/SqlTokenizer.js +2 -2
  31. package/dist/esm/parsers/SqlTokenizer.js.map +1 -1
  32. package/dist/esm/parsers/ValueParser.d.ts +1 -0
  33. package/dist/esm/parsers/ValueParser.js +39 -1
  34. package/dist/esm/parsers/ValueParser.js.map +1 -1
  35. package/dist/esm/tokenReaders/CommandTokenReader.js +5 -0
  36. package/dist/esm/tokenReaders/CommandTokenReader.js.map +1 -1
  37. package/dist/esm/tokenReaders/FunctionTokenReader.d.ts +1 -0
  38. package/dist/esm/tokenReaders/FunctionTokenReader.js +7 -0
  39. package/dist/esm/tokenReaders/FunctionTokenReader.js.map +1 -1
  40. package/dist/esm/tokenReaders/PostgresFunctionTokenReader.d.ts +5 -0
  41. package/dist/esm/tokenReaders/PostgresFunctionTokenReader.js +12 -0
  42. package/dist/esm/tokenReaders/PostgresFunctionTokenReader.js.map +1 -0
  43. package/dist/esm/transformers/CTECollector.d.ts +1 -0
  44. package/dist/esm/transformers/CTECollector.js +5 -1
  45. package/dist/esm/transformers/CTECollector.js.map +1 -1
  46. package/dist/esm/transformers/CTEDisabler.d.ts +2 -1
  47. package/dist/esm/transformers/CTEDisabler.js +7 -2
  48. package/dist/esm/transformers/CTEDisabler.js.map +1 -1
  49. package/dist/esm/transformers/CTETableReferenceCollector.d.ts +1 -0
  50. package/dist/esm/transformers/CTETableReferenceCollector.js +5 -1
  51. package/dist/esm/transformers/CTETableReferenceCollector.js.map +1 -1
  52. package/dist/esm/transformers/ColumnReferenceCollector.d.ts +1 -0
  53. package/dist/esm/transformers/ColumnReferenceCollector.js +8 -1
  54. package/dist/esm/transformers/ColumnReferenceCollector.js.map +1 -1
  55. package/dist/esm/transformers/SelectableColumnCollector.d.ts +1 -0
  56. package/dist/esm/transformers/SelectableColumnCollector.js +5 -1
  57. package/dist/esm/transformers/SelectableColumnCollector.js.map +1 -1
  58. package/dist/esm/transformers/SqlFormatter.d.ts +5 -1
  59. package/dist/esm/transformers/SqlFormatter.js +3 -3
  60. package/dist/esm/transformers/SqlFormatter.js.map +1 -1
  61. package/dist/esm/transformers/TableSourceCollector.d.ts +1 -0
  62. package/dist/esm/transformers/TableSourceCollector.js +5 -1
  63. package/dist/esm/transformers/TableSourceCollector.js.map +1 -1
  64. package/dist/esm/utils/ParameterRemover.d.ts +1 -0
  65. package/dist/esm/utils/ParameterRemover.js +14 -2
  66. package/dist/esm/utils/ParameterRemover.js.map +1 -1
  67. package/dist/esm/utils/ValueComponentRewriter.js +5 -1
  68. package/dist/esm/utils/ValueComponentRewriter.js.map +1 -1
  69. package/dist/index.min.js +11 -11
  70. package/dist/index.min.js.map +4 -4
  71. package/dist/models/Clause.js +28 -3
  72. package/dist/models/Clause.js.map +1 -1
  73. package/dist/models/InsertQuery.js +3 -2
  74. package/dist/models/InsertQuery.js.map +1 -1
  75. package/dist/models/SqlPrintToken.js +1 -0
  76. package/dist/models/SqlPrintToken.js.map +1 -1
  77. package/dist/models/ValueComponent.js +14 -2
  78. package/dist/models/ValueComponent.js.map +1 -1
  79. package/dist/parsers/FunctionExpressionParser.js +66 -5
  80. package/dist/parsers/FunctionExpressionParser.js.map +1 -1
  81. package/dist/parsers/GroupByParser.js +30 -7
  82. package/dist/parsers/GroupByParser.js.map +1 -1
  83. package/dist/parsers/InsertQueryParser.js +119 -2
  84. package/dist/parsers/InsertQueryParser.js.map +1 -1
  85. package/dist/parsers/ReturningClauseParser.js +45 -1
  86. package/dist/parsers/ReturningClauseParser.js.map +1 -1
  87. package/dist/parsers/SqlPrintTokenParser.js +104 -6
  88. package/dist/parsers/SqlPrintTokenParser.js.map +1 -1
  89. package/dist/parsers/SqlTokenizer.js +2 -2
  90. package/dist/parsers/SqlTokenizer.js.map +1 -1
  91. package/dist/parsers/ValueParser.js +38 -0
  92. package/dist/parsers/ValueParser.js.map +1 -1
  93. package/dist/src/models/Clause.d.ts +30 -2
  94. package/dist/src/models/InsertQuery.d.ts +3 -1
  95. package/dist/src/models/SqlPrintToken.d.ts +1 -0
  96. package/dist/src/models/ValueComponent.d.ts +13 -2
  97. package/dist/src/parsers/FunctionExpressionParser.d.ts +8 -0
  98. package/dist/src/parsers/GroupByParser.d.ts +1 -0
  99. package/dist/src/parsers/InsertQueryParser.d.ts +2 -0
  100. package/dist/src/parsers/ReturningClauseParser.d.ts +1 -0
  101. package/dist/src/parsers/SqlPrintTokenParser.d.ts +14 -0
  102. package/dist/src/parsers/ValueParser.d.ts +1 -0
  103. package/dist/src/tokenReaders/FunctionTokenReader.d.ts +1 -0
  104. package/dist/src/tokenReaders/PostgresFunctionTokenReader.d.ts +5 -0
  105. package/dist/src/transformers/CTECollector.d.ts +1 -0
  106. package/dist/src/transformers/CTEDisabler.d.ts +2 -1
  107. package/dist/src/transformers/CTETableReferenceCollector.d.ts +1 -0
  108. package/dist/src/transformers/ColumnReferenceCollector.d.ts +1 -0
  109. package/dist/src/transformers/SelectableColumnCollector.d.ts +1 -0
  110. package/dist/src/transformers/SqlFormatter.d.ts +5 -1
  111. package/dist/src/transformers/TableSourceCollector.d.ts +1 -0
  112. package/dist/src/utils/ParameterRemover.d.ts +1 -0
  113. package/dist/tokenReaders/CommandTokenReader.js +5 -0
  114. package/dist/tokenReaders/CommandTokenReader.js.map +1 -1
  115. package/dist/tokenReaders/FunctionTokenReader.js +7 -0
  116. package/dist/tokenReaders/FunctionTokenReader.js.map +1 -1
  117. package/dist/tokenReaders/PostgresFunctionTokenReader.js +16 -0
  118. package/dist/tokenReaders/PostgresFunctionTokenReader.js.map +1 -0
  119. package/dist/transformers/CTECollector.js +4 -0
  120. package/dist/transformers/CTECollector.js.map +1 -1
  121. package/dist/transformers/CTEDisabler.js +6 -1
  122. package/dist/transformers/CTEDisabler.js.map +1 -1
  123. package/dist/transformers/CTETableReferenceCollector.js +4 -0
  124. package/dist/transformers/CTETableReferenceCollector.js.map +1 -1
  125. package/dist/transformers/ColumnReferenceCollector.js +7 -0
  126. package/dist/transformers/ColumnReferenceCollector.js.map +1 -1
  127. package/dist/transformers/SelectableColumnCollector.js +4 -0
  128. package/dist/transformers/SelectableColumnCollector.js.map +1 -1
  129. package/dist/transformers/SqlFormatter.js +4 -2
  130. package/dist/transformers/SqlFormatter.js.map +1 -1
  131. package/dist/transformers/TableSourceCollector.js +4 -0
  132. package/dist/transformers/TableSourceCollector.js.map +1 -1
  133. package/dist/tsconfig.browser.tsbuildinfo +1 -1
  134. package/dist/utils/ParameterRemover.js +13 -1
  135. package/dist/utils/ParameterRemover.js.map +1 -1
  136. package/dist/utils/ValueComponentRewriter.js +4 -0
  137. package/dist/utils/ValueComponentRewriter.js.map +1 -1
  138. package/package.json +1 -1
@@ -15,6 +15,10 @@ const ValuesQueryParser_1 = require("./ValuesQueryParser");
15
15
  const ReturningClauseParser_1 = require("./ReturningClauseParser");
16
16
  const ValueComponent_1 = require("../models/ValueComponent");
17
17
  const LexemeCommentUtils_1 = require("./utils/LexemeCommentUtils");
18
+ const ParserStringUtils_1 = require("../utils/ParserStringUtils");
19
+ const ForClauseParser_1 = require("./ForClauseParser");
20
+ const WhereClauseParser_1 = require("./WhereClauseParser");
21
+ const SetClauseParser_1 = require("./SetClauseParser");
18
22
  class InsertQueryParser {
19
23
  /**
20
24
  * Parse SQL string to InsertQuery AST.
@@ -33,7 +37,7 @@ class InsertQueryParser {
33
37
  * Parse from lexeme array (for internal use and tests)
34
38
  */
35
39
  static parseFromLexeme(lexemes, index) {
36
- var _a, _b, _c, _d, _e, _f, _g;
40
+ var _a, _b, _c, _d, _e, _f, _g, _h;
37
41
  let idx = index;
38
42
  let withClause = null;
39
43
  if (((_a = lexemes[idx]) === null || _a === void 0 ? void 0 : _a.value) === "with") {
@@ -132,12 +136,21 @@ class InsertQueryParser {
132
136
  dataQuery = selectResult.value;
133
137
  idx = selectResult.newIndex;
134
138
  }
139
+ let onConflictClause = null;
140
+ if (((_g = lexemes[idx]) === null || _g === void 0 ? void 0 : _g.value) === "on conflict") {
141
+ const onConflictResult = this.parseOnConflictClause(lexemes, idx);
142
+ onConflictClause = onConflictResult.value;
143
+ idx = onConflictResult.newIndex;
144
+ }
135
145
  let returningClause = null;
136
- if (((_g = lexemes[idx]) === null || _g === void 0 ? void 0 : _g.value) === "returning") {
146
+ if (((_h = lexemes[idx]) === null || _h === void 0 ? void 0 : _h.value) === "returning") {
137
147
  const returningResult = ReturningClauseParser_1.ReturningClauseParser.parseFromLexeme(lexemes, idx);
138
148
  returningClause = returningResult.value;
139
149
  idx = returningResult.newIndex;
140
150
  }
151
+ if ((onConflictClause === null || onConflictClause === void 0 ? void 0 : onConflictClause.action) === "select" && !returningClause) {
152
+ throw new Error(`Syntax error: ON CONFLICT DO SELECT requires a RETURNING clause.`);
153
+ }
141
154
  const insertClause = new Clause_1.InsertClause(targetSource, columnIdentifiers !== null && columnIdentifiers !== void 0 ? columnIdentifiers : null);
142
155
  if (insertKeywordComments.before.length > 0) {
143
156
  insertClause.addPositionedComments("before", insertKeywordComments.before);
@@ -152,11 +165,115 @@ class InsertQueryParser {
152
165
  value: new InsertQuery_1.InsertQuery({
153
166
  insertClause,
154
167
  selectQuery: dataQuery,
168
+ onConflict: onConflictClause,
155
169
  returning: returningClause
156
170
  }),
157
171
  newIndex: idx
158
172
  };
159
173
  }
174
+ static parseOnConflictClause(lexemes, index) {
175
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
176
+ let idx = index;
177
+ if (((_a = lexemes[idx]) === null || _a === void 0 ? void 0 : _a.value) !== "on conflict") {
178
+ throw new Error(`Syntax error at position ${idx}: Expected 'ON CONFLICT'.`);
179
+ }
180
+ idx++;
181
+ let target = null;
182
+ let targetKind = null;
183
+ if (((_b = lexemes[idx]) === null || _b === void 0 ? void 0 : _b.type) === Lexeme_1.TokenType.OpenParen) {
184
+ const targetStart = idx;
185
+ idx = this.consumeBalancedParentheses(lexemes, idx);
186
+ target = (0, ParserStringUtils_1.joinLexemeValues)(lexemes, targetStart, idx);
187
+ targetKind = "columns";
188
+ }
189
+ else if (((_c = lexemes[idx]) === null || _c === void 0 ? void 0 : _c.value) === "on" && ((_d = lexemes[idx + 1]) === null || _d === void 0 ? void 0 : _d.value) === "constraint") {
190
+ idx += 2;
191
+ if (idx >= lexemes.length || lexemes[idx].value === "do select" || lexemes[idx].value === "do update" || lexemes[idx].value === "do nothing") {
192
+ throw new Error(`Syntax error at position ${idx}: Expected constraint name after ON CONSTRAINT.`);
193
+ }
194
+ const targetStart = idx;
195
+ idx++;
196
+ target = (0, ParserStringUtils_1.joinLexemeValues)(lexemes, targetStart, idx);
197
+ targetKind = "constraint";
198
+ }
199
+ const actionToken = (_e = lexemes[idx]) === null || _e === void 0 ? void 0 : _e.value;
200
+ if (actionToken === "do nothing") {
201
+ idx++;
202
+ return {
203
+ value: new Clause_1.OnConflictClause({
204
+ target,
205
+ targetKind,
206
+ action: "nothing",
207
+ }),
208
+ newIndex: idx
209
+ };
210
+ }
211
+ if (actionToken === "do update") {
212
+ idx++;
213
+ const setResult = SetClauseParser_1.SetClauseParser.parseFromLexeme(lexemes, idx);
214
+ idx = setResult.newIndex;
215
+ let whereClause = null;
216
+ if (((_f = lexemes[idx]) === null || _f === void 0 ? void 0 : _f.value) === "where") {
217
+ const whereResult = WhereClauseParser_1.WhereClauseParser.parseFromLexeme(lexemes, idx);
218
+ whereClause = whereResult.value;
219
+ idx = whereResult.newIndex;
220
+ }
221
+ return {
222
+ value: new Clause_1.OnConflictClause({
223
+ target,
224
+ targetKind,
225
+ action: "update",
226
+ setClause: setResult.setClause,
227
+ whereClause,
228
+ }),
229
+ newIndex: idx
230
+ };
231
+ }
232
+ if (actionToken !== "do select") {
233
+ const found = (_h = (_g = lexemes[idx]) === null || _g === void 0 ? void 0 : _g.value) !== null && _h !== void 0 ? _h : "end of input";
234
+ throw new Error(`Syntax error at position ${idx}: Expected 'DO SELECT', 'DO UPDATE', or 'DO NOTHING' after ON CONFLICT but found '${found}'.`);
235
+ }
236
+ idx++;
237
+ let forClause = null;
238
+ if (((_j = lexemes[idx]) === null || _j === void 0 ? void 0 : _j.value) === "for") {
239
+ const forResult = ForClauseParser_1.ForClauseParser.parseFromLexeme(lexemes, idx);
240
+ forClause = forResult.value;
241
+ idx = forResult.newIndex;
242
+ }
243
+ let whereClause = null;
244
+ if (((_k = lexemes[idx]) === null || _k === void 0 ? void 0 : _k.value) === "where") {
245
+ const whereResult = WhereClauseParser_1.WhereClauseParser.parseFromLexeme(lexemes, idx);
246
+ whereClause = whereResult.value;
247
+ idx = whereResult.newIndex;
248
+ }
249
+ return {
250
+ value: new Clause_1.OnConflictClause({
251
+ target,
252
+ targetKind,
253
+ action: "select",
254
+ forClause,
255
+ whereClause,
256
+ }),
257
+ newIndex: idx
258
+ };
259
+ }
260
+ static consumeBalancedParentheses(lexemes, index) {
261
+ let idx = index;
262
+ let depth = 0;
263
+ while (idx < lexemes.length) {
264
+ if (lexemes[idx].type === Lexeme_1.TokenType.OpenParen) {
265
+ depth++;
266
+ }
267
+ else if (lexemes[idx].type === Lexeme_1.TokenType.CloseParen) {
268
+ depth--;
269
+ if (depth === 0) {
270
+ return idx + 1;
271
+ }
272
+ }
273
+ idx++;
274
+ }
275
+ throw new Error(`Syntax error at position ${index}: Expected ')' after ON CONFLICT target.`);
276
+ }
160
277
  }
161
278
  exports.InsertQueryParser = InsertQueryParser;
162
279
  //# sourceMappingURL=InsertQueryParser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InsertQueryParser.js","sourceRoot":"","sources":["../../src/parsers/InsertQueryParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InsertQueryParser.js","sourceRoot":"","sources":["../../src/parsers/InsertQueryParser.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ const Lexeme_1 = require("../models/Lexeme");
6
6
  const Clause_1 = require("../models/Clause");
7
7
  const LexemeCommentUtils_1 = require("./utils/LexemeCommentUtils");
8
8
  const SelectClauseParser_1 = require("./SelectClauseParser");
9
+ const FullNameParser_1 = require("./FullNameParser");
9
10
  class ReturningClauseParser {
10
11
  /**
11
12
  * Parse RETURNING clause from lexemes, starting at the given index.
@@ -20,6 +21,9 @@ class ReturningClauseParser {
20
21
  const returningLexeme = lexemes[idx];
21
22
  const returningComments = (0, LexemeCommentUtils_1.extractLexemeComments)(returningLexeme);
22
23
  idx++;
24
+ const aliasResult = this.parseReturningAliases(lexemes, idx);
25
+ const aliases = aliasResult.aliases;
26
+ idx = aliasResult.newIndex;
23
27
  const items = [];
24
28
  // Parse first item
25
29
  const firstItemResult = SelectClauseParser_1.SelectItemParser.parseItem(lexemes, idx);
@@ -44,7 +48,7 @@ class ReturningClauseParser {
44
48
  const position = (_e = (_d = (_c = lexemes[idx]) === null || _c === void 0 ? void 0 : _c.position) === null || _d === void 0 ? void 0 : _d.startPosition) !== null && _e !== void 0 ? _e : idx;
45
49
  throw new Error(`[ReturningClauseParser] Expected a column or '*' after RETURNING at position ${position}.`);
46
50
  }
47
- const clause = new Clause_1.ReturningClause(items);
51
+ const clause = new Clause_1.ReturningClause(items, aliases);
48
52
  if (returningComments.before.length > 0) {
49
53
  clause.addPositionedComments("before", returningComments.before);
50
54
  }
@@ -59,6 +63,46 @@ class ReturningClauseParser {
59
63
  }
60
64
  return { value: clause, newIndex: idx };
61
65
  }
66
+ static parseReturningAliases(lexemes, index) {
67
+ var _a, _b, _c, _d;
68
+ let idx = index;
69
+ const aliases = [];
70
+ if (((_a = lexemes[idx]) === null || _a === void 0 ? void 0 : _a.value) !== "with") {
71
+ return { aliases, newIndex: idx };
72
+ }
73
+ idx++;
74
+ if (idx >= lexemes.length || !(lexemes[idx].type & Lexeme_1.TokenType.OpenParen)) {
75
+ throw new Error(`[ReturningClauseParser] Expected '(' after RETURNING WITH at position ${idx}.`);
76
+ }
77
+ idx++;
78
+ while (idx < lexemes.length) {
79
+ const kind = (_c = (_b = lexemes[idx]) === null || _b === void 0 ? void 0 : _b.value) === null || _c === void 0 ? void 0 : _c.toLowerCase();
80
+ if (kind !== "old" && kind !== "new") {
81
+ throw new Error(`[ReturningClauseParser] Expected OLD or NEW in RETURNING WITH alias list at position ${idx}.`);
82
+ }
83
+ idx++;
84
+ if (((_d = lexemes[idx]) === null || _d === void 0 ? void 0 : _d.value) !== "as") {
85
+ throw new Error(`[ReturningClauseParser] Expected AS after ${kind.toUpperCase()} in RETURNING WITH alias list at position ${idx}.`);
86
+ }
87
+ idx++;
88
+ const aliasResult = FullNameParser_1.FullNameParser.parseFromLexeme(lexemes, idx);
89
+ if (aliasResult.namespaces && aliasResult.namespaces.length > 0) {
90
+ throw new Error(`[ReturningClauseParser] RETURNING WITH alias must be an unqualified identifier at position ${idx}.`);
91
+ }
92
+ aliases.push(new Clause_1.ReturningAlias(kind, aliasResult.name));
93
+ idx = aliasResult.newIndex;
94
+ if (idx < lexemes.length && (lexemes[idx].type & Lexeme_1.TokenType.Comma)) {
95
+ idx++;
96
+ continue;
97
+ }
98
+ if (idx < lexemes.length && (lexemes[idx].type & Lexeme_1.TokenType.CloseParen)) {
99
+ idx++;
100
+ return { aliases, newIndex: idx };
101
+ }
102
+ throw new Error(`[ReturningClauseParser] Expected ',' or ')' in RETURNING WITH alias list at position ${idx}.`);
103
+ }
104
+ throw new Error(`[ReturningClauseParser] Missing closing ')' in RETURNING WITH alias list.`);
105
+ }
62
106
  }
63
107
  exports.ReturningClauseParser = ReturningClauseParser;
64
108
  //# sourceMappingURL=ReturningClauseParser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReturningClauseParser.js","sourceRoot":"","sources":["../../src/parsers/ReturningClauseParser.ts"],"names":[],"mappings":";;;AAAA,uFAAuF;AACvF,6CAAqD;AACrD,6CAA+D;AAC/D,mEAAmE;AACnE,6DAAwD;AAExD,MAAa,qBAAqB;IAC9B;;;OAGG;IACI,MAAM,CAAC,eAAe,CAAC,OAAiB,EAAE,KAAa;;QAC1D,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,IAAI,CAAA,MAAA,OAAO,CAAC,GAAG,CAAC,0CAAE,KAAK,MAAK,WAAW,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,qCAAqC,MAAA,OAAO,CAAC,GAAG,CAAC,0CAAE,KAAK,IAAI,CAAC,CAAC;QACjH,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,iBAAiB,GAAG,IAAA,0CAAqB,EAAC,eAAe,CAAC,CAAC;QACjE,GAAG,EAAE,CAAC;QAEN,MAAM,KAAK,GAAiB,EAAE,CAAC;QAE/B,mBAAmB;QACnB,MAAM,eAAe,GAAG,qCAAgB,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAClC,GAAG,GAAG,eAAe,CAAC,QAAQ,CAAC;QAE/B,6CAA6C;QAC7C,OAAO,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,kBAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACnE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,2EAA2E;YAC3E,sGAAsG;YACtG,sFAAsF;YACtF,8EAA8E;YAC9E,0GAA0G;YAC1G,+DAA+D;YAC/D,2EAA2E;YAE3E,GAAG,EAAE,CAAC,CAAC,aAAa;YACpB,MAAM,UAAU,GAAG,qCAAgB,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC5D,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC7B,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC;QAC9B,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,MAAA,MAAA,MAAA,OAAO,CAAC,GAAG,CAAC,0CAAE,QAAQ,0CAAE,aAAa,mCAAI,GAAG,CAAC;YAC9D,MAAM,IAAI,KAAK,CAAC,gFAAgF,QAAQ,GAAG,CAAC,CAAC;QACjH,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,wBAAe,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,iBAAiB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACrE,CAAC;QACD,wHAAwH;QACxH,6FAA6F;QAC7F,kGAAkG;QAClG,0BAA0B;QAC1B,qEAAqE;QACrE,sCAAsC;QAEtC,IAAI,iBAAiB,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAC5C,CAAC;CACJ;AA7DD,sDA6DC"}
1
+ {"version":3,"file":"ReturningClauseParser.js","sourceRoot":"","sources":["../../src/parsers/ReturningClauseParser.ts"],"names":[],"mappings":"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"}
@@ -157,7 +157,7 @@ class SqlPrintTokenParser {
157
157
  return this._selfHandlingComponentTypes;
158
158
  }
159
159
  constructor(options) {
160
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
160
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
161
161
  this.handlers = new Map();
162
162
  this.index = 1;
163
163
  this.joinConditionContexts = [];
@@ -177,7 +177,9 @@ class SqlPrintTokenParser {
177
177
  });
178
178
  this.castStyle = (_j = options === null || options === void 0 ? void 0 : options.castStyle) !== null && _j !== void 0 ? _j : 'standard';
179
179
  this.constraintStyle = (_k = options === null || options === void 0 ? void 0 : options.constraintStyle) !== null && _k !== void 0 ? _k : 'postgres';
180
- this.normalizeJoinConditionOrder = (_l = options === null || options === void 0 ? void 0 : options.joinConditionOrderByDeclaration) !== null && _l !== void 0 ? _l : false;
180
+ this.sourceAliasStyle = (_l = options === null || options === void 0 ? void 0 : options.sourceAliasStyle) !== null && _l !== void 0 ? _l : 'as';
181
+ this.orderByDefaultDirectionStyle = (_m = options === null || options === void 0 ? void 0 : options.orderByDefaultDirectionStyle) !== null && _m !== void 0 ? _m : 'omit';
182
+ this.normalizeJoinConditionOrder = (_o = options === null || options === void 0 ? void 0 : options.joinConditionOrderByDeclaration) !== null && _o !== void 0 ? _o : false;
181
183
  this.handlers.set(ValueComponent_1.ValueList.kind, (expr) => this.visitValueList(expr));
182
184
  this.handlers.set(ValueComponent_1.ColumnReference.kind, (expr) => this.visitColumnReference(expr));
183
185
  this.handlers.set(ValueComponent_1.QualifiedName.kind, (expr) => this.visitQualifiedName(expr));
@@ -198,6 +200,7 @@ class SqlPrintTokenParser {
198
200
  this.handlers.set(ValueComponent_1.ArraySliceExpression.kind, (expr) => this.visitArraySliceExpression(expr));
199
201
  this.handlers.set(ValueComponent_1.ArrayIndexExpression.kind, (expr) => this.visitArrayIndexExpression(expr));
200
202
  this.handlers.set(ValueComponent_1.BetweenExpression.kind, (expr) => this.visitBetweenExpression(expr));
203
+ this.handlers.set(ValueComponent_1.JsonPredicateExpression.kind, (expr) => this.visitJsonPredicateExpression(expr));
201
204
  this.handlers.set(ValueComponent_1.StringSpecifierExpression.kind, (expr) => this.visitStringSpecifierExpression(expr));
202
205
  this.handlers.set(ValueComponent_1.TypeValue.kind, (expr) => this.visitTypeValue(expr));
203
206
  this.handlers.set(ValueComponent_1.TupleExpression.kind, (expr) => this.visitTupleExpression(expr));
@@ -247,6 +250,7 @@ class SqlPrintTokenParser {
247
250
  this.handlers.set(ValueComponent_1.TupleExpression.kind, (expr) => this.visitTupleExpression(expr));
248
251
  this.handlers.set(InsertQuery_1.InsertQuery.kind, (expr) => this.visitInsertQuery(expr));
249
252
  this.handlers.set(Clause_1.InsertClause.kind, (expr) => this.visitInsertClause(expr));
253
+ this.handlers.set(Clause_1.OnConflictClause.kind, (expr) => this.visitOnConflictClause(expr));
250
254
  this.handlers.set(UpdateQuery_1.UpdateQuery.kind, (expr) => this.visitUpdateQuery(expr));
251
255
  this.handlers.set(Clause_1.UpdateClause.kind, (expr) => this.visitUpdateClause(expr));
252
256
  this.handlers.set(DeleteQuery_1.DeleteQuery.kind, (expr) => this.visitDeleteQuery(expr));
@@ -401,6 +405,10 @@ class SqlPrintTokenParser {
401
405
  token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
402
406
  token.innerTokens.push(new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, 'desc'));
403
407
  }
408
+ else if (this.orderByDefaultDirectionStyle === 'explicit') {
409
+ token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
410
+ token.innerTokens.push(new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, 'asc'));
411
+ }
404
412
  if (arg.nullsPosition) {
405
413
  if (arg.nullsPosition === Clause_1.NullsSortDirection.First) {
406
414
  token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
@@ -931,6 +939,10 @@ class SqlPrintTokenParser {
931
939
  token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
932
940
  token.innerTokens.push(new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, 'with ordinality'));
933
941
  }
942
+ if (arg.nullsTreatment) {
943
+ token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
944
+ token.innerTokens.push(new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, arg.nullsTreatment));
945
+ }
934
946
  if (arg.over) {
935
947
  token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
936
948
  token.innerTokens.push(new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, 'over'));
@@ -1766,8 +1778,7 @@ class SqlPrintTokenParser {
1766
1778
  return token;
1767
1779
  }
1768
1780
  token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
1769
- token.innerTokens.push(new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, 'as'));
1770
- token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
1781
+ this.appendSourceAliasKeyword(token);
1771
1782
  // exclude column aliases
1772
1783
  token.innerTokens.push(arg.aliasExpression.accept(this));
1773
1784
  return token;
@@ -1775,13 +1786,19 @@ class SqlPrintTokenParser {
1775
1786
  else {
1776
1787
  // For other source types, just print the alias
1777
1788
  token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
1778
- token.innerTokens.push(new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, 'as'));
1779
- token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
1789
+ this.appendSourceAliasKeyword(token);
1780
1790
  // included column aliases
1781
1791
  token.innerTokens.push(arg.aliasExpression.accept(this));
1782
1792
  return token;
1783
1793
  }
1784
1794
  }
1795
+ appendSourceAliasKeyword(token) {
1796
+ if (this.sourceAliasStyle === 'implicit') {
1797
+ return;
1798
+ }
1799
+ token.innerTokens.push(new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, 'as'));
1800
+ token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
1801
+ }
1785
1802
  visitFromClause(arg) {
1786
1803
  // Build a declaration order map so JOIN ON operands can be normalized later.
1787
1804
  let contextPushed = false;
@@ -2032,6 +2049,13 @@ class SqlPrintTokenParser {
2032
2049
  }
2033
2050
  visitGroupByClause(arg) {
2034
2051
  const token = new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, 'group by', SqlPrintToken_1.SqlPrintTokenContainerType.GroupByClause);
2052
+ if (arg.mode) {
2053
+ token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
2054
+ token.innerTokens.push(new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, arg.mode));
2055
+ }
2056
+ if (arg.grouping.length === 0) {
2057
+ return token;
2058
+ }
2035
2059
  token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
2036
2060
  for (let i = 0; i < arg.grouping.length; i++) {
2037
2061
  if (i > 0) {
@@ -2301,6 +2325,10 @@ class SqlPrintTokenParser {
2301
2325
  token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
2302
2326
  token.innerTokens.push(this.visit(arg.selectQuery));
2303
2327
  }
2328
+ if (arg.onConflictClause) {
2329
+ token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
2330
+ token.innerTokens.push(arg.onConflictClause.accept(this));
2331
+ }
2304
2332
  if (arg.returningClause) {
2305
2333
  token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
2306
2334
  token.innerTokens.push(arg.returningClause.accept(this));
@@ -2310,6 +2338,59 @@ class SqlPrintTokenParser {
2310
2338
  }
2311
2339
  return token;
2312
2340
  }
2341
+ visitJsonPredicateExpression(arg) {
2342
+ const token = new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.container, '', SqlPrintToken_1.SqlPrintTokenContainerType.BinaryExpression);
2343
+ token.innerTokens.push(this.visit(arg.expression));
2344
+ token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
2345
+ token.innerTokens.push(new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.operator, arg.negated ? 'is not' : 'is'));
2346
+ token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
2347
+ token.innerTokens.push(new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, 'json'));
2348
+ if (arg.jsonType) {
2349
+ token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
2350
+ token.innerTokens.push(new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, arg.jsonType));
2351
+ }
2352
+ if (arg.uniqueKeys) {
2353
+ token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
2354
+ token.innerTokens.push(new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, `${arg.uniqueKeys} unique keys`));
2355
+ }
2356
+ return token;
2357
+ }
2358
+ visitOnConflictClause(arg) {
2359
+ const token = new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, 'on conflict', SqlPrintToken_1.SqlPrintTokenContainerType.OnConflictClause);
2360
+ if (arg.target) {
2361
+ token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
2362
+ if (arg.targetKind === "constraint") {
2363
+ token.innerTokens.push(new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, 'on constraint'));
2364
+ token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
2365
+ }
2366
+ token.innerTokens.push(arg.target.accept(this));
2367
+ }
2368
+ token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
2369
+ token.innerTokens.push(new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, this.formatOnConflictAction(arg)));
2370
+ if (arg.setClause) {
2371
+ token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
2372
+ token.innerTokens.push(arg.setClause.accept(this));
2373
+ }
2374
+ if (arg.forClause) {
2375
+ token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
2376
+ token.innerTokens.push(arg.forClause.accept(this));
2377
+ }
2378
+ if (arg.whereClause) {
2379
+ token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
2380
+ token.innerTokens.push(arg.whereClause.accept(this));
2381
+ }
2382
+ return token;
2383
+ }
2384
+ formatOnConflictAction(arg) {
2385
+ switch (arg.action) {
2386
+ case "nothing":
2387
+ return "do nothing";
2388
+ case "select":
2389
+ return "do select";
2390
+ case "update":
2391
+ return "do update";
2392
+ }
2393
+ }
2313
2394
  visitInsertClause(arg) {
2314
2395
  const token = new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.container, '', SqlPrintToken_1.SqlPrintTokenContainerType.InsertClause);
2315
2396
  token.innerTokens.push(new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, 'insert into'));
@@ -2552,6 +2633,23 @@ class SqlPrintTokenParser {
2552
2633
  visitReturningClause(arg) {
2553
2634
  const token = new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, 'returning', SqlPrintToken_1.SqlPrintTokenContainerType.ReturningClause);
2554
2635
  token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
2636
+ if (arg.aliases.length > 0) {
2637
+ token.innerTokens.push(new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, 'with'));
2638
+ token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
2639
+ token.innerTokens.push(SqlPrintTokenParser.PAREN_OPEN_TOKEN);
2640
+ for (let i = 0; i < arg.aliases.length; i++) {
2641
+ if (i > 0) {
2642
+ token.innerTokens.push(...SqlPrintTokenParser.commaSpaceTokens());
2643
+ }
2644
+ token.innerTokens.push(new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, arg.aliases[i].kind));
2645
+ token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
2646
+ token.innerTokens.push(new SqlPrintToken_1.SqlPrintToken(SqlPrintToken_1.SqlPrintTokenType.keyword, 'as'));
2647
+ token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
2648
+ token.innerTokens.push(this.visit(arg.aliases[i].alias));
2649
+ }
2650
+ token.innerTokens.push(SqlPrintTokenParser.PAREN_CLOSE_TOKEN);
2651
+ token.innerTokens.push(SqlPrintTokenParser.SPACE_TOKEN);
2652
+ }
2555
2653
  for (let i = 0; i < arg.items.length; i++) {
2556
2654
  if (i > 0) {
2557
2655
  token.innerTokens.push(...SqlPrintTokenParser.commaSpaceTokens());