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