Please see a new patch.


Среда, 18 апреля 2018, 23:03 +03:00 от Gleb <dmarc-noreply@freelists.org>:

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;
     ]], {
         -- <index6-7.0>
@@ -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;
     ]], {
         -- <index6-10.1>
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';
     ]], {
         -- <index7-6.2>
@@ -291,14 +291,15 @@ test:do_eqp_test(
         -- </index7-6.4>
     })
 
-test:do_catchsql_test(
- "index7-6.5",
- [[
- CREATE INDEX t5a ON t5(a) WHERE a=#1;
- ]], {
- -- <index7-6.5>
- 1, [[near "#1": syntax error]]
- -- </index7-6.5>
- })
-
+--test:do_catchsql_test(
+-- "index7-6.5",
+-- [[
+-- CREATE INDEX t5a ON t5(a) WHERE a=#1;
+-- ]], {
+-- -- <index7-6.5>
+-- 1, [[near "#1": syntax error]]
+-- -- </index7-6.5>
+-- })
+-- this test checks incorrect syntax of partial indexes
+-- to be enabled after #2626
 test:finish_test()
--
2.7.4