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