pgsql-deparser 13.16.0 → 13.19.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 (50) hide show
  1. package/README.md +94 -45
  2. package/deparser/deparser.d.ts +302 -0
  3. package/deparser/deparser.js +10451 -0
  4. package/deparser/index.d.ts +9 -0
  5. package/deparser/index.js +17 -0
  6. package/deparser/utils/list-utils.d.ts +8 -0
  7. package/deparser/utils/list-utils.js +30 -0
  8. package/deparser/utils/quote-utils.d.ts +24 -0
  9. package/deparser/utils/quote-utils.js +89 -0
  10. package/deparser/utils/sql-formatter.d.ts +16 -0
  11. package/deparser/utils/sql-formatter.js +40 -0
  12. package/deparser/visitors/base.d.ts +68 -0
  13. package/deparser/visitors/base.js +122 -0
  14. package/esm/deparser/deparser.js +10447 -0
  15. package/esm/deparser/index.js +13 -0
  16. package/esm/deparser/utils/list-utils.js +26 -0
  17. package/esm/deparser/utils/quote-utils.js +85 -0
  18. package/esm/deparser/utils/sql-formatter.js +36 -0
  19. package/esm/deparser/visitors/base.js +117 -0
  20. package/esm/index.js +15 -0
  21. package/esm/v13-to-v14.js +2750 -0
  22. package/esm/v13-to-v17-direct.js +78 -0
  23. package/esm/v14-to-v15.js +1223 -0
  24. package/esm/v15-to-v16.js +2940 -0
  25. package/esm/v16-to-v17.js +1488 -0
  26. package/index.d.ts +9 -0
  27. package/index.js +19 -0
  28. package/package.json +26 -75
  29. package/v13-to-v14.d.ts +253 -0
  30. package/v13-to-v14.js +2754 -0
  31. package/v13-to-v17-direct.d.ts +24 -0
  32. package/v13-to-v17-direct.js +82 -0
  33. package/v14-to-v15.d.ts +616 -0
  34. package/v14-to-v15.js +1227 -0
  35. package/v15-to-v16.d.ts +633 -0
  36. package/v15-to-v16.js +2944 -0
  37. package/v16-to-v17.d.ts +638 -0
  38. package/v16-to-v17.js +1492 -0
  39. package/main/deparser.js +0 -3495
  40. package/main/index.js +0 -10
  41. package/main/utils/index.js +0 -97
  42. package/module/deparser.js +0 -3492
  43. package/module/index.js +0 -3
  44. package/module/utils/index.js +0 -90
  45. package/src/deparser.ts +0 -4234
  46. package/src/index.ts +0 -3
  47. package/src/utils/index.ts +0 -92
  48. package/types/deparser.d.ts +0 -119
  49. package/types/index.d.ts +0 -3
  50. package/types/utils/index.d.ts +0 -4
@@ -0,0 +1,1223 @@
1
+ /**
2
+ * Auto-generated file with types stripped for better tree-shaking
3
+ * DO NOT EDIT - Generated by strip-transformer-types.ts
4
+ */
5
+ // @ts-nocheck
6
+ /**
7
+ * V14 to V15 AST Transformer
8
+ * Transforms PostgreSQL v14 AST nodes to v15 format
9
+ */
10
+ export class V14ToV15Transformer {
11
+ transform(node, context = { parentNodeTypes: [] }) {
12
+ if (node == null) {
13
+ return null;
14
+ }
15
+ if (typeof node === 'number' || node instanceof Number) {
16
+ return node;
17
+ }
18
+ if (typeof node === 'string') {
19
+ return node;
20
+ }
21
+ try {
22
+ return this.visit(node, context);
23
+ }
24
+ catch (error) {
25
+ const nodeType = Object.keys(node)[0];
26
+ throw new Error(`Error transforming ${nodeType}: ${error.message}`);
27
+ }
28
+ }
29
+ visit(node, context = { parentNodeTypes: [] }) {
30
+ const nodeType = this.getNodeType(node);
31
+ // Handle empty objects
32
+ if (!nodeType) {
33
+ return {};
34
+ }
35
+ const nodeData = this.getNodeData(node);
36
+ const methodName = nodeType;
37
+ if (typeof this[methodName] === 'function') {
38
+ const childContext = {
39
+ ...context,
40
+ parentNodeTypes: [...context.parentNodeTypes, nodeType]
41
+ };
42
+ const result = this[methodName](nodeData, childContext);
43
+ return result;
44
+ }
45
+ // If no specific method, use transformGenericNode to handle nested transformations
46
+ return this.transformGenericNode(node, context);
47
+ }
48
+ getNodeType(node) {
49
+ return Object.keys(node)[0];
50
+ }
51
+ getNodeData(node) {
52
+ const keys = Object.keys(node);
53
+ if (keys.length === 1 && typeof node[keys[0]] === 'object') {
54
+ return node[keys[0]];
55
+ }
56
+ return node;
57
+ }
58
+ transformGenericNode(node, context) {
59
+ if (typeof node !== 'object' || node === null)
60
+ return node;
61
+ if (Array.isArray(node))
62
+ return node.map(item => this.transform(item, context));
63
+ const keys = Object.keys(node);
64
+ if (keys.length === 1 && typeof node[keys[0]] === 'object' && node[keys[0]] !== null && !Array.isArray(node[keys[0]])) {
65
+ const nodeType = keys[0];
66
+ const nodeData = node[keys[0]];
67
+ const transformedData = {};
68
+ for (const [key, value] of Object.entries(nodeData)) {
69
+ if (Array.isArray(value)) {
70
+ if (key === 'arrayBounds') {
71
+ transformedData[key] = value.map(item => {
72
+ return this.transform(item, context);
73
+ });
74
+ }
75
+ else {
76
+ transformedData[key] = value.map(item => this.transform(item, context));
77
+ }
78
+ }
79
+ else if (typeof value === 'object' && value !== null) {
80
+ const keys = Object.keys(value);
81
+ const isNumericKeysObject = keys.every(k => /^\d+$/.test(k));
82
+ if (isNumericKeysObject && keys.length > 0) {
83
+ const sortedKeys = keys.sort((a, b) => parseInt(a) - parseInt(b));
84
+ transformedData[key] = sortedKeys.map(k => this.transform(value[k], context));
85
+ }
86
+ else {
87
+ // Regular object transformation
88
+ transformedData[key] = this.transform(value, context);
89
+ }
90
+ }
91
+ else {
92
+ transformedData[key] = value;
93
+ }
94
+ }
95
+ return { [nodeType]: transformedData };
96
+ }
97
+ const result = {};
98
+ for (const [key, value] of Object.entries(node)) {
99
+ if (Array.isArray(value)) {
100
+ if (key === 'arrayBounds') {
101
+ result[key] = value.map(item => {
102
+ return this.transform(item, context);
103
+ });
104
+ }
105
+ else {
106
+ result[key] = value.map(item => this.transform(item, context));
107
+ }
108
+ }
109
+ else if (typeof value === 'object' && value !== null) {
110
+ const keys = Object.keys(value);
111
+ const isNumericKeysObject = keys.every(k => /^\d+$/.test(k));
112
+ if (isNumericKeysObject && keys.length > 0) {
113
+ const sortedKeys = keys.sort((a, b) => parseInt(a) - parseInt(b));
114
+ result[key] = sortedKeys.map(k => this.transform(value[k], context));
115
+ }
116
+ else {
117
+ // Regular object transformation
118
+ result[key] = this.transform(value, context);
119
+ }
120
+ }
121
+ else {
122
+ result[key] = value;
123
+ }
124
+ }
125
+ return result;
126
+ }
127
+ ParseResult(node, context) {
128
+ if (node && typeof node === 'object' && 'version' in node && 'stmts' in node) {
129
+ return {
130
+ version: 150000, // PG15 version
131
+ stmts: node.stmts.map((stmt) => {
132
+ if (stmt && typeof stmt === 'object' && 'stmt' in stmt) {
133
+ return {
134
+ ...stmt,
135
+ stmt: this.transform(stmt.stmt, context)
136
+ };
137
+ }
138
+ return this.transform(stmt, context);
139
+ })
140
+ };
141
+ }
142
+ return node;
143
+ }
144
+ RawStmt(node, context) {
145
+ const result = this.transformGenericNode(node, context);
146
+ return { RawStmt: result };
147
+ }
148
+ SelectStmt(node, context) {
149
+ const result = this.transformGenericNode(node, context);
150
+ return { SelectStmt: result };
151
+ }
152
+ A_Expr(node, context) {
153
+ const result = this.transformGenericNode(node, context);
154
+ return { A_Expr: result };
155
+ }
156
+ InsertStmt(node, context) {
157
+ const result = this.transformGenericNode(node, context);
158
+ return { InsertStmt: result };
159
+ }
160
+ UpdateStmt(node, context) {
161
+ const result = this.transformGenericNode(node, context);
162
+ return { UpdateStmt: result };
163
+ }
164
+ DeleteStmt(node, context) {
165
+ const result = this.transformGenericNode(node, context);
166
+ return { DeleteStmt: result };
167
+ }
168
+ WithClause(node, context) {
169
+ const result = this.transformGenericNode(node, context);
170
+ return { WithClause: result };
171
+ }
172
+ ResTarget(node, context) {
173
+ const result = this.transformGenericNode(node, context);
174
+ return { ResTarget: result };
175
+ }
176
+ BoolExpr(node, context) {
177
+ const result = this.transformGenericNode(node, context);
178
+ return { BoolExpr: result };
179
+ }
180
+ FuncCall(node, context) {
181
+ const result = this.transformGenericNode(node, context);
182
+ return { FuncCall: result };
183
+ }
184
+ FuncExpr(node, context) {
185
+ const result = this.transformGenericNode(node, context);
186
+ return { FuncExpr: result };
187
+ }
188
+ A_Const(node, context) {
189
+ const result = {};
190
+ for (const [key, value] of Object.entries(node)) {
191
+ result[key] = value;
192
+ }
193
+ if (result.val) {
194
+ const val = result.val;
195
+ if (val.String && val.String.str !== undefined) {
196
+ result.sval = { sval: val.String.str };
197
+ delete result.val;
198
+ }
199
+ else if (val.Integer !== undefined) {
200
+ if (val.Integer.ival !== undefined) {
201
+ if (val.Integer.ival === 0) {
202
+ result.ival = {};
203
+ }
204
+ else {
205
+ result.ival = { ival: val.Integer.ival };
206
+ }
207
+ }
208
+ else {
209
+ result.ival = {};
210
+ }
211
+ delete result.val;
212
+ }
213
+ else if (val.Float && val.Float.str !== undefined) {
214
+ result.fval = { fval: val.Float.str };
215
+ delete result.val;
216
+ }
217
+ else if (val.BitString && val.BitString.str !== undefined) {
218
+ result.bsval = { bsval: val.BitString.str };
219
+ delete result.val;
220
+ }
221
+ else if (val.Null !== undefined) {
222
+ result.isnull = true;
223
+ delete result.val;
224
+ }
225
+ }
226
+ // Handle ival field directly (not nested in val) - removed overly broad conversion
227
+ return { A_Const: result };
228
+ }
229
+ ColumnRef(node, context) {
230
+ const result = this.transformGenericNode(node, context);
231
+ return { ColumnRef: result };
232
+ }
233
+ TypeName(node, context) {
234
+ const result = this.transformGenericNode(node, context);
235
+ return { TypeName: result };
236
+ }
237
+ Alias(node, context) {
238
+ const result = this.transformGenericNode(node, context);
239
+ return { Alias: result };
240
+ }
241
+ RangeVar(node, context) {
242
+ const result = this.transformGenericNode(node, context);
243
+ return { RangeVar: result };
244
+ }
245
+ A_ArrayExpr(node, context) {
246
+ const result = this.transformGenericNode(node, context);
247
+ return { A_ArrayExpr: result };
248
+ }
249
+ A_Indices(node, context) {
250
+ const result = {};
251
+ if (node.is_slice !== undefined) {
252
+ result.is_slice = node.is_slice;
253
+ }
254
+ if (node.lidx !== undefined) {
255
+ result.lidx = this.transform(node.lidx, context);
256
+ }
257
+ if (node.uidx !== undefined) {
258
+ const childContext = {
259
+ ...context,
260
+ parentNodeTypes: [...(context.parentNodeTypes || []), 'A_Indices']
261
+ };
262
+ result.uidx = this.transform(node.uidx, childContext);
263
+ }
264
+ return { A_Indices: result };
265
+ }
266
+ A_Indirection(node, context) {
267
+ const result = this.transformGenericNode(node, context);
268
+ return { A_Indirection: result };
269
+ }
270
+ A_Star(node, context) {
271
+ const result = this.transformGenericNode(node, context);
272
+ return { A_Star: result };
273
+ }
274
+ CaseExpr(node, context) {
275
+ const result = this.transformGenericNode(node, context);
276
+ return { CaseExpr: result };
277
+ }
278
+ CoalesceExpr(node, context) {
279
+ const result = this.transformGenericNode(node, context);
280
+ return { CoalesceExpr: result };
281
+ }
282
+ TypeCast(node, context) {
283
+ if (node.location === -1 && node.typeName && node.typeName.names) {
284
+ const typeNames = node.typeName.names.map(name => {
285
+ if (name && typeof name === 'object' && 'String' in name) {
286
+ const stringVal = name.String;
287
+ return stringVal.sval || stringVal.str;
288
+ }
289
+ return null;
290
+ }).filter(Boolean);
291
+ const hasPgCatalog = typeNames.includes('pg_catalog');
292
+ const hasBool = typeNames.includes('bool');
293
+ if (hasPgCatalog && hasBool && node.arg) {
294
+ const arg = node.arg;
295
+ if (arg.A_Const) {
296
+ let stringValue = null;
297
+ // Handle both sval and val.String formats
298
+ if (arg.A_Const.sval && arg.A_Const.sval.sval) {
299
+ stringValue = arg.A_Const.sval.sval;
300
+ }
301
+ else if (arg.A_Const.val && arg.A_Const.val.String) {
302
+ if (arg.A_Const.val.String.sval) {
303
+ stringValue = arg.A_Const.val.String.sval;
304
+ }
305
+ else if (arg.A_Const.val.String.str) {
306
+ stringValue = arg.A_Const.val.String.str;
307
+ }
308
+ }
309
+ if (stringValue === 't' || stringValue === 'true') {
310
+ return {
311
+ A_Const: {
312
+ boolval: { boolval: true },
313
+ location: arg.A_Const.location
314
+ }
315
+ };
316
+ }
317
+ else if (stringValue === 'f' || stringValue === 'false') {
318
+ return {
319
+ A_Const: {
320
+ boolval: {},
321
+ location: arg.A_Const.location
322
+ }
323
+ };
324
+ }
325
+ }
326
+ }
327
+ }
328
+ const result = this.transformGenericNode(node, context);
329
+ return { TypeCast: result };
330
+ }
331
+ CollateClause(node, context) {
332
+ const result = this.transformGenericNode(node, context);
333
+ return { CollateClause: result };
334
+ }
335
+ BooleanTest(node, context) {
336
+ const result = this.transformGenericNode(node, context);
337
+ return { BooleanTest: result };
338
+ }
339
+ NullTest(node, context) {
340
+ const result = this.transformGenericNode(node, context);
341
+ return { NullTest: result };
342
+ }
343
+ String(node, context) {
344
+ const result = { ...node };
345
+ if (result.str !== undefined) {
346
+ result.sval = result.str;
347
+ delete result.str;
348
+ }
349
+ return { String: result };
350
+ }
351
+ Integer(node, context) {
352
+ const isInDefElemContext = context.parentNodeTypes?.includes('DefElem');
353
+ if (isInDefElemContext && node.ival !== undefined) {
354
+ const defElemName = context.defElemName;
355
+ // CreateRoleStmt: specific role attributes should become Boolean
356
+ if (defElemName && ['createrole', 'superuser', 'canlogin', 'createdb', 'inherit', 'bypassrls', 'isreplication'].includes(defElemName) &&
357
+ (node.ival === 0 || node.ival === 1)) {
358
+ return {
359
+ Boolean: {
360
+ boolval: node.ival === 1
361
+ }
362
+ };
363
+ }
364
+ // CreateExtensionStmt: cascade should become Boolean
365
+ if (context.parentNodeTypes?.includes('CreateExtensionStmt') && defElemName) {
366
+ if (defElemName === 'cascade' && (node.ival === 0 || node.ival === 1)) {
367
+ return {
368
+ Boolean: {
369
+ boolval: node.ival === 1
370
+ }
371
+ };
372
+ }
373
+ }
374
+ // CreateFunctionStmt: window should become Boolean
375
+ if (context.parentNodeTypes?.includes('CreateFunctionStmt') && defElemName) {
376
+ if (defElemName === 'window' && (node.ival === 0 || node.ival === 1)) {
377
+ return {
378
+ Boolean: {
379
+ boolval: node.ival === 1
380
+ }
381
+ };
382
+ }
383
+ }
384
+ if (['strict', 'security', 'leakproof', 'cycle'].includes(defElemName) && (node.ival === 0 || node.ival === 1)) {
385
+ return {
386
+ Boolean: {
387
+ boolval: node.ival === 1
388
+ }
389
+ };
390
+ }
391
+ }
392
+ // AlterTableCmd context: SET STATISTICS with ival 0 or -1 -> empty Integer
393
+ if (context.parentNodeTypes?.includes('AlterTableCmd') && !context.parentNodeTypes?.includes('DefineStmt') && (node.ival === 0)) {
394
+ return { Integer: {} };
395
+ }
396
+ // DefineStmt context: specific cases where ival should become empty Integer
397
+ if (context.parentNodeTypes?.includes('DefineStmt')) {
398
+ const defElemName = context.defElemName;
399
+ if (defElemName === 'initcond' && (node.ival === 0)) {
400
+ return { Integer: {} };
401
+ }
402
+ if (defElemName === 'sspace' && node.ival === 0) {
403
+ return { Integer: {} };
404
+ }
405
+ // DefineStmt args context: ival 0 should become empty Integer for aggregates
406
+ if (!defElemName && (node.ival === 0)) {
407
+ return { Integer: {} };
408
+ }
409
+ }
410
+ // CreateSeqStmt context: specific cases where ival should become empty Integer
411
+ if (context.parentNodeTypes?.includes('CreateSeqStmt')) {
412
+ const defElemName = context.defElemName;
413
+ if (defElemName === 'start' && node.ival === 0) {
414
+ return { Integer: {} };
415
+ }
416
+ if (defElemName === 'minvalue' && node.ival === 0) {
417
+ return { Integer: {} };
418
+ }
419
+ if (defElemName === 'increment' && node.ival === 0) {
420
+ return { Integer: {} };
421
+ }
422
+ }
423
+ const result = { ...node };
424
+ return { Integer: result };
425
+ }
426
+ Float(node, context) {
427
+ const result = { ...node };
428
+ if (result.str !== undefined) {
429
+ result.fval = result.str;
430
+ delete result.str;
431
+ }
432
+ return { Float: result };
433
+ }
434
+ BitString(node, context) {
435
+ const result = { ...node };
436
+ if (result.str !== undefined) {
437
+ result.bsval = result.str;
438
+ delete result.str;
439
+ }
440
+ return { BitString: result };
441
+ }
442
+ // NOTE: there is no Null type in PG15
443
+ Null(node, context) {
444
+ const result = this.transformGenericNode(node, context);
445
+ return { Null: result };
446
+ }
447
+ List(node, context) {
448
+ const result = this.transformGenericNode(node, context);
449
+ return { List: result };
450
+ }
451
+ CreateStmt(node, context) {
452
+ const result = this.transformGenericNode(node, context);
453
+ return { CreateStmt: result };
454
+ }
455
+ ColumnDef(node, context) {
456
+ const result = this.transformGenericNode(node, context);
457
+ return { ColumnDef: result };
458
+ }
459
+ Constraint(node, context) {
460
+ const result = this.transformGenericNode(node, context);
461
+ return { Constraint: result };
462
+ }
463
+ SubLink(node, context) {
464
+ const result = this.transformGenericNode(node, context);
465
+ return { SubLink: result };
466
+ }
467
+ CaseWhen(node, context) {
468
+ const result = this.transformGenericNode(node, context);
469
+ return { CaseWhen: result };
470
+ }
471
+ WindowDef(node, context) {
472
+ const result = this.transformGenericNode(node, context);
473
+ return { WindowDef: result };
474
+ }
475
+ SortBy(node, context) {
476
+ const result = this.transformGenericNode(node, context);
477
+ return { SortBy: result };
478
+ }
479
+ GroupingSet(node, context) {
480
+ const result = this.transformGenericNode(node, context);
481
+ return { GroupingSet: result };
482
+ }
483
+ CommonTableExpr(node, context) {
484
+ const result = this.transformGenericNode(node, context);
485
+ return { CommonTableExpr: result };
486
+ }
487
+ ParamRef(node, context) {
488
+ const result = this.transformGenericNode(node, context);
489
+ return { ParamRef: result };
490
+ }
491
+ LockingClause(node, context) {
492
+ const result = this.transformGenericNode(node, context);
493
+ return { LockingClause: result };
494
+ }
495
+ MinMaxExpr(node, context) {
496
+ const result = this.transformGenericNode(node, context);
497
+ return { MinMaxExpr: result };
498
+ }
499
+ RowExpr(node, context) {
500
+ const result = this.transformGenericNode(node, context);
501
+ return { RowExpr: result };
502
+ }
503
+ OpExpr(node, context) {
504
+ const result = this.transformGenericNode(node, context);
505
+ return { OpExpr: result };
506
+ }
507
+ DistinctExpr(node, context) {
508
+ const result = this.transformGenericNode(node, context);
509
+ return { DistinctExpr: result };
510
+ }
511
+ NullIfExpr(node, context) {
512
+ const result = this.transformGenericNode(node, context);
513
+ return { NullIfExpr: result };
514
+ }
515
+ ScalarArrayOpExpr(node, context) {
516
+ const result = this.transformGenericNode(node, context);
517
+ return { ScalarArrayOpExpr: result };
518
+ }
519
+ Aggref(node, context) {
520
+ const result = this.transformGenericNode(node, context);
521
+ return { Aggref: result };
522
+ }
523
+ WindowFunc(node, context) {
524
+ const result = this.transformGenericNode(node, context);
525
+ return { WindowFunc: result };
526
+ }
527
+ FieldSelect(node, context) {
528
+ const result = this.transformGenericNode(node, context);
529
+ return { FieldSelect: result };
530
+ }
531
+ RelabelType(node, context) {
532
+ const result = this.transformGenericNode(node, context);
533
+ return { RelabelType: result };
534
+ }
535
+ CoerceViaIO(node, context) {
536
+ const result = this.transformGenericNode(node, context);
537
+ return { CoerceViaIO: result };
538
+ }
539
+ ArrayCoerceExpr(node, context) {
540
+ const result = this.transformGenericNode(node, context);
541
+ return { ArrayCoerceExpr: result };
542
+ }
543
+ ConvertRowtypeExpr(node, context) {
544
+ const result = this.transformGenericNode(node, context);
545
+ return { ConvertRowtypeExpr: result };
546
+ }
547
+ NamedArgExpr(node, context) {
548
+ const result = this.transformGenericNode(node, context);
549
+ return { NamedArgExpr: result };
550
+ }
551
+ ViewStmt(node, context) {
552
+ const result = this.transformGenericNode(node, context);
553
+ return { ViewStmt: result };
554
+ }
555
+ IndexStmt(node, context) {
556
+ const result = this.transformGenericNode(node, context);
557
+ return { IndexStmt: result };
558
+ }
559
+ IndexElem(node, context) {
560
+ const result = this.transformGenericNode(node, context);
561
+ return { IndexElem: result };
562
+ }
563
+ PartitionElem(node, context) {
564
+ const result = this.transformGenericNode(node, context);
565
+ return { PartitionElem: result };
566
+ }
567
+ PartitionCmd(node, context) {
568
+ const result = this.transformGenericNode(node, context);
569
+ return { PartitionCmd: result };
570
+ }
571
+ JoinExpr(node, context) {
572
+ const result = this.transformGenericNode(node, context);
573
+ return { JoinExpr: result };
574
+ }
575
+ FromExpr(node, context) {
576
+ const result = this.transformGenericNode(node, context);
577
+ return { FromExpr: result };
578
+ }
579
+ TransactionStmt(node, context) {
580
+ const result = this.transformGenericNode(node, context);
581
+ return { TransactionStmt: result };
582
+ }
583
+ VariableSetStmt(node, context) {
584
+ const result = this.transformGenericNode(node, context);
585
+ return { VariableSetStmt: result };
586
+ }
587
+ VariableShowStmt(node, context) {
588
+ const result = this.transformGenericNode(node, context);
589
+ return { VariableShowStmt: result };
590
+ }
591
+ CreateSchemaStmt(node, context) {
592
+ const result = this.transformGenericNode(node, context);
593
+ return { CreateSchemaStmt: result };
594
+ }
595
+ RoleSpec(node, context) {
596
+ const result = this.transformGenericNode(node, context);
597
+ return { RoleSpec: result };
598
+ }
599
+ DropStmt(node, context) {
600
+ const result = this.transformGenericNode(node, context);
601
+ return { DropStmt: result };
602
+ }
603
+ TruncateStmt(node, context) {
604
+ const result = this.transformGenericNode(node, context);
605
+ return { TruncateStmt: result };
606
+ }
607
+ ReturnStmt(node, context) {
608
+ const result = {};
609
+ if (node.returnval !== undefined) {
610
+ result.returnval = this.transform(node.returnval, context);
611
+ }
612
+ return { ReturnStmt: result };
613
+ }
614
+ PLAssignStmt(node, context) {
615
+ const result = this.transformGenericNode(node, context);
616
+ return { PLAssignStmt: result };
617
+ }
618
+ CopyStmt(node, context) {
619
+ const result = {};
620
+ if (node.relation !== undefined) {
621
+ result.relation = this.transform(node.relation, context);
622
+ }
623
+ if (node.query !== undefined) {
624
+ result.query = this.transform(node.query, context);
625
+ }
626
+ if (node.attlist !== undefined) {
627
+ result.attlist = Array.isArray(node.attlist)
628
+ ? node.attlist.map(item => this.transform(item, context))
629
+ : this.transform(node.attlist, context);
630
+ }
631
+ if (node.is_from !== undefined) {
632
+ result.is_from = node.is_from;
633
+ }
634
+ if (node.is_program !== undefined) {
635
+ result.is_program = node.is_program;
636
+ }
637
+ if (node.filename !== undefined) {
638
+ result.filename = node.filename;
639
+ }
640
+ if (node.options !== undefined) {
641
+ result.options = Array.isArray(node.options)
642
+ ? node.options.map(item => this.transform(item, context))
643
+ : this.transform(node.options, context);
644
+ }
645
+ if (node.whereClause !== undefined) {
646
+ result.whereClause = this.transform(node.whereClause, context);
647
+ }
648
+ return { CopyStmt: result };
649
+ }
650
+ AlterTableStmt(node, context) {
651
+ const result = this.transformGenericNode(node, context);
652
+ return { AlterTableStmt: result };
653
+ }
654
+ AlterTableCmd(node, context) {
655
+ const result = {};
656
+ if (node.subtype !== undefined) {
657
+ result.subtype = node.subtype;
658
+ }
659
+ if (node.name !== undefined) {
660
+ result.name = node.name;
661
+ }
662
+ if (node.num !== undefined) {
663
+ result.num = node.num;
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
+ }