@pgsql/transform 17.6.2 → 17.7.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 (104) hide show
  1. package/13/enum-to-int.d.ts +7 -0
  2. package/13/enum-to-int.js +2165 -0
  3. package/13/enum-to-str.d.ts +7 -0
  4. package/13/enum-to-str.js +2165 -0
  5. package/13/enums.d.ts +15 -22
  6. package/13/runtime-schema.d.ts +17 -0
  7. package/13/runtime-schema.js +8419 -0
  8. package/13/types.d.ts +1079 -1304
  9. package/14/enum-to-int.d.ts +7 -0
  10. package/14/enum-to-int.js +2205 -0
  11. package/14/enum-to-str.d.ts +7 -0
  12. package/14/enum-to-str.js +2205 -0
  13. package/14/enums.d.ts +62 -0
  14. package/14/enums.js +2 -0
  15. package/14/runtime-schema.d.ts +17 -0
  16. package/14/runtime-schema.js +8695 -0
  17. package/14/types.d.ts +2164 -0
  18. package/14/types.js +2 -0
  19. package/15/enum-to-int.d.ts +7 -0
  20. package/15/enum-to-int.js +2255 -0
  21. package/15/enum-to-str.d.ts +7 -0
  22. package/15/enum-to-str.js +2255 -0
  23. package/15/enums.d.ts +64 -0
  24. package/15/enums.js +2 -0
  25. package/15/runtime-schema.d.ts +17 -0
  26. package/15/runtime-schema.js +8955 -0
  27. package/15/types.d.ts +2222 -0
  28. package/15/types.js +2 -0
  29. package/16/enum-to-int.d.ts +7 -0
  30. package/16/enum-to-int.js +2344 -0
  31. package/16/enum-to-str.d.ts +7 -0
  32. package/16/enum-to-str.js +2344 -0
  33. package/16/enums.d.ts +69 -0
  34. package/16/enums.js +2 -0
  35. package/16/runtime-schema.d.ts +17 -0
  36. package/16/runtime-schema.js +9339 -0
  37. package/16/types.d.ts +2328 -0
  38. package/16/types.js +2 -0
  39. package/17/enum-to-int.d.ts +7 -0
  40. package/17/enum-to-int.js +2501 -0
  41. package/17/enum-to-str.d.ts +7 -0
  42. package/17/enum-to-str.js +2501 -0
  43. package/17/enums.d.ts +1 -1
  44. package/17/runtime-schema.d.ts +17 -0
  45. package/17/runtime-schema.js +10010 -0
  46. package/17/types.d.ts +1 -1
  47. package/esm/13/enum-to-int.js +2161 -0
  48. package/esm/13/enum-to-str.js +2161 -0
  49. package/esm/13/runtime-schema.js +8416 -0
  50. package/esm/14/enum-to-int.js +2201 -0
  51. package/esm/14/enum-to-str.js +2201 -0
  52. package/esm/14/enums.js +1 -0
  53. package/esm/14/runtime-schema.js +8692 -0
  54. package/esm/14/types.js +1 -0
  55. package/esm/15/enum-to-int.js +2251 -0
  56. package/esm/15/enum-to-str.js +2251 -0
  57. package/esm/15/enums.js +1 -0
  58. package/esm/15/runtime-schema.js +8952 -0
  59. package/esm/15/types.js +1 -0
  60. package/esm/16/enum-to-int.js +2340 -0
  61. package/esm/16/enum-to-str.js +2340 -0
  62. package/esm/16/enums.js +1 -0
  63. package/esm/16/runtime-schema.js +9336 -0
  64. package/esm/16/types.js +1 -0
  65. package/esm/17/enum-to-int.js +2497 -0
  66. package/esm/17/enum-to-str.js +2497 -0
  67. package/esm/17/runtime-schema.js +10007 -0
  68. package/esm/index.js +15 -1309
  69. package/esm/multi-version-transformer.js +60 -0
  70. package/esm/transformers/context.js +1 -0
  71. package/esm/transformers/v13-to-v14.js +2745 -0
  72. package/esm/transformers/v14-to-v15.js +1215 -0
  73. package/esm/transformers/v15-to-v16.js +2876 -0
  74. package/esm/transformers/v16-to-v17.js +1483 -0
  75. package/esm/transformers-direct/index.js +8 -0
  76. package/esm/transformers-direct/v13-to-v17/index.js +74 -0
  77. package/esm/transformers-direct/v14-to-v17/index.js +63 -0
  78. package/esm/transformers-direct/v15-to-v17/index.js +53 -0
  79. package/esm/transformers-direct/v16-to-v17/index.js +40 -0
  80. package/index.d.ts +18 -5
  81. package/index.js +29 -1311
  82. package/multi-version-transformer.d.ts +9 -0
  83. package/multi-version-transformer.js +64 -0
  84. package/package.json +8 -4
  85. package/transformers/context.d.ts +4 -0
  86. package/transformers/context.js +2 -0
  87. package/transformers/v13-to-v14.d.ts +252 -0
  88. package/transformers/v13-to-v14.js +2749 -0
  89. package/transformers/v14-to-v15.d.ts +615 -0
  90. package/transformers/v14-to-v15.js +1219 -0
  91. package/transformers/v15-to-v16.d.ts +626 -0
  92. package/transformers/v15-to-v16.js +2880 -0
  93. package/transformers/v16-to-v17.d.ts +637 -0
  94. package/transformers/v16-to-v17.js +1487 -0
  95. package/transformers-direct/index.d.ts +8 -0
  96. package/transformers-direct/index.js +15 -0
  97. package/transformers-direct/v13-to-v17/index.d.ts +27 -0
  98. package/transformers-direct/v13-to-v17/index.js +78 -0
  99. package/transformers-direct/v14-to-v17/index.d.ts +26 -0
  100. package/transformers-direct/v14-to-v17/index.js +67 -0
  101. package/transformers-direct/v15-to-v17/index.d.ts +25 -0
  102. package/transformers-direct/v15-to-v17/index.js +57 -0
  103. package/transformers-direct/v16-to-v17/index.d.ts +24 -0
  104. package/transformers-direct/v16-to-v17/index.js +44 -0
@@ -0,0 +1,1219 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.V14ToV15Transformer = void 0;
4
+ /**
5
+ * V14 to V15 AST Transformer
6
+ * Transforms PostgreSQL v14 AST nodes to v15 format
7
+ */
8
+ class V14ToV15Transformer {
9
+ transform(node, context = { parentNodeTypes: [] }) {
10
+ if (node == null) {
11
+ return null;
12
+ }
13
+ if (typeof node === 'number' || node instanceof Number) {
14
+ return node;
15
+ }
16
+ if (typeof node === 'string') {
17
+ return node;
18
+ }
19
+ try {
20
+ return this.visit(node, context);
21
+ }
22
+ catch (error) {
23
+ const nodeType = Object.keys(node)[0];
24
+ throw new Error(`Error transforming ${nodeType}: ${error.message}`);
25
+ }
26
+ }
27
+ visit(node, context = { parentNodeTypes: [] }) {
28
+ const nodeType = this.getNodeType(node);
29
+ // Handle empty objects
30
+ if (!nodeType) {
31
+ return {};
32
+ }
33
+ const nodeData = this.getNodeData(node);
34
+ const methodName = nodeType;
35
+ if (typeof this[methodName] === 'function') {
36
+ const childContext = {
37
+ ...context,
38
+ parentNodeTypes: [...context.parentNodeTypes, nodeType]
39
+ };
40
+ const result = this[methodName](nodeData, childContext);
41
+ return result;
42
+ }
43
+ // If no specific method, use transformGenericNode to handle nested transformations
44
+ return this.transformGenericNode(node, context);
45
+ }
46
+ getNodeType(node) {
47
+ return Object.keys(node)[0];
48
+ }
49
+ getNodeData(node) {
50
+ const keys = Object.keys(node);
51
+ if (keys.length === 1 && typeof node[keys[0]] === 'object') {
52
+ return node[keys[0]];
53
+ }
54
+ return node;
55
+ }
56
+ transformGenericNode(node, context) {
57
+ if (typeof node !== 'object' || node === null)
58
+ return node;
59
+ if (Array.isArray(node))
60
+ return node.map(item => this.transform(item, context));
61
+ const keys = Object.keys(node);
62
+ if (keys.length === 1 && typeof node[keys[0]] === 'object' && node[keys[0]] !== null && !Array.isArray(node[keys[0]])) {
63
+ const nodeType = keys[0];
64
+ const nodeData = node[keys[0]];
65
+ const transformedData = {};
66
+ for (const [key, value] of Object.entries(nodeData)) {
67
+ if (Array.isArray(value)) {
68
+ if (key === 'arrayBounds') {
69
+ transformedData[key] = value.map(item => {
70
+ return this.transform(item, context);
71
+ });
72
+ }
73
+ else {
74
+ transformedData[key] = value.map(item => this.transform(item, context));
75
+ }
76
+ }
77
+ else if (typeof value === 'object' && value !== null) {
78
+ const keys = Object.keys(value);
79
+ const isNumericKeysObject = keys.every(k => /^\d+$/.test(k));
80
+ if (isNumericKeysObject && keys.length > 0) {
81
+ const sortedKeys = keys.sort((a, b) => parseInt(a) - parseInt(b));
82
+ transformedData[key] = sortedKeys.map(k => this.transform(value[k], context));
83
+ }
84
+ else {
85
+ // Regular object transformation
86
+ transformedData[key] = this.transform(value, context);
87
+ }
88
+ }
89
+ else {
90
+ transformedData[key] = value;
91
+ }
92
+ }
93
+ return { [nodeType]: transformedData };
94
+ }
95
+ const result = {};
96
+ for (const [key, value] of Object.entries(node)) {
97
+ if (Array.isArray(value)) {
98
+ if (key === 'arrayBounds') {
99
+ result[key] = value.map(item => {
100
+ return this.transform(item, context);
101
+ });
102
+ }
103
+ else {
104
+ result[key] = value.map(item => this.transform(item, context));
105
+ }
106
+ }
107
+ else if (typeof value === 'object' && value !== null) {
108
+ const keys = Object.keys(value);
109
+ const isNumericKeysObject = keys.every(k => /^\d+$/.test(k));
110
+ if (isNumericKeysObject && keys.length > 0) {
111
+ const sortedKeys = keys.sort((a, b) => parseInt(a) - parseInt(b));
112
+ result[key] = sortedKeys.map(k => this.transform(value[k], context));
113
+ }
114
+ else {
115
+ // Regular object transformation
116
+ result[key] = this.transform(value, context);
117
+ }
118
+ }
119
+ else {
120
+ result[key] = value;
121
+ }
122
+ }
123
+ return result;
124
+ }
125
+ ParseResult(node, context) {
126
+ if (node && typeof node === 'object' && 'version' in node && 'stmts' in node) {
127
+ return {
128
+ version: 150000, // PG15 version
129
+ stmts: node.stmts.map((stmt) => {
130
+ if (stmt && typeof stmt === 'object' && 'stmt' in stmt) {
131
+ return {
132
+ ...stmt,
133
+ stmt: this.transform(stmt.stmt, context)
134
+ };
135
+ }
136
+ return this.transform(stmt, context);
137
+ })
138
+ };
139
+ }
140
+ return node;
141
+ }
142
+ RawStmt(node, context) {
143
+ const result = this.transformGenericNode(node, context);
144
+ return { RawStmt: result };
145
+ }
146
+ SelectStmt(node, context) {
147
+ const result = this.transformGenericNode(node, context);
148
+ return { SelectStmt: result };
149
+ }
150
+ A_Expr(node, context) {
151
+ const result = this.transformGenericNode(node, context);
152
+ return { A_Expr: result };
153
+ }
154
+ InsertStmt(node, context) {
155
+ const result = this.transformGenericNode(node, context);
156
+ return { InsertStmt: result };
157
+ }
158
+ UpdateStmt(node, context) {
159
+ const result = this.transformGenericNode(node, context);
160
+ return { UpdateStmt: result };
161
+ }
162
+ DeleteStmt(node, context) {
163
+ const result = this.transformGenericNode(node, context);
164
+ return { DeleteStmt: result };
165
+ }
166
+ WithClause(node, context) {
167
+ const result = this.transformGenericNode(node, context);
168
+ return { WithClause: result };
169
+ }
170
+ ResTarget(node, context) {
171
+ const result = this.transformGenericNode(node, context);
172
+ return { ResTarget: result };
173
+ }
174
+ BoolExpr(node, context) {
175
+ const result = this.transformGenericNode(node, context);
176
+ return { BoolExpr: result };
177
+ }
178
+ FuncCall(node, context) {
179
+ const result = this.transformGenericNode(node, context);
180
+ return { FuncCall: result };
181
+ }
182
+ FuncExpr(node, context) {
183
+ const result = this.transformGenericNode(node, context);
184
+ return { FuncExpr: result };
185
+ }
186
+ A_Const(node, context) {
187
+ const result = {};
188
+ for (const [key, value] of Object.entries(node)) {
189
+ result[key] = value;
190
+ }
191
+ if (result.val) {
192
+ const val = result.val;
193
+ if (val.String && val.String.str !== undefined) {
194
+ result.sval = { sval: val.String.str };
195
+ delete result.val;
196
+ }
197
+ else if (val.Integer !== undefined) {
198
+ if (val.Integer.ival !== undefined) {
199
+ if (val.Integer.ival === 0) {
200
+ result.ival = {};
201
+ }
202
+ else {
203
+ result.ival = { ival: val.Integer.ival };
204
+ }
205
+ }
206
+ else {
207
+ result.ival = {};
208
+ }
209
+ delete result.val;
210
+ }
211
+ else if (val.Float && val.Float.str !== undefined) {
212
+ result.fval = { fval: val.Float.str };
213
+ delete result.val;
214
+ }
215
+ else if (val.BitString && val.BitString.str !== undefined) {
216
+ result.bsval = { bsval: val.BitString.str };
217
+ delete result.val;
218
+ }
219
+ else if (val.Null !== undefined) {
220
+ result.isnull = true;
221
+ delete result.val;
222
+ }
223
+ }
224
+ // Handle ival field directly (not nested in val) - removed overly broad conversion
225
+ return { A_Const: result };
226
+ }
227
+ ColumnRef(node, context) {
228
+ const result = this.transformGenericNode(node, context);
229
+ return { ColumnRef: result };
230
+ }
231
+ TypeName(node, context) {
232
+ const result = this.transformGenericNode(node, context);
233
+ return { TypeName: result };
234
+ }
235
+ Alias(node, context) {
236
+ const result = this.transformGenericNode(node, context);
237
+ return { Alias: result };
238
+ }
239
+ RangeVar(node, context) {
240
+ const result = this.transformGenericNode(node, context);
241
+ return { RangeVar: result };
242
+ }
243
+ A_ArrayExpr(node, context) {
244
+ const result = this.transformGenericNode(node, context);
245
+ return { A_ArrayExpr: result };
246
+ }
247
+ A_Indices(node, context) {
248
+ const result = {};
249
+ if (node.is_slice !== undefined) {
250
+ result.is_slice = node.is_slice;
251
+ }
252
+ if (node.lidx !== undefined) {
253
+ result.lidx = this.transform(node.lidx, context);
254
+ }
255
+ if (node.uidx !== undefined) {
256
+ const childContext = {
257
+ ...context,
258
+ parentNodeTypes: [...(context.parentNodeTypes || []), 'A_Indices']
259
+ };
260
+ result.uidx = this.transform(node.uidx, childContext);
261
+ }
262
+ return { A_Indices: result };
263
+ }
264
+ A_Indirection(node, context) {
265
+ const result = this.transformGenericNode(node, context);
266
+ return { A_Indirection: result };
267
+ }
268
+ A_Star(node, context) {
269
+ const result = this.transformGenericNode(node, context);
270
+ return { A_Star: result };
271
+ }
272
+ CaseExpr(node, context) {
273
+ const result = this.transformGenericNode(node, context);
274
+ return { CaseExpr: result };
275
+ }
276
+ CoalesceExpr(node, context) {
277
+ const result = this.transformGenericNode(node, context);
278
+ return { CoalesceExpr: result };
279
+ }
280
+ TypeCast(node, context) {
281
+ if (node.location === -1 && node.typeName && node.typeName.names) {
282
+ const typeNames = node.typeName.names.map(name => {
283
+ if (name && typeof name === 'object' && 'String' in name) {
284
+ const stringVal = name.String;
285
+ return stringVal.sval || stringVal.str;
286
+ }
287
+ return null;
288
+ }).filter(Boolean);
289
+ const hasPgCatalog = typeNames.includes('pg_catalog');
290
+ const hasBool = typeNames.includes('bool');
291
+ if (hasPgCatalog && hasBool && node.arg) {
292
+ const arg = node.arg;
293
+ if (arg.A_Const) {
294
+ let stringValue = null;
295
+ // Handle both sval and val.String formats
296
+ if (arg.A_Const.sval && arg.A_Const.sval.sval) {
297
+ stringValue = arg.A_Const.sval.sval;
298
+ }
299
+ else if (arg.A_Const.val && arg.A_Const.val.String) {
300
+ if (arg.A_Const.val.String.sval) {
301
+ stringValue = arg.A_Const.val.String.sval;
302
+ }
303
+ else if (arg.A_Const.val.String.str) {
304
+ stringValue = arg.A_Const.val.String.str;
305
+ }
306
+ }
307
+ if (stringValue === 't' || stringValue === 'true') {
308
+ return {
309
+ A_Const: {
310
+ boolval: { boolval: true },
311
+ location: arg.A_Const.location
312
+ }
313
+ };
314
+ }
315
+ else if (stringValue === 'f' || stringValue === 'false') {
316
+ return {
317
+ A_Const: {
318
+ boolval: {},
319
+ location: arg.A_Const.location
320
+ }
321
+ };
322
+ }
323
+ }
324
+ }
325
+ }
326
+ const result = this.transformGenericNode(node, context);
327
+ return { TypeCast: result };
328
+ }
329
+ CollateClause(node, context) {
330
+ const result = this.transformGenericNode(node, context);
331
+ return { CollateClause: result };
332
+ }
333
+ BooleanTest(node, context) {
334
+ const result = this.transformGenericNode(node, context);
335
+ return { BooleanTest: result };
336
+ }
337
+ NullTest(node, context) {
338
+ const result = this.transformGenericNode(node, context);
339
+ return { NullTest: result };
340
+ }
341
+ String(node, context) {
342
+ const result = { ...node };
343
+ if (result.str !== undefined) {
344
+ result.sval = result.str;
345
+ delete result.str;
346
+ }
347
+ return { String: result };
348
+ }
349
+ Integer(node, context) {
350
+ const isInDefElemContext = context.parentNodeTypes?.includes('DefElem');
351
+ if (isInDefElemContext && node.ival !== undefined) {
352
+ const defElemName = context.defElemName;
353
+ // CreateRoleStmt: specific role attributes should become Boolean
354
+ if (defElemName && ['createrole', 'superuser', 'canlogin', 'createdb', 'inherit', 'bypassrls', 'isreplication'].includes(defElemName) &&
355
+ (node.ival === 0 || node.ival === 1)) {
356
+ return {
357
+ Boolean: {
358
+ boolval: node.ival === 1
359
+ }
360
+ };
361
+ }
362
+ // CreateExtensionStmt: cascade should become Boolean
363
+ if (context.parentNodeTypes?.includes('CreateExtensionStmt') && defElemName) {
364
+ if (defElemName === 'cascade' && (node.ival === 0 || node.ival === 1)) {
365
+ return {
366
+ Boolean: {
367
+ boolval: node.ival === 1
368
+ }
369
+ };
370
+ }
371
+ }
372
+ // CreateFunctionStmt: window should become Boolean
373
+ if (context.parentNodeTypes?.includes('CreateFunctionStmt') && defElemName) {
374
+ if (defElemName === 'window' && (node.ival === 0 || node.ival === 1)) {
375
+ return {
376
+ Boolean: {
377
+ boolval: node.ival === 1
378
+ }
379
+ };
380
+ }
381
+ }
382
+ if (['strict', 'security', 'leakproof', 'cycle'].includes(defElemName) && (node.ival === 0 || node.ival === 1)) {
383
+ return {
384
+ Boolean: {
385
+ boolval: node.ival === 1
386
+ }
387
+ };
388
+ }
389
+ }
390
+ // AlterTableCmd context: SET STATISTICS with ival 0 or -1 -> empty Integer
391
+ if (context.parentNodeTypes?.includes('AlterTableCmd') && !context.parentNodeTypes?.includes('DefineStmt') && (node.ival === 0)) {
392
+ return { Integer: {} };
393
+ }
394
+ // DefineStmt context: specific cases where ival should become empty Integer
395
+ if (context.parentNodeTypes?.includes('DefineStmt')) {
396
+ const defElemName = context.defElemName;
397
+ if (defElemName === 'initcond' && (node.ival === 0)) {
398
+ return { Integer: {} };
399
+ }
400
+ if (defElemName === 'sspace' && node.ival === 0) {
401
+ return { Integer: {} };
402
+ }
403
+ // DefineStmt args context: ival 0 should become empty Integer for aggregates
404
+ if (!defElemName && (node.ival === 0)) {
405
+ return { Integer: {} };
406
+ }
407
+ }
408
+ // CreateSeqStmt context: specific cases where ival should become empty Integer
409
+ if (context.parentNodeTypes?.includes('CreateSeqStmt')) {
410
+ const defElemName = context.defElemName;
411
+ if (defElemName === 'start' && node.ival === 0) {
412
+ return { Integer: {} };
413
+ }
414
+ if (defElemName === 'minvalue' && node.ival === 0) {
415
+ return { Integer: {} };
416
+ }
417
+ if (defElemName === 'increment' && node.ival === 0) {
418
+ return { Integer: {} };
419
+ }
420
+ }
421
+ const result = { ...node };
422
+ return { Integer: result };
423
+ }
424
+ Float(node, context) {
425
+ const result = { ...node };
426
+ if (result.str !== undefined) {
427
+ result.fval = result.str;
428
+ delete result.str;
429
+ }
430
+ return { Float: result };
431
+ }
432
+ BitString(node, context) {
433
+ const result = { ...node };
434
+ if (result.str !== undefined) {
435
+ result.bsval = result.str;
436
+ delete result.str;
437
+ }
438
+ return { BitString: result };
439
+ }
440
+ // NOTE: there is no Null type in PG15
441
+ Null(node, context) {
442
+ const result = this.transformGenericNode(node, context);
443
+ return { Null: result };
444
+ }
445
+ List(node, context) {
446
+ const result = this.transformGenericNode(node, context);
447
+ return { List: result };
448
+ }
449
+ CreateStmt(node, context) {
450
+ const result = this.transformGenericNode(node, context);
451
+ return { CreateStmt: result };
452
+ }
453
+ ColumnDef(node, context) {
454
+ const result = this.transformGenericNode(node, context);
455
+ return { ColumnDef: result };
456
+ }
457
+ Constraint(node, context) {
458
+ const result = this.transformGenericNode(node, context);
459
+ return { Constraint: result };
460
+ }
461
+ SubLink(node, context) {
462
+ const result = this.transformGenericNode(node, context);
463
+ return { SubLink: result };
464
+ }
465
+ CaseWhen(node, context) {
466
+ const result = this.transformGenericNode(node, context);
467
+ return { CaseWhen: result };
468
+ }
469
+ WindowDef(node, context) {
470
+ const result = this.transformGenericNode(node, context);
471
+ return { WindowDef: result };
472
+ }
473
+ SortBy(node, context) {
474
+ const result = this.transformGenericNode(node, context);
475
+ return { SortBy: result };
476
+ }
477
+ GroupingSet(node, context) {
478
+ const result = this.transformGenericNode(node, context);
479
+ return { GroupingSet: result };
480
+ }
481
+ CommonTableExpr(node, context) {
482
+ const result = this.transformGenericNode(node, context);
483
+ return { CommonTableExpr: result };
484
+ }
485
+ ParamRef(node, context) {
486
+ const result = this.transformGenericNode(node, context);
487
+ return { ParamRef: result };
488
+ }
489
+ LockingClause(node, context) {
490
+ const result = this.transformGenericNode(node, context);
491
+ return { LockingClause: result };
492
+ }
493
+ MinMaxExpr(node, context) {
494
+ const result = this.transformGenericNode(node, context);
495
+ return { MinMaxExpr: result };
496
+ }
497
+ RowExpr(node, context) {
498
+ const result = this.transformGenericNode(node, context);
499
+ return { RowExpr: result };
500
+ }
501
+ OpExpr(node, context) {
502
+ const result = this.transformGenericNode(node, context);
503
+ return { OpExpr: result };
504
+ }
505
+ DistinctExpr(node, context) {
506
+ const result = this.transformGenericNode(node, context);
507
+ return { DistinctExpr: result };
508
+ }
509
+ NullIfExpr(node, context) {
510
+ const result = this.transformGenericNode(node, context);
511
+ return { NullIfExpr: result };
512
+ }
513
+ ScalarArrayOpExpr(node, context) {
514
+ const result = this.transformGenericNode(node, context);
515
+ return { ScalarArrayOpExpr: result };
516
+ }
517
+ Aggref(node, context) {
518
+ const result = this.transformGenericNode(node, context);
519
+ return { Aggref: result };
520
+ }
521
+ WindowFunc(node, context) {
522
+ const result = this.transformGenericNode(node, context);
523
+ return { WindowFunc: result };
524
+ }
525
+ FieldSelect(node, context) {
526
+ const result = this.transformGenericNode(node, context);
527
+ return { FieldSelect: result };
528
+ }
529
+ RelabelType(node, context) {
530
+ const result = this.transformGenericNode(node, context);
531
+ return { RelabelType: result };
532
+ }
533
+ CoerceViaIO(node, context) {
534
+ const result = this.transformGenericNode(node, context);
535
+ return { CoerceViaIO: result };
536
+ }
537
+ ArrayCoerceExpr(node, context) {
538
+ const result = this.transformGenericNode(node, context);
539
+ return { ArrayCoerceExpr: result };
540
+ }
541
+ ConvertRowtypeExpr(node, context) {
542
+ const result = this.transformGenericNode(node, context);
543
+ return { ConvertRowtypeExpr: result };
544
+ }
545
+ NamedArgExpr(node, context) {
546
+ const result = this.transformGenericNode(node, context);
547
+ return { NamedArgExpr: result };
548
+ }
549
+ ViewStmt(node, context) {
550
+ const result = this.transformGenericNode(node, context);
551
+ return { ViewStmt: result };
552
+ }
553
+ IndexStmt(node, context) {
554
+ const result = this.transformGenericNode(node, context);
555
+ return { IndexStmt: result };
556
+ }
557
+ IndexElem(node, context) {
558
+ const result = this.transformGenericNode(node, context);
559
+ return { IndexElem: result };
560
+ }
561
+ PartitionElem(node, context) {
562
+ const result = this.transformGenericNode(node, context);
563
+ return { PartitionElem: result };
564
+ }
565
+ PartitionCmd(node, context) {
566
+ const result = this.transformGenericNode(node, context);
567
+ return { PartitionCmd: result };
568
+ }
569
+ JoinExpr(node, context) {
570
+ const result = this.transformGenericNode(node, context);
571
+ return { JoinExpr: result };
572
+ }
573
+ FromExpr(node, context) {
574
+ const result = this.transformGenericNode(node, context);
575
+ return { FromExpr: result };
576
+ }
577
+ TransactionStmt(node, context) {
578
+ const result = this.transformGenericNode(node, context);
579
+ return { TransactionStmt: result };
580
+ }
581
+ VariableSetStmt(node, context) {
582
+ const result = this.transformGenericNode(node, context);
583
+ return { VariableSetStmt: result };
584
+ }
585
+ VariableShowStmt(node, context) {
586
+ const result = this.transformGenericNode(node, context);
587
+ return { VariableShowStmt: result };
588
+ }
589
+ CreateSchemaStmt(node, context) {
590
+ const result = this.transformGenericNode(node, context);
591
+ return { CreateSchemaStmt: result };
592
+ }
593
+ RoleSpec(node, context) {
594
+ const result = this.transformGenericNode(node, context);
595
+ return { RoleSpec: result };
596
+ }
597
+ DropStmt(node, context) {
598
+ const result = this.transformGenericNode(node, context);
599
+ return { DropStmt: result };
600
+ }
601
+ TruncateStmt(node, context) {
602
+ const result = this.transformGenericNode(node, context);
603
+ return { TruncateStmt: result };
604
+ }
605
+ ReturnStmt(node, context) {
606
+ const result = {};
607
+ if (node.returnval !== undefined) {
608
+ result.returnval = this.transform(node.returnval, context);
609
+ }
610
+ return { ReturnStmt: result };
611
+ }
612
+ PLAssignStmt(node, context) {
613
+ const result = this.transformGenericNode(node, context);
614
+ return { PLAssignStmt: result };
615
+ }
616
+ CopyStmt(node, context) {
617
+ const result = {};
618
+ if (node.relation !== undefined) {
619
+ result.relation = this.transform(node.relation, context);
620
+ }
621
+ if (node.query !== undefined) {
622
+ result.query = this.transform(node.query, context);
623
+ }
624
+ if (node.attlist !== undefined) {
625
+ result.attlist = Array.isArray(node.attlist)
626
+ ? node.attlist.map(item => this.transform(item, context))
627
+ : this.transform(node.attlist, context);
628
+ }
629
+ if (node.is_from !== undefined) {
630
+ result.is_from = node.is_from;
631
+ }
632
+ if (node.is_program !== undefined) {
633
+ result.is_program = node.is_program;
634
+ }
635
+ if (node.filename !== undefined) {
636
+ result.filename = node.filename;
637
+ }
638
+ if (node.options !== undefined) {
639
+ result.options = Array.isArray(node.options)
640
+ ? node.options.map(item => this.transform(item, context))
641
+ : this.transform(node.options, context);
642
+ }
643
+ if (node.whereClause !== undefined) {
644
+ result.whereClause = this.transform(node.whereClause, context);
645
+ }
646
+ return { CopyStmt: result };
647
+ }
648
+ AlterTableStmt(node, context) {
649
+ const result = this.transformGenericNode(node, context);
650
+ return { AlterTableStmt: result };
651
+ }
652
+ AlterTableCmd(node, context) {
653
+ const result = {};
654
+ if (node.subtype !== undefined) {
655
+ result.subtype = node.subtype;
656
+ }
657
+ if (node.name !== undefined) {
658
+ result.name = node.name;
659
+ }
660
+ if (node.newowner !== undefined) {
661
+ result.newowner = this.transform(node.newowner, context);
662
+ }
663
+ if (node.def !== undefined) {
664
+ result.def = this.transform(node.def, context);
665
+ }
666
+ if (node.behavior !== undefined) {
667
+ result.behavior = node.behavior;
668
+ }
669
+ if (node.missing_ok !== undefined) {
670
+ result.missing_ok = node.missing_ok;
671
+ }
672
+ return { AlterTableCmd: result };
673
+ }
674
+ CreateFunctionStmt(node, context) {
675
+ const result = this.transformGenericNode(node, context);
676
+ return { CreateFunctionStmt: result };
677
+ }
678
+ FunctionParameter(node, context) {
679
+ const result = this.transformGenericNode(node, context);
680
+ return { FunctionParameter: result };
681
+ }
682
+ CompositeTypeStmt(node, context) {
683
+ const result = this.transformGenericNode(node, context);
684
+ return { CompositeTypeStmt: result };
685
+ }
686
+ CreateEnumStmt(node, context) {
687
+ const result = this.transformGenericNode(node, context);
688
+ return { CreateEnumStmt: result };
689
+ }
690
+ CreateDomainStmt(node, context) {
691
+ const result = this.transformGenericNode(node, context);
692
+ return { CreateDomainStmt: result };
693
+ }
694
+ CreateRoleStmt(node, context) {
695
+ const result = this.transformGenericNode(node, context);
696
+ return { CreateRoleStmt: result };
697
+ }
698
+ DefElem(node, context) {
699
+ const result = {};
700
+ if (node.defnamespace !== undefined) {
701
+ result.defnamespace = node.defnamespace;
702
+ }
703
+ if (node.defname !== undefined) {
704
+ result.defname = node.defname;
705
+ }
706
+ if (node.arg !== undefined) {
707
+ const argContext = {
708
+ ...context,
709
+ defElemName: node.defname,
710
+ parentNodeTypes: [...(context.parentNodeTypes || []), 'DefElem']
711
+ };
712
+ result.arg = this.transform(node.arg, argContext);
713
+ }
714
+ if (node.defaction !== undefined) {
715
+ result.defaction = node.defaction;
716
+ }
717
+ if (node.location !== undefined) {
718
+ result.location = node.location;
719
+ }
720
+ return { DefElem: result };
721
+ }
722
+ CreateTableSpaceStmt(node, context) {
723
+ const result = this.transformGenericNode(node, context);
724
+ return { CreateTableSpaceStmt: result };
725
+ }
726
+ DropTableSpaceStmt(node, context) {
727
+ const result = this.transformGenericNode(node, context);
728
+ return { DropTableSpaceStmt: result };
729
+ }
730
+ AlterTableSpaceOptionsStmt(node, context) {
731
+ const result = this.transformGenericNode(node, context);
732
+ return { AlterTableSpaceOptionsStmt: result };
733
+ }
734
+ CreateExtensionStmt(node, context) {
735
+ const result = this.transformGenericNode(node, context);
736
+ return { CreateExtensionStmt: result };
737
+ }
738
+ AlterExtensionStmt(node, context) {
739
+ const result = this.transformGenericNode(node, context);
740
+ return { AlterExtensionStmt: result };
741
+ }
742
+ CreateFdwStmt(node, context) {
743
+ const result = this.transformGenericNode(node, context);
744
+ return { CreateFdwStmt: result };
745
+ }
746
+ SetOperationStmt(node, context) {
747
+ const result = this.transformGenericNode(node, context);
748
+ return { SetOperationStmt: result };
749
+ }
750
+ ReplicaIdentityStmt(node, context) {
751
+ const result = this.transformGenericNode(node, context);
752
+ return { ReplicaIdentityStmt: result };
753
+ }
754
+ AlterCollationStmt(node, context) {
755
+ const result = this.transformGenericNode(node, context);
756
+ return { AlterCollationStmt: result };
757
+ }
758
+ AlterDomainStmt(node, context) {
759
+ const result = this.transformGenericNode(node, context);
760
+ return { AlterDomainStmt: result };
761
+ }
762
+ PrepareStmt(node, context) {
763
+ const result = this.transformGenericNode(node, context);
764
+ return { PrepareStmt: result };
765
+ }
766
+ ExecuteStmt(node, context) {
767
+ const result = this.transformGenericNode(node, context);
768
+ return { ExecuteStmt: result };
769
+ }
770
+ DeallocateStmt(node, context) {
771
+ const result = this.transformGenericNode(node, context);
772
+ return { DeallocateStmt: result };
773
+ }
774
+ NotifyStmt(node, context) {
775
+ const result = this.transformGenericNode(node, context);
776
+ return { NotifyStmt: result };
777
+ }
778
+ ListenStmt(node, context) {
779
+ const result = this.transformGenericNode(node, context);
780
+ return { ListenStmt: result };
781
+ }
782
+ UnlistenStmt(node, context) {
783
+ const result = this.transformGenericNode(node, context);
784
+ return { UnlistenStmt: result };
785
+ }
786
+ CheckPointStmt(node, context) {
787
+ const result = this.transformGenericNode(node, context);
788
+ return { CheckPointStmt: result };
789
+ }
790
+ LoadStmt(node, context) {
791
+ const result = this.transformGenericNode(node, context);
792
+ return { LoadStmt: result };
793
+ }
794
+ DiscardStmt(node, context) {
795
+ const result = this.transformGenericNode(node, context);
796
+ return { DiscardStmt: result };
797
+ }
798
+ CommentStmt(node, context) {
799
+ const result = this.transformGenericNode(node, context);
800
+ return { CommentStmt: result };
801
+ }
802
+ LockStmt(node, context) {
803
+ const result = this.transformGenericNode(node, context);
804
+ return { LockStmt: result };
805
+ }
806
+ CreatePolicyStmt(node, context) {
807
+ const result = this.transformGenericNode(node, context);
808
+ return { CreatePolicyStmt: result };
809
+ }
810
+ AlterPolicyStmt(node, context) {
811
+ const result = this.transformGenericNode(node, context);
812
+ return { AlterPolicyStmt: result };
813
+ }
814
+ CreateUserMappingStmt(node, context) {
815
+ const result = this.transformGenericNode(node, context);
816
+ return { CreateUserMappingStmt: result };
817
+ }
818
+ CreateStatsStmt(node, context) {
819
+ const result = this.transformGenericNode(node, context);
820
+ return { CreateStatsStmt: result };
821
+ }
822
+ StatsElem(node, context) {
823
+ const result = this.transformGenericNode(node, context);
824
+ return { StatsElem: result };
825
+ }
826
+ CreatePublicationStmt(node, context) {
827
+ const result = this.transformGenericNode(node, context);
828
+ return { CreatePublicationStmt: result };
829
+ }
830
+ CreateSubscriptionStmt(node, context) {
831
+ const result = this.transformGenericNode(node, context);
832
+ return { CreateSubscriptionStmt: result };
833
+ }
834
+ AlterPublicationStmt(node, context) {
835
+ const result = this.transformGenericNode(node, context);
836
+ return { AlterPublicationStmt: result };
837
+ }
838
+ AlterSubscriptionStmt(node, context) {
839
+ const result = this.transformGenericNode(node, context);
840
+ return { AlterSubscriptionStmt: result };
841
+ }
842
+ DropSubscriptionStmt(node, context) {
843
+ const result = this.transformGenericNode(node, context);
844
+ return { DropSubscriptionStmt: result };
845
+ }
846
+ DoStmt(node, context) {
847
+ const result = this.transformGenericNode(node, context);
848
+ return { DoStmt: result };
849
+ }
850
+ InlineCodeBlock(node, context) {
851
+ const result = this.transformGenericNode(node, context);
852
+ return { InlineCodeBlock: result };
853
+ }
854
+ CallContext(node, context) {
855
+ const result = this.transformGenericNode(node, context);
856
+ return { CallContext: result };
857
+ }
858
+ ConstraintsSetStmt(node, context) {
859
+ const result = this.transformGenericNode(node, context);
860
+ return { ConstraintsSetStmt: result };
861
+ }
862
+ AlterSystemStmt(node, context) {
863
+ const result = this.transformGenericNode(node, context);
864
+ return { AlterSystemStmt: result };
865
+ }
866
+ VacuumRelation(node, context) {
867
+ const result = this.transformGenericNode(node, context);
868
+ return { VacuumRelation: result };
869
+ }
870
+ DropOwnedStmt(node, context) {
871
+ const result = this.transformGenericNode(node, context);
872
+ return { DropOwnedStmt: result };
873
+ }
874
+ ReassignOwnedStmt(node, context) {
875
+ const result = this.transformGenericNode(node, context);
876
+ return { ReassignOwnedStmt: result };
877
+ }
878
+ AlterTSDictionaryStmt(node, context) {
879
+ const result = this.transformGenericNode(node, context);
880
+ return { AlterTSDictionaryStmt: result };
881
+ }
882
+ AlterTSConfigurationStmt(node, context) {
883
+ const result = this.transformGenericNode(node, context);
884
+ return { AlterTSConfigurationStmt: result };
885
+ }
886
+ ClosePortalStmt(node, context) {
887
+ const result = this.transformGenericNode(node, context);
888
+ return { ClosePortalStmt: result };
889
+ }
890
+ FetchStmt(node, context) {
891
+ const result = this.transformGenericNode(node, context);
892
+ return { FetchStmt: result };
893
+ }
894
+ AlterStatsStmt(node, context) {
895
+ const result = this.transformGenericNode(node, context);
896
+ return { AlterStatsStmt: result };
897
+ }
898
+ ObjectWithArgs(node, context) {
899
+ const result = this.transformGenericNode(node, context);
900
+ return { ObjectWithArgs: result };
901
+ }
902
+ AlterOperatorStmt(node, context) {
903
+ const result = this.transformGenericNode(node, context);
904
+ return { AlterOperatorStmt: result };
905
+ }
906
+ AlterFdwStmt(node, context) {
907
+ const result = this.transformGenericNode(node, context);
908
+ return { AlterFdwStmt: result };
909
+ }
910
+ CreateForeignServerStmt(node, context) {
911
+ const result = this.transformGenericNode(node, context);
912
+ return { CreateForeignServerStmt: result };
913
+ }
914
+ AlterForeignServerStmt(node, context) {
915
+ const result = this.transformGenericNode(node, context);
916
+ return { AlterForeignServerStmt: result };
917
+ }
918
+ AlterUserMappingStmt(node, context) {
919
+ const result = this.transformGenericNode(node, context);
920
+ return { AlterUserMappingStmt: result };
921
+ }
922
+ DropUserMappingStmt(node, context) {
923
+ const result = this.transformGenericNode(node, context);
924
+ return { DropUserMappingStmt: result };
925
+ }
926
+ ImportForeignSchemaStmt(node, context) {
927
+ const result = this.transformGenericNode(node, context);
928
+ return { ImportForeignSchemaStmt: result };
929
+ }
930
+ ClusterStmt(node, context) {
931
+ const result = this.transformGenericNode(node, context);
932
+ return { ClusterStmt: result };
933
+ }
934
+ VacuumStmt(node, context) {
935
+ const result = this.transformGenericNode(node, context);
936
+ return { VacuumStmt: result };
937
+ }
938
+ ExplainStmt(node, context) {
939
+ const result = this.transformGenericNode(node, context);
940
+ return { ExplainStmt: result };
941
+ }
942
+ ReindexStmt(node, context) {
943
+ const result = this.transformGenericNode(node, context);
944
+ return { ReindexStmt: result };
945
+ }
946
+ CallStmt(node, context) {
947
+ const result = this.transformGenericNode(node, context);
948
+ return { CallStmt: result };
949
+ }
950
+ CreatedbStmt(node, context) {
951
+ const result = this.transformGenericNode(node, context);
952
+ return { CreatedbStmt: result };
953
+ }
954
+ DropdbStmt(node, context) {
955
+ const result = this.transformGenericNode(node, context);
956
+ return { DropdbStmt: result };
957
+ }
958
+ RenameStmt(node, context) {
959
+ const result = this.transformGenericNode(node, context);
960
+ return { RenameStmt: result };
961
+ }
962
+ AlterOwnerStmt(node, context) {
963
+ const result = this.transformGenericNode(node, context);
964
+ return { AlterOwnerStmt: result };
965
+ }
966
+ GrantStmt(node, context) {
967
+ const result = this.transformGenericNode(node, context);
968
+ return { GrantStmt: result };
969
+ }
970
+ GrantRoleStmt(node, context) {
971
+ const result = this.transformGenericNode(node, context);
972
+ return { GrantRoleStmt: result };
973
+ }
974
+ SecLabelStmt(node, context) {
975
+ const result = this.transformGenericNode(node, context);
976
+ return { SecLabelStmt: result };
977
+ }
978
+ AlterDefaultPrivilegesStmt(node, context) {
979
+ const result = this.transformGenericNode(node, context);
980
+ return { AlterDefaultPrivilegesStmt: result };
981
+ }
982
+ CreateConversionStmt(node, context) {
983
+ const result = this.transformGenericNode(node, context);
984
+ return { CreateConversionStmt: result };
985
+ }
986
+ CreateCastStmt(node, context) {
987
+ const result = this.transformGenericNode(node, context);
988
+ return { CreateCastStmt: result };
989
+ }
990
+ CreatePLangStmt(node, context) {
991
+ const result = this.transformGenericNode(node, context);
992
+ return { CreatePLangStmt: result };
993
+ }
994
+ CreateTransformStmt(node, context) {
995
+ const result = this.transformGenericNode(node, context);
996
+ return { CreateTransformStmt: result };
997
+ }
998
+ CreateTrigStmt(node, context) {
999
+ const result = this.transformGenericNode(node, context);
1000
+ return { CreateTrigStmt: result };
1001
+ }
1002
+ TriggerTransition(node, context) {
1003
+ const result = this.transformGenericNode(node, context);
1004
+ return { TriggerTransition: result };
1005
+ }
1006
+ CreateEventTrigStmt(node, context) {
1007
+ const result = this.transformGenericNode(node, context);
1008
+ return { CreateEventTrigStmt: result };
1009
+ }
1010
+ AlterEventTrigStmt(node, context) {
1011
+ const result = this.transformGenericNode(node, context);
1012
+ return { AlterEventTrigStmt: result };
1013
+ }
1014
+ CreateOpClassStmt(node, context) {
1015
+ const result = this.transformGenericNode(node, context);
1016
+ return { CreateOpClassStmt: result };
1017
+ }
1018
+ CreateOpFamilyStmt(node, context) {
1019
+ const result = this.transformGenericNode(node, context);
1020
+ return { CreateOpFamilyStmt: result };
1021
+ }
1022
+ AlterOpFamilyStmt(node, context) {
1023
+ const result = this.transformGenericNode(node, context);
1024
+ return { AlterOpFamilyStmt: result };
1025
+ }
1026
+ AlterTableMoveAllStmt(node, context) {
1027
+ const result = this.transformGenericNode(node, context);
1028
+ return { AlterTableMoveAllStmt: result };
1029
+ }
1030
+ CreateSeqStmt(node, context) {
1031
+ const result = this.transformGenericNode(node, context);
1032
+ return { CreateSeqStmt: result };
1033
+ }
1034
+ AlterSeqStmt(node, context) {
1035
+ const result = this.transformGenericNode(node, context);
1036
+ return { AlterSeqStmt: result };
1037
+ }
1038
+ CreateRangeStmt(node, context) {
1039
+ const result = this.transformGenericNode(node, context);
1040
+ return { CreateRangeStmt: result };
1041
+ }
1042
+ AlterEnumStmt(node, context) {
1043
+ const result = this.transformGenericNode(node, context);
1044
+ return { AlterEnumStmt: result };
1045
+ }
1046
+ AlterTypeStmt(node, context) {
1047
+ const result = this.transformGenericNode(node, context);
1048
+ return { AlterTypeStmt: result };
1049
+ }
1050
+ AlterRoleStmt(node, context) {
1051
+ const result = this.transformGenericNode(node, context);
1052
+ return { AlterRoleStmt: result };
1053
+ }
1054
+ DropRoleStmt(node, context) {
1055
+ const result = this.transformGenericNode(node, context);
1056
+ return { DropRoleStmt: result };
1057
+ }
1058
+ CreateTableAsStmt(node, context) {
1059
+ const result = this.transformGenericNode(node, context);
1060
+ return { CreateTableAsStmt: result };
1061
+ }
1062
+ RefreshMatViewStmt(node, context) {
1063
+ const result = this.transformGenericNode(node, context);
1064
+ return { RefreshMatViewStmt: result };
1065
+ }
1066
+ AccessPriv(node, context) {
1067
+ const result = this.transformGenericNode(node, context);
1068
+ return { AccessPriv: result };
1069
+ }
1070
+ DefineStmt(node, context) {
1071
+ const result = {};
1072
+ if (node.kind !== undefined) {
1073
+ result.kind = node.kind;
1074
+ }
1075
+ if (node.oldstyle !== undefined) {
1076
+ result.oldstyle = node.oldstyle;
1077
+ }
1078
+ if (node.defnames !== undefined) {
1079
+ result.defnames = Array.isArray(node.defnames)
1080
+ ? node.defnames.map(item => this.transform(item, context))
1081
+ : this.transform(node.defnames, context);
1082
+ }
1083
+ if (node.args !== undefined) {
1084
+ result.args = Array.isArray(node.args)
1085
+ ? node.args.map(item => this.transform(item, context))
1086
+ : this.transform(node.args, context);
1087
+ }
1088
+ if (node.definition !== undefined) {
1089
+ result.definition = Array.isArray(node.definition)
1090
+ ? node.definition.map(item => this.transform(item, context))
1091
+ : this.transform(node.definition, context);
1092
+ }
1093
+ if (node.if_not_exists !== undefined) {
1094
+ result.if_not_exists = node.if_not_exists;
1095
+ }
1096
+ if (node.replace !== undefined) {
1097
+ result.replace = node.replace;
1098
+ }
1099
+ return { DefineStmt: result };
1100
+ }
1101
+ AlterDatabaseStmt(node, context) {
1102
+ const result = this.transformGenericNode(node, context);
1103
+ return { AlterDatabaseStmt: result };
1104
+ }
1105
+ AlterDatabaseSetStmt(node, context) {
1106
+ const result = this.transformGenericNode(node, context);
1107
+ return { AlterDatabaseSetStmt: result };
1108
+ }
1109
+ DeclareCursorStmt(node, context) {
1110
+ const result = this.transformGenericNode(node, context);
1111
+ return { DeclareCursorStmt: result };
1112
+ }
1113
+ CreateAmStmt(node, context) {
1114
+ const result = this.transformGenericNode(node, context);
1115
+ return { CreateAmStmt: result };
1116
+ }
1117
+ IntoClause(node, context) {
1118
+ const result = this.transformGenericNode(node, context);
1119
+ return { IntoClause: result };
1120
+ }
1121
+ OnConflictExpr(node, context) {
1122
+ const result = this.transformGenericNode(node, context);
1123
+ return { OnConflictExpr: result };
1124
+ }
1125
+ ScanToken(node, context) {
1126
+ const result = this.transformGenericNode(node, context);
1127
+ return { ScanToken: result };
1128
+ }
1129
+ CreateOpClassItem(node, context) {
1130
+ const result = this.transformGenericNode(node, context);
1131
+ return { CreateOpClassItem: result };
1132
+ }
1133
+ Var(node, context) {
1134
+ const result = this.transformGenericNode(node, context);
1135
+ return { Var: result };
1136
+ }
1137
+ TableFunc(node, context) {
1138
+ const result = this.transformGenericNode(node, context);
1139
+ return { TableFunc: result };
1140
+ }
1141
+ RangeTableFunc(node, context) {
1142
+ const result = this.transformGenericNode(node, context);
1143
+ return { RangeTableFunc: result };
1144
+ }
1145
+ RangeTableFuncCol(node, context) {
1146
+ const result = this.transformGenericNode(node, context);
1147
+ return { RangeTableFuncCol: result };
1148
+ }
1149
+ RangeFunction(node, context) {
1150
+ const result = this.transformGenericNode(node, context);
1151
+ return { RangeFunction: result };
1152
+ }
1153
+ XmlExpr(node, context) {
1154
+ const result = this.transformGenericNode(node, context);
1155
+ return { XmlExpr: result };
1156
+ }
1157
+ RangeTableSample(node, context) {
1158
+ const result = this.transformGenericNode(node, context);
1159
+ return { RangeTableSample: result };
1160
+ }
1161
+ XmlSerialize(node, context) {
1162
+ const result = this.transformGenericNode(node, context);
1163
+ return { XmlSerialize: result };
1164
+ }
1165
+ RuleStmt(node, context) {
1166
+ const result = this.transformGenericNode(node, context);
1167
+ return { RuleStmt: result };
1168
+ }
1169
+ RangeSubselect(node, context) {
1170
+ const result = this.transformGenericNode(node, context);
1171
+ return { RangeSubselect: result };
1172
+ }
1173
+ SQLValueFunction(node, context) {
1174
+ const result = this.transformGenericNode(node, context);
1175
+ return { SQLValueFunction: result };
1176
+ }
1177
+ GroupingFunc(node, context) {
1178
+ const result = this.transformGenericNode(node, context);
1179
+ return { GroupingFunc: result };
1180
+ }
1181
+ MultiAssignRef(node, context) {
1182
+ const result = this.transformGenericNode(node, context);
1183
+ return { MultiAssignRef: result };
1184
+ }
1185
+ SetToDefault(node, context) {
1186
+ const result = this.transformGenericNode(node, context);
1187
+ return { SetToDefault: result };
1188
+ }
1189
+ CurrentOfExpr(node, context) {
1190
+ const result = this.transformGenericNode(node, context);
1191
+ return { CurrentOfExpr: result };
1192
+ }
1193
+ TableLikeClause(node, context) {
1194
+ const result = this.transformGenericNode(node, context);
1195
+ return { TableLikeClause: result };
1196
+ }
1197
+ AlterFunctionStmt(node, context) {
1198
+ const result = this.transformGenericNode(node, context);
1199
+ return { AlterFunctionStmt: result };
1200
+ }
1201
+ AlterObjectSchemaStmt(node, context) {
1202
+ const result = this.transformGenericNode(node, context);
1203
+ return { AlterObjectSchemaStmt: result };
1204
+ }
1205
+ AlterRoleSetStmt(node, context) {
1206
+ const result = this.transformGenericNode(node, context);
1207
+ return { AlterRoleSetStmt: result };
1208
+ }
1209
+ CreateForeignTableStmt(node, context) {
1210
+ const result = this.transformGenericNode(node, context);
1211
+ return { CreateForeignTableStmt: result };
1212
+ }
1213
+ // NOTE: this doesn't exist in v14?
1214
+ CreateAccessMethodStmt(node, context) {
1215
+ const result = this.transformGenericNode(node, context);
1216
+ return { CreateAccessMethodStmt: result };
1217
+ }
1218
+ }
1219
+ exports.V14ToV15Transformer = V14ToV15Transformer;