From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 2C4292CFDC for ; Wed, 18 Apr 2018 16:03:22 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VNbDFRlYG_Zj for ; Wed, 18 Apr 2018 16:03:22 -0400 (EDT) Received: from smtp46.i.mail.ru (smtp46.i.mail.ru [94.100.177.106]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id 4D8C12CE9B for ; Wed, 18 Apr 2018 16:03:21 -0400 (EDT) Received: by smtp46.i.mail.ru with esmtpa (envelope-from ) id 1f8tIU-0002Dd-PF for tarantool-patches@freelists.org; Wed, 18 Apr 2018 23:03:19 +0300 From: "Gleb" (Redacted sender "gleb-skiba" for DMARC) Subject: [tarantool-patches] [PATCH v2] sql: remove support of partial indexes Date: Wed, 18 Apr 2018 23:03:11 +0300 Message-Id: <1524081791-442-1-git-send-email-gleb-skiba@mail.ru> Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-subscribe: List-owner: List-post: List-archive: To: tarantool-patches@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; ]], { -- @@ -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