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_GRAM_H_INCLUDED
38 # define YY_BASE_YY_GRAM_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     IDENT = 258,
53     UIDENT = 259,
54     FCONST = 260,
55     SCONST = 261,
56     USCONST = 262,
57     BCONST = 263,
58     XCONST = 264,
59     Op = 265,
60     ICONST = 266,
61     PARAM = 267,
62     TYPECAST = 268,
63     DOT_DOT = 269,
64     COLON_EQUALS = 270,
65     EQUALS_GREATER = 271,
66     LESS_EQUALS = 272,
67     GREATER_EQUALS = 273,
68     NOT_EQUALS = 274,
69     ABORT_P = 275,
70     ABSOLUTE_P = 276,
71     ACCESS = 277,
72     ACTION = 278,
73     ADD_P = 279,
74     ADMIN = 280,
75     AFTER = 281,
76     AGGREGATE = 282,
77     ALL = 283,
78     ALSO = 284,
79     ALTER = 285,
80     ALWAYS = 286,
81     ANALYSE = 287,
82     ANALYZE = 288,
83     AND = 289,
84     ANY = 290,
85     ARRAY = 291,
86     AS = 292,
87     ASC = 293,
88     ASENSITIVE = 294,
89     ASSERTION = 295,
90     ASSIGNMENT = 296,
91     ASYMMETRIC = 297,
92     ATOMIC = 298,
93     AT = 299,
94     ATTACH = 300,
95     ATTRIBUTE = 301,
96     AUTHORIZATION = 302,
97     BACKWARD = 303,
98     BEFORE = 304,
99     BEGIN_P = 305,
100     BETWEEN = 306,
101     BIGINT = 307,
102     BINARY = 308,
103     BIT = 309,
104     BOOLEAN_P = 310,
105     BOTH = 311,
106     BREADTH = 312,
107     BY = 313,
108     CACHE = 314,
109     CALL = 315,
110     CALLED = 316,
111     CASCADE = 317,
112     CASCADED = 318,
113     CASE = 319,
114     CAST = 320,
115     CATALOG_P = 321,
116     CHAIN = 322,
117     CHAR_P = 323,
118     CHARACTER = 324,
119     CHARACTERISTICS = 325,
120     CHECK = 326,
121     CHECKPOINT = 327,
122     CLASS = 328,
123     CLOSE = 329,
124     CLUSTER = 330,
125     COALESCE = 331,
126     COLLATE = 332,
127     COLLATION = 333,
128     COLUMN = 334,
129     COLUMNS = 335,
130     COMMENT = 336,
131     COMMENTS = 337,
132     COMMIT = 338,
133     COMMITTED = 339,
134     COMPRESSION = 340,
135     CONCURRENTLY = 341,
136     CONFIGURATION = 342,
137     CONFLICT = 343,
138     CONNECTION = 344,
139     CONSTRAINT = 345,
140     CONSTRAINTS = 346,
141     CONTENT_P = 347,
142     CONTINUE_P = 348,
143     CONVERSION_P = 349,
144     COPY = 350,
145     COST = 351,
146     CREATE = 352,
147     CROSS = 353,
148     CSV = 354,
149     CUBE = 355,
150     CURRENT_P = 356,
151     CURRENT_CATALOG = 357,
152     CURRENT_DATE = 358,
153     CURRENT_ROLE = 359,
154     CURRENT_SCHEMA = 360,
155     CURRENT_TIME = 361,
156     CURRENT_TIMESTAMP = 362,
157     CURRENT_USER = 363,
158     CURSOR = 364,
159     CYCLE = 365,
160     DATA_P = 366,
161     DATABASE = 367,
162     DAY_P = 368,
163     DEALLOCATE = 369,
164     DEC = 370,
165     DECIMAL_P = 371,
166     DECLARE = 372,
167     DEFAULT = 373,
168     DEFAULTS = 374,
169     DEFERRABLE = 375,
170     DEFERRED = 376,
171     DEFINER = 377,
172     DELETE_P = 378,
173     DELIMITER = 379,
174     DELIMITERS = 380,
175     DEPENDS = 381,
176     DEPTH = 382,
177     DESC = 383,
178     DETACH = 384,
179     DICTIONARY = 385,
180     DISABLE_P = 386,
181     DISCARD = 387,
182     DISTINCT = 388,
183     DO = 389,
184     DOCUMENT_P = 390,
185     DOMAIN_P = 391,
186     DOUBLE_P = 392,
187     DROP = 393,
188     EACH = 394,
189     ELSE = 395,
190     ENABLE_P = 396,
191     ENCODING = 397,
192     ENCRYPTED = 398,
193     END_P = 399,
194     ENUM_P = 400,
195     ESCAPE = 401,
196     EVENT = 402,
197     EXCEPT = 403,
198     EXCLUDE = 404,
199     EXCLUDING = 405,
200     EXCLUSIVE = 406,
201     EXECUTE = 407,
202     EXISTS = 408,
203     EXPLAIN = 409,
204     EXPRESSION = 410,
205     EXTENSION = 411,
206     EXTERNAL = 412,
207     EXTRACT = 413,
208     FALSE_P = 414,
209     FAMILY = 415,
210     FETCH = 416,
211     FILTER = 417,
212     FINALIZE = 418,
213     FIRST_P = 419,
214     FLOAT_P = 420,
215     FOLLOWING = 421,
216     FOR = 422,
217     FORCE = 423,
218     FOREIGN = 424,
219     FORWARD = 425,
220     FREEZE = 426,
221     FROM = 427,
222     FULL = 428,
223     FUNCTION = 429,
224     FUNCTIONS = 430,
225     GENERATED = 431,
226     GLOBAL = 432,
227     GRANT = 433,
228     GRANTED = 434,
229     GREATEST = 435,
230     GROUP_P = 436,
231     GROUPING = 437,
232     GROUPS = 438,
233     HANDLER = 439,
234     HAVING = 440,
235     HEADER_P = 441,
236     HOLD = 442,
237     HOUR_P = 443,
238     IDENTITY_P = 444,
239     IF_P = 445,
240     ILIKE = 446,
241     IMMEDIATE = 447,
242     IMMUTABLE = 448,
243     IMPLICIT_P = 449,
244     IMPORT_P = 450,
245     IN_P = 451,
246     INCLUDE = 452,
247     INCLUDING = 453,
248     INCREMENT = 454,
249     INDEX = 455,
250     INDEXES = 456,
251     INHERIT = 457,
252     INHERITS = 458,
253     INITIALLY = 459,
254     INLINE_P = 460,
255     INNER_P = 461,
256     INOUT = 462,
257     INPUT_P = 463,
258     INSENSITIVE = 464,
259     INSERT = 465,
260     INSTEAD = 466,
261     INT_P = 467,
262     INTEGER = 468,
263     INTERSECT = 469,
264     INTERVAL = 470,
265     INTO = 471,
266     INVOKER = 472,
267     IS = 473,
268     ISNULL = 474,
269     ISOLATION = 475,
270     JOIN = 476,
271     KEY = 477,
272     LABEL = 478,
273     LANGUAGE = 479,
274     LARGE_P = 480,
275     LAST_P = 481,
276     LATERAL_P = 482,
277     LEADING = 483,
278     LEAKPROOF = 484,
279     LEAST = 485,
280     LEFT = 486,
281     LEVEL = 487,
282     LIKE = 488,
283     LIMIT = 489,
284     LISTEN = 490,
285     LOAD = 491,
286     LOCAL = 492,
287     LOCALTIME = 493,
288     LOCALTIMESTAMP = 494,
289     LOCATION = 495,
290     LOCK_P = 496,
291     LOCKED = 497,
292     LOGGED = 498,
293     MAPPING = 499,
294     MATCH = 500,
295     MATERIALIZED = 501,
296     MAXVALUE = 502,
297     METHOD = 503,
298     MINUTE_P = 504,
299     MINVALUE = 505,
300     MODE = 506,
301     MONTH_P = 507,
302     MOVE = 508,
303     NAME_P = 509,
304     NAMES = 510,
305     NATIONAL = 511,
306     NATURAL = 512,
307     NCHAR = 513,
308     NEW = 514,
309     NEXT = 515,
310     NFC = 516,
311     NFD = 517,
312     NFKC = 518,
313     NFKD = 519,
314     NO = 520,
315     NONE = 521,
316     NORMALIZE = 522,
317     NORMALIZED = 523,
318     NOT = 524,
319     NOTHING = 525,
320     NOTIFY = 526,
321     NOTNULL = 527,
322     NOWAIT = 528,
323     NULL_P = 529,
324     NULLIF = 530,
325     NULLS_P = 531,
326     NUMERIC = 532,
327     OBJECT_P = 533,
328     OF = 534,
329     OFF = 535,
330     OFFSET = 536,
331     OIDS = 537,
332     OLD = 538,
333     ON = 539,
334     ONLY = 540,
335     OPERATOR = 541,
336     OPTION = 542,
337     OPTIONS = 543,
338     OR = 544,
339     ORDER = 545,
340     ORDINALITY = 546,
341     OTHERS = 547,
342     OUT_P = 548,
343     OUTER_P = 549,
344     OVER = 550,
345     OVERLAPS = 551,
346     OVERLAY = 552,
347     OVERRIDING = 553,
348     OWNED = 554,
349     OWNER = 555,
350     PARALLEL = 556,
351     PARSER = 557,
352     PARTIAL = 558,
353     PARTITION = 559,
354     PASSING = 560,
355     PASSWORD = 561,
356     PLACING = 562,
357     PLANS = 563,
358     POLICY = 564,
359     POSITION = 565,
360     PRECEDING = 566,
361     PRECISION = 567,
362     PRESERVE = 568,
363     PREPARE = 569,
364     PREPARED = 570,
365     PRIMARY = 571,
366     PRIOR = 572,
367     PRIVILEGES = 573,
368     PROCEDURAL = 574,
369     PROCEDURE = 575,
370     PROCEDURES = 576,
371     PROGRAM = 577,
372     PUBLICATION = 578,
373     QUOTE = 579,
374     RANGE = 580,
375     READ = 581,
376     REAL = 582,
377     REASSIGN = 583,
378     RECHECK = 584,
379     RECURSIVE = 585,
380     REF = 586,
381     REFERENCES = 587,
382     REFERENCING = 588,
383     REFRESH = 589,
384     REINDEX = 590,
385     RELATIVE_P = 591,
386     RELEASE = 592,
387     RENAME = 593,
388     REPEATABLE = 594,
389     REPLACE = 595,
390     REPLICA = 596,
391     RESET = 597,
392     RESTART = 598,
393     RESTRICT = 599,
394     RETURN = 600,
395     RETURNING = 601,
396     RETURNS = 602,
397     REVOKE = 603,
398     RIGHT = 604,
399     ROLE = 605,
400     ROLLBACK = 606,
401     ROLLUP = 607,
402     ROUTINE = 608,
403     ROUTINES = 609,
404     ROW = 610,
405     ROWS = 611,
406     RULE = 612,
407     SAVEPOINT = 613,
408     SCHEMA = 614,
409     SCHEMAS = 615,
410     SCROLL = 616,
411     SEARCH = 617,
412     SECOND_P = 618,
413     SECURITY = 619,
414     SELECT = 620,
415     SEQUENCE = 621,
416     SEQUENCES = 622,
417     SERIALIZABLE = 623,
418     SERVER = 624,
419     SESSION = 625,
420     SESSION_USER = 626,
421     SET = 627,
422     SETS = 628,
423     SETOF = 629,
424     SHARE = 630,
425     SHOW = 631,
426     SIMILAR = 632,
427     SIMPLE = 633,
428     SKIP = 634,
429     SMALLINT = 635,
430     SNAPSHOT = 636,
431     SOME = 637,
432     SQL_P = 638,
433     STABLE = 639,
434     STANDALONE_P = 640,
435     START = 641,
436     STATEMENT = 642,
437     STATISTICS = 643,
438     STDIN = 644,
439     STDOUT = 645,
440     STORAGE = 646,
441     STORED = 647,
442     STRICT_P = 648,
443     STRIP_P = 649,
444     SUBSCRIPTION = 650,
445     SUBSTRING = 651,
446     SUPPORT = 652,
447     SYMMETRIC = 653,
448     SYSID = 654,
449     SYSTEM_P = 655,
450     TABLE = 656,
451     TABLES = 657,
452     TABLESAMPLE = 658,
453     TABLESPACE = 659,
454     TEMP = 660,
455     TEMPLATE = 661,
456     TEMPORARY = 662,
457     TEXT_P = 663,
458     THEN = 664,
459     TIES = 665,
460     TIME = 666,
461     TIMESTAMP = 667,
462     TO = 668,
463     TRAILING = 669,
464     TRANSACTION = 670,
465     TRANSFORM = 671,
466     TREAT = 672,
467     TRIGGER = 673,
468     TRIM = 674,
469     TRUE_P = 675,
470     TRUNCATE = 676,
471     TRUSTED = 677,
472     TYPE_P = 678,
473     TYPES_P = 679,
474     UESCAPE = 680,
475     UNBOUNDED = 681,
476     UNCOMMITTED = 682,
477     UNENCRYPTED = 683,
478     UNION = 684,
479     UNIQUE = 685,
480     UNKNOWN = 686,
481     UNLISTEN = 687,
482     UNLOGGED = 688,
483     UNTIL = 689,
484     UPDATE = 690,
485     USER = 691,
486     USING = 692,
487     VACUUM = 693,
488     VALID = 694,
489     VALIDATE = 695,
490     VALIDATOR = 696,
491     VALUE_P = 697,
492     VALUES = 698,
493     VARCHAR = 699,
494     VARIADIC = 700,
495     VARYING = 701,
496     VERBOSE = 702,
497     VERSION_P = 703,
498     VIEW = 704,
499     VIEWS = 705,
500     VOLATILE = 706,
501     WHEN = 707,
502     WHERE = 708,
503     WHITESPACE_P = 709,
504     WINDOW = 710,
505     WITH = 711,
506     WITHIN = 712,
507     WITHOUT = 713,
508     WORK = 714,
509     WRAPPER = 715,
510     WRITE = 716,
511     XML_P = 717,
512     XMLATTRIBUTES = 718,
513     XMLCONCAT = 719,
514     XMLELEMENT = 720,
515     XMLEXISTS = 721,
516     XMLFOREST = 722,
517     XMLNAMESPACES = 723,
518     XMLPARSE = 724,
519     XMLPI = 725,
520     XMLROOT = 726,
521     XMLSERIALIZE = 727,
522     XMLTABLE = 728,
523     YEAR_P = 729,
524     YES_P = 730,
525     ZONE = 731,
526     NOT_LA = 732,
527     NULLS_LA = 733,
528     WITH_LA = 734,
529     MODE_TYPE_NAME = 735,
530     MODE_PLPGSQL_EXPR = 736,
531     MODE_PLPGSQL_ASSIGN1 = 737,
532     MODE_PLPGSQL_ASSIGN2 = 738,
533     MODE_PLPGSQL_ASSIGN3 = 739,
534     UMINUS = 740
535   };
536 #endif
537 
538 /* Value type.  */
539 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
540 
541 union YYSTYPE
542 {
543 #line 217 "gram.y" /* yacc.c:1921  */
544 
545 	core_YYSTYPE		core_yystype;
546 	/* these fields must match core_YYSTYPE: */
547 	int					ival;
548 	char				*str;
549 	const char			*keyword;
550 
551 	char				chr;
552 	bool				boolean;
553 	JoinType			jtype;
554 	DropBehavior		dbehavior;
555 	OnCommitAction		oncommit;
556 	List				*list;
557 	Node				*node;
558 	Value				*value;
559 	ObjectType			objtype;
560 	TypeName			*typnam;
561 	FunctionParameter   *fun_param;
562 	FunctionParameterMode fun_param_mode;
563 	ObjectWithArgs		*objwithargs;
564 	DefElem				*defelt;
565 	SortBy				*sortby;
566 	WindowDef			*windef;
567 	JoinExpr			*jexpr;
568 	IndexElem			*ielem;
569 	StatsElem			*selem;
570 	Alias				*alias;
571 	RangeVar			*range;
572 	IntoClause			*into;
573 	WithClause			*with;
574 	InferClause			*infer;
575 	OnConflictClause	*onconflict;
576 	A_Indices			*aind;
577 	ResTarget			*target;
578 	struct PrivTarget	*privtarget;
579 	AccessPriv			*accesspriv;
580 	struct ImportQual	*importqual;
581 	InsertStmt			*istmt;
582 	VariableSetStmt		*vsetstmt;
583 	PartitionElem		*partelem;
584 	PartitionSpec		*partspec;
585 	PartitionBoundSpec	*partboundspec;
586 	RoleSpec			*rolespec;
587 	struct SelectLimit	*selectlimit;
588 	SetQuantifier	 setquantifier;
589 	struct GroupClause  *groupclause;
590 
591 #line 592 "gram.h" /* yacc.c:1921  */
592 };
593 
594 typedef union YYSTYPE YYSTYPE;
595 # define YYSTYPE_IS_TRIVIAL 1
596 # define YYSTYPE_IS_DECLARED 1
597 #endif
598 
599 /* Location type.  */
600 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
601 typedef struct YYLTYPE YYLTYPE;
602 struct YYLTYPE
603 {
604   int first_line;
605   int first_column;
606   int last_line;
607   int last_column;
608 };
609 # define YYLTYPE_IS_DECLARED 1
610 # define YYLTYPE_IS_TRIVIAL 1
611 #endif
612 
613 
614 
615 int base_yyparse (core_yyscan_t yyscanner);
616 
617 #endif /* !YY_BASE_YY_GRAM_H_INCLUDED  */
618