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