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