pg_query 18.1.0

PostgreSQL parser that uses the actual PostgreSQL server source to parse SQL queries and return the internal PostgreSQL parse tree.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
// This file is autogenerated by ./scripts/generate_protobuf_and_funcs.rb

const char *
pg_query_keyword_kind_name(PgQueryKeywordKind keyword_kind)
{
  switch (keyword_kind) {
    case PG_QUERY_NO_KEYWORD: return "NO_KEYWORD";
    case PG_QUERY_UNRESERVED_KEYWORD: return "UNRESERVED_KEYWORD";
    case PG_QUERY_COL_NAME_KEYWORD: return "COL_NAME_KEYWORD";
    case PG_QUERY_TYPE_FUNC_NAME_KEYWORD: return "TYPE_FUNC_NAME_KEYWORD";
    case PG_QUERY_RESERVED_KEYWORD: return "RESERVED_KEYWORD";
  }
  return NULL;
}

const char *
pg_query_token_name(PgQueryToken token)
{
  switch (token) {
    case PG_QUERY_TOKEN_NUL: return "NUL";
    case PG_QUERY_TOKEN_ASCII_36: return "ASCII_36";
    case PG_QUERY_TOKEN_ASCII_37: return "ASCII_37";
    case PG_QUERY_TOKEN_ASCII_40: return "ASCII_40";
    case PG_QUERY_TOKEN_ASCII_41: return "ASCII_41";
    case PG_QUERY_TOKEN_ASCII_42: return "ASCII_42";
    case PG_QUERY_TOKEN_ASCII_43: return "ASCII_43";
    case PG_QUERY_TOKEN_ASCII_44: return "ASCII_44";
    case PG_QUERY_TOKEN_ASCII_45: return "ASCII_45";
    case PG_QUERY_TOKEN_ASCII_46: return "ASCII_46";
    case PG_QUERY_TOKEN_ASCII_47: return "ASCII_47";
    case PG_QUERY_TOKEN_ASCII_58: return "ASCII_58";
    case PG_QUERY_TOKEN_ASCII_59: return "ASCII_59";
    case PG_QUERY_TOKEN_ASCII_60: return "ASCII_60";
    case PG_QUERY_TOKEN_ASCII_61: return "ASCII_61";
    case PG_QUERY_TOKEN_ASCII_62: return "ASCII_62";
    case PG_QUERY_TOKEN_ASCII_63: return "ASCII_63";
    case PG_QUERY_TOKEN_ASCII_91: return "ASCII_91";
    case PG_QUERY_TOKEN_ASCII_92: return "ASCII_92";
    case PG_QUERY_TOKEN_ASCII_93: return "ASCII_93";
    case PG_QUERY_TOKEN_ASCII_94: return "ASCII_94";
    case PG_QUERY_TOKEN_IDENT: return "IDENT";
    case PG_QUERY_TOKEN_UIDENT: return "UIDENT";
    case PG_QUERY_TOKEN_FCONST: return "FCONST";
    case PG_QUERY_TOKEN_SCONST: return "SCONST";
    case PG_QUERY_TOKEN_USCONST: return "USCONST";
    case PG_QUERY_TOKEN_BCONST: return "BCONST";
    case PG_QUERY_TOKEN_XCONST: return "XCONST";
    case PG_QUERY_TOKEN_Op: return "Op";
    case PG_QUERY_TOKEN_ICONST: return "ICONST";
    case PG_QUERY_TOKEN_PARAM: return "PARAM";
    case PG_QUERY_TOKEN_TYPECAST: return "TYPECAST";
    case PG_QUERY_TOKEN_DOT_DOT: return "DOT_DOT";
    case PG_QUERY_TOKEN_COLON_EQUALS: return "COLON_EQUALS";
    case PG_QUERY_TOKEN_EQUALS_GREATER: return "EQUALS_GREATER";
    case PG_QUERY_TOKEN_LESS_EQUALS: return "LESS_EQUALS";
    case PG_QUERY_TOKEN_GREATER_EQUALS: return "GREATER_EQUALS";
    case PG_QUERY_TOKEN_NOT_EQUALS: return "NOT_EQUALS";
    case PG_QUERY_TOKEN_SQL_COMMENT: return "SQL_COMMENT";
    case PG_QUERY_TOKEN_C_COMMENT: return "C_COMMENT";
    case PG_QUERY_TOKEN_ABORT_P: return "ABORT_P";
    case PG_QUERY_TOKEN_ABSENT: return "ABSENT";
    case PG_QUERY_TOKEN_ABSOLUTE_P: return "ABSOLUTE_P";
    case PG_QUERY_TOKEN_ACCESS: return "ACCESS";
    case PG_QUERY_TOKEN_ACTION: return "ACTION";
    case PG_QUERY_TOKEN_ADD_P: return "ADD_P";
    case PG_QUERY_TOKEN_ADMIN: return "ADMIN";
    case PG_QUERY_TOKEN_AFTER: return "AFTER";
    case PG_QUERY_TOKEN_AGGREGATE: return "AGGREGATE";
    case PG_QUERY_TOKEN_ALL: return "ALL";
    case PG_QUERY_TOKEN_ALSO: return "ALSO";
    case PG_QUERY_TOKEN_ALTER: return "ALTER";
    case PG_QUERY_TOKEN_ALWAYS: return "ALWAYS";
    case PG_QUERY_TOKEN_ANALYSE: return "ANALYSE";
    case PG_QUERY_TOKEN_ANALYZE: return "ANALYZE";
    case PG_QUERY_TOKEN_AND: return "AND";
    case PG_QUERY_TOKEN_ANY: return "ANY";
    case PG_QUERY_TOKEN_ARRAY: return "ARRAY";
    case PG_QUERY_TOKEN_AS: return "AS";
    case PG_QUERY_TOKEN_ASC: return "ASC";
    case PG_QUERY_TOKEN_ASENSITIVE: return "ASENSITIVE";
    case PG_QUERY_TOKEN_ASSERTION: return "ASSERTION";
    case PG_QUERY_TOKEN_ASSIGNMENT: return "ASSIGNMENT";
    case PG_QUERY_TOKEN_ASYMMETRIC: return "ASYMMETRIC";
    case PG_QUERY_TOKEN_ATOMIC: return "ATOMIC";
    case PG_QUERY_TOKEN_AT: return "AT";
    case PG_QUERY_TOKEN_ATTACH: return "ATTACH";
    case PG_QUERY_TOKEN_ATTRIBUTE: return "ATTRIBUTE";
    case PG_QUERY_TOKEN_AUTHORIZATION: return "AUTHORIZATION";
    case PG_QUERY_TOKEN_BACKWARD: return "BACKWARD";
    case PG_QUERY_TOKEN_BEFORE: return "BEFORE";
    case PG_QUERY_TOKEN_BEGIN_P: return "BEGIN_P";
    case PG_QUERY_TOKEN_BETWEEN: return "BETWEEN";
    case PG_QUERY_TOKEN_BIGINT: return "BIGINT";
    case PG_QUERY_TOKEN_BINARY: return "BINARY";
    case PG_QUERY_TOKEN_BIT: return "BIT";
    case PG_QUERY_TOKEN_BOOLEAN_P: return "BOOLEAN_P";
    case PG_QUERY_TOKEN_BOTH: return "BOTH";
    case PG_QUERY_TOKEN_BREADTH: return "BREADTH";
    case PG_QUERY_TOKEN_BY: return "BY";
    case PG_QUERY_TOKEN_CACHE: return "CACHE";
    case PG_QUERY_TOKEN_CALL: return "CALL";
    case PG_QUERY_TOKEN_CALLED: return "CALLED";
    case PG_QUERY_TOKEN_CASCADE: return "CASCADE";
    case PG_QUERY_TOKEN_CASCADED: return "CASCADED";
    case PG_QUERY_TOKEN_CASE: return "CASE";
    case PG_QUERY_TOKEN_CAST: return "CAST";
    case PG_QUERY_TOKEN_CATALOG_P: return "CATALOG_P";
    case PG_QUERY_TOKEN_CHAIN: return "CHAIN";
    case PG_QUERY_TOKEN_CHAR_P: return "CHAR_P";
    case PG_QUERY_TOKEN_CHARACTER: return "CHARACTER";
    case PG_QUERY_TOKEN_CHARACTERISTICS: return "CHARACTERISTICS";
    case PG_QUERY_TOKEN_CHECK: return "CHECK";
    case PG_QUERY_TOKEN_CHECKPOINT: return "CHECKPOINT";
    case PG_QUERY_TOKEN_CLASS: return "CLASS";
    case PG_QUERY_TOKEN_CLOSE: return "CLOSE";
    case PG_QUERY_TOKEN_CLUSTER: return "CLUSTER";
    case PG_QUERY_TOKEN_COALESCE: return "COALESCE";
    case PG_QUERY_TOKEN_COLLATE: return "COLLATE";
    case PG_QUERY_TOKEN_COLLATION: return "COLLATION";
    case PG_QUERY_TOKEN_COLUMN: return "COLUMN";
    case PG_QUERY_TOKEN_COLUMNS: return "COLUMNS";
    case PG_QUERY_TOKEN_COMMENT: return "COMMENT";
    case PG_QUERY_TOKEN_COMMENTS: return "COMMENTS";
    case PG_QUERY_TOKEN_COMMIT: return "COMMIT";
    case PG_QUERY_TOKEN_COMMITTED: return "COMMITTED";
    case PG_QUERY_TOKEN_COMPRESSION: return "COMPRESSION";
    case PG_QUERY_TOKEN_CONCURRENTLY: return "CONCURRENTLY";
    case PG_QUERY_TOKEN_CONDITIONAL: return "CONDITIONAL";
    case PG_QUERY_TOKEN_CONFIGURATION: return "CONFIGURATION";
    case PG_QUERY_TOKEN_CONFLICT: return "CONFLICT";
    case PG_QUERY_TOKEN_CONNECTION: return "CONNECTION";
    case PG_QUERY_TOKEN_CONSTRAINT: return "CONSTRAINT";
    case PG_QUERY_TOKEN_CONSTRAINTS: return "CONSTRAINTS";
    case PG_QUERY_TOKEN_CONTENT_P: return "CONTENT_P";
    case PG_QUERY_TOKEN_CONTINUE_P: return "CONTINUE_P";
    case PG_QUERY_TOKEN_CONVERSION_P: return "CONVERSION_P";
    case PG_QUERY_TOKEN_COPY: return "COPY";
    case PG_QUERY_TOKEN_COST: return "COST";
    case PG_QUERY_TOKEN_CREATE: return "CREATE";
    case PG_QUERY_TOKEN_CROSS: return "CROSS";
    case PG_QUERY_TOKEN_CSV: return "CSV";
    case PG_QUERY_TOKEN_CUBE: return "CUBE";
    case PG_QUERY_TOKEN_CURRENT_P: return "CURRENT_P";
    case PG_QUERY_TOKEN_CURRENT_CATALOG: return "CURRENT_CATALOG";
    case PG_QUERY_TOKEN_CURRENT_DATE: return "CURRENT_DATE";
    case PG_QUERY_TOKEN_CURRENT_ROLE: return "CURRENT_ROLE";
    case PG_QUERY_TOKEN_CURRENT_SCHEMA: return "CURRENT_SCHEMA";
    case PG_QUERY_TOKEN_CURRENT_TIME: return "CURRENT_TIME";
    case PG_QUERY_TOKEN_CURRENT_TIMESTAMP: return "CURRENT_TIMESTAMP";
    case PG_QUERY_TOKEN_CURRENT_USER: return "CURRENT_USER";
    case PG_QUERY_TOKEN_CURSOR: return "CURSOR";
    case PG_QUERY_TOKEN_CYCLE: return "CYCLE";
    case PG_QUERY_TOKEN_DATA_P: return "DATA_P";
    case PG_QUERY_TOKEN_DATABASE: return "DATABASE";
    case PG_QUERY_TOKEN_DAY_P: return "DAY_P";
    case PG_QUERY_TOKEN_DEALLOCATE: return "DEALLOCATE";
    case PG_QUERY_TOKEN_DEC: return "DEC";
    case PG_QUERY_TOKEN_DECIMAL_P: return "DECIMAL_P";
    case PG_QUERY_TOKEN_DECLARE: return "DECLARE";
    case PG_QUERY_TOKEN_DEFAULT: return "DEFAULT";
    case PG_QUERY_TOKEN_DEFAULTS: return "DEFAULTS";
    case PG_QUERY_TOKEN_DEFERRABLE: return "DEFERRABLE";
    case PG_QUERY_TOKEN_DEFERRED: return "DEFERRED";
    case PG_QUERY_TOKEN_DEFINER: return "DEFINER";
    case PG_QUERY_TOKEN_DELETE_P: return "DELETE_P";
    case PG_QUERY_TOKEN_DELIMITER: return "DELIMITER";
    case PG_QUERY_TOKEN_DELIMITERS: return "DELIMITERS";
    case PG_QUERY_TOKEN_DEPENDS: return "DEPENDS";
    case PG_QUERY_TOKEN_DEPTH: return "DEPTH";
    case PG_QUERY_TOKEN_DESC: return "DESC";
    case PG_QUERY_TOKEN_DETACH: return "DETACH";
    case PG_QUERY_TOKEN_DICTIONARY: return "DICTIONARY";
    case PG_QUERY_TOKEN_DISABLE_P: return "DISABLE_P";
    case PG_QUERY_TOKEN_DISCARD: return "DISCARD";
    case PG_QUERY_TOKEN_DISTINCT: return "DISTINCT";
    case PG_QUERY_TOKEN_DO: return "DO";
    case PG_QUERY_TOKEN_DOCUMENT_P: return "DOCUMENT_P";
    case PG_QUERY_TOKEN_DOMAIN_P: return "DOMAIN_P";
    case PG_QUERY_TOKEN_DOUBLE_P: return "DOUBLE_P";
    case PG_QUERY_TOKEN_DROP: return "DROP";
    case PG_QUERY_TOKEN_EACH: return "EACH";
    case PG_QUERY_TOKEN_ELSE: return "ELSE";
    case PG_QUERY_TOKEN_EMPTY_P: return "EMPTY_P";
    case PG_QUERY_TOKEN_ENABLE_P: return "ENABLE_P";
    case PG_QUERY_TOKEN_ENCODING: return "ENCODING";
    case PG_QUERY_TOKEN_ENCRYPTED: return "ENCRYPTED";
    case PG_QUERY_TOKEN_END_P: return "END_P";
    case PG_QUERY_TOKEN_ENFORCED: return "ENFORCED";
    case PG_QUERY_TOKEN_ENUM_P: return "ENUM_P";
    case PG_QUERY_TOKEN_ERROR_P: return "ERROR_P";
    case PG_QUERY_TOKEN_ESCAPE: return "ESCAPE";
    case PG_QUERY_TOKEN_EVENT: return "EVENT";
    case PG_QUERY_TOKEN_EXCEPT: return "EXCEPT";
    case PG_QUERY_TOKEN_EXCLUDE: return "EXCLUDE";
    case PG_QUERY_TOKEN_EXCLUDING: return "EXCLUDING";
    case PG_QUERY_TOKEN_EXCLUSIVE: return "EXCLUSIVE";
    case PG_QUERY_TOKEN_EXECUTE: return "EXECUTE";
    case PG_QUERY_TOKEN_EXISTS: return "EXISTS";
    case PG_QUERY_TOKEN_EXPLAIN: return "EXPLAIN";
    case PG_QUERY_TOKEN_EXPRESSION: return "EXPRESSION";
    case PG_QUERY_TOKEN_EXTENSION: return "EXTENSION";
    case PG_QUERY_TOKEN_EXTERNAL: return "EXTERNAL";
    case PG_QUERY_TOKEN_EXTRACT: return "EXTRACT";
    case PG_QUERY_TOKEN_FALSE_P: return "FALSE_P";
    case PG_QUERY_TOKEN_FAMILY: return "FAMILY";
    case PG_QUERY_TOKEN_FETCH: return "FETCH";
    case PG_QUERY_TOKEN_FILTER: return "FILTER";
    case PG_QUERY_TOKEN_FINALIZE: return "FINALIZE";
    case PG_QUERY_TOKEN_FIRST_P: return "FIRST_P";
    case PG_QUERY_TOKEN_FLOAT_P: return "FLOAT_P";
    case PG_QUERY_TOKEN_FOLLOWING: return "FOLLOWING";
    case PG_QUERY_TOKEN_FOR: return "FOR";
    case PG_QUERY_TOKEN_FORCE: return "FORCE";
    case PG_QUERY_TOKEN_FOREIGN: return "FOREIGN";
    case PG_QUERY_TOKEN_FORMAT: return "FORMAT";
    case PG_QUERY_TOKEN_FORWARD: return "FORWARD";
    case PG_QUERY_TOKEN_FREEZE: return "FREEZE";
    case PG_QUERY_TOKEN_FROM: return "FROM";
    case PG_QUERY_TOKEN_FULL: return "FULL";
    case PG_QUERY_TOKEN_FUNCTION: return "FUNCTION";
    case PG_QUERY_TOKEN_FUNCTIONS: return "FUNCTIONS";
    case PG_QUERY_TOKEN_GENERATED: return "GENERATED";
    case PG_QUERY_TOKEN_GLOBAL: return "GLOBAL";
    case PG_QUERY_TOKEN_GRANT: return "GRANT";
    case PG_QUERY_TOKEN_GRANTED: return "GRANTED";
    case PG_QUERY_TOKEN_GREATEST: return "GREATEST";
    case PG_QUERY_TOKEN_GROUP_P: return "GROUP_P";
    case PG_QUERY_TOKEN_GROUPING: return "GROUPING";
    case PG_QUERY_TOKEN_GROUPS: return "GROUPS";
    case PG_QUERY_TOKEN_HANDLER: return "HANDLER";
    case PG_QUERY_TOKEN_HAVING: return "HAVING";
    case PG_QUERY_TOKEN_HEADER_P: return "HEADER_P";
    case PG_QUERY_TOKEN_HOLD: return "HOLD";
    case PG_QUERY_TOKEN_HOUR_P: return "HOUR_P";
    case PG_QUERY_TOKEN_IDENTITY_P: return "IDENTITY_P";
    case PG_QUERY_TOKEN_IF_P: return "IF_P";
    case PG_QUERY_TOKEN_ILIKE: return "ILIKE";
    case PG_QUERY_TOKEN_IMMEDIATE: return "IMMEDIATE";
    case PG_QUERY_TOKEN_IMMUTABLE: return "IMMUTABLE";
    case PG_QUERY_TOKEN_IMPLICIT_P: return "IMPLICIT_P";
    case PG_QUERY_TOKEN_IMPORT_P: return "IMPORT_P";
    case PG_QUERY_TOKEN_IN_P: return "IN_P";
    case PG_QUERY_TOKEN_INCLUDE: return "INCLUDE";
    case PG_QUERY_TOKEN_INCLUDING: return "INCLUDING";
    case PG_QUERY_TOKEN_INCREMENT: return "INCREMENT";
    case PG_QUERY_TOKEN_INDENT: return "INDENT";
    case PG_QUERY_TOKEN_INDEX: return "INDEX";
    case PG_QUERY_TOKEN_INDEXES: return "INDEXES";
    case PG_QUERY_TOKEN_INHERIT: return "INHERIT";
    case PG_QUERY_TOKEN_INHERITS: return "INHERITS";
    case PG_QUERY_TOKEN_INITIALLY: return "INITIALLY";
    case PG_QUERY_TOKEN_INLINE_P: return "INLINE_P";
    case PG_QUERY_TOKEN_INNER_P: return "INNER_P";
    case PG_QUERY_TOKEN_INOUT: return "INOUT";
    case PG_QUERY_TOKEN_INPUT_P: return "INPUT_P";
    case PG_QUERY_TOKEN_INSENSITIVE: return "INSENSITIVE";
    case PG_QUERY_TOKEN_INSERT: return "INSERT";
    case PG_QUERY_TOKEN_INSTEAD: return "INSTEAD";
    case PG_QUERY_TOKEN_INT_P: return "INT_P";
    case PG_QUERY_TOKEN_INTEGER: return "INTEGER";
    case PG_QUERY_TOKEN_INTERSECT: return "INTERSECT";
    case PG_QUERY_TOKEN_INTERVAL: return "INTERVAL";
    case PG_QUERY_TOKEN_INTO: return "INTO";
    case PG_QUERY_TOKEN_INVOKER: return "INVOKER";
    case PG_QUERY_TOKEN_IS: return "IS";
    case PG_QUERY_TOKEN_ISNULL: return "ISNULL";
    case PG_QUERY_TOKEN_ISOLATION: return "ISOLATION";
    case PG_QUERY_TOKEN_JOIN: return "JOIN";
    case PG_QUERY_TOKEN_JSON: return "JSON";
    case PG_QUERY_TOKEN_JSON_ARRAY: return "JSON_ARRAY";
    case PG_QUERY_TOKEN_JSON_ARRAYAGG: return "JSON_ARRAYAGG";
    case PG_QUERY_TOKEN_JSON_EXISTS: return "JSON_EXISTS";
    case PG_QUERY_TOKEN_JSON_OBJECT: return "JSON_OBJECT";
    case PG_QUERY_TOKEN_JSON_OBJECTAGG: return "JSON_OBJECTAGG";
    case PG_QUERY_TOKEN_JSON_QUERY: return "JSON_QUERY";
    case PG_QUERY_TOKEN_JSON_SCALAR: return "JSON_SCALAR";
    case PG_QUERY_TOKEN_JSON_SERIALIZE: return "JSON_SERIALIZE";
    case PG_QUERY_TOKEN_JSON_TABLE: return "JSON_TABLE";
    case PG_QUERY_TOKEN_JSON_VALUE: return "JSON_VALUE";
    case PG_QUERY_TOKEN_KEEP: return "KEEP";
    case PG_QUERY_TOKEN_KEY: return "KEY";
    case PG_QUERY_TOKEN_KEYS: return "KEYS";
    case PG_QUERY_TOKEN_LABEL: return "LABEL";
    case PG_QUERY_TOKEN_LANGUAGE: return "LANGUAGE";
    case PG_QUERY_TOKEN_LARGE_P: return "LARGE_P";
    case PG_QUERY_TOKEN_LAST_P: return "LAST_P";
    case PG_QUERY_TOKEN_LATERAL_P: return "LATERAL_P";
    case PG_QUERY_TOKEN_LEADING: return "LEADING";
    case PG_QUERY_TOKEN_LEAKPROOF: return "LEAKPROOF";
    case PG_QUERY_TOKEN_LEAST: return "LEAST";
    case PG_QUERY_TOKEN_LEFT: return "LEFT";
    case PG_QUERY_TOKEN_LEVEL: return "LEVEL";
    case PG_QUERY_TOKEN_LIKE: return "LIKE";
    case PG_QUERY_TOKEN_LIMIT: return "LIMIT";
    case PG_QUERY_TOKEN_LISTEN: return "LISTEN";
    case PG_QUERY_TOKEN_LOAD: return "LOAD";
    case PG_QUERY_TOKEN_LOCAL: return "LOCAL";
    case PG_QUERY_TOKEN_LOCALTIME: return "LOCALTIME";
    case PG_QUERY_TOKEN_LOCALTIMESTAMP: return "LOCALTIMESTAMP";
    case PG_QUERY_TOKEN_LOCATION: return "LOCATION";
    case PG_QUERY_TOKEN_LOCK_P: return "LOCK_P";
    case PG_QUERY_TOKEN_LOCKED: return "LOCKED";
    case PG_QUERY_TOKEN_LOGGED: return "LOGGED";
    case PG_QUERY_TOKEN_MAPPING: return "MAPPING";
    case PG_QUERY_TOKEN_MATCH: return "MATCH";
    case PG_QUERY_TOKEN_MATCHED: return "MATCHED";
    case PG_QUERY_TOKEN_MATERIALIZED: return "MATERIALIZED";
    case PG_QUERY_TOKEN_MAXVALUE: return "MAXVALUE";
    case PG_QUERY_TOKEN_MERGE: return "MERGE";
    case PG_QUERY_TOKEN_MERGE_ACTION: return "MERGE_ACTION";
    case PG_QUERY_TOKEN_METHOD: return "METHOD";
    case PG_QUERY_TOKEN_MINUTE_P: return "MINUTE_P";
    case PG_QUERY_TOKEN_MINVALUE: return "MINVALUE";
    case PG_QUERY_TOKEN_MODE: return "MODE";
    case PG_QUERY_TOKEN_MONTH_P: return "MONTH_P";
    case PG_QUERY_TOKEN_MOVE: return "MOVE";
    case PG_QUERY_TOKEN_NAME_P: return "NAME_P";
    case PG_QUERY_TOKEN_NAMES: return "NAMES";
    case PG_QUERY_TOKEN_NATIONAL: return "NATIONAL";
    case PG_QUERY_TOKEN_NATURAL: return "NATURAL";
    case PG_QUERY_TOKEN_NCHAR: return "NCHAR";
    case PG_QUERY_TOKEN_NESTED: return "NESTED";
    case PG_QUERY_TOKEN_NEW: return "NEW";
    case PG_QUERY_TOKEN_NEXT: return "NEXT";
    case PG_QUERY_TOKEN_NFC: return "NFC";
    case PG_QUERY_TOKEN_NFD: return "NFD";
    case PG_QUERY_TOKEN_NFKC: return "NFKC";
    case PG_QUERY_TOKEN_NFKD: return "NFKD";
    case PG_QUERY_TOKEN_NO: return "NO";
    case PG_QUERY_TOKEN_NONE: return "NONE";
    case PG_QUERY_TOKEN_NORMALIZE: return "NORMALIZE";
    case PG_QUERY_TOKEN_NORMALIZED: return "NORMALIZED";
    case PG_QUERY_TOKEN_NOT: return "NOT";
    case PG_QUERY_TOKEN_NOTHING: return "NOTHING";
    case PG_QUERY_TOKEN_NOTIFY: return "NOTIFY";
    case PG_QUERY_TOKEN_NOTNULL: return "NOTNULL";
    case PG_QUERY_TOKEN_NOWAIT: return "NOWAIT";
    case PG_QUERY_TOKEN_NULL_P: return "NULL_P";
    case PG_QUERY_TOKEN_NULLIF: return "NULLIF";
    case PG_QUERY_TOKEN_NULLS_P: return "NULLS_P";
    case PG_QUERY_TOKEN_NUMERIC: return "NUMERIC";
    case PG_QUERY_TOKEN_OBJECT_P: return "OBJECT_P";
    case PG_QUERY_TOKEN_OBJECTS_P: return "OBJECTS_P";
    case PG_QUERY_TOKEN_OF: return "OF";
    case PG_QUERY_TOKEN_OFF: return "OFF";
    case PG_QUERY_TOKEN_OFFSET: return "OFFSET";
    case PG_QUERY_TOKEN_OIDS: return "OIDS";
    case PG_QUERY_TOKEN_OLD: return "OLD";
    case PG_QUERY_TOKEN_OMIT: return "OMIT";
    case PG_QUERY_TOKEN_ON: return "ON";
    case PG_QUERY_TOKEN_ONLY: return "ONLY";
    case PG_QUERY_TOKEN_OPERATOR: return "OPERATOR";
    case PG_QUERY_TOKEN_OPTION: return "OPTION";
    case PG_QUERY_TOKEN_OPTIONS: return "OPTIONS";
    case PG_QUERY_TOKEN_OR: return "OR";
    case PG_QUERY_TOKEN_ORDER: return "ORDER";
    case PG_QUERY_TOKEN_ORDINALITY: return "ORDINALITY";
    case PG_QUERY_TOKEN_OTHERS: return "OTHERS";
    case PG_QUERY_TOKEN_OUT_P: return "OUT_P";
    case PG_QUERY_TOKEN_OUTER_P: return "OUTER_P";
    case PG_QUERY_TOKEN_OVER: return "OVER";
    case PG_QUERY_TOKEN_OVERLAPS: return "OVERLAPS";
    case PG_QUERY_TOKEN_OVERLAY: return "OVERLAY";
    case PG_QUERY_TOKEN_OVERRIDING: return "OVERRIDING";
    case PG_QUERY_TOKEN_OWNED: return "OWNED";
    case PG_QUERY_TOKEN_OWNER: return "OWNER";
    case PG_QUERY_TOKEN_PARALLEL: return "PARALLEL";
    case PG_QUERY_TOKEN_PARAMETER: return "PARAMETER";
    case PG_QUERY_TOKEN_PARSER: return "PARSER";
    case PG_QUERY_TOKEN_PARTIAL: return "PARTIAL";
    case PG_QUERY_TOKEN_PARTITION: return "PARTITION";
    case PG_QUERY_TOKEN_PASSING: return "PASSING";
    case PG_QUERY_TOKEN_PASSWORD: return "PASSWORD";
    case PG_QUERY_TOKEN_PATH: return "PATH";
    case PG_QUERY_TOKEN_PERIOD: return "PERIOD";
    case PG_QUERY_TOKEN_PLACING: return "PLACING";
    case PG_QUERY_TOKEN_PLAN: return "PLAN";
    case PG_QUERY_TOKEN_PLANS: return "PLANS";
    case PG_QUERY_TOKEN_POLICY: return "POLICY";
    case PG_QUERY_TOKEN_POSITION: return "POSITION";
    case PG_QUERY_TOKEN_PRECEDING: return "PRECEDING";
    case PG_QUERY_TOKEN_PRECISION: return "PRECISION";
    case PG_QUERY_TOKEN_PRESERVE: return "PRESERVE";
    case PG_QUERY_TOKEN_PREPARE: return "PREPARE";
    case PG_QUERY_TOKEN_PREPARED: return "PREPARED";
    case PG_QUERY_TOKEN_PRIMARY: return "PRIMARY";
    case PG_QUERY_TOKEN_PRIOR: return "PRIOR";
    case PG_QUERY_TOKEN_PRIVILEGES: return "PRIVILEGES";
    case PG_QUERY_TOKEN_PROCEDURAL: return "PROCEDURAL";
    case PG_QUERY_TOKEN_PROCEDURE: return "PROCEDURE";
    case PG_QUERY_TOKEN_PROCEDURES: return "PROCEDURES";
    case PG_QUERY_TOKEN_PROGRAM: return "PROGRAM";
    case PG_QUERY_TOKEN_PUBLICATION: return "PUBLICATION";
    case PG_QUERY_TOKEN_QUOTE: return "QUOTE";
    case PG_QUERY_TOKEN_QUOTES: return "QUOTES";
    case PG_QUERY_TOKEN_RANGE: return "RANGE";
    case PG_QUERY_TOKEN_READ: return "READ";
    case PG_QUERY_TOKEN_REAL: return "REAL";
    case PG_QUERY_TOKEN_REASSIGN: return "REASSIGN";
    case PG_QUERY_TOKEN_RECURSIVE: return "RECURSIVE";
    case PG_QUERY_TOKEN_REF_P: return "REF_P";
    case PG_QUERY_TOKEN_REFERENCES: return "REFERENCES";
    case PG_QUERY_TOKEN_REFERENCING: return "REFERENCING";
    case PG_QUERY_TOKEN_REFRESH: return "REFRESH";
    case PG_QUERY_TOKEN_REINDEX: return "REINDEX";
    case PG_QUERY_TOKEN_RELATIVE_P: return "RELATIVE_P";
    case PG_QUERY_TOKEN_RELEASE: return "RELEASE";
    case PG_QUERY_TOKEN_RENAME: return "RENAME";
    case PG_QUERY_TOKEN_REPEATABLE: return "REPEATABLE";
    case PG_QUERY_TOKEN_REPLACE: return "REPLACE";
    case PG_QUERY_TOKEN_REPLICA: return "REPLICA";
    case PG_QUERY_TOKEN_RESET: return "RESET";
    case PG_QUERY_TOKEN_RESTART: return "RESTART";
    case PG_QUERY_TOKEN_RESTRICT: return "RESTRICT";
    case PG_QUERY_TOKEN_RETURN: return "RETURN";
    case PG_QUERY_TOKEN_RETURNING: return "RETURNING";
    case PG_QUERY_TOKEN_RETURNS: return "RETURNS";
    case PG_QUERY_TOKEN_REVOKE: return "REVOKE";
    case PG_QUERY_TOKEN_RIGHT: return "RIGHT";
    case PG_QUERY_TOKEN_ROLE: return "ROLE";
    case PG_QUERY_TOKEN_ROLLBACK: return "ROLLBACK";
    case PG_QUERY_TOKEN_ROLLUP: return "ROLLUP";
    case PG_QUERY_TOKEN_ROUTINE: return "ROUTINE";
    case PG_QUERY_TOKEN_ROUTINES: return "ROUTINES";
    case PG_QUERY_TOKEN_ROW: return "ROW";
    case PG_QUERY_TOKEN_ROWS: return "ROWS";
    case PG_QUERY_TOKEN_RULE: return "RULE";
    case PG_QUERY_TOKEN_SAVEPOINT: return "SAVEPOINT";
    case PG_QUERY_TOKEN_SCALAR: return "SCALAR";
    case PG_QUERY_TOKEN_SCHEMA: return "SCHEMA";
    case PG_QUERY_TOKEN_SCHEMAS: return "SCHEMAS";
    case PG_QUERY_TOKEN_SCROLL: return "SCROLL";
    case PG_QUERY_TOKEN_SEARCH: return "SEARCH";
    case PG_QUERY_TOKEN_SECOND_P: return "SECOND_P";
    case PG_QUERY_TOKEN_SECURITY: return "SECURITY";
    case PG_QUERY_TOKEN_SELECT: return "SELECT";
    case PG_QUERY_TOKEN_SEQUENCE: return "SEQUENCE";
    case PG_QUERY_TOKEN_SEQUENCES: return "SEQUENCES";
    case PG_QUERY_TOKEN_SERIALIZABLE: return "SERIALIZABLE";
    case PG_QUERY_TOKEN_SERVER: return "SERVER";
    case PG_QUERY_TOKEN_SESSION: return "SESSION";
    case PG_QUERY_TOKEN_SESSION_USER: return "SESSION_USER";
    case PG_QUERY_TOKEN_SET: return "SET";
    case PG_QUERY_TOKEN_SETS: return "SETS";
    case PG_QUERY_TOKEN_SETOF: return "SETOF";
    case PG_QUERY_TOKEN_SHARE: return "SHARE";
    case PG_QUERY_TOKEN_SHOW: return "SHOW";
    case PG_QUERY_TOKEN_SIMILAR: return "SIMILAR";
    case PG_QUERY_TOKEN_SIMPLE: return "SIMPLE";
    case PG_QUERY_TOKEN_SKIP: return "SKIP";
    case PG_QUERY_TOKEN_SMALLINT: return "SMALLINT";
    case PG_QUERY_TOKEN_SNAPSHOT: return "SNAPSHOT";
    case PG_QUERY_TOKEN_SOME: return "SOME";
    case PG_QUERY_TOKEN_SOURCE: return "SOURCE";
    case PG_QUERY_TOKEN_SQL_P: return "SQL_P";
    case PG_QUERY_TOKEN_STABLE: return "STABLE";
    case PG_QUERY_TOKEN_STANDALONE_P: return "STANDALONE_P";
    case PG_QUERY_TOKEN_START: return "START";
    case PG_QUERY_TOKEN_STATEMENT: return "STATEMENT";
    case PG_QUERY_TOKEN_STATISTICS: return "STATISTICS";
    case PG_QUERY_TOKEN_STDIN: return "STDIN";
    case PG_QUERY_TOKEN_STDOUT: return "STDOUT";
    case PG_QUERY_TOKEN_STORAGE: return "STORAGE";
    case PG_QUERY_TOKEN_STORED: return "STORED";
    case PG_QUERY_TOKEN_STRICT_P: return "STRICT_P";
    case PG_QUERY_TOKEN_STRING_P: return "STRING_P";
    case PG_QUERY_TOKEN_STRIP_P: return "STRIP_P";
    case PG_QUERY_TOKEN_SUBSCRIPTION: return "SUBSCRIPTION";
    case PG_QUERY_TOKEN_SUBSTRING: return "SUBSTRING";
    case PG_QUERY_TOKEN_SUPPORT: return "SUPPORT";
    case PG_QUERY_TOKEN_SYMMETRIC: return "SYMMETRIC";
    case PG_QUERY_TOKEN_SYSID: return "SYSID";
    case PG_QUERY_TOKEN_SYSTEM_P: return "SYSTEM_P";
    case PG_QUERY_TOKEN_SYSTEM_USER: return "SYSTEM_USER";
    case PG_QUERY_TOKEN_TABLE: return "TABLE";
    case PG_QUERY_TOKEN_TABLES: return "TABLES";
    case PG_QUERY_TOKEN_TABLESAMPLE: return "TABLESAMPLE";
    case PG_QUERY_TOKEN_TABLESPACE: return "TABLESPACE";
    case PG_QUERY_TOKEN_TARGET: return "TARGET";
    case PG_QUERY_TOKEN_TEMP: return "TEMP";
    case PG_QUERY_TOKEN_TEMPLATE: return "TEMPLATE";
    case PG_QUERY_TOKEN_TEMPORARY: return "TEMPORARY";
    case PG_QUERY_TOKEN_TEXT_P: return "TEXT_P";
    case PG_QUERY_TOKEN_THEN: return "THEN";
    case PG_QUERY_TOKEN_TIES: return "TIES";
    case PG_QUERY_TOKEN_TIME: return "TIME";
    case PG_QUERY_TOKEN_TIMESTAMP: return "TIMESTAMP";
    case PG_QUERY_TOKEN_TO: return "TO";
    case PG_QUERY_TOKEN_TRAILING: return "TRAILING";
    case PG_QUERY_TOKEN_TRANSACTION: return "TRANSACTION";
    case PG_QUERY_TOKEN_TRANSFORM: return "TRANSFORM";
    case PG_QUERY_TOKEN_TREAT: return "TREAT";
    case PG_QUERY_TOKEN_TRIGGER: return "TRIGGER";
    case PG_QUERY_TOKEN_TRIM: return "TRIM";
    case PG_QUERY_TOKEN_TRUE_P: return "TRUE_P";
    case PG_QUERY_TOKEN_TRUNCATE: return "TRUNCATE";
    case PG_QUERY_TOKEN_TRUSTED: return "TRUSTED";
    case PG_QUERY_TOKEN_TYPE_P: return "TYPE_P";
    case PG_QUERY_TOKEN_TYPES_P: return "TYPES_P";
    case PG_QUERY_TOKEN_UESCAPE: return "UESCAPE";
    case PG_QUERY_TOKEN_UNBOUNDED: return "UNBOUNDED";
    case PG_QUERY_TOKEN_UNCONDITIONAL: return "UNCONDITIONAL";
    case PG_QUERY_TOKEN_UNCOMMITTED: return "UNCOMMITTED";
    case PG_QUERY_TOKEN_UNENCRYPTED: return "UNENCRYPTED";
    case PG_QUERY_TOKEN_UNION: return "UNION";
    case PG_QUERY_TOKEN_UNIQUE: return "UNIQUE";
    case PG_QUERY_TOKEN_UNKNOWN: return "UNKNOWN";
    case PG_QUERY_TOKEN_UNLISTEN: return "UNLISTEN";
    case PG_QUERY_TOKEN_UNLOGGED: return "UNLOGGED";
    case PG_QUERY_TOKEN_UNTIL: return "UNTIL";
    case PG_QUERY_TOKEN_UPDATE: return "UPDATE";
    case PG_QUERY_TOKEN_USER: return "USER";
    case PG_QUERY_TOKEN_USING: return "USING";
    case PG_QUERY_TOKEN_VACUUM: return "VACUUM";
    case PG_QUERY_TOKEN_VALID: return "VALID";
    case PG_QUERY_TOKEN_VALIDATE: return "VALIDATE";
    case PG_QUERY_TOKEN_VALIDATOR: return "VALIDATOR";
    case PG_QUERY_TOKEN_VALUE_P: return "VALUE_P";
    case PG_QUERY_TOKEN_VALUES: return "VALUES";
    case PG_QUERY_TOKEN_VARCHAR: return "VARCHAR";
    case PG_QUERY_TOKEN_VARIADIC: return "VARIADIC";
    case PG_QUERY_TOKEN_VARYING: return "VARYING";
    case PG_QUERY_TOKEN_VERBOSE: return "VERBOSE";
    case PG_QUERY_TOKEN_VERSION_P: return "VERSION_P";
    case PG_QUERY_TOKEN_VIEW: return "VIEW";
    case PG_QUERY_TOKEN_VIEWS: return "VIEWS";
    case PG_QUERY_TOKEN_VIRTUAL: return "VIRTUAL";
    case PG_QUERY_TOKEN_VOLATILE: return "VOLATILE";
    case PG_QUERY_TOKEN_WHEN: return "WHEN";
    case PG_QUERY_TOKEN_WHERE: return "WHERE";
    case PG_QUERY_TOKEN_WHITESPACE_P: return "WHITESPACE_P";
    case PG_QUERY_TOKEN_WINDOW: return "WINDOW";
    case PG_QUERY_TOKEN_WITH: return "WITH";
    case PG_QUERY_TOKEN_WITHIN: return "WITHIN";
    case PG_QUERY_TOKEN_WITHOUT: return "WITHOUT";
    case PG_QUERY_TOKEN_WORK: return "WORK";
    case PG_QUERY_TOKEN_WRAPPER: return "WRAPPER";
    case PG_QUERY_TOKEN_WRITE: return "WRITE";
    case PG_QUERY_TOKEN_XML_P: return "XML_P";
    case PG_QUERY_TOKEN_XMLATTRIBUTES: return "XMLATTRIBUTES";
    case PG_QUERY_TOKEN_XMLCONCAT: return "XMLCONCAT";
    case PG_QUERY_TOKEN_XMLELEMENT: return "XMLELEMENT";
    case PG_QUERY_TOKEN_XMLEXISTS: return "XMLEXISTS";
    case PG_QUERY_TOKEN_XMLFOREST: return "XMLFOREST";
    case PG_QUERY_TOKEN_XMLNAMESPACES: return "XMLNAMESPACES";
    case PG_QUERY_TOKEN_XMLPARSE: return "XMLPARSE";
    case PG_QUERY_TOKEN_XMLPI: return "XMLPI";
    case PG_QUERY_TOKEN_XMLROOT: return "XMLROOT";
    case PG_QUERY_TOKEN_XMLSERIALIZE: return "XMLSERIALIZE";
    case PG_QUERY_TOKEN_XMLTABLE: return "XMLTABLE";
    case PG_QUERY_TOKEN_YEAR_P: return "YEAR_P";
    case PG_QUERY_TOKEN_YES_P: return "YES_P";
    case PG_QUERY_TOKEN_ZONE: return "ZONE";
    case PG_QUERY_TOKEN_FORMAT_LA: return "FORMAT_LA";
    case PG_QUERY_TOKEN_NOT_LA: return "NOT_LA";
    case PG_QUERY_TOKEN_NULLS_LA: return "NULLS_LA";
    case PG_QUERY_TOKEN_WITH_LA: return "WITH_LA";
    case PG_QUERY_TOKEN_WITHOUT_LA: return "WITHOUT_LA";
    case PG_QUERY_TOKEN_MODE_TYPE_NAME: return "MODE_TYPE_NAME";
    case PG_QUERY_TOKEN_MODE_PLPGSQL_EXPR: return "MODE_PLPGSQL_EXPR";
    case PG_QUERY_TOKEN_MODE_PLPGSQL_ASSIGN1: return "MODE_PLPGSQL_ASSIGN1";
    case PG_QUERY_TOKEN_MODE_PLPGSQL_ASSIGN2: return "MODE_PLPGSQL_ASSIGN2";
    case PG_QUERY_TOKEN_MODE_PLPGSQL_ASSIGN3: return "MODE_PLPGSQL_ASSIGN3";
    case PG_QUERY_TOKEN_UMINUS: return "UMINUS";
  }
  return NULL;
}