Please see a new patch. >Среда, 18 апреля 2018, 23:03 +03:00 от Gleb : > >Remove support partial indexes. >Add test which checks inaccessibility of partial index syntax. >Delete use partial index from tests. >They can be enabled after #2626. > >Fixes #2165 >--- >Issue from https://github.com/tarantool/tarantool/issues/2165 . >Source from https://github.com/tarantool/tarantool/tree/gh-2165-remove-support-partial-indexes . >Changes in v2: > -return tests which use partial. > -delete "WHERE" from returned tests. > > src/box/sql/parse.c | 472 ++++++++++----------- > src/box/sql/parse.y | 4 +- > test/sql-tap/analyze9.test.lua | 2 +- > test/sql-tap/autoindex4.test.lua | 2 +- > test/sql-tap/fkey1.test.lua | 2 +- > ...gh-2165-remove-support-partial-indexes.test.lua | 17 + > test/sql-tap/index6.test.lua | 12 +- > test/sql-tap/index7.test.lua | 25 +- > 8 files changed, 277 insertions(+), 259 deletions(-) > create mode 100644 test/sql-tap/gh-2165-remove-support-partial-indexes.test.lua > >diff --git a/src/box/sql/parse.c b/src/box/sql/parse.c >index 5c0f0ea..f5612d4 100644 >--- a/src/box/sql/parse.c >+++ b/src/box/sql/parse.c >@@ -315,16 +315,16 @@ typedef union { > #define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse > #define sqlite3ParserARG_STORE yypParser->pParse = pParse > #define YYFALLBACK 1 >-#define YYNSTATE 409 >+#define YYNSTATE 408 > #define YYNRULE 297 >-#define YY_MAX_SHIFT 408 >-#define YY_MIN_SHIFTREDUCE 604 >-#define YY_MAX_SHIFTREDUCE 900 >-#define YY_MIN_REDUCE 901 >-#define YY_MAX_REDUCE 1197 >-#define YY_ERROR_ACTION 1198 >-#define YY_ACCEPT_ACTION 1199 >-#define YY_NO_ACTION 1200 >+#define YY_MAX_SHIFT 407 >+#define YY_MIN_SHIFTREDUCE 603 >+#define YY_MAX_SHIFTREDUCE 899 >+#define YY_MIN_REDUCE 900 >+#define YY_MAX_REDUCE 1196 >+#define YY_ERROR_ACTION 1197 >+#define YY_ACCEPT_ACTION 1198 >+#define YY_NO_ACTION 1199 > /************* End control #defines *******************************************/ >  > /* Define the yytestcase() macro to be a no-op if is not already defined >@@ -396,149 +396,149 @@ typedef union { > ** yy_default[] Default action for each state. > ** > *********** Begin parsing tables **********************************************/ >-#define YY_ACTTAB_COUNT (1402) >+#define YY_ACTTAB_COUNT (1401) > static const YYACTIONTYPE yy_action[] = { >- /* 0 */ 91, 92, 285, 82, 771, 771, 783, 786, 775, 775, >- /* 10 */ 89, 89, 90, 90, 90, 90, 307, 88, 88, 88, >- /* 20 */ 88, 87, 87, 86, 86, 86, 85, 307, 90, 90, >+ /* 0 */ 91, 92, 284, 82, 770, 770, 782, 785, 774, 774, >+ /* 10 */ 89, 89, 90, 90, 90, 90, 306, 88, 88, 88, >+ /* 20 */ 88, 87, 87, 86, 86, 86, 85, 306, 90, 90, >  /* 30 */ 90, 90, 83, 88, 88, 88, 88, 87, 87, 86, >- /* 40 */ 86, 86, 85, 307, 208, 201, 885, 90, 90, 90, >+ /* 40 */ 86, 86, 85, 306, 208, 201, 884, 90, 90, 90, >  /* 50 */ 90, 122, 88, 88, 88, 88, 87, 87, 86, 86, >- /* 60 */ 86, 85, 307, 87, 87, 86, 86, 86, 85, 307, >- /* 70 */ 885, 86, 86, 86, 85, 307, 91, 92, 285, 82, >- /* 80 */ 771, 771, 783, 786, 775, 775, 89, 89, 90, 90, >- /* 90 */ 90, 90, 630, 88, 88, 88, 88, 87, 87, 86, >- /* 100 */ 86, 86, 85, 307, 91, 92, 285, 82, 771, 771, >- /* 110 */ 783, 786, 775, 775, 89, 89, 90, 90, 90, 90, >- /* 120 */ 287, 88, 88, 88, 88, 87, 87, 86, 86, 86, >- /* 130 */ 85, 307, 705, 91, 92, 285, 82, 771, 771, 783, >- /* 140 */ 786, 775, 775, 89, 89, 90, 90, 90, 90, 67, >+ /* 60 */ 86, 85, 306, 87, 87, 86, 86, 86, 85, 306, >+ /* 70 */ 884, 86, 86, 86, 85, 306, 91, 92, 284, 82, >+ /* 80 */ 770, 770, 782, 785, 774, 774, 89, 89, 90, 90, >+ /* 90 */ 90, 90, 629, 88, 88, 88, 88, 87, 87, 86, >+ /* 100 */ 86, 86, 85, 306, 91, 92, 284, 82, 770, 770, >+ /* 110 */ 782, 785, 774, 774, 89, 89, 90, 90, 90, 90, >+ /* 120 */ 286, 88, 88, 88, 88, 87, 87, 86, 86, 86, >+ /* 130 */ 85, 306, 704, 91, 92, 284, 82, 770, 770, 782, >+ /* 140 */ 785, 774, 774, 89, 89, 90, 90, 90, 90, 67, >  /* 150 */ 88, 88, 88, 88, 87, 87, 86, 86, 86, 85, >- /* 160 */ 307, 772, 772, 784, 787, 740, 93, 172, 280, 706, >- /* 170 */ 312, 278, 277, 276, 220, 274, 243, 633, 618, 721, >- /* 180 */ 722, 632, 91, 92, 285, 82, 771, 771, 783, 786, >- /* 190 */ 775, 775, 89, 89, 90, 90, 90, 90, 109, 88, >- /* 200 */ 88, 88, 88, 87, 87, 86, 86, 86, 85, 307, >+ /* 160 */ 306, 771, 771, 783, 786, 739, 93, 172, 279, 705, >+ /* 170 */ 311, 277, 276, 275, 220, 273, 242, 632, 617, 720, >+ /* 180 */ 721, 631, 91, 92, 284, 82, 770, 770, 782, 785, >+ /* 190 */ 774, 774, 89, 89, 90, 90, 90, 90, 109, 88, >+ /* 200 */ 88, 88, 88, 87, 87, 86, 86, 86, 85, 306, >  /* 210 */ 88, 88, 88, 88, 87, 87, 86, 86, 86, 85, >- /* 220 */ 307, 344, 165, 706, 341, 638, 286, 305, 304, 824, >- /* 230 */ 776, 91, 92, 285, 82, 771, 771, 783, 786, 775, >- /* 240 */ 775, 89, 89, 90, 90, 90, 90, 333, 88, 88, >- /* 250 */ 88, 88, 87, 87, 86, 86, 86, 85, 307, 182, >- /* 260 */ 743, 666, 645, 407, 407, 180, 313, 122, 137, 218, >- /* 270 */ 666, 119, 624, 624, 631, 679, 236, 330, 235, 877, >- /* 280 */ 91, 92, 285, 82, 771, 771, 783, 786, 775, 775, >- /* 290 */ 89, 89, 90, 90, 90, 90, 743, 88, 88, 88, >- /* 300 */ 88, 87, 87, 86, 86, 86, 85, 307, 22, 215, >- /* 310 */ 404, 183, 236, 320, 224, 761, 896, 754, 896, 54, >- /* 320 */ 749, 720, 705, 762, 122, 216, 366, 48, 48, 91, >- /* 330 */ 92, 285, 82, 771, 771, 783, 786, 775, 775, 89, >- /* 340 */ 89, 90, 90, 90, 90, 265, 88, 88, 88, 88, >- /* 350 */ 87, 87, 86, 86, 86, 85, 307, 753, 753, 755, >- /* 360 */ 223, 199, 382, 367, 356, 353, 352, 649, 84, 81, >- /* 370 */ 176, 699, 748, 1199, 408, 3, 351, 294, 91, 92, >- /* 380 */ 285, 82, 771, 771, 783, 786, 775, 775, 89, 89, >- /* 390 */ 90, 90, 90, 90, 317, 88, 88, 88, 88, 87, >- /* 400 */ 87, 86, 86, 86, 85, 307, 91, 92, 285, 82, >- /* 410 */ 771, 771, 783, 786, 775, 775, 89, 89, 90, 90, >- /* 420 */ 90, 90, 648, 88, 88, 88, 88, 87, 87, 86, >- /* 430 */ 86, 86, 85, 307, 91, 92, 285, 82, 771, 771, >- /* 440 */ 783, 786, 775, 775, 89, 89, 90, 90, 90, 90, >+ /* 220 */ 306, 343, 165, 705, 340, 637, 285, 304, 303, 823, >+ /* 230 */ 775, 91, 92, 284, 82, 770, 770, 782, 785, 774, >+ /* 240 */ 774, 89, 89, 90, 90, 90, 90, 332, 88, 88, >+ /* 250 */ 88, 88, 87, 87, 86, 86, 86, 85, 306, 182, >+ /* 260 */ 742, 665, 644, 406, 406, 180, 312, 122, 137, 218, >+ /* 270 */ 665, 119, 623, 623, 630, 678, 236, 329, 235, 876, >+ /* 280 */ 91, 92, 284, 82, 770, 770, 782, 785, 774, 774, >+ /* 290 */ 89, 89, 90, 90, 90, 90, 742, 88, 88, 88, >+ /* 300 */ 88, 87, 87, 86, 86, 86, 85, 306, 22, 215, >+ /* 310 */ 403, 183, 236, 319, 224, 760, 895, 753, 895, 54, >+ /* 320 */ 748, 719, 704, 761, 122, 216, 365, 48, 48, 91, >+ /* 330 */ 92, 284, 82, 770, 770, 782, 785, 774, 774, 89, >+ /* 340 */ 89, 90, 90, 90, 90, 264, 88, 88, 88, 88, >+ /* 350 */ 87, 87, 86, 86, 86, 85, 306, 752, 752, 754, >+ /* 360 */ 223, 199, 381, 366, 355, 352, 351, 648, 84, 81, >+ /* 370 */ 176, 698, 747, 1198, 407, 3, 350, 293, 91, 92, >+ /* 380 */ 284, 82, 770, 770, 782, 785, 774, 774, 89, 89, >+ /* 390 */ 90, 90, 90, 90, 316, 88, 88, 88, 88, 87, >+ /* 400 */ 87, 86, 86, 86, 85, 306, 91, 92, 284, 82, >+ /* 410 */ 770, 770, 782, 785, 774, 774, 89, 89, 90, 90, >+ /* 420 */ 90, 90, 647, 88, 88, 88, 88, 87, 87, 86, >+ /* 430 */ 86, 86, 85, 306, 91, 92, 284, 82, 770, 770, >+ /* 440 */ 782, 785, 774, 774, 89, 89, 90, 90, 90, 90, >  /* 450 */ 122, 88, 88, 88, 88, 87, 87, 86, 86, 86, >- /* 460 */ 85, 307, 91, 92, 285, 82, 771, 771, 783, 786, >- /* 470 */ 775, 775, 89, 89, 90, 90, 90, 90, 145, 88, >- /* 480 */ 88, 88, 88, 87, 87, 86, 86, 86, 85, 307, >- /* 490 */ 1150, 1150, 84, 81, 176, 70, 92, 285, 82, 771, >- /* 500 */ 771, 783, 786, 775, 775, 89, 89, 90, 90, 90, >- /* 510 */ 90, 647, 88, 88, 88, 88, 87, 87, 86, 86, >- /* 520 */ 86, 85, 307, 73, 207, 122, 402, 402, 402, 91, >- /* 530 */ 80, 285, 82, 771, 771, 783, 786, 775, 775, 89, >- /* 540 */ 89, 90, 90, 90, 90, 376, 88, 88, 88, 88, >- /* 550 */ 87, 87, 86, 86, 86, 85, 307, 285, 82, 771, >- /* 560 */ 771, 783, 786, 775, 775, 89, 89, 90, 90, 90, >+ /* 460 */ 85, 306, 91, 92, 284, 82, 770, 770, 782, 785, >+ /* 470 */ 774, 774, 89, 89, 90, 90, 90, 90, 145, 88, >+ /* 480 */ 88, 88, 88, 87, 87, 86, 86, 86, 85, 306, >+ /* 490 */ 1149, 1149, 84, 81, 176, 70, 92, 284, 82, 770, >+ /* 500 */ 770, 782, 785, 774, 774, 89, 89, 90, 90, 90, >+ /* 510 */ 90, 646, 88, 88, 88, 88, 87, 87, 86, 86, >+ /* 520 */ 86, 85, 306, 73, 207, 122, 401, 401, 401, 91, >+ /* 530 */ 80, 284, 82, 770, 770, 782, 785, 774, 774, 89, >+ /* 540 */ 89, 90, 90, 90, 90, 375, 88, 88, 88, 88, >+ /* 550 */ 87, 87, 86, 86, 86, 85, 306, 284, 82, 770, >+ /* 560 */ 770, 782, 785, 774, 774, 89, 89, 90, 90, 90, >  /* 570 */ 90, 78, 88, 88, 88, 88, 87, 87, 86, 86, >- /* 580 */ 86, 85, 307, 404, 306, 306, 306, 605, 310, 141, >- /* 590 */ 75, 76, 264, 624, 624, 692, 873, 77, 284, 315, >- /* 600 */ 48, 48, 305, 304, 640, 78, 265, 84, 81, 176, >- /* 610 */ 400, 2, 1097, 315, 314, 308, 308, 200, 199, 200, >- /* 620 */ 141, 356, 353, 352, 75, 76, 273, 624, 624, 281, >- /* 630 */ 404, 77, 389, 351, 387, 382, 372, 761, 303, 754, >- /* 640 */ 743, 1173, 749, 661, 400, 2, 404, 10, 10, 308, >- /* 650 */ 308, 891, 299, 895, 383, 373, 236, 330, 235, 371, >- /* 660 */ 893, 293, 894, 48, 48, 361, 389, 751, 348, 333, >- /* 670 */ 201, 761, 846, 754, 705, 315, 749, 296, 398, 753, >- /* 680 */ 753, 755, 756, 403, 18, 138, 847, 109, 404, 624, >- /* 690 */ 624, 896, 109, 896, 848, 672, 164, 122, 382, 384, >- /* 700 */ 374, 751, 673, 843, 122, 48, 48, 162, 174, 78, >- /* 710 */ 719, 843, 184, 753, 753, 755, 756, 403, 18, 886, >- /* 720 */ 886, 217, 155, 253, 359, 248, 358, 203, 75, 76, >- /* 730 */ 693, 122, 689, 189, 246, 77, 109, 688, 404, 328, >- /* 740 */ 382, 381, 870, 78, 109, 287, 363, 404, 400, 2, >- /* 750 */ 246, 85, 307, 308, 308, 30, 30, 84, 81, 176, >- /* 760 */ 331, 658, 75, 76, 48, 48, 870, 404, 331, 77, >- /* 770 */ 389, 887, 708, 23, 370, 761, 167, 754, 329, 109, >- /* 780 */ 749, 255, 400, 2, 10, 10, 340, 308, 308, 404, >- /* 790 */ 364, 9, 9, 216, 366, 404, 177, 177, 295, 382, >- /* 800 */ 362, 830, 830, 325, 389, 751, 48, 48, 369, 761, >- /* 810 */ 705, 754, 10, 10, 749, 659, 404, 753, 753, 755, >- /* 820 */ 756, 403, 18, 624, 624, 404, 198, 404, 339, 886, >- /* 830 */ 886, 671, 671, 48, 48, 316, 157, 156, 823, 751, >- /* 840 */ 823, 300, 47, 47, 10, 10, 66, 68, 185, 816, >- /* 850 */ 818, 753, 753, 755, 756, 403, 18, 95, 379, 146, >- /* 860 */ 404, 634, 634, 177, 177, 652, 75, 76, 377, 241, >- /* 870 */ 5, 357, 208, 77, 885, 369, 653, 34, 34, 643, >- /* 880 */ 339, 887, 707, 761, 404, 754, 400, 2, 749, 318, >- /* 890 */ 705, 308, 308, 706, 297, 229, 263, 705, 885, 404, >- /* 900 */ 24, 35, 35, 335, 624, 624, 806, 846, 389, 624, >- /* 910 */ 624, 816, 188, 761, 404, 754, 36, 36, 749, 240, >- /* 920 */ 178, 847, 404, 747, 404, 753, 753, 755, 849, 848, >- /* 930 */ 388, 37, 37, 404, 705, 321, 404, 669, 669, 38, >- /* 940 */ 38, 26, 26, 751, 404, 228, 165, 706, 404, 841, >- /* 950 */ 27, 27, 232, 29, 29, 753, 753, 755, 756, 403, >- /* 960 */ 18, 39, 39, 404, 234, 40, 40, 827, 264, 826, >- /* 970 */ 404, 705, 678, 404, 921, 323, 227, 404, 226, 404, >- /* 980 */ 41, 41, 109, 623, 288, 404, 324, 11, 11, 404, >- /* 990 */ 42, 42, 143, 404, 97, 97, 43, 43, 404, 747, >- /* 1000 */ 404, 257, 44, 44, 404, 339, 31, 31, 404, 674, >- /* 1010 */ 45, 45, 404, 747, 404, 46, 46, 32, 32, 404, >- /* 1020 */ 752, 112, 112, 252, 694, 113, 113, 404, 705, 114, >- /* 1030 */ 114, 52, 52, 404, 251, 404, 33, 33, 404, 677, >- /* 1040 */ 404, 208, 404, 885, 98, 98, 404, 624, 624, 259, >- /* 1050 */ 49, 49, 99, 99, 394, 100, 100, 96, 96, 111, >- /* 1060 */ 111, 404, 290, 108, 108, 404, 231, 885, 404, 747, >- /* 1070 */ 404, 747, 109, 404, 163, 404, 291, 404, 104, 104, >- /* 1080 */ 404, 169, 103, 103, 404, 101, 101, 102, 102, 191, >+ /* 580 */ 86, 85, 306, 403, 305, 305, 305, 604, 309, 141, >+ /* 590 */ 75, 76, 263, 623, 623, 691, 872, 77, 283, 314, >+ /* 600 */ 48, 48, 304, 303, 639, 78, 264, 84, 81, 176, >+ /* 610 */ 399, 2, 1096, 314, 313, 307, 307, 200, 199, 200, >+ /* 620 */ 141, 355, 352, 351, 75, 76, 272, 623, 623, 280, >+ /* 630 */ 403, 77, 388, 350, 386, 381, 371, 760, 302, 753, >+ /* 640 */ 742, 1172, 748, 660, 399, 2, 403, 10, 10, 307, >+ /* 650 */ 307, 890, 298, 894, 382, 372, 236, 329, 235, 370, >+ /* 660 */ 892, 292, 893, 48, 48, 360, 388, 750, 347, 332, >+ /* 670 */ 201, 760, 845, 753, 704, 314, 748, 295, 397, 752, >+ /* 680 */ 752, 754, 755, 402, 18, 138, 846, 109, 403, 623, >+ /* 690 */ 623, 895, 109, 895, 847, 671, 164, 122, 381, 383, >+ /* 700 */ 373, 750, 672, 842, 122, 48, 48, 162, 174, 78, >+ /* 710 */ 718, 842, 184, 752, 752, 754, 755, 402, 18, 885, >+ /* 720 */ 885, 217, 155, 252, 358, 247, 357, 203, 75, 76, >+ /* 730 */ 692, 122, 688, 189, 245, 77, 109, 687, 403, 327, >+ /* 740 */ 381, 380, 869, 78, 109, 286, 362, 403, 399, 2, >+ /* 750 */ 245, 85, 306, 307, 307, 30, 30, 84, 81, 176, >+ /* 760 */ 330, 657, 75, 76, 48, 48, 869, 403, 330, 77, >+ /* 770 */ 388, 886, 707, 23, 369, 760, 167, 753, 328, 109, >+ /* 780 */ 748, 254, 399, 2, 10, 10, 339, 307, 307, 403, >+ /* 790 */ 363, 9, 9, 216, 365, 403, 177, 177, 294, 381, >+ /* 800 */ 361, 829, 829, 324, 388, 750, 48, 48, 368, 760, >+ /* 810 */ 704, 753, 10, 10, 748, 658, 403, 752, 752, 754, >+ /* 820 */ 755, 402, 18, 623, 623, 403, 198, 403, 338, 885, >+ /* 830 */ 885, 670, 670, 48, 48, 315, 157, 156, 822, 750, >+ /* 840 */ 822, 299, 47, 47, 10, 10, 66, 68, 185, 815, >+ /* 850 */ 817, 752, 752, 754, 755, 402, 18, 95, 378, 146, >+ /* 860 */ 403, 633, 633, 177, 177, 651, 75, 76, 376, 240, >+ /* 870 */ 5, 356, 208, 77, 884, 368, 652, 34, 34, 642, >+ /* 880 */ 338, 886, 706, 760, 403, 753, 399, 2, 748, 317, >+ /* 890 */ 704, 307, 307, 705, 296, 229, 262, 704, 884, 403, >+ /* 900 */ 24, 35, 35, 334, 623, 623, 805, 845, 388, 623, >+ /* 910 */ 623, 815, 188, 760, 403, 753, 36, 36, 748, 239, >+ /* 920 */ 178, 846, 403, 746, 403, 752, 752, 754, 848, 847, >+ /* 930 */ 387, 37, 37, 403, 704, 320, 403, 668, 668, 38, >+ /* 940 */ 38, 26, 26, 750, 403, 228, 165, 705, 403, 840, >+ /* 950 */ 27, 27, 232, 29, 29, 752, 752, 754, 755, 402, >+ /* 960 */ 18, 39, 39, 403, 234, 40, 40, 826, 263, 825, >+ /* 970 */ 403, 704, 677, 403, 920, 322, 227, 403, 226, 403, >+ /* 980 */ 41, 41, 109, 622, 287, 403, 323, 11, 11, 403, >+ /* 990 */ 42, 42, 143, 403, 97, 97, 43, 43, 403, 746, >+ /* 1000 */ 403, 256, 44, 44, 403, 338, 31, 31, 403, 673, >+ /* 1010 */ 45, 45, 403, 746, 403, 46, 46, 32, 32, 403, >+ /* 1020 */ 751, 112, 112, 251, 693, 113, 113, 403, 704, 114, >+ /* 1030 */ 114, 52, 52, 403, 250, 403, 33, 33, 403, 676, >+ /* 1040 */ 403, 208, 403, 884, 98, 98, 403, 623, 623, 258, >+ /* 1050 */ 49, 49, 99, 99, 393, 100, 100, 96, 96, 111, >+ /* 1060 */ 111, 403, 289, 108, 108, 403, 231, 884, 403, 746, >+ /* 1070 */ 403, 746, 109, 403, 163, 403, 290, 403, 104, 104, >+ /* 1080 */ 403, 169, 103, 103, 403, 101, 101, 102, 102, 191, >  /* 1090 */ 51, 51, 53, 53, 50, 50, 107, 25, 25, 1, >- /* 1100 */ 628, 28, 28, 624, 624, 365, 681, 684, 684, 622, >- /* 1110 */ 161, 160, 159, 401, 288, 391, 395, 369, 399, 175, >- /* 1120 */ 174, 337, 721, 722, 628, 74, 884, 72, 689, 110, >- /* 1130 */ 262, 149, 292, 688, 301, 745, 20, 206, 332, 334, >- /* 1140 */ 206, 206, 109, 237, 64, 66, 651, 650, 109, 109, >- /* 1150 */ 349, 109, 212, 244, 822, 66, 822, 641, 641, 686, >- /* 1160 */ 715, 69, 206, 7, 813, 813, 338, 19, 735, 809, >- /* 1170 */ 626, 212, 106, 852, 757, 757, 319, 851, 153, 820, >- /* 1180 */ 289, 814, 225, 168, 233, 838, 840, 837, 336, 342, >- /* 1190 */ 343, 239, 354, 617, 242, 158, 662, 646, 247, 713, >- /* 1200 */ 645, 746, 261, 695, 250, 390, 811, 266, 810, 267, >- /* 1210 */ 272, 629, 154, 866, 615, 614, 616, 863, 135, 124, >- /* 1220 */ 117, 64, 322, 825, 732, 55, 327, 230, 347, 187, >- /* 1230 */ 147, 194, 144, 195, 126, 360, 196, 298, 643, 128, >- /* 1240 */ 665, 129, 130, 131, 345, 282, 664, 139, 663, 375, >- /* 1250 */ 63, 6, 742, 71, 842, 637, 302, 283, 636, 656, >- /* 1260 */ 94, 249, 635, 875, 380, 65, 805, 655, 378, 21, >- /* 1270 */ 864, 222, 607, 610, 309, 179, 819, 219, 279, 221, >- /* 1280 */ 405, 406, 612, 611, 608, 311, 123, 817, 181, 393, >- /* 1290 */ 741, 115, 397, 125, 120, 127, 186, 675, 116, 828, >- /* 1300 */ 703, 133, 206, 132, 836, 898, 254, 326, 136, 134, >- /* 1310 */ 105, 704, 256, 202, 702, 56, 57, 58, 258, 269, >- /* 1320 */ 701, 260, 685, 268, 270, 271, 59, 839, 121, 835, >- /* 1330 */ 791, 190, 192, 12, 209, 238, 8, 193, 148, 620, >- /* 1340 */ 346, 197, 140, 210, 211, 251, 350, 355, 654, 204, >- /* 1350 */ 118, 60, 13, 683, 245, 14, 61, 62, 170, 760, >- /* 1360 */ 759, 789, 15, 385, 687, 4, 714, 368, 171, 173, >- /* 1370 */ 205, 142, 69, 709, 166, 16, 66, 17, 804, 790, >- /* 1380 */ 788, 793, 845, 214, 844, 386, 856, 150, 392, 275, >- /* 1390 */ 857, 213, 151, 396, 792, 152, 604, 758, 627, 79, >- /* 1400 */ 1155, 621, >+ /* 1100 */ 627, 28, 28, 623, 623, 364, 680, 683, 683, 621, >+ /* 1110 */ 161, 160, 159, 400, 287, 390, 394, 368, 398, 175, >+ /* 1120 */ 174, 336, 720, 721, 627, 74, 883, 72, 688, 110, >+ /* 1130 */ 261, 149, 291, 687, 300, 744, 20, 206, 331, 333, >+ /* 1140 */ 206, 206, 109, 804, 64, 66, 650, 649, 109, 109, >+ /* 1150 */ 348, 109, 212, 243, 821, 66, 821, 640, 640, 685, >+ /* 1160 */ 714, 69, 206, 7, 812, 812, 337, 19, 734, 808, >+ /* 1170 */ 625, 212, 106, 851, 756, 756, 318, 850, 153, 819, >+ /* 1180 */ 288, 813, 225, 168, 233, 837, 839, 836, 335, 341, >+ /* 1190 */ 342, 238, 353, 616, 241, 158, 661, 645, 246, 712, >+ /* 1200 */ 644, 745, 260, 694, 249, 389, 810, 265, 809, 266, >+ /* 1210 */ 271, 628, 154, 865, 614, 613, 615, 862, 135, 124, >+ /* 1220 */ 117, 64, 321, 824, 731, 55, 326, 230, 346, 187, >+ /* 1230 */ 147, 194, 144, 195, 126, 359, 196, 297, 642, 128, >+ /* 1240 */ 664, 129, 130, 131, 344, 281, 663, 139, 662, 374, >+ /* 1250 */ 63, 6, 741, 71, 841, 636, 301, 282, 635, 655, >+ /* 1260 */ 94, 248, 634, 874, 379, 65, 654, 21, 377, 863, >+ /* 1270 */ 222, 606, 609, 308, 179, 310, 123, 278, 219, 221, >+ /* 1280 */ 404, 702, 405, 611, 392, 818, 610, 607, 816, 181, >+ /* 1290 */ 115, 396, 740, 125, 120, 116, 127, 186, 674, 827, >+ /* 1300 */ 253, 206, 132, 897, 105, 202, 133, 703, 835, 325, >+ /* 1310 */ 255, 134, 136, 701, 700, 56, 57, 270, 257, 259, >+ /* 1320 */ 684, 267, 268, 269, 58, 59, 121, 838, 190, 192, >+ /* 1330 */ 790, 834, 8, 209, 12, 237, 619, 193, 148, 345, >+ /* 1340 */ 197, 140, 210, 211, 250, 349, 354, 653, 60, 13, >+ /* 1350 */ 204, 244, 14, 61, 62, 118, 682, 170, 759, 758, >+ /* 1360 */ 788, 15, 205, 686, 4, 713, 367, 171, 173, 142, >+ /* 1370 */ 708, 69, 384, 16, 66, 803, 17, 789, 385, 787, >+ /* 1380 */ 792, 844, 843, 166, 391, 855, 150, 151, 213, 856, >+ /* 1390 */ 274, 152, 395, 791, 757, 626, 79, 214, 620, 603, >+ /* 1400 */ 1154, > }; > static const YYCODETYPE yy_lookahead[] = { >  /* 0 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, >@@ -667,24 +667,24 @@ static const YYCODETYPE yy_lookahead[] = { >  /* 1230 */ 209, 148, 47, 148, 177, 84, 148, 63, 83, 180, >  /* 1240 */ 162, 180, 180, 180, 165, 165, 162, 177, 162, 106, >  /* 1250 */ 84, 47, 177, 121, 189, 162, 32, 165, 164, 170, >- /* 1260 */ 112, 162, 162, 162, 107, 111, 189, 170, 110, 50, >- /* 1270 */ 40, 35, 4, 36, 3, 42, 48, 144, 141, 144, >- /* 1280 */ 150, 142, 142, 142, 142, 72, 43, 48, 101, 165, >- /* 1290 */ 99, 153, 165, 114, 88, 102, 84, 46, 153, 127, >- /* 1300 */ 204, 84, 50, 127, 1, 130, 203, 129, 114, 102, >- /* 1310 */ 166, 204, 203, 166, 204, 16, 16, 16, 203, 191, >- /* 1320 */ 204, 203, 193, 192, 190, 189, 16, 52, 88, 1, >- /* 1330 */ 213, 105, 101, 47, 215, 124, 34, 84, 49, 46, >- /* 1340 */ 7, 82, 47, 218, 218, 89, 66, 66, 54, 66, >- /* 1350 */ 60, 47, 47, 95, 48, 47, 47, 50, 101, 48, >- /* 1360 */ 48, 48, 47, 75, 48, 47, 52, 50, 48, 48, >- /* 1370 */ 105, 47, 50, 104, 47, 105, 50, 105, 48, 48, >- /* 1380 */ 48, 38, 48, 101, 48, 50, 48, 47, 49, 42, >- /* 1390 */ 48, 50, 47, 49, 48, 47, 1, 48, 48, 47, >- /* 1400 */ 0, 48, >+ /* 1260 */ 112, 162, 162, 162, 107, 111, 170, 50, 110, 40, >+ /* 1270 */ 35, 4, 36, 3, 42, 72, 43, 141, 144, 144, >+ /* 1280 */ 150, 204, 142, 142, 165, 48, 142, 142, 48, 101, >+ /* 1290 */ 153, 165, 99, 114, 88, 153, 102, 84, 46, 127, >+ /* 1300 */ 203, 50, 127, 130, 166, 166, 84, 204, 1, 129, >+ /* 1310 */ 203, 102, 114, 204, 204, 16, 16, 189, 203, 203, >+ /* 1320 */ 193, 192, 191, 190, 16, 16, 88, 52, 105, 101, >+ /* 1330 */ 213, 1, 34, 215, 47, 124, 46, 84, 49, 7, >+ /* 1340 */ 82, 47, 218, 218, 89, 66, 66, 54, 47, 47, >+ /* 1350 */ 66, 48, 47, 47, 50, 60, 95, 101, 48, 48, >+ /* 1360 */ 48, 47, 105, 48, 47, 52, 50, 48, 48, 47, >+ /* 1370 */ 104, 50, 75, 105, 50, 48, 105, 48, 50, 48, >+ /* 1380 */ 38, 48, 48, 47, 49, 48, 47, 47, 50, 48, >+ /* 1390 */ 42, 47, 49, 48, 48, 48, 47, 101, 48, 1, >+ /* 1400 */ 0, > }; >-#define YY_SHIFT_USE_DFLT (1402) >-#define YY_SHIFT_COUNT (408) >+#define YY_SHIFT_USE_DFLT (1401) >+#define YY_SHIFT_COUNT (407) > #define YY_SHIFT_MIN (-82) > #define YY_SHIFT_MAX (1400) > static const short yy_shift_ofst[] = { >@@ -699,11 +699,11 @@ static const short yy_shift_ofst[] = { >  /* 80 */ 736, 736, 840, 736, 736, 736, 736, 736, 736, 736, >  /* 90 */ 736, 736, 736, 736, 736, 736, 11, 30, 30, 30, >  /* 100 */ 30, 30, 188, 37, 43, 661, 201, 201, 720, 695, >- /* 110 */ 772, -16, 1402, 1402, 1402, 645, 645, 633, 633, 826, >+ /* 110 */ 772, -16, 1401, 1401, 1401, 645, 645, 633, 633, 826, >  /* 120 */ 221, 221, 858, 772, 317, 772, 772, 772, 772, 772, >  /* 130 */ 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, >  /* 140 */ 772, 691, 772, 772, 772, 691, 695, -82, -82, -82, >- /* 150 */ -82, -82, -82, 1402, 1402, 810, 242, 242, 285, 806, >+ /* 150 */ -82, -82, -82, 1401, 1401, 810, 242, 242, 285, 806, >  /* 160 */ 806, 806, 119, 823, 668, 778, 868, 716, 911, 638, >  /* 170 */ 996, 992, 992, 992, 853, 843, 1052, 1011, 637, 772, >  /* 180 */ 772, 772, 772, 1031, 648, 648, 772, 772, 1114, 1031, >@@ -711,29 +711,29 @@ static const short yy_shift_ofst[] = { >  /* 200 */ 593, 772, 36, 772, 1014, 772, 772, 648, 772, 1004, >  /* 210 */ 1014, 1014, 772, 772, 772, 1076, 1033, 772, 1082, 772, >  /* 220 */ 772, 772, 772, 1171, 1215, 1108, 1177, 1177, 1177, 1177, >- /* 230 */ 1104, 1098, 1183, 1108, 1171, 1215, 1215, 1108, 1183, 1185, >- /* 240 */ 1183, 1183, 1185, 1151, 1151, 1151, 1174, 1185, 1151, 1155, >- /* 250 */ 1151, 1174, 1151, 1151, 1143, 1166, 1143, 1166, 1143, 1166, >- /* 260 */ 1143, 1166, 1204, 1132, 1185, 1224, 1224, 1185, 1148, 1157, >- /* 270 */ 1154, 1158, 1108, 1219, 1230, 1230, 1236, 1236, 1236, 1236, >- /* 280 */ 1237, 1402, 1402, 1402, 1402, 152, 852, 1025, 1049, 1120, >- /* 290 */ 1087, 1090, 1091, 1095, 1102, 1105, 1106, 1069, 725, 945, >- /* 300 */ 1111, 1112, 1113, 1121, 723, 1039, 1122, 1123, 873, 1268, >- /* 310 */ 1271, 1233, 1213, 1243, 1228, 1239, 1187, 1191, 1179, 1206, >- /* 320 */ 1193, 1212, 1251, 1172, 1252, 1176, 1175, 1178, 1217, 1303, >- /* 330 */ 1207, 1194, 1299, 1300, 1301, 1310, 1240, 1275, 1226, 1231, >- /* 340 */ 1328, 1302, 1286, 1253, 1211, 1289, 1293, 1333, 1256, 1259, >- /* 350 */ 1295, 1280, 1304, 1305, 1306, 1308, 1281, 1294, 1309, 1283, >- /* 360 */ 1290, 1311, 1312, 1313, 1307, 1258, 1315, 1316, 1318, 1317, >- /* 370 */ 1257, 1320, 1321, 1314, 1265, 1324, 1269, 1322, 1270, 1326, >- /* 380 */ 1272, 1330, 1322, 1331, 1332, 1334, 1288, 1335, 1336, 1327, >- /* 390 */ 1343, 1338, 1340, 1339, 1341, 1342, 1345, 1344, 1341, 1346, >- /* 400 */ 1348, 1349, 1350, 1352, 1282, 1353, 1347, 1395, 1400, >+ /* 230 */ 1104, 1098, 1183, 1108, 1171, 1215, 1215, 1183, 1185, 1183, >+ /* 240 */ 1183, 1185, 1151, 1151, 1151, 1174, 1185, 1151, 1155, 1151, >+ /* 250 */ 1174, 1151, 1151, 1143, 1166, 1143, 1166, 1143, 1166, 1143, >+ /* 260 */ 1166, 1204, 1132, 1185, 1224, 1224, 1185, 1148, 1157, 1154, >+ /* 270 */ 1158, 1108, 1217, 1229, 1229, 1235, 1235, 1235, 1235, 1236, >+ /* 280 */ 1401, 1401, 1401, 1401, 152, 852, 1025, 1049, 1120, 1087, >+ /* 290 */ 1090, 1091, 1095, 1102, 1105, 1106, 1069, 725, 945, 1111, >+ /* 300 */ 1112, 1113, 1121, 723, 1039, 1122, 1123, 873, 1267, 1270, >+ /* 310 */ 1232, 1203, 1233, 1237, 1240, 1188, 1193, 1179, 1206, 1194, >+ /* 320 */ 1213, 1252, 1172, 1251, 1175, 1173, 1180, 1222, 1307, 1209, >+ /* 330 */ 1198, 1299, 1300, 1308, 1309, 1238, 1275, 1223, 1228, 1330, >+ /* 340 */ 1298, 1287, 1253, 1211, 1289, 1290, 1332, 1255, 1258, 1294, >+ /* 350 */ 1279, 1301, 1302, 1303, 1305, 1280, 1293, 1306, 1284, 1295, >+ /* 360 */ 1310, 1311, 1312, 1304, 1261, 1314, 1315, 1317, 1316, 1256, >+ /* 370 */ 1319, 1320, 1313, 1257, 1322, 1266, 1321, 1268, 1324, 1271, >+ /* 380 */ 1327, 1321, 1329, 1331, 1333, 1297, 1328, 1334, 1336, 1342, >+ /* 390 */ 1337, 1339, 1335, 1338, 1341, 1340, 1343, 1338, 1345, 1344, >+ /* 400 */ 1346, 1347, 1349, 1296, 1350, 1348, 1398, 1400, > }; > #define YY_REDUCE_USE_DFLT (-69) >-#define YY_REDUCE_COUNT (284) >+#define YY_REDUCE_COUNT (283) > #define YY_REDUCE_MIN (-68) >-#define YY_REDUCE_MAX (1147) >+#define YY_REDUCE_MAX (1145) > static const short yy_reduce_ofst[] = { >  /* 0 */ 237, 503, 595, 124, 167, 440, 545, 604, 552, 397, >  /* 10 */ 158, 547, 487, 624, 652, 646, 673, 684, 682, 456, >@@ -758,55 +758,55 @@ static const short yy_reduce_ofst[] = { >  /* 200 */ 1023, 1054, 1032, 1055, 1041, 1056, 1058, 1000, 1060, 989, >  /* 210 */ 1043, 1045, 1064, 1066, 877, 1022, 1026, 1068, 1067, 1071, >  /* 220 */ 1072, 1073, 1074, 1010, 1057, 1035, 1059, 1061, 1062, 1063, >- /* 230 */ 998, 1003, 1081, 1065, 1021, 1070, 1075, 1077, 1083, 1079, >- /* 240 */ 1085, 1088, 1080, 1078, 1084, 1086, 1089, 1092, 1093, 1094, >- /* 250 */ 1099, 1097, 1100, 1101, 1096, 1103, 1107, 1109, 1110, 1115, >- /* 260 */ 1116, 1118, 1117, 1119, 1124, 1125, 1126, 1127, 1129, 1131, >- /* 270 */ 1128, 1134, 1136, 1130, 1133, 1135, 1139, 1140, 1141, 1142, >- /* 280 */ 1137, 1138, 1144, 1147, 1145, >+ /* 230 */ 998, 1003, 1081, 1065, 1021, 1070, 1075, 1083, 1079, 1085, >+ /* 240 */ 1088, 1080, 1078, 1084, 1086, 1089, 1092, 1093, 1094, 1099, >+ /* 250 */ 1096, 1100, 1101, 1077, 1097, 1103, 1107, 1109, 1115, 1110, >+ /* 260 */ 1116, 1117, 1118, 1119, 1124, 1125, 1126, 1127, 1129, 1131, >+ /* 270 */ 1133, 1128, 1130, 1134, 1135, 1140, 1141, 1144, 1145, 1136, >+ /* 280 */ 1137, 1138, 1139, 1142, > }; > static const YYACTIONTYPE yy_default[] = { >- /* 0 */ 1156, 1150, 1150, 1150, 1097, 1097, 1097, 1097, 1150, 993, >- /* 10 */ 1020, 1020, 1198, 1198, 1198, 1198, 1198, 1198, 1096, 1198, >- /* 20 */ 1198, 1198, 1198, 1150, 997, 1026, 1198, 1198, 1198, 1098, >- /* 30 */ 1099, 1198, 1198, 1198, 1131, 1036, 1035, 1034, 1033, 1007, >- /* 40 */ 1031, 1024, 1028, 1098, 1092, 1093, 1091, 1095, 1099, 1198, >- /* 50 */ 1027, 1061, 1076, 1060, 1198, 1198, 1198, 1198, 1198, 1198, >- /* 60 */ 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, >- /* 70 */ 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, >- /* 80 */ 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, >- /* 90 */ 1198, 1198, 1198, 1198, 1198, 1198, 1070, 1075, 1082, 1074, >- /* 100 */ 1071, 1063, 1062, 1064, 1065, 964, 1198, 1198, 1066, 1198, >- /* 110 */ 1198, 1067, 1079, 1078, 1077, 1165, 1164, 1198, 1198, 1104, >- /* 120 */ 1198, 1198, 1198, 1198, 1150, 1198, 1198, 1198, 1198, 1198, >- /* 130 */ 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, >- /* 140 */ 1198, 922, 1198, 1198, 1198, 922, 1198, 1150, 1150, 1150, >- /* 150 */ 1150, 1150, 1150, 997, 988, 1198, 1198, 1198, 1198, 1198, >- /* 160 */ 1198, 1198, 1198, 993, 1198, 1198, 1198, 1198, 1126, 1198, >- /* 170 */ 1198, 993, 993, 993, 1198, 995, 1198, 977, 987, 1198, >- /* 180 */ 1147, 1198, 1118, 1030, 1009, 1009, 1198, 1198, 1197, 1030, >- /* 190 */ 1198, 1197, 1198, 1198, 1198, 1198, 1198, 1198, 939, 1198, >- /* 200 */ 1176, 1198, 936, 1198, 1020, 1198, 1198, 1009, 1198, 1094, >- /* 210 */ 1020, 1020, 1198, 1198, 1198, 994, 987, 1198, 1198, 1198, >- /* 220 */ 1198, 1198, 1159, 1041, 967, 1030, 973, 973, 973, 973, >- /* 230 */ 1130, 1194, 916, 1030, 1041, 967, 967, 1030, 916, 1105, >- /* 240 */ 916, 916, 1105, 965, 965, 965, 954, 1105, 965, 939, >- /* 250 */ 965, 954, 965, 965, 1013, 1008, 1013, 1008, 1013, 1008, >- /* 260 */ 1013, 1008, 1100, 1198, 1105, 1109, 1109, 1105, 1025, 1014, >- /* 270 */ 1023, 1021, 1030, 957, 1162, 1162, 1158, 1158, 1158, 1158, >- /* 280 */ 906, 1171, 941, 941, 1171, 1198, 1198, 1198, 1166, 1112, >- /* 290 */ 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, >- /* 300 */ 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1047, 1198, >- /* 310 */ 903, 1198, 1198, 1198, 1198, 1198, 1189, 1198, 1198, 1198, >- /* 320 */ 1198, 1198, 1198, 1198, 1129, 1128, 1198, 1198, 1198, 1198, >- /* 330 */ 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1196, >- /* 340 */ 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, >- /* 350 */ 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, >- /* 360 */ 1198, 1198, 1198, 1198, 1198, 979, 1198, 1198, 1198, 1180, >- /* 370 */ 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1022, 1198, 1015, >- /* 380 */ 1198, 1198, 1186, 1198, 1198, 1198, 1198, 1198, 1198, 1198, >- /* 390 */ 1198, 1198, 1198, 1198, 1152, 1198, 1198, 1198, 1151, 1198, >- /* 400 */ 1198, 1198, 1198, 1198, 1198, 1198, 910, 1198, 1198, >+ /* 0 */ 1155, 1149, 1149, 1149, 1096, 1096, 1096, 1096, 1149, 992, >+ /* 10 */ 1019, 1019, 1197, 1197, 1197, 1197, 1197, 1197, 1095, 1197, >+ /* 20 */ 1197, 1197, 1197, 1149, 996, 1025, 1197, 1197, 1197, 1097, >+ /* 30 */ 1098, 1197, 1197, 1197, 1130, 1035, 1034, 1033, 1032, 1006, >+ /* 40 */ 1030, 1023, 1027, 1097, 1091, 1092, 1090, 1094, 1098, 1197, >+ /* 50 */ 1026, 1060, 1075, 1059, 1197, 1197, 1197, 1197, 1197, 1197, >+ /* 60 */ 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, >+ /* 70 */ 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, >+ /* 80 */ 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, >+ /* 90 */ 1197, 1197, 1197, 1197, 1197, 1197, 1069, 1074, 1081, 1073, >+ /* 100 */ 1070, 1062, 1061, 1063, 1064, 963, 1197, 1197, 1065, 1197, >+ /* 110 */ 1197, 1066, 1078, 1077, 1076, 1164, 1163, 1197, 1197, 1103, >+ /* 120 */ 1197, 1197, 1197, 1197, 1149, 1197, 1197, 1197, 1197, 1197, >+ /* 130 */ 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, >+ /* 140 */ 1197, 921, 1197, 1197, 1197, 921, 1197, 1149, 1149, 1149, >+ /* 150 */ 1149, 1149, 1149, 996, 987, 1197, 1197, 1197, 1197, 1197, >+ /* 160 */ 1197, 1197, 1197, 992, 1197, 1197, 1197, 1197, 1125, 1197, >+ /* 170 */ 1197, 992, 992, 992, 1197, 994, 1197, 976, 986, 1197, >+ /* 180 */ 1146, 1197, 1117, 1029, 1008, 1008, 1197, 1197, 1196, 1029, >+ /* 190 */ 1197, 1196, 1197, 1197, 1197, 1197, 1197, 1197, 938, 1197, >+ /* 200 */ 1175, 1197, 935, 1197, 1019, 1197, 1197, 1008, 1197, 1093, >+ /* 210 */ 1019, 1019, 1197, 1197, 1197, 993, 986, 1197, 1197, 1197, >+ /* 220 */ 1197, 1197, 1158, 1040, 966, 1029, 972, 972, 972, 972, >+ /* 230 */ 1129, 1193, 915, 1029, 1040, 966, 966, 915, 1104, 915, >+ /* 240 */ 915, 1104, 964, 964, 964, 953, 1104, 964, 938, 964, >+ /* 250 */ 953, 964, 964, 1012, 1007, 1012, 1007, 1012, 1007, 1012, >+ /* 260 */ 1007, 1099, 1197, 1104, 1108, 1108, 1104, 1024, 1013, 1022, >+ /* 270 */ 1020, 1029, 956, 1161, 1161, 1157, 1157, 1157, 1157, 905, >+ /* 280 */ 1170, 940, 940, 1170, 1197, 1197, 1197, 1165, 1111, 1197, >+ /* 290 */ 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, >+ /* 300 */ 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1046, 1197, 902, >+ /* 310 */ 1197, 1197, 1197, 1197, 1197, 1188, 1197, 1197, 1197, 1197, >+ /* 320 */ 1197, 1197, 1197, 1128, 1127, 1197, 1197, 1197, 1197, 1197, >+ /* 330 */ 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1195, 1197, >+ /* 340 */ 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, >+ /* 350 */ 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, >+ /* 360 */ 1197, 1197, 1197, 1197, 978, 1197, 1197, 1197, 1179, 1197, >+ /* 370 */ 1197, 1197, 1197, 1197, 1197, 1197, 1021, 1197, 1014, 1197, >+ /* 380 */ 1197, 1185, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, >+ /* 390 */ 1197, 1197, 1197, 1151, 1197, 1197, 1197, 1150, 1197, 1197, >+ /* 400 */ 1197, 1197, 1197, 1197, 1197, 909, 1197, 1197, > }; > /********** End of lemon-generated parsing tables *****************************/ >  >@@ -1252,7 +1252,7 @@ static const char *const yyRuleName[] = { >  /* 198 */ "nexprlist ::= expr", >  /* 199 */ "paren_exprlist ::=", >  /* 200 */ "paren_exprlist ::= LP exprlist RP", >- /* 201 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm ON nm LP sortlist RP where_opt", >+ /* 201 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm ON nm LP sortlist RP", >  /* 202 */ "uniqueflag ::= UNIQUE", >  /* 203 */ "uniqueflag ::=", >  /* 204 */ "eidlist_opt ::=", >@@ -1995,7 +1995,7 @@ static const struct { >   { 195, 1 }, >   { 213, 0 }, >   { 213, 3 }, >- { 140, 11 }, >+ { 140, 10 }, >   { 217, 1 }, >   { 217, 0 }, >   { 165, 0 }, >@@ -3400,12 +3400,12 @@ static void yy_reduce( > {yymsp[-2].minor.yy382 = yymsp[-1].minor.yy382;} > #line 3402 "parse.c" >         break; >- case 201: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm ON nm LP sortlist RP where_opt */ >+ case 201: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm ON nm LP sortlist RP */ > #line 1244 "parse.y" > { >- sqlite3CreateIndex(pParse, &yymsp[-6].minor.yy0, >- sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0), yymsp[-2].minor.yy382, yymsp[-9].minor.yy52, >- &yymsp[-10].minor.yy0, yymsp[0].minor.yy362, SQLITE_SO_ASC, yymsp[-7].minor.yy52, SQLITE_IDXTYPE_APPDEF); >+ sqlite3CreateIndex(pParse, &yymsp[-5].minor.yy0, >+ sqlite3SrcListAppend(pParse->db,0,&yymsp[-3].minor.yy0), yymsp[-1].minor.yy382, yymsp[-8].minor.yy52, >+ &yymsp[-9].minor.yy0, 0, SQLITE_SO_ASC, yymsp[-6].minor.yy52, SQLITE_IDXTYPE_APPDEF); > } > #line 3411 "parse.c" >         break; >diff --git a/src/box/sql/parse.y b/src/box/sql/parse.y >index b078e20..e0b5a2e 100644 >--- a/src/box/sql/parse.y >+++ b/src/box/sql/parse.y >@@ -1241,10 +1241,10 @@ paren_exprlist(A) ::= LP exprlist(X) RP. {A = X;} > ///////////////////////////// The CREATE INDEX command /////////////////////// > // > cmd ::= createkw(S) uniqueflag(U) INDEX ifnotexists(NE) nm(X) >- ON nm(Y) LP sortlist(Z) RP where_opt(W). { >+ ON nm(Y) LP sortlist(Z) RP. { >   sqlite3CreateIndex(pParse, &X, >                      sqlite3SrcListAppend(pParse->db,0,&Y), Z, U, >- &S, W, SQLITE_SO_ASC, NE, SQLITE_IDXTYPE_APPDEF); >+ &S, 0, SQLITE_SO_ASC, NE, SQLITE_IDXTYPE_APPDEF); > } >  > %type uniqueflag {int} >diff --git a/test/sql-tap/analyze9.test.lua b/test/sql-tap/analyze9.test.lua >index 4ce575e..3668211 100755 >--- a/test/sql-tap/analyze9.test.lua >+++ b/test/sql-tap/analyze9.test.lua >@@ -1111,7 +1111,7 @@ test:do_test( >         test:execsql([[ >             DROP TABLE IF EXISTS t1; >             CREATE TABLE t1(id INTEGER PRIMARY KEY AUTOINCREMENT, a, b, c, d); >- CREATE INDEX i1 ON t1(a, b) WHERE d IS NOT NULL; >+ CREATE INDEX i1 ON t1(a, b); >             INSERT INTO t1 VALUES(null, -1, -1, -1, NULL); >             INSERT INTO t1 SELECT null, 2*a,2*b,2*c,d FROM t1; >             INSERT INTO t1 SELECT null, 2*a,2*b,2*c,d FROM t1; >diff --git a/test/sql-tap/autoindex4.test.lua b/test/sql-tap/autoindex4.test.lua >index 45bae48..a567c5e 100755 >--- a/test/sql-tap/autoindex4.test.lua >+++ b/test/sql-tap/autoindex4.test.lua >@@ -111,7 +111,7 @@ test:do_execsql_test( > test:do_execsql_test( >     "autoindex4-3.1", >     [[ >- CREATE INDEX Items_x1 ON Items(ItemName,Name) WHERE ItemName = 'dummy'; >+ CREATE INDEX Items_x1 ON Items(ItemName,Name); >  >         SELECT Items.ItemName >           FROM Items >diff --git a/test/sql-tap/fkey1.test.lua b/test/sql-tap/fkey1.test.lua >index 8749e1f..bca82d9 100755 >--- a/test/sql-tap/fkey1.test.lua >+++ b/test/sql-tap/fkey1.test.lua >@@ -212,7 +212,7 @@ test:do_execsql_test( >     "fkey1-6.1", >     [[ >         CREATE TABLE p1(id PRIMARY KEY, x, y); >- CREATE UNIQUE INDEX p1x ON p1(x) WHERE y<2; >+ CREATE INDEX p1x ON p1(x); >         INSERT INTO p1 VALUES(1, 1, 1); >         CREATE TABLE c1(a PRIMARY KEY REFERENCES p1(x)); >     ]], { >diff --git a/test/sql-tap/gh-2165-remove-support-partial-indexes.test.lua b/test/sql-tap/gh-2165-remove-support-partial-indexes.test.lua >new file mode 100644 >index 0000000..d8210fc >--- /dev/null >+++ b/test/sql-tap/gh-2165-remove-support-partial-indexes.test.lua >@@ -0,0 +1,17 @@ >+#!/usr/bin/env tarantool >+test = require("sqltester") >+ >+test:plan(1) >+ >+ >+test:do_catchsql_test( >+ "partial-index-1", >+ [[ >+ CREATE TABLE t1 (a INTEGER PRIMARY KEY, b INTEGER) >+ CREATE UNIQUE INDEX i ON t1 (a) WHERE a = 3; >+ ]], { >+ 1, "keyword \"CREATE\" is reserved" >+ }) >+ >+--This test intended to be deleted in #2626 >+test:finish_test() >diff --git a/test/sql-tap/index6.test.lua b/test/sql-tap/index6.test.lua >index 2aa97e8..069623f 100755 >--- a/test/sql-tap/index6.test.lua >+++ b/test/sql-tap/index6.test.lua >@@ -225,7 +225,7 @@ test:do_execsql_test( >     "index6-6.0", >     [[ >         CREATE TABLE t6(a,b, PRIMARY KEY (a,b)); >- CREATE INDEX t6b ON t6(b) WHERE b=1; >+ CREATE INDEX t6b ON t6(b); >         INSERT INTO t6(a,b) VALUES(123,456); >         SELECT * FROM t6; >     ]], { >@@ -262,7 +262,7 @@ test:do_execsql_test( >         CREATE TABLE t7a(id primary key, x); >         CREATE TABLE t7b(id primary key, y); >         INSERT INTO t7a VALUES(1, 1); >- CREATE INDEX t7ax ON t7a(x) WHERE x=99; >+ CREATE INDEX t7ax ON t7a(x); >         SELECT x,y FROM t7a LEFT JOIN t7b ON (x=99) ORDER BY x; >     ]], { >         -- >@@ -318,7 +318,7 @@ test:do_execsql_test( >     [[ >         CREATE TABLE t8a(id primary key, a,b); >         CREATE TABLE t8b(id primary key, x,y); >- CREATE INDEX i8c ON t8b(y) WHERE x = 'value'; >+ CREATE INDEX i8c ON t8b(y); >  >         INSERT INTO t8a VALUES(1, 1, 'one'); >         INSERT INTO t8a VALUES(2, 2, 'two'); >@@ -364,7 +364,7 @@ if (0 > 0) >         "index6-9.1", >         [[ >             CREATE TABLE t9(a int, b int, c int); >- CREATE INDEX t9ca ON t9(c,a) WHERE a in (10,12,20); >+ CREATE INDEX t9ca ON t9(c,a); >             INSERT INTO t9 VALUES(1,1,9),(10,2,35),(11,15,82),(20,19,5),(NULL,7,3); >             UPDATE t9 SET b=c WHERE a in (10,12,20); >             SELECT a,b,c,'|' FROM t9 ORDER BY a; >@@ -379,7 +379,7 @@ test:do_execsql_test( >     [[ >         --DROP TABLE t9; >         CREATE TABLE t9(a int, b int, c int, PRIMARY KEY(a)); >- CREATE INDEX t9ca ON t9(c,a) WHERE a in (10,12,20); >+ CREATE INDEX t9ca ON t9(c,a); >         INSERT INTO t9 VALUES(1,1,9),(10,2,35),(11,15,82),(20,19,5); >         UPDATE t9 SET b=c WHERE a in (10,12,20); >         SELECT a,b,c,'|' FROM t9 ORDER BY a; >@@ -400,7 +400,7 @@ test:do_execsql_test( >           (2,3,4,5,6), >           (3,4,5,6,7), >           (1,2,3,8,9); >- CREATE INDEX t10x ON t10(d) WHERE a=1 AND b=2 AND c=3; >+ CREATE INDEX t10x ON t10(d); >         SELECT e FROM t10 WHERE a=1 AND b=2 AND c=3 ORDER BY d; >     ]], { >         -- >diff --git a/test/sql-tap/index7.test.lua b/test/sql-tap/index7.test.lua >index c8f56eb..c194859 100755 >--- a/test/sql-tap/index7.test.lua >+++ b/test/sql-tap/index7.test.lua >@@ -1,6 +1,6 @@ > #!/usr/bin/env tarantool > test = require("sqltester") >-test:plan(5) >+test:plan(4) >  > --!./tcltestrunner.lua > -- 2013-11-04 >@@ -261,7 +261,7 @@ test:do_execsql_test( > test:do_execsql_test( >     "index7-6.2", >     [[ >- CREATE INDEX i4 ON t4(c) WHERE d='xyz'; >+ CREATE INDEX i4 ON t4(c); >         SELECT a,b,c,d FROM (SELECT a,b FROM t5 WHERE a=1 AND b='xyz'), t4 WHERE c='abc'; >     ]], { >         -- >@@ -291,14 +291,15 @@ test:do_eqp_test( >         -- >     }) >  >-test:do_catchsql_test( >- "index7-6.5", >- [[ >- CREATE INDEX t5a ON t5(a) WHERE a=#1; >- ]], { >- -- >- 1, [[near "#1": syntax error]] >- -- >- }) >- >+--test:do_catchsql_test( >+-- "index7-6.5", >+-- [[ >+-- CREATE INDEX t5a ON t5(a) WHERE a=#1; >+-- ]], { >+-- -- >+-- 1, [[near "#1": syntax error]] >+-- -- >+-- }) >+-- this test checks incorrect syntax of partial indexes >+-- to be enabled after #2626 > test:finish_test() >-- >2.7.4 > > > >