1 /* A Bison parser, made by GNU Bison 3.3.2.  */
2 
3 /* Bison interface for Yacc-like parsers in C
4 
5    Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
6    Inc.
7 
8    This program is free software: you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation, either version 3 of the License, or
11    (at your option) any later version.
12 
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17 
18    You should have received a copy of the GNU General Public License
19    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
20 
21 /* As a special exception, you may create a larger work that contains
22    part or all of the Bison parser skeleton and distribute that work
23    under terms of your choice, so long as that work isn't itself a
24    parser generator using the skeleton or a modified version thereof
25    as a parser skeleton.  Alternatively, if you modify or redistribute
26    the parser skeleton itself, you may (at your option) remove this
27    special exception, which will cause the skeleton and the resulting
28    Bison output files to be licensed under the GNU General Public
29    License without this special exception.
30 
31    This special exception was added by the Free Software Foundation in
32    version 2.2 of Bison.  */
33 
34 /* Undocumented macros, especially those whose name start with YY_,
35    are private implementation details.  Do not rely on them.  */
36 
37 #ifndef YY_BASE_YY_PREPROC_H_INCLUDED
38 # define YY_BASE_YY_PREPROC_H_INCLUDED
39 /* Debug traces.  */
40 #ifndef YYDEBUG
41 # define YYDEBUG 0
42 #endif
43 #if YYDEBUG
44 extern int base_yydebug;
45 #endif
46 
47 /* Token type.  */
48 #ifndef YYTOKENTYPE
49 # define YYTOKENTYPE
50   enum yytokentype
51   {
52     SQL_ALLOCATE = 258,
53     SQL_AUTOCOMMIT = 259,
54     SQL_BOOL = 260,
55     SQL_BREAK = 261,
56     SQL_CARDINALITY = 262,
57     SQL_CONNECT = 263,
58     SQL_COUNT = 264,
59     SQL_DATETIME_INTERVAL_CODE = 265,
60     SQL_DATETIME_INTERVAL_PRECISION = 266,
61     SQL_DESCRIBE = 267,
62     SQL_DESCRIPTOR = 268,
63     SQL_DISCONNECT = 269,
64     SQL_FOUND = 270,
65     SQL_FREE = 271,
66     SQL_GET = 272,
67     SQL_GO = 273,
68     SQL_GOTO = 274,
69     SQL_IDENTIFIED = 275,
70     SQL_INDICATOR = 276,
71     SQL_KEY_MEMBER = 277,
72     SQL_LENGTH = 278,
73     SQL_LONG = 279,
74     SQL_NULLABLE = 280,
75     SQL_OCTET_LENGTH = 281,
76     SQL_OPEN = 282,
77     SQL_OUTPUT = 283,
78     SQL_REFERENCE = 284,
79     SQL_RETURNED_LENGTH = 285,
80     SQL_RETURNED_OCTET_LENGTH = 286,
81     SQL_SCALE = 287,
82     SQL_SECTION = 288,
83     SQL_SHORT = 289,
84     SQL_SIGNED = 290,
85     SQL_SQLERROR = 291,
86     SQL_SQLPRINT = 292,
87     SQL_SQLWARNING = 293,
88     SQL_START = 294,
89     SQL_STOP = 295,
90     SQL_STRUCT = 296,
91     SQL_UNSIGNED = 297,
92     SQL_VAR = 298,
93     SQL_WHENEVER = 299,
94     S_ADD = 300,
95     S_AND = 301,
96     S_ANYTHING = 302,
97     S_AUTO = 303,
98     S_CONST = 304,
99     S_DEC = 305,
100     S_DIV = 306,
101     S_DOTPOINT = 307,
102     S_EQUAL = 308,
103     S_EXTERN = 309,
104     S_INC = 310,
105     S_LSHIFT = 311,
106     S_MEMPOINT = 312,
107     S_MEMBER = 313,
108     S_MOD = 314,
109     S_MUL = 315,
110     S_NEQUAL = 316,
111     S_OR = 317,
112     S_REGISTER = 318,
113     S_RSHIFT = 319,
114     S_STATIC = 320,
115     S_SUB = 321,
116     S_VOLATILE = 322,
117     S_TYPEDEF = 323,
118     CSTRING = 324,
119     CVARIABLE = 325,
120     CPP_LINE = 326,
121     IP = 327,
122     IDENT = 328,
123     UIDENT = 329,
124     FCONST = 330,
125     SCONST = 331,
126     USCONST = 332,
127     BCONST = 333,
128     XCONST = 334,
129     Op = 335,
130     ICONST = 336,
131     PARAM = 337,
132     TYPECAST = 338,
133     DOT_DOT = 339,
134     COLON_EQUALS = 340,
135     EQUALS_GREATER = 341,
136     LESS_EQUALS = 342,
137     GREATER_EQUALS = 343,
138     NOT_EQUALS = 344,
139     ABORT_P = 345,
140     ABSOLUTE_P = 346,
141     ACCESS = 347,
142     ACTION = 348,
143     ADD_P = 349,
144     ADMIN = 350,
145     AFTER = 351,
146     AGGREGATE = 352,
147     ALL = 353,
148     ALSO = 354,
149     ALTER = 355,
150     ALWAYS = 356,
151     ANALYSE = 357,
152     ANALYZE = 358,
153     AND = 359,
154     ANY = 360,
155     ARRAY = 361,
156     AS = 362,
157     ASC = 363,
158     ASENSITIVE = 364,
159     ASSERTION = 365,
160     ASSIGNMENT = 366,
161     ASYMMETRIC = 367,
162     ATOMIC = 368,
163     AT = 369,
164     ATTACH = 370,
165     ATTRIBUTE = 371,
166     AUTHORIZATION = 372,
167     BACKWARD = 373,
168     BEFORE = 374,
169     BEGIN_P = 375,
170     BETWEEN = 376,
171     BIGINT = 377,
172     BINARY = 378,
173     BIT = 379,
174     BOOLEAN_P = 380,
175     BOTH = 381,
176     BREADTH = 382,
177     BY = 383,
178     CACHE = 384,
179     CALL = 385,
180     CALLED = 386,
181     CASCADE = 387,
182     CASCADED = 388,
183     CASE = 389,
184     CAST = 390,
185     CATALOG_P = 391,
186     CHAIN = 392,
187     CHAR_P = 393,
188     CHARACTER = 394,
189     CHARACTERISTICS = 395,
190     CHECK = 396,
191     CHECKPOINT = 397,
192     CLASS = 398,
193     CLOSE = 399,
194     CLUSTER = 400,
195     COALESCE = 401,
196     COLLATE = 402,
197     COLLATION = 403,
198     COLUMN = 404,
199     COLUMNS = 405,
200     COMMENT = 406,
201     COMMENTS = 407,
202     COMMIT = 408,
203     COMMITTED = 409,
204     COMPRESSION = 410,
205     CONCURRENTLY = 411,
206     CONFIGURATION = 412,
207     CONFLICT = 413,
208     CONNECTION = 414,
209     CONSTRAINT = 415,
210     CONSTRAINTS = 416,
211     CONTENT_P = 417,
212     CONTINUE_P = 418,
213     CONVERSION_P = 419,
214     COPY = 420,
215     COST = 421,
216     CREATE = 422,
217     CROSS = 423,
218     CSV = 424,
219     CUBE = 425,
220     CURRENT_P = 426,
221     CURRENT_CATALOG = 427,
222     CURRENT_DATE = 428,
223     CURRENT_ROLE = 429,
224     CURRENT_SCHEMA = 430,
225     CURRENT_TIME = 431,
226     CURRENT_TIMESTAMP = 432,
227     CURRENT_USER = 433,
228     CURSOR = 434,
229     CYCLE = 435,
230     DATA_P = 436,
231     DATABASE = 437,
232     DAY_P = 438,
233     DEALLOCATE = 439,
234     DEC = 440,
235     DECIMAL_P = 441,
236     DECLARE = 442,
237     DEFAULT = 443,
238     DEFAULTS = 444,
239     DEFERRABLE = 445,
240     DEFERRED = 446,
241     DEFINER = 447,
242     DELETE_P = 448,
243     DELIMITER = 449,
244     DELIMITERS = 450,
245     DEPENDS = 451,
246     DEPTH = 452,
247     DESC = 453,
248     DETACH = 454,
249     DICTIONARY = 455,
250     DISABLE_P = 456,
251     DISCARD = 457,
252     DISTINCT = 458,
253     DO = 459,
254     DOCUMENT_P = 460,
255     DOMAIN_P = 461,
256     DOUBLE_P = 462,
257     DROP = 463,
258     EACH = 464,
259     ELSE = 465,
260     ENABLE_P = 466,
261     ENCODING = 467,
262     ENCRYPTED = 468,
263     END_P = 469,
264     ENUM_P = 470,
265     ESCAPE = 471,
266     EVENT = 472,
267     EXCEPT = 473,
268     EXCLUDE = 474,
269     EXCLUDING = 475,
270     EXCLUSIVE = 476,
271     EXECUTE = 477,
272     EXISTS = 478,
273     EXPLAIN = 479,
274     EXPRESSION = 480,
275     EXTENSION = 481,
276     EXTERNAL = 482,
277     EXTRACT = 483,
278     FALSE_P = 484,
279     FAMILY = 485,
280     FETCH = 486,
281     FILTER = 487,
282     FINALIZE = 488,
283     FIRST_P = 489,
284     FLOAT_P = 490,
285     FOLLOWING = 491,
286     FOR = 492,
287     FORCE = 493,
288     FOREIGN = 494,
289     FORWARD = 495,
290     FREEZE = 496,
291     FROM = 497,
292     FULL = 498,
293     FUNCTION = 499,
294     FUNCTIONS = 500,
295     GENERATED = 501,
296     GLOBAL = 502,
297     GRANT = 503,
298     GRANTED = 504,
299     GREATEST = 505,
300     GROUP_P = 506,
301     GROUPING = 507,
302     GROUPS = 508,
303     HANDLER = 509,
304     HAVING = 510,
305     HEADER_P = 511,
306     HOLD = 512,
307     HOUR_P = 513,
308     IDENTITY_P = 514,
309     IF_P = 515,
310     ILIKE = 516,
311     IMMEDIATE = 517,
312     IMMUTABLE = 518,
313     IMPLICIT_P = 519,
314     IMPORT_P = 520,
315     IN_P = 521,
316     INCLUDE = 522,
317     INCLUDING = 523,
318     INCREMENT = 524,
319     INDEX = 525,
320     INDEXES = 526,
321     INHERIT = 527,
322     INHERITS = 528,
323     INITIALLY = 529,
324     INLINE_P = 530,
325     INNER_P = 531,
326     INOUT = 532,
327     INPUT_P = 533,
328     INSENSITIVE = 534,
329     INSERT = 535,
330     INSTEAD = 536,
331     INT_P = 537,
332     INTEGER = 538,
333     INTERSECT = 539,
334     INTERVAL = 540,
335     INTO = 541,
336     INVOKER = 542,
337     IS = 543,
338     ISNULL = 544,
339     ISOLATION = 545,
340     JOIN = 546,
341     KEY = 547,
342     LABEL = 548,
343     LANGUAGE = 549,
344     LARGE_P = 550,
345     LAST_P = 551,
346     LATERAL_P = 552,
347     LEADING = 553,
348     LEAKPROOF = 554,
349     LEAST = 555,
350     LEFT = 556,
351     LEVEL = 557,
352     LIKE = 558,
353     LIMIT = 559,
354     LISTEN = 560,
355     LOAD = 561,
356     LOCAL = 562,
357     LOCALTIME = 563,
358     LOCALTIMESTAMP = 564,
359     LOCATION = 565,
360     LOCK_P = 566,
361     LOCKED = 567,
362     LOGGED = 568,
363     MAPPING = 569,
364     MATCH = 570,
365     MATERIALIZED = 571,
366     MAXVALUE = 572,
367     METHOD = 573,
368     MINUTE_P = 574,
369     MINVALUE = 575,
370     MODE = 576,
371     MONTH_P = 577,
372     MOVE = 578,
373     NAME_P = 579,
374     NAMES = 580,
375     NATIONAL = 581,
376     NATURAL = 582,
377     NCHAR = 583,
378     NEW = 584,
379     NEXT = 585,
380     NFC = 586,
381     NFD = 587,
382     NFKC = 588,
383     NFKD = 589,
384     NO = 590,
385     NONE = 591,
386     NORMALIZE = 592,
387     NORMALIZED = 593,
388     NOT = 594,
389     NOTHING = 595,
390     NOTIFY = 596,
391     NOTNULL = 597,
392     NOWAIT = 598,
393     NULL_P = 599,
394     NULLIF = 600,
395     NULLS_P = 601,
396     NUMERIC = 602,
397     OBJECT_P = 603,
398     OF = 604,
399     OFF = 605,
400     OFFSET = 606,
401     OIDS = 607,
402     OLD = 608,
403     ON = 609,
404     ONLY = 610,
405     OPERATOR = 611,
406     OPTION = 612,
407     OPTIONS = 613,
408     OR = 614,
409     ORDER = 615,
410     ORDINALITY = 616,
411     OTHERS = 617,
412     OUT_P = 618,
413     OUTER_P = 619,
414     OVER = 620,
415     OVERLAPS = 621,
416     OVERLAY = 622,
417     OVERRIDING = 623,
418     OWNED = 624,
419     OWNER = 625,
420     PARALLEL = 626,
421     PARSER = 627,
422     PARTIAL = 628,
423     PARTITION = 629,
424     PASSING = 630,
425     PASSWORD = 631,
426     PLACING = 632,
427     PLANS = 633,
428     POLICY = 634,
429     POSITION = 635,
430     PRECEDING = 636,
431     PRECISION = 637,
432     PRESERVE = 638,
433     PREPARE = 639,
434     PREPARED = 640,
435     PRIMARY = 641,
436     PRIOR = 642,
437     PRIVILEGES = 643,
438     PROCEDURAL = 644,
439     PROCEDURE = 645,
440     PROCEDURES = 646,
441     PROGRAM = 647,
442     PUBLICATION = 648,
443     QUOTE = 649,
444     RANGE = 650,
445     READ = 651,
446     REAL = 652,
447     REASSIGN = 653,
448     RECHECK = 654,
449     RECURSIVE = 655,
450     REF = 656,
451     REFERENCES = 657,
452     REFERENCING = 658,
453     REFRESH = 659,
454     REINDEX = 660,
455     RELATIVE_P = 661,
456     RELEASE = 662,
457     RENAME = 663,
458     REPEATABLE = 664,
459     REPLACE = 665,
460     REPLICA = 666,
461     RESET = 667,
462     RESTART = 668,
463     RESTRICT = 669,
464     RETURN = 670,
465     RETURNING = 671,
466     RETURNS = 672,
467     REVOKE = 673,
468     RIGHT = 674,
469     ROLE = 675,
470     ROLLBACK = 676,
471     ROLLUP = 677,
472     ROUTINE = 678,
473     ROUTINES = 679,
474     ROW = 680,
475     ROWS = 681,
476     RULE = 682,
477     SAVEPOINT = 683,
478     SCHEMA = 684,
479     SCHEMAS = 685,
480     SCROLL = 686,
481     SEARCH = 687,
482     SECOND_P = 688,
483     SECURITY = 689,
484     SELECT = 690,
485     SEQUENCE = 691,
486     SEQUENCES = 692,
487     SERIALIZABLE = 693,
488     SERVER = 694,
489     SESSION = 695,
490     SESSION_USER = 696,
491     SET = 697,
492     SETS = 698,
493     SETOF = 699,
494     SHARE = 700,
495     SHOW = 701,
496     SIMILAR = 702,
497     SIMPLE = 703,
498     SKIP = 704,
499     SMALLINT = 705,
500     SNAPSHOT = 706,
501     SOME = 707,
502     SQL_P = 708,
503     STABLE = 709,
504     STANDALONE_P = 710,
505     START = 711,
506     STATEMENT = 712,
507     STATISTICS = 713,
508     STDIN = 714,
509     STDOUT = 715,
510     STORAGE = 716,
511     STORED = 717,
512     STRICT_P = 718,
513     STRIP_P = 719,
514     SUBSCRIPTION = 720,
515     SUBSTRING = 721,
516     SUPPORT = 722,
517     SYMMETRIC = 723,
518     SYSID = 724,
519     SYSTEM_P = 725,
520     TABLE = 726,
521     TABLES = 727,
522     TABLESAMPLE = 728,
523     TABLESPACE = 729,
524     TEMP = 730,
525     TEMPLATE = 731,
526     TEMPORARY = 732,
527     TEXT_P = 733,
528     THEN = 734,
529     TIES = 735,
530     TIME = 736,
531     TIMESTAMP = 737,
532     TO = 738,
533     TRAILING = 739,
534     TRANSACTION = 740,
535     TRANSFORM = 741,
536     TREAT = 742,
537     TRIGGER = 743,
538     TRIM = 744,
539     TRUE_P = 745,
540     TRUNCATE = 746,
541     TRUSTED = 747,
542     TYPE_P = 748,
543     TYPES_P = 749,
544     UESCAPE = 750,
545     UNBOUNDED = 751,
546     UNCOMMITTED = 752,
547     UNENCRYPTED = 753,
548     UNION = 754,
549     UNIQUE = 755,
550     UNKNOWN = 756,
551     UNLISTEN = 757,
552     UNLOGGED = 758,
553     UNTIL = 759,
554     UPDATE = 760,
555     USER = 761,
556     USING = 762,
557     VACUUM = 763,
558     VALID = 764,
559     VALIDATE = 765,
560     VALIDATOR = 766,
561     VALUE_P = 767,
562     VALUES = 768,
563     VARCHAR = 769,
564     VARIADIC = 770,
565     VARYING = 771,
566     VERBOSE = 772,
567     VERSION_P = 773,
568     VIEW = 774,
569     VIEWS = 775,
570     VOLATILE = 776,
571     WHEN = 777,
572     WHERE = 778,
573     WHITESPACE_P = 779,
574     WINDOW = 780,
575     WITH = 781,
576     WITHIN = 782,
577     WITHOUT = 783,
578     WORK = 784,
579     WRAPPER = 785,
580     WRITE = 786,
581     XML_P = 787,
582     XMLATTRIBUTES = 788,
583     XMLCONCAT = 789,
584     XMLELEMENT = 790,
585     XMLEXISTS = 791,
586     XMLFOREST = 792,
587     XMLNAMESPACES = 793,
588     XMLPARSE = 794,
589     XMLPI = 795,
590     XMLROOT = 796,
591     XMLSERIALIZE = 797,
592     XMLTABLE = 798,
593     YEAR_P = 799,
594     YES_P = 800,
595     ZONE = 801,
596     NOT_LA = 802,
597     NULLS_LA = 803,
598     WITH_LA = 804,
599     MODE_TYPE_NAME = 805,
600     MODE_PLPGSQL_EXPR = 806,
601     MODE_PLPGSQL_ASSIGN1 = 807,
602     MODE_PLPGSQL_ASSIGN2 = 808,
603     MODE_PLPGSQL_ASSIGN3 = 809,
604     UMINUS = 810
605   };
606 #endif
607 
608 /* Value type.  */
609 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
610 
611 union YYSTYPE
612 {
613 #line 612 "preproc.y" /* yacc.c:1921  */
614 
615 	double	dval;
616 	char	*str;
617 	int		ival;
618 	struct	when		action;
619 	struct	index		index;
620 	int		tagname;
621 	struct	this_type	type;
622 	enum	ECPGttype	type_enum;
623 	enum	ECPGdtype	dtype_enum;
624 	struct	fetch_desc	descriptor;
625 	struct  su_symbol	struct_union;
626 	struct	prep		prep;
627 	struct	exec		exec;
628 	struct describe		describe;
629 
630 #line 631 "preproc.h" /* yacc.c:1921  */
631 };
632 
633 typedef union YYSTYPE YYSTYPE;
634 # define YYSTYPE_IS_TRIVIAL 1
635 # define YYSTYPE_IS_DECLARED 1
636 #endif
637 
638 /* Location type.  */
639 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
640 typedef struct YYLTYPE YYLTYPE;
641 struct YYLTYPE
642 {
643   int first_line;
644   int first_column;
645   int last_line;
646   int last_column;
647 };
648 # define YYLTYPE_IS_DECLARED 1
649 # define YYLTYPE_IS_TRIVIAL 1
650 #endif
651 
652 
653 extern YYSTYPE base_yylval;
654 extern YYLTYPE base_yylloc;
655 int base_yyparse (void);
656 
657 #endif /* !YY_BASE_YY_PREPROC_H_INCLUDED  */
658