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