1 #define YY_Parser_h_included
28 #if defined(_MSDOS) || defined(MSDOS) || defined(__MSDOS__)
29 #define __MSDOS_AND_ALIKE
31 #if defined(_WINDOWS) && defined(_MSC_VER)
32 #define __HAVE_NO_ALLOCA
33 #define __MSDOS_AND_ALIKE
38 #define alloca __builtin_alloca
40 #elif (!defined(__STDC__) && defined(sparc)) || defined(__sparc__) || \
41 defined(__sparc) || defined(__sgi)
44 #elif defined(__MSDOS_AND_ALIKE)
48 #define alloca _alloca
58 void* alloca(
unsigned int);
83 #define YY_Parser_CLASS SQLParser
84 #define YY_Parser_LVAL yylval
85 #define YY_Parser_CONSTRUCTOR_INIT : lexer(yylval)
86 #define YY_Parser_MEMBERS \
87 virtual ~SQLParser() {} \
88 int parse(const std::string& inputStrOrig, \
89 std::list<std::unique_ptr<Stmt>>& parseTrees, \
90 std::string& lastParsed) { \
91 auto inputStr = boost::algorithm::trim_right_copy_if( \
92 inputStrOrig, boost::is_any_of(";") || boost::is_space()) + \
94 boost::regex create_view_expr{ \
95 R"(CREATE\s+VIEW\s+(IF\s+NOT\s+EXISTS\s+)?([A-Za-z_][A-Za-z0-9\$_]*)\s+AS\s+(.*);?)", \
96 boost::regex::extended | boost::regex::icase}; \
97 std::lock_guard<std::mutex> lock(mutex_); \
99 const auto trimmed_input = boost::algorithm::trim_copy(inputStr); \
100 if (boost::regex_match( \
101 trimmed_input.cbegin(), trimmed_input.cend(), what, create_view_expr)) { \
102 const bool if_not_exists = what[1].length() > 0; \
103 const auto view_name = what[2].str(); \
104 const auto select_query = what[3].str(); \
105 parseTrees.emplace_back( \
106 new CreateViewStmt(view_name, select_query, if_not_exists)); \
109 std::istringstream ss(inputStr); \
110 lexer.switch_streams(&ss, 0); \
111 yyparse(parseTrees); \
112 lastParsed = lexer.YYText(); \
113 if (!errors_.empty()) { \
114 throw std::runtime_error(errors_[0]); \
122 std::vector<std::string> errors_;
123 #define YY_Parser_LEX_BODY \
124 { return lexer.yylex(); }
125 #define YY_Parser_ERROR_BODY \
129 #include <boost/algorithm/string/predicate.hpp>
130 #include <boost/algorithm/string/trim.hpp>
131 #include <boost/regex.hpp>
141 #include "Parser/FlexLexer.h"
154 using namespace Parser;
155 #define YY_Parser_PARSE_PARAM std::list<std::unique_ptr<Stmt>>& parseTrees
169 #define YY_Parser_STYPE yy_Parser_stype
176 std::vector<std::unique_ptr<TrackedListPtr<std::string>>> parsed_str_list_tokens_{};
177 std::vector<std::unique_ptr<TrackedPtr<Node>>> parsed_node_tokens_{};
178 std::vector<std::unique_ptr<TrackedListPtr<Node>>> parsed_node_list_tokens_{};
182 #define YY_Parser_BISON 1
183 #ifndef YY_Parser_COMPATIBILITY
185 #define YY_Parser_COMPATIBILITY 1
187 #define YY_Parser_COMPATIBILITY 0
191 #if YY_Parser_COMPATIBILITY != 0
194 #ifndef YY_Parser_LTYPE
195 #define YY_Parser_LTYPE YYLTYPE
199 #ifndef YY_Parser_STYPE
200 #define YY_Parser_STYPE YYSTYPE
204 #ifndef YY_Parser_DEBUG
205 #define YY_Parser_DEBUG YYDEBUG
208 #ifdef YY_Parser_STYPE
210 #define yystype YY_Parser_STYPE
214 #ifndef YY_Parser_USE_GOTO
215 #define YY_Parser_USE_GOTO 1
220 #ifndef YY_Parser_USE_GOTO
221 #define YY_Parser_USE_GOTO 0
224 #ifndef YY_Parser_PURE
232 #ifndef YY_Parser_DEBUG
237 #ifndef YY_Parser_LSP_NEEDED
243 #ifdef YY_Parser_LSP_NEEDED
244 #ifndef YY_Parser_LTYPE
245 typedef struct yyltype {
254 #define YY_Parser_LTYPE yyltype
262 #ifndef YY_Parser_STYPE
263 #define YY_Parser_STYPE int
266 #ifndef YY_Parser_PARSE
267 #define YY_Parser_PARSE yyparse
269 #ifndef YY_Parser_LEX
270 #define YY_Parser_LEX yylex
272 #ifndef YY_Parser_LVAL
273 #define YY_Parser_LVAL yylval
275 #ifndef YY_Parser_LLOC
276 #define YY_Parser_LLOC yylloc
278 #ifndef YY_Parser_CHAR
279 #define YY_Parser_CHAR yychar
281 #ifndef YY_Parser_NERRS
282 #define YY_Parser_NERRS yynerrs
284 #ifndef YY_Parser_DEBUG_FLAG
285 #define YY_Parser_DEBUG_FLAG yydebug
287 #ifndef YY_Parser_ERROR
288 #define YY_Parser_ERROR yyerror
290 #ifndef YY_Parser_PARSE_PARAM
294 #define YY_Parser_PARSE_PARAM
295 #ifndef YY_Parser_PARSE_PARAM_DEF
296 #define YY_Parser_PARSE_PARAM_DEF
301 #ifndef YY_Parser_PARSE_PARAM
302 #define YY_Parser_PARSE_PARAM void
305 #if YY_Parser_COMPATIBILITY != 0
307 #ifdef YY_Parser_LTYPE
309 #define YYLTYPE YY_Parser_LTYPE
315 #define YYSTYPE YY_Parser_STYPE
319 #ifdef YY_Parser_PURE
321 #define YYPURE YY_Parser_PURE
324 #ifdef YY_Parser_DEBUG
326 #define YYDEBUG YY_Parser_DEBUG
329 #ifndef YY_Parser_ERROR_VERBOSE
330 #ifdef YYERROR_VERBOSE
331 #define YY_Parser_ERROR_VERBOSE YYERROR_VERBOSE
334 #ifndef YY_Parser_LSP_NEEDED
336 #define YY_Parser_LSP_NEEDED YYLSP_NEEDED
344 #define DASHEDNAME 259
348 #define SELECTSTRING 263
349 #define QUOTED_IDENTIFIER 264
356 #define COMPARISON 271
367 #define AUTHORIZATION 282
374 #define CHAR_LENGTH 289
375 #define CHARACTER 290
387 #define DATAFRAME 302
390 #define DATE_TRUNC 305
396 #define DICTIONARY 311
412 #define GEOGRAPHY 327
429 #define LINESTRING 344
431 #define MULTIPOLYGON 346
440 #define OPTIMIZED 355
443 #define PARAMETER 358
446 #define PRECISION 361
448 #define PRIVILEGES 363
449 #define PROCEDURE 364
454 #define TEMPORARY 369
458 #define TIMESTAMP 373
465 #define REFERENCES 380
490 #define DASHBOARD 405
497 #ifndef YY_Parser_CLASS
498 #define YY_Parser_CLASS Parser
500 #ifndef YY_Parser_INHERIT
501 #define YY_Parser_INHERIT
503 #ifndef YY_Parser_MEMBERS
504 #define YY_Parser_MEMBERS
506 #ifndef YY_Parser_LEX_BODY
507 #define YY_Parser_LEX_BODY
509 #ifndef YY_Parser_ERROR_BODY
510 #define YY_Parser_ERROR_BODY
512 #ifndef YY_Parser_CONSTRUCTOR_PARAM
513 #define YY_Parser_CONSTRUCTOR_PARAM
515 #ifndef YY_Parser_CONSTRUCTOR_CODE
516 #define YY_Parser_CONSTRUCTOR_CODE
518 #ifndef YY_Parser_CONSTRUCTOR_INIT
519 #define YY_Parser_CONSTRUCTOR_INIT
522 #ifndef YY_Parser_USE_CONST_TOKEN
523 #define YY_Parser_USE_CONST_TOKEN 0
527 #if YY_Parser_USE_CONST_TOKEN != 0
528 #ifndef YY_Parser_ENUM_TOKEN
529 #define YY_Parser_ENUM_TOKEN yy_Parser_enum_token
535 #if YY_Parser_USE_CONST_TOKEN != 0
538 static const int NAME;
540 static const int EMAIL;
548 static const int AND;
549 static const int NOT;
550 static const int EQUAL;
553 static const int ADD;
554 static const int ALL;
555 static const int ALTER;
556 static const int AMMSC;
557 static const int ANY;
559 static const int ARRAY;
561 static const int ASC;
567 static const int CASE;
568 static const int CAST;
571 static const int CHECK;
572 static const int CLOSE;
577 static const int COPY;
583 static const int DATE;
590 static const int DESC;
594 static const int DROP;
595 static const int DUMP;
596 static const int ELSE;
597 static const int END;
600 static const int FETCH;
601 static const int FIRST;
602 static const int FLOAT;
603 static const int FOR;
605 static const int FOUND;
606 static const int FROM;
609 static const int GRANT;
610 static const int GROUP;
613 static const int ILIKE;
617 static const int INTO;
620 static const int LAST;
622 static const int LIKE;
623 static const int LIMIT;
625 static const int MOD;
627 static const int NOW;
628 static const int NULLX;
633 static const int OPEN;
637 static const int ORDER;
639 static const int POINT;
647 static const int SOME;
648 static const int TABLE;
650 static const int TEXT;
651 static const int THEN;
652 static const int TIME;
657 static const int UNION;
659 static const int REAL;
664 static const int ROLE;
668 static const int SET;
669 static const int SHARD;
671 static const int SHOW;
674 static const int USER;
677 static const int VIEW;
678 static const int WHEN;
680 static const int WHERE;
681 static const int WITH;
682 static const int WORK;
683 static const int EDIT;
686 static const int SQL;
691 enum YY_Parser_ENUM_TOKEN {
692 YY_Parser_NULL_TOKEN = 0
852 #ifdef YY_Parser_PURE
853 #ifdef YY_Parser_LSP_NEEDED
862 #ifdef YY_Parser_LSP_NEEDED
868 #if YY_Parser_DEBUG != 0
878 #if YY_Parser_USE_CONST_TOKEN != 0
1035 #if YY_Parser_DEBUG != 0
1038 YY_Parser_CONSTRUCTOR_CODE;
1043 #define YYFLAG -32768
1044 #define YYNTBASE 167
1046 #define YYTRANSLATE(x) ((unsigned)(x) <= 407 ? yytranslate[x] : 288)
1049 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1050 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1051 2, 2, 2, 21, 2, 2, 159, 160, 19, 17, 161, 18, 166, 20, 2, 2, 2,
1052 2, 2, 2, 2, 2, 2, 2, 2, 158, 2, 2, 2, 2, 2, 2, 2, 2,
1053 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1054 2, 2, 2, 2, 2, 2, 162, 2, 163, 2, 2, 2, 2, 2, 2, 2, 2,
1055 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1056 2, 2, 2, 2, 164, 2, 165, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1057 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1058 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1059 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1060 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1061 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1062 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1063 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1064 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1065 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1066 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1067 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1068 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1069 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1070 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1071 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1072 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157};
1074 #if YY_Parser_DEBUG != 0
1075 static const short yyprhs[] = {
1076 0, 0, 3, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27,
1077 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55,
1078 57, 59, 61, 63, 68, 76, 81, 88, 95, 99, 106, 113, 115, 119,
1079 123, 127, 128, 130, 131, 140, 150, 160, 170, 175, 178, 179, 184, 188,
1080 195, 204, 205, 207, 209, 213, 220, 228, 233, 235, 239, 243, 249, 257,
1081 259, 261, 268, 275, 279, 283, 291, 299, 304, 309, 314, 318, 320, 324,
1082 326, 328, 332, 337, 340, 346, 347, 350, 354, 359, 362, 365, 368, 373,
1083 376, 382, 387, 393, 401, 412, 418, 429, 434, 436, 440, 445, 446, 451,
1084 452, 456, 457, 461, 463, 467, 471, 475, 476, 478, 480, 481, 484, 487,
1085 489, 491, 493, 495, 497, 502, 511, 517, 518, 520, 522, 524, 528, 532,
1086 538, 539, 541, 544, 547, 548, 551, 555, 556, 561, 563, 567, 572, 574,
1087 578, 586, 588, 590, 593, 595, 599, 601, 604, 607, 608, 612, 614, 618,
1088 619, 622, 626, 630, 633, 637, 639, 641, 643, 645, 647, 649, 651, 653,
1089 655, 659, 663, 670, 676, 682, 687, 693, 698, 699, 702, 707, 711, 716,
1090 720, 727, 733, 735, 739, 744, 749, 751, 753, 755, 757, 759, 762, 766,
1091 771, 777, 780, 781, 786, 795, 802, 807, 812, 817, 821, 825, 829, 833,
1092 837, 844, 847, 850, 852, 854, 856, 860, 867, 869, 871, 873, 874, 876,
1093 879, 883, 884, 886, 890, 892, 894, 899, 905, 911, 916, 918, 920, 924,
1094 929, 931, 933, 935, 938, 942, 947, 949, 951, 955, 956, 958, 960, 962,
1095 963, 965, 967, 969, 971, 973, 975, 979, 981, 983, 985, 989, 991, 993,
1096 995, 999, 1001, 1004, 1006, 1008, 1010, 1012, 1014, 1016, 1018, 1020, 1022, 1024,
1097 1026, 1029, 1032, 1035, 1038, 1041, 1044, 1047, 1050, 1053, 1056, 1059, 1063, 1065,
1098 1067, 1069, 1071, 1073, 1075, 1077, 1079, 1083, 1087, 1089, 1091, 1093, 1095, 1097,
1099 1102, 1104, 1109, 1116, 1118, 1123, 1130, 1132, 1134, 1136, 1138, 1140, 1143, 1145,
1100 1147, 1149, 1154, 1156, 1161, 1163, 1165, 1169, 1174, 1176, 1178, 1180, 1182, 1187,
1101 1194, 1199, 1206, 1208, 1210};
1103 static const short yyrhs[] = {
1104 168, 158, 0, 167, 168, 158, 0, 179, 0, 180, 0, 181, 0, 182, 0, 214, 0,
1105 184, 0, 185, 0, 186, 0, 187, 0, 190, 0, 191, 0, 194, 0, 169, 0, 170,
1106 0, 171, 0, 172, 0, 173, 0, 174, 0, 198, 0, 199, 0, 200, 0, 201, 0,
1107 202, 0, 204, 0, 205, 0, 203, 0, 196, 0, 197, 0, 48, 51, 177, 3, 0,
1108 48, 51, 177, 3, 159, 175, 160, 0, 64, 51, 183, 3, 0, 25, 51, 3, 131,
1109 125, 3, 0, 48, 144, 272, 159, 175, 160, 0, 64, 144, 272, 0, 25, 144, 272,
1110 159, 175, 160, 0, 25, 144, 272, 131, 125, 272, 0, 176, 0, 175, 161, 176, 0,
1111 3, 15, 267, 0, 82, 14, 68, 0, 0, 119, 0, 0, 48, 178, 118, 177, 270,
1112 30, 8, 213, 0, 48, 178, 118, 177, 270, 159, 206, 160, 213, 0, 48, 3, 118,
1113 177, 270, 159, 206, 160, 213, 0, 48, 52, 270, 159, 206, 160, 76, 6, 213, 0,
1114 141, 48, 118, 270, 0, 82, 68, 0, 0, 64, 118, 183, 270, 0, 126, 118, 270,
1115 0, 25, 118, 270, 131, 125, 270, 0, 25, 118, 270, 131, 44, 286, 125, 286, 0,
1116 0, 44, 0, 208, 0, 189, 161, 208, 0, 25, 118, 270, 23, 188, 208, 0, 25,
1117 118, 270, 23, 159, 189, 160, 0, 25, 118, 270, 192, 0, 193, 0, 192, 161, 193,
1118 0, 64, 188, 286, 0, 47, 270, 76, 6, 213, 0, 47, 159, 7, 160, 125, 6,
1119 213, 0, 65, 0, 28, 0, 195, 118, 270, 125, 6, 213, 0, 132, 118, 270, 76,
1120 6, 213, 0, 48, 134, 274, 0, 64, 134, 274, 0, 79, 277, 102, 279, 280, 125,
1121 275, 0, 133, 277, 102, 279, 280, 76, 275, 0, 79, 273, 125, 275, 0, 133, 273,
1122 76, 275, 0, 104, 118, 271, 213, 0, 145, 43, 213, 0, 207, 0, 206, 161, 207,
1123 0, 208, 0, 211, 0, 286, 283, 209, 0, 286, 283, 210, 209, 0, 3, 3, 0,
1124 3, 3, 159, 10, 160, 0, 0, 14, 98, 0, 14, 98, 142, 0, 14, 98, 112,
1125 3, 0, 58, 267, 0, 58, 98, 0, 58, 144, 0, 41, 159, 243, 160, 0, 130,
1126 270, 0, 130, 270, 159, 286, 160, 0, 142, 159, 212, 160, 0, 112, 3, 159, 212,
1127 160, 0, 74, 3, 159, 212, 160, 130, 270, 0, 74, 3, 159, 212, 160, 130, 270,
1128 159, 212, 160, 0, 139, 3, 159, 286, 160, 0, 140, 61, 159, 286, 160, 130, 270,
1129 159, 286, 160, 0, 41, 159, 243, 160, 0, 286, 0, 212, 161, 286, 0, 151, 159,
1130 175, 160, 0, 0, 64, 147, 183, 270, 0, 0, 159, 212, 160, 0, 0, 107, 36,
1131 217, 0, 218, 0, 217, 161, 218, 0, 10, 219, 220, 0, 281, 219, 220, 0, 0,
1132 31, 0, 60, 0, 0, 98, 71, 0, 98, 90, 0, 221, 0, 222, 0, 223, 0,
1133 231, 0, 227, 0, 59, 76, 270, 228, 0, 85, 87, 270, 215, 146, 159, 251, 160,
1134 0, 85, 87, 270, 215, 8, 0, 0, 24, 0, 62, 0, 226, 0, 225, 161, 226,
1135 0, 286, 15, 243, 0, 143, 270, 138, 225, 228, 0, 0, 239, 0, 93, 10, 0,
1136 93, 24, 0, 0, 101, 10, 0, 101, 10, 3, 0, 0, 232, 216, 229, 230, 0,
1137 233, 0, 232, 127, 233, 0, 232, 127, 24, 233, 0, 234, 0, 159, 232, 160, 0,
1138 137, 224, 235, 236, 228, 240, 242, 0, 264, 0, 19, 0, 76, 237, 0, 238, 0,
1139 237, 161, 238, 0, 270, 0, 270, 287, 0, 150, 243, 0, 0, 80, 36, 241, 0,
1140 243, 0, 241, 161, 243, 0, 0, 81, 243, 0, 243, 12, 243, 0, 243, 13, 243,
1141 0, 14, 243, 0, 159, 243, 160, 0, 244, 0, 245, 0, 246, 0, 247, 0, 249,
1142 0, 250, 0, 252, 0, 255, 0, 262, 0, 262, 253, 262, 0, 262, 253, 256, 0,
1143 262, 14, 33, 262, 13, 262, 0, 262, 33, 262, 13, 262, 0, 262, 14, 92, 265,
1144 248, 0, 262, 92, 265, 248, 0, 262, 14, 83, 265, 248, 0, 262, 83, 265, 248,
1145 0, 0, 3, 265, 0, 281, 88, 14, 98, 0, 281, 88, 98, 0, 262, 14, 84,
1146 256, 0, 262, 84, 256, 0, 262, 14, 84, 159, 251, 160, 0, 262, 84, 159, 251,
1147 160, 0, 265, 0, 251, 161, 265, 0, 262, 253, 254, 256, 0, 262, 253, 254, 262,
1148 0, 15, 0, 16, 0, 27, 0, 24, 0, 117, 0, 68, 256, 0, 159, 234, 160,
1149 0, 148, 243, 121, 243, 0, 257, 148, 243, 121, 243, 0, 66, 243, 0, 0, 37,
1150 257, 258, 67, 0, 82, 159, 243, 161, 243, 161, 243, 160, 0, 82, 159, 243, 161,
1151 243, 160, 0, 39, 159, 262, 160, 0, 91, 159, 262, 160, 0, 281, 162, 262, 163,
1152 0, 262, 17, 262, 0, 262, 18, 262, 0, 262, 19, 262, 0, 262, 20, 262, 0,
1153 262, 21, 262, 0, 95, 159, 262, 161, 262, 160, 0, 17, 262, 0, 18, 262, 0,
1154 265, 0, 281, 0, 266, 0, 159, 262, 160, 0, 38, 159, 243, 30, 283, 160, 0,
1155 259, 0, 260, 0, 261, 0, 0, 243, 0, 243, 3, 0, 243, 30, 3, 0, 0,
1156 263, 0, 264, 161, 263, 0, 267, 0, 144, 0, 3, 159, 19, 160, 0, 3, 159,
1157 62, 243, 160, 0, 3, 159, 24, 243, 160, 0, 3, 159, 243, 160, 0, 6, 0,
1158 10, 0, 97, 159, 160, 0, 54, 159, 243, 160, 0, 11, 0, 72, 0, 63, 0,
1159 283, 6, 0, 164, 269, 165, 0, 29, 162, 269, 163, 0, 98, 0, 267, 0, 268,
1160 161, 267, 0, 0, 268, 0, 3, 0, 9, 0, 0, 270, 0, 3, 0, 5, 0,
1161 4, 0, 9, 0, 274, 0, 273, 161, 274, 0, 3, 0, 4, 0, 276, 0, 275,
1162 161, 276, 0, 272, 0, 274, 0, 278, 0, 277, 161, 278, 0, 24, 0, 24, 113,
1163 0, 48, 0, 137, 0, 85, 0, 126, 0, 143, 0, 59, 0, 25, 0, 64, 0,
1164 147, 0, 153, 0, 154, 0, 25, 115, 0, 48, 115, 0, 48, 118, 0, 48, 147,
1165 0, 137, 147, 0, 64, 147, 0, 64, 115, 0, 48, 155, 0, 153, 155, 0, 147,
1166 155, 0, 59, 155, 0, 147, 156, 157, 0, 51, 0, 118, 0, 155, 0, 147, 0,
1167 115, 0, 3, 0, 10, 0, 3, 0, 3, 166, 3, 0, 3, 166, 19, 0, 10,
1168 0, 34, 0, 120, 0, 35, 0, 40, 0, 40, 159, 282, 160, 0, 99, 0, 99,
1169 159, 282, 160, 0, 99, 159, 282, 161, 282, 160, 0, 56, 0, 56, 159, 282, 160,
1170 0, 56, 159, 282, 161, 282, 160, 0, 86, 0, 124, 0, 116, 0, 72, 0, 129,
1171 0, 63, 111, 0, 63, 0, 53, 0, 122, 0, 122, 159, 282, 160, 0, 123, 0,
1172 123, 159, 282, 160, 0, 284, 0, 285, 0, 283, 162, 163, 0, 283, 162, 282, 163,
1173 0, 109, 0, 94, 0, 110, 0, 96, 0, 77, 159, 284, 160, 0, 77, 159, 284,
1174 161, 10, 160, 0, 78, 159, 284, 160, 0, 78, 159, 284, 161, 10, 160, 0, 3,
1179 #if YY_Parser_DEBUG != 0
1180 static const short yyrline[] = {
1181 0, 120, 122, 130, 132, 133, 134, 136, 137, 138, 139, 140, 141, 142,
1182 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
1183 157, 158, 159, 185, 190, 195, 201, 208, 214, 220, 225, 232, 237, 243,
1184 246, 248, 251, 253, 256, 263, 268, 274, 281, 287, 289, 292, 298, 304,
1185 311, 318, 319, 321, 323, 330, 335, 341, 345, 347, 350, 353, 358, 368,
1186 369, 371, 378, 385, 391, 397, 403, 409, 415, 422, 429, 436, 438, 445,
1187 447, 450, 453, 457, 465, 472, 475, 477, 478, 484, 485, 486, 487, 488,
1188 489, 492, 495, 501, 508, 514, 522, 529, 533, 535, 542, 545, 549, 556,
1189 558, 613, 615, 618, 620, 627, 630, 634, 636, 637, 640, 642, 643, 648,
1190 651, 657, 660, 662, 683, 688, 693, 715, 717, 718, 728, 731, 738, 743,
1191 759, 761, 764, 766, 767, 769, 771, 778, 784, 791, 793, 795, 799, 801,
1192 804, 816, 818, 821, 825, 827, 834, 836, 839, 843, 845, 848, 850, 857,
1193 859, 864, 867, 869, 871, 872, 875, 877, 878, 879, 880, 881, 882, 883,
1194 886, 889, 896, 899, 903, 906, 908, 910, 914, 916, 928, 930, 933, 936,
1195 948, 950, 954, 956, 963, 968, 974, 976, 979, 981, 982, 985, 989, 993,
1196 998, 1004, 1006, 1009, 1013, 1018, 1025, 1027, 1032, 1040, 1042, 1043, 1044, 1045,
1197 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1055, 1056, 1057, 1060, 1062, 1063,
1198 1064, 1067, 1069, 1070, 1077, 1079, 1092, 1094, 1095, 1096, 1099, 1101, 1102, 1103,
1199 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1113, 1115, 1122, 1124, 1129, 1139, 1142,
1200 1144, 1146, 1147, 1147, 1147, 1150, 1152, 1159, 1160, 1163, 1165, 1172, 1173, 1176,
1201 1178, 1185, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198,
1202 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1213, 1215,
1203 1216, 1217, 1218, 1221, 1223, 1227, 1229, 1230, 1234, 1243, 1245, 1246, 1247, 1248,
1204 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1260, 1261, 1262, 1263,
1205 1264, 1265, 1266, 1267, 1268, 1270, 1271, 1278, 1288, 1289, 1290, 1291, 1294, 1296,
1206 1299, 1301, 1306, 1315, 1330};
1208 static const char*
const yytname[] = {
"$",
1217 "QUOTED_IDENTIFIER",
1377 "create_database_statement",
1378 "drop_database_statement",
1379 "rename_database_statement",
1380 "create_user_statement",
1381 "drop_user_statement",
1382 "alter_user_statement",
1383 "name_eq_value_list",
1385 "opt_if_not_exists",
1387 "create_table_as_statement",
1388 "create_table_statement",
1389 "create_dataframe_statement",
1390 "show_table_schema",
1392 "drop_table_statement",
1393 "truncate_table_statement",
1394 "rename_table_statement",
1395 "rename_column_statement",
1398 "add_column_statement",
1399 "drop_column_statement",
1402 "copy_table_statement",
1404 "dump_table_statement",
1405 "restore_table_statement",
1406 "create_role_statement",
1407 "drop_role_statement",
1408 "grant_privileges_statement",
1409 "revoke_privileges_statement",
1410 "grant_role_statement",
1411 "revoke_role_statement",
1412 "optimize_table_statement",
1413 "validate_system_statement",
1414 "base_table_element_commalist",
1415 "base_table_element",
1418 "column_constraint_def",
1419 "table_constraint_def",
1421 "opt_with_option_list",
1422 "drop_view_statement",
1423 "opt_column_commalist",
1424 "opt_order_by_clause",
1425 "ordering_spec_commalist",
1429 "manipulative_statement",
1433 "assignment_commalist",
1438 "opt_offset_clause",
1445 "table_ref_commalist",
1448 "opt_group_by_clause",
1450 "opt_having_clause",
1453 "comparison_predicate",
1454 "between_predicate",
1460 "all_or_any_predicate",
1472 "select_entry_commalist",
1476 "literal_commalist",
1477 "opt_literal_commalist",
1487 "privileges_target_type",
1488 "privileges_target",
1500 0, 167, 167, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168,
1501 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 169, 169, 170,
1502 171, 172, 173, 174, 174, 175, 175, 176, 177, 177, 178, 178, 179, 180, 180, 181, 182,
1503 183, 183, 184, 185, 186, 187, 188, 188, 189, 189, 190, 190, 191, 192, 192, 193, 194,
1504 194, 195, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 206, 207, 207,
1505 208, 208, 209, 209, 209, 210, 210, 210, 210, 210, 210, 210, 210, 210, 211, 211, 211,
1506 211, 211, 211, 211, 212, 212, 213, 213, 214, 215, 215, 216, 216, 217, 217, 218, 218,
1507 219, 219, 219, 220, 220, 220, 168, 221, 221, 221, 221, 222, 223, 223, 224, 224, 224,
1508 225, 225, 226, 227, 228, 228, 229, 229, 229, 230, 230, 230, 231, 232, 232, 232, 233,
1509 233, 234, 235, 235, 236, 237, 237, 238, 238, 239, 240, 240, 241, 241, 242, 242, 243,
1510 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 246, 246, 247,
1511 247, 247, 247, 248, 248, 249, 249, 250, 250, 250, 250, 251, 251, 252, 252, 253, 253,
1512 254, 254, 254, 255, 256, 257, 257, 258, 258, 259, 259, 259, 260, 260, 261, 262, 262,
1513 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 263, 263, 263,
1514 263, 264, 264, 264, 265, 265, 266, 266, 266, 266, 267, 267, 267, 267, 267, 267, 267,
1515 267, 267, 267, 267, 268, 268, 269, 269, 270, 270, 271, 271, 272, 272, 272, 272, 273,
1516 273, 274, 274, 275, 275, 276, 276, 277, 277, 278, 278, 278, 278, 278, 278, 278, 278,
1517 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
1518 279, 279, 279, 279, 279, 280, 280, 281, 281, 281, 282, 283, 283, 283, 283, 283, 283,
1519 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
1520 283, 283, 283, 283, 284, 284, 284, 284, -1, -1, 285, 285, 286, 286, 287};
1523 0, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1524 1, 1, 1, 4, 7, 4, 6, 6, 3, 6, 6, 1, 3, 3, 3, 0, 1, 0, 8, 9, 9, 9, 4, 2, 0, 4, 3, 6,
1525 8, 0, 1, 1, 3, 6, 7, 4, 1, 3, 3, 5, 7, 1, 1, 6, 6, 3, 3, 7, 7, 4, 4, 4, 3, 1, 3, 1,
1526 1, 3, 4, 2, 5, 0, 2, 3, 4, 2, 2, 2, 4, 2, 5, 4, 5, 7, 10, 5, 10, 4, 1, 3, 4, 0, 4, 0,
1527 3, 0, 3, 1, 3, 3, 3, 0, 1, 1, 0, 2, 2, 1, 1, 1, 1, 1, 4, 8, 5, 0, 1, 1, 1, 3, 3, 5,
1528 0, 1, 2, 2, 0, 2, 3, 0, 4, 1, 3, 4, 1, 3, 7, 1, 1, 2, 1, 3, 1, 2, 2, 0, 3, 1, 3, 0,
1529 2, 3, 3, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 6, 5, 5, 4, 5, 4, 0, 2, 4, 3, 4, 3,
1530 6, 5, 1, 3, 4, 4, 1, 1, 1, 1, 1, 2, 3, 4, 5, 2, 0, 4, 8, 6, 4, 4, 4, 3, 3, 3, 3, 3,
1531 6, 2, 2, 1, 1, 1, 3, 6, 1, 1, 1, 0, 1, 2, 3, 0, 1, 3, 1, 1, 4, 5, 5, 4, 1, 1, 3, 4,
1532 1, 1, 1, 2, 3, 4, 1, 1, 3, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1,
1533 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 1, 1,
1534 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 4, 1, 4, 6, 1, 4, 6, 1, 1, 1, 1, 1, 2, 1, 1,
1535 1, 4, 1, 4, 1, 1, 3, 4, 1, 1, 1, 1, 4, 6, 4, 6, 1, 1, 1};
1538 0, 0, 70, 0, 45, 0, 0, 69, 0, 0, 0, 0, 0, 0, 133, 0, 0,
1539 0, 0, 0, 0, 15, 16, 17, 18, 19, 20, 3, 4, 5, 6, 8, 9, 10,
1540 11, 12, 13, 14, 0, 29, 30, 21, 22, 23, 24, 25, 28, 26, 27, 7, 125,
1541 126, 127, 129, 128, 113, 149, 152, 0, 0, 0, 263, 264, 0, 0, 0, 43, 0,
1542 44, 0, 0, 0, 0, 52, 52, 0, 0, 52, 273, 274, 281, 289, 283, 288, 290,
1543 285, 286, 284, 287, 291, 292, 293, 0, 271, 0, 279, 0, 265, 0, 0, 0, 0,
1544 134, 135, 235, 0, 0, 109, 0, 0, 1, 0, 0, 0, 144, 0, 0, 267, 269,
1545 268, 270, 0, 0, 0, 43, 0, 0, 0, 73, 0, 43, 140, 0, 0, 0, 74,
1546 36, 0, 282, 294, 295, 296, 297, 301, 304, 300, 299, 298, 303, 0, 302, 0, 0,
1547 0, 0, 111, 266, 109, 54, 0, 0, 0, 313, 248, 249, 252, 0, 0, 0, 156,
1548 0, 317, 319, 0, 0, 0, 320, 335, 0, 325, 254, 0, 253, 0, 0, 328, 0,
1549 345, 0, 347, 0, 258, 322, 344, 346, 330, 318, 336, 338, 329, 332, 243, 0, 261,
1550 0, 236, 173, 174, 175, 176, 177, 178, 179, 180, 232, 233, 234, 181, 240, 155, 227,
1551 229, 242, 228, 0, 340, 341, 0, 0, 0, 80, 153, 2, 0, 0, 0, 150, 0,
1552 147, 0, 57, 57, 0, 63, 64, 0, 0, 0, 109, 0, 0, 31, 0, 0, 0,
1553 0, 130, 141, 51, 33, 53, 110, 305, 267, 269, 277, 278, 77, 275, 272, 306, 310,
1554 307, 309, 308, 0, 280, 0, 0, 79, 0, 78, 0, 0, 0, 171, 0, 225, 228,
1555 226, 261, 0, 212, 0, 0, 0, 0, 0, 333, 0, 207, 0, 0, 0, 0, 0,
1556 0, 0, 0, 0, 181, 259, 262, 0, 0, 140, 237, 0, 0, 0, 0, 202, 203,
1557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 255, 0, 50, 352,
1558 353, 140, 136, 0, 0, 0, 313, 119, 114, 115, 119, 151, 142, 143, 0, 148, 0,
1559 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 67, 0, 42, 0, 0,
1560 0, 0, 0, 0, 0, 0, 81, 83, 84, 0, 0, 0, 162, 0, 311, 312, 0,
1561 0, 106, 132, 0, 109, 0, 0, 0, 0, 0, 314, 315, 0, 0, 0, 0, 0,
1562 0, 0, 0, 316, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 172,
1563 230, 0, 256, 157, 158, 160, 163, 169, 170, 238, 0, 0, 0, 0, 219, 220, 221,
1564 222, 223, 0, 190, 0, 195, 190, 205, 204, 206, 0, 0, 183, 182, 241, 0, 193,
1565 0, 342, 0, 0, 139, 0, 0, 109, 120, 121, 122, 0, 122, 145, 34, 0, 59,
1566 61, 66, 0, 55, 65, 38, 0, 37, 0, 109, 0, 0, 0, 0, 0, 0, 0,
1567 0, 0, 0, 334, 331, 89, 35, 0, 0, 276, 0, 112, 0, 0, 72, 0, 244,
1568 0, 0, 247, 257, 0, 211, 0, 213, 0, 216, 321, 251, 326, 0, 208, 350, 0,
1569 0, 217, 0, 323, 0, 337, 339, 260, 0, 354, 161, 0, 167, 0, 190, 0, 194,
1570 190, 0, 0, 189, 0, 198, 187, 200, 201, 192, 218, 343, 137, 138, 108, 71, 0,
1571 117, 116, 118, 146, 62, 0, 0, 41, 40, 68, 0, 32, 0, 0, 0, 0, 0,
1572 0, 0, 82, 0, 0, 0, 0, 0, 85, 89, 109, 0, 75, 107, 0, 76, 246,
1573 245, 209, 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, 154, 0, 188, 0, 186,
1574 185, 191, 197, 0, 123, 124, 60, 56, 109, 105, 0, 0, 0, 0, 99, 109, 87,
1575 90, 0, 94, 95, 93, 97, 86, 46, 109, 131, 210, 231, 327, 351, 215, 0, 224,
1576 324, 164, 165, 168, 184, 196, 199, 48, 0, 100, 103, 0, 49, 0, 0, 91, 0,
1577 0, 47, 0, 0, 0, 0, 0, 92, 96, 0, 214, 166, 101, 0, 88, 98, 0,
1578 0, 0, 0, 102, 104, 0, 0};
1581 19, 20, 21, 22, 23, 24, 25, 26, 366, 367, 126, 71, 27, 28, 29, 30,
1582 133, 31, 32, 33, 34, 359, 474, 35, 36, 243, 244, 37, 38, 39, 40, 41,
1583 42, 43, 44, 45, 46, 47, 48, 379, 380, 381, 586, 587, 382, 391, 230, 49,
1584 278, 114, 348, 349, 469, 561, 50, 51, 52, 104, 341, 342, 53, 256, 238, 355,
1585 54, 55, 56, 57, 204, 315, 428, 429, 257, 539, 647, 607, 205, 206, 207, 208,
1586 209, 547, 210, 211, 548, 212, 332, 453, 213, 300, 292, 408, 214, 215, 216, 217,
1587 218, 219, 220, 221, 222, 312, 313, 430, 157, 265, 92, 266, 267, 268, 94, 95,
1588 275, 390, 223, 412, 224, 225, 226, 383, 537};
1591 1499, 167, -32768, 13, 204, -39, 160, -32768, 277, -7,
1592 18, 41, 103, 277, 28, 127, 317, 188, 139, 268,
1593 107, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768,
1594 -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, 172, -32768,
1595 -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768,
1596 -32768, -32768, -32768, -32768, -32768, 192, -32768, -32768, 300, 317,
1597 431, -32768, -32768, 324, 280, 272, 262, 317, -32768, 336,
1598 431, 274, 317, 288, 288, 336, 431, 288, -32768, -32768,
1599 286, 289, 132, 271, 117, -32768, -32768, 260, -32768, -84,
1600 282, -32768, -38, -32768, 97, -32768, 317, 317, 317, 317,
1601 -6, 123, -32768, -32768, 604, 292, 322, 314, 77, 265,
1602 -32768, 317, 441, 58, 374, 347, 66, -32768, -32768, -32768,
1603 -32768, 55, 325, 482, 262, 485, 493, 353, -32768, 362,
1604 262, 378, 433, 528, 317, -32768, -32768, 317, -32768, -32768,
1605 -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, 390,
1606 -32768, 445, 336, 270, 752, 392, -32768, 314, -32768, 477,
1607 445, 270, 171, -32768, -32768, -32768, 829, 1054, 1054, -32768,
1608 393, -32768, -32768, 404, 397, 398, 400, -32768, 402, 405,
1609 11, 406, 20, 407, 409, -32768, 410, -32768, 417, -32768,
1610 418, -32768, 419, -32768, -32768, -32768, -32768, 420, 421, -32768,
1611 -32768, -32768, 829, 1463, 487, 305, -32768, -32768, -32768, -32768,
1612 -32768, -32768, -32768, -32768, -32768, -32768, -32768, 633, -32768, 422,
1613 -32768, -32768, -32768, -57, 21, -32768, -32768, 317, 319, 425,
1614 -32768, -32768, -32768, 456, 342, 139, -32768, 230, 488, 466,
1615 44, 549, 35, 434, -32768, 469, 594, 478, 314, 317,
1616 533, 443, 448, 594, 317, 829, -32768, -32768, -32768, -32768,
1617 -32768, -32768, -32768, -32768, -32768, -32768, -32768, 447, -32768, -32768,
1618 -32768, -32768, -32768, -32768, -32768, 351, -32768, 319, 45, -32768,
1619 598, 447, 351, 476, 65, -32768, 1054, -32768, 444, -32768,
1620 1463, 829, 75, 829, 1054, 599, 829, 599, -32768, 474,
1621 -32768, 312, 829, 1054, 1054, 452, 599, 599, 599, 27,
1622 360, -32768, 458, 451, 317, 378, -32768, 829, 829, 610,
1623 183, -32768, -32768, 1054, 1054, 1054, 1054, 1054, 1054, 1307,
1624 465, 1307, 732, 829, 112, 1054, -32768, -2, -32768, -32768,
1625 -32768, 136, -32768, 602, 594, 619, 460, 68, 467, -32768,
1626 68, -32768, -32768, -32768, 617, -32768, 626, -32768, 319, 319,
1627 319, 319, 317, 566, 431, 616, 226, -32768, 628, -32768,
1628 473, -32768, 594, 486, 634, 643, 652, 575, 497, 255,
1629 -32768, -32768, -32768, 1561, 258, -15, 416, 445, -32768, -32768,
1630 534, 278, -32768, -32768, 502, 314, 586, 503, 829, 829,
1631 29, -32768, -32768, 93, 505, 94, 829, 829, 603, 330,
1632 209, -32768, 509, 34, 285, 511, 295, 23, 242, 83,
1633 -32768, 298, 513, 514, -32768, -32768, 1463, -32768, 517, -32768,
1634 672, 597, 666, -32768, -32768, 1054, 1307, 521, 1307, 376,
1635 376, -32768, -32768, -32768, 455, 678, 1228, -32768, 678, -32768,
1636 -32768, -32768, 926, 1151, -32768, 516, -32768, 585, -32768, 57,
1637 -32768, 522, 319, -32768, 829, 302, 314, -32768, -32768, 589,
1638 342, 589, 681, -32768, 323, -32768, -32768, -32768, 563, -32768,
1639 -32768, -32768, 1463, -32768, 594, 314, 448, 331, 829, 530,
1640 532, 535, 537, 319, 621, 448, 581, -32768, 40, -32768,
1641 685, 448, -32768, 445, -32768, 319, 1307, -32768, 445, -32768,
1642 36, 38, -32768, -32768, 829, 416, 156, -32768, 1561, -32768,
1643 -32768, -32768, -32768, 599, -32768, -32768, 694, 829, -32768, 1054,
1644 -32768, 599, -32768, -32768, -32768, 317, -32768, -32768, 669, 625,
1645 506, 678, 1228, -32768, 678, 1054, 1307, -32768, 337, -32768,
1646 -32768, -32768, 516, -32768, -32768, -32768, -32768, 416, -32768, -32768,
1647 50, -32768, -32768, -32768, -32768, -32768, 319, 319, -32768, -32768,
1648 -32768, 343, -32768, 46, 319, 319, 319, 319, 346, 701,
1649 -32768, 705, 611, 551, 1384, 317, -32768, 708, 314, 348,
1650 447, -32768, 357, 447, -32768, -32768, 416, 829, 211, 552,
1651 555, 32, 252, 558, -32768, 829, 829, -32768, 1054, -32768,
1652 380, -32768, 516, -32768, -32768, 1307, -32768, -32768, -32768, -32768,
1653 314, -32768, 382, 385, 559, 561, -32768, 314, 564, 170,
1654 829, -32768, -32768, -32768, 570, -32768, -32768, 314, -32768, 416,
1655 -32768, -32768, -32768, -32768, 829, -32768, -32768, 569, 416, 416,
1656 516, -32768, -32768, -32768, 592, -32768, -32768, 601, -32768, 722,
1657 731, -32768, 48, 319, -32768, 53, 829, 317, 317, 576,
1658 -32768, -32768, 577, -32768, 416, 580, 582, -32768, -32768, 319,
1659 319, 389, 584, -32768, -32768, 740, -32768};
1662 -32768, 726, -32768, -32768, -32768, -32768, -32768, -32768, -224, 263,
1663 259, -32768, -32768, -32768, -32768, -32768, 281, -32768, -32768, -32768,
1664 -32768, 510, -32768, -32768, -32768, -32768, 383, -32768, -32768, -32768,
1665 -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -152,
1666 257, -347, 166, -32768, -32768, -489, -156, -32768, -32768, -32768,
1667 -32768, 284, 408, 291, -32768, -32768, -32768, -32768, -32768, 293,
1668 -32768, -232, -32768, -32768, -32768, 739, -89, -294, -32768, -32768,
1669 -32768, 225, -32768, -32768, -32768, -32768, -164, -32768, -32768, -32768,
1670 -32768, -332, -32768, -32768, -306, -32768, -32768, -32768, -32768, -215,
1671 -32768, -32768, -32768, -32768, -32768, -147, 432, -32768, -301, -32768,
1672 -193, -32768, 483, -3, -32768, -51, 751, 49, -157, 387,
1673 762, 624, 618, 498, -161, -274, -369, 480, -32768, -210,
1679 64, 279, 285, 281, 578, 415, 288, 288, 411, 121, 311, 475, 476, 106, 498, 500,
1680 61, -334, 343, 129, 287, 289, 62, 414, 236, 136, -331, 336, 445, 384, 448, 334,
1681 421, 422, 423, 317, 318, 72, 309, 317, 318, 317, 318, 581, 317, 318, 317, 318,
1682 317, 318, 317, 318, 102, 393, 582, 310, 116, 93, 317, 318, 317, 318, 93, 461,
1683 127, 317, 318, 392, 401, 131, 160, 148, 149, 350, 323, 324, 325, 326, 327, 361,
1684 96, 583, 235, 431, 402, 622, 623, 151, 357, 240, 103, 386, 369, 155, 156, 158,
1685 159, 311, 584, 467, 323, 324, 325, 326, 327, 335, 317, 318, 233, 463, 323, 324,
1686 325, 326, 327, 447, 550, 454, 128, 400, 465, 616, 298, 152, 135, 288, 457, 405,
1687 468, 409, 241, 260, 413, 288, 261, 541, 97, 544, 417, 403, 617, 406, 288, 288,
1688 501, 549, 351, 410, 487, 598, 477, 478, 415, 432, 433, 152, 418, 419, 415, 98,
1689 362, 460, 288, 288, 288, 288, 288, 288, 317, 318, 585, 288, 63, -334, 288, 105,
1690 439, 440, 441, 442, 443, 444, -331, 337, 527, 455, 245, 424, 459, 512, 681, 394,
1691 643, 644, 521, 14, 594, 242, 595, 153, 592, 269, 337, 358, 113, 549, 621, 65,
1692 671, 609, 458, 73, 611, 673, 246, 514, 435, 18, 58, 618, 554, 99, 543, 407,
1693 338, 161, 323, 324, 325, 326, 327, 107, 145, 534, 510, 511, 610, 231, 551, 507,
1694 352, 549, 515, 516, 529, 613, 370, 140, 415, 599, 141, 385, 343, 425, 353, 66,
1695 67, 603, 154, 323, 324, 325, 326, 327, 146, 110, 436, 437, 685, 323, 324, 325,
1696 326, 327, 288, 438, 14, 597, 74, 142, 78, 79, 660, 392, 154, 59, 255, 143,
1697 540, 568, 111, 288, 288, 1, 75, 591, 2, 462, 18, 112, 557, 80, 81, 115,
1698 76, 403, 552, 77, 316, 350, 559, 60, 661, 481, 652, 3, 4, 317, 318, 113,
1699 61, 270, 339, 68, 573, 82, 62, 5, 340, 570, 283, 122, 6, 7, 571, 319,
1700 83, 284, 69, 78, 79, 84, 317, 318, 125, 346, 590, 8, 70, 589, 596, 593,
1701 347, 9, 388, 134, 123, 619, 137, 479, 518, 389, 85, 601, 392, 392, 624, 625,
1702 288, 519, 132, 640, 10, 337, 320, 321, 322, 323, 324, 325, 326, 327, 602, 249,
1703 288, 271, 483, 484, 272, 254, 124, 633, 130, 328, 11, 325, 326, 327, 612, 138,
1704 12, 13, 528, 86, 139, 14, 187, 147, 189, 15, 227, 16, 645, 17, 87, 494,
1705 495, 273, 499, 484, 88, 193, 194, 232, 89, 274, 144, 18, 317, 318, 90, 91,
1706 636, 639, 117, 118, 119, 150, 504, 505, 120, 648, 649, 329, 330, 522, 523, 288,
1707 263, 264, 119, 339, 331, 672, 120, 525, 526, 340, 530, 531, 228, 650, 558, 484,
1708 653, 229, 662, 237, 545, 392, 682, 658, 323, 324, 325, 326, 327, 234, 239, 162,
1709 665, 664, 163, 565, 566, 247, 164, 165, 248, 373, 166, 572, 484, 167, 168, 397,
1710 251, 614, 615, 250, 398, 258, 674, 620, 495, 170, 626, 505, 637, 495, 171, 172,
1711 252, 173, 174, 175, 176, 638, 615, 608, 425, 253, 374, 323, 324, 325, 326, 327,
1712 255, 177, 178, 259, 179, 323, 324, 325, 326, 327, 399, 180, 651, 615, 654, 505,
1713 181, 655, 505, 262, 182, 683, 505, 277, 291, 280, 183, 290, 293, 294, 184, 295,
1714 375, 296, 185, 314, 297, 299, 301, 186, 302, 303, 187, 188, 189, 190, 191, 192,
1715 304, 305, 306, 307, 308, 345, 634, 333, 344, 193, 194, 376, 377, 354, 378, 356,
1716 195, 357, 364, 363, 196, 365, 197, 198, 199, 371, 372, 368, 395, 200, 335, 162,
1717 387, 411, 163, 14, 420, 434, 164, 165, 427, 464, 166, 426, 201, 167, 168, 169,
1718 446, 466, 284, 472, 470, 473, 241, 482, 486, 170, 485, 202, 492, 489, 171, 172,
1719 203, 173, 174, 175, 176, 488, 490, 320, 321, 322, 323, 324, 325, 326, 327, 491,
1720 493, 177, 178, 503, 179, 506, 508, 509, 675, 676, 328, 180, 513, 520, 517, 524,
1721 181, 532, 533, 536, 182, 538, 535, 318, 542, 546, 183, 553, 564, 555, 184, 560,
1722 567, 574, 185, 575, 298, 588, 576, 186, 577, 579, 187, 188, 189, 190, 191, 192,
1723 600, 605, 606, 627, 628, 629, 630, 581, 641, 193, 194, 642, 329, 330, 646, 656,
1724 195, 657, 667, 659, 196, 331, 197, 198, 199, 663, 666, 668, 669, 200, 670, 162,
1725 677, 678, 163, 679, 686, 680, 164, 165, 684, 109, 480, 569, 201, 167, 168, 360,
1726 580, 635, 562, 556, 449, 108, 471, 450, 604, 170, 563, 202, 100, 456, 171, 172,
1727 203, 173, 174, 175, 176, 404, 502, 101, 80, 81, 276, 282, 396, 416, 0, 0,
1728 0, 177, 178, 0, 179, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0,
1729 82, 0, 0, 0, 182, 0, 0, 0, 0, 0, 183, 83, 0, 0, 184, 0,
1730 84, 0, 185, 0, 0, 0, 0, 186, 0, 0, 187, 188, 189, 190, 191, 192,
1731 162, 0, 0, 163, 0, 85, 0, 164, 165, 193, 194, 166, 0, 0, 167, 168,
1732 195, 451, 0, 0, 196, 0, 197, 198, 199, 0, 170, 0, 0, 200, 0, 171,
1733 172, 0, 173, 174, 175, 176, 0, 0, 0, 0, 0, 0, 201, 0, 86, 0,
1734 0, 0, 177, 178, 0, 179, 0, 0, 0, 87, 0, 452, 180, 0, 0, 88,
1735 203, 181, 0, 89, 0, 182, 0, 0, 0, 90, 91, 183, 0, 0, 0, 184,
1736 0, 0, 0, 185, 0, 0, 0, 0, 186, 0, 0, 187, 188, 189, 190, 191,
1737 192, 162, 0, 0, 163, 0, 0, 0, 164, 165, 193, 194, 0, 0, 0, 167,
1738 168, 195, 0, 0, 0, 196, 0, 197, 198, 199, 0, 170, 0, 0, 200, 0,
1739 171, 172, 0, 173, 174, 175, 176, 0, 0, 0, 0, 0, 0, 201, 0, 0,
1740 0, 0, 0, 177, 178, 0, 179, 0, 0, 0, 0, 0, 202, 180, 0, 0,
1741 0, 203, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 183, 0, 0, 0,
1742 184, 0, 0, 0, 185, 0, 0, 0, 0, 186, 0, 0, 187, 188, 189, 190,
1743 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, 194, 0, 0, 0,
1744 0, 0, 195, 0, 0, 0, 196, 0, 197, 198, 199, 0, 0, 0, 0, 200,
1745 0, 162, 0, 0, 163, 0, 0, 14, 164, 165, 0, 0, 0, 0, 201, 167,
1746 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 0, 286, 0, 0,
1747 171, 172, 203, 173, 174, 175, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1748 0, 0, 0, 177, 178, 0, 179, 0, 0, 0, 0, 0, 0, 180, 0, 0,
1749 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 183, 0, 0, 0,
1750 184, 0, 0, 0, 185, 0, 0, 0, 0, 186, 0, 0, 187, 188, 189, 190,
1751 191, 192, 162, 0, 0, 163, 0, 0, 0, 164, 165, 193, 194, 0, 0, 0,
1752 167, 168, 195, 0, 0, 0, 196, 0, 197, 198, 199, 0, 170, 0, 0, 200,
1753 0, 171, 172, 0, 173, 174, 175, 176, 0, 0, 0, 0, 0, 0, 201, 0,
1754 0, 0, 0, 0, 177, 178, 0, 179, 0, 0, 0, 0, 0, 286, 180, 0,
1755 0, 0, 203, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 183, 0, 0,
1756 0, 184, 163, 0, 0, 185, 164, 165, 0, 0, 186, 0, 0, 187, 188, 189,
1757 190, 191, 192, 0, 0, 0, 0, 0, 0, 170, 0, 0, 193, 194, 171, 172,
1758 0, 0, 0, 195, 176, 0, 0, 196, 0, 197, 198, 199, 0, 0, 0, 0,
1759 200, 177, 178, 0, 179, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 201,
1760 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 183, 0, 0, 0, 452, 0,
1761 0, 163, 185, 203, 0, 164, 165, 0, 0, 0, 187, 0, 189, 190, 191, 192,
1762 0, 0, 0, 0, 0, 0, 0, 0, 170, 193, 194, 0, 0, 171, 172, 0,
1763 195, 0, 0, 176, 196, 0, 197, 198, 199, 0, 0, 0, 0, 200, 0, 0,
1764 177, 178, 0, 179, 0, 14, 0, 0, 0, 0, 180, 0, 201, 0, 0, 0,
1765 0, 0, 0, 182, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 163, 0,
1766 203, 185, 164, 165, 0, 0, 0, 0, 0, 187, 0, 189, 190, 191, 192, 0,
1767 0, 0, 0, 0, 0, 170, 0, 0, 193, 194, 171, 172, 0, 0, 0, 195,
1768 176, 0, 0, 196, 0, 197, 198, 199, 0, 0, 0, 0, 200, 177, 178, 0,
1769 179, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 201, 0, 0, 0, 0,
1770 182, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 163, 185, 203,
1771 0, 164, 165, 0, 0, 0, 187, 0, 189, 190, 631, 192, 0, 0, 0, 0,
1772 0, 0, 0, 0, 170, 193, 194, 0, 0, 171, 172, 0, 195, 0, 0, 176,
1773 196, 0, 197, 198, 199, 0, 0, 0, 0, 200, 0, 0, 177, 178, 0, 179,
1774 0, 0, 0, 0, 1, 0, 180, 2, 632, 0, 0, 0, 0, 0, 0, 182,
1775 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 3, 4, 203, 185, 0, 0,
1776 0, 0, 0, 0, 0, 187, 5, 189, 190, 191, 192, 6, 7, 0, 0, 0,
1777 0, 0, 0, 0, 193, 194, 0, 0, 0, 0, 8, 195, 0, 0, 0, 196,
1778 9, 197, 198, 199, 0, 0, 0, 0, 200, 0, 0, 171, 172, 0, 0, 0,
1779 0, 176, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0,
1780 0, 179, 0, 0, 0, 0, 0, 0, 496, 11, 0, 203, 0, 0, 0, 12,
1781 13, 497, 0, 0, 14, 0, 0, 183, 15, 0, 16, 0, 17, 0, 0, 185,
1782 0, 0, 0, 0, 0, 0, 0, 187, 0, 189, 18, 0, 192, 0, 0, 0,
1783 0, 0, 0, 0, 0, 0, 193, 194, 0, 0, 0, 0, 0, 195, 0, 0,
1784 0, 196, 0, 197, 198, 199, 0, 0, 0, 0, 200};
1787 3, 157, 166, 160, 493, 299, 167, 168, 10, 60, 203, 358, 359, 16, 383, 30, 3,
1788 6, 228, 70, 167, 168, 9, 297, 113, 76, 6, 6, 329, 253, 331, 88, 306, 307,
1789 308, 12, 13, 76, 202, 12, 13, 12, 13, 3, 12, 13, 12, 13, 12, 13, 12,
1790 13, 24, 8, 14, 202, 59, 8, 12, 13, 12, 13, 13, 337, 67, 12, 13, 277,
1791 3, 72, 76, 155, 156, 234, 17, 18, 19, 20, 21, 44, 87, 41, 24, 315, 19,
1792 574, 575, 125, 44, 23, 62, 255, 248, 96, 97, 98, 99, 290, 58, 31, 17, 18,
1793 19, 20, 21, 162, 12, 13, 111, 341, 17, 18, 19, 20, 21, 330, 448, 332, 69,
1794 283, 344, 71, 111, 161, 75, 286, 14, 291, 60, 293, 64, 134, 296, 294, 137, 436,
1795 118, 438, 302, 286, 90, 66, 303, 304, 159, 446, 235, 294, 372, 518, 360, 361, 446,
1796 317, 318, 161, 303, 304, 452, 118, 125, 163, 323, 324, 325, 326, 327, 328, 12, 13,
1797 130, 332, 159, 162, 335, 48, 323, 324, 325, 326, 327, 328, 162, 162, 161, 332, 131,
1798 160, 335, 160, 679, 146, 160, 161, 160, 137, 160, 131, 160, 102, 506, 152, 162, 159,
1799 127, 506, 160, 3, 160, 541, 98, 51, 544, 160, 159, 121, 33, 159, 51, 566, 163,
1800 118, 437, 148, 227, 102, 17, 18, 19, 20, 21, 43, 115, 426, 398, 399, 542, 160,
1801 453, 395, 10, 542, 406, 407, 161, 546, 249, 115, 542, 523, 118, 254, 462, 160, 24,
1802 51, 52, 531, 161, 17, 18, 19, 20, 21, 147, 158, 83, 84, 0, 17, 18, 19,
1803 20, 21, 435, 92, 137, 121, 118, 147, 3, 4, 112, 493, 161, 118, 150, 155, 435,
1804 482, 118, 452, 453, 25, 134, 505, 28, 161, 159, 107, 464, 24, 25, 3, 144, 452,
1805 453, 147, 3, 470, 466, 144, 142, 364, 615, 47, 48, 12, 13, 127, 3, 51, 3,
1806 119, 488, 48, 9, 59, 9, 485, 159, 7, 64, 65, 486, 30, 59, 166, 134, 3,
1807 4, 64, 12, 13, 82, 3, 503, 79, 144, 501, 514, 508, 10, 85, 3, 74, 76,
1808 567, 77, 362, 30, 10, 85, 527, 574, 575, 576, 577, 529, 160, 82, 160, 104, 162,
1809 14, 15, 16, 17, 18, 19, 20, 21, 529, 124, 545, 115, 160, 161, 118, 130, 118,
1810 584, 118, 33, 126, 19, 20, 21, 545, 113, 132, 133, 160, 126, 115, 137, 94, 147,
1811 96, 141, 118, 143, 160, 145, 137, 160, 161, 147, 160, 161, 143, 109, 110, 158, 147,
1812 155, 155, 159, 12, 13, 153, 154, 588, 597, 3, 4, 5, 155, 160, 161, 9, 605,
1813 606, 83, 84, 160, 161, 608, 3, 4, 5, 3, 92, 663, 9, 160, 161, 9, 160,
1814 161, 138, 608, 160, 161, 620, 151, 630, 93, 13, 679, 680, 627, 17, 18, 19, 20,
1815 21, 36, 131, 3, 644, 637, 6, 160, 161, 160, 10, 11, 6, 41, 14, 160, 161,
1816 17, 18, 19, 3, 160, 161, 14, 24, 68, 666, 160, 161, 29, 160, 161, 160, 161,
1817 34, 35, 159, 37, 38, 39, 40, 160, 161, 13, 160, 159, 74, 17, 18, 19, 20,
1818 21, 150, 53, 54, 3, 56, 17, 18, 19, 20, 21, 62, 63, 160, 161, 160, 161,
1819 68, 160, 161, 157, 72, 160, 161, 159, 148, 76, 78, 162, 159, 159, 82, 159, 112,
1820 159, 86, 76, 159, 159, 159, 91, 159, 159, 94, 95, 96, 97, 98, 99, 159, 159,
1821 159, 159, 159, 125, 585, 161, 159, 109, 110, 139, 140, 101, 142, 125, 116, 44, 125,
1822 161, 120, 3, 122, 123, 124, 68, 159, 125, 6, 129, 162, 3, 161, 10, 6, 137,
1823 160, 3, 10, 11, 165, 15, 14, 161, 144, 17, 18, 19, 159, 6, 166, 10, 161,
1824 3, 64, 15, 159, 29, 6, 159, 61, 3, 34, 35, 164, 37, 38, 39, 40, 159,
1825 3, 14, 15, 16, 17, 18, 19, 20, 21, 3, 159, 53, 54, 125, 56, 159, 76,
1826 160, 667, 668, 33, 63, 163, 160, 67, 160, 68, 160, 160, 3, 72, 80, 161, 13,
1827 159, 3, 78, 98, 3, 163, 82, 98, 125, 159, 86, 159, 111, 8, 159, 91, 159,
1828 76, 94, 95, 96, 97, 98, 99, 10, 36, 81, 6, 3, 98, 159, 3, 160, 109,
1829 110, 160, 83, 84, 160, 160, 116, 160, 130, 159, 120, 92, 122, 123, 124, 159, 161,
1830 130, 10, 129, 3, 3, 160, 160, 6, 159, 0, 159, 10, 11, 160, 19, 363, 484,
1831 144, 17, 18, 241, 495, 587, 470, 462, 24, 18, 350, 27, 535, 29, 471, 159, 13,
1832 333, 34, 35, 164, 37, 38, 39, 40, 290, 387, 13, 24, 25, 154, 161, 282, 301,
1833 -1, -1, -1, 53, 54, -1, 56, -1, -1, -1, -1, -1, -1, 63, -1, -1, -1,
1834 -1, 48, -1, -1, -1, 72, -1, -1, -1, -1, -1, 78, 59, -1, -1, 82, -1,
1835 64, -1, 86, -1, -1, -1, -1, 91, -1, -1, 94, 95, 96, 97, 98, 99, 3,
1836 -1, -1, 6, -1, 85, -1, 10, 11, 109, 110, 14, -1, -1, 17, 18, 116, 117,
1837 -1, -1, 120, -1, 122, 123, 124, -1, 29, -1, -1, 129, -1, 34, 35, -1, 37,
1838 38, 39, 40, -1, -1, -1, -1, -1, -1, 144, -1, 126, -1, -1, -1, 53, 54,
1839 -1, 56, -1, -1, -1, 137, -1, 159, 63, -1, -1, 143, 164, 68, -1, 147, -1,
1840 72, -1, -1, -1, 153, 154, 78, -1, -1, -1, 82, -1, -1, -1, 86, -1, -1,
1841 -1, -1, 91, -1, -1, 94, 95, 96, 97, 98, 99, 3, -1, -1, 6, -1, -1,
1842 -1, 10, 11, 109, 110, -1, -1, -1, 17, 18, 116, -1, -1, -1, 120, -1, 122,
1843 123, 124, -1, 29, -1, -1, 129, -1, 34, 35, -1, 37, 38, 39, 40, -1, -1,
1844 -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, 53, 54, -1, 56, -1, -1, -1,
1845 -1, -1, 159, 63, -1, -1, -1, 164, -1, -1, -1, -1, 72, -1, -1, -1, -1,
1846 -1, 78, -1, -1, -1, 82, -1, -1, -1, 86, -1, -1, -1, -1, 91, -1, -1,
1847 94, 95, 96, 97, 98, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 110,
1848 -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, -1, 122, 123, 124, -1, -1, -1,
1849 -1, 129, -1, 3, -1, -1, 6, -1, -1, 137, 10, 11, -1, -1, -1, -1, 144,
1850 17, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, 159, -1, -1,
1851 34, 35, 164, 37, 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1852 -1, -1, 53, 54, -1, 56, -1, -1, -1, -1, -1, -1, 63, -1, -1, -1, -1,
1853 -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, 78, -1, -1, -1, 82, -1, -1,
1854 -1, 86, -1, -1, -1, -1, 91, -1, -1, 94, 95, 96, 97, 98, 99, 3, -1,
1855 -1, 6, -1, -1, -1, 10, 11, 109, 110, -1, -1, -1, 17, 18, 116, -1, -1,
1856 -1, 120, -1, 122, 123, 124, -1, 29, -1, -1, 129, -1, 34, 35, -1, 37, 38,
1857 39, 40, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, 53, 54, -1,
1858 56, -1, -1, -1, -1, -1, 159, 63, -1, -1, -1, 164, -1, -1, -1, -1, 72,
1859 -1, -1, -1, -1, -1, 78, -1, -1, -1, 82, 6, -1, -1, 86, 10, 11, -1,
1860 -1, 91, -1, -1, 94, 95, 96, 97, 98, 99, -1, -1, -1, -1, -1, -1, 29,
1861 -1, -1, 109, 110, 34, 35, -1, -1, -1, 116, 40, -1, -1, 120, -1, 122, 123,
1862 124, -1, -1, -1, -1, 129, 53, 54, -1, 56, -1, -1, -1, -1, -1, -1, 63,
1863 -1, -1, -1, 144, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, 78, -1, -1,
1864 -1, 159, -1, -1, 6, 86, 164, -1, 10, 11, -1, -1, -1, 94, -1, 96, 97,
1865 98, 99, -1, -1, -1, -1, -1, -1, -1, -1, 29, 109, 110, -1, -1, 34, 35,
1866 -1, 116, -1, -1, 40, 120, -1, 122, 123, 124, -1, -1, -1, -1, 129, -1, -1,
1867 53, 54, -1, 56, -1, 137, -1, -1, -1, -1, 63, -1, 144, -1, -1, -1, -1,
1868 -1, -1, 72, -1, -1, -1, -1, -1, 78, -1, -1, -1, -1, 6, -1, 164, 86,
1869 10, 11, -1, -1, -1, -1, -1, 94, -1, 96, 97, 98, 99, -1, -1, -1, -1,
1870 -1, -1, 29, -1, -1, 109, 110, 34, 35, -1, -1, -1, 116, 40, -1, -1, 120,
1871 -1, 122, 123, 124, -1, -1, -1, -1, 129, 53, 54, -1, 56, -1, -1, -1, -1,
1872 -1, -1, 63, -1, -1, -1, 144, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1,
1873 78, -1, -1, -1, -1, -1, -1, 6, 86, 164, -1, 10, 11, -1, -1, -1, 94,
1874 -1, 96, 97, 98, 99, -1, -1, -1, -1, -1, -1, -1, -1, 29, 109, 110, -1,
1875 -1, 34, 35, -1, 116, -1, -1, 40, 120, -1, 122, 123, 124, -1, -1, -1, -1,
1876 129, -1, -1, 53, 54, -1, 56, -1, -1, -1, -1, 25, -1, 63, 28, 144, -1,
1877 -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, 78, -1, -1, -1, -1, 47,
1878 48, 164, 86, -1, -1, -1, -1, -1, -1, -1, 94, 59, 96, 97, 98, 99, 64,
1879 65, -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, 79, 116, -1,
1880 -1, -1, 120, 85, 122, 123, 124, -1, -1, -1, -1, 129, -1, -1, 34, 35, -1,
1881 -1, -1, -1, 40, -1, 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53,
1882 -1, -1, 56, -1, -1, -1, -1, -1, -1, 63, 126, -1, 164, -1, -1, -1, 132,
1883 133, 72, -1, -1, 137, -1, -1, 78, 141, -1, 143, -1, 145, -1, -1, 86, -1,
1884 -1, -1, -1, -1, -1, -1, 94, -1, 96, 159, -1, 99, -1, -1, -1, -1, -1,
1885 -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, -1,
1886 122, 123, 124, -1, -1, -1, -1, 129};
1901 #if YY_Parser_USE_GOTO != 0
1909 #define YYGOTO(lb) \
1911 yy_gotostate = lb; \
1914 #define YYBEGINGOTO \
1915 enum yy_labels yy_gotostate = yygotostart; \
1917 switch (yy_gotostate) { \
1919 #define YYLABEL(lb) \
1925 #define YYBEGINDECLARELABEL enum yy_labels { yygotostart
1926 #define YYDECLARELABEL(lb) , lb
1927 #define YYENDDECLARELABEL \
1932 #define YYGOTO(lb) goto lb
1934 #define YYLABEL(lb) \
1937 #define YYBEGINDECLARELABEL
1938 #define YYDECLARELABEL(lb)
1939 #define YYENDDECLARELABEL
1958 #ifdef __HAVE_NO_ALLOCA
1959 int __alloca_free_ptr(
char* ptr,
char* ref) {
1965 #define __ALLOCA_alloca(size) malloc(size)
1966 #define __ALLOCA_free(ptr, ref) __alloca_free_ptr((char*)ptr, (char*)ref)
1968 #ifdef YY_Parser_LSP_NEEDED
1969 #define __ALLOCA_return(num) \
1970 return (__ALLOCA_free(yyss, yyssa) + __ALLOCA_free(yyvs, yyvsa) + \
1971 __ALLOCA_free(yyls, yylsa) + (num))
1973 #define __ALLOCA_return(num) \
1974 return (__ALLOCA_free(yyss, yyssa) + __ALLOCA_free(yyvs, yyvsa) + (num))
1977 #define __ALLOCA_return(num) return (num)
1978 #define __ALLOCA_alloca(size) alloca(size)
1979 #define __ALLOCA_free(ptr, ref)
1984 #define yyerrok (yyerrstatus = 0)
1985 #define yyclearin (YY_Parser_CHAR = YYEMPTY)
1988 #define YYACCEPT __ALLOCA_return(0)
1989 #define YYABORT __ALLOCA_return(1)
1990 #define YYERROR YYGOTO(yyerrlab1)
1995 #define YYFAIL YYGOTO(yyerrlab)
1996 #define YYRECOVERING() (!!yyerrstatus)
1997 #define YYBACKUP(token, value) \
1999 if (YY_Parser_CHAR == YYEMPTY && yylen == 1) { \
2000 YY_Parser_CHAR = (token), YY_Parser_LVAL = (value); \
2001 yychar1 = YYTRANSLATE(YY_Parser_CHAR); \
2005 YY_Parser_ERROR("syntax error: cannot back up"); \
2011 #define YYERRCODE 256
2013 #ifndef YY_Parser_PURE
2015 #define YYLEX YY_Parser_LEX()
2016 #ifndef YY_USE_CLASS
2022 #ifdef YY_Parser_LSP_NEEDED
2030 #ifdef YY_Parser_LSP_NEEDED
2031 #define YYLEX YY_Parser_LEX(&YY_Parser_LVAL, &YY_Parser_LLOC)
2033 #define YYLEX YY_Parser_LEX(&YY_Parser_LVAL)
2036 #ifndef YY_USE_CLASS
2037 #if YY_Parser_DEBUG != 0
2047 #define YYINITDEPTH 200
2058 #define YYMAXDEPTH 10000
2062 #define __yy_bcopy(FROM, TO, COUNT) __builtin_memcpy(TO, FROM, COUNT)
2072 static void __yy_bcopy(
char* from,
char* to,
int count)
2074 static void __yy_bcopy(from, to, count) char* from;
2096 #ifndef YY_USE_CLASS
2116 #ifdef YY_Parser_LSP_NEEDED
2118 YY_Parser_LTYPE* yyls = yylsa;
2119 YY_Parser_LTYPE* yylsp;
2121 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2123 #define YYPOPSTACK (yyvsp--, yyssp--)
2128 #ifdef YY_Parser_PURE
2132 #ifdef YY_Parser_LSP_NEEDED
2145 #if YY_Parser_DEBUG != 0
2147 fprintf(stderr,
"Starting parse\n");
2151 YY_Parser_NERRS = 0;
2161 #ifdef YY_Parser_LSP_NEEDED
2172 if (yyssp >= yyss + yystacksize - 1) {
2176 short* yyss1 =
yyss;
2177 #ifdef YY_Parser_LSP_NEEDED
2178 YY_Parser_LTYPE* yyls1 = yyls;
2182 int size = yyssp - yyss + 1;
2187 #ifdef YY_Parser_LSP_NEEDED
2190 yyoverflow(
"parser stack overflow",
2192 size *
sizeof(*yyssp),
2194 size *
sizeof(*yyvsp),
2196 size *
sizeof(*yylsp),
2199 yyoverflow(
"parser stack overflow",
2201 size *
sizeof(*yyssp),
2203 size *
sizeof(*yyvsp),
2209 #ifdef YY_Parser_LSP_NEEDED
2222 __yy_bcopy((
char*)yyss1, (
char*)yyss, size *
sizeof(*yyssp));
2225 __yy_bcopy((
char*)yyvs1, (
char*)yyvs, size *
sizeof(*yyvsp));
2227 #ifdef YY_Parser_LSP_NEEDED
2228 yyls = (YY_Parser_LTYPE*)
__ALLOCA_alloca(yystacksize *
sizeof(*yylsp));
2229 __yy_bcopy((
char*)yyls1, (
char*)yyls, size *
sizeof(*yylsp));
2234 yyssp = yyss + size - 1;
2235 yyvsp = yyvs + size - 1;
2236 #ifdef YY_Parser_LSP_NEEDED
2237 yylsp = yyls + size - 1;
2240 #if YY_Parser_DEBUG != 0
2242 fprintf(stderr,
"Stack size increased to %d\n", yystacksize);
2245 if (yyssp >= yyss + yystacksize - 1)
2249 #if YY_Parser_DEBUG != 0
2251 fprintf(stderr,
"Entering state %d\n", yystate);
2273 #if YY_Parser_DEBUG != 0
2275 fprintf(stderr,
"Reading a token: ");
2277 YY_Parser_CHAR =
YYLEX;
2282 if (YY_Parser_CHAR <= 0)
2285 YY_Parser_CHAR =
YYEOF;
2287 #if YY_Parser_DEBUG != 0
2289 fprintf(stderr,
"Now at end of input.\n");
2294 #if YY_Parser_DEBUG != 0
2296 fprintf(stderr,
"Next token is %d (%s", YY_Parser_CHAR, yytname[yychar1]);
2300 YYPRINT(stderr, YY_Parser_CHAR, YY_Parser_LVAL);
2302 fprintf(stderr,
")\n");
2325 }
else if (yyn == 0)
2333 #if YY_Parser_DEBUG != 0
2335 fprintf(stderr,
"Shifting token %d (%s), ", YY_Parser_CHAR, yytname[yychar1]);
2339 if (YY_Parser_CHAR !=
YYEOF)
2343 #ifdef YY_Parser_LSP_NEEDED
2365 yyval = yyvsp[1 - yylen];
2367 #if YY_Parser_DEBUG != 0
2371 fprintf(stderr,
"Reducing via rule %d (line %d), ", yyn, yyrline[yyn]);
2374 for (i = yyprhs[yyn]; yyrhs[
i] > 0; i++)
2375 fprintf(stderr,
"%s ", yytname[yyrhs[i]]);
2376 fprintf(stderr,
" -> %s\n", yytname[
yyr1[yyn]]);
2384 parseTrees.emplace_front(dynamic_cast<Stmt*>((yyvsp[-1].nodeval)->release()));
2391 parseTrees.emplace_front(dynamic_cast<Stmt*>((yyvsp[-1].nodeval)->release()));
2398 yyval.nodeval = yyvsp[0].nodeval;
2405 yyval.nodeval = yyvsp[0].nodeval;
2412 yyval.nodeval = yyvsp[0].nodeval;
2419 yyval.nodeval = yyvsp[0].nodeval;
2426 yyval.nodeval = yyvsp[0].nodeval;
2433 yyval.nodeval = yyvsp[0].nodeval;
2440 yyval.nodeval = yyvsp[0].nodeval;
2447 yyval.nodeval = yyvsp[0].nodeval;
2454 yyval.nodeval = yyvsp[0].nodeval;
2461 yyval.nodeval = yyvsp[0].nodeval;
2468 yyval.nodeval = yyvsp[0].nodeval;
2475 yyval.nodeval = yyvsp[0].nodeval;
2482 yyval.nodeval = yyvsp[0].nodeval;
2489 yyval.nodeval = yyvsp[0].nodeval;
2496 yyval.nodeval = yyvsp[0].nodeval;
2503 yyval.nodeval = yyvsp[0].nodeval;
2510 yyval.nodeval = yyvsp[0].nodeval;
2517 yyval.nodeval = yyvsp[0].nodeval;
2524 yyval.nodeval = yyvsp[0].nodeval;
2531 yyval.nodeval = yyvsp[0].nodeval;
2538 yyval.nodeval = yyvsp[0].nodeval;
2545 yyval.nodeval = yyvsp[0].nodeval;
2552 yyval.nodeval = yyvsp[0].nodeval;
2559 yyval.nodeval = yyvsp[0].nodeval;
2566 yyval.nodeval = yyvsp[0].nodeval;
2573 yyval.nodeval = yyvsp[0].nodeval;
2580 yyval.nodeval = yyvsp[0].nodeval;
2587 yyval.nodeval = yyvsp[0].nodeval;
2595 lexer.parsed_node_tokens_,
2596 new CreateDBStmt((yyvsp[0].stringval)->release(),
nullptr, yyvsp[-1].boolval));
2604 lexer.parsed_node_tokens_,
2606 reinterpret_cast<std::list<NameValueAssign*>*
>(
2607 (yyvsp[-1].listval)->release()),
2608 yyvsp[-4].boolval));
2616 lexer.parsed_node_tokens_,
2617 new DropDBStmt((yyvsp[0].stringval)->release(), yyvsp[-1].boolval));
2627 (yyvsp[0].stringval)->release()));
2635 lexer.parsed_node_tokens_,
2637 reinterpret_cast<std::list<NameValueAssign*>*
>(
2638 (yyvsp[-1].listval)->release())));
2646 lexer.parsed_node_tokens_,
new DropUserStmt((yyvsp[0].stringval)->release()));
2654 lexer.parsed_node_tokens_,
2656 reinterpret_cast<std::list<NameValueAssign*>*
>(
2657 (yyvsp[-1].listval)->release())));
2667 (yyvsp[0].stringval)->release()));
2682 yyval.listval = yyvsp[-2].listval;
2683 yyval.listval->push_back(yyvsp[0].nodeval);
2691 lexer.parsed_node_tokens_,
2693 dynamic_cast<Literal*>((yyvsp[0].nodeval)->release())));
2700 yyval.boolval =
true;
2707 yyval.boolval =
false;
2714 yyval.boolval =
true;
2721 yyval.boolval =
false;
2729 lexer.parsed_node_tokens_,
2731 (yyvsp[-1].stringval)->release(),
2734 reinterpret_cast<std::list<NameValueAssign*>*
>(
2735 (yyvsp[0].listval)->release())));
2743 lexer.parsed_node_tokens_,
2745 (yyvsp[-4].stringval)->release(),
2747 reinterpret_cast<std::list<TableElement*>*
>((yyvsp[-2].listval)->release()),
2750 reinterpret_cast<std::list<NameValueAssign*>*
>(
2751 (yyvsp[0].listval)->release())));
2759 lexer.parsed_node_tokens_,
2761 (yyvsp[-4].stringval)->release(),
2762 (yyvsp[-7].stringval)->release(),
2763 reinterpret_cast<std::list<TableElement*>*
>((yyvsp[-2].listval)->release()),
2766 reinterpret_cast<std::list<NameValueAssign*>*
>(
2767 (yyvsp[0].listval)->release())));
2775 lexer.parsed_node_tokens_,
2777 (yyvsp[-6].stringval)->release(),
2778 reinterpret_cast<std::list<TableElement*>*
>((yyvsp[-4].listval)->release()),
2779 (yyvsp[-1].stringval)->release(),
2780 reinterpret_cast<std::list<NameValueAssign*>*
>(
2781 (yyvsp[0].listval)->release())));
2789 lexer.parsed_node_tokens_,
2797 yyval.boolval =
true;
2804 yyval.boolval =
false;
2812 lexer.parsed_node_tokens_,
2813 new DropTableStmt((yyvsp[0].stringval)->release(), yyvsp[-1].boolval));
2832 (yyvsp[0].stringval)->release()));
2842 (yyvsp[-2].stringval)->release(),
2843 (yyvsp[0].stringval)->release()));
2858 yyval.listval = yyvsp[-2].listval;
2859 yyval.listval->push_back(yyvsp[0].nodeval);
2867 lexer.parsed_node_tokens_,
2869 dynamic_cast<ColumnDef*>((yyvsp[0].nodeval)->release())));
2877 lexer.parsed_node_tokens_,
2879 (yyvsp[-4].stringval)->release(),
2880 reinterpret_cast<std::list<ColumnDef*>*
>((yyvsp[-1].listval)->release())));
2890 (yyvsp[0].slistval)->release()));
2905 (yyvsp[-2].listval)->push_back(yyvsp[0].nodeval);
2912 yyval.stringval = yyvsp[0].stringval;
2920 lexer.parsed_node_tokens_,
2922 (yyvsp[-1].stringval)->release(),
2923 reinterpret_cast<std::list<NameValueAssign*>*
>(
2924 (yyvsp[0].listval)->release())));
2931 if (!boost::istarts_with(*(yyvsp[-4].stringval)->
get(),
"SELECT") &&
2932 !boost::istarts_with(*(yyvsp[-4].stringval)->
get(),
"WITH")) {
2933 throw std::runtime_error(
"SELECT or WITH statement expected");
2935 *(yyvsp[-4].stringval)->
get() +=
";";
2937 lexer.parsed_node_tokens_,
2939 (yyvsp[-1].stringval)->release(),
2940 reinterpret_cast<std::list<NameValueAssign*>*
>(
2941 (yyvsp[0].listval)->release())));
2949 lexer.parsed_node_tokens_,
2951 (yyvsp[-1].stringval)->release(),
2952 reinterpret_cast<std::list<NameValueAssign*>*
>(
2953 (yyvsp[0].listval)->release())));
2961 lexer.parsed_node_tokens_,
2963 (yyvsp[-1].stringval)->release(),
2964 reinterpret_cast<std::list<NameValueAssign*>*
>(
2965 (yyvsp[0].listval)->release())));
2973 lexer.parsed_node_tokens_,
new CreateRoleStmt((yyvsp[0].stringval)->release()));
2981 lexer.parsed_node_tokens_,
new DropRoleStmt((yyvsp[0].stringval)->release()));
2991 (yyvsp[-3].stringval)->release(),
2992 (yyvsp[-2].stringval)->release(),
2993 (yyvsp[0].slistval)->release()));
3001 lexer.parsed_node_tokens_,
3003 (yyvsp[-3].stringval)->release(),
3004 (yyvsp[-2].stringval)->release(),
3005 (yyvsp[0].slistval)->release()));
3015 (yyvsp[0].slistval)->release()));
3025 (yyvsp[0].slistval)->release()));
3033 lexer.parsed_node_tokens_,
3035 reinterpret_cast<std::list<NameValueAssign*>*
>(
3036 (yyvsp[0].listval)->release())));
3044 lexer.parsed_node_tokens_,
3046 reinterpret_cast<std::list<NameValueAssign*>*
>(
3047 (yyvsp[0].listval)->release())));
3062 yyval.listval = yyvsp[-2].listval;
3063 yyval.listval->push_back(yyvsp[0].nodeval);
3070 yyval.nodeval = yyvsp[0].nodeval;
3077 yyval.nodeval = yyvsp[0].nodeval;
3085 lexer.parsed_node_tokens_,
3086 new ColumnDef((yyvsp[-2].stringval)->release(),
3087 dynamic_cast<SQLType*>((yyvsp[-1].nodeval)->release()),
3088 dynamic_cast<CompressDef*>((yyvsp[0].nodeval)->release()),
3097 lexer.parsed_node_tokens_,
3099 (yyvsp[-3].stringval)->release(),
3100 dynamic_cast<SQLType*>((yyvsp[-2].nodeval)->release()),
3101 dynamic_cast<CompressDef*>((yyvsp[0].nodeval)->release()),
3102 dynamic_cast<ColumnConstraintDef*>((yyvsp[-1].nodeval)->release())));
3109 if (!boost::iequals(*(yyvsp[-1].stringval)->
get(),
"encoding"))
3110 throw std::runtime_error(
"Invalid identifier " + *(yyvsp[-1].stringval)->
get() +
3111 " in column definition.");
3112 delete (yyvsp[-1].stringval)->release();
3114 lexer.parsed_node_tokens_,
new CompressDef((yyvsp[0].stringval)->release(), 0));
3121 if (!boost::iequals(*(yyvsp[-4].stringval)->
get(),
"encoding"))
3122 throw std::runtime_error(
"Invalid identifier " + *(yyvsp[-4].stringval)->
get() +
3123 " in column definition.");
3124 delete (yyvsp[-4].stringval)->release();
3126 lexer.parsed_node_tokens_,
3127 new CompressDef((yyvsp[-3].stringval)->release(), (
int)yyvsp[-1].intval));
3158 if (!boost::iequals(*(yyvsp[0].stringval)->
get(),
"key"))
3159 throw std::runtime_error(
"Syntax error at " + *(yyvsp[0].stringval)->
get());
3169 lexer.parsed_node_tokens_,
3173 dynamic_cast<Literal*>((yyvsp[0].nodeval)->release())));
3181 lexer.parsed_node_tokens_,
3190 lexer.parsed_node_tokens_,
3199 lexer.parsed_node_tokens_,
3208 lexer.parsed_node_tokens_,
3217 lexer.parsed_node_tokens_,
3219 (yyvsp[-1].stringval)->release()));
3228 new UniqueDef(
false, (yyvsp[-1].slistval)->release()));
3235 if (!boost::iequals(*(yyvsp[-3].stringval)->
get(),
"key"))
3236 throw std::runtime_error(
"Syntax error at " + *(yyvsp[-3].stringval)->
get());
3239 new UniqueDef(
true, (yyvsp[-1].slistval)->release()));
3246 if (!boost::iequals(*(yyvsp[-5].stringval)->
get(),
"key"))
3247 throw std::runtime_error(
"Syntax error at " + *(yyvsp[-5].stringval)->
get());
3249 lexer.parsed_node_tokens_,
3251 (yyvsp[-3].slistval)->release(), (yyvsp[0].stringval)->release(),
nullptr));
3258 if (!boost::iequals(*(yyvsp[-8].stringval)->
get(),
"key"))
3259 throw std::runtime_error(
"Syntax error at " + *(yyvsp[-8].stringval)->
get());
3263 (yyvsp[-3].stringval)->release(),
3264 (yyvsp[-1].slistval)->release()));
3271 if (!boost::iequals(*(yyvsp[-3].stringval)->
get(),
"key"))
3272 throw std::runtime_error(
"Syntax error at " + *(yyvsp[-3].stringval)->
get());
3274 lexer.parsed_node_tokens_,
new ShardKeyDef(*(yyvsp[-1].stringval)->
get()));
3275 delete (yyvsp[-3].stringval)->release();
3276 delete (yyvsp[-1].stringval)->release();
3286 *(yyvsp[-3].stringval)->
get(),
3287 *(yyvsp[-1].stringval)->
get()));
3288 delete (yyvsp[-6].stringval)->release();
3289 delete (yyvsp[-3].stringval)->release();
3290 delete (yyvsp[-1].stringval)->release();
3298 lexer.parsed_node_tokens_,
3299 new CheckDef(dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release())));
3307 lexer.parsed_str_list_tokens_, 1, yyvsp[0].stringval);
3314 yyval.slistval = yyvsp[-2].slistval;
3315 yyval.slistval->push_back(yyvsp[0].stringval);
3322 yyval.listval = yyvsp[-1].listval;
3337 lexer.parsed_node_tokens_,
3338 new DropViewStmt((yyvsp[0].stringval)->release(), yyvsp[-1].boolval));
3352 yyval.slistval = yyvsp[-1].slistval;
3366 yyval.listval = yyvsp[0].listval;
3381 yyval.listval = yyvsp[-2].listval;
3382 yyval.listval->push_back(yyvsp[0].nodeval);
3390 lexer.parsed_node_tokens_,
3391 new OrderSpec(yyvsp[-2].intval,
nullptr, yyvsp[-1].boolval, yyvsp[0].boolval));
3399 lexer.parsed_node_tokens_,
3401 dynamic_cast<ColumnRef*>((yyvsp[-2].nodeval)->release()),
3410 yyval.boolval =
false;
3417 yyval.boolval =
false;
3424 yyval.boolval =
true;
3431 yyval.boolval =
false;
3438 yyval.boolval =
true;
3445 yyval.boolval =
false;
3453 lexer.parsed_node_tokens_,
3454 new DeleteStmt((yyvsp[-1].stringval)->release(),
3455 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3463 lexer.parsed_node_tokens_,
3465 (yyvsp[-5].stringval)->release(),
3466 (yyvsp[-4].slistval)->release(),
3467 reinterpret_cast<std::list<Expr*>*
>((yyvsp[-1].listval)->release())));
3475 lexer.parsed_node_tokens_,
3477 (yyvsp[0].stringval)->release(),
3478 (yyvsp[-1].slistval)->release()));
3485 yyval.boolval =
false;
3492 yyval.boolval =
false;
3499 yyval.boolval =
true;
3514 yyval.listval = yyvsp[-2].listval;
3515 yyval.listval->push_back(yyvsp[0].nodeval);
3523 lexer.parsed_node_tokens_,
3524 new Assignment((yyvsp[-2].stringval)->release(),
3525 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3533 lexer.parsed_node_tokens_,
3535 (yyvsp[-3].stringval)->release(),
3536 reinterpret_cast<std::list<Assignment*>*
>((yyvsp[-1].listval)->release()),
3537 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3551 yyval.nodeval = yyvsp[0].nodeval;
3558 yyval.intval = yyvsp[0].intval;
3559 if (yyval.intval <= 0)
3560 throw std::runtime_error(
"LIMIT must be positive.");
3581 yyval.intval = yyvsp[0].intval;
3588 if (!boost::iequals(*(yyvsp[0].stringval)->
get(),
"row") &&
3589 !boost::iequals(*(yyvsp[0].stringval)->
get(),
"rows"))
3590 throw std::runtime_error(
"Invalid word in OFFSET clause " +
3591 *(yyvsp[0].stringval)->
get());
3592 delete (yyvsp[0].stringval)->release();
3593 yyval.intval = yyvsp[-1].intval;
3608 lexer.parsed_node_tokens_,
3610 dynamic_cast<QueryExpr*>((yyvsp[-3].nodeval)->release()),
3611 reinterpret_cast<std::list<OrderSpec*>*
>((yyvsp[-2].listval)->release()),
3620 yyval.nodeval = yyvsp[0].nodeval;
3628 lexer.parsed_node_tokens_,
3630 dynamic_cast<QueryExpr*>((yyvsp[-2].nodeval)->release()),
3631 dynamic_cast<QueryExpr*>((yyvsp[0].nodeval)->release())));
3639 lexer.parsed_node_tokens_,
3641 dynamic_cast<QueryExpr*>((yyvsp[-3].nodeval)->release()),
3642 dynamic_cast<QueryExpr*>((yyvsp[0].nodeval)->release())));
3649 yyval.nodeval = yyvsp[0].nodeval;
3656 yyval.nodeval = yyvsp[-1].nodeval;
3664 lexer.parsed_node_tokens_,
3667 reinterpret_cast<std::list<SelectEntry*>*
>((yyvsp[-4].listval)->release()),
3668 reinterpret_cast<std::list<TableRef*>*
>((yyvsp[-3].listval)->release()),
3669 dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
3670 reinterpret_cast<std::list<Expr*>*
>((yyvsp[-1].listval)->release()),
3671 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3678 yyval.listval = yyvsp[0].listval;
3692 yyval.listval = yyvsp[0].listval;
3707 yyval.listval = yyvsp[-2].listval;
3708 yyval.listval->push_back(yyvsp[0].nodeval);
3716 lexer.parsed_node_tokens_,
new TableRef((yyvsp[0].stringval)->release()));
3725 new TableRef((yyvsp[-1].stringval)->release(),
3726 (yyvsp[0].stringval)->release()));
3733 yyval.nodeval = yyvsp[0].nodeval;
3747 yyval.listval = yyvsp[0].listval;
3762 yyval.listval = yyvsp[-2].listval;
3763 yyval.listval->push_back(yyvsp[0].nodeval);
3777 yyval.nodeval = yyvsp[0].nodeval;
3785 lexer.parsed_node_tokens_,
3787 dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
3788 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3796 lexer.parsed_node_tokens_,
3798 dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
3799 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3807 lexer.parsed_node_tokens_,
3809 kNOT, dynamic_cast<Expr*>((yyvsp[0].nodeval)->release()),
nullptr));
3816 yyval.nodeval = yyvsp[-1].nodeval;
3823 yyval.nodeval = yyvsp[0].nodeval;
3830 yyval.nodeval = yyvsp[0].nodeval;
3837 yyval.nodeval = yyvsp[0].nodeval;
3844 yyval.nodeval = yyvsp[0].nodeval;
3851 yyval.nodeval = yyvsp[0].nodeval;
3858 yyval.nodeval = yyvsp[0].nodeval;
3865 yyval.nodeval = yyvsp[0].nodeval;
3872 yyval.nodeval = yyvsp[0].nodeval;
3879 yyval.nodeval = yyvsp[0].nodeval;
3887 lexer.parsed_node_tokens_,
3889 dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
3890 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3898 lexer.parsed_node_tokens_,
3901 dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
3902 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3911 lexer.parsed_node_tokens_,
3913 dynamic_cast<Expr*>((yyvsp[-5].nodeval)->release()),
3914 dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
3915 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3923 lexer.parsed_node_tokens_,
3925 dynamic_cast<Expr*>((yyvsp[-4].nodeval)->release()),
3926 dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
3927 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3935 lexer.parsed_node_tokens_,
3938 dynamic_cast<Expr*>((yyvsp[-4].nodeval)->release()),
3939 dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release()),
3940 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3948 lexer.parsed_node_tokens_,
3951 dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release()),
3952 dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release()),
3953 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3961 lexer.parsed_node_tokens_,
3964 dynamic_cast<Expr*>((yyvsp[-4].nodeval)->release()),
3965 dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release()),
3966 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3974 lexer.parsed_node_tokens_,
3977 dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release()),
3978 dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release()),
3979 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3993 std::string escape_tok = *(yyvsp[-1].stringval)->
get();
3994 std::transform(escape_tok.begin(), escape_tok.end(), escape_tok.begin(), ::tolower);
3995 if (escape_tok !=
"escape") {
3996 throw std::runtime_error(
"Syntax error: wrong escape specifier");
3998 delete (yyvsp[-1].stringval)->release();
3999 yyval.nodeval = yyvsp[0].nodeval;
4007 lexer.parsed_node_tokens_,
4008 new IsNullExpr(
true, dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release())));
4016 lexer.parsed_node_tokens_,
4017 new IsNullExpr(
false, dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release())));
4025 lexer.parsed_node_tokens_,
4027 dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release()),
4028 dynamic_cast<SubqueryExpr*>((yyvsp[0].nodeval)->release())));
4036 lexer.parsed_node_tokens_,
4038 dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
4039 dynamic_cast<SubqueryExpr*>((yyvsp[0].nodeval)->release())));
4047 lexer.parsed_node_tokens_,
4050 dynamic_cast<Expr*>((yyvsp[-5].nodeval)->release()),
4051 reinterpret_cast<std::list<Expr*>*
>((yyvsp[-1].listval)->release())));
4059 lexer.parsed_node_tokens_,
4062 dynamic_cast<Expr*>((yyvsp[-4].nodeval)->release()),
4063 reinterpret_cast<std::list<Expr*>*
>((yyvsp[-1].listval)->release())));
4078 yyval.listval = yyvsp[-2].listval;
4079 yyval.listval->push_back(yyvsp[0].nodeval);
4087 lexer.parsed_node_tokens_,
4090 dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release()),
4091 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
4099 lexer.parsed_node_tokens_,
4102 dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release()),
4103 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
4110 yyval.opval = yyvsp[0].opval;
4117 yyval.opval = yyvsp[0].opval;
4125 lexer.parsed_node_tokens_,
4126 new ExistsExpr(dynamic_cast<QuerySpec*>((yyvsp[0].nodeval)->release())));
4134 lexer.parsed_node_tokens_,
4135 new SubqueryExpr(dynamic_cast<QuerySpec*>((yyvsp[-1].nodeval)->release())));
4143 lexer.parsed_node_list_tokens_,
4145 new ExprPair(dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
4146 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
4153 yyval.listval = yyvsp[-4].listval;
4154 yyval.listval->push_back(
4155 new ExprPair(dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
4156 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
4163 yyval.nodeval = yyvsp[0].nodeval;
4178 lexer.parsed_node_tokens_,
4180 reinterpret_cast<std::list<ExprPair*>*
>((yyvsp[-2].listval)->release()),
4181 dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release())));
4188 std::list<ExprPair*>* when_then_list =
new std::list<ExprPair*>(
4190 new ExprPair(dynamic_cast<Expr*>((yyvsp[-5].nodeval)->release()),
4191 dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release())));
4193 lexer.parsed_node_tokens_,
4195 dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release())));
4202 std::list<ExprPair*>* when_then_list =
new std::list<ExprPair*>(
4204 new ExprPair(dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release()),
4205 dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release())));
4207 new CaseExpr(when_then_list,
nullptr));
4215 lexer.parsed_node_tokens_,
4216 new CharLengthExpr(dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release()),
true));
4224 lexer.parsed_node_tokens_,
4225 new CharLengthExpr(dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release()),
false));
4233 lexer.parsed_node_tokens_,
4235 dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release()),
4236 dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release())));
4244 lexer.parsed_node_tokens_,
4246 dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
4247 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
4255 lexer.parsed_node_tokens_,
4257 dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
4258 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
4266 lexer.parsed_node_tokens_,
4268 dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
4269 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
4277 lexer.parsed_node_tokens_,
4279 dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
4280 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
4288 lexer.parsed_node_tokens_,
4290 dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
4291 dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
4299 lexer.parsed_node_tokens_,
4301 dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release()),
4302 dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release())));
4309 yyval.nodeval = yyvsp[0].nodeval;
4317 lexer.parsed_node_tokens_,
4319 kUMINUS, dynamic_cast<Expr*>((yyvsp[0].nodeval)->release()),
nullptr));
4326 yyval.nodeval = yyvsp[0].nodeval;
4333 yyval.nodeval = yyvsp[0].nodeval;
4340 yyval.nodeval = yyvsp[0].nodeval;
4347 yyval.nodeval = yyvsp[-1].nodeval;
4355 lexer.parsed_node_tokens_,
4356 new CastExpr(dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release()),
4357 dynamic_cast<SQLType*>((yyvsp[-1].nodeval)->release())));
4364 yyval.nodeval = yyvsp[0].nodeval;
4371 yyval.nodeval = yyvsp[0].nodeval;
4378 yyval.nodeval = yyvsp[0].nodeval;
4385 throw std::runtime_error(
"Empty select entry");
4393 lexer.parsed_node_tokens_,
4394 new SelectEntry(dynamic_cast<Expr*>((yyvsp[0].nodeval)->release()),
nullptr));
4402 lexer.parsed_node_tokens_,
4403 new SelectEntry(dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release()),
4404 (yyvsp[0].stringval)->release()));
4412 lexer.parsed_node_tokens_,
4413 new SelectEntry(dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
4414 (yyvsp[0].stringval)->release()));
4421 throw std::runtime_error(
"Empty select entry list");
4436 yyval.listval = yyvsp[-2].listval;
4437 yyval.listval->push_back(yyvsp[0].nodeval);
4444 yyval.nodeval = yyvsp[0].nodeval;
4460 lexer.parsed_node_tokens_,
new FunctionRef((yyvsp[-3].stringval)->release()));
4468 lexer.parsed_node_tokens_,
4471 dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release())));
4479 lexer.parsed_node_tokens_,
4481 dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release())));
4489 lexer.parsed_node_tokens_,
4491 dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release())));
4499 lexer.parsed_node_tokens_,
new StringLiteral((yyvsp[0].stringval)->release()));
4522 delete dynamic_cast<Expr*
>((yyvsp[-1].nodeval)->release());
4532 lexer.parsed_node_tokens_,
new FixedPtLiteral((yyvsp[0].stringval)->release()));
4556 lexer.parsed_node_tokens_,
4558 dynamic_cast<SQLType*>((yyvsp[-1].nodeval)->release())));
4566 lexer.parsed_node_tokens_,
4568 reinterpret_cast<std::list<Expr*>*
>((yyvsp[-1].listval)->release())));
4576 lexer.parsed_node_tokens_,
4578 reinterpret_cast<std::list<Expr*>*
>((yyvsp[-1].listval)->release())));
4601 yyval.listval = yyvsp[-2].listval;
4602 yyval.listval->push_back(yyvsp[0].nodeval);
4616 const auto uc_col_name =
4617 boost::to_upper_copy<std::string>(*(yyvsp[0].stringval)->
get());
4619 errors_.push_back(
"Cannot use a reserved keyword as table name: " +
4620 *(yyvsp[0].stringval)->
get());
4622 yyval.stringval = yyvsp[0].stringval;
4629 yyval.stringval = yyvsp[0].stringval;
4644 lexer.parsed_str_list_tokens_, 1, yyvsp[0].stringval);
4651 yyval.slistval = yyvsp[-2].slistval;
4652 yyval.slistval->push_back(yyvsp[0].stringval);
4660 lexer.parsed_str_list_tokens_, 1, yyvsp[0].stringval);
4667 yyval.slistval = yyvsp[-2].slistval;
4668 yyval.slistval->push_back(yyvsp[0].stringval);
4676 lexer.parsed_str_list_tokens_, 1, yyvsp[0].stringval);
4683 yyval.slistval = yyvsp[-2].slistval;
4684 yyval.slistval->push_back(yyvsp[0].stringval);
4925 lexer.parsed_node_tokens_,
new ColumnRef((yyvsp[0].stringval)->release()));
4934 new ColumnRef((yyvsp[-2].stringval)->release(),
4935 (yyvsp[0].stringval)->release()));
4943 lexer.parsed_node_tokens_,
4944 new ColumnRef((yyvsp[-2].stringval)->release(),
nullptr));
4951 if (yyvsp[0].intval < 0)
4952 throw std::runtime_error(
"No negative number in type definition.");
4953 yyval.intval = yyvsp[0].intval;
5017 lexer.parsed_node_tokens_,
5042 lexer.parsed_node_tokens_,
5148 new SQLType(static_cast<SQLTypes>(yyvsp[0].intval),
5158 yyval.nodeval = yyvsp[0].nodeval;
5165 yyval.nodeval = yyvsp[-2].nodeval;
5166 if (dynamic_cast<SQLType*>((yyval.nodeval)->get())->get_is_array())
5167 throw std::runtime_error(
"array of array not supported.");
5168 dynamic_cast<SQLType*
>((yyval.nodeval)->
get())->set_is_array(
true);
5175 yyval.nodeval = yyvsp[-3].nodeval;
5176 if (dynamic_cast<SQLType*>((yyval.nodeval)->get())->get_is_array())
5177 throw std::runtime_error(
"array of array not supported.");
5178 dynamic_cast<SQLType*
>((yyval.nodeval)->
get())->set_is_array(
true);
5179 dynamic_cast<SQLType*
>((yyval.nodeval)->
get())->set_array_size(yyvsp[-1].intval);
5216 new SQLType(static_cast<SQLTypes>(yyvsp[-1].intval),
5228 new SQLType(static_cast<SQLTypes>(yyvsp[-3].intval),
5240 new SQLType(static_cast<SQLTypes>(yyvsp[-1].intval),
5252 new SQLType(static_cast<SQLTypes>(yyvsp[-3].intval),
5262 const auto uc_col_name =
5263 boost::to_upper_copy<std::string>(*(yyvsp[0].stringval)->
get());
5265 errors_.push_back(
"Cannot use a reserved keyword as column name: " +
5266 *(yyvsp[0].stringval)->
get());
5268 yyval.stringval = yyvsp[0].stringval;
5275 yyval.stringval = yyvsp[0].stringval;
5282 yyval.stringval = yyvsp[0].stringval;
5291 #ifdef YY_Parser_LSP_NEEDED
5295 #if YY_Parser_DEBUG != 0
5297 short* ssp1 = yyss - 1;
5298 fprintf(stderr,
"state stack now");
5299 while (ssp1 != yyssp)
5300 fprintf(stderr,
" %d", *++ssp1);
5301 fprintf(stderr,
"\n");
5307 #ifdef YY_Parser_LSP_NEEDED
5310 yylsp->first_line = YY_Parser_LLOC.first_line;
5311 yylsp->first_column = YY_Parser_LLOC.first_column;
5312 yylsp->last_line = (yylsp - 1)->
last_line;
5313 yylsp->last_column = (yylsp - 1)->last_column;
5316 yylsp->last_line = (yylsp + yylen - 1)->
last_line;
5317 yylsp->last_column = (yylsp + yylen - 1)->last_column;
5329 if (yystate >= 0 && yystate <=
YYLAST &&
yycheck[yystate] == *yyssp)
5343 #ifdef YY_Parser_ERROR_VERBOSE
5353 for (x = (yyn < 0 ? -yyn : 0); x < (
sizeof(yytname) /
sizeof(
char*)); x++)
5355 size += strlen(yytname[x]) + 15, count++;
5356 msg = (
char*)malloc(size + 15);
5358 strcpy(msg,
"parse error");
5362 for (x = (yyn < 0 ? -yyn : 0); x < (
sizeof(yytname) /
sizeof(
char*)); x++)
5364 strcat(msg, count == 0 ?
", expecting `" :
" or `");
5365 strcat(msg, yytname[x]);
5382 if (yyerrstatus == 3) {
5386 if (YY_Parser_CHAR ==
YYEOF)
5389 #if YY_Parser_DEBUG != 0
5391 fprintf(stderr,
"Discarding token %d (%s).\n", YY_Parser_CHAR, yytname[yychar1]);
5411 if (yyn)
YYGOTO(yydefault);
5420 #ifdef YY_Parser_LSP_NEEDED
5424 #if YY_Parser_DEBUG != 0
5426 short* ssp1 = yyss - 1;
5427 fprintf(stderr,
"Error: state stack now");
5428 while (ssp1 != yyssp)
5429 fprintf(stderr,
" %d", *++ssp1);
5430 fprintf(stderr,
"\n");
5450 }
else if (yyn == 0)
5456 #if YY_Parser_DEBUG != 0
5458 fprintf(stderr,
"Shifting error token, ");
5462 #ifdef YY_Parser_LSP_NEEDED
static std::set< std::string > reserved_keywords
#define QUOTED_IDENTIFIER
#define YY_Parser_MEMBERS
#define YY_Parser_CONSTRUCTOR_INIT
YY_Parser_STYPE yyvsa[YYINITDEPTH]
#define parsed_str_tokens_
#define YY_Parser_PARSE_PARAM
#define YYDECLARELABEL(lb)
int YY_Parser_PARSE_PARAM_DEF
#define YY_Parser_ERROR_BODY
static const short yypact[]
static TrackedPtr< T > * make(std::vector< std::unique_ptr< TrackedPtr< T >>> &tracked_ptrs, Args &&...args)
static TrackedListPtr< T > * make(std::vector< std::unique_ptr< TrackedListPtr< T >>> &tracked_ptrs, Args &&...args)
Classes representing a parse tree.
static const short yypgoto[]
static void __yy_bcopy(from, to, count) char *from
static const short yyr2[]
static const short yytable[]
#define __ALLOCA_return(num)
#define YYBEGINDECLARELABEL
#define YY_Parser_DEBUG_FLAG
static TrackedListPtr< T > * makeEmpty()
TrackedPtr< Node > * nodeval
static TrackedPtr< T > * makeEmpty()
#define YY_Parser_LEX_BODY
TrackedPtr< std::string > * stringval
static const short yytranslate[]
#define __ALLOCA_alloca(size)
static const short yydefgoto[]
static const short yyr1[]
static const short yycheck[]
static const short yydefact[]
if(yyssp >=yyss+yystacksize-1)
#define __ALLOCA_free(ptr, ref)
#define YYENDDECLARELABEL
TrackedListPtr< std::string > * slistval
TrackedListPtr< Node > * listval