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