diff --git a/src/parser/bison_parser.cpp b/src/parser/bison_parser.cpp index 662266c..aaac080 100644 --- a/src/parser/bison_parser.cpp +++ b/src/parser/bison_parser.cpp @@ -635,16 +635,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 52 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 634 +#define YYLAST 666 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 163 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 95 +#define YYNNTS 96 /* YYNRULES -- Number of rules. */ -#define YYNRULES 237 +#define YYNRULES 239 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 430 +#define YYNSTATES 431 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ @@ -716,19 +716,19 @@ static const yytype_uint16 yyrline[] = 653, 657, 669, 670, 674, 678, 679, 682, 687, 688, 692, 697, 701, 702, 705, 706, 710, 711, 715, 719, 720, 721, 727, 728, 732, 733, 734, 735, 736, 737, - 738, 739, 746, 747, 751, 752, 756, 766, 767, 768, - 769, 770, 774, 775, 776, 777, 778, 779, 780, 781, - 782, 783, 787, 788, 792, 793, 794, 795, 796, 800, - 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, - 814, 815, 819, 820, 821, 822, 828, 829, 830, 831, - 835, 836, 840, 841, 845, 846, 847, 848, 849, 850, - 851, 855, 856, 860, 864, 865, 866, 867, 868, 869, - 872, 876, 880, 884, 885, 886, 887, 891, 892, 893, - 894, 895, 899, 903, 904, 908, 909, 913, 917, 921, - 933, 934, 944, 945, 949, 950, 959, 960, 965, 976, - 985, 986, 991, 992, 997, 998, 1002, 1003, 1008, 1009, - 1017, 1025, 1035, 1054, 1055, 1056, 1057, 1058, 1059, 1060, - 1061, 1062, 1063, 1068, 1077, 1078, 1083, 1084 + 738, 739, 746, 747, 751, 752, 756, 757, 761, 771, + 772, 773, 774, 775, 779, 780, 781, 782, 783, 784, + 785, 786, 787, 788, 792, 793, 797, 798, 799, 800, + 801, 805, 806, 807, 808, 809, 810, 811, 812, 813, + 814, 815, 819, 820, 824, 825, 826, 827, 833, 834, + 835, 836, 840, 841, 845, 846, 850, 851, 852, 853, + 854, 855, 856, 860, 861, 865, 869, 870, 871, 872, + 873, 874, 877, 881, 885, 889, 890, 891, 892, 896, + 897, 898, 899, 900, 904, 908, 909, 913, 914, 918, + 922, 926, 938, 939, 949, 950, 954, 955, 964, 965, + 970, 981, 990, 991, 996, 997, 1002, 1003, 1007, 1008, + 1013, 1014, 1022, 1030, 1040, 1059, 1060, 1061, 1062, 1063, + 1064, 1065, 1066, 1067, 1068, 1073, 1082, 1083, 1088, 1089 }; #endif @@ -771,15 +771,16 @@ static const char *const yytname[] = "set_operator", "set_type", "opt_all", "select_clause", "opt_distinct", "select_list", "opt_from_clause", "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", "case_list", - "exists_expr", "comp_expr", "function_expr", "extract_expr", - "datetime_field", "array_expr", "array_index", "between_expr", - "column_name", "literal", "string_literal", "bool_literal", - "num_literal", "int_literal", "null_literal", "param_expr", "table_ref", - "table_ref_atomic", "nonjoin_table_ref_atomic", "table_ref_commalist", - "table_ref_name", "table_ref_name_no_alias", "table_name", "table_alias", + "opt_order_type", "opt_top", "opt_limit", "expr_list", + "opt_literal_list", "literal_list", "expr_alias", "expr", "operand", + "scalar_expr", "unary_expr", "binary_expr", "logic_expr", "in_expr", + "case_expr", "case_list", "exists_expr", "comp_expr", "function_expr", + "extract_expr", "datetime_field", "array_expr", "array_index", + "between_expr", "column_name", "literal", "string_literal", + "bool_literal", "num_literal", "int_literal", "null_literal", + "param_expr", "table_ref", "table_ref_atomic", + "nonjoin_table_ref_atomic", "table_ref_commalist", "table_ref_name", + "table_ref_name_no_alias", "table_name", "table_alias", "opt_table_alias", "alias", "opt_alias", "join_clause", "opt_join_type", "join_condition", "opt_semicolon", "ident_commalist", YY_NULLPTR }; @@ -810,63 +811,64 @@ static const yytype_uint16 yytoknum[] = }; # endif -#define YYPACT_NINF -337 +#define YYPACT_NINF -324 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-337))) + (!!((Yystate) == (-324))) -#define YYTABLE_NINF -233 +#define YYTABLE_NINF -235 #define yytable_value_is_error(Yytable_value) \ - (!!((Yytable_value) == (-233))) + (!!((Yytable_value) == (-235))) /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { - 358, 50, 42, 43, 84, -43, 16, 95, 38, -14, - 42, -41, 29, -35, 189, 54, -337, 112, 112, -337, - -337, -337, -337, -337, -337, -337, -337, -337, -337, 14, - -337, 22, 216, 69, -337, -68, 151, 121, 121, 42, - 132, 42, 243, 238, 148, -337, 135, 135, 42, -337, - 119, 134, -337, 358, -337, 195, -337, -337, -337, -337, - -337, -35, 174, 165, -35, -15, -337, 287, 23, 295, - 187, 42, 42, 236, -337, 231, 160, -337, -337, -337, - 193, 315, 278, 42, 42, -337, -337, -337, -337, 166, - -337, 255, -337, -337, -337, 193, 255, 243, 11, -337, - -337, -337, -337, -337, -337, -337, -337, -114, -337, -337, - -337, -337, -337, -337, -337, -337, -337, 286, -71, 160, - 193, -337, 324, 328, 126, -102, 175, 184, 125, 227, - 196, 261, -337, 159, 268, 197, -337, 7, 320, -337, - -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, - -337, -337, -337, -337, 219, -63, -337, -337, -337, -337, - 356, -15, 199, -337, -28, -15, -337, 313, 314, 318, - -337, 23, -337, 252, 366, 253, 65, 281, -337, -337, - -44, 215, -337, 0, 18, 327, 214, 193, 80, 24, - 218, 261, 404, 193, 183, 221, -88, 4, 236, -337, - 193, -337, 193, 378, 193, -337, -337, 261, -337, 261, - -56, 225, 78, 261, 261, 261, 261, 261, 261, 261, - 261, 261, 261, 261, 261, 261, 261, 261, 243, 193, - 315, -337, 226, 20, -337, -337, 193, -337, -337, -337, - -337, 243, 243, 243, -337, 302, 191, 98, -337, -35, - 42, -337, 384, 23, -337, 193, -337, -337, 232, -337, - -337, -337, -337, -337, -337, 306, -16, 32, 193, 193, - -337, 327, 300, 56, -337, -337, -35, -337, 9, -337, - 234, -337, 6, -337, 333, -337, -337, -337, 293, 361, - 438, 261, 244, 159, -337, 305, 247, 438, 438, 438, - 438, 472, 472, 472, 472, 183, 183, -103, -103, -103, - -53, 250, 65, -337, 23, -337, 356, -337, -337, -337, - -337, 324, -337, 248, -337, -337, 256, -337, -337, -337, - 89, -337, 366, -337, -337, -337, 99, 115, -337, 193, - 193, 193, -337, 86, 13, 257, -337, 258, 317, -337, - -337, -337, 346, 348, 349, 331, 4, 419, -337, -337, - -337, 307, -337, 261, 438, 159, 266, 120, -337, -337, - 136, -337, -337, 421, 422, -337, 330, -337, -337, -337, - -337, -87, 65, 117, -337, 193, -337, 6, 4, -337, - -337, -337, 4, 153, 272, 193, 404, 273, 140, -337, - -337, -337, 274, 276, -337, -337, -337, 65, -337, -337, - 510, 328, -38, -337, -337, -337, -337, 279, 193, 146, - 193, -337, 19, 65, -337, -337, 65, 271, 277, -337 + 325, 25, 48, 65, 88, -40, 17, 19, 36, 22, + 48, -24, 28, -44, 127, 31, -324, 23, 23, -324, + -324, -324, -324, -324, -324, -324, -324, -324, -324, 13, + -324, 16, 138, 26, -324, 15, 108, 96, 96, 48, + 158, 48, 234, 255, 163, -324, 165, 165, 48, -324, + 122, 128, -324, 325, -324, 203, -324, -324, -324, -324, + -324, -44, 196, 193, -44, 130, -324, 310, 24, 311, + 205, 48, 48, 240, -324, 235, 167, -324, -324, -324, + 126, 317, 285, 48, 48, -324, -324, -324, -324, 172, + -324, 263, -324, -324, -324, 126, 263, 234, 5, -324, + -324, -324, -324, -324, -324, -324, -324, 177, 175, -324, + -324, -324, -324, -324, -324, -324, -324, -324, 296, -68, + 167, 126, -324, 334, 336, -14, -121, 185, 188, 92, + 194, 191, 228, -324, 160, 264, 187, -324, 10, 287, + -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, + -324, -324, -324, -324, -324, 212, -62, -324, -324, -324, + -324, 351, 130, 197, -324, -49, 130, -324, 309, 315, + 318, -324, 24, -324, 243, 365, 251, -33, 283, -324, + -324, 99, 218, -324, 4, 9, 329, 49, 126, 118, + -1, 225, 228, 373, 126, 62, 226, -83, 12, 240, + -324, 126, -324, 126, 380, 126, -324, -324, 228, -324, + 228, -71, 230, 79, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 234, + 126, 317, -324, 232, 113, -324, -324, 126, -324, -324, + -324, -324, 234, 234, 234, -324, 307, 555, 121, -324, + -44, 48, -324, 391, 24, -324, 126, -324, -324, 237, + -324, -324, -324, -324, -324, -324, 312, 119, 143, 126, + 126, -324, 329, 304, -19, -324, -324, -44, -324, 302, + -324, 238, -324, 6, -324, 335, -324, -324, -324, 295, + 339, 411, 228, 245, 160, -324, 308, 249, 411, 411, + 411, 411, 426, 426, 426, 426, 62, 62, -109, -109, + -109, -35, 250, -33, -324, 24, -324, 351, -324, -324, + -324, -324, 334, -324, 248, -324, -324, 254, -324, -324, + -324, 93, -324, 365, -324, -324, -324, 132, 137, -324, + 126, 126, 126, -324, 152, 131, 256, -324, 259, 322, + -324, -324, -324, 342, 347, 348, 331, 12, 420, -324, + -324, -324, 305, -324, 228, 411, 160, 272, 141, -324, + -324, 142, -324, -324, 428, 435, -324, 352, -324, -324, + -324, -324, -80, -33, 159, -324, 126, -324, 6, 12, + -324, -324, -324, 12, 384, 286, 126, 373, 288, 147, + -324, -324, -324, 290, 292, -324, -324, -324, -33, -324, + -324, -6, 336, -38, -324, -324, -324, -324, 294, 126, + 153, 126, -324, 21, -33, -324, -324, -33, 298, 301, + -324 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -875,78 +877,79 @@ static const yytype_int16 yypact[] = static const yytype_uint8 yydefact[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, - 0, 0, 0, 0, 0, 235, 3, 18, 18, 16, + 0, 0, 0, 0, 0, 237, 3, 18, 18, 16, 9, 7, 10, 15, 12, 13, 11, 14, 8, 66, - 67, 95, 0, 210, 57, 25, 0, 36, 36, 0, - 0, 0, 0, 83, 0, 209, 55, 55, 0, 30, - 0, 0, 1, 234, 2, 0, 6, 5, 77, 78, - 76, 0, 80, 0, 0, 111, 53, 0, 0, 0, - 0, 0, 0, 89, 28, 0, 61, 197, 102, 82, + 67, 95, 0, 212, 57, 25, 0, 36, 36, 0, + 0, 0, 0, 83, 0, 211, 55, 55, 0, 30, + 0, 0, 1, 236, 2, 0, 6, 5, 77, 78, + 76, 0, 80, 0, 0, 111, 53, 0, 115, 0, + 0, 0, 0, 89, 28, 0, 61, 199, 102, 82, 0, 0, 0, 0, 0, 31, 70, 69, 4, 0, 71, 95, 72, 79, 75, 0, 95, 0, 0, 73, - 211, 192, 195, 198, 193, 194, 199, 0, 114, 187, - 188, 189, 196, 190, 191, 24, 23, 0, 0, 61, - 0, 56, 0, 0, 0, 183, 0, 0, 0, 0, - 0, 0, 185, 0, 86, 84, 112, 219, 117, 124, - 125, 126, 119, 121, 127, 120, 139, 128, 129, 130, - 123, 118, 132, 133, 0, 89, 63, 54, 51, 52, - 0, 111, 94, 96, 101, 111, 106, 108, 107, 104, - 26, 0, 35, 0, 0, 0, 88, 0, 29, 236, - 0, 0, 59, 83, 0, 0, 0, 0, 0, 0, - 0, 0, 135, 0, 134, 0, 0, 0, 89, 85, - 0, 217, 0, 0, 0, 218, 116, 0, 136, 0, + 213, 194, 197, 200, 195, 196, 201, 0, 114, 116, + 189, 190, 191, 198, 192, 193, 24, 23, 0, 0, + 61, 0, 56, 0, 0, 0, 185, 0, 0, 0, + 0, 0, 0, 187, 0, 86, 84, 112, 221, 119, + 126, 127, 128, 121, 123, 129, 122, 141, 130, 131, + 132, 125, 120, 134, 135, 0, 89, 63, 54, 51, + 52, 0, 111, 94, 96, 101, 111, 106, 108, 107, + 104, 26, 0, 35, 0, 0, 0, 88, 0, 29, + 238, 0, 0, 59, 83, 0, 0, 0, 0, 0, + 0, 0, 0, 137, 0, 136, 0, 0, 0, 89, + 85, 0, 219, 0, 0, 0, 220, 118, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 62, 21, 0, 19, 68, 0, 100, 99, 98, - 74, 0, 0, 0, 115, 0, 0, 0, 37, 0, - 0, 60, 0, 0, 171, 0, 184, 186, 0, 174, - 175, 176, 177, 178, 179, 0, 0, 0, 0, 0, - 158, 0, 0, 0, 131, 122, 0, 87, 200, 202, - 0, 204, 215, 203, 91, 113, 150, 216, 151, 0, - 146, 0, 0, 0, 137, 0, 149, 148, 164, 165, - 166, 167, 168, 169, 170, 141, 140, 143, 142, 144, - 145, 0, 65, 64, 0, 17, 0, 97, 110, 109, - 105, 0, 41, 0, 44, 43, 0, 42, 47, 40, - 50, 33, 0, 34, 27, 237, 0, 0, 162, 0, - 0, 0, 156, 0, 0, 0, 180, 0, 0, 231, - 223, 229, 227, 230, 225, 0, 0, 0, 214, 208, - 212, 0, 81, 0, 147, 0, 0, 0, 138, 181, - 0, 20, 32, 0, 0, 48, 0, 39, 38, 58, - 172, 0, 160, 0, 159, 0, 163, 215, 0, 226, - 228, 224, 0, 201, 216, 0, 182, 0, 0, 154, - 152, 22, 0, 0, 49, 173, 157, 161, 205, 220, - 232, 0, 93, 155, 153, 45, 46, 0, 0, 0, - 0, 90, 0, 233, 221, 213, 92, 183, 0, 222 + 0, 0, 62, 21, 0, 19, 68, 0, 100, 99, + 98, 74, 0, 0, 0, 117, 0, 0, 0, 37, + 0, 0, 60, 0, 0, 173, 0, 186, 188, 0, + 176, 177, 178, 179, 180, 181, 0, 0, 0, 0, + 0, 160, 0, 0, 0, 133, 124, 0, 87, 202, + 204, 0, 206, 217, 205, 91, 113, 152, 218, 153, + 0, 148, 0, 0, 0, 139, 0, 151, 150, 166, + 167, 168, 169, 170, 171, 172, 143, 142, 145, 144, + 146, 147, 0, 65, 64, 0, 17, 0, 97, 110, + 109, 105, 0, 41, 0, 44, 43, 0, 42, 47, + 40, 50, 33, 0, 34, 27, 239, 0, 0, 164, + 0, 0, 0, 158, 0, 0, 0, 182, 0, 0, + 233, 225, 231, 229, 232, 227, 0, 0, 0, 216, + 210, 214, 0, 81, 0, 149, 0, 0, 0, 140, + 183, 0, 20, 32, 0, 0, 48, 0, 39, 38, + 58, 174, 0, 162, 0, 161, 0, 165, 217, 0, + 228, 230, 226, 0, 203, 218, 0, 184, 0, 0, + 156, 154, 22, 0, 0, 49, 175, 159, 163, 207, + 222, 234, 0, 93, 157, 155, 45, 46, 0, 0, + 0, 0, 90, 0, 235, 223, 215, 92, 185, 0, + 224 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -337, -337, -337, 385, -337, 425, -337, 123, -337, -337, - -337, -337, -337, 116, -337, -337, 406, -337, 113, -337, - -337, -337, 399, -337, -337, -337, 335, -337, -337, 217, - -208, 30, 386, -13, 426, -337, -337, 249, 269, -337, - -337, -337, -131, -337, -337, 97, -337, 220, -337, -337, - -25, -189, -238, 263, -94, -70, -337, -337, -337, -337, - -337, -337, 288, -337, -337, -337, -337, -337, -337, -337, - -337, 55, -66, -117, -337, -337, -34, -337, -337, -337, - -336, 76, -337, -337, -337, 1, -337, 91, 342, -337, - -337, -337, -337, -337, 70 + -324, -324, -324, 400, -324, 436, -324, 145, -324, -324, + -324, -324, -324, 144, -324, -324, 422, -324, 136, -324, + -324, -324, 417, -324, -324, -324, 356, -324, -324, 241, + -162, 42, 407, -13, 452, -324, -324, 53, 313, -324, + -324, -324, -125, -324, -324, 173, -324, 261, -324, -324, + 61, -189, -324, -236, 299, -94, -70, -324, -324, -324, + -324, -324, -324, 316, -324, -324, -324, -324, -324, -324, + -324, -324, 70, -65, -119, -324, -324, -34, -324, -324, + -324, -323, 107, -324, -324, -324, 0, -324, 111, 366, + -324, -324, -324, -324, -324, 94 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 14, 15, 16, 17, 56, 233, 234, 18, 116, - 19, 20, 75, 177, 21, 22, 71, 247, 248, 330, - 377, 23, 83, 24, 25, 26, 124, 27, 155, 156, - 28, 29, 91, 30, 61, 62, 94, 31, 80, 134, - 198, 199, 121, 362, 421, 65, 162, 163, 239, 43, - 99, 135, 107, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 189, 145, 146, 147, 148, 265, 149, 150, - 151, 152, 153, 109, 110, 111, 112, 113, 114, 277, - 278, 279, 280, 281, 44, 282, 358, 359, 360, 206, - 283, 355, 424, 54, 180 + -1, 14, 15, 16, 17, 56, 234, 235, 18, 117, + 19, 20, 75, 178, 21, 22, 71, 248, 249, 331, + 378, 23, 83, 24, 25, 26, 125, 27, 156, 157, + 28, 29, 91, 30, 61, 62, 94, 31, 80, 135, + 199, 200, 122, 363, 422, 65, 163, 164, 240, 43, + 99, 136, 107, 108, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 190, 146, 147, 148, 149, 266, 150, + 151, 152, 153, 154, 110, 111, 112, 113, 114, 115, + 278, 279, 280, 281, 282, 44, 283, 359, 360, 361, + 207, 284, 356, 425, 54, 181 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -954,138 +957,144 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 51, 164, 108, 34, 273, 178, 420, 33, 78, 201, - 201, 45, 79, 120, 173, 336, 9, 77, 202, 202, - 393, 256, 427, 58, 231, 213, 176, 101, 102, 77, - 37, 58, 46, 97, 188, 348, 291, 204, 204, 196, - 73, 333, 76, 50, 170, 33, 35, 171, 48, 85, - 227, 98, 228, 237, 59, 183, 410, 184, 38, 192, - 47, 194, 59, 166, 169, 292, 337, 284, 347, 349, - 275, 405, 118, 119, 350, 213, 370, 32, 202, 238, - 351, 352, 49, 340, 158, 159, 174, 36, 60, 68, - 202, 90, 63, 266, 90, 353, 60, 204, 230, -232, - 354, 39, 228, 42, 367, 244, 167, 268, 286, 204, - 288, 182, 385, 202, 251, 341, 168, 252, 103, 202, - 195, 192, 13, 200, 357, 203, 269, 41, 125, 101, - 102, 77, 204, 270, 269, 312, 235, 289, 204, 290, - 240, 342, 164, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 254, 104, - 105, 276, 125, 101, 102, 77, 126, 127, 257, 132, - -206, 202, 258, 294, 343, 344, 398, 9, 315, 348, - 40, 316, 187, 181, 375, 106, 202, 108, 161, 52, - 204, 295, 202, 165, 311, 384, 125, 101, 102, 77, - 126, 127, 376, 128, 178, 204, 412, 318, 319, 320, - 9, 204, 346, 349, 53, 55, 322, 200, 350, 66, - 103, 364, 323, 202, 351, 352, 406, 187, 67, 324, - 125, 101, 102, 77, 126, 127, 69, 128, 129, 353, - 74, 70, 204, -232, 354, 381, 382, 383, 108, 77, - 79, 334, 130, 325, 103, 82, 331, 379, 345, 332, - 171, 104, 105, 81, 125, 101, 102, 77, 190, 127, - 326, 128, 129, 380, 131, 132, 200, 86, 400, 93, - 366, 200, 133, 89, 95, 327, 130, 106, 103, 328, - 100, 407, 87, 396, 401, 104, 105, 171, 414, 115, - 117, 200, 329, 127, 425, 128, 129, 252, 131, 132, - 92, 213, 120, 92, -207, 122, 133, 123, 154, 157, - 130, 106, 103, 160, 423, 63, 426, 172, 101, 104, - 105, 179, 185, 224, 225, 226, 227, 207, 228, 128, - 191, 186, 131, 132, 259, 260, 261, 262, 263, 264, - 133, 193, 397, 197, 130, 106, 103, 229, 200, 232, - 236, 241, 242, 104, 105, 1, 243, 208, 245, 246, - 250, 249, 253, 2, 191, 271, 131, 132, 9, 274, - 3, 287, 293, 314, 133, 4, 321, 335, 130, 106, - 338, 339, 291, 5, 6, 356, 361, 104, 105, 202, - 368, 365, 228, 7, 8, 373, 369, 388, 208, 9, - 131, 132, 209, 374, 10, 386, 387, 389, 133, 390, - 391, 392, 394, 106, 399, 404, 395, 402, 403, 411, - 184, 413, 415, 210, 416, 429, 422, 372, 88, 371, - 11, 211, 212, 57, 72, 378, 84, 313, 213, 214, - 96, 208, 255, 209, 175, 12, 317, 64, 215, 216, - 217, 218, 219, 285, 409, 220, 221, 363, 222, 223, - 224, 225, 226, 227, 272, 228, 267, 428, 408, 205, - 0, 419, 0, 212, 0, 208, 0, 0, 0, 213, - 214, 0, 0, 0, 0, 0, 209, 0, 0, 215, - 216, 217, 218, 219, 0, 0, 220, 221, 0, 222, - 223, 224, 225, 226, 227, 13, 228, 272, 0, 208, - 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, - -233, 0, 213, 214, 0, 0, 348, 0, 0, 0, - 0, 0, 215, 216, 217, 218, 219, 0, 0, 220, - 221, 0, 222, 223, 224, 225, 226, 227, 0, 228, - 212, 0, 0, 0, 0, 0, 213, -233, 0, 0, - 349, 0, 0, 0, 0, 350, -233, -233, -233, 218, - 219, 351, 352, 220, 221, 417, 222, 223, 224, 225, - 226, 227, 0, 228, 212, 0, 353, 0, 0, 0, - 213, 354, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -233, -233, 0, 0, -233, -233, 0, - 222, 223, 224, 225, 226, 227, 0, 228, 0, 0, - 0, 0, 0, 0, 418 + 51, 165, 34, 109, 179, 274, 421, 9, 78, 202, + 45, 77, 257, 202, 121, 33, 79, 174, 337, 214, + 349, 292, 58, 203, 428, 58, 203, 177, 101, 102, + 77, 232, 238, 37, 394, 189, 184, 9, 185, 73, + 197, 76, 205, 182, 228, 205, 229, 48, 85, 46, + 293, 33, 32, 59, 350, 50, 59, 203, 239, 351, + 193, 38, 195, 167, 170, 352, 353, 338, 35, 418, + 411, 119, 120, 203, 285, 276, 205, 47, 406, 371, + 354, 49, 269, 159, 160, 355, 63, 60, 334, 175, + 60, 36, 205, 214, 267, 126, 101, 102, 77, 231, + 168, 270, 39, 90, 40, 368, 90, 245, 271, 287, + 169, 289, 183, 13, 92, 348, 203, 92, 419, 103, + 229, 196, 193, 201, 358, 41, 55, 52, 204, 126, + 101, 102, 77, 127, 128, 205, 313, 347, 290, 42, + 291, 66, 201, 165, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 258, + 104, 105, 255, 126, 101, 102, 77, 127, 128, 277, + 129, 133, 68, 259, 295, 344, 345, 399, 97, 260, + 261, 262, 263, 264, 265, 67, 106, 103, 376, 109, + 214, 53, 296, 69, 188, 312, 98, 126, 101, 102, + 77, 127, 128, 179, 129, 130, 377, 413, 319, 320, + 321, 9, 225, 226, 227, 228, 70, 229, 341, 131, + 188, 103, 365, 236, 203, 203, 342, 241, 104, 105, + 386, 126, 101, 102, 77, 191, 128, 203, 129, 130, + 77, 132, 133, 205, 205, 270, 382, 383, 384, 134, + 109, 335, 343, 131, 106, 103, 205, 252, 203, 346, + 253, 385, 104, 105, 162, 203, 74, 79, 407, 166, + 128, 316, 129, 130, 317, 132, 133, 205, 81, 332, + 86, 367, 333, 134, 205, 82, 87, 131, 106, 103, + 380, 89, 408, 172, 397, 381, 104, 105, 201, 401, + 402, 93, 201, 172, 208, 415, 129, 192, 201, 132, + 133, 426, 95, 100, 253, 116, 121, 134, 118, 123, + 155, 131, 106, 103, 124, 424, 158, 427, 349, 161, + 104, 105, 1, 63, 209, 171, 172, 173, 101, 180, + 2, 192, 186, 132, 133, 187, 194, 3, 201, 198, + 230, 134, 4, 398, 233, 131, 106, 242, 237, 246, + 5, 6, 350, 243, 104, 105, 244, 351, 247, 250, + 7, 8, 251, 352, 353, 254, 9, 132, 133, 210, + 9, 10, 272, 288, 275, 134, 209, 294, 354, 315, + 106, 322, -234, 355, 336, 339, 292, 340, 362, 357, + 211, 203, 366, 369, 229, 374, 370, 11, 212, 213, + 349, 375, 389, 390, 387, 214, 215, 388, 391, 392, + 209, 393, 12, 395, 396, 216, 217, 218, 219, 220, + 400, 210, 221, 222, 403, 223, 224, 225, 226, 227, + 228, 404, 229, 412, 350, 364, 414, 405, 416, 351, + 417, 423, 273, 88, 57, 352, 353, 185, 209, 430, + 72, 213, 372, -208, 84, 210, 373, 214, 215, 379, + 354, 96, 314, 209, -234, 355, 176, 216, 217, 218, + 219, 220, 13, 64, 221, 222, 273, 223, 224, 225, + 226, 227, 228, 429, 229, 213, 410, 256, 318, 409, + 286, 214, 215, -235, 206, 268, 420, 0, 0, 0, + 0, 216, 217, 218, 219, 220, 0, 0, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 0, 229, 0, + 0, 0, 0, 213, 0, 0, 0, 0, 0, 214, + -235, 0, 0, 0, 0, -209, 0, 0, 213, -235, + -235, -235, 219, 220, 214, 0, 221, 222, 0, 223, + 224, 225, 226, 227, 228, 0, 229, -235, -235, 0, + 0, -235, -235, 0, 223, 224, 225, 226, 227, 228, + 323, 229, 0, 0, 0, 0, 324, 0, 0, 0, + 0, 0, 0, 325, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 326, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 327, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 328, + 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 330 }; static const yytype_int16 yycheck[] = { - 13, 95, 68, 2, 193, 122, 44, 3, 42, 3, - 3, 10, 12, 76, 85, 253, 51, 6, 106, 106, - 356, 3, 3, 9, 155, 128, 120, 4, 5, 6, - 73, 9, 73, 48, 128, 26, 92, 125, 125, 133, - 39, 249, 41, 13, 158, 3, 3, 161, 19, 48, - 153, 66, 155, 81, 40, 157, 392, 159, 101, 129, - 101, 131, 40, 97, 98, 121, 255, 198, 276, 60, - 158, 158, 71, 72, 65, 128, 314, 27, 106, 107, - 71, 72, 53, 99, 83, 84, 157, 3, 74, 157, - 106, 61, 70, 187, 64, 86, 74, 125, 161, 90, - 91, 85, 155, 117, 293, 171, 95, 83, 202, 125, - 204, 124, 99, 106, 158, 83, 105, 161, 95, 106, - 133, 191, 157, 161, 118, 118, 102, 89, 3, 4, - 5, 6, 125, 109, 102, 229, 161, 207, 125, 209, - 165, 109, 236, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 158, 136, - 137, 157, 3, 4, 5, 6, 41, 42, 150, 150, - 161, 106, 185, 95, 268, 269, 365, 51, 158, 26, - 85, 161, 102, 57, 95, 162, 106, 253, 91, 0, - 125, 113, 106, 96, 228, 109, 3, 4, 5, 6, - 41, 42, 113, 78, 321, 125, 395, 241, 242, 243, - 51, 125, 156, 60, 160, 103, 25, 161, 65, 3, - 95, 291, 31, 106, 71, 72, 109, 102, 159, 38, - 3, 4, 5, 6, 41, 42, 85, 78, 113, 86, - 108, 120, 125, 90, 91, 339, 340, 341, 314, 6, - 12, 250, 127, 62, 95, 120, 158, 158, 271, 161, - 161, 136, 137, 115, 3, 4, 5, 6, 41, 42, - 79, 78, 113, 158, 149, 150, 161, 158, 158, 105, - 293, 161, 157, 88, 119, 94, 127, 162, 95, 98, - 3, 385, 158, 363, 158, 136, 137, 161, 158, 4, - 113, 161, 111, 42, 158, 78, 113, 161, 149, 150, - 61, 128, 76, 64, 161, 84, 157, 157, 3, 41, - 127, 162, 95, 157, 418, 70, 420, 41, 4, 136, - 137, 3, 157, 150, 151, 152, 153, 17, 155, 78, - 113, 157, 149, 150, 130, 131, 132, 133, 134, 135, - 157, 155, 365, 85, 127, 162, 95, 138, 161, 3, - 161, 48, 48, 136, 137, 7, 48, 47, 116, 3, - 89, 118, 157, 15, 113, 157, 149, 150, 51, 158, - 22, 3, 157, 157, 157, 27, 84, 3, 127, 162, - 158, 85, 92, 35, 36, 161, 63, 136, 137, 106, - 95, 157, 155, 45, 46, 157, 156, 90, 47, 51, - 149, 150, 92, 157, 56, 158, 158, 71, 157, 71, - 71, 90, 3, 162, 158, 95, 119, 6, 6, 157, - 159, 158, 158, 113, 158, 158, 157, 321, 53, 316, - 82, 121, 122, 18, 38, 332, 47, 230, 128, 129, - 64, 47, 183, 92, 119, 97, 236, 31, 138, 139, - 140, 141, 142, 200, 388, 145, 146, 106, 148, 149, - 150, 151, 152, 153, 113, 155, 188, 422, 387, 137, - -1, 411, -1, 122, -1, 47, -1, -1, -1, 128, - 129, -1, -1, -1, -1, -1, 92, -1, -1, 138, - 139, 140, 141, 142, -1, -1, 145, 146, -1, 148, - 149, 150, 151, 152, 153, 157, 155, 113, -1, 47, - -1, -1, -1, -1, -1, -1, 122, -1, -1, -1, - 92, -1, 128, 129, -1, -1, 26, -1, -1, -1, - -1, -1, 138, 139, 140, 141, 142, -1, -1, 145, - 146, -1, 148, 149, 150, 151, 152, 153, -1, 155, - 122, -1, -1, -1, -1, -1, 128, 129, -1, -1, - 60, -1, -1, -1, -1, 65, 138, 139, 140, 141, - 142, 71, 72, 145, 146, 75, 148, 149, 150, 151, - 152, 153, -1, 155, 122, -1, 86, -1, -1, -1, - 128, 91, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 141, 142, -1, -1, 145, 146, -1, - 148, 149, 150, 151, 152, 153, -1, 155, -1, -1, - -1, -1, -1, -1, 124 + 13, 95, 2, 68, 123, 194, 44, 51, 42, 3, + 10, 6, 3, 3, 76, 3, 12, 85, 254, 128, + 26, 92, 9, 106, 3, 9, 106, 121, 4, 5, + 6, 156, 81, 73, 357, 129, 157, 51, 159, 39, + 134, 41, 125, 57, 153, 125, 155, 19, 48, 73, + 121, 3, 27, 40, 60, 13, 40, 106, 107, 65, + 130, 101, 132, 97, 98, 71, 72, 256, 3, 75, + 393, 71, 72, 106, 199, 158, 125, 101, 158, 315, + 86, 53, 83, 83, 84, 91, 70, 74, 250, 157, + 74, 3, 125, 128, 188, 3, 4, 5, 6, 161, + 95, 102, 85, 61, 85, 294, 64, 172, 109, 203, + 105, 205, 125, 157, 61, 277, 106, 64, 124, 95, + 155, 134, 192, 161, 118, 89, 103, 0, 118, 3, + 4, 5, 6, 41, 42, 125, 230, 156, 208, 117, + 210, 3, 161, 237, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 150, + 136, 137, 158, 3, 4, 5, 6, 41, 42, 157, + 78, 150, 157, 186, 95, 269, 270, 366, 48, 130, + 131, 132, 133, 134, 135, 159, 162, 95, 95, 254, + 128, 160, 113, 85, 102, 229, 66, 3, 4, 5, + 6, 41, 42, 322, 78, 113, 113, 396, 242, 243, + 244, 51, 150, 151, 152, 153, 120, 155, 99, 127, + 102, 95, 292, 162, 106, 106, 83, 166, 136, 137, + 99, 3, 4, 5, 6, 41, 42, 106, 78, 113, + 6, 149, 150, 125, 125, 102, 340, 341, 342, 157, + 315, 251, 109, 127, 162, 95, 125, 158, 106, 272, + 161, 109, 136, 137, 91, 106, 108, 12, 109, 96, + 42, 158, 78, 113, 161, 149, 150, 125, 115, 158, + 158, 294, 161, 157, 125, 120, 158, 127, 162, 95, + 158, 88, 386, 161, 364, 158, 136, 137, 161, 158, + 158, 105, 161, 161, 17, 158, 78, 113, 161, 149, + 150, 158, 119, 3, 161, 4, 76, 157, 113, 84, + 3, 127, 162, 95, 157, 419, 41, 421, 26, 157, + 136, 137, 7, 70, 47, 158, 161, 41, 4, 3, + 15, 113, 157, 149, 150, 157, 155, 22, 161, 85, + 138, 157, 27, 366, 3, 127, 162, 48, 161, 116, + 35, 36, 60, 48, 136, 137, 48, 65, 3, 118, + 45, 46, 89, 71, 72, 157, 51, 149, 150, 92, + 51, 56, 157, 3, 158, 157, 47, 157, 86, 157, + 162, 84, 90, 91, 3, 158, 92, 85, 63, 161, + 113, 106, 157, 95, 155, 157, 156, 82, 121, 122, + 26, 157, 90, 71, 158, 128, 129, 158, 71, 71, + 47, 90, 97, 3, 119, 138, 139, 140, 141, 142, + 158, 92, 145, 146, 6, 148, 149, 150, 151, 152, + 153, 6, 155, 157, 60, 106, 158, 95, 158, 65, + 158, 157, 113, 53, 18, 71, 72, 159, 47, 158, + 38, 122, 317, 161, 47, 92, 322, 128, 129, 333, + 86, 64, 231, 47, 90, 91, 120, 138, 139, 140, + 141, 142, 157, 31, 145, 146, 113, 148, 149, 150, + 151, 152, 153, 423, 155, 122, 389, 184, 237, 388, + 201, 128, 129, 92, 138, 189, 412, -1, -1, -1, + -1, 138, 139, 140, 141, 142, -1, -1, 145, 146, + -1, 148, 149, 150, 151, 152, 153, -1, 155, -1, + -1, -1, -1, 122, -1, -1, -1, -1, -1, 128, + 129, -1, -1, -1, -1, 161, -1, -1, 122, 138, + 139, 140, 141, 142, 128, -1, 145, 146, -1, 148, + 149, 150, 151, 152, 153, -1, 155, 141, 142, -1, + -1, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 25, 155, -1, -1, -1, -1, 31, -1, -1, -1, + -1, -1, -1, 38, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 79, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 94, + -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 111 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1095,46 +1104,47 @@ static const yytype_uint16 yystos[] = 0, 7, 15, 22, 27, 35, 36, 45, 46, 51, 56, 82, 97, 157, 164, 165, 166, 167, 171, 173, 174, 177, 178, 184, 186, 187, 188, 190, 193, 194, - 196, 200, 27, 3, 248, 3, 3, 73, 101, 85, - 85, 89, 117, 212, 247, 248, 73, 101, 19, 53, - 194, 196, 0, 160, 256, 103, 168, 168, 9, 40, + 196, 200, 27, 3, 249, 3, 3, 73, 101, 85, + 85, 89, 117, 212, 248, 249, 73, 101, 19, 53, + 194, 196, 0, 160, 257, 103, 168, 168, 9, 40, 74, 197, 198, 70, 197, 208, 3, 159, 157, 85, - 120, 179, 179, 248, 108, 175, 248, 6, 239, 12, - 201, 115, 120, 185, 185, 248, 158, 158, 166, 88, + 120, 179, 179, 249, 108, 175, 249, 6, 240, 12, + 201, 115, 120, 185, 185, 249, 158, 158, 166, 88, 194, 195, 200, 105, 199, 119, 195, 48, 66, 213, - 3, 4, 5, 95, 136, 137, 162, 215, 235, 236, - 237, 238, 239, 240, 241, 4, 172, 113, 248, 248, - 76, 205, 84, 157, 189, 3, 41, 42, 78, 113, - 127, 149, 150, 157, 202, 214, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 226, 227, 228, 229, 231, - 232, 233, 234, 235, 3, 191, 192, 41, 248, 248, - 157, 208, 209, 210, 217, 208, 239, 95, 105, 239, - 158, 161, 41, 85, 157, 189, 217, 176, 236, 3, - 257, 57, 196, 157, 159, 157, 157, 102, 217, 225, - 41, 113, 218, 155, 218, 196, 217, 85, 203, 204, - 161, 3, 106, 118, 125, 251, 252, 17, 47, 92, - 113, 121, 122, 128, 129, 138, 139, 140, 141, 142, - 145, 146, 148, 149, 150, 151, 152, 153, 155, 138, - 161, 205, 3, 169, 170, 213, 161, 81, 107, 211, - 213, 48, 48, 48, 235, 116, 3, 180, 181, 118, - 89, 158, 161, 157, 158, 201, 3, 150, 196, 130, - 131, 132, 133, 134, 135, 230, 217, 225, 83, 102, - 109, 157, 113, 214, 158, 158, 157, 242, 243, 244, - 245, 246, 248, 253, 205, 216, 217, 3, 217, 218, - 218, 92, 121, 157, 95, 113, 218, 218, 218, 218, - 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, - 218, 239, 217, 192, 157, 158, 161, 210, 239, 239, - 239, 84, 25, 31, 38, 62, 79, 94, 98, 111, - 182, 158, 161, 193, 248, 3, 215, 214, 158, 85, - 99, 83, 109, 217, 217, 196, 156, 193, 26, 60, - 65, 71, 72, 86, 91, 254, 161, 118, 249, 250, - 251, 63, 206, 106, 218, 157, 196, 214, 95, 156, - 215, 170, 176, 157, 157, 95, 113, 183, 181, 158, - 158, 217, 217, 217, 109, 99, 158, 158, 90, 71, - 71, 71, 90, 243, 3, 119, 218, 196, 214, 158, - 158, 158, 6, 6, 95, 158, 109, 217, 250, 244, - 243, 157, 214, 158, 158, 158, 158, 75, 124, 257, - 44, 207, 157, 217, 255, 158, 217, 3, 234, 158 + 3, 4, 5, 95, 136, 137, 162, 215, 216, 236, + 237, 238, 239, 240, 241, 242, 4, 172, 113, 249, + 249, 76, 205, 84, 157, 189, 3, 41, 42, 78, + 113, 127, 149, 150, 157, 202, 214, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 227, 228, 229, 230, + 232, 233, 234, 235, 236, 3, 191, 192, 41, 249, + 249, 157, 208, 209, 210, 218, 208, 240, 95, 105, + 240, 158, 161, 41, 85, 157, 189, 218, 176, 237, + 3, 258, 57, 196, 157, 159, 157, 157, 102, 218, + 226, 41, 113, 219, 155, 219, 196, 218, 85, 203, + 204, 161, 3, 106, 118, 125, 252, 253, 17, 47, + 92, 113, 121, 122, 128, 129, 138, 139, 140, 141, + 142, 145, 146, 148, 149, 150, 151, 152, 153, 155, + 138, 161, 205, 3, 169, 170, 213, 161, 81, 107, + 211, 213, 48, 48, 48, 236, 116, 3, 180, 181, + 118, 89, 158, 161, 157, 158, 201, 3, 150, 196, + 130, 131, 132, 133, 134, 135, 231, 218, 226, 83, + 102, 109, 157, 113, 214, 158, 158, 157, 243, 244, + 245, 246, 247, 249, 254, 205, 217, 218, 3, 218, + 219, 219, 92, 121, 157, 95, 113, 219, 219, 219, + 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, + 219, 219, 240, 218, 192, 157, 158, 161, 210, 240, + 240, 240, 84, 25, 31, 38, 62, 79, 94, 98, + 111, 182, 158, 161, 193, 249, 3, 216, 214, 158, + 85, 99, 83, 109, 218, 218, 196, 156, 193, 26, + 60, 65, 71, 72, 86, 91, 255, 161, 118, 250, + 251, 252, 63, 206, 106, 219, 157, 196, 214, 95, + 156, 216, 170, 176, 157, 157, 95, 113, 183, 181, + 158, 158, 218, 218, 218, 109, 99, 158, 158, 90, + 71, 71, 71, 90, 244, 3, 119, 219, 196, 214, + 158, 158, 158, 6, 6, 95, 158, 109, 218, 251, + 245, 244, 157, 214, 158, 158, 158, 158, 75, 124, + 258, 44, 207, 157, 218, 256, 158, 218, 3, 235, + 158 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ @@ -1151,19 +1161,19 @@ static const yytype_uint16 yyr1[] = 199, 200, 201, 201, 202, 203, 203, 204, 205, 205, 206, 206, 207, 207, 208, 208, 209, 209, 210, 211, 211, 211, 212, 212, 213, 213, 213, 213, 213, 213, - 213, 213, 214, 214, 215, 215, 216, 217, 217, 217, - 217, 217, 218, 218, 218, 218, 218, 218, 218, 218, - 218, 218, 219, 219, 220, 220, 220, 220, 220, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 222, 222, 223, 223, 223, 223, 224, 224, 224, 224, - 225, 225, 226, 226, 227, 227, 227, 227, 227, 227, - 227, 228, 228, 229, 230, 230, 230, 230, 230, 230, - 231, 232, 233, 234, 234, 234, 234, 235, 235, 235, - 235, 235, 236, 237, 237, 238, 238, 239, 240, 241, - 242, 242, 243, 243, 244, 244, 245, 245, 246, 247, - 248, 248, 249, 249, 250, 250, 251, 251, 252, 252, - 253, 253, 253, 254, 254, 254, 254, 254, 254, 254, - 254, 254, 254, 255, 256, 256, 257, 257 + 213, 213, 214, 214, 215, 215, 216, 216, 217, 218, + 218, 218, 218, 218, 219, 219, 219, 219, 219, 219, + 219, 219, 219, 219, 220, 220, 221, 221, 221, 221, + 221, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 223, 223, 224, 224, 224, 224, 225, 225, + 225, 225, 226, 226, 227, 227, 228, 228, 228, 228, + 228, 228, 228, 229, 229, 230, 231, 231, 231, 231, + 231, 231, 232, 233, 234, 235, 235, 235, 235, 236, + 236, 236, 236, 236, 237, 238, 238, 239, 239, 240, + 241, 242, 243, 243, 244, 244, 245, 245, 246, 246, + 247, 248, 249, 249, 250, 250, 251, 251, 252, 252, + 253, 253, 254, 254, 254, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 256, 257, 257, 258, 258 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1180,19 +1190,19 @@ static const yytype_uint8 yyr2[] = 0, 7, 1, 0, 1, 1, 0, 2, 2, 0, 4, 0, 2, 0, 3, 0, 1, 3, 2, 1, 1, 0, 2, 0, 2, 4, 2, 2, 2, 4, - 4, 0, 1, 3, 1, 3, 2, 1, 1, 1, - 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 1, 2, 2, 2, 3, 4, 1, - 3, 3, 3, 3, 3, 3, 3, 4, 3, 3, - 3, 3, 5, 6, 5, 6, 4, 6, 3, 5, - 4, 5, 4, 5, 3, 3, 3, 3, 3, 3, - 3, 3, 5, 6, 1, 1, 1, 1, 1, 1, - 4, 4, 5, 1, 3, 1, 3, 1, 1, 1, + 4, 0, 1, 3, 1, 0, 1, 3, 2, 1, + 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 1, 1, 2, 2, 2, 3, + 4, 1, 3, 3, 3, 3, 3, 3, 3, 4, + 3, 3, 3, 3, 5, 6, 5, 6, 4, 6, + 3, 5, 4, 5, 4, 5, 3, 3, 3, 3, + 3, 3, 3, 3, 5, 6, 1, 1, 1, 1, + 1, 1, 4, 4, 5, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 1, 1, 4, 1, 3, 2, 1, - 1, 3, 1, 5, 1, 0, 2, 1, 1, 0, - 4, 6, 8, 1, 2, 1, 2, 1, 2, 1, - 1, 1, 0, 1, 1, 0, 1, 3 + 1, 1, 1, 3, 1, 1, 1, 4, 1, 3, + 2, 1, 1, 3, 1, 5, 1, 0, 2, 1, + 1, 0, 4, 6, 8, 1, 2, 1, 2, 1, + 2, 1, 1, 1, 0, 1, 1, 0, 1, 3 }; @@ -1692,25 +1702,25 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio case 3: /* IDENTIFIER */ #line 143 "bison_parser.y" /* yacc.c:1258 */ { free( (((*yyvaluep).sval)) ); } -#line 1696 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1706 "bison_parser.cpp" /* yacc.c:1258 */ break; case 4: /* STRING */ #line 143 "bison_parser.y" /* yacc.c:1258 */ { free( (((*yyvaluep).sval)) ); } -#line 1702 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1712 "bison_parser.cpp" /* yacc.c:1258 */ break; case 5: /* FLOATVAL */ #line 141 "bison_parser.y" /* yacc.c:1258 */ { } -#line 1708 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1718 "bison_parser.cpp" /* yacc.c:1258 */ break; case 6: /* INTVAL */ #line 141 "bison_parser.y" /* yacc.c:1258 */ { } -#line 1714 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1724 "bison_parser.cpp" /* yacc.c:1258 */ break; case 165: /* statement_list */ @@ -1723,19 +1733,19 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).stmt_vec)); } -#line 1727 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1737 "bison_parser.cpp" /* yacc.c:1258 */ break; case 166: /* statement */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).statement)); } -#line 1733 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1743 "bison_parser.cpp" /* yacc.c:1258 */ break; case 167: /* preparable_statement */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).statement)); } -#line 1739 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1749 "bison_parser.cpp" /* yacc.c:1258 */ break; case 168: /* opt_hints */ @@ -1748,7 +1758,7 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).expr_vec)); } -#line 1752 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1762 "bison_parser.cpp" /* yacc.c:1258 */ break; case 169: /* hint_list */ @@ -1761,67 +1771,67 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).expr_vec)); } -#line 1765 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1775 "bison_parser.cpp" /* yacc.c:1258 */ break; case 170: /* hint */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 1771 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1781 "bison_parser.cpp" /* yacc.c:1258 */ break; case 171: /* prepare_statement */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).prep_stmt)); } -#line 1777 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1787 "bison_parser.cpp" /* yacc.c:1258 */ break; case 172: /* prepare_target_query */ #line 143 "bison_parser.y" /* yacc.c:1258 */ { free( (((*yyvaluep).sval)) ); } -#line 1783 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1793 "bison_parser.cpp" /* yacc.c:1258 */ break; case 173: /* execute_statement */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).exec_stmt)); } -#line 1789 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1799 "bison_parser.cpp" /* yacc.c:1258 */ break; case 174: /* import_statement */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).import_stmt)); } -#line 1795 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1805 "bison_parser.cpp" /* yacc.c:1258 */ break; case 175: /* import_file_type */ #line 141 "bison_parser.y" /* yacc.c:1258 */ { } -#line 1801 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1811 "bison_parser.cpp" /* yacc.c:1258 */ break; case 176: /* file_path */ #line 143 "bison_parser.y" /* yacc.c:1258 */ { free( (((*yyvaluep).sval)) ); } -#line 1807 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1817 "bison_parser.cpp" /* yacc.c:1258 */ break; case 177: /* show_statement */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).show_stmt)); } -#line 1813 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1823 "bison_parser.cpp" /* yacc.c:1258 */ break; case 178: /* create_statement */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).create_stmt)); } -#line 1819 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1829 "bison_parser.cpp" /* yacc.c:1258 */ break; case 179: /* opt_not_exists */ #line 141 "bison_parser.y" /* yacc.c:1258 */ { } -#line 1825 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1835 "bison_parser.cpp" /* yacc.c:1258 */ break; case 180: /* column_def_commalist */ @@ -1834,55 +1844,55 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).column_vec)); } -#line 1838 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1848 "bison_parser.cpp" /* yacc.c:1258 */ break; case 181: /* column_def */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).column_t)); } -#line 1844 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1854 "bison_parser.cpp" /* yacc.c:1258 */ break; case 182: /* column_type */ #line 141 "bison_parser.y" /* yacc.c:1258 */ { } -#line 1850 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1860 "bison_parser.cpp" /* yacc.c:1258 */ break; case 183: /* opt_column_nullable */ #line 141 "bison_parser.y" /* yacc.c:1258 */ { } -#line 1856 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1866 "bison_parser.cpp" /* yacc.c:1258 */ break; case 184: /* drop_statement */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).drop_stmt)); } -#line 1862 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1872 "bison_parser.cpp" /* yacc.c:1258 */ break; case 185: /* opt_exists */ #line 141 "bison_parser.y" /* yacc.c:1258 */ { } -#line 1868 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1878 "bison_parser.cpp" /* yacc.c:1258 */ break; case 186: /* delete_statement */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).delete_stmt)); } -#line 1874 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1884 "bison_parser.cpp" /* yacc.c:1258 */ break; case 187: /* truncate_statement */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).delete_stmt)); } -#line 1880 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1890 "bison_parser.cpp" /* yacc.c:1258 */ break; case 188: /* insert_statement */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).insert_stmt)); } -#line 1886 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1896 "bison_parser.cpp" /* yacc.c:1258 */ break; case 189: /* opt_column_list */ @@ -1895,13 +1905,13 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).str_vec)); } -#line 1899 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1909 "bison_parser.cpp" /* yacc.c:1258 */ break; case 190: /* update_statement */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).update_stmt)); } -#line 1905 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1915 "bison_parser.cpp" /* yacc.c:1258 */ break; case 191: /* update_clause_commalist */ @@ -1914,49 +1924,49 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).update_vec)); } -#line 1918 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1928 "bison_parser.cpp" /* yacc.c:1258 */ break; case 192: /* update_clause */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).update_t)); } -#line 1924 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1934 "bison_parser.cpp" /* yacc.c:1258 */ break; case 193: /* select_statement */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).select_stmt)); } -#line 1930 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1940 "bison_parser.cpp" /* yacc.c:1258 */ break; case 194: /* select_with_paren */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).select_stmt)); } -#line 1936 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1946 "bison_parser.cpp" /* yacc.c:1258 */ break; case 195: /* select_paren_or_clause */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).select_stmt)); } -#line 1942 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1952 "bison_parser.cpp" /* yacc.c:1258 */ break; case 196: /* select_no_paren */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).select_stmt)); } -#line 1948 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1958 "bison_parser.cpp" /* yacc.c:1258 */ break; case 200: /* select_clause */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).select_stmt)); } -#line 1954 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1964 "bison_parser.cpp" /* yacc.c:1258 */ break; case 201: /* opt_distinct */ #line 141 "bison_parser.y" /* yacc.c:1258 */ { } -#line 1960 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1970 "bison_parser.cpp" /* yacc.c:1258 */ break; case 202: /* select_list */ @@ -1969,37 +1979,37 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).expr_vec)); } -#line 1973 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1983 "bison_parser.cpp" /* yacc.c:1258 */ break; case 203: /* opt_from_clause */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).table)); } -#line 1979 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1989 "bison_parser.cpp" /* yacc.c:1258 */ break; case 204: /* from_clause */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).table)); } -#line 1985 "bison_parser.cpp" /* yacc.c:1258 */ +#line 1995 "bison_parser.cpp" /* yacc.c:1258 */ break; case 205: /* opt_where */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 1991 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2001 "bison_parser.cpp" /* yacc.c:1258 */ break; case 206: /* opt_group */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).group_t)); } -#line 1997 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2007 "bison_parser.cpp" /* yacc.c:1258 */ break; case 207: /* opt_having */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2003 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2013 "bison_parser.cpp" /* yacc.c:1258 */ break; case 208: /* opt_order */ @@ -2012,7 +2022,7 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).order_vec)); } -#line 2016 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2026 "bison_parser.cpp" /* yacc.c:1258 */ break; case 209: /* order_list */ @@ -2025,31 +2035,31 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).order_vec)); } -#line 2029 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2039 "bison_parser.cpp" /* yacc.c:1258 */ break; case 210: /* order_desc */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).order)); } -#line 2035 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2045 "bison_parser.cpp" /* yacc.c:1258 */ break; case 211: /* opt_order_type */ #line 141 "bison_parser.y" /* yacc.c:1258 */ { } -#line 2041 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2051 "bison_parser.cpp" /* yacc.c:1258 */ break; case 212: /* opt_top */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).limit)); } -#line 2047 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2057 "bison_parser.cpp" /* yacc.c:1258 */ break; case 213: /* opt_limit */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).limit)); } -#line 2053 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2063 "bison_parser.cpp" /* yacc.c:1258 */ break; case 214: /* expr_list */ @@ -2062,10 +2072,10 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).expr_vec)); } -#line 2066 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2076 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 215: /* literal_list */ + case 215: /* opt_literal_list */ #line 144 "bison_parser.y" /* yacc.c:1258 */ { if ((((*yyvaluep).expr_vec)) != nullptr) { @@ -2075,184 +2085,197 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).expr_vec)); } -#line 2079 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2089 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 216: /* expr_alias */ + case 216: /* literal_list */ +#line 144 "bison_parser.y" /* yacc.c:1258 */ + { + if ((((*yyvaluep).expr_vec)) != nullptr) { + for (auto ptr : *(((*yyvaluep).expr_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).expr_vec)); +} +#line 2102 "bison_parser.cpp" /* yacc.c:1258 */ + break; + + case 217: /* expr_alias */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2085 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2108 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 217: /* expr */ + case 218: /* expr */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2091 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2114 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 218: /* operand */ + case 219: /* operand */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2097 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2120 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 219: /* scalar_expr */ + case 220: /* scalar_expr */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2103 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2126 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 220: /* unary_expr */ + case 221: /* unary_expr */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2109 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2132 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 221: /* binary_expr */ + case 222: /* binary_expr */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2115 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2138 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 222: /* logic_expr */ + case 223: /* logic_expr */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2121 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2144 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 223: /* in_expr */ + case 224: /* in_expr */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2127 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2150 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 224: /* case_expr */ + case 225: /* case_expr */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2133 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2156 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 225: /* case_list */ + case 226: /* case_list */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2139 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2162 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 226: /* exists_expr */ + case 227: /* exists_expr */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2145 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2168 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 227: /* comp_expr */ + case 228: /* comp_expr */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2151 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2174 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 228: /* function_expr */ + case 229: /* function_expr */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2157 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2180 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 229: /* extract_expr */ + case 230: /* extract_expr */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2163 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2186 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 230: /* datetime_field */ + case 231: /* datetime_field */ #line 141 "bison_parser.y" /* yacc.c:1258 */ { } -#line 2169 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2192 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 231: /* array_expr */ + case 232: /* array_expr */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2175 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2198 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 232: /* array_index */ + case 233: /* array_index */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2181 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2204 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 233: /* between_expr */ + case 234: /* between_expr */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2187 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2210 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 234: /* column_name */ + case 235: /* column_name */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2193 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2216 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 235: /* literal */ + case 236: /* literal */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2199 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2222 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 236: /* string_literal */ + case 237: /* string_literal */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2205 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2228 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 237: /* bool_literal */ + case 238: /* bool_literal */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2211 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2234 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 238: /* num_literal */ + case 239: /* num_literal */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2217 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2240 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 239: /* int_literal */ + case 240: /* int_literal */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2223 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2246 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 240: /* null_literal */ + case 241: /* null_literal */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2229 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2252 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 241: /* param_expr */ + case 242: /* param_expr */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2235 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2258 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 242: /* table_ref */ + case 243: /* table_ref */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).table)); } -#line 2241 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2264 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 243: /* table_ref_atomic */ + case 244: /* table_ref_atomic */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).table)); } -#line 2247 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2270 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 244: /* nonjoin_table_ref_atomic */ + case 245: /* nonjoin_table_ref_atomic */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).table)); } -#line 2253 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2276 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 245: /* table_ref_commalist */ + case 246: /* table_ref_commalist */ #line 144 "bison_parser.y" /* yacc.c:1258 */ { if ((((*yyvaluep).table_vec)) != nullptr) { @@ -2262,70 +2285,70 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).table_vec)); } -#line 2266 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2289 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 246: /* table_ref_name */ + case 247: /* table_ref_name */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).table)); } -#line 2272 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2295 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 247: /* table_ref_name_no_alias */ + case 248: /* table_ref_name_no_alias */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).table)); } -#line 2278 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2301 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 248: /* table_name */ + case 249: /* table_name */ #line 142 "bison_parser.y" /* yacc.c:1258 */ { free( (((*yyvaluep).table_name).name) ); free( (((*yyvaluep).table_name).schema) ); } -#line 2284 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2307 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 249: /* table_alias */ + case 250: /* table_alias */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).alias_t)); } -#line 2290 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2313 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 250: /* opt_table_alias */ + case 251: /* opt_table_alias */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).alias_t)); } -#line 2296 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2319 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 251: /* alias */ + case 252: /* alias */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).alias_t)); } -#line 2302 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2325 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 252: /* opt_alias */ + case 253: /* opt_alias */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).alias_t)); } -#line 2308 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2331 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 253: /* join_clause */ + case 254: /* join_clause */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).table)); } -#line 2314 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2337 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 254: /* opt_join_type */ + case 255: /* opt_join_type */ #line 141 "bison_parser.y" /* yacc.c:1258 */ { } -#line 2320 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2343 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 255: /* join_condition */ + case 256: /* join_condition */ #line 152 "bison_parser.y" /* yacc.c:1258 */ { delete (((*yyvaluep).expr)); } -#line 2326 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2349 "bison_parser.cpp" /* yacc.c:1258 */ break; - case 257: /* ident_commalist */ + case 258: /* ident_commalist */ #line 144 "bison_parser.y" /* yacc.c:1258 */ { if ((((*yyvaluep).str_vec)) != nullptr) { @@ -2335,7 +2358,7 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio } delete (((*yyvaluep).str_vec)); } -#line 2339 "bison_parser.cpp" /* yacc.c:1258 */ +#line 2362 "bison_parser.cpp" /* yacc.c:1258 */ break; @@ -2454,7 +2477,7 @@ YYLTYPE yylloc = yyloc_default; yylloc.string_length = 0; } -#line 2458 "bison_parser.cpp" /* yacc.c:1440 */ +#line 2481 "bison_parser.cpp" /* yacc.c:1440 */ yylsp[0] = yylloc; goto yysetstate; @@ -2660,7 +2683,7 @@ yyreduce: } delete (yyvsp[-1].stmt_vec); } -#line 2664 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2687 "bison_parser.cpp" /* yacc.c:1666 */ break; case 3: @@ -2671,7 +2694,7 @@ yyreduce: (yyval.stmt_vec) = new std::vector(); (yyval.stmt_vec)->push_back((yyvsp[0].statement)); } -#line 2675 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2698 "bison_parser.cpp" /* yacc.c:1666 */ break; case 4: @@ -2682,7 +2705,7 @@ yyreduce: (yyvsp[-2].stmt_vec)->push_back((yyvsp[0].statement)); (yyval.stmt_vec) = (yyvsp[-2].stmt_vec); } -#line 2686 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2709 "bison_parser.cpp" /* yacc.c:1666 */ break; case 5: @@ -2691,7 +2714,7 @@ yyreduce: (yyval.statement) = (yyvsp[-1].prep_stmt); (yyval.statement)->hints = (yyvsp[0].expr_vec); } -#line 2695 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2718 "bison_parser.cpp" /* yacc.c:1666 */ break; case 6: @@ -2700,7 +2723,7 @@ yyreduce: (yyval.statement) = (yyvsp[-1].statement); (yyval.statement)->hints = (yyvsp[0].expr_vec); } -#line 2704 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2727 "bison_parser.cpp" /* yacc.c:1666 */ break; case 7: @@ -2708,85 +2731,85 @@ yyreduce: { (yyval.statement) = (yyvsp[0].show_stmt); } -#line 2712 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2735 "bison_parser.cpp" /* yacc.c:1666 */ break; case 8: #line 305 "bison_parser.y" /* yacc.c:1666 */ { (yyval.statement) = (yyvsp[0].select_stmt); } -#line 2718 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2741 "bison_parser.cpp" /* yacc.c:1666 */ break; case 9: #line 306 "bison_parser.y" /* yacc.c:1666 */ { (yyval.statement) = (yyvsp[0].import_stmt); } -#line 2724 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2747 "bison_parser.cpp" /* yacc.c:1666 */ break; case 10: #line 307 "bison_parser.y" /* yacc.c:1666 */ { (yyval.statement) = (yyvsp[0].create_stmt); } -#line 2730 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2753 "bison_parser.cpp" /* yacc.c:1666 */ break; case 11: #line 308 "bison_parser.y" /* yacc.c:1666 */ { (yyval.statement) = (yyvsp[0].insert_stmt); } -#line 2736 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2759 "bison_parser.cpp" /* yacc.c:1666 */ break; case 12: #line 309 "bison_parser.y" /* yacc.c:1666 */ { (yyval.statement) = (yyvsp[0].delete_stmt); } -#line 2742 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2765 "bison_parser.cpp" /* yacc.c:1666 */ break; case 13: #line 310 "bison_parser.y" /* yacc.c:1666 */ { (yyval.statement) = (yyvsp[0].delete_stmt); } -#line 2748 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2771 "bison_parser.cpp" /* yacc.c:1666 */ break; case 14: #line 311 "bison_parser.y" /* yacc.c:1666 */ { (yyval.statement) = (yyvsp[0].update_stmt); } -#line 2754 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2777 "bison_parser.cpp" /* yacc.c:1666 */ break; case 15: #line 312 "bison_parser.y" /* yacc.c:1666 */ { (yyval.statement) = (yyvsp[0].drop_stmt); } -#line 2760 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2783 "bison_parser.cpp" /* yacc.c:1666 */ break; case 16: #line 313 "bison_parser.y" /* yacc.c:1666 */ { (yyval.statement) = (yyvsp[0].exec_stmt); } -#line 2766 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2789 "bison_parser.cpp" /* yacc.c:1666 */ break; case 17: #line 322 "bison_parser.y" /* yacc.c:1666 */ { (yyval.expr_vec) = (yyvsp[-1].expr_vec); } -#line 2772 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2795 "bison_parser.cpp" /* yacc.c:1666 */ break; case 18: #line 323 "bison_parser.y" /* yacc.c:1666 */ { (yyval.expr_vec) = nullptr; } -#line 2778 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2801 "bison_parser.cpp" /* yacc.c:1666 */ break; case 19: #line 328 "bison_parser.y" /* yacc.c:1666 */ { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } -#line 2784 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2807 "bison_parser.cpp" /* yacc.c:1666 */ break; case 20: #line 329 "bison_parser.y" /* yacc.c:1666 */ { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } -#line 2790 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2813 "bison_parser.cpp" /* yacc.c:1666 */ break; case 21: @@ -2795,7 +2818,7 @@ yyreduce: (yyval.expr) = Expr::make(kExprHint); (yyval.expr)->name = (yyvsp[0].sval); } -#line 2799 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2822 "bison_parser.cpp" /* yacc.c:1666 */ break; case 22: @@ -2805,7 +2828,7 @@ yyreduce: (yyval.expr)->name = (yyvsp[-3].sval); (yyval.expr)->exprList = (yyvsp[-1].expr_vec); } -#line 2809 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2832 "bison_parser.cpp" /* yacc.c:1666 */ break; case 23: @@ -2815,7 +2838,7 @@ yyreduce: (yyval.prep_stmt)->name = (yyvsp[-2].sval); (yyval.prep_stmt)->query = (yyvsp[0].sval); } -#line 2819 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2842 "bison_parser.cpp" /* yacc.c:1666 */ break; case 25: @@ -2824,7 +2847,7 @@ yyreduce: (yyval.exec_stmt) = new ExecuteStatement(); (yyval.exec_stmt)->name = (yyvsp[0].sval); } -#line 2828 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2851 "bison_parser.cpp" /* yacc.c:1666 */ break; case 26: @@ -2834,7 +2857,7 @@ yyreduce: (yyval.exec_stmt)->name = (yyvsp[-3].sval); (yyval.exec_stmt)->parameters = (yyvsp[-1].expr_vec); } -#line 2838 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2861 "bison_parser.cpp" /* yacc.c:1666 */ break; case 27: @@ -2845,19 +2868,19 @@ yyreduce: (yyval.import_stmt)->schema = (yyvsp[0].table_name).schema; (yyval.import_stmt)->tableName = (yyvsp[0].table_name).name; } -#line 2849 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2872 "bison_parser.cpp" /* yacc.c:1666 */ break; case 28: #line 384 "bison_parser.y" /* yacc.c:1666 */ { (yyval.uval) = kImportCSV; } -#line 2855 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2878 "bison_parser.cpp" /* yacc.c:1666 */ break; case 29: #line 388 "bison_parser.y" /* yacc.c:1666 */ { (yyval.sval) = strdup((yyvsp[0].expr)->name); delete (yyvsp[0].expr); } -#line 2861 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2884 "bison_parser.cpp" /* yacc.c:1666 */ break; case 30: @@ -2865,7 +2888,7 @@ yyreduce: { (yyval.show_stmt) = new ShowStatement(kShowTables); } -#line 2869 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2892 "bison_parser.cpp" /* yacc.c:1666 */ break; case 31: @@ -2875,7 +2898,7 @@ yyreduce: (yyval.show_stmt)->schema = (yyvsp[0].table_name).schema; (yyval.show_stmt)->name = (yyvsp[0].table_name).name; } -#line 2879 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2902 "bison_parser.cpp" /* yacc.c:1666 */ break; case 32: @@ -2887,7 +2910,7 @@ yyreduce: (yyval.create_stmt)->tableName = (yyvsp[-4].table_name).name; (yyval.create_stmt)->filePath = (yyvsp[0].sval); } -#line 2891 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2914 "bison_parser.cpp" /* yacc.c:1666 */ break; case 33: @@ -2899,7 +2922,7 @@ yyreduce: (yyval.create_stmt)->tableName = (yyvsp[-3].table_name).name; (yyval.create_stmt)->columns = (yyvsp[-1].column_vec); } -#line 2903 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2926 "bison_parser.cpp" /* yacc.c:1666 */ break; case 34: @@ -2912,31 +2935,31 @@ yyreduce: (yyval.create_stmt)->viewColumns = (yyvsp[-2].str_vec); (yyval.create_stmt)->select = (yyvsp[0].select_stmt); } -#line 2916 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2939 "bison_parser.cpp" /* yacc.c:1666 */ break; case 35: #line 440 "bison_parser.y" /* yacc.c:1666 */ { (yyval.bval) = true; } -#line 2922 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2945 "bison_parser.cpp" /* yacc.c:1666 */ break; case 36: #line 441 "bison_parser.y" /* yacc.c:1666 */ { (yyval.bval) = false; } -#line 2928 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2951 "bison_parser.cpp" /* yacc.c:1666 */ break; case 37: #line 445 "bison_parser.y" /* yacc.c:1666 */ { (yyval.column_vec) = new std::vector(); (yyval.column_vec)->push_back((yyvsp[0].column_t)); } -#line 2934 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2957 "bison_parser.cpp" /* yacc.c:1666 */ break; case 38: #line 446 "bison_parser.y" /* yacc.c:1666 */ { (yyvsp[-2].column_vec)->push_back((yyvsp[0].column_t)); (yyval.column_vec) = (yyvsp[-2].column_vec); } -#line 2940 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2963 "bison_parser.cpp" /* yacc.c:1666 */ break; case 39: @@ -2944,73 +2967,73 @@ yyreduce: { (yyval.column_t) = new ColumnDefinition((yyvsp[-2].sval), (yyvsp[-1].column_type_t), (yyvsp[0].bval)); } -#line 2948 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2971 "bison_parser.cpp" /* yacc.c:1666 */ break; case 40: #line 456 "bison_parser.y" /* yacc.c:1666 */ { (yyval.column_type_t) = ColumnType{DataType::INT}; } -#line 2954 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2977 "bison_parser.cpp" /* yacc.c:1666 */ break; case 41: #line 457 "bison_parser.y" /* yacc.c:1666 */ { (yyval.column_type_t) = ColumnType{DataType::INT}; } -#line 2960 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2983 "bison_parser.cpp" /* yacc.c:1666 */ break; case 42: #line 458 "bison_parser.y" /* yacc.c:1666 */ { (yyval.column_type_t) = ColumnType{DataType::LONG}; } -#line 2966 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2989 "bison_parser.cpp" /* yacc.c:1666 */ break; case 43: #line 459 "bison_parser.y" /* yacc.c:1666 */ { (yyval.column_type_t) = ColumnType{DataType::FLOAT}; } -#line 2972 "bison_parser.cpp" /* yacc.c:1666 */ +#line 2995 "bison_parser.cpp" /* yacc.c:1666 */ break; case 44: #line 460 "bison_parser.y" /* yacc.c:1666 */ { (yyval.column_type_t) = ColumnType{DataType::DOUBLE}; } -#line 2978 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3001 "bison_parser.cpp" /* yacc.c:1666 */ break; case 45: #line 461 "bison_parser.y" /* yacc.c:1666 */ { (yyval.column_type_t) = ColumnType{DataType::VARCHAR, (yyvsp[-1].ival)}; } -#line 2984 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3007 "bison_parser.cpp" /* yacc.c:1666 */ break; case 46: #line 462 "bison_parser.y" /* yacc.c:1666 */ { (yyval.column_type_t) = ColumnType{DataType::CHAR, (yyvsp[-1].ival)}; } -#line 2990 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3013 "bison_parser.cpp" /* yacc.c:1666 */ break; case 47: #line 463 "bison_parser.y" /* yacc.c:1666 */ { (yyval.column_type_t) = ColumnType{DataType::TEXT}; } -#line 2996 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3019 "bison_parser.cpp" /* yacc.c:1666 */ break; case 48: #line 467 "bison_parser.y" /* yacc.c:1666 */ { (yyval.bval) = true; } -#line 3002 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3025 "bison_parser.cpp" /* yacc.c:1666 */ break; case 49: #line 468 "bison_parser.y" /* yacc.c:1666 */ { (yyval.bval) = false; } -#line 3008 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3031 "bison_parser.cpp" /* yacc.c:1666 */ break; case 50: #line 469 "bison_parser.y" /* yacc.c:1666 */ { (yyval.bval) = false; } -#line 3014 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3037 "bison_parser.cpp" /* yacc.c:1666 */ break; case 51: @@ -3021,7 +3044,7 @@ yyreduce: (yyval.drop_stmt)->schema = (yyvsp[0].table_name).schema; (yyval.drop_stmt)->name = (yyvsp[0].table_name).name; } -#line 3025 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3048 "bison_parser.cpp" /* yacc.c:1666 */ break; case 52: @@ -3032,7 +3055,7 @@ yyreduce: (yyval.drop_stmt)->schema = (yyvsp[0].table_name).schema; (yyval.drop_stmt)->name = (yyvsp[0].table_name).name; } -#line 3036 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3059 "bison_parser.cpp" /* yacc.c:1666 */ break; case 53: @@ -3042,19 +3065,19 @@ yyreduce: (yyval.drop_stmt)->ifExists = false; (yyval.drop_stmt)->name = (yyvsp[0].sval); } -#line 3046 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3069 "bison_parser.cpp" /* yacc.c:1666 */ break; case 54: #line 499 "bison_parser.y" /* yacc.c:1666 */ { (yyval.bval) = true; } -#line 3052 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3075 "bison_parser.cpp" /* yacc.c:1666 */ break; case 55: #line 500 "bison_parser.y" /* yacc.c:1666 */ { (yyval.bval) = false; } -#line 3058 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3081 "bison_parser.cpp" /* yacc.c:1666 */ break; case 56: @@ -3065,7 +3088,7 @@ yyreduce: (yyval.delete_stmt)->tableName = (yyvsp[-1].table_name).name; (yyval.delete_stmt)->expr = (yyvsp[0].expr); } -#line 3069 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3092 "bison_parser.cpp" /* yacc.c:1666 */ break; case 57: @@ -3075,7 +3098,7 @@ yyreduce: (yyval.delete_stmt)->schema = (yyvsp[0].table_name).schema; (yyval.delete_stmt)->tableName = (yyvsp[0].table_name).name; } -#line 3079 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3102 "bison_parser.cpp" /* yacc.c:1666 */ break; case 58: @@ -3087,7 +3110,7 @@ yyreduce: (yyval.insert_stmt)->columns = (yyvsp[-4].str_vec); (yyval.insert_stmt)->values = (yyvsp[-1].expr_vec); } -#line 3091 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3114 "bison_parser.cpp" /* yacc.c:1666 */ break; case 59: @@ -3099,19 +3122,19 @@ yyreduce: (yyval.insert_stmt)->columns = (yyvsp[-1].str_vec); (yyval.insert_stmt)->select = (yyvsp[0].select_stmt); } -#line 3103 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3126 "bison_parser.cpp" /* yacc.c:1666 */ break; case 60: #line 549 "bison_parser.y" /* yacc.c:1666 */ { (yyval.str_vec) = (yyvsp[-1].str_vec); } -#line 3109 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3132 "bison_parser.cpp" /* yacc.c:1666 */ break; case 61: #line 550 "bison_parser.y" /* yacc.c:1666 */ { (yyval.str_vec) = nullptr; } -#line 3115 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3138 "bison_parser.cpp" /* yacc.c:1666 */ break; case 62: @@ -3122,19 +3145,19 @@ yyreduce: (yyval.update_stmt)->updates = (yyvsp[-1].update_vec); (yyval.update_stmt)->where = (yyvsp[0].expr); } -#line 3126 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3149 "bison_parser.cpp" /* yacc.c:1666 */ break; case 63: #line 569 "bison_parser.y" /* yacc.c:1666 */ { (yyval.update_vec) = new std::vector(); (yyval.update_vec)->push_back((yyvsp[0].update_t)); } -#line 3132 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3155 "bison_parser.cpp" /* yacc.c:1666 */ break; case 64: #line 570 "bison_parser.y" /* yacc.c:1666 */ { (yyvsp[-2].update_vec)->push_back((yyvsp[0].update_t)); (yyval.update_vec) = (yyvsp[-2].update_vec); } -#line 3138 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3161 "bison_parser.cpp" /* yacc.c:1666 */ break; case 65: @@ -3144,7 +3167,7 @@ yyreduce: (yyval.update_t)->column = (yyvsp[-2].sval); (yyval.update_t)->value = (yyvsp[0].expr); } -#line 3148 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3171 "bison_parser.cpp" /* yacc.c:1666 */ break; case 68: @@ -3163,19 +3186,19 @@ yyreduce: (yyval.select_stmt)->limit = (yyvsp[0].limit); } } -#line 3167 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3190 "bison_parser.cpp" /* yacc.c:1666 */ break; case 69: #line 605 "bison_parser.y" /* yacc.c:1666 */ { (yyval.select_stmt) = (yyvsp[-1].select_stmt); } -#line 3173 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3196 "bison_parser.cpp" /* yacc.c:1666 */ break; case 70: #line 606 "bison_parser.y" /* yacc.c:1666 */ { (yyval.select_stmt) = (yyvsp[-1].select_stmt); } -#line 3179 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3202 "bison_parser.cpp" /* yacc.c:1666 */ break; case 73: @@ -3190,7 +3213,7 @@ yyreduce: (yyval.select_stmt)->limit = (yyvsp[0].limit); } } -#line 3194 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3217 "bison_parser.cpp" /* yacc.c:1666 */ break; case 74: @@ -3209,7 +3232,7 @@ yyreduce: (yyval.select_stmt)->limit = (yyvsp[0].limit); } } -#line 3213 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3236 "bison_parser.cpp" /* yacc.c:1666 */ break; case 81: @@ -3223,49 +3246,49 @@ yyreduce: (yyval.select_stmt)->whereClause = (yyvsp[-1].expr); (yyval.select_stmt)->groupBy = (yyvsp[0].group_t); } -#line 3227 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3250 "bison_parser.cpp" /* yacc.c:1666 */ break; case 82: #line 669 "bison_parser.y" /* yacc.c:1666 */ { (yyval.bval) = true; } -#line 3233 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3256 "bison_parser.cpp" /* yacc.c:1666 */ break; case 83: #line 670 "bison_parser.y" /* yacc.c:1666 */ { (yyval.bval) = false; } -#line 3239 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3262 "bison_parser.cpp" /* yacc.c:1666 */ break; case 85: #line 678 "bison_parser.y" /* yacc.c:1666 */ { (yyval.table) = (yyvsp[0].table); } -#line 3245 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3268 "bison_parser.cpp" /* yacc.c:1666 */ break; case 86: #line 679 "bison_parser.y" /* yacc.c:1666 */ { (yyval.table) = nullptr; } -#line 3251 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3274 "bison_parser.cpp" /* yacc.c:1666 */ break; case 87: #line 682 "bison_parser.y" /* yacc.c:1666 */ { (yyval.table) = (yyvsp[0].table); } -#line 3257 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3280 "bison_parser.cpp" /* yacc.c:1666 */ break; case 88: #line 687 "bison_parser.y" /* yacc.c:1666 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 3263 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3286 "bison_parser.cpp" /* yacc.c:1666 */ break; case 89: #line 688 "bison_parser.y" /* yacc.c:1666 */ { (yyval.expr) = nullptr; } -#line 3269 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3292 "bison_parser.cpp" /* yacc.c:1666 */ break; case 90: @@ -3275,161 +3298,173 @@ yyreduce: (yyval.group_t)->columns = (yyvsp[-1].expr_vec); (yyval.group_t)->having = (yyvsp[0].expr); } -#line 3279 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3302 "bison_parser.cpp" /* yacc.c:1666 */ break; case 91: #line 697 "bison_parser.y" /* yacc.c:1666 */ { (yyval.group_t) = nullptr; } -#line 3285 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3308 "bison_parser.cpp" /* yacc.c:1666 */ break; case 92: #line 701 "bison_parser.y" /* yacc.c:1666 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 3291 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3314 "bison_parser.cpp" /* yacc.c:1666 */ break; case 93: #line 702 "bison_parser.y" /* yacc.c:1666 */ { (yyval.expr) = nullptr; } -#line 3297 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3320 "bison_parser.cpp" /* yacc.c:1666 */ break; case 94: #line 705 "bison_parser.y" /* yacc.c:1666 */ { (yyval.order_vec) = (yyvsp[0].order_vec); } -#line 3303 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3326 "bison_parser.cpp" /* yacc.c:1666 */ break; case 95: #line 706 "bison_parser.y" /* yacc.c:1666 */ { (yyval.order_vec) = nullptr; } -#line 3309 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3332 "bison_parser.cpp" /* yacc.c:1666 */ break; case 96: #line 710 "bison_parser.y" /* yacc.c:1666 */ { (yyval.order_vec) = new std::vector(); (yyval.order_vec)->push_back((yyvsp[0].order)); } -#line 3315 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3338 "bison_parser.cpp" /* yacc.c:1666 */ break; case 97: #line 711 "bison_parser.y" /* yacc.c:1666 */ { (yyvsp[-2].order_vec)->push_back((yyvsp[0].order)); (yyval.order_vec) = (yyvsp[-2].order_vec); } -#line 3321 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3344 "bison_parser.cpp" /* yacc.c:1666 */ break; case 98: #line 715 "bison_parser.y" /* yacc.c:1666 */ { (yyval.order) = new OrderDescription((yyvsp[0].order_type), (yyvsp[-1].expr)); } -#line 3327 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3350 "bison_parser.cpp" /* yacc.c:1666 */ break; case 99: #line 719 "bison_parser.y" /* yacc.c:1666 */ { (yyval.order_type) = kOrderAsc; } -#line 3333 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3356 "bison_parser.cpp" /* yacc.c:1666 */ break; case 100: #line 720 "bison_parser.y" /* yacc.c:1666 */ { (yyval.order_type) = kOrderDesc; } -#line 3339 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3362 "bison_parser.cpp" /* yacc.c:1666 */ break; case 101: #line 721 "bison_parser.y" /* yacc.c:1666 */ { (yyval.order_type) = kOrderAsc; } -#line 3345 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3368 "bison_parser.cpp" /* yacc.c:1666 */ break; case 102: #line 727 "bison_parser.y" /* yacc.c:1666 */ { (yyval.limit) = new LimitDescription((yyvsp[0].expr)->ival, kNoOffset); delete (yyvsp[0].expr); } -#line 3351 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3374 "bison_parser.cpp" /* yacc.c:1666 */ break; case 103: #line 728 "bison_parser.y" /* yacc.c:1666 */ { (yyval.limit) = nullptr; } -#line 3357 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3380 "bison_parser.cpp" /* yacc.c:1666 */ break; case 104: #line 732 "bison_parser.y" /* yacc.c:1666 */ { (yyval.limit) = new LimitDescription((yyvsp[0].expr)->ival, kNoOffset); delete (yyvsp[0].expr); } -#line 3363 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3386 "bison_parser.cpp" /* yacc.c:1666 */ break; case 105: #line 733 "bison_parser.y" /* yacc.c:1666 */ { (yyval.limit) = new LimitDescription((yyvsp[-2].expr)->ival, (yyvsp[0].expr)->ival); delete (yyvsp[-2].expr); delete (yyvsp[0].expr); } -#line 3369 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3392 "bison_parser.cpp" /* yacc.c:1666 */ break; case 106: #line 734 "bison_parser.y" /* yacc.c:1666 */ { (yyval.limit) = new LimitDescription(kNoLimit, (yyvsp[0].expr)->ival); delete (yyvsp[0].expr); } -#line 3375 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3398 "bison_parser.cpp" /* yacc.c:1666 */ break; case 107: #line 735 "bison_parser.y" /* yacc.c:1666 */ { (yyval.limit) = nullptr; } -#line 3381 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3404 "bison_parser.cpp" /* yacc.c:1666 */ break; case 108: #line 736 "bison_parser.y" /* yacc.c:1666 */ { (yyval.limit) = nullptr; } -#line 3387 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3410 "bison_parser.cpp" /* yacc.c:1666 */ break; case 109: #line 737 "bison_parser.y" /* yacc.c:1666 */ { (yyval.limit) = new LimitDescription(kNoLimit, (yyvsp[0].expr)->ival); delete (yyvsp[0].expr); } -#line 3393 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3416 "bison_parser.cpp" /* yacc.c:1666 */ break; case 110: #line 738 "bison_parser.y" /* yacc.c:1666 */ { (yyval.limit) = new LimitDescription(kNoLimit, (yyvsp[0].expr)->ival); delete (yyvsp[0].expr); } -#line 3399 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3422 "bison_parser.cpp" /* yacc.c:1666 */ break; case 111: #line 739 "bison_parser.y" /* yacc.c:1666 */ { (yyval.limit) = nullptr; } -#line 3405 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3428 "bison_parser.cpp" /* yacc.c:1666 */ break; case 112: #line 746 "bison_parser.y" /* yacc.c:1666 */ { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } -#line 3411 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3434 "bison_parser.cpp" /* yacc.c:1666 */ break; case 113: #line 747 "bison_parser.y" /* yacc.c:1666 */ { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } -#line 3417 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3440 "bison_parser.cpp" /* yacc.c:1666 */ break; case 114: #line 751 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } -#line 3423 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr_vec) = (yyvsp[0].expr_vec); } +#line 3446 "bison_parser.cpp" /* yacc.c:1666 */ break; case 115: #line 752 "bison_parser.y" /* yacc.c:1666 */ - { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } -#line 3429 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr_vec) = nullptr; } +#line 3452 "bison_parser.cpp" /* yacc.c:1666 */ break; case 116: #line 756 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); } +#line 3458 "bison_parser.cpp" /* yacc.c:1666 */ + break; + + case 117: +#line 757 "bison_parser.y" /* yacc.c:1666 */ + { (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); } +#line 3464 "bison_parser.cpp" /* yacc.c:1666 */ + break; + + case 118: +#line 761 "bison_parser.y" /* yacc.c:1666 */ { (yyval.expr) = (yyvsp[-1].expr); if ((yyvsp[0].alias_t)) { @@ -3437,415 +3472,415 @@ yyreduce: delete (yyvsp[0].alias_t); } } -#line 3441 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3476 "bison_parser.cpp" /* yacc.c:1666 */ break; - case 122: -#line 774 "bison_parser.y" /* yacc.c:1666 */ + case 124: +#line 779 "bison_parser.y" /* yacc.c:1666 */ { (yyval.expr) = (yyvsp[-1].expr); } -#line 3447 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3482 "bison_parser.cpp" /* yacc.c:1666 */ break; - case 131: -#line 783 "bison_parser.y" /* yacc.c:1666 */ + case 133: +#line 788 "bison_parser.y" /* yacc.c:1666 */ { (yyval.expr) = Expr::makeSelect((yyvsp[-1].select_stmt)); } -#line 3453 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 134: -#line 792 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpUnary(kOpUnaryMinus, (yyvsp[0].expr)); } -#line 3459 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 135: -#line 793 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpUnary(kOpNot, (yyvsp[0].expr)); } -#line 3465 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3488 "bison_parser.cpp" /* yacc.c:1666 */ break; case 136: -#line 794 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpUnary(kOpIsNull, (yyvsp[-1].expr)); } -#line 3471 "bison_parser.cpp" /* yacc.c:1666 */ +#line 797 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpUnary(kOpUnaryMinus, (yyvsp[0].expr)); } +#line 3494 "bison_parser.cpp" /* yacc.c:1666 */ break; case 137: -#line 795 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpUnary(kOpIsNull, (yyvsp[-2].expr)); } -#line 3477 "bison_parser.cpp" /* yacc.c:1666 */ +#line 798 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpUnary(kOpNot, (yyvsp[0].expr)); } +#line 3500 "bison_parser.cpp" /* yacc.c:1666 */ break; case 138: -#line 796 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeOpUnary(kOpIsNull, (yyvsp[-3].expr))); } -#line 3483 "bison_parser.cpp" /* yacc.c:1666 */ +#line 799 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpUnary(kOpIsNull, (yyvsp[-1].expr)); } +#line 3506 "bison_parser.cpp" /* yacc.c:1666 */ + break; + + case 139: +#line 800 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpUnary(kOpIsNull, (yyvsp[-2].expr)); } +#line 3512 "bison_parser.cpp" /* yacc.c:1666 */ break; case 140: #line 801 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpMinus, (yyvsp[0].expr)); } -#line 3489 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 141: -#line 802 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpPlus, (yyvsp[0].expr)); } -#line 3495 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeOpUnary(kOpIsNull, (yyvsp[-3].expr))); } +#line 3518 "bison_parser.cpp" /* yacc.c:1666 */ break; case 142: -#line 803 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpSlash, (yyvsp[0].expr)); } -#line 3501 "bison_parser.cpp" /* yacc.c:1666 */ +#line 806 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpMinus, (yyvsp[0].expr)); } +#line 3524 "bison_parser.cpp" /* yacc.c:1666 */ break; case 143: -#line 804 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpAsterisk, (yyvsp[0].expr)); } -#line 3507 "bison_parser.cpp" /* yacc.c:1666 */ +#line 807 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpPlus, (yyvsp[0].expr)); } +#line 3530 "bison_parser.cpp" /* yacc.c:1666 */ break; case 144: -#line 805 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpPercentage, (yyvsp[0].expr)); } -#line 3513 "bison_parser.cpp" /* yacc.c:1666 */ +#line 808 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpSlash, (yyvsp[0].expr)); } +#line 3536 "bison_parser.cpp" /* yacc.c:1666 */ break; case 145: -#line 806 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpCaret, (yyvsp[0].expr)); } -#line 3519 "bison_parser.cpp" /* yacc.c:1666 */ +#line 809 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpAsterisk, (yyvsp[0].expr)); } +#line 3542 "bison_parser.cpp" /* yacc.c:1666 */ break; case 146: -#line 807 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLike, (yyvsp[0].expr)); } -#line 3525 "bison_parser.cpp" /* yacc.c:1666 */ +#line 810 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpPercentage, (yyvsp[0].expr)); } +#line 3548 "bison_parser.cpp" /* yacc.c:1666 */ break; case 147: -#line 808 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-3].expr), kOpNotLike, (yyvsp[0].expr)); } -#line 3531 "bison_parser.cpp" /* yacc.c:1666 */ +#line 811 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpCaret, (yyvsp[0].expr)); } +#line 3554 "bison_parser.cpp" /* yacc.c:1666 */ break; case 148: -#line 809 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpILike, (yyvsp[0].expr)); } -#line 3537 "bison_parser.cpp" /* yacc.c:1666 */ +#line 812 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLike, (yyvsp[0].expr)); } +#line 3560 "bison_parser.cpp" /* yacc.c:1666 */ break; case 149: -#line 810 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpConcat, (yyvsp[0].expr)); } -#line 3543 "bison_parser.cpp" /* yacc.c:1666 */ +#line 813 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-3].expr), kOpNotLike, (yyvsp[0].expr)); } +#line 3566 "bison_parser.cpp" /* yacc.c:1666 */ break; case 150: #line 814 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpAnd, (yyvsp[0].expr)); } -#line 3549 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpILike, (yyvsp[0].expr)); } +#line 3572 "bison_parser.cpp" /* yacc.c:1666 */ break; case 151: #line 815 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpOr, (yyvsp[0].expr)); } -#line 3555 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpConcat, (yyvsp[0].expr)); } +#line 3578 "bison_parser.cpp" /* yacc.c:1666 */ break; case 152: #line 819 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].expr_vec)); } -#line 3561 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpAnd, (yyvsp[0].expr)); } +#line 3584 "bison_parser.cpp" /* yacc.c:1666 */ break; case 153: #line 820 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].expr_vec))); } -#line 3567 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpOr, (yyvsp[0].expr)); } +#line 3590 "bison_parser.cpp" /* yacc.c:1666 */ break; case 154: -#line 821 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].select_stmt)); } -#line 3573 "bison_parser.cpp" /* yacc.c:1666 */ +#line 824 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].expr_vec)); } +#line 3596 "bison_parser.cpp" /* yacc.c:1666 */ break; case 155: -#line 822 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].select_stmt))); } -#line 3579 "bison_parser.cpp" /* yacc.c:1666 */ +#line 825 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].expr_vec))); } +#line 3602 "bison_parser.cpp" /* yacc.c:1666 */ break; case 156: -#line 828 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeCase((yyvsp[-2].expr), (yyvsp[-1].expr), nullptr); } -#line 3585 "bison_parser.cpp" /* yacc.c:1666 */ +#line 826 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].select_stmt)); } +#line 3608 "bison_parser.cpp" /* yacc.c:1666 */ break; case 157: -#line 829 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeCase((yyvsp[-4].expr), (yyvsp[-3].expr), (yyvsp[-1].expr)); } -#line 3591 "bison_parser.cpp" /* yacc.c:1666 */ +#line 827 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].select_stmt))); } +#line 3614 "bison_parser.cpp" /* yacc.c:1666 */ break; case 158: -#line 830 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeCase(nullptr, (yyvsp[-1].expr), nullptr); } -#line 3597 "bison_parser.cpp" /* yacc.c:1666 */ +#line 833 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeCase((yyvsp[-2].expr), (yyvsp[-1].expr), nullptr); } +#line 3620 "bison_parser.cpp" /* yacc.c:1666 */ break; case 159: -#line 831 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeCase(nullptr, (yyvsp[-3].expr), (yyvsp[-1].expr)); } -#line 3603 "bison_parser.cpp" /* yacc.c:1666 */ +#line 834 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeCase((yyvsp[-4].expr), (yyvsp[-3].expr), (yyvsp[-1].expr)); } +#line 3626 "bison_parser.cpp" /* yacc.c:1666 */ break; case 160: #line 835 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeCaseList(Expr::makeCaseListElement((yyvsp[-2].expr), (yyvsp[0].expr))); } -#line 3609 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeCase(nullptr, (yyvsp[-1].expr), nullptr); } +#line 3632 "bison_parser.cpp" /* yacc.c:1666 */ break; case 161: #line 836 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::caseListAppend((yyvsp[-4].expr), Expr::makeCaseListElement((yyvsp[-2].expr), (yyvsp[0].expr))); } -#line 3615 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeCase(nullptr, (yyvsp[-3].expr), (yyvsp[-1].expr)); } +#line 3638 "bison_parser.cpp" /* yacc.c:1666 */ break; case 162: #line 840 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeExists((yyvsp[-1].select_stmt)); } -#line 3621 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeCaseList(Expr::makeCaseListElement((yyvsp[-2].expr), (yyvsp[0].expr))); } +#line 3644 "bison_parser.cpp" /* yacc.c:1666 */ break; case 163: #line 841 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeExists((yyvsp[-1].select_stmt))); } -#line 3627 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr) = Expr::caseListAppend((yyvsp[-4].expr), Expr::makeCaseListElement((yyvsp[-2].expr), (yyvsp[0].expr))); } +#line 3650 "bison_parser.cpp" /* yacc.c:1666 */ break; case 164: #line 845 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpEquals, (yyvsp[0].expr)); } -#line 3633 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeExists((yyvsp[-1].select_stmt)); } +#line 3656 "bison_parser.cpp" /* yacc.c:1666 */ break; case 165: #line 846 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpEquals, (yyvsp[0].expr)); } -#line 3639 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeExists((yyvsp[-1].select_stmt))); } +#line 3662 "bison_parser.cpp" /* yacc.c:1666 */ break; case 166: -#line 847 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpNotEquals, (yyvsp[0].expr)); } -#line 3645 "bison_parser.cpp" /* yacc.c:1666 */ +#line 850 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpEquals, (yyvsp[0].expr)); } +#line 3668 "bison_parser.cpp" /* yacc.c:1666 */ break; case 167: -#line 848 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLess, (yyvsp[0].expr)); } -#line 3651 "bison_parser.cpp" /* yacc.c:1666 */ +#line 851 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpEquals, (yyvsp[0].expr)); } +#line 3674 "bison_parser.cpp" /* yacc.c:1666 */ break; case 168: -#line 849 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpGreater, (yyvsp[0].expr)); } -#line 3657 "bison_parser.cpp" /* yacc.c:1666 */ +#line 852 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpNotEquals, (yyvsp[0].expr)); } +#line 3680 "bison_parser.cpp" /* yacc.c:1666 */ break; case 169: -#line 850 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLessEq, (yyvsp[0].expr)); } -#line 3663 "bison_parser.cpp" /* yacc.c:1666 */ +#line 853 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLess, (yyvsp[0].expr)); } +#line 3686 "bison_parser.cpp" /* yacc.c:1666 */ break; case 170: -#line 851 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpGreaterEq, (yyvsp[0].expr)); } -#line 3669 "bison_parser.cpp" /* yacc.c:1666 */ +#line 854 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpGreater, (yyvsp[0].expr)); } +#line 3692 "bison_parser.cpp" /* yacc.c:1666 */ break; case 171: #line 855 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeFunctionRef((yyvsp[-2].sval), new std::vector(), false); } -#line 3675 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLessEq, (yyvsp[0].expr)); } +#line 3698 "bison_parser.cpp" /* yacc.c:1666 */ break; case 172: #line 856 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeFunctionRef((yyvsp[-4].sval), (yyvsp[-1].expr_vec), (yyvsp[-2].bval)); } -#line 3681 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpGreaterEq, (yyvsp[0].expr)); } +#line 3704 "bison_parser.cpp" /* yacc.c:1666 */ break; case 173: #line 860 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeExtract((yyvsp[-3].datetime_field), (yyvsp[-1].expr)); } -#line 3687 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeFunctionRef((yyvsp[-2].sval), new std::vector(), false); } +#line 3710 "bison_parser.cpp" /* yacc.c:1666 */ break; case 174: -#line 864 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.datetime_field) = kDatetimeSecond; } -#line 3693 "bison_parser.cpp" /* yacc.c:1666 */ +#line 861 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeFunctionRef((yyvsp[-4].sval), (yyvsp[-1].expr_vec), (yyvsp[-2].bval)); } +#line 3716 "bison_parser.cpp" /* yacc.c:1666 */ break; case 175: #line 865 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.datetime_field) = kDatetimeMinute; } -#line 3699 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeExtract((yyvsp[-3].datetime_field), (yyvsp[-1].expr)); } +#line 3722 "bison_parser.cpp" /* yacc.c:1666 */ break; case 176: -#line 866 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.datetime_field) = kDatetimeHour; } -#line 3705 "bison_parser.cpp" /* yacc.c:1666 */ +#line 869 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.datetime_field) = kDatetimeSecond; } +#line 3728 "bison_parser.cpp" /* yacc.c:1666 */ break; case 177: -#line 867 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.datetime_field) = kDatetimeDay; } -#line 3711 "bison_parser.cpp" /* yacc.c:1666 */ +#line 870 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.datetime_field) = kDatetimeMinute; } +#line 3734 "bison_parser.cpp" /* yacc.c:1666 */ break; case 178: -#line 868 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.datetime_field) = kDatetimeMonth; } -#line 3717 "bison_parser.cpp" /* yacc.c:1666 */ +#line 871 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.datetime_field) = kDatetimeHour; } +#line 3740 "bison_parser.cpp" /* yacc.c:1666 */ break; case 179: -#line 869 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.datetime_field) = kDatetimeYear; } -#line 3723 "bison_parser.cpp" /* yacc.c:1666 */ +#line 872 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.datetime_field) = kDatetimeDay; } +#line 3746 "bison_parser.cpp" /* yacc.c:1666 */ break; case 180: -#line 872 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeArray((yyvsp[-1].expr_vec)); } -#line 3729 "bison_parser.cpp" /* yacc.c:1666 */ +#line 873 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.datetime_field) = kDatetimeMonth; } +#line 3752 "bison_parser.cpp" /* yacc.c:1666 */ break; case 181: -#line 876 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeArrayIndex((yyvsp[-3].expr), (yyvsp[-1].expr)->ival); } -#line 3735 "bison_parser.cpp" /* yacc.c:1666 */ +#line 874 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.datetime_field) = kDatetimeYear; } +#line 3758 "bison_parser.cpp" /* yacc.c:1666 */ break; case 182: -#line 880 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeBetween((yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3741 "bison_parser.cpp" /* yacc.c:1666 */ +#line 877 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeArray((yyvsp[-1].expr_vec)); } +#line 3764 "bison_parser.cpp" /* yacc.c:1666 */ break; case 183: -#line 884 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeColumnRef((yyvsp[0].sval)); } -#line 3747 "bison_parser.cpp" /* yacc.c:1666 */ +#line 881 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeArrayIndex((yyvsp[-3].expr), (yyvsp[-1].expr)->ival); } +#line 3770 "bison_parser.cpp" /* yacc.c:1666 */ break; case 184: #line 885 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeColumnRef((yyvsp[-2].sval), (yyvsp[0].sval)); } -#line 3753 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeBetween((yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 3776 "bison_parser.cpp" /* yacc.c:1666 */ break; case 185: -#line 886 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeStar(); } -#line 3759 "bison_parser.cpp" /* yacc.c:1666 */ +#line 889 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeColumnRef((yyvsp[0].sval)); } +#line 3782 "bison_parser.cpp" /* yacc.c:1666 */ break; case 186: -#line 887 "bison_parser.y" /* yacc.c:1666 */ +#line 890 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeColumnRef((yyvsp[-2].sval), (yyvsp[0].sval)); } +#line 3788 "bison_parser.cpp" /* yacc.c:1666 */ + break; + + case 187: +#line 891 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeStar(); } +#line 3794 "bison_parser.cpp" /* yacc.c:1666 */ + break; + + case 188: +#line 892 "bison_parser.y" /* yacc.c:1666 */ { (yyval.expr) = Expr::makeStar((yyvsp[-2].sval)); } -#line 3765 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 192: -#line 899 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeLiteral((yyvsp[0].sval)); } -#line 3771 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 193: -#line 903 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeLiteral(true); } -#line 3777 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3800 "bison_parser.cpp" /* yacc.c:1666 */ break; case 194: #line 904 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeLiteral(false); } -#line 3783 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeLiteral((yyvsp[0].sval)); } +#line 3806 "bison_parser.cpp" /* yacc.c:1666 */ break; case 195: #line 908 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeLiteral((yyvsp[0].fval)); } -#line 3789 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeLiteral(true); } +#line 3812 "bison_parser.cpp" /* yacc.c:1666 */ + break; + + case 196: +#line 909 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeLiteral(false); } +#line 3818 "bison_parser.cpp" /* yacc.c:1666 */ break; case 197: #line 913 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeLiteral((yyvsp[0].ival)); } -#line 3795 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 198: -#line 917 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.expr) = Expr::makeNullLiteral(); } -#line 3801 "bison_parser.cpp" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeLiteral((yyvsp[0].fval)); } +#line 3824 "bison_parser.cpp" /* yacc.c:1666 */ break; case 199: -#line 921 "bison_parser.y" /* yacc.c:1666 */ +#line 918 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeLiteral((yyvsp[0].ival)); } +#line 3830 "bison_parser.cpp" /* yacc.c:1666 */ + break; + + case 200: +#line 922 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.expr) = Expr::makeNullLiteral(); } +#line 3836 "bison_parser.cpp" /* yacc.c:1666 */ + break; + + case 201: +#line 926 "bison_parser.y" /* yacc.c:1666 */ { (yyval.expr) = Expr::makeParameter(yylloc.total_column); (yyval.expr)->ival2 = yyloc.param_list.size(); yyloc.param_list.push_back((yyval.expr)); } -#line 3811 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3846 "bison_parser.cpp" /* yacc.c:1666 */ break; - case 201: -#line 934 "bison_parser.y" /* yacc.c:1666 */ + case 203: +#line 939 "bison_parser.y" /* yacc.c:1666 */ { (yyvsp[-2].table_vec)->push_back((yyvsp[0].table)); auto tbl = new TableRef(kTableCrossProduct); tbl->list = (yyvsp[-2].table_vec); (yyval.table) = tbl; } -#line 3822 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3857 "bison_parser.cpp" /* yacc.c:1666 */ break; - case 205: -#line 950 "bison_parser.y" /* yacc.c:1666 */ + case 207: +#line 955 "bison_parser.y" /* yacc.c:1666 */ { auto tbl = new TableRef(kTableSelect); tbl->select = (yyvsp[-2].select_stmt); tbl->alias = (yyvsp[0].alias_t); (yyval.table) = tbl; } -#line 3833 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 206: -#line 959 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.table_vec) = new std::vector(); (yyval.table_vec)->push_back((yyvsp[0].table)); } -#line 3839 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 207: -#line 960 "bison_parser.y" /* yacc.c:1666 */ - { (yyvsp[-2].table_vec)->push_back((yyvsp[0].table)); (yyval.table_vec) = (yyvsp[-2].table_vec); } -#line 3845 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3868 "bison_parser.cpp" /* yacc.c:1666 */ break; case 208: +#line 964 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.table_vec) = new std::vector(); (yyval.table_vec)->push_back((yyvsp[0].table)); } +#line 3874 "bison_parser.cpp" /* yacc.c:1666 */ + break; + + case 209: #line 965 "bison_parser.y" /* yacc.c:1666 */ + { (yyvsp[-2].table_vec)->push_back((yyvsp[0].table)); (yyval.table_vec) = (yyvsp[-2].table_vec); } +#line 3880 "bison_parser.cpp" /* yacc.c:1666 */ + break; + + case 210: +#line 970 "bison_parser.y" /* yacc.c:1666 */ { auto tbl = new TableRef(kTableName); tbl->schema = (yyvsp[-1].table_name).schema; @@ -3853,63 +3888,63 @@ yyreduce: tbl->alias = (yyvsp[0].alias_t); (yyval.table) = tbl; } -#line 3857 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3892 "bison_parser.cpp" /* yacc.c:1666 */ break; - case 209: -#line 976 "bison_parser.y" /* yacc.c:1666 */ + case 211: +#line 981 "bison_parser.y" /* yacc.c:1666 */ { (yyval.table) = new TableRef(kTableName); (yyval.table)->schema = (yyvsp[0].table_name).schema; (yyval.table)->name = (yyvsp[0].table_name).name; } -#line 3867 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3902 "bison_parser.cpp" /* yacc.c:1666 */ break; - case 210: -#line 985 "bison_parser.y" /* yacc.c:1666 */ + case 212: +#line 990 "bison_parser.y" /* yacc.c:1666 */ { (yyval.table_name).schema = nullptr; (yyval.table_name).name = (yyvsp[0].sval);} -#line 3873 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 211: -#line 986 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.table_name).schema = (yyvsp[-2].sval); (yyval.table_name).name = (yyvsp[0].sval); } -#line 3879 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3908 "bison_parser.cpp" /* yacc.c:1666 */ break; case 213: -#line 992 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.alias_t) = new Alias((yyvsp[-3].sval), (yyvsp[-1].str_vec)); } -#line 3885 "bison_parser.cpp" /* yacc.c:1666 */ +#line 991 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.table_name).schema = (yyvsp[-2].sval); (yyval.table_name).name = (yyvsp[0].sval); } +#line 3914 "bison_parser.cpp" /* yacc.c:1666 */ break; case 215: -#line 998 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.alias_t) = nullptr; } -#line 3891 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 216: -#line 1002 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.alias_t) = new Alias((yyvsp[0].sval)); } -#line 3897 "bison_parser.cpp" /* yacc.c:1666 */ +#line 997 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.alias_t) = new Alias((yyvsp[-3].sval), (yyvsp[-1].str_vec)); } +#line 3920 "bison_parser.cpp" /* yacc.c:1666 */ break; case 217: #line 1003 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.alias_t) = nullptr; } +#line 3926 "bison_parser.cpp" /* yacc.c:1666 */ + break; + + case 218: +#line 1007 "bison_parser.y" /* yacc.c:1666 */ { (yyval.alias_t) = new Alias((yyvsp[0].sval)); } -#line 3903 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3932 "bison_parser.cpp" /* yacc.c:1666 */ break; case 219: -#line 1009 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.alias_t) = nullptr; } -#line 3909 "bison_parser.cpp" /* yacc.c:1666 */ +#line 1008 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.alias_t) = new Alias((yyvsp[0].sval)); } +#line 3938 "bison_parser.cpp" /* yacc.c:1666 */ break; - case 220: -#line 1018 "bison_parser.y" /* yacc.c:1666 */ + case 221: +#line 1014 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.alias_t) = nullptr; } +#line 3944 "bison_parser.cpp" /* yacc.c:1666 */ + break; + + case 222: +#line 1023 "bison_parser.y" /* yacc.c:1666 */ { (yyval.table) = new TableRef(kTableJoin); (yyval.table)->join = new JoinDefinition(); @@ -3917,11 +3952,11 @@ yyreduce: (yyval.table)->join->left = (yyvsp[-3].table); (yyval.table)->join->right = (yyvsp[0].table); } -#line 3921 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3956 "bison_parser.cpp" /* yacc.c:1666 */ break; - case 221: -#line 1026 "bison_parser.y" /* yacc.c:1666 */ + case 223: +#line 1031 "bison_parser.y" /* yacc.c:1666 */ { (yyval.table) = new TableRef(kTableJoin); (yyval.table)->join = new JoinDefinition(); @@ -3930,11 +3965,11 @@ yyreduce: (yyval.table)->join->right = (yyvsp[-2].table); (yyval.table)->join->condition = (yyvsp[0].expr); } -#line 3934 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3969 "bison_parser.cpp" /* yacc.c:1666 */ break; - case 222: -#line 1036 "bison_parser.y" /* yacc.c:1666 */ + case 224: +#line 1041 "bison_parser.y" /* yacc.c:1666 */ { (yyval.table) = new TableRef(kTableJoin); (yyval.table)->join = new JoinDefinition(); @@ -3950,83 +3985,83 @@ yyreduce: (yyval.table)->join->condition = Expr::makeOpBinary(left_col, kOpEquals, right_col); delete (yyvsp[-1].expr); } -#line 3954 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 223: -#line 1054 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.uval) = kJoinInner; } -#line 3960 "bison_parser.cpp" /* yacc.c:1666 */ - break; - - case 224: -#line 1055 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.uval) = kJoinLeft; } -#line 3966 "bison_parser.cpp" /* yacc.c:1666 */ +#line 3989 "bison_parser.cpp" /* yacc.c:1666 */ break; case 225: -#line 1056 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.uval) = kJoinLeft; } -#line 3972 "bison_parser.cpp" /* yacc.c:1666 */ +#line 1059 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.uval) = kJoinInner; } +#line 3995 "bison_parser.cpp" /* yacc.c:1666 */ break; case 226: -#line 1057 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.uval) = kJoinRight; } -#line 3978 "bison_parser.cpp" /* yacc.c:1666 */ +#line 1060 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.uval) = kJoinLeft; } +#line 4001 "bison_parser.cpp" /* yacc.c:1666 */ break; case 227: -#line 1058 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.uval) = kJoinRight; } -#line 3984 "bison_parser.cpp" /* yacc.c:1666 */ +#line 1061 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.uval) = kJoinLeft; } +#line 4007 "bison_parser.cpp" /* yacc.c:1666 */ break; case 228: -#line 1059 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.uval) = kJoinFull; } -#line 3990 "bison_parser.cpp" /* yacc.c:1666 */ +#line 1062 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.uval) = kJoinRight; } +#line 4013 "bison_parser.cpp" /* yacc.c:1666 */ break; case 229: -#line 1060 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.uval) = kJoinFull; } -#line 3996 "bison_parser.cpp" /* yacc.c:1666 */ +#line 1063 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.uval) = kJoinRight; } +#line 4019 "bison_parser.cpp" /* yacc.c:1666 */ break; case 230: -#line 1061 "bison_parser.y" /* yacc.c:1666 */ +#line 1064 "bison_parser.y" /* yacc.c:1666 */ { (yyval.uval) = kJoinFull; } -#line 4002 "bison_parser.cpp" /* yacc.c:1666 */ +#line 4025 "bison_parser.cpp" /* yacc.c:1666 */ break; case 231: -#line 1062 "bison_parser.y" /* yacc.c:1666 */ - { (yyval.uval) = kJoinCross; } -#line 4008 "bison_parser.cpp" /* yacc.c:1666 */ +#line 1065 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.uval) = kJoinFull; } +#line 4031 "bison_parser.cpp" /* yacc.c:1666 */ break; case 232: -#line 1063 "bison_parser.y" /* yacc.c:1666 */ +#line 1066 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.uval) = kJoinFull; } +#line 4037 "bison_parser.cpp" /* yacc.c:1666 */ + break; + + case 233: +#line 1067 "bison_parser.y" /* yacc.c:1666 */ + { (yyval.uval) = kJoinCross; } +#line 4043 "bison_parser.cpp" /* yacc.c:1666 */ + break; + + case 234: +#line 1068 "bison_parser.y" /* yacc.c:1666 */ { (yyval.uval) = kJoinInner; } -#line 4014 "bison_parser.cpp" /* yacc.c:1666 */ +#line 4049 "bison_parser.cpp" /* yacc.c:1666 */ break; - case 236: -#line 1083 "bison_parser.y" /* yacc.c:1666 */ + case 238: +#line 1088 "bison_parser.y" /* yacc.c:1666 */ { (yyval.str_vec) = new std::vector(); (yyval.str_vec)->push_back((yyvsp[0].sval)); } -#line 4020 "bison_parser.cpp" /* yacc.c:1666 */ +#line 4055 "bison_parser.cpp" /* yacc.c:1666 */ break; - case 237: -#line 1084 "bison_parser.y" /* yacc.c:1666 */ + case 239: +#line 1089 "bison_parser.y" /* yacc.c:1666 */ { (yyvsp[-2].str_vec)->push_back((yyvsp[0].sval)); (yyval.str_vec) = (yyvsp[-2].str_vec); } -#line 4026 "bison_parser.cpp" /* yacc.c:1666 */ +#line 4061 "bison_parser.cpp" /* yacc.c:1666 */ break; -#line 4030 "bison_parser.cpp" /* yacc.c:1666 */ +#line 4065 "bison_parser.cpp" /* yacc.c:1666 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -4260,7 +4295,7 @@ yyreturn: #endif return yyresult; } -#line 1087 "bison_parser.y" /* yacc.c:1910 */ +#line 1092 "bison_parser.y" /* yacc.c:1910 */ /********************************* ** Section 4: Additional C code diff --git a/src/parser/bison_parser.y b/src/parser/bison_parser.y index 283428a..09d048d 100755 --- a/src/parser/bison_parser.y +++ b/src/parser/bison_parser.y @@ -214,7 +214,7 @@ int yyerror(YYLTYPE* llocp, SQLParserResult* result, yyscan_t scanner, const cha %type opt_table_alias table_alias opt_alias alias %type ident_commalist opt_column_list -%type expr_list select_list literal_list hint_list opt_hints +%type expr_list select_list opt_literal_list literal_list hint_list opt_hints %type table_ref_commalist %type opt_order order_list %type update_clause_commalist @@ -360,7 +360,7 @@ execute_statement: $$ = new ExecuteStatement(); $$->name = $2; } - | EXECUTE IDENTIFIER '(' literal_list ')' { + | EXECUTE IDENTIFIER '(' opt_literal_list ')' { $$ = new ExecuteStatement(); $$->name = $2; $$->parameters = $4; @@ -747,6 +747,11 @@ expr_list: | expr_list ',' expr_alias { $1->push_back($3); $$ = $1; } ; +opt_literal_list: + literal_list { $$ = $1; } + | /* empty */ { $$ = nullptr; } + ; + literal_list: literal { $$ = new std::vector(); $$->push_back($1); } | literal_list ',' literal { $1->push_back($3); $$ = $1; } diff --git a/test/prepare_tests.cpp b/test/prepare_tests.cpp index c8302d7..12c98d6 100644 --- a/test/prepare_tests.cpp +++ b/test/prepare_tests.cpp @@ -96,3 +96,27 @@ TEST(ExecuteStatementTest) { ASSERT_STREQ(stmt->name, "test"); ASSERT_EQ(stmt->parameters->size(), 2); } + +TEST(ExecuteStatementTestNoParam) { + TEST_PARSE_SINGLE_SQL( + "EXECUTE test();", + kStmtExecute, + ExecuteStatement, + result, + stmt); + + ASSERT_STREQ(stmt->name, "test"); + ASSERT_EQ(stmt->parameters, 0); +} + +TEST(ExecuteStatementTestNoParamList) { + TEST_PARSE_SINGLE_SQL( + "EXECUTE test;", + kStmtExecute, + ExecuteStatement, + result, + stmt); + + ASSERT_STREQ(stmt->name, "test"); + ASSERT_EQ(stmt->parameters, 0); +}