diff --git a/src/parser/bison_parser.cpp b/src/parser/bison_parser.cpp index 3e815cc..2ffda3c 100644 --- a/src/parser/bison_parser.cpp +++ b/src/parser/bison_parser.cpp @@ -170,128 +170,128 @@ extern int hsql_debug; SQL_STRING = 259, SQL_FLOATVAL = 260, SQL_INTVAL = 261, - SQL_NOTEQUALS = 262, - SQL_LESSEQ = 263, - SQL_GREATEREQ = 264, - SQL_DEALLOCATE = 265, - SQL_PARAMETERS = 266, - SQL_INTERSECT = 267, - SQL_TEMPORARY = 268, - SQL_TIMESTAMP = 269, - SQL_DISTINCT = 270, - SQL_NVARCHAR = 271, - SQL_RESTRICT = 272, - SQL_TRUNCATE = 273, - SQL_ANALYZE = 274, - SQL_BETWEEN = 275, - SQL_CASCADE = 276, - SQL_COLUMNS = 277, - SQL_CONTROL = 278, - SQL_DEFAULT = 279, - SQL_EXECUTE = 280, - SQL_EXPLAIN = 281, - SQL_HISTORY = 282, - SQL_INTEGER = 283, - SQL_NATURAL = 284, - SQL_PREPARE = 285, - SQL_PRIMARY = 286, - SQL_SCHEMAS = 287, - SQL_SPATIAL = 288, - SQL_VIRTUAL = 289, - SQL_BEFORE = 290, - SQL_COLUMN = 291, - SQL_CREATE = 292, - SQL_DELETE = 293, - SQL_DIRECT = 294, - SQL_DOUBLE = 295, - SQL_ESCAPE = 296, - SQL_EXCEPT = 297, - SQL_EXISTS = 298, - SQL_GLOBAL = 299, - SQL_HAVING = 300, - SQL_IMPORT = 301, - SQL_INSERT = 302, - SQL_ISNULL = 303, - SQL_OFFSET = 304, - SQL_RENAME = 305, - SQL_SCHEMA = 306, - SQL_SELECT = 307, - SQL_SORTED = 308, - SQL_TABLES = 309, - SQL_UNIQUE = 310, - SQL_UNLOAD = 311, - SQL_UPDATE = 312, - SQL_VALUES = 313, - SQL_AFTER = 314, - SQL_ALTER = 315, - SQL_CROSS = 316, - SQL_DELTA = 317, - SQL_GROUP = 318, - SQL_INDEX = 319, - SQL_INNER = 320, - SQL_LIMIT = 321, - SQL_LOCAL = 322, - SQL_MERGE = 323, - SQL_MINUS = 324, - SQL_ORDER = 325, - SQL_OUTER = 326, - SQL_RIGHT = 327, - SQL_TABLE = 328, - SQL_UNION = 329, - SQL_USING = 330, - SQL_WHERE = 331, - SQL_CALL = 332, - SQL_CASE = 333, - SQL_DATE = 334, - SQL_DESC = 335, - SQL_DROP = 336, - SQL_ELSE = 337, - SQL_FILE = 338, - SQL_FROM = 339, - SQL_FULL = 340, - SQL_HASH = 341, - SQL_HINT = 342, - SQL_INTO = 343, - SQL_JOIN = 344, - SQL_LEFT = 345, - SQL_LIKE = 346, - SQL_LOAD = 347, - SQL_NULL = 348, - SQL_PART = 349, - SQL_PLAN = 350, - SQL_SHOW = 351, - SQL_TEXT = 352, - SQL_THEN = 353, - SQL_TIME = 354, - SQL_VIEW = 355, - SQL_WHEN = 356, - SQL_WITH = 357, - SQL_ADD = 358, - SQL_ALL = 359, - SQL_AND = 360, - SQL_ASC = 361, - SQL_CSV = 362, - SQL_END = 363, - SQL_FOR = 364, - SQL_INT = 365, - SQL_KEY = 366, - SQL_NOT = 367, - SQL_OFF = 368, - SQL_SET = 369, - SQL_TBL = 370, - SQL_TOP = 371, - SQL_AS = 372, - SQL_BY = 373, - SQL_IF = 374, - SQL_IN = 375, - SQL_IS = 376, - SQL_OF = 377, - SQL_ON = 378, - SQL_OR = 379, - SQL_TO = 380, - SQL_EQUALS = 381, - SQL_LESS = 382, - SQL_GREATER = 383, + SQL_DEALLOCATE = 262, + SQL_PARAMETERS = 263, + SQL_INTERSECT = 264, + SQL_TEMPORARY = 265, + SQL_TIMESTAMP = 266, + SQL_DISTINCT = 267, + SQL_NVARCHAR = 268, + SQL_RESTRICT = 269, + SQL_TRUNCATE = 270, + SQL_ANALYZE = 271, + SQL_BETWEEN = 272, + SQL_CASCADE = 273, + SQL_COLUMNS = 274, + SQL_CONTROL = 275, + SQL_DEFAULT = 276, + SQL_EXECUTE = 277, + SQL_EXPLAIN = 278, + SQL_HISTORY = 279, + SQL_INTEGER = 280, + SQL_NATURAL = 281, + SQL_PREPARE = 282, + SQL_PRIMARY = 283, + SQL_SCHEMAS = 284, + SQL_SPATIAL = 285, + SQL_VIRTUAL = 286, + SQL_BEFORE = 287, + SQL_COLUMN = 288, + SQL_CREATE = 289, + SQL_DELETE = 290, + SQL_DIRECT = 291, + SQL_DOUBLE = 292, + SQL_ESCAPE = 293, + SQL_EXCEPT = 294, + SQL_EXISTS = 295, + SQL_GLOBAL = 296, + SQL_HAVING = 297, + SQL_IMPORT = 298, + SQL_INSERT = 299, + SQL_ISNULL = 300, + SQL_OFFSET = 301, + SQL_RENAME = 302, + SQL_SCHEMA = 303, + SQL_SELECT = 304, + SQL_SORTED = 305, + SQL_TABLES = 306, + SQL_UNIQUE = 307, + SQL_UNLOAD = 308, + SQL_UPDATE = 309, + SQL_VALUES = 310, + SQL_AFTER = 311, + SQL_ALTER = 312, + SQL_CROSS = 313, + SQL_DELTA = 314, + SQL_GROUP = 315, + SQL_INDEX = 316, + SQL_INNER = 317, + SQL_LIMIT = 318, + SQL_LOCAL = 319, + SQL_MERGE = 320, + SQL_MINUS = 321, + SQL_ORDER = 322, + SQL_OUTER = 323, + SQL_RIGHT = 324, + SQL_TABLE = 325, + SQL_UNION = 326, + SQL_USING = 327, + SQL_WHERE = 328, + SQL_CALL = 329, + SQL_CASE = 330, + SQL_DATE = 331, + SQL_DESC = 332, + SQL_DROP = 333, + SQL_ELSE = 334, + SQL_FILE = 335, + SQL_FROM = 336, + SQL_FULL = 337, + SQL_HASH = 338, + SQL_HINT = 339, + SQL_INTO = 340, + SQL_JOIN = 341, + SQL_LEFT = 342, + SQL_LIKE = 343, + SQL_LOAD = 344, + SQL_NULL = 345, + SQL_PART = 346, + SQL_PLAN = 347, + SQL_SHOW = 348, + SQL_TEXT = 349, + SQL_THEN = 350, + SQL_TIME = 351, + SQL_VIEW = 352, + SQL_WHEN = 353, + SQL_WITH = 354, + SQL_ADD = 355, + SQL_ALL = 356, + SQL_AND = 357, + SQL_ASC = 358, + SQL_CSV = 359, + SQL_END = 360, + SQL_FOR = 361, + SQL_INT = 362, + SQL_KEY = 363, + SQL_NOT = 364, + SQL_OFF = 365, + SQL_SET = 366, + SQL_TBL = 367, + SQL_TOP = 368, + SQL_AS = 369, + SQL_BY = 370, + SQL_IF = 371, + SQL_IN = 372, + SQL_IS = 373, + SQL_OF = 374, + SQL_ON = 375, + SQL_OR = 376, + SQL_TO = 377, + SQL_EQUALS = 378, + SQL_NOTEQUALS = 379, + SQL_LESS = 380, + SQL_GREATER = 381, + SQL_LESSEQ = 382, + SQL_GREATEREQ = 383, SQL_NOTNULL = 384, SQL_UMINUS = 385 }; @@ -613,16 +613,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 48 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 463 +#define YYLAST 408 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 148 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 76 +#define YYNNTS 79 /* YYNRULES -- Number of rules. */ -#define YYNRULES 170 +#define YYNRULES 176 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 312 +#define YYNSTATES 326 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ @@ -642,7 +642,7 @@ static const yytype_uint8 yytranslate[] = 2, 2, 2, 2, 2, 2, 2, 137, 2, 2, 142, 143, 135, 133, 146, 134, 144, 136, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 145, - 128, 126, 129, 147, 2, 2, 2, 2, 2, 2, + 126, 123, 127, 147, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 140, 2, 141, 138, 2, 2, 2, 2, 2, @@ -673,32 +673,32 @@ static const yytype_uint8 yytranslate[] = 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 127, 130, 131, 132, 139 + 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, + 128, 129, 130, 131, 132, 139 }; #if HSQL_DEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 237, 237, 258, 259, 263, 264, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 285, 292, 295, 299, - 311, 319, 323, 333, 339, 345, 355, 356, 360, 361, - 365, 372, 373, 374, 375, 385, 389, 393, 405, 413, - 425, 431, 441, 442, 452, 461, 462, 466, 478, 479, - 483, 484, 488, 498, 512, 526, 527, 528, 532, 544, - 545, 549, 553, 558, 559, 563, 568, 572, 573, 576, - 577, 581, 582, 586, 590, 591, 592, 598, 599, 603, - 604, 605, 612, 613, 617, 618, 622, 629, 630, 631, - 632, 633, 634, 638, 639, 640, 641, 642, 643, 647, - 648, 649, 653, 654, 658, 659, 660, 661, 662, 663, - 664, 665, 666, 670, 671, 675, 676, 677, 678, 683, - 687, 688, 692, 693, 694, 695, 696, 697, 701, 705, - 709, 710, 714, 715, 716, 720, 725, 726, 730, 734, - 738, 750, 751, 761, 762, 768, 773, 774, 779, 789, - 797, 798, 803, 804, 808, 809, 817, 829, 830, 831, - 832, 833, 834, 835, 836, 837, 842, 851, 852, 857, - 858 + 0, 236, 236, 257, 258, 262, 266, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 291, 292, 297, 298, + 302, 306, 318, 325, 328, 332, 344, 352, 356, 366, + 372, 378, 388, 389, 393, 394, 398, 405, 406, 407, + 408, 418, 422, 426, 438, 446, 458, 464, 474, 475, + 485, 494, 495, 499, 511, 512, 516, 517, 521, 531, + 545, 559, 560, 561, 565, 577, 578, 582, 586, 591, + 592, 596, 601, 605, 606, 609, 610, 614, 615, 619, + 623, 624, 625, 631, 632, 636, 637, 638, 645, 646, + 650, 651, 655, 662, 663, 664, 665, 666, 667, 671, + 672, 673, 674, 675, 676, 680, 681, 682, 686, 687, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 703, + 704, 708, 709, 710, 711, 716, 720, 721, 725, 726, + 727, 728, 729, 730, 734, 738, 742, 743, 747, 748, + 749, 753, 758, 759, 763, 767, 771, 783, 784, 794, + 795, 801, 806, 807, 812, 822, 830, 831, 836, 837, + 841, 842, 850, 862, 863, 864, 865, 866, 867, 868, + 869, 870, 875, 884, 885, 890, 891 }; #endif @@ -708,43 +708,44 @@ static const yytype_uint16 yyrline[] = static const char *const yytname[] = { "$end", "error", "$undefined", "IDENTIFIER", "STRING", "FLOATVAL", - "INTVAL", "NOTEQUALS", "LESSEQ", "GREATEREQ", "DEALLOCATE", "PARAMETERS", - "INTERSECT", "TEMPORARY", "TIMESTAMP", "DISTINCT", "NVARCHAR", - "RESTRICT", "TRUNCATE", "ANALYZE", "BETWEEN", "CASCADE", "COLUMNS", - "CONTROL", "DEFAULT", "EXECUTE", "EXPLAIN", "HISTORY", "INTEGER", - "NATURAL", "PREPARE", "PRIMARY", "SCHEMAS", "SPATIAL", "VIRTUAL", - "BEFORE", "COLUMN", "CREATE", "DELETE", "DIRECT", "DOUBLE", "ESCAPE", - "EXCEPT", "EXISTS", "GLOBAL", "HAVING", "IMPORT", "INSERT", "ISNULL", - "OFFSET", "RENAME", "SCHEMA", "SELECT", "SORTED", "TABLES", "UNIQUE", - "UNLOAD", "UPDATE", "VALUES", "AFTER", "ALTER", "CROSS", "DELTA", - "GROUP", "INDEX", "INNER", "LIMIT", "LOCAL", "MERGE", "MINUS", "ORDER", - "OUTER", "RIGHT", "TABLE", "UNION", "USING", "WHERE", "CALL", "CASE", - "DATE", "DESC", "DROP", "ELSE", "FILE", "FROM", "FULL", "HASH", "HINT", - "INTO", "JOIN", "LEFT", "LIKE", "LOAD", "NULL", "PART", "PLAN", "SHOW", - "TEXT", "THEN", "TIME", "VIEW", "WHEN", "WITH", "ADD", "ALL", "AND", - "ASC", "CSV", "END", "FOR", "INT", "KEY", "NOT", "OFF", "SET", "TBL", - "TOP", "AS", "BY", "IF", "IN", "IS", "OF", "ON", "OR", "TO", "'='", - "EQUALS", "'<'", "'>'", "LESS", "GREATER", "NOTNULL", "'+'", "'-'", - "'*'", "'/'", "'%'", "'^'", "UMINUS", "'['", "']'", "'('", "')'", "'.'", - "';'", "','", "'?'", "$accept", "input", "statement_list", "statement", - "preparable_statement", "prepare_statement", "prepare_target_query", - "execute_statement", "import_statement", "import_file_type", "file_path", - "create_statement", "opt_not_exists", "column_def_commalist", - "column_def", "column_type", "drop_statement", "delete_statement", - "truncate_statement", "insert_statement", "opt_column_list", - "update_statement", "update_clause_commalist", "update_clause", - "select_statement", "select_with_paren", "select_no_paren", - "set_operator", "select_clause", "opt_distinct", "select_list", - "from_clause", "opt_where", "opt_group", "opt_having", "opt_order", - "order_list", "order_desc", "opt_order_type", "opt_top", "opt_limit", - "expr_list", "literal_list", "expr_alias", "expr", "operand", - "scalar_expr", "unary_expr", "binary_expr", "logic_expr", "in_expr", - "case_expr", "exists_expr", "comp_expr", "function_expr", "between_expr", - "column_name", "literal", "string_literal", "num_literal", "int_literal", - "star_expr", "param_expr", "table_ref", "table_ref_atomic", - "table_ref_commalist", "table_ref_name", "table_ref_name_no_alias", - "table_name", "alias", "opt_alias", "join_clause", "opt_join_type", - "join_condition", "opt_semicolon", "ident_commalist", YY_NULLPTR + "INTVAL", "DEALLOCATE", "PARAMETERS", "INTERSECT", "TEMPORARY", + "TIMESTAMP", "DISTINCT", "NVARCHAR", "RESTRICT", "TRUNCATE", "ANALYZE", + "BETWEEN", "CASCADE", "COLUMNS", "CONTROL", "DEFAULT", "EXECUTE", + "EXPLAIN", "HISTORY", "INTEGER", "NATURAL", "PREPARE", "PRIMARY", + "SCHEMAS", "SPATIAL", "VIRTUAL", "BEFORE", "COLUMN", "CREATE", "DELETE", + "DIRECT", "DOUBLE", "ESCAPE", "EXCEPT", "EXISTS", "GLOBAL", "HAVING", + "IMPORT", "INSERT", "ISNULL", "OFFSET", "RENAME", "SCHEMA", "SELECT", + "SORTED", "TABLES", "UNIQUE", "UNLOAD", "UPDATE", "VALUES", "AFTER", + "ALTER", "CROSS", "DELTA", "GROUP", "INDEX", "INNER", "LIMIT", "LOCAL", + "MERGE", "MINUS", "ORDER", "OUTER", "RIGHT", "TABLE", "UNION", "USING", + "WHERE", "CALL", "CASE", "DATE", "DESC", "DROP", "ELSE", "FILE", "FROM", + "FULL", "HASH", "HINT", "INTO", "JOIN", "LEFT", "LIKE", "LOAD", "NULL", + "PART", "PLAN", "SHOW", "TEXT", "THEN", "TIME", "VIEW", "WHEN", "WITH", + "ADD", "ALL", "AND", "ASC", "CSV", "END", "FOR", "INT", "KEY", "NOT", + "OFF", "SET", "TBL", "TOP", "AS", "BY", "IF", "IN", "IS", "OF", "ON", + "OR", "TO", "'='", "EQUALS", "NOTEQUALS", "'<'", "'>'", "LESS", + "GREATER", "LESSEQ", "GREATEREQ", "NOTNULL", "'+'", "'-'", "'*'", "'/'", + "'%'", "'^'", "UMINUS", "'['", "']'", "'('", "')'", "'.'", "';'", "','", + "'?'", "$accept", "input", "statement_list", "statement", + "preparable_statement", "opt_hints", "hint_list", "hint", + "prepare_statement", "prepare_target_query", "execute_statement", + "import_statement", "import_file_type", "file_path", "create_statement", + "opt_not_exists", "column_def_commalist", "column_def", "column_type", + "drop_statement", "delete_statement", "truncate_statement", + "insert_statement", "opt_column_list", "update_statement", + "update_clause_commalist", "update_clause", "select_statement", + "select_with_paren", "select_no_paren", "set_operator", "select_clause", + "opt_distinct", "select_list", "from_clause", "opt_where", "opt_group", + "opt_having", "opt_order", "order_list", "order_desc", "opt_order_type", + "opt_top", "opt_limit", "expr_list", "literal_list", "expr_alias", + "expr", "operand", "scalar_expr", "unary_expr", "binary_expr", + "logic_expr", "in_expr", "case_expr", "exists_expr", "comp_expr", + "function_expr", "between_expr", "column_name", "literal", + "string_literal", "num_literal", "int_literal", "star_expr", + "param_expr", "table_ref", "table_ref_atomic", "table_ref_commalist", + "table_ref_name", "table_ref_name_no_alias", "table_name", "alias", + "opt_alias", "join_clause", "opt_join_type", "join_condition", + "opt_semicolon", "ident_commalist", YY_NULLPTR }; #endif @@ -765,58 +766,59 @@ static const yytype_uint16 yytoknum[] = 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 61, 381, 60, 62, + 375, 376, 377, 61, 378, 379, 60, 62, 380, 381, 382, 383, 384, 43, 45, 42, 47, 37, 94, 385, 91, 93, 40, 41, 46, 59, 44, 63 }; # endif -#define YYPACT_NINF -231 +#define YYPACT_NINF -227 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-231))) + (!!((Yystate) == (-227))) -#define YYTABLE_NINF -166 +#define YYTABLE_NINF -172 #define yytable_value_is_error(Yytable_value) \ - (!!((Yytable_value) == (-166))) + (!!((Yytable_value) == (-172))) /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { - 153, 5, 30, 47, 99, -42, 22, 26, 36, -2, - 30, -30, -39, 126, -9, -231, -231, -231, -231, -231, - -231, -231, -231, -231, -231, -231, -231, -231, -231, 95, - 139, 12, -231, 2, 63, 45, 45, 30, 42, 30, - 160, 157, 62, -231, 30, 30, 50, 64, -231, 153, - -231, -231, -231, 70, -231, -39, 140, -231, 208, 23, - 222, 119, 30, 30, 162, -231, 159, 98, -231, -231, - -231, 90, 240, -231, -231, -231, -231, -231, 90, 178, - 178, 160, -231, -231, -231, -231, -231, -27, -231, -231, - -231, -231, -231, -231, -231, 209, -65, 98, 90, -231, - 247, 250, -5, -93, 118, 161, 11, 20, -231, 61, - 177, 120, -231, 3, 121, -231, -231, -231, -231, -231, - -231, -231, -231, -231, -231, -231, -231, -231, 141, -46, - -231, 122, -231, 80, 140, 140, 216, -231, 23, -231, - 154, 267, 158, 10, 186, -231, -231, -21, 134, -231, - 157, 274, 227, 90, 138, 20, 264, 85, 143, -83, - 1, 162, 90, -231, 90, 278, 90, -231, -231, 20, - 20, 20, 20, 20, -51, 147, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 23, 240, -231, 90, -231, - -231, -231, -231, -231, 160, -231, 199, 8, 31, -231, - -39, 30, -231, 287, 23, 90, -231, 148, 111, 227, - 201, -231, -231, -39, -231, 317, -231, 4, -231, 230, - -231, -231, -231, 189, 296, 275, 275, 173, 296, 20, - 156, 61, 296, 275, 275, 85, 85, 174, 174, 174, - -231, -231, -231, -231, -231, 247, -231, -231, -231, -231, - -231, -231, 267, -231, -231, -231, 41, 46, -231, 20, - 170, 171, -231, -231, -231, -231, 225, 229, 1, 226, - -231, 198, -231, 20, 296, 61, 179, 84, -231, -231, - -231, -231, 206, -231, 4, -231, -231, 258, 175, 1, - 90, 264, 181, 93, -231, -231, 20, -231, 1, 27, - -34, -231, -231, 237, 258, 90, 90, -231, -231, 10, - -231, 10 + 137, -1, 33, 48, 68, -6, 2, 6, -10, -16, + 33, 66, -21, 92, -20, -227, 41, 41, -227, -227, + -227, -227, -227, -227, -227, -227, -227, -227, -227, 29, + 131, 3, -227, 9, 95, 74, 74, 33, 78, 33, + 186, 184, 86, -227, 33, 33, 56, 63, -227, 137, + -227, 128, -227, -227, -227, -227, 99, -227, -21, 144, + -227, 217, 19, 224, 133, 33, 33, 157, -227, 171, + 114, -227, -227, -227, 53, 254, -227, -227, -227, -227, + -227, 116, 53, 203, 203, 186, -227, -227, -227, -227, + -227, -96, -227, -227, -227, -227, -227, -227, -227, 232, + -72, 114, 53, -227, 269, 272, -9, -101, 134, 182, + 76, 8, -227, 14, 200, 139, -227, 12, 110, -227, + -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, + -227, -227, 164, -51, -227, 283, 142, -227, 101, 144, + 144, 243, -227, 19, -227, 178, 288, 179, -60, 207, + -227, -227, -8, 152, -227, 184, 292, 248, 53, 162, + 8, 247, 32, 156, -69, 4, 157, 53, -227, 53, + 304, 53, -227, -227, 8, 8, -57, 172, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 19, 254, -227, 173, 70, -227, 53, -227, -227, -227, + -227, -227, 186, -227, 238, 30, 83, -227, -21, 33, + -227, 319, 19, 53, -227, 180, 58, 248, 246, -227, + -227, -21, -227, 115, -227, 5, -227, 266, -227, -227, + -227, 234, 194, 264, 8, 198, 14, 264, 264, 212, + 212, 212, 212, 32, 32, 206, 206, 206, -227, -227, + -227, 19, -227, 283, -227, -227, 269, -227, -227, -227, + -227, -227, -227, 288, -227, -227, -227, 109, 119, -227, + 8, 214, 225, -227, -227, -227, -227, 273, 299, 4, + 274, -227, 256, -227, 8, 264, 14, 226, 121, 123, + -227, -227, -227, -227, -227, 175, -227, 5, -227, -227, + 191, 229, 4, 53, 247, 233, 125, -227, -227, -227, + 8, -227, 4, 163, -26, -227, -227, 228, 191, 53, + 53, -227, -227, -60, -227, -60 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -824,64 +826,65 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, - 0, 0, 0, 0, 168, 3, 6, 5, 15, 8, - 9, 14, 11, 12, 10, 13, 7, 48, 49, 70, - 0, 150, 39, 18, 0, 27, 27, 0, 0, 0, - 0, 60, 0, 149, 0, 0, 0, 0, 1, 167, - 2, 56, 57, 0, 55, 0, 81, 37, 0, 0, - 0, 0, 0, 0, 64, 21, 0, 43, 138, 77, - 59, 0, 0, 35, 36, 51, 50, 4, 0, 70, - 70, 0, 52, 151, 135, 136, 140, 0, 84, 132, - 133, 137, 134, 17, 16, 0, 0, 43, 0, 38, - 0, 0, 0, 130, 0, 0, 0, 0, 139, 0, - 0, 61, 82, 155, 87, 94, 95, 96, 89, 92, - 91, 90, 104, 97, 88, 99, 101, 100, 0, 64, - 45, 69, 71, 76, 81, 81, 79, 19, 0, 26, - 0, 0, 0, 63, 0, 22, 169, 0, 0, 41, - 60, 0, 0, 0, 0, 0, 103, 102, 0, 0, - 0, 64, 0, 153, 0, 0, 0, 154, 86, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, + 0, 0, 0, 0, 174, 3, 17, 17, 15, 8, + 9, 14, 11, 12, 10, 13, 7, 54, 55, 76, + 0, 156, 45, 24, 0, 33, 33, 0, 0, 0, + 0, 66, 0, 155, 0, 0, 0, 0, 1, 173, + 2, 0, 6, 5, 62, 63, 0, 61, 0, 87, + 43, 0, 0, 0, 0, 0, 0, 70, 27, 0, + 49, 144, 83, 65, 0, 0, 41, 42, 57, 56, + 4, 0, 0, 76, 76, 0, 58, 157, 141, 142, + 146, 0, 90, 138, 139, 143, 140, 23, 22, 0, + 0, 49, 0, 44, 0, 0, 0, 136, 0, 0, + 0, 0, 145, 0, 0, 67, 88, 161, 93, 100, + 101, 102, 95, 98, 97, 96, 110, 103, 94, 105, + 107, 106, 0, 70, 51, 0, 75, 77, 82, 87, + 87, 85, 25, 0, 32, 0, 0, 0, 69, 0, + 28, 175, 0, 0, 47, 66, 0, 0, 0, 0, + 0, 109, 108, 0, 0, 0, 70, 0, 159, 0, + 0, 0, 160, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 44, 0, 75, - 74, 73, 54, 53, 0, 85, 0, 0, 0, 28, - 0, 0, 42, 0, 0, 0, 131, 0, 0, 0, - 0, 98, 93, 0, 62, 141, 143, 155, 145, 66, - 83, 113, 152, 114, 123, 126, 127, 0, 111, 0, - 0, 0, 122, 124, 125, 106, 105, 108, 107, 109, - 110, 47, 46, 72, 80, 0, 32, 33, 34, 31, - 30, 24, 0, 25, 20, 170, 0, 0, 120, 0, - 0, 0, 164, 163, 157, 158, 162, 161, 0, 0, - 148, 0, 58, 0, 112, 0, 0, 0, 23, 29, - 40, 128, 0, 121, 155, 160, 159, 146, 142, 0, - 0, 129, 0, 0, 117, 115, 0, 144, 0, 165, - 68, 118, 116, 0, 147, 0, 0, 65, 119, 166, - 156, 67 + 0, 0, 50, 20, 0, 18, 0, 81, 80, 79, + 60, 59, 0, 91, 0, 0, 0, 34, 0, 0, + 48, 0, 0, 0, 137, 0, 0, 0, 0, 104, + 99, 0, 68, 147, 149, 161, 151, 72, 89, 119, + 158, 120, 0, 117, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 112, 111, 114, 113, 115, 116, 53, + 52, 0, 16, 0, 78, 86, 0, 38, 39, 40, + 37, 36, 30, 0, 31, 26, 176, 0, 0, 126, + 0, 0, 0, 170, 169, 163, 164, 168, 167, 0, + 0, 154, 0, 64, 0, 118, 0, 0, 0, 0, + 19, 29, 35, 46, 134, 0, 127, 161, 166, 165, + 152, 148, 0, 0, 135, 0, 0, 123, 121, 21, + 0, 150, 0, 171, 74, 124, 122, 0, 153, 0, + 0, 71, 125, 172, 162, 73 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -231, -231, -231, 268, -231, -231, -231, -231, -231, -231, - 75, -231, 289, -231, 74, -231, -231, -231, -231, -231, - 234, -231, -231, 150, -158, 6, -12, -231, 272, 183, - -231, -231, -109, -231, -231, 72, -231, 149, -231, -231, - 83, -96, 146, 176, -77, -98, -231, -231, -231, -231, - -231, -231, -231, -231, -231, -231, -231, -47, -97, -231, - -35, -231, -231, -231, -230, -231, -231, -231, 0, -231, - -183, -231, -231, -231, -231, -231 + -227, -227, -227, 330, -227, 369, -227, 135, -227, -227, + -227, -227, -227, 136, -227, 357, -227, 140, -227, -227, + -227, -227, -227, 295, -227, -227, 213, -90, 15, -12, + -227, 347, 251, -227, -227, -104, -227, -227, 46, -227, + 211, -227, -227, 35, -164, -182, 241, -81, -76, -227, + -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, + -58, -99, -227, -37, -227, -227, -227, -226, -227, -227, + -227, 0, -227, -219, -227, -227, -227, -227, -227 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 13, 14, 15, 16, 17, 94, 18, 19, 66, - 144, 20, 62, 198, 199, 250, 21, 22, 23, 24, - 102, 25, 129, 130, 26, 27, 28, 55, 29, 71, - 110, 161, 99, 272, 307, 56, 131, 132, 191, 41, - 82, 111, 87, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 89, 90, - 91, 127, 92, 214, 215, 288, 216, 42, 217, 167, - 168, 218, 269, 310, 50, 147 + -1, 13, 14, 15, 16, 52, 194, 195, 17, 98, + 18, 19, 69, 149, 20, 65, 206, 207, 261, 21, + 22, 23, 24, 106, 25, 133, 134, 26, 27, 28, + 58, 29, 74, 114, 166, 103, 283, 321, 59, 136, + 137, 199, 41, 86, 115, 91, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 93, 94, 95, 131, 96, 222, 223, 301, 224, + 42, 225, 172, 173, 226, 280, 324, 50, 152 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -889,188 +892,177 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 47, 133, 32, 145, 31, 69, 163, 163, 156, 157, - 43, 306, 88, 9, 103, 84, 85, 68, 46, 140, - 187, 143, 164, 103, 84, 85, 68, 84, 85, 68, - 98, 35, 159, 31, 270, 30, 246, 64, 287, 67, - 229, 166, 253, 44, 73, 74, 136, 9, 247, 150, - 33, 151, 219, 148, 154, 261, 262, 156, 36, 299, - 212, 79, 96, 97, 103, 84, 85, 68, 304, 230, - 45, 224, 225, 226, 227, 228, 208, 141, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 221, 263, 223, - 149, 195, 264, 103, 84, 85, 68, 158, 265, 266, - 186, 297, 34, 12, 104, 248, 37, 51, 164, 257, - 38, 133, 162, 9, 40, 164, 137, 267, 249, 138, - 165, 165, 202, 155, 39, 203, 48, 166, 169, 170, - 171, 274, 155, 104, 166, 277, 49, 52, 241, 105, - 207, 172, 57, 213, 59, 107, 108, 60, 145, 65, - 305, 134, 135, 109, 107, 108, 58, 88, 86, 244, - 189, 282, 109, 1, 61, 53, 68, 86, 105, 54, - 86, 2, 70, 106, 251, 291, 72, 252, 3, 293, - 169, 170, 171, 4, 280, 164, 190, 138, 78, 281, - 5, 6, 162, 75, 300, 107, 108, 260, 303, 7, - 8, 254, 106, 109, 166, 9, 81, 76, 86, 259, - 10, 83, 173, 169, 170, 171, 164, 192, 193, 276, - 181, 182, 183, 184, 107, 108, 93, 295, 309, 311, - 162, 95, 109, 174, 11, 166, 302, 86, 98, 162, - 101, 175, 100, 128, 169, 170, 171, 176, 53, 177, - 178, 84, 139, 146, 179, 180, 181, 182, 183, 184, - 152, 160, 153, 292, 173, 194, 162, 185, 188, 196, - 197, 169, 170, 171, 201, 200, 204, 206, 273, 9, - 209, 222, 245, -166, -166, 210, 211, 262, 296, 231, - 255, 258, 229, 271, 164, 12, 285, 173, 275, 176, - 286, 177, 178, 169, 170, 171, 179, 180, 181, 182, - 183, 184, 184, 283, 284, 289, 290, 77, 210, 263, - 278, 298, 294, 264, 301, 63, 279, 80, 173, 265, - 266, 142, 176, 205, 177, 178, 242, 243, 220, 179, - 180, 181, 182, 183, 184, 308, 262, -165, 267, 210, - 256, 0, 0, 0, 0, 173, 0, 0, 0, 0, - 0, 0, 0, 176, 0, 177, 178, 0, 0, 0, - 179, 180, 181, 182, 183, 184, 210, 0, 263, 0, - 0, 0, 264, 0, 0, 0, 0, 173, 265, 266, - 176, 0, 177, 178, 0, 0, 0, 179, 180, 181, - 182, 183, 184, -166, -166, 0, -165, 267, 179, 180, - 181, 182, 183, 184, 0, 0, 0, 0, 0, 0, - 0, 0, 176, 0, 177, 178, 0, 0, 0, 179, - 180, 181, 182, 183, 184, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 268 + 47, 138, 32, 72, 92, 150, 281, 31, 168, 145, + 43, 107, 88, 89, 71, 168, 320, 107, 88, 89, + 71, 148, 102, 88, 89, 71, 30, 46, 9, 192, + 267, 234, 164, 169, 161, 162, 31, 67, 54, 70, + 9, 155, 169, 156, 76, 77, 153, 142, 141, 268, + 143, 33, 171, 300, 108, 257, 107, 88, 89, 71, + 235, 171, 227, 9, 35, 100, 101, 258, 55, 289, + 146, 34, 288, 83, 220, 39, 313, 216, 311, 107, + 88, 89, 71, 37, 161, 203, 318, 38, 229, 109, + 231, 36, 48, 108, 154, 191, 56, 40, 232, 233, + 57, 163, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 169, 138, 159, 160, 264, 170, + 167, 12, 306, 110, 259, 49, 170, 174, 109, 139, + 140, 272, 249, 171, 60, 210, 44, 260, 211, 314, + 51, 273, 111, 112, 1, 215, 221, 61, 111, 112, + 113, 62, 2, 270, 92, 90, 113, 150, 285, 3, + 169, 90, 110, 45, 4, 255, 90, 186, 187, 188, + 189, 5, 6, 274, 200, 201, 63, 275, 197, 171, + 7, 8, 68, 276, 277, 160, 9, 111, 112, 273, + 64, 10, 71, 92, 295, 113, 73, 75, 175, 78, + 90, -171, 278, 169, 198, 271, 79, 85, 304, 265, + 111, 112, 81, 252, 82, 11, 253, 273, 113, 176, + 87, 274, 171, 90, 287, 275, 262, 177, 97, 263, + 102, 276, 277, 178, 317, 179, 180, 181, 323, 325, + 182, 183, 99, 184, 185, 186, 187, 188, 189, 274, + 278, 104, 293, 275, 310, 143, 105, 132, 135, 276, + 277, 279, 294, 175, 308, 167, 309, 167, 316, 143, + 56, 167, 144, 88, 305, 151, 157, -171, 278, 12, + 158, 165, 175, 319, 218, 167, 193, 190, 196, 202, + 204, 205, 209, 208, 212, 214, 284, 9, 178, 219, + 179, 180, 181, 218, 217, 182, 183, 230, 184, 185, + 186, 187, 188, 189, 236, 251, 175, 178, 256, 179, + 180, 181, 266, 269, 182, 183, 282, 184, 185, 186, + 187, 188, 189, 322, 234, 175, 169, 218, -172, -172, + 286, 298, -172, -172, 189, 184, 185, 186, 187, 188, + 189, 178, 175, 179, 180, 181, 218, 296, 182, 183, + 302, 184, 185, 186, 187, 188, 189, 299, 297, 307, + 178, 303, 179, 180, 181, 312, 315, 182, 183, 80, + 184, 185, 186, 187, 188, 189, 53, 178, 290, 179, + 180, 181, 291, 66, 182, 183, 147, 184, 185, 186, + 187, 188, 189, 292, 250, 84, 213, 254, 228 }; -static const yytype_int16 yycheck[] = +static const yytype_uint16 yycheck[] = { - 12, 78, 2, 100, 3, 40, 3, 3, 106, 107, - 10, 45, 59, 52, 3, 4, 5, 6, 12, 84, - 129, 98, 105, 3, 4, 5, 6, 4, 5, 6, - 76, 73, 109, 3, 217, 30, 28, 37, 268, 39, - 91, 124, 200, 73, 44, 45, 81, 52, 40, 142, - 3, 144, 161, 58, 43, 213, 29, 155, 100, 289, - 143, 55, 62, 63, 3, 4, 5, 6, 298, 120, - 100, 169, 170, 171, 172, 173, 153, 142, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 164, 61, 166, - 102, 138, 65, 3, 4, 5, 6, 109, 71, 72, - 146, 284, 3, 142, 43, 97, 84, 12, 105, 205, - 84, 188, 146, 52, 116, 105, 143, 90, 110, 146, - 117, 117, 143, 112, 88, 146, 0, 124, 7, 8, - 9, 229, 112, 43, 124, 231, 145, 42, 185, 78, - 152, 20, 3, 142, 142, 134, 135, 84, 245, 107, - 123, 79, 80, 142, 134, 135, 144, 204, 147, 194, - 80, 259, 142, 10, 119, 70, 6, 147, 78, 74, - 147, 18, 15, 112, 143, 273, 114, 146, 25, 275, - 7, 8, 9, 30, 143, 105, 106, 146, 118, 143, - 37, 38, 146, 143, 290, 134, 135, 209, 296, 46, - 47, 201, 112, 142, 124, 52, 66, 143, 147, 98, - 57, 3, 91, 7, 8, 9, 105, 134, 135, 231, - 135, 136, 137, 138, 134, 135, 4, 143, 305, 306, - 146, 112, 142, 112, 81, 124, 143, 147, 76, 146, - 142, 120, 83, 3, 7, 8, 9, 126, 70, 128, - 129, 4, 43, 3, 133, 134, 135, 136, 137, 138, - 142, 84, 101, 275, 91, 49, 146, 126, 146, 115, - 3, 7, 8, 9, 88, 117, 142, 3, 105, 52, - 142, 3, 83, 8, 9, 112, 143, 29, 82, 142, - 3, 143, 91, 63, 105, 142, 71, 91, 142, 126, - 71, 128, 129, 7, 8, 9, 133, 134, 135, 136, - 137, 138, 138, 143, 143, 89, 118, 49, 112, 61, - 245, 146, 143, 65, 143, 36, 252, 55, 91, 71, - 72, 97, 126, 150, 128, 129, 186, 188, 162, 133, - 134, 135, 136, 137, 138, 108, 29, 89, 90, 112, - 204, -1, -1, -1, -1, 91, -1, -1, -1, -1, - -1, -1, -1, 126, -1, 128, 129, -1, -1, -1, - 133, 134, 135, 136, 137, 138, 112, -1, 61, -1, - -1, -1, 65, -1, -1, -1, -1, 91, 71, 72, - 126, -1, 128, 129, -1, -1, -1, 133, 134, 135, - 136, 137, 138, 128, 129, -1, 89, 90, 133, 134, - 135, 136, 137, 138, -1, -1, -1, -1, -1, -1, - -1, -1, 126, -1, 128, 129, -1, -1, -1, 133, - 134, 135, 136, 137, 138, -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, - -1, -1, -1, 146 + 12, 82, 2, 40, 62, 104, 225, 3, 3, 81, + 10, 3, 4, 5, 6, 3, 42, 3, 4, 5, + 6, 102, 73, 4, 5, 6, 27, 12, 49, 133, + 212, 88, 113, 102, 110, 111, 3, 37, 9, 39, + 49, 142, 102, 144, 44, 45, 55, 143, 85, 213, + 146, 3, 121, 279, 40, 25, 3, 4, 5, 6, + 117, 121, 166, 49, 70, 65, 66, 37, 39, 251, + 142, 3, 236, 58, 143, 85, 302, 158, 297, 3, + 4, 5, 6, 81, 160, 143, 312, 81, 169, 75, + 171, 97, 0, 40, 106, 146, 67, 113, 174, 175, + 71, 113, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 102, 196, 40, 109, 208, 114, + 146, 142, 286, 109, 94, 145, 114, 17, 75, 83, + 84, 221, 190, 121, 3, 143, 70, 107, 146, 303, + 99, 26, 134, 135, 7, 157, 142, 144, 134, 135, + 142, 142, 15, 95, 212, 147, 142, 256, 234, 22, + 102, 147, 109, 97, 27, 202, 147, 135, 136, 137, + 138, 34, 35, 58, 139, 140, 81, 62, 77, 121, + 43, 44, 104, 68, 69, 109, 49, 134, 135, 26, + 116, 54, 6, 251, 270, 142, 12, 111, 88, 143, + 147, 86, 87, 102, 103, 217, 143, 63, 284, 209, + 134, 135, 84, 143, 115, 78, 146, 26, 142, 109, + 3, 58, 121, 147, 236, 62, 143, 117, 4, 146, + 73, 68, 69, 123, 310, 125, 126, 127, 319, 320, + 130, 131, 109, 133, 134, 135, 136, 137, 138, 58, + 87, 80, 143, 62, 79, 146, 142, 3, 142, 68, + 69, 146, 143, 88, 143, 146, 143, 146, 143, 146, + 67, 146, 40, 4, 286, 3, 142, 86, 87, 142, + 98, 81, 88, 120, 109, 146, 3, 123, 146, 46, + 112, 3, 85, 114, 142, 3, 102, 49, 123, 143, + 125, 126, 127, 109, 142, 130, 131, 3, 133, 134, + 135, 136, 137, 138, 142, 142, 88, 123, 80, 125, + 126, 127, 3, 143, 130, 131, 60, 133, 134, 135, + 136, 137, 138, 105, 88, 88, 102, 109, 126, 127, + 142, 68, 130, 131, 138, 133, 134, 135, 136, 137, + 138, 123, 88, 125, 126, 127, 109, 143, 130, 131, + 86, 133, 134, 135, 136, 137, 138, 68, 143, 143, + 123, 115, 125, 126, 127, 146, 143, 130, 131, 49, + 133, 134, 135, 136, 137, 138, 17, 123, 253, 125, + 126, 127, 256, 36, 130, 131, 101, 133, 134, 135, + 136, 137, 138, 263, 191, 58, 155, 196, 167 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 10, 18, 25, 30, 37, 38, 46, 47, 52, - 57, 81, 142, 149, 150, 151, 152, 153, 155, 156, - 159, 164, 165, 166, 167, 169, 172, 173, 174, 176, - 30, 3, 216, 3, 3, 73, 100, 84, 84, 88, - 116, 187, 215, 216, 73, 100, 173, 174, 0, 145, - 222, 12, 42, 70, 74, 175, 183, 3, 144, 142, - 84, 119, 160, 160, 216, 107, 157, 216, 6, 208, - 15, 177, 114, 216, 216, 143, 143, 151, 118, 173, - 176, 66, 188, 3, 4, 5, 147, 190, 205, 206, - 207, 208, 210, 4, 154, 112, 216, 216, 76, 180, - 83, 142, 168, 3, 43, 78, 112, 134, 135, 142, - 178, 189, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 209, 3, 170, - 171, 184, 185, 192, 183, 183, 208, 143, 146, 43, - 84, 142, 168, 192, 158, 206, 3, 223, 58, 174, - 142, 144, 142, 101, 43, 112, 193, 193, 174, 192, - 84, 179, 146, 3, 105, 117, 124, 217, 218, 7, - 8, 9, 20, 91, 112, 120, 126, 128, 129, 133, - 134, 135, 136, 137, 138, 126, 146, 180, 146, 80, - 106, 186, 188, 188, 49, 205, 115, 3, 161, 162, - 117, 88, 143, 146, 142, 177, 3, 174, 192, 142, - 112, 143, 143, 142, 211, 212, 214, 216, 219, 180, - 191, 192, 3, 192, 193, 193, 193, 193, 193, 91, - 120, 142, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 205, 171, 185, 208, 83, 28, 40, 97, 110, - 163, 143, 146, 172, 216, 3, 190, 189, 143, 98, - 174, 172, 29, 61, 65, 71, 72, 90, 146, 220, - 218, 63, 181, 105, 193, 142, 174, 189, 158, 162, - 143, 143, 193, 143, 143, 71, 71, 212, 213, 89, - 118, 193, 174, 189, 143, 143, 82, 218, 146, 212, - 189, 143, 143, 193, 212, 123, 45, 182, 108, 192, - 221, 192 + 0, 7, 15, 22, 27, 34, 35, 43, 44, 49, + 54, 78, 142, 149, 150, 151, 152, 156, 158, 159, + 162, 167, 168, 169, 170, 172, 175, 176, 177, 179, + 27, 3, 219, 3, 3, 70, 97, 81, 81, 85, + 113, 190, 218, 219, 70, 97, 176, 177, 0, 145, + 225, 99, 153, 153, 9, 39, 67, 71, 178, 186, + 3, 144, 142, 81, 116, 163, 163, 219, 104, 160, + 219, 6, 211, 12, 180, 111, 219, 219, 143, 143, + 151, 84, 115, 176, 179, 63, 191, 3, 4, 5, + 147, 193, 208, 209, 210, 211, 213, 4, 157, 109, + 219, 219, 73, 183, 80, 142, 171, 3, 40, 75, + 109, 134, 135, 142, 181, 192, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 212, 3, 173, 174, 142, 187, 188, 195, 186, + 186, 211, 143, 146, 40, 81, 142, 171, 195, 161, + 209, 3, 226, 55, 177, 142, 144, 142, 98, 40, + 109, 196, 196, 177, 195, 81, 182, 146, 3, 102, + 114, 121, 220, 221, 17, 88, 109, 117, 123, 125, + 126, 127, 130, 131, 133, 134, 135, 136, 137, 138, + 123, 146, 183, 3, 154, 155, 146, 77, 103, 189, + 191, 191, 46, 208, 112, 3, 164, 165, 114, 85, + 143, 146, 142, 180, 3, 177, 195, 142, 109, 143, + 143, 142, 214, 215, 217, 219, 222, 183, 194, 195, + 3, 195, 196, 196, 88, 117, 142, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 208, + 174, 142, 143, 146, 188, 211, 80, 25, 37, 94, + 107, 166, 143, 146, 175, 219, 3, 193, 192, 143, + 95, 177, 175, 26, 58, 62, 68, 69, 87, 146, + 223, 221, 60, 184, 102, 196, 142, 177, 192, 193, + 155, 161, 165, 143, 143, 196, 143, 143, 68, 68, + 215, 216, 86, 115, 196, 177, 192, 143, 143, 143, + 79, 221, 146, 215, 192, 143, 143, 196, 215, 120, + 42, 185, 105, 195, 224, 195 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { 0, 148, 149, 150, 150, 151, 151, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 153, 154, 155, 155, - 156, 157, 158, 159, 159, 159, 160, 160, 161, 161, - 162, 163, 163, 163, 163, 164, 164, 164, 165, 166, - 167, 167, 168, 168, 169, 170, 170, 171, 172, 172, - 173, 173, 174, 174, 174, 175, 175, 175, 176, 177, - 177, 178, 179, 180, 180, 181, 181, 182, 182, 183, - 183, 184, 184, 185, 186, 186, 186, 187, 187, 188, - 188, 188, 189, 189, 190, 190, 191, 192, 192, 192, - 192, 192, 192, 193, 193, 193, 193, 193, 193, 194, - 194, 194, 195, 195, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 197, 197, 198, 198, 198, 198, 199, - 200, 200, 201, 201, 201, 201, 201, 201, 202, 203, - 204, 204, 205, 205, 205, 206, 207, 207, 208, 209, - 210, 211, 211, 212, 212, 212, 213, 213, 214, 215, - 216, 216, 217, 217, 218, 218, 219, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 221, 222, 222, 223, - 223 + 152, 152, 152, 152, 152, 152, 153, 153, 154, 154, + 155, 155, 156, 157, 158, 158, 159, 160, 161, 162, + 162, 162, 163, 163, 164, 164, 165, 166, 166, 166, + 166, 167, 167, 167, 168, 169, 170, 170, 171, 171, + 172, 173, 173, 174, 175, 175, 176, 176, 177, 177, + 177, 178, 178, 178, 179, 180, 180, 181, 182, 183, + 183, 184, 184, 185, 185, 186, 186, 187, 187, 188, + 189, 189, 189, 190, 190, 191, 191, 191, 192, 192, + 193, 193, 194, 195, 195, 195, 195, 195, 195, 196, + 196, 196, 196, 196, 196, 197, 197, 197, 198, 198, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 200, + 200, 201, 201, 201, 201, 202, 203, 203, 204, 204, + 204, 204, 204, 204, 205, 206, 207, 207, 208, 208, + 208, 209, 210, 210, 211, 212, 213, 214, 214, 215, + 215, 215, 216, 216, 217, 218, 219, 219, 220, 220, + 221, 221, 222, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 224, 225, 225, 226, 226 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { - 0, 2, 2, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 4, 1, 2, 5, - 7, 1, 1, 8, 7, 7, 3, 0, 1, 3, - 2, 1, 1, 1, 1, 3, 3, 3, 4, 2, - 8, 5, 3, 0, 5, 1, 3, 3, 1, 1, - 3, 3, 3, 5, 5, 1, 1, 1, 7, 1, - 0, 1, 2, 2, 0, 4, 0, 2, 0, 3, - 0, 1, 3, 2, 1, 1, 0, 2, 0, 2, - 4, 0, 1, 3, 1, 3, 2, 1, 1, 1, - 1, 1, 1, 3, 1, 1, 1, 1, 3, 1, - 1, 1, 2, 2, 1, 3, 3, 3, 3, 3, - 3, 3, 4, 3, 3, 5, 6, 5, 6, 8, - 4, 5, 3, 3, 3, 3, 3, 3, 5, 5, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 1, 4, 1, 1, 3, 2, 1, - 1, 3, 2, 1, 1, 0, 6, 1, 1, 2, - 2, 1, 1, 1, 1, 0, 1, 1, 0, 1, - 3 + 0, 2, 2, 1, 3, 2, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 5, 0, 1, 3, + 1, 4, 4, 1, 2, 5, 7, 1, 1, 8, + 7, 7, 3, 0, 1, 3, 2, 1, 1, 1, + 1, 3, 3, 3, 4, 2, 8, 5, 3, 0, + 5, 1, 3, 3, 1, 1, 3, 3, 3, 5, + 5, 1, 1, 1, 7, 1, 0, 1, 2, 2, + 0, 4, 0, 2, 0, 3, 0, 1, 3, 2, + 1, 1, 0, 2, 0, 2, 4, 0, 1, 3, + 1, 3, 2, 1, 1, 1, 1, 1, 1, 3, + 1, 1, 1, 1, 3, 1, 1, 1, 2, 2, + 1, 3, 3, 3, 3, 3, 3, 3, 4, 3, + 3, 5, 6, 5, 6, 8, 4, 5, 3, 3, + 3, 3, 3, 3, 5, 5, 1, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, + 4, 1, 1, 3, 2, 1, 1, 3, 2, 1, + 1, 0, 6, 1, 1, 2, 2, 1, 1, 1, + 1, 0, 1, 1, 0, 1, 3 }; @@ -1569,552 +1561,566 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio case 3: /* IDENTIFIER */ #line 134 "bison_parser.y" /* yacc.c:1257 */ { free( (((*yyvaluep).sval)) ); } -#line 1573 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1565 "bison_parser.cpp" /* yacc.c:1257 */ break; case 4: /* STRING */ #line 134 "bison_parser.y" /* yacc.c:1257 */ { free( (((*yyvaluep).sval)) ); } -#line 1579 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1571 "bison_parser.cpp" /* yacc.c:1257 */ break; case 5: /* FLOATVAL */ #line 133 "bison_parser.y" /* yacc.c:1257 */ { } -#line 1585 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1577 "bison_parser.cpp" /* yacc.c:1257 */ break; case 6: /* INTVAL */ #line 133 "bison_parser.y" /* yacc.c:1257 */ { } -#line 1591 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 7: /* NOTEQUALS */ -#line 133 "bison_parser.y" /* yacc.c:1257 */ - { } -#line 1597 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 8: /* LESSEQ */ -#line 133 "bison_parser.y" /* yacc.c:1257 */ - { } -#line 1603 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 9: /* GREATEREQ */ -#line 133 "bison_parser.y" /* yacc.c:1257 */ - { } -#line 1609 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1583 "bison_parser.cpp" /* yacc.c:1257 */ break; case 150: /* statement_list */ #line 135 "bison_parser.y" /* yacc.c:1257 */ { - if ((((*yyvaluep).stmt_vec)) != NULL) { + if ((((*yyvaluep).stmt_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).stmt_vec))) { delete ptr; } } delete (((*yyvaluep).stmt_vec)); } -#line 1622 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1596 "bison_parser.cpp" /* yacc.c:1257 */ break; case 151: /* statement */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).statement)); } -#line 1628 "bison_parser.cpp" /* yacc.c:1257 */ +#line 1602 "bison_parser.cpp" /* yacc.c:1257 */ break; case 152: /* preparable_statement */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).statement)); } +#line 1608 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 153: /* opt_hints */ +#line 135 "bison_parser.y" /* yacc.c:1257 */ + { + if ((((*yyvaluep).expr_vec)) != nullptr) { + for (auto ptr : *(((*yyvaluep).expr_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).expr_vec)); +} +#line 1621 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 154: /* hint_list */ +#line 135 "bison_parser.y" /* yacc.c:1257 */ + { + if ((((*yyvaluep).expr_vec)) != nullptr) { + for (auto ptr : *(((*yyvaluep).expr_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).expr_vec)); +} #line 1634 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 153: /* prepare_statement */ + case 155: /* hint */ #line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).prep_stmt)); } + { delete (((*yyvaluep).expr)); } #line 1640 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 154: /* prepare_target_query */ -#line 134 "bison_parser.y" /* yacc.c:1257 */ - { free( (((*yyvaluep).sval)) ); } + case 156: /* prepare_statement */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).prep_stmt)); } #line 1646 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 155: /* execute_statement */ -#line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).exec_stmt)); } + case 157: /* prepare_target_query */ +#line 134 "bison_parser.y" /* yacc.c:1257 */ + { free( (((*yyvaluep).sval)) ); } #line 1652 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 156: /* import_statement */ + case 158: /* execute_statement */ #line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).import_stmt)); } + { delete (((*yyvaluep).exec_stmt)); } #line 1658 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 157: /* import_file_type */ -#line 133 "bison_parser.y" /* yacc.c:1257 */ - { } + case 159: /* import_statement */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).import_stmt)); } #line 1664 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 158: /* file_path */ -#line 134 "bison_parser.y" /* yacc.c:1257 */ - { free( (((*yyvaluep).sval)) ); } + case 160: /* import_file_type */ +#line 133 "bison_parser.y" /* yacc.c:1257 */ + { } #line 1670 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 159: /* create_statement */ -#line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).create_stmt)); } + case 161: /* file_path */ +#line 134 "bison_parser.y" /* yacc.c:1257 */ + { free( (((*yyvaluep).sval)) ); } #line 1676 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 160: /* opt_not_exists */ -#line 133 "bison_parser.y" /* yacc.c:1257 */ - { } + case 162: /* create_statement */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).create_stmt)); } #line 1682 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 161: /* column_def_commalist */ + case 163: /* opt_not_exists */ +#line 133 "bison_parser.y" /* yacc.c:1257 */ + { } +#line 1688 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 164: /* column_def_commalist */ #line 135 "bison_parser.y" /* yacc.c:1257 */ { - if ((((*yyvaluep).column_vec)) != NULL) { + if ((((*yyvaluep).column_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).column_vec))) { delete ptr; } } delete (((*yyvaluep).column_vec)); } -#line 1695 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 162: /* column_def */ -#line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).column_t)); } #line 1701 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 163: /* column_type */ -#line 133 "bison_parser.y" /* yacc.c:1257 */ - { } + case 165: /* column_def */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).column_t)); } #line 1707 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 164: /* drop_statement */ -#line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).drop_stmt)); } + case 166: /* column_type */ +#line 133 "bison_parser.y" /* yacc.c:1257 */ + { } #line 1713 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 165: /* delete_statement */ + case 167: /* drop_statement */ #line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).delete_stmt)); } + { delete (((*yyvaluep).drop_stmt)); } #line 1719 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 166: /* truncate_statement */ + case 168: /* delete_statement */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).delete_stmt)); } #line 1725 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 167: /* insert_statement */ + case 169: /* truncate_statement */ #line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).insert_stmt)); } + { delete (((*yyvaluep).delete_stmt)); } #line 1731 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 168: /* opt_column_list */ + case 170: /* insert_statement */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).insert_stmt)); } +#line 1737 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 171: /* opt_column_list */ #line 135 "bison_parser.y" /* yacc.c:1257 */ { - if ((((*yyvaluep).str_vec)) != NULL) { + if ((((*yyvaluep).str_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).str_vec))) { delete ptr; } } delete (((*yyvaluep).str_vec)); } -#line 1744 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 169: /* update_statement */ -#line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).update_stmt)); } #line 1750 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 170: /* update_clause_commalist */ + case 172: /* update_statement */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).update_stmt)); } +#line 1756 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 173: /* update_clause_commalist */ #line 135 "bison_parser.y" /* yacc.c:1257 */ { - if ((((*yyvaluep).update_vec)) != NULL) { + if ((((*yyvaluep).update_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).update_vec))) { delete ptr; } } delete (((*yyvaluep).update_vec)); } -#line 1763 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 171: /* update_clause */ -#line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).update_t)); } #line 1769 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 172: /* select_statement */ + case 174: /* update_clause */ #line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).select_stmt)); } + { delete (((*yyvaluep).update_t)); } #line 1775 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 173: /* select_with_paren */ + case 175: /* select_statement */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).select_stmt)); } #line 1781 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 174: /* select_no_paren */ + case 176: /* select_with_paren */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).select_stmt)); } #line 1787 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 176: /* select_clause */ + case 177: /* select_no_paren */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).select_stmt)); } #line 1793 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 177: /* opt_distinct */ -#line 133 "bison_parser.y" /* yacc.c:1257 */ - { } + case 179: /* select_clause */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).select_stmt)); } #line 1799 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 178: /* select_list */ + case 180: /* opt_distinct */ +#line 133 "bison_parser.y" /* yacc.c:1257 */ + { } +#line 1805 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 181: /* select_list */ #line 135 "bison_parser.y" /* yacc.c:1257 */ { - if ((((*yyvaluep).expr_vec)) != NULL) { + if ((((*yyvaluep).expr_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).expr_vec))) { delete ptr; } } delete (((*yyvaluep).expr_vec)); } -#line 1812 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 179: /* from_clause */ -#line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).table)); } #line 1818 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 180: /* opt_where */ + case 182: /* from_clause */ #line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).expr)); } + { delete (((*yyvaluep).table)); } #line 1824 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 181: /* opt_group */ + case 183: /* opt_where */ #line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).group_t)); } + { delete (((*yyvaluep).expr)); } #line 1830 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 182: /* opt_having */ + case 184: /* opt_group */ #line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).expr)); } + { delete (((*yyvaluep).group_t)); } #line 1836 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 183: /* opt_order */ -#line 135 "bison_parser.y" /* yacc.c:1257 */ - { - if ((((*yyvaluep).order_vec)) != NULL) { - for (auto ptr : *(((*yyvaluep).order_vec))) { - delete ptr; - } - } - delete (((*yyvaluep).order_vec)); -} -#line 1849 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 184: /* order_list */ -#line 135 "bison_parser.y" /* yacc.c:1257 */ - { - if ((((*yyvaluep).order_vec)) != NULL) { - for (auto ptr : *(((*yyvaluep).order_vec))) { - delete ptr; - } - } - delete (((*yyvaluep).order_vec)); -} -#line 1862 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 185: /* order_desc */ + case 185: /* opt_having */ #line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).order)); } + { delete (((*yyvaluep).expr)); } +#line 1842 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 186: /* opt_order */ +#line 135 "bison_parser.y" /* yacc.c:1257 */ + { + if ((((*yyvaluep).order_vec)) != nullptr) { + for (auto ptr : *(((*yyvaluep).order_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).order_vec)); +} +#line 1855 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 187: /* order_list */ +#line 135 "bison_parser.y" /* yacc.c:1257 */ + { + if ((((*yyvaluep).order_vec)) != nullptr) { + for (auto ptr : *(((*yyvaluep).order_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).order_vec)); +} #line 1868 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 186: /* opt_order_type */ -#line 133 "bison_parser.y" /* yacc.c:1257 */ - { } + case 188: /* order_desc */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).order)); } #line 1874 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 187: /* opt_top */ -#line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).limit)); } + case 189: /* opt_order_type */ +#line 133 "bison_parser.y" /* yacc.c:1257 */ + { } #line 1880 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 188: /* opt_limit */ + case 190: /* opt_top */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).limit)); } #line 1886 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 189: /* expr_list */ -#line 135 "bison_parser.y" /* yacc.c:1257 */ - { - if ((((*yyvaluep).expr_vec)) != NULL) { - for (auto ptr : *(((*yyvaluep).expr_vec))) { - delete ptr; - } - } - delete (((*yyvaluep).expr_vec)); -} -#line 1899 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 190: /* literal_list */ -#line 135 "bison_parser.y" /* yacc.c:1257 */ - { - if ((((*yyvaluep).expr_vec)) != NULL) { - for (auto ptr : *(((*yyvaluep).expr_vec))) { - delete ptr; - } - } - delete (((*yyvaluep).expr_vec)); -} -#line 1912 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 191: /* expr_alias */ + case 191: /* opt_limit */ #line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).expr)); } + { delete (((*yyvaluep).limit)); } +#line 1892 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 192: /* expr_list */ +#line 135 "bison_parser.y" /* yacc.c:1257 */ + { + if ((((*yyvaluep).expr_vec)) != nullptr) { + for (auto ptr : *(((*yyvaluep).expr_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).expr_vec)); +} +#line 1905 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 193: /* literal_list */ +#line 135 "bison_parser.y" /* yacc.c:1257 */ + { + if ((((*yyvaluep).expr_vec)) != nullptr) { + for (auto ptr : *(((*yyvaluep).expr_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).expr_vec)); +} #line 1918 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 192: /* expr */ + case 194: /* expr_alias */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } #line 1924 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 193: /* operand */ + case 195: /* expr */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } #line 1930 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 194: /* scalar_expr */ + case 196: /* operand */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } #line 1936 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 195: /* unary_expr */ + case 197: /* scalar_expr */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } #line 1942 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 196: /* binary_expr */ + case 198: /* unary_expr */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } #line 1948 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 197: /* logic_expr */ + case 199: /* binary_expr */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } #line 1954 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 198: /* in_expr */ + case 200: /* logic_expr */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } #line 1960 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 199: /* case_expr */ + case 201: /* in_expr */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } #line 1966 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 200: /* exists_expr */ + case 202: /* case_expr */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } #line 1972 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 201: /* comp_expr */ + case 203: /* exists_expr */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } #line 1978 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 202: /* function_expr */ + case 204: /* comp_expr */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } #line 1984 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 203: /* between_expr */ + case 205: /* function_expr */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } #line 1990 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 204: /* column_name */ + case 206: /* between_expr */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } #line 1996 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 205: /* literal */ + case 207: /* column_name */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } #line 2002 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 206: /* string_literal */ + case 208: /* literal */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } #line 2008 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 207: /* num_literal */ + case 209: /* string_literal */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } #line 2014 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 208: /* int_literal */ + case 210: /* num_literal */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } #line 2020 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 209: /* star_expr */ + case 211: /* int_literal */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } #line 2026 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 210: /* param_expr */ + case 212: /* star_expr */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).expr)); } #line 2032 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 211: /* table_ref */ + case 213: /* param_expr */ #line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).table)); } + { delete (((*yyvaluep).expr)); } #line 2038 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 212: /* table_ref_atomic */ + case 214: /* table_ref */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).table)); } #line 2044 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 213: /* table_ref_commalist */ + case 215: /* table_ref_atomic */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).table)); } +#line 2050 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 216: /* table_ref_commalist */ #line 135 "bison_parser.y" /* yacc.c:1257 */ { - if ((((*yyvaluep).table_vec)) != NULL) { + if ((((*yyvaluep).table_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).table_vec))) { delete ptr; } } delete (((*yyvaluep).table_vec)); } -#line 2057 "bison_parser.cpp" /* yacc.c:1257 */ - break; - - case 214: /* table_ref_name */ -#line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).table)); } #line 2063 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 215: /* table_ref_name_no_alias */ + case 217: /* table_ref_name */ #line 143 "bison_parser.y" /* yacc.c:1257 */ { delete (((*yyvaluep).table)); } #line 2069 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 216: /* table_name */ -#line 134 "bison_parser.y" /* yacc.c:1257 */ - { free( (((*yyvaluep).sval)) ); } + case 218: /* table_ref_name_no_alias */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).table)); } #line 2075 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 217: /* alias */ + case 219: /* table_name */ #line 134 "bison_parser.y" /* yacc.c:1257 */ { free( (((*yyvaluep).sval)) ); } #line 2081 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 218: /* opt_alias */ + case 220: /* alias */ #line 134 "bison_parser.y" /* yacc.c:1257 */ { free( (((*yyvaluep).sval)) ); } #line 2087 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 219: /* join_clause */ -#line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).table)); } + case 221: /* opt_alias */ +#line 134 "bison_parser.y" /* yacc.c:1257 */ + { free( (((*yyvaluep).sval)) ); } #line 2093 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 220: /* opt_join_type */ -#line 133 "bison_parser.y" /* yacc.c:1257 */ - { } + case 222: /* join_clause */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).table)); } #line 2099 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 221: /* join_condition */ -#line 143 "bison_parser.y" /* yacc.c:1257 */ - { delete (((*yyvaluep).expr)); } + case 223: /* opt_join_type */ +#line 133 "bison_parser.y" /* yacc.c:1257 */ + { } #line 2105 "bison_parser.cpp" /* yacc.c:1257 */ break; - case 223: /* ident_commalist */ + case 224: /* join_condition */ +#line 143 "bison_parser.y" /* yacc.c:1257 */ + { delete (((*yyvaluep).expr)); } +#line 2111 "bison_parser.cpp" /* yacc.c:1257 */ + break; + + case 226: /* ident_commalist */ #line 135 "bison_parser.y" /* yacc.c:1257 */ { - if ((((*yyvaluep).str_vec)) != NULL) { + if ((((*yyvaluep).str_vec)) != nullptr) { for (auto ptr : *(((*yyvaluep).str_vec))) { delete ptr; } } delete (((*yyvaluep).str_vec)); } -#line 2118 "bison_parser.cpp" /* yacc.c:1257 */ +#line 2124 "bison_parser.cpp" /* yacc.c:1257 */ break; @@ -2232,7 +2238,7 @@ YYLTYPE yylloc = yyloc_default; yylloc.total_column = 0; } -#line 2236 "bison_parser.cpp" /* yacc.c:1429 */ +#line 2242 "bison_parser.cpp" /* yacc.c:1429 */ yylsp[0] = yylloc; goto yysetstate; @@ -2419,7 +2425,7 @@ yyreduce: switch (yyn) { case 2: -#line 237 "bison_parser.y" /* yacc.c:1646 */ +#line 236 "bison_parser.y" /* yacc.c:1646 */ { for (SQLStatement* stmt : *(yyvsp[-1].stmt_vec)) { // Transfers ownership of the statement. @@ -2437,150 +2443,211 @@ yyreduce: } delete (yyvsp[-1].stmt_vec); } -#line 2441 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 3: -#line 258 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.stmt_vec) = new std::vector(); (yyval.stmt_vec)->push_back((yyvsp[0].statement)); } #line 2447 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 4: -#line 259 "bison_parser.y" /* yacc.c:1646 */ - { (yyvsp[-2].stmt_vec)->push_back((yyvsp[0].statement)); (yyval.stmt_vec) = (yyvsp[-2].stmt_vec); } + case 3: +#line 257 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.stmt_vec) = new std::vector(); (yyval.stmt_vec)->push_back((yyvsp[0].statement)); } #line 2453 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 7: -#line 269 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.statement) = (yyvsp[0].select_stmt); } + case 4: +#line 258 "bison_parser.y" /* yacc.c:1646 */ + { (yyvsp[-2].stmt_vec)->push_back((yyvsp[0].statement)); (yyval.stmt_vec) = (yyvsp[-2].stmt_vec); } #line 2459 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 8: -#line 270 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.statement) = (yyvsp[0].import_stmt); } -#line 2465 "bison_parser.cpp" /* yacc.c:1646 */ + case 5: +#line 262 "bison_parser.y" /* yacc.c:1646 */ + { + (yyval.statement) = (yyvsp[-1].prep_stmt); + (yyval.statement)->hints = (yyvsp[0].expr_vec); + } +#line 2468 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 9: -#line 271 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.statement) = (yyvsp[0].create_stmt); } -#line 2471 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 10: -#line 272 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.statement) = (yyvsp[0].insert_stmt); } + case 6: +#line 266 "bison_parser.y" /* yacc.c:1646 */ + { + (yyval.statement) = (yyvsp[-1].statement); + (yyval.statement)->hints = (yyvsp[0].expr_vec); + } #line 2477 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 11: -#line 273 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.statement) = (yyvsp[0].delete_stmt); } + case 7: +#line 274 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.statement) = (yyvsp[0].select_stmt); } #line 2483 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 12: -#line 274 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.statement) = (yyvsp[0].delete_stmt); } + case 8: +#line 275 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.statement) = (yyvsp[0].import_stmt); } #line 2489 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 13: -#line 275 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.statement) = (yyvsp[0].update_stmt); } + case 9: +#line 276 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.statement) = (yyvsp[0].create_stmt); } #line 2495 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 14: -#line 276 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.statement) = (yyvsp[0].drop_stmt); } + case 10: +#line 277 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.statement) = (yyvsp[0].insert_stmt); } #line 2501 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 15: -#line 277 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.statement) = (yyvsp[0].exec_stmt); } + case 11: +#line 278 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.statement) = (yyvsp[0].delete_stmt); } #line 2507 "bison_parser.cpp" /* yacc.c:1646 */ break; + case 12: +#line 279 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.statement) = (yyvsp[0].delete_stmt); } +#line 2513 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 13: +#line 280 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.statement) = (yyvsp[0].update_stmt); } +#line 2519 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 14: +#line 281 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.statement) = (yyvsp[0].drop_stmt); } +#line 2525 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 15: +#line 282 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.statement) = (yyvsp[0].exec_stmt); } +#line 2531 "bison_parser.cpp" /* yacc.c:1646 */ + break; + case 16: -#line 285 "bison_parser.y" /* yacc.c:1646 */ +#line 291 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr_vec) = (yyvsp[-1].expr_vec); } +#line 2537 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 17: +#line 292 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr_vec) = nullptr; } +#line 2543 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 18: +#line 297 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } +#line 2549 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 19: +#line 298 "bison_parser.y" /* yacc.c:1646 */ + { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } +#line 2555 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 20: +#line 302 "bison_parser.y" /* yacc.c:1646 */ + { + (yyval.expr) = Expr::make(kExprHint); + (yyval.expr)->name = (yyvsp[0].sval); + } +#line 2564 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 21: +#line 306 "bison_parser.y" /* yacc.c:1646 */ + { + (yyval.expr) = Expr::make(kExprHint); + (yyval.expr)->name = (yyvsp[-3].sval); + (yyval.expr)->exprList = (yyvsp[-1].expr_vec); + } +#line 2574 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 22: +#line 318 "bison_parser.y" /* yacc.c:1646 */ { (yyval.prep_stmt) = new PrepareStatement(); (yyval.prep_stmt)->name = (yyvsp[-2].sval); (yyval.prep_stmt)->query = (yyvsp[0].sval); } -#line 2517 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2584 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 18: -#line 295 "bison_parser.y" /* yacc.c:1646 */ + case 24: +#line 328 "bison_parser.y" /* yacc.c:1646 */ { (yyval.exec_stmt) = new ExecuteStatement(); (yyval.exec_stmt)->name = (yyvsp[0].sval); } -#line 2526 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2593 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 19: -#line 299 "bison_parser.y" /* yacc.c:1646 */ + case 25: +#line 332 "bison_parser.y" /* yacc.c:1646 */ { (yyval.exec_stmt) = new ExecuteStatement(); (yyval.exec_stmt)->name = (yyvsp[-3].sval); (yyval.exec_stmt)->parameters = (yyvsp[-1].expr_vec); } -#line 2536 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2603 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 20: -#line 311 "bison_parser.y" /* yacc.c:1646 */ + case 26: +#line 344 "bison_parser.y" /* yacc.c:1646 */ { (yyval.import_stmt) = new ImportStatement((ImportType) (yyvsp[-4].uval)); (yyval.import_stmt)->filePath = (yyvsp[-2].sval); (yyval.import_stmt)->tableName = (yyvsp[0].sval); } -#line 2546 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2613 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 21: -#line 319 "bison_parser.y" /* yacc.c:1646 */ + case 27: +#line 352 "bison_parser.y" /* yacc.c:1646 */ { (yyval.uval) = kImportCSV; } -#line 2552 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2619 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 22: -#line 323 "bison_parser.y" /* yacc.c:1646 */ + case 28: +#line 356 "bison_parser.y" /* yacc.c:1646 */ { (yyval.sval) = strdup((yyvsp[0].expr)->name); delete (yyvsp[0].expr); } -#line 2558 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2625 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 23: -#line 333 "bison_parser.y" /* yacc.c:1646 */ + case 29: +#line 366 "bison_parser.y" /* yacc.c:1646 */ { (yyval.create_stmt) = new CreateStatement(kCreateTableFromTbl); (yyval.create_stmt)->ifNotExists = (yyvsp[-5].bval); (yyval.create_stmt)->tableName = (yyvsp[-4].sval); (yyval.create_stmt)->filePath = (yyvsp[0].sval); } -#line 2569 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2636 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 24: -#line 339 "bison_parser.y" /* yacc.c:1646 */ + case 30: +#line 372 "bison_parser.y" /* yacc.c:1646 */ { (yyval.create_stmt) = new CreateStatement(kCreateTable); (yyval.create_stmt)->ifNotExists = (yyvsp[-4].bval); (yyval.create_stmt)->tableName = (yyvsp[-3].sval); (yyval.create_stmt)->columns = (yyvsp[-1].column_vec); } -#line 2580 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2647 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 25: -#line 345 "bison_parser.y" /* yacc.c:1646 */ + case 31: +#line 378 "bison_parser.y" /* yacc.c:1646 */ { (yyval.create_stmt) = new CreateStatement(kCreateView); (yyval.create_stmt)->ifNotExists = (yyvsp[-4].bval); @@ -2588,207 +2655,207 @@ yyreduce: (yyval.create_stmt)->viewColumns = (yyvsp[-2].str_vec); (yyval.create_stmt)->select = (yyvsp[0].select_stmt); } -#line 2592 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 26: -#line 355 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.bval) = true; } -#line 2598 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 27: -#line 356 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.bval) = false; } -#line 2604 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 28: -#line 360 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.column_vec) = new std::vector(); (yyval.column_vec)->push_back((yyvsp[0].column_t)); } -#line 2610 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 29: -#line 361 "bison_parser.y" /* yacc.c:1646 */ - { (yyvsp[-2].column_vec)->push_back((yyvsp[0].column_t)); (yyval.column_vec) = (yyvsp[-2].column_vec); } -#line 2616 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 30: -#line 365 "bison_parser.y" /* yacc.c:1646 */ - { - (yyval.column_t) = new ColumnDefinition((yyvsp[-1].sval), (ColumnDefinition::DataType) (yyvsp[0].uval)); - } -#line 2624 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 31: -#line 372 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.uval) = ColumnDefinition::INT; } -#line 2630 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2659 "bison_parser.cpp" /* yacc.c:1646 */ break; case 32: -#line 373 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.uval) = ColumnDefinition::INT; } -#line 2636 "bison_parser.cpp" /* yacc.c:1646 */ +#line 388 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.bval) = true; } +#line 2665 "bison_parser.cpp" /* yacc.c:1646 */ break; case 33: -#line 374 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.uval) = ColumnDefinition::DOUBLE; } -#line 2642 "bison_parser.cpp" /* yacc.c:1646 */ +#line 389 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.bval) = false; } +#line 2671 "bison_parser.cpp" /* yacc.c:1646 */ break; case 34: -#line 375 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.uval) = ColumnDefinition::TEXT; } -#line 2648 "bison_parser.cpp" /* yacc.c:1646 */ +#line 393 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.column_vec) = new std::vector(); (yyval.column_vec)->push_back((yyvsp[0].column_t)); } +#line 2677 "bison_parser.cpp" /* yacc.c:1646 */ break; case 35: -#line 385 "bison_parser.y" /* yacc.c:1646 */ +#line 394 "bison_parser.y" /* yacc.c:1646 */ + { (yyvsp[-2].column_vec)->push_back((yyvsp[0].column_t)); (yyval.column_vec) = (yyvsp[-2].column_vec); } +#line 2683 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 36: +#line 398 "bison_parser.y" /* yacc.c:1646 */ + { + (yyval.column_t) = new ColumnDefinition((yyvsp[-1].sval), (ColumnDefinition::DataType) (yyvsp[0].uval)); + } +#line 2691 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 37: +#line 405 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = ColumnDefinition::INT; } +#line 2697 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 38: +#line 406 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = ColumnDefinition::INT; } +#line 2703 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 39: +#line 407 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = ColumnDefinition::DOUBLE; } +#line 2709 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 40: +#line 408 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = ColumnDefinition::TEXT; } +#line 2715 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 41: +#line 418 "bison_parser.y" /* yacc.c:1646 */ { (yyval.drop_stmt) = new DropStatement(kDropTable); (yyval.drop_stmt)->name = (yyvsp[0].sval); } -#line 2657 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2724 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 36: -#line 389 "bison_parser.y" /* yacc.c:1646 */ + case 42: +#line 422 "bison_parser.y" /* yacc.c:1646 */ { (yyval.drop_stmt) = new DropStatement(kDropView); (yyval.drop_stmt)->name = (yyvsp[0].sval); } -#line 2666 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2733 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 37: -#line 393 "bison_parser.y" /* yacc.c:1646 */ + case 43: +#line 426 "bison_parser.y" /* yacc.c:1646 */ { (yyval.drop_stmt) = new DropStatement(kDropPreparedStatement); (yyval.drop_stmt)->name = (yyvsp[0].sval); } -#line 2675 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2742 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 38: -#line 405 "bison_parser.y" /* yacc.c:1646 */ + case 44: +#line 438 "bison_parser.y" /* yacc.c:1646 */ { (yyval.delete_stmt) = new DeleteStatement(); (yyval.delete_stmt)->tableName = (yyvsp[-1].sval); (yyval.delete_stmt)->expr = (yyvsp[0].expr); } -#line 2685 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2752 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 39: -#line 413 "bison_parser.y" /* yacc.c:1646 */ + case 45: +#line 446 "bison_parser.y" /* yacc.c:1646 */ { (yyval.delete_stmt) = new DeleteStatement(); (yyval.delete_stmt)->tableName = (yyvsp[0].sval); } -#line 2694 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2761 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 40: -#line 425 "bison_parser.y" /* yacc.c:1646 */ + case 46: +#line 458 "bison_parser.y" /* yacc.c:1646 */ { (yyval.insert_stmt) = new InsertStatement(kInsertValues); (yyval.insert_stmt)->tableName = (yyvsp[-5].sval); (yyval.insert_stmt)->columns = (yyvsp[-4].str_vec); (yyval.insert_stmt)->values = (yyvsp[-1].expr_vec); } -#line 2705 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2772 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 41: -#line 431 "bison_parser.y" /* yacc.c:1646 */ + case 47: +#line 464 "bison_parser.y" /* yacc.c:1646 */ { (yyval.insert_stmt) = new InsertStatement(kInsertSelect); (yyval.insert_stmt)->tableName = (yyvsp[-2].sval); (yyval.insert_stmt)->columns = (yyvsp[-1].str_vec); (yyval.insert_stmt)->select = (yyvsp[0].select_stmt); } -#line 2716 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2783 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 42: -#line 441 "bison_parser.y" /* yacc.c:1646 */ + case 48: +#line 474 "bison_parser.y" /* yacc.c:1646 */ { (yyval.str_vec) = (yyvsp[-1].str_vec); } -#line 2722 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2789 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 43: -#line 442 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.str_vec) = NULL; } -#line 2728 "bison_parser.cpp" /* yacc.c:1646 */ + case 49: +#line 475 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.str_vec) = nullptr; } +#line 2795 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 44: -#line 452 "bison_parser.y" /* yacc.c:1646 */ + case 50: +#line 485 "bison_parser.y" /* yacc.c:1646 */ { (yyval.update_stmt) = new UpdateStatement(); (yyval.update_stmt)->table = (yyvsp[-3].table); (yyval.update_stmt)->updates = (yyvsp[-1].update_vec); (yyval.update_stmt)->where = (yyvsp[0].expr); } -#line 2739 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2806 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 45: -#line 461 "bison_parser.y" /* yacc.c:1646 */ + case 51: +#line 494 "bison_parser.y" /* yacc.c:1646 */ { (yyval.update_vec) = new std::vector(); (yyval.update_vec)->push_back((yyvsp[0].update_t)); } -#line 2745 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2812 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 46: -#line 462 "bison_parser.y" /* yacc.c:1646 */ + case 52: +#line 495 "bison_parser.y" /* yacc.c:1646 */ { (yyvsp[-2].update_vec)->push_back((yyvsp[0].update_t)); (yyval.update_vec) = (yyvsp[-2].update_vec); } -#line 2751 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2818 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 47: -#line 466 "bison_parser.y" /* yacc.c:1646 */ + case 53: +#line 499 "bison_parser.y" /* yacc.c:1646 */ { (yyval.update_t) = new UpdateClause(); (yyval.update_t)->column = (yyvsp[-2].sval); (yyval.update_t)->value = (yyvsp[0].expr); } -#line 2761 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2828 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 50: -#line 483 "bison_parser.y" /* yacc.c:1646 */ + case 56: +#line 516 "bison_parser.y" /* yacc.c:1646 */ { (yyval.select_stmt) = (yyvsp[-1].select_stmt); } -#line 2767 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2834 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 51: -#line 484 "bison_parser.y" /* yacc.c:1646 */ + case 57: +#line 517 "bison_parser.y" /* yacc.c:1646 */ { (yyval.select_stmt) = (yyvsp[-1].select_stmt); } -#line 2773 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2840 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 52: -#line 488 "bison_parser.y" /* yacc.c:1646 */ + case 58: +#line 521 "bison_parser.y" /* yacc.c:1646 */ { (yyval.select_stmt) = (yyvsp[-2].select_stmt); (yyval.select_stmt)->order = (yyvsp[-1].order_vec); // Limit could have been set by TOP. - if ((yyvsp[0].limit) != NULL) { + if ((yyvsp[0].limit) != nullptr) { delete (yyval.select_stmt)->limit; (yyval.select_stmt)->limit = (yyvsp[0].limit); } } -#line 2788 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2855 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 53: -#line 498 "bison_parser.y" /* yacc.c:1646 */ + case 59: +#line 531 "bison_parser.y" /* yacc.c:1646 */ { // TODO: allow multiple unions (through linked list) // TODO: capture type of set_operator @@ -2798,32 +2865,32 @@ yyreduce: (yyval.select_stmt)->order = (yyvsp[-1].order_vec); // Limit could have been set by TOP. - if ((yyvsp[0].limit) != NULL) { + if ((yyvsp[0].limit) != nullptr) { delete (yyval.select_stmt)->limit; (yyval.select_stmt)->limit = (yyvsp[0].limit); } } -#line 2807 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2874 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 54: -#line 512 "bison_parser.y" /* yacc.c:1646 */ + case 60: +#line 545 "bison_parser.y" /* yacc.c:1646 */ { (yyval.select_stmt) = (yyvsp[-4].select_stmt); (yyval.select_stmt)->unionSelect = (yyvsp[-2].select_stmt); (yyval.select_stmt)->order = (yyvsp[-1].order_vec); // Limit could have been set by TOP. - if ((yyvsp[0].limit) != NULL) { + if ((yyvsp[0].limit) != nullptr) { delete (yyval.select_stmt)->limit; (yyval.select_stmt)->limit = (yyvsp[0].limit); } } -#line 2823 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2890 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 58: -#line 532 "bison_parser.y" /* yacc.c:1646 */ + case 64: +#line 565 "bison_parser.y" /* yacc.c:1646 */ { (yyval.select_stmt) = new SelectStatement(); (yyval.select_stmt)->limit = (yyvsp[-5].limit); @@ -2833,466 +2900,472 @@ yyreduce: (yyval.select_stmt)->whereClause = (yyvsp[-1].expr); (yyval.select_stmt)->groupBy = (yyvsp[0].group_t); } -#line 2837 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 59: -#line 544 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.bval) = true; } -#line 2843 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 60: -#line 545 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.bval) = false; } -#line 2849 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 62: -#line 553 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.table) = (yyvsp[0].table); } -#line 2855 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 63: -#line 558 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2861 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 64: -#line 559 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = NULL; } -#line 2867 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2904 "bison_parser.cpp" /* yacc.c:1646 */ break; case 65: -#line 563 "bison_parser.y" /* yacc.c:1646 */ +#line 577 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.bval) = true; } +#line 2910 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 66: +#line 578 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.bval) = false; } +#line 2916 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 68: +#line 586 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.table) = (yyvsp[0].table); } +#line 2922 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 69: +#line 591 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2928 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 70: +#line 592 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = nullptr; } +#line 2934 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 71: +#line 596 "bison_parser.y" /* yacc.c:1646 */ { (yyval.group_t) = new GroupByDescription(); (yyval.group_t)->columns = (yyvsp[-1].expr_vec); (yyval.group_t)->having = (yyvsp[0].expr); } -#line 2877 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 66: -#line 568 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.group_t) = NULL; } -#line 2883 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 67: -#line 572 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2889 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 68: -#line 573 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = NULL; } -#line 2895 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 69: -#line 576 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.order_vec) = (yyvsp[0].order_vec); } -#line 2901 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 70: -#line 577 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.order_vec) = NULL; } -#line 2907 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 71: -#line 581 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.order_vec) = new std::vector(); (yyval.order_vec)->push_back((yyvsp[0].order)); } -#line 2913 "bison_parser.cpp" /* yacc.c:1646 */ +#line 2944 "bison_parser.cpp" /* yacc.c:1646 */ break; case 72: -#line 582 "bison_parser.y" /* yacc.c:1646 */ - { (yyvsp[-2].order_vec)->push_back((yyvsp[0].order)); (yyval.order_vec) = (yyvsp[-2].order_vec); } -#line 2919 "bison_parser.cpp" /* yacc.c:1646 */ +#line 601 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.group_t) = nullptr; } +#line 2950 "bison_parser.cpp" /* yacc.c:1646 */ break; case 73: -#line 586 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.order) = new OrderDescription((yyvsp[0].order_type), (yyvsp[-1].expr)); } -#line 2925 "bison_parser.cpp" /* yacc.c:1646 */ +#line 605 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2956 "bison_parser.cpp" /* yacc.c:1646 */ break; case 74: -#line 590 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.order_type) = kOrderAsc; } -#line 2931 "bison_parser.cpp" /* yacc.c:1646 */ +#line 606 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = nullptr; } +#line 2962 "bison_parser.cpp" /* yacc.c:1646 */ break; case 75: -#line 591 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.order_type) = kOrderDesc; } -#line 2937 "bison_parser.cpp" /* yacc.c:1646 */ +#line 609 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.order_vec) = (yyvsp[0].order_vec); } +#line 2968 "bison_parser.cpp" /* yacc.c:1646 */ break; case 76: -#line 592 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.order_type) = kOrderAsc; } -#line 2943 "bison_parser.cpp" /* yacc.c:1646 */ +#line 610 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.order_vec) = nullptr; } +#line 2974 "bison_parser.cpp" /* yacc.c:1646 */ break; case 77: -#line 598 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.limit) = new LimitDescription((yyvsp[0].expr)->ival, kNoOffset); delete (yyvsp[0].expr); } -#line 2949 "bison_parser.cpp" /* yacc.c:1646 */ +#line 614 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.order_vec) = new std::vector(); (yyval.order_vec)->push_back((yyvsp[0].order)); } +#line 2980 "bison_parser.cpp" /* yacc.c:1646 */ break; case 78: -#line 599 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.limit) = NULL; } -#line 2955 "bison_parser.cpp" /* yacc.c:1646 */ +#line 615 "bison_parser.y" /* yacc.c:1646 */ + { (yyvsp[-2].order_vec)->push_back((yyvsp[0].order)); (yyval.order_vec) = (yyvsp[-2].order_vec); } +#line 2986 "bison_parser.cpp" /* yacc.c:1646 */ break; case 79: -#line 603 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.limit) = new LimitDescription((yyvsp[0].expr)->ival, kNoOffset); delete (yyvsp[0].expr); } -#line 2961 "bison_parser.cpp" /* yacc.c:1646 */ +#line 619 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.order) = new OrderDescription((yyvsp[0].order_type), (yyvsp[-1].expr)); } +#line 2992 "bison_parser.cpp" /* yacc.c:1646 */ break; case 80: -#line 604 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.limit) = new LimitDescription((yyvsp[-2].expr)->ival, (yyvsp[0].expr)->ival); delete (yyvsp[-2].expr); delete (yyvsp[0].expr); } -#line 2967 "bison_parser.cpp" /* yacc.c:1646 */ +#line 623 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.order_type) = kOrderAsc; } +#line 2998 "bison_parser.cpp" /* yacc.c:1646 */ break; case 81: -#line 605 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.limit) = NULL; } -#line 2973 "bison_parser.cpp" /* yacc.c:1646 */ +#line 624 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.order_type) = kOrderDesc; } +#line 3004 "bison_parser.cpp" /* yacc.c:1646 */ break; case 82: -#line 612 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } -#line 2979 "bison_parser.cpp" /* yacc.c:1646 */ +#line 625 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.order_type) = kOrderAsc; } +#line 3010 "bison_parser.cpp" /* yacc.c:1646 */ break; case 83: -#line 613 "bison_parser.y" /* yacc.c:1646 */ - { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } -#line 2985 "bison_parser.cpp" /* yacc.c:1646 */ +#line 631 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.limit) = new LimitDescription((yyvsp[0].expr)->ival, kNoOffset); delete (yyvsp[0].expr); } +#line 3016 "bison_parser.cpp" /* yacc.c:1646 */ break; case 84: -#line 617 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } -#line 2991 "bison_parser.cpp" /* yacc.c:1646 */ +#line 632 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.limit) = nullptr; } +#line 3022 "bison_parser.cpp" /* yacc.c:1646 */ break; case 85: -#line 618 "bison_parser.y" /* yacc.c:1646 */ - { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } -#line 2997 "bison_parser.cpp" /* yacc.c:1646 */ +#line 636 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.limit) = new LimitDescription((yyvsp[0].expr)->ival, kNoOffset); delete (yyvsp[0].expr); } +#line 3028 "bison_parser.cpp" /* yacc.c:1646 */ break; case 86: -#line 622 "bison_parser.y" /* yacc.c:1646 */ +#line 637 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.limit) = new LimitDescription((yyvsp[-2].expr)->ival, (yyvsp[0].expr)->ival); delete (yyvsp[-2].expr); delete (yyvsp[0].expr); } +#line 3034 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 87: +#line 638 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.limit) = nullptr; } +#line 3040 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 88: +#line 645 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } +#line 3046 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 89: +#line 646 "bison_parser.y" /* yacc.c:1646 */ + { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } +#line 3052 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 90: +#line 650 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } +#line 3058 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 91: +#line 651 "bison_parser.y" /* yacc.c:1646 */ + { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } +#line 3064 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 92: +#line 655 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[-1].expr); (yyval.expr)->alias = (yyvsp[0].sval); } -#line 3006 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3073 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 93: -#line 638 "bison_parser.y" /* yacc.c:1646 */ + case 99: +#line 671 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[-1].expr); } -#line 3012 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3079 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 98: -#line 643 "bison_parser.y" /* yacc.c:1646 */ + case 104: +#line 676 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::makeSelect((yyvsp[-1].select_stmt)); } -#line 3018 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 102: -#line 653 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpUnary(kOpMinus, (yyvsp[0].expr)); } -#line 3024 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 103: -#line 654 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpUnary(kOpNot, (yyvsp[0].expr)); } -#line 3030 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 105: -#line 659 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '-', (yyvsp[0].expr)); } -#line 3036 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 106: -#line 660 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '+', (yyvsp[0].expr)); } -#line 3042 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 107: -#line 661 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '/', (yyvsp[0].expr)); } -#line 3048 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3085 "bison_parser.cpp" /* yacc.c:1646 */ break; case 108: -#line 662 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '*', (yyvsp[0].expr)); } -#line 3054 "bison_parser.cpp" /* yacc.c:1646 */ +#line 686 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpUnary(kOpMinus, (yyvsp[0].expr)); } +#line 3091 "bison_parser.cpp" /* yacc.c:1646 */ break; case 109: -#line 663 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '%', (yyvsp[0].expr)); } -#line 3060 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 110: -#line 664 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '^', (yyvsp[0].expr)); } -#line 3066 "bison_parser.cpp" /* yacc.c:1646 */ +#line 687 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpUnary(kOpNot, (yyvsp[0].expr)); } +#line 3097 "bison_parser.cpp" /* yacc.c:1646 */ break; case 111: -#line 665 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLike, (yyvsp[0].expr)); } -#line 3072 "bison_parser.cpp" /* yacc.c:1646 */ +#line 692 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '-', (yyvsp[0].expr)); } +#line 3103 "bison_parser.cpp" /* yacc.c:1646 */ break; case 112: -#line 666 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-3].expr), kOpNotLike, (yyvsp[0].expr)); } -#line 3078 "bison_parser.cpp" /* yacc.c:1646 */ +#line 693 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '+', (yyvsp[0].expr)); } +#line 3109 "bison_parser.cpp" /* yacc.c:1646 */ break; case 113: -#line 670 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpAnd, (yyvsp[0].expr)); } -#line 3084 "bison_parser.cpp" /* yacc.c:1646 */ +#line 694 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '/', (yyvsp[0].expr)); } +#line 3115 "bison_parser.cpp" /* yacc.c:1646 */ break; case 114: -#line 671 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpOr, (yyvsp[0].expr)); } -#line 3090 "bison_parser.cpp" /* yacc.c:1646 */ +#line 695 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '*', (yyvsp[0].expr)); } +#line 3121 "bison_parser.cpp" /* yacc.c:1646 */ break; case 115: -#line 675 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].expr_vec)); } -#line 3096 "bison_parser.cpp" /* yacc.c:1646 */ +#line 696 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '%', (yyvsp[0].expr)); } +#line 3127 "bison_parser.cpp" /* yacc.c:1646 */ break; case 116: -#line 676 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].expr_vec))); } -#line 3102 "bison_parser.cpp" /* yacc.c:1646 */ +#line 697 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '^', (yyvsp[0].expr)); } +#line 3133 "bison_parser.cpp" /* yacc.c:1646 */ break; case 117: -#line 677 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].select_stmt)); } -#line 3108 "bison_parser.cpp" /* yacc.c:1646 */ +#line 698 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLike, (yyvsp[0].expr)); } +#line 3139 "bison_parser.cpp" /* yacc.c:1646 */ break; case 118: -#line 678 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].select_stmt))); } -#line 3114 "bison_parser.cpp" /* yacc.c:1646 */ +#line 699 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-3].expr), kOpNotLike, (yyvsp[0].expr)); } +#line 3145 "bison_parser.cpp" /* yacc.c:1646 */ break; case 119: -#line 683 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeCase((yyvsp[-5].expr), (yyvsp[-3].expr), (yyvsp[-1].expr)); } -#line 3120 "bison_parser.cpp" /* yacc.c:1646 */ +#line 703 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpAnd, (yyvsp[0].expr)); } +#line 3151 "bison_parser.cpp" /* yacc.c:1646 */ break; case 120: -#line 687 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeExists((yyvsp[-1].select_stmt)); } -#line 3126 "bison_parser.cpp" /* yacc.c:1646 */ +#line 704 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpOr, (yyvsp[0].expr)); } +#line 3157 "bison_parser.cpp" /* yacc.c:1646 */ break; case 121: -#line 688 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeExists((yyvsp[-1].select_stmt))); } -#line 3132 "bison_parser.cpp" /* yacc.c:1646 */ +#line 708 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].expr_vec)); } +#line 3163 "bison_parser.cpp" /* yacc.c:1646 */ break; case 122: -#line 692 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '=', (yyvsp[0].expr)); } -#line 3138 "bison_parser.cpp" /* yacc.c:1646 */ +#line 709 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].expr_vec))); } +#line 3169 "bison_parser.cpp" /* yacc.c:1646 */ break; case 123: -#line 693 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpNotEquals, (yyvsp[0].expr)); } -#line 3144 "bison_parser.cpp" /* yacc.c:1646 */ +#line 710 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].select_stmt)); } +#line 3175 "bison_parser.cpp" /* yacc.c:1646 */ break; case 124: -#line 694 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '<', (yyvsp[0].expr)); } -#line 3150 "bison_parser.cpp" /* yacc.c:1646 */ +#line 711 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].select_stmt))); } +#line 3181 "bison_parser.cpp" /* yacc.c:1646 */ break; case 125: -#line 695 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '>', (yyvsp[0].expr)); } -#line 3156 "bison_parser.cpp" /* yacc.c:1646 */ +#line 716 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeCase((yyvsp[-5].expr), (yyvsp[-3].expr), (yyvsp[-1].expr)); } +#line 3187 "bison_parser.cpp" /* yacc.c:1646 */ break; case 126: -#line 696 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLessEq, (yyvsp[0].expr)); } -#line 3162 "bison_parser.cpp" /* yacc.c:1646 */ +#line 720 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeExists((yyvsp[-1].select_stmt)); } +#line 3193 "bison_parser.cpp" /* yacc.c:1646 */ break; case 127: -#line 697 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpGreaterEq, (yyvsp[0].expr)); } -#line 3168 "bison_parser.cpp" /* yacc.c:1646 */ +#line 721 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeExists((yyvsp[-1].select_stmt))); } +#line 3199 "bison_parser.cpp" /* yacc.c:1646 */ break; case 128: -#line 701 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeFunctionRef((yyvsp[-4].sval), (yyvsp[-1].expr_vec), (yyvsp[-2].bval)); } -#line 3174 "bison_parser.cpp" /* yacc.c:1646 */ +#line 725 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '=', (yyvsp[0].expr)); } +#line 3205 "bison_parser.cpp" /* yacc.c:1646 */ break; case 129: -#line 705 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeBetween((yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3180 "bison_parser.cpp" /* yacc.c:1646 */ +#line 726 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpNotEquals, (yyvsp[0].expr)); } +#line 3211 "bison_parser.cpp" /* yacc.c:1646 */ break; case 130: -#line 709 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeColumnRef((yyvsp[0].sval)); } -#line 3186 "bison_parser.cpp" /* yacc.c:1646 */ +#line 727 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '<', (yyvsp[0].expr)); } +#line 3217 "bison_parser.cpp" /* yacc.c:1646 */ break; case 131: -#line 710 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeColumnRef((yyvsp[-2].sval), (yyvsp[0].sval)); } -#line 3192 "bison_parser.cpp" /* yacc.c:1646 */ +#line 728 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), '>', (yyvsp[0].expr)); } +#line 3223 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 132: +#line 729 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLessEq, (yyvsp[0].expr)); } +#line 3229 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 133: +#line 730 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpGreaterEq, (yyvsp[0].expr)); } +#line 3235 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 134: +#line 734 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeFunctionRef((yyvsp[-4].sval), (yyvsp[-1].expr_vec), (yyvsp[-2].bval)); } +#line 3241 "bison_parser.cpp" /* yacc.c:1646 */ break; case 135: -#line 720 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = Expr::makeLiteral((yyvsp[0].sval)); } -#line 3198 "bison_parser.cpp" /* yacc.c:1646 */ +#line 738 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeBetween((yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 3247 "bison_parser.cpp" /* yacc.c:1646 */ break; case 136: -#line 725 "bison_parser.y" /* yacc.c:1646 */ +#line 742 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeColumnRef((yyvsp[0].sval)); } +#line 3253 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 137: +#line 743 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeColumnRef((yyvsp[-2].sval), (yyvsp[0].sval)); } +#line 3259 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 141: +#line 753 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::makeLiteral((yyvsp[0].sval)); } +#line 3265 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 142: +#line 758 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::makeLiteral((yyvsp[0].fval)); } -#line 3204 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3271 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 138: -#line 730 "bison_parser.y" /* yacc.c:1646 */ + case 144: +#line 763 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::makeLiteral((yyvsp[0].ival)); } -#line 3210 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3277 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 139: -#line 734 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new Expr(kExprStar); } -#line 3216 "bison_parser.cpp" /* yacc.c:1646 */ + case 145: +#line 767 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.expr) = Expr::make(kExprStar); } +#line 3283 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 140: -#line 738 "bison_parser.y" /* yacc.c:1646 */ + case 146: +#line 771 "bison_parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::makeParameter(yylloc.total_column); (yyval.expr)->ival2 = yyloc.param_list.size(); yyloc.param_list.push_back((yyval.expr)); } -#line 3226 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3293 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 142: -#line 751 "bison_parser.y" /* yacc.c:1646 */ + case 148: +#line 784 "bison_parser.y" /* yacc.c:1646 */ { (yyvsp[0].table_vec)->push_back((yyvsp[-2].table)); auto tbl = new TableRef(kTableCrossProduct); tbl->list = (yyvsp[0].table_vec); (yyval.table) = tbl; } -#line 3237 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3304 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 144: -#line 762 "bison_parser.y" /* yacc.c:1646 */ + case 150: +#line 795 "bison_parser.y" /* yacc.c:1646 */ { auto tbl = new TableRef(kTableSelect); tbl->select = (yyvsp[-2].select_stmt); tbl->alias = (yyvsp[0].sval); (yyval.table) = tbl; } -#line 3248 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3315 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 146: -#line 773 "bison_parser.y" /* yacc.c:1646 */ + case 152: +#line 806 "bison_parser.y" /* yacc.c:1646 */ { (yyval.table_vec) = new std::vector(); (yyval.table_vec)->push_back((yyvsp[0].table)); } -#line 3254 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3321 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 147: -#line 774 "bison_parser.y" /* yacc.c:1646 */ + case 153: +#line 807 "bison_parser.y" /* yacc.c:1646 */ { (yyvsp[-2].table_vec)->push_back((yyvsp[0].table)); (yyval.table_vec) = (yyvsp[-2].table_vec); } -#line 3260 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3327 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 148: -#line 779 "bison_parser.y" /* yacc.c:1646 */ + case 154: +#line 812 "bison_parser.y" /* yacc.c:1646 */ { auto tbl = new TableRef(kTableName); tbl->name = (yyvsp[-1].sval); tbl->alias = (yyvsp[0].sval); (yyval.table) = tbl; } -#line 3271 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3338 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 149: -#line 789 "bison_parser.y" /* yacc.c:1646 */ + case 155: +#line 822 "bison_parser.y" /* yacc.c:1646 */ { (yyval.table) = new TableRef(kTableName); (yyval.table)->name = (yyvsp[0].sval); } -#line 3280 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3347 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 152: -#line 803 "bison_parser.y" /* yacc.c:1646 */ + case 157: +#line 831 "bison_parser.y" /* yacc.c:1646 */ { (yyval.sval) = (yyvsp[0].sval); } -#line 3286 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3353 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 155: -#line 809 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.sval) = NULL; } -#line 3292 "bison_parser.cpp" /* yacc.c:1646 */ + case 158: +#line 836 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.sval) = (yyvsp[0].sval); } +#line 3359 "bison_parser.cpp" /* yacc.c:1646 */ break; - case 156: -#line 818 "bison_parser.y" /* yacc.c:1646 */ + case 161: +#line 842 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.sval) = nullptr; } +#line 3365 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 162: +#line 851 "bison_parser.y" /* yacc.c:1646 */ { (yyval.table) = new TableRef(kTableJoin); (yyval.table)->join = new JoinDefinition(); @@ -3301,77 +3374,77 @@ yyreduce: (yyval.table)->join->right = (yyvsp[-2].table); (yyval.table)->join->condition = (yyvsp[0].expr); } -#line 3305 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 157: -#line 829 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.uval) = kJoinInner; } -#line 3311 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 158: -#line 830 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.uval) = kJoinOuter; } -#line 3317 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 159: -#line 831 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.uval) = kJoinLeftOuter; } -#line 3323 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 160: -#line 832 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.uval) = kJoinRightOuter; } -#line 3329 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 161: -#line 833 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.uval) = kJoinLeft; } -#line 3335 "bison_parser.cpp" /* yacc.c:1646 */ - break; - - case 162: -#line 834 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.uval) = kJoinRight; } -#line 3341 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3378 "bison_parser.cpp" /* yacc.c:1646 */ break; case 163: -#line 835 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.uval) = kJoinCross; } -#line 3347 "bison_parser.cpp" /* yacc.c:1646 */ +#line 862 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinInner; } +#line 3384 "bison_parser.cpp" /* yacc.c:1646 */ break; case 164: -#line 836 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.uval) = kJoinNatural; } -#line 3353 "bison_parser.cpp" /* yacc.c:1646 */ +#line 863 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinOuter; } +#line 3390 "bison_parser.cpp" /* yacc.c:1646 */ break; case 165: -#line 837 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.uval) = kJoinInner; } -#line 3359 "bison_parser.cpp" /* yacc.c:1646 */ +#line 864 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinLeftOuter; } +#line 3396 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 166: +#line 865 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinRightOuter; } +#line 3402 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 167: +#line 866 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinLeft; } +#line 3408 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 168: +#line 867 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinRight; } +#line 3414 "bison_parser.cpp" /* yacc.c:1646 */ break; case 169: -#line 857 "bison_parser.y" /* yacc.c:1646 */ - { (yyval.str_vec) = new std::vector(); (yyval.str_vec)->push_back((yyvsp[0].sval)); } -#line 3365 "bison_parser.cpp" /* yacc.c:1646 */ +#line 868 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinCross; } +#line 3420 "bison_parser.cpp" /* yacc.c:1646 */ break; case 170: -#line 858 "bison_parser.y" /* yacc.c:1646 */ +#line 869 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinNatural; } +#line 3426 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 171: +#line 870 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.uval) = kJoinInner; } +#line 3432 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 175: +#line 890 "bison_parser.y" /* yacc.c:1646 */ + { (yyval.str_vec) = new std::vector(); (yyval.str_vec)->push_back((yyvsp[0].sval)); } +#line 3438 "bison_parser.cpp" /* yacc.c:1646 */ + break; + + case 176: +#line 891 "bison_parser.y" /* yacc.c:1646 */ { (yyvsp[-2].str_vec)->push_back((yyvsp[0].sval)); (yyval.str_vec) = (yyvsp[-2].str_vec); } -#line 3371 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3444 "bison_parser.cpp" /* yacc.c:1646 */ break; -#line 3375 "bison_parser.cpp" /* yacc.c:1646 */ +#line 3448 "bison_parser.cpp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -3606,7 +3679,7 @@ yyreturn: #endif return yyresult; } -#line 861 "bison_parser.y" /* yacc.c:1906 */ +#line 894 "bison_parser.y" /* yacc.c:1906 */ /********************************* ** Section 4: Additional C code diff --git a/src/parser/bison_parser.h b/src/parser/bison_parser.h index 24e30fa..3548f73 100644 --- a/src/parser/bison_parser.h +++ b/src/parser/bison_parser.h @@ -82,128 +82,128 @@ extern int hsql_debug; SQL_STRING = 259, SQL_FLOATVAL = 260, SQL_INTVAL = 261, - SQL_NOTEQUALS = 262, - SQL_LESSEQ = 263, - SQL_GREATEREQ = 264, - SQL_DEALLOCATE = 265, - SQL_PARAMETERS = 266, - SQL_INTERSECT = 267, - SQL_TEMPORARY = 268, - SQL_TIMESTAMP = 269, - SQL_DISTINCT = 270, - SQL_NVARCHAR = 271, - SQL_RESTRICT = 272, - SQL_TRUNCATE = 273, - SQL_ANALYZE = 274, - SQL_BETWEEN = 275, - SQL_CASCADE = 276, - SQL_COLUMNS = 277, - SQL_CONTROL = 278, - SQL_DEFAULT = 279, - SQL_EXECUTE = 280, - SQL_EXPLAIN = 281, - SQL_HISTORY = 282, - SQL_INTEGER = 283, - SQL_NATURAL = 284, - SQL_PREPARE = 285, - SQL_PRIMARY = 286, - SQL_SCHEMAS = 287, - SQL_SPATIAL = 288, - SQL_VIRTUAL = 289, - SQL_BEFORE = 290, - SQL_COLUMN = 291, - SQL_CREATE = 292, - SQL_DELETE = 293, - SQL_DIRECT = 294, - SQL_DOUBLE = 295, - SQL_ESCAPE = 296, - SQL_EXCEPT = 297, - SQL_EXISTS = 298, - SQL_GLOBAL = 299, - SQL_HAVING = 300, - SQL_IMPORT = 301, - SQL_INSERT = 302, - SQL_ISNULL = 303, - SQL_OFFSET = 304, - SQL_RENAME = 305, - SQL_SCHEMA = 306, - SQL_SELECT = 307, - SQL_SORTED = 308, - SQL_TABLES = 309, - SQL_UNIQUE = 310, - SQL_UNLOAD = 311, - SQL_UPDATE = 312, - SQL_VALUES = 313, - SQL_AFTER = 314, - SQL_ALTER = 315, - SQL_CROSS = 316, - SQL_DELTA = 317, - SQL_GROUP = 318, - SQL_INDEX = 319, - SQL_INNER = 320, - SQL_LIMIT = 321, - SQL_LOCAL = 322, - SQL_MERGE = 323, - SQL_MINUS = 324, - SQL_ORDER = 325, - SQL_OUTER = 326, - SQL_RIGHT = 327, - SQL_TABLE = 328, - SQL_UNION = 329, - SQL_USING = 330, - SQL_WHERE = 331, - SQL_CALL = 332, - SQL_CASE = 333, - SQL_DATE = 334, - SQL_DESC = 335, - SQL_DROP = 336, - SQL_ELSE = 337, - SQL_FILE = 338, - SQL_FROM = 339, - SQL_FULL = 340, - SQL_HASH = 341, - SQL_HINT = 342, - SQL_INTO = 343, - SQL_JOIN = 344, - SQL_LEFT = 345, - SQL_LIKE = 346, - SQL_LOAD = 347, - SQL_NULL = 348, - SQL_PART = 349, - SQL_PLAN = 350, - SQL_SHOW = 351, - SQL_TEXT = 352, - SQL_THEN = 353, - SQL_TIME = 354, - SQL_VIEW = 355, - SQL_WHEN = 356, - SQL_WITH = 357, - SQL_ADD = 358, - SQL_ALL = 359, - SQL_AND = 360, - SQL_ASC = 361, - SQL_CSV = 362, - SQL_END = 363, - SQL_FOR = 364, - SQL_INT = 365, - SQL_KEY = 366, - SQL_NOT = 367, - SQL_OFF = 368, - SQL_SET = 369, - SQL_TBL = 370, - SQL_TOP = 371, - SQL_AS = 372, - SQL_BY = 373, - SQL_IF = 374, - SQL_IN = 375, - SQL_IS = 376, - SQL_OF = 377, - SQL_ON = 378, - SQL_OR = 379, - SQL_TO = 380, - SQL_EQUALS = 381, - SQL_LESS = 382, - SQL_GREATER = 383, + SQL_DEALLOCATE = 262, + SQL_PARAMETERS = 263, + SQL_INTERSECT = 264, + SQL_TEMPORARY = 265, + SQL_TIMESTAMP = 266, + SQL_DISTINCT = 267, + SQL_NVARCHAR = 268, + SQL_RESTRICT = 269, + SQL_TRUNCATE = 270, + SQL_ANALYZE = 271, + SQL_BETWEEN = 272, + SQL_CASCADE = 273, + SQL_COLUMNS = 274, + SQL_CONTROL = 275, + SQL_DEFAULT = 276, + SQL_EXECUTE = 277, + SQL_EXPLAIN = 278, + SQL_HISTORY = 279, + SQL_INTEGER = 280, + SQL_NATURAL = 281, + SQL_PREPARE = 282, + SQL_PRIMARY = 283, + SQL_SCHEMAS = 284, + SQL_SPATIAL = 285, + SQL_VIRTUAL = 286, + SQL_BEFORE = 287, + SQL_COLUMN = 288, + SQL_CREATE = 289, + SQL_DELETE = 290, + SQL_DIRECT = 291, + SQL_DOUBLE = 292, + SQL_ESCAPE = 293, + SQL_EXCEPT = 294, + SQL_EXISTS = 295, + SQL_GLOBAL = 296, + SQL_HAVING = 297, + SQL_IMPORT = 298, + SQL_INSERT = 299, + SQL_ISNULL = 300, + SQL_OFFSET = 301, + SQL_RENAME = 302, + SQL_SCHEMA = 303, + SQL_SELECT = 304, + SQL_SORTED = 305, + SQL_TABLES = 306, + SQL_UNIQUE = 307, + SQL_UNLOAD = 308, + SQL_UPDATE = 309, + SQL_VALUES = 310, + SQL_AFTER = 311, + SQL_ALTER = 312, + SQL_CROSS = 313, + SQL_DELTA = 314, + SQL_GROUP = 315, + SQL_INDEX = 316, + SQL_INNER = 317, + SQL_LIMIT = 318, + SQL_LOCAL = 319, + SQL_MERGE = 320, + SQL_MINUS = 321, + SQL_ORDER = 322, + SQL_OUTER = 323, + SQL_RIGHT = 324, + SQL_TABLE = 325, + SQL_UNION = 326, + SQL_USING = 327, + SQL_WHERE = 328, + SQL_CALL = 329, + SQL_CASE = 330, + SQL_DATE = 331, + SQL_DESC = 332, + SQL_DROP = 333, + SQL_ELSE = 334, + SQL_FILE = 335, + SQL_FROM = 336, + SQL_FULL = 337, + SQL_HASH = 338, + SQL_HINT = 339, + SQL_INTO = 340, + SQL_JOIN = 341, + SQL_LEFT = 342, + SQL_LIKE = 343, + SQL_LOAD = 344, + SQL_NULL = 345, + SQL_PART = 346, + SQL_PLAN = 347, + SQL_SHOW = 348, + SQL_TEXT = 349, + SQL_THEN = 350, + SQL_TIME = 351, + SQL_VIEW = 352, + SQL_WHEN = 353, + SQL_WITH = 354, + SQL_ADD = 355, + SQL_ALL = 356, + SQL_AND = 357, + SQL_ASC = 358, + SQL_CSV = 359, + SQL_END = 360, + SQL_FOR = 361, + SQL_INT = 362, + SQL_KEY = 363, + SQL_NOT = 364, + SQL_OFF = 365, + SQL_SET = 366, + SQL_TBL = 367, + SQL_TOP = 368, + SQL_AS = 369, + SQL_BY = 370, + SQL_IF = 371, + SQL_IN = 372, + SQL_IS = 373, + SQL_OF = 374, + SQL_ON = 375, + SQL_OR = 376, + SQL_TO = 377, + SQL_EQUALS = 378, + SQL_NOTEQUALS = 379, + SQL_LESS = 380, + SQL_GREATER = 381, + SQL_LESSEQ = 382, + SQL_GREATEREQ = 383, SQL_NOTNULL = 384, SQL_UMINUS = 385 };