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