Fossil SCM
Update the built-in SQLite to the latest 3.38.0 alpha for testing. With this change, SQL now has access to the new -> and ->> operators for JSON.
Commit
cae03867de3c44e65e1105404d297c031249a9cf5c86ba5c95319f23d18f8ad6
Parent
def53f04199562e…
2 files changed
+2849
-2861
+1
-1
+2849
-2861
| --- extsrc/sqlite3.c | ||
| +++ extsrc/sqlite3.c | ||
| @@ -452,11 +452,11 @@ | ||
| 452 | 452 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 453 | 453 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 454 | 454 | */ |
| 455 | 455 | #define SQLITE_VERSION "3.38.0" |
| 456 | 456 | #define SQLITE_VERSION_NUMBER 3038000 |
| 457 | -#define SQLITE_SOURCE_ID "2022-01-06 17:13:56 2d6a16caa7d28ad5c766036b2eb6c2020683fcc9389b3c7df2013739929dd36f" | |
| 457 | +#define SQLITE_SOURCE_ID "2022-01-12 00:28:12 adebb9d7478d092f16fb0ef7d5246ce152b166479d6f949110b5878b89ea2cec" | |
| 458 | 458 | |
| 459 | 459 | /* |
| 460 | 460 | ** CAPI3REF: Run-Time Library Version Numbers |
| 461 | 461 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 462 | 462 | ** |
| @@ -13593,14 +13593,14 @@ | ||
| 13593 | 13593 | #define TK_DETACH 40 |
| 13594 | 13594 | #define TK_EACH 41 |
| 13595 | 13595 | #define TK_FAIL 42 |
| 13596 | 13596 | #define TK_OR 43 |
| 13597 | 13597 | #define TK_AND 44 |
| 13598 | -#define TK_MATCH 45 | |
| 13599 | -#define TK_LIKE_KW 46 | |
| 13600 | -#define TK_BETWEEN 47 | |
| 13601 | -#define TK_IS 48 | |
| 13598 | +#define TK_IS 45 | |
| 13599 | +#define TK_MATCH 46 | |
| 13600 | +#define TK_LIKE_KW 47 | |
| 13601 | +#define TK_BETWEEN 48 | |
| 13602 | 13602 | #define TK_IN 49 |
| 13603 | 13603 | #define TK_ISNULL 50 |
| 13604 | 13604 | #define TK_NOTNULL 51 |
| 13605 | 13605 | #define TK_NE 52 |
| 13606 | 13606 | #define TK_EQ 53 |
| @@ -13660,82 +13660,83 @@ | ||
| 13660 | 13660 | #define TK_MINUS 107 |
| 13661 | 13661 | #define TK_STAR 108 |
| 13662 | 13662 | #define TK_SLASH 109 |
| 13663 | 13663 | #define TK_REM 110 |
| 13664 | 13664 | #define TK_CONCAT 111 |
| 13665 | -#define TK_COLLATE 112 | |
| 13666 | -#define TK_BITNOT 113 | |
| 13667 | -#define TK_ON 114 | |
| 13668 | -#define TK_INDEXED 115 | |
| 13669 | -#define TK_STRING 116 | |
| 13670 | -#define TK_JOIN_KW 117 | |
| 13671 | -#define TK_CONSTRAINT 118 | |
| 13672 | -#define TK_DEFAULT 119 | |
| 13673 | -#define TK_NULL 120 | |
| 13674 | -#define TK_PRIMARY 121 | |
| 13675 | -#define TK_UNIQUE 122 | |
| 13676 | -#define TK_CHECK 123 | |
| 13677 | -#define TK_REFERENCES 124 | |
| 13678 | -#define TK_AUTOINCR 125 | |
| 13679 | -#define TK_INSERT 126 | |
| 13680 | -#define TK_DELETE 127 | |
| 13681 | -#define TK_UPDATE 128 | |
| 13682 | -#define TK_SET 129 | |
| 13683 | -#define TK_DEFERRABLE 130 | |
| 13684 | -#define TK_FOREIGN 131 | |
| 13685 | -#define TK_DROP 132 | |
| 13686 | -#define TK_UNION 133 | |
| 13687 | -#define TK_ALL 134 | |
| 13688 | -#define TK_EXCEPT 135 | |
| 13689 | -#define TK_INTERSECT 136 | |
| 13690 | -#define TK_SELECT 137 | |
| 13691 | -#define TK_VALUES 138 | |
| 13692 | -#define TK_DISTINCT 139 | |
| 13693 | -#define TK_DOT 140 | |
| 13694 | -#define TK_FROM 141 | |
| 13695 | -#define TK_JOIN 142 | |
| 13696 | -#define TK_USING 143 | |
| 13697 | -#define TK_ORDER 144 | |
| 13698 | -#define TK_GROUP 145 | |
| 13699 | -#define TK_HAVING 146 | |
| 13700 | -#define TK_LIMIT 147 | |
| 13701 | -#define TK_WHERE 148 | |
| 13702 | -#define TK_RETURNING 149 | |
| 13703 | -#define TK_INTO 150 | |
| 13704 | -#define TK_NOTHING 151 | |
| 13705 | -#define TK_FLOAT 152 | |
| 13706 | -#define TK_BLOB 153 | |
| 13707 | -#define TK_INTEGER 154 | |
| 13708 | -#define TK_VARIABLE 155 | |
| 13709 | -#define TK_CASE 156 | |
| 13710 | -#define TK_WHEN 157 | |
| 13711 | -#define TK_THEN 158 | |
| 13712 | -#define TK_ELSE 159 | |
| 13713 | -#define TK_INDEX 160 | |
| 13714 | -#define TK_ALTER 161 | |
| 13715 | -#define TK_ADD 162 | |
| 13716 | -#define TK_WINDOW 163 | |
| 13717 | -#define TK_OVER 164 | |
| 13718 | -#define TK_FILTER 165 | |
| 13719 | -#define TK_COLUMN 166 | |
| 13720 | -#define TK_AGG_FUNCTION 167 | |
| 13721 | -#define TK_AGG_COLUMN 168 | |
| 13722 | -#define TK_TRUEFALSE 169 | |
| 13723 | -#define TK_ISNOT 170 | |
| 13724 | -#define TK_FUNCTION 171 | |
| 13725 | -#define TK_UMINUS 172 | |
| 13726 | -#define TK_UPLUS 173 | |
| 13727 | -#define TK_TRUTH 174 | |
| 13728 | -#define TK_REGISTER 175 | |
| 13729 | -#define TK_VECTOR 176 | |
| 13730 | -#define TK_SELECT_COLUMN 177 | |
| 13731 | -#define TK_IF_NULL_ROW 178 | |
| 13732 | -#define TK_ASTERISK 179 | |
| 13733 | -#define TK_SPAN 180 | |
| 13734 | -#define TK_ERROR 181 | |
| 13735 | -#define TK_SPACE 182 | |
| 13736 | -#define TK_ILLEGAL 183 | |
| 13665 | +#define TK_PTR 112 | |
| 13666 | +#define TK_COLLATE 113 | |
| 13667 | +#define TK_BITNOT 114 | |
| 13668 | +#define TK_ON 115 | |
| 13669 | +#define TK_INDEXED 116 | |
| 13670 | +#define TK_STRING 117 | |
| 13671 | +#define TK_JOIN_KW 118 | |
| 13672 | +#define TK_CONSTRAINT 119 | |
| 13673 | +#define TK_DEFAULT 120 | |
| 13674 | +#define TK_NULL 121 | |
| 13675 | +#define TK_PRIMARY 122 | |
| 13676 | +#define TK_UNIQUE 123 | |
| 13677 | +#define TK_CHECK 124 | |
| 13678 | +#define TK_REFERENCES 125 | |
| 13679 | +#define TK_AUTOINCR 126 | |
| 13680 | +#define TK_INSERT 127 | |
| 13681 | +#define TK_DELETE 128 | |
| 13682 | +#define TK_UPDATE 129 | |
| 13683 | +#define TK_SET 130 | |
| 13684 | +#define TK_DEFERRABLE 131 | |
| 13685 | +#define TK_FOREIGN 132 | |
| 13686 | +#define TK_DROP 133 | |
| 13687 | +#define TK_UNION 134 | |
| 13688 | +#define TK_ALL 135 | |
| 13689 | +#define TK_EXCEPT 136 | |
| 13690 | +#define TK_INTERSECT 137 | |
| 13691 | +#define TK_SELECT 138 | |
| 13692 | +#define TK_VALUES 139 | |
| 13693 | +#define TK_DISTINCT 140 | |
| 13694 | +#define TK_DOT 141 | |
| 13695 | +#define TK_FROM 142 | |
| 13696 | +#define TK_JOIN 143 | |
| 13697 | +#define TK_USING 144 | |
| 13698 | +#define TK_ORDER 145 | |
| 13699 | +#define TK_GROUP 146 | |
| 13700 | +#define TK_HAVING 147 | |
| 13701 | +#define TK_LIMIT 148 | |
| 13702 | +#define TK_WHERE 149 | |
| 13703 | +#define TK_RETURNING 150 | |
| 13704 | +#define TK_INTO 151 | |
| 13705 | +#define TK_NOTHING 152 | |
| 13706 | +#define TK_FLOAT 153 | |
| 13707 | +#define TK_BLOB 154 | |
| 13708 | +#define TK_INTEGER 155 | |
| 13709 | +#define TK_VARIABLE 156 | |
| 13710 | +#define TK_CASE 157 | |
| 13711 | +#define TK_WHEN 158 | |
| 13712 | +#define TK_THEN 159 | |
| 13713 | +#define TK_ELSE 160 | |
| 13714 | +#define TK_INDEX 161 | |
| 13715 | +#define TK_ALTER 162 | |
| 13716 | +#define TK_ADD 163 | |
| 13717 | +#define TK_WINDOW 164 | |
| 13718 | +#define TK_OVER 165 | |
| 13719 | +#define TK_FILTER 166 | |
| 13720 | +#define TK_COLUMN 167 | |
| 13721 | +#define TK_AGG_FUNCTION 168 | |
| 13722 | +#define TK_AGG_COLUMN 169 | |
| 13723 | +#define TK_TRUEFALSE 170 | |
| 13724 | +#define TK_ISNOT 171 | |
| 13725 | +#define TK_FUNCTION 172 | |
| 13726 | +#define TK_UMINUS 173 | |
| 13727 | +#define TK_UPLUS 174 | |
| 13728 | +#define TK_TRUTH 175 | |
| 13729 | +#define TK_REGISTER 176 | |
| 13730 | +#define TK_VECTOR 177 | |
| 13731 | +#define TK_SELECT_COLUMN 178 | |
| 13732 | +#define TK_IF_NULL_ROW 179 | |
| 13733 | +#define TK_ASTERISK 180 | |
| 13734 | +#define TK_SPAN 181 | |
| 13735 | +#define TK_ERROR 182 | |
| 13736 | +#define TK_SPACE 183 | |
| 13737 | +#define TK_ILLEGAL 184 | |
| 13737 | 13738 | |
| 13738 | 13739 | /************** End of parse.h ***********************************************/ |
| 13739 | 13740 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 13740 | 13741 | #include <stdio.h> |
| 13741 | 13742 | #include <stdlib.h> |
| @@ -15342,15 +15343,15 @@ | ||
| 15342 | 15343 | #define OP_Multiply 108 /* same as TK_STAR, synopsis: r[P3]=r[P1]*r[P2] */ |
| 15343 | 15344 | #define OP_Divide 109 /* same as TK_SLASH, synopsis: r[P3]=r[P2]/r[P1] */ |
| 15344 | 15345 | #define OP_Remainder 110 /* same as TK_REM, synopsis: r[P3]=r[P2]%r[P1] */ |
| 15345 | 15346 | #define OP_Concat 111 /* same as TK_CONCAT, synopsis: r[P3]=r[P2]+r[P1] */ |
| 15346 | 15347 | #define OP_OpenWrite 112 /* synopsis: root=P2 iDb=P3 */ |
| 15347 | -#define OP_BitNot 113 /* same as TK_BITNOT, synopsis: r[P2]= ~r[P1] */ | |
| 15348 | -#define OP_OpenDup 114 | |
| 15348 | +#define OP_OpenDup 113 | |
| 15349 | +#define OP_BitNot 114 /* same as TK_BITNOT, synopsis: r[P2]= ~r[P1] */ | |
| 15349 | 15350 | #define OP_OpenAutoindex 115 /* synopsis: nColumn=P2 */ |
| 15350 | -#define OP_String8 116 /* same as TK_STRING, synopsis: r[P2]='P4' */ | |
| 15351 | -#define OP_OpenEphemeral 117 /* synopsis: nColumn=P2 */ | |
| 15351 | +#define OP_OpenEphemeral 116 /* synopsis: nColumn=P2 */ | |
| 15352 | +#define OP_String8 117 /* same as TK_STRING, synopsis: r[P2]='P4' */ | |
| 15352 | 15353 | #define OP_SorterOpen 118 |
| 15353 | 15354 | #define OP_SequenceTest 119 /* synopsis: if( cursor[P1].ctr++ ) pc = P2 */ |
| 15354 | 15355 | #define OP_OpenPseudo 120 /* synopsis: P3 columns in r[P2] */ |
| 15355 | 15356 | #define OP_Close 121 |
| 15356 | 15357 | #define OP_ColumnsUsed 122 |
| @@ -15381,12 +15382,12 @@ | ||
| 15381 | 15382 | #define OP_SqlExec 147 |
| 15382 | 15383 | #define OP_ParseSchema 148 |
| 15383 | 15384 | #define OP_LoadAnalysis 149 |
| 15384 | 15385 | #define OP_DropTable 150 |
| 15385 | 15386 | #define OP_DropIndex 151 |
| 15386 | -#define OP_Real 152 /* same as TK_FLOAT, synopsis: r[P2]=P4 */ | |
| 15387 | -#define OP_DropTrigger 153 | |
| 15387 | +#define OP_DropTrigger 152 | |
| 15388 | +#define OP_Real 153 /* same as TK_FLOAT, synopsis: r[P2]=P4 */ | |
| 15388 | 15389 | #define OP_IntegrityCk 154 |
| 15389 | 15390 | #define OP_RowSetAdd 155 /* synopsis: rowset(P1)=r[P2] */ |
| 15390 | 15391 | #define OP_Param 156 |
| 15391 | 15392 | #define OP_FkCounter 157 /* synopsis: fkctr[P1]+=P2 */ |
| 15392 | 15393 | #define OP_MemMax 158 /* synopsis: r[P1]=max(r[P1],r[P2]) */ |
| @@ -15439,16 +15440,16 @@ | ||
| 15439 | 15440 | /* 72 */ 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x00, 0x00,\ |
| 15440 | 15441 | /* 80 */ 0x10, 0x10, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02,\ |
| 15441 | 15442 | /* 88 */ 0x00, 0x00, 0x12, 0x1e, 0x20, 0x00, 0x00, 0x00,\ |
| 15442 | 15443 | /* 96 */ 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x26, 0x26,\ |
| 15443 | 15444 | /* 104 */ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,\ |
| 15444 | -/* 112 */ 0x00, 0x12, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,\ | |
| 15445 | +/* 112 */ 0x00, 0x00, 0x12, 0x00, 0x00, 0x10, 0x00, 0x00,\ | |
| 15445 | 15446 | /* 120 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00,\ |
| 15446 | 15447 | /* 128 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,\ |
| 15447 | 15448 | /* 136 */ 0x00, 0x04, 0x04, 0x00, 0x00, 0x10, 0x00, 0x10,\ |
| 15448 | 15449 | /* 144 */ 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,\ |
| 15449 | -/* 152 */ 0x10, 0x00, 0x00, 0x06, 0x10, 0x00, 0x04, 0x1a,\ | |
| 15450 | +/* 152 */ 0x00, 0x10, 0x00, 0x06, 0x10, 0x00, 0x04, 0x1a,\ | |
| 15450 | 15451 | /* 160 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ |
| 15451 | 15452 | /* 168 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,\ |
| 15452 | 15453 | /* 176 */ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ |
| 15453 | 15454 | } |
| 15454 | 15455 | |
| @@ -16928,11 +16929,11 @@ | ||
| 16928 | 16929 | ** Used to create an aggregate function definition implemented by |
| 16929 | 16930 | ** the C functions xStep and xFinal. The first four parameters |
| 16930 | 16931 | ** are interpreted in the same way as the first 4 parameters to |
| 16931 | 16932 | ** FUNCTION(). |
| 16932 | 16933 | ** |
| 16933 | -** WFUNCTION(zName, nArg, iArg, xStep, xFinal, xValue, xInverse) | |
| 16934 | +** WAGGREGATE(zName, nArg, iArg, xStep, xFinal, xValue, xInverse) | |
| 16934 | 16935 | ** Used to create an aggregate function definition implemented by |
| 16935 | 16936 | ** the C functions xStep and xFinal. The first four parameters |
| 16936 | 16937 | ** are interpreted in the same way as the first 4 parameters to |
| 16937 | 16938 | ** FUNCTION(). |
| 16938 | 16939 | ** |
| @@ -16955,10 +16956,14 @@ | ||
| 16955 | 16956 | {nArg, SQLITE_FUNC_BUILTIN|SQLITE_UTF8|SQLITE_DIRECTONLY|SQLITE_FUNC_UNSAFE, \ |
| 16956 | 16957 | SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, 0, #zName, {0} } |
| 16957 | 16958 | #define MFUNCTION(zName, nArg, xPtr, xFunc) \ |
| 16958 | 16959 | {nArg, SQLITE_FUNC_BUILTIN|SQLITE_FUNC_CONSTANT|SQLITE_UTF8, \ |
| 16959 | 16960 | xPtr, 0, xFunc, 0, 0, 0, #zName, {0} } |
| 16961 | +#define JFUNCTION(zName, nArg, iArg, xFunc) \ | |
| 16962 | + {nArg, SQLITE_FUNC_BUILTIN|SQLITE_DETERMINISTIC|SQLITE_INNOCUOUS|\ | |
| 16963 | + SQLITE_FUNC_CONSTANT|SQLITE_UTF8, \ | |
| 16964 | + SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, 0, #zName, {0} } | |
| 16960 | 16965 | #define INLINE_FUNC(zName, nArg, iArg, mFlags) \ |
| 16961 | 16966 | {nArg, SQLITE_FUNC_BUILTIN|\ |
| 16962 | 16967 | SQLITE_UTF8|SQLITE_FUNC_INLINE|SQLITE_FUNC_CONSTANT|(mFlags), \ |
| 16963 | 16968 | SQLITE_INT_TO_PTR(iArg), 0, noopFunc, 0, 0, 0, #zName, {0} } |
| 16964 | 16969 | #define TEST_FUNC(zName, nArg, iArg, mFlags) \ |
| @@ -19679,11 +19684,15 @@ | ||
| 19679 | 19684 | SQLITE_PRIVATE void sqlite3InsertBuiltinFuncs(FuncDef*,int); |
| 19680 | 19685 | SQLITE_PRIVATE FuncDef *sqlite3FindFunction(sqlite3*,const char*,int,u8,u8); |
| 19681 | 19686 | SQLITE_PRIVATE void sqlite3QuoteValue(StrAccum*,sqlite3_value*); |
| 19682 | 19687 | SQLITE_PRIVATE void sqlite3RegisterBuiltinFunctions(void); |
| 19683 | 19688 | SQLITE_PRIVATE void sqlite3RegisterDateTimeFunctions(void); |
| 19689 | +SQLITE_PRIVATE void sqlite3RegisterJsonFunctions(void); | |
| 19684 | 19690 | SQLITE_PRIVATE void sqlite3RegisterPerConnectionBuiltinFunctions(sqlite3*); |
| 19691 | +#if !defined(SQLITE_OMIT_VIRTUALTABLE) && !defined(SQLITE_OMIT_JSON) | |
| 19692 | +SQLITE_PRIVATE int sqlite3JsonTableFunctions(sqlite3*); | |
| 19693 | +#endif | |
| 19685 | 19694 | SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3*); |
| 19686 | 19695 | SQLITE_PRIVATE int sqlite3SafetyCheckSickOrOk(sqlite3*); |
| 19687 | 19696 | SQLITE_PRIVATE void sqlite3ChangeCookie(Parse*, int); |
| 19688 | 19697 | SQLITE_PRIVATE With *sqlite3WithDup(sqlite3 *db, With *p); |
| 19689 | 19698 | |
| @@ -20691,10 +20700,13 @@ | ||
| 20691 | 20700 | #ifdef SQLITE_DISABLE_FTS4_DEFERRED |
| 20692 | 20701 | "DISABLE_FTS4_DEFERRED", |
| 20693 | 20702 | #endif |
| 20694 | 20703 | #ifdef SQLITE_DISABLE_INTRINSIC |
| 20695 | 20704 | "DISABLE_INTRINSIC", |
| 20705 | +#endif | |
| 20706 | +#ifdef SQLITE_DISABLE_JSON | |
| 20707 | + "DISABLE_JSON", | |
| 20696 | 20708 | #endif |
| 20697 | 20709 | #ifdef SQLITE_DISABLE_LFS |
| 20698 | 20710 | "DISABLE_LFS", |
| 20699 | 20711 | #endif |
| 20700 | 20712 | #ifdef SQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS |
| @@ -20770,13 +20782,10 @@ | ||
| 20770 | 20782 | "ENABLE_ICU", |
| 20771 | 20783 | #endif |
| 20772 | 20784 | #ifdef SQLITE_ENABLE_IOTRACE |
| 20773 | 20785 | "ENABLE_IOTRACE", |
| 20774 | 20786 | #endif |
| 20775 | -#ifdef SQLITE_ENABLE_JSON1 | |
| 20776 | - "ENABLE_JSON1", | |
| 20777 | -#endif | |
| 20778 | 20787 | #ifdef SQLITE_ENABLE_LOAD_EXTENSION |
| 20779 | 20788 | "ENABLE_LOAD_EXTENSION", |
| 20780 | 20789 | #endif |
| 20781 | 20790 | #ifdef SQLITE_ENABLE_LOCKING_STYLE |
| 20782 | 20791 | "ENABLE_LOCKING_STYLE=" CTIMEOPT_VAL(SQLITE_ENABLE_LOCKING_STYLE), |
| @@ -34265,15 +34274,15 @@ | ||
| 34265 | 34274 | /* 108 */ "Multiply" OpHelp("r[P3]=r[P1]*r[P2]"), |
| 34266 | 34275 | /* 109 */ "Divide" OpHelp("r[P3]=r[P2]/r[P1]"), |
| 34267 | 34276 | /* 110 */ "Remainder" OpHelp("r[P3]=r[P2]%r[P1]"), |
| 34268 | 34277 | /* 111 */ "Concat" OpHelp("r[P3]=r[P2]+r[P1]"), |
| 34269 | 34278 | /* 112 */ "OpenWrite" OpHelp("root=P2 iDb=P3"), |
| 34270 | - /* 113 */ "BitNot" OpHelp("r[P2]= ~r[P1]"), | |
| 34271 | - /* 114 */ "OpenDup" OpHelp(""), | |
| 34279 | + /* 113 */ "OpenDup" OpHelp(""), | |
| 34280 | + /* 114 */ "BitNot" OpHelp("r[P2]= ~r[P1]"), | |
| 34272 | 34281 | /* 115 */ "OpenAutoindex" OpHelp("nColumn=P2"), |
| 34273 | - /* 116 */ "String8" OpHelp("r[P2]='P4'"), | |
| 34274 | - /* 117 */ "OpenEphemeral" OpHelp("nColumn=P2"), | |
| 34282 | + /* 116 */ "OpenEphemeral" OpHelp("nColumn=P2"), | |
| 34283 | + /* 117 */ "String8" OpHelp("r[P2]='P4'"), | |
| 34275 | 34284 | /* 118 */ "SorterOpen" OpHelp(""), |
| 34276 | 34285 | /* 119 */ "SequenceTest" OpHelp("if( cursor[P1].ctr++ ) pc = P2"), |
| 34277 | 34286 | /* 120 */ "OpenPseudo" OpHelp("P3 columns in r[P2]"), |
| 34278 | 34287 | /* 121 */ "Close" OpHelp(""), |
| 34279 | 34288 | /* 122 */ "ColumnsUsed" OpHelp(""), |
| @@ -34304,12 +34313,12 @@ | ||
| 34304 | 34313 | /* 147 */ "SqlExec" OpHelp(""), |
| 34305 | 34314 | /* 148 */ "ParseSchema" OpHelp(""), |
| 34306 | 34315 | /* 149 */ "LoadAnalysis" OpHelp(""), |
| 34307 | 34316 | /* 150 */ "DropTable" OpHelp(""), |
| 34308 | 34317 | /* 151 */ "DropIndex" OpHelp(""), |
| 34309 | - /* 152 */ "Real" OpHelp("r[P2]=P4"), | |
| 34310 | - /* 153 */ "DropTrigger" OpHelp(""), | |
| 34318 | + /* 152 */ "DropTrigger" OpHelp(""), | |
| 34319 | + /* 153 */ "Real" OpHelp("r[P2]=P4"), | |
| 34311 | 34320 | /* 154 */ "IntegrityCk" OpHelp(""), |
| 34312 | 34321 | /* 155 */ "RowSetAdd" OpHelp("rowset(P1)=r[P2]"), |
| 34313 | 34322 | /* 156 */ "Param" OpHelp(""), |
| 34314 | 34323 | /* 157 */ "FkCounter" OpHelp("fkctr[P1]+=P2"), |
| 34315 | 34324 | /* 158 */ "MemMax" OpHelp("r[P1]=max(r[P1],r[P2])"), |
| @@ -58435,10 +58444,11 @@ | ||
| 58435 | 58444 | Pager *pPager, /* The pager open on the database file */ |
| 58436 | 58445 | Pgno pgno, /* Page number to fetch */ |
| 58437 | 58446 | DbPage **ppPage, /* Write a pointer to the page here */ |
| 58438 | 58447 | int flags /* PAGER_GET_XXX flags */ |
| 58439 | 58448 | ){ |
| 58449 | + /* printf("PAGE %u\n", pgno); fflush(stdout); */ | |
| 58440 | 58450 | return pPager->xGet(pPager, pgno, ppPage, flags); |
| 58441 | 58451 | } |
| 58442 | 58452 | |
| 58443 | 58453 | /* |
| 58444 | 58454 | ** Acquire a page if it is already in the in-memory cache. Do |
| @@ -72528,11 +72538,11 @@ | ||
| 72528 | 72538 | assert( sqlite3PagerIswriteable(pPage->pDbPage) ); |
| 72529 | 72539 | assert( sqlite3_mutex_held(pPage->pBt->mutex) ); |
| 72530 | 72540 | assert( pPage->nFree>=0 ); |
| 72531 | 72541 | data = pPage->aData; |
| 72532 | 72542 | ptr = &pPage->aCellIdx[2*idx]; |
| 72533 | - assert( pPage->pBt->usableSize > (int)(ptr-data) ); | |
| 72543 | + assert( pPage->pBt->usableSize > (u32)(ptr-data) ); | |
| 72534 | 72544 | pc = get2byte(ptr); |
| 72535 | 72545 | hdr = pPage->hdrOffset; |
| 72536 | 72546 | testcase( pc==(u32)get2byte(&data[hdr+5]) ); |
| 72537 | 72547 | testcase( pc+sz==pPage->pBt->usableSize ); |
| 72538 | 72548 | if( pc+sz > pPage->pBt->usableSize ){ |
| @@ -113443,11 +113453,11 @@ | ||
| 113443 | 113453 | Returning *pReturning = pParse->u1.pReturning; |
| 113444 | 113454 | int addrRewind; |
| 113445 | 113455 | int i; |
| 113446 | 113456 | int reg; |
| 113447 | 113457 | |
| 113448 | - if( pReturning->nRetCol==0 ){ | |
| 113458 | + if( NEVER(pReturning->nRetCol==0) ){ | |
| 113449 | 113459 | assert( CORRUPT_DB ); |
| 113450 | 113460 | }else{ |
| 113451 | 113461 | sqlite3VdbeAddOp0(v, OP_FkCheck); |
| 113452 | 113462 | addrRewind = |
| 113453 | 113463 | sqlite3VdbeAddOp1(v, OP_Rewind, pReturning->iRetCur); |
| @@ -113539,11 +113549,11 @@ | ||
| 113539 | 113549 | } |
| 113540 | 113550 | } |
| 113541 | 113551 | |
| 113542 | 113552 | if( pParse->bReturning ){ |
| 113543 | 113553 | Returning *pRet = pParse->u1.pReturning; |
| 113544 | - if( pRet->nRetCol==0 ){ | |
| 113554 | + if( NEVER(pRet->nRetCol==0) ){ | |
| 113545 | 113555 | assert( CORRUPT_DB ); |
| 113546 | 113556 | }else{ |
| 113547 | 113557 | sqlite3VdbeAddOp2(v, OP_OpenEphemeral, pRet->iRetCur, pRet->nRetCol); |
| 113548 | 113558 | } |
| 113549 | 113559 | } |
| @@ -119261,11 +119271,10 @@ | ||
| 119261 | 119271 | for(i=0; i<nDef; i++){ |
| 119262 | 119272 | FuncDef *pOther; |
| 119263 | 119273 | const char *zName = aDef[i].zName; |
| 119264 | 119274 | int nName = sqlite3Strlen30(zName); |
| 119265 | 119275 | int h = SQLITE_FUNC_HASH(zName[0], nName); |
| 119266 | - assert( zName[0]>='a' && zName[0]<='z' ); | |
| 119267 | 119276 | assert( aDef[i].funcFlags & SQLITE_FUNC_BUILTIN ); |
| 119268 | 119277 | pOther = sqlite3FunctionSearch(h, zName); |
| 119269 | 119278 | if( pOther ){ |
| 119270 | 119279 | assert( pOther!=&aDef[i] && pOther->pNext!=&aDef[i] ); |
| 119271 | 119280 | aDef[i].pNext = pOther->pNext; |
| @@ -120524,10 +120533,21 @@ | ||
| 120524 | 120533 | ** V. The returned value is one of SQLITE_INTEGER, SQLITE_FLOAT, |
| 120525 | 120534 | ** SQLITE_TEXT, SQLITE_BLOB, or SQLITE_NULL. */ |
| 120526 | 120535 | sqlite3_result_text(context, azType[i], -1, SQLITE_STATIC); |
| 120527 | 120536 | } |
| 120528 | 120537 | |
| 120538 | +/* subtype(X) | |
| 120539 | +** | |
| 120540 | +** Return the subtype of X | |
| 120541 | +*/ | |
| 120542 | +static void subtypeFunc( | |
| 120543 | + sqlite3_context *context, | |
| 120544 | + int argc, | |
| 120545 | + sqlite3_value **argv | |
| 120546 | +){ | |
| 120547 | + sqlite3_result_int(context, sqlite3_value_subtype(argv[0])); | |
| 120548 | +} | |
| 120529 | 120549 | |
| 120530 | 120550 | /* |
| 120531 | 120551 | ** Implementation of the length() function |
| 120532 | 120552 | */ |
| 120533 | 120553 | static void lengthFunc( |
| @@ -120685,11 +120705,11 @@ | ||
| 120685 | 120705 | sqlite3_result_error_nomem(context); |
| 120686 | 120706 | goto endInstr; |
| 120687 | 120707 | } |
| 120688 | 120708 | |
| 120689 | 120709 | /* |
| 120690 | -** Implementation of the printf() function. | |
| 120710 | +** Implementation of the printf() (a.k.a. format()) SQL function. | |
| 120691 | 120711 | */ |
| 120692 | 120712 | static void printfFunc( |
| 120693 | 120713 | sqlite3_context *context, |
| 120694 | 120714 | int argc, |
| 120695 | 120715 | sqlite3_value **argv |
| @@ -122673,13 +122693,15 @@ | ||
| 122673 | 122693 | FUNCTION(max, -1, 1, 1, minmaxFunc ), |
| 122674 | 122694 | FUNCTION(max, 0, 1, 1, 0 ), |
| 122675 | 122695 | WAGGREGATE(max, 1, 1, 1, minmaxStep, minMaxFinalize, minMaxValue, 0, |
| 122676 | 122696 | SQLITE_FUNC_MINMAX|SQLITE_FUNC_ANYORDER ), |
| 122677 | 122697 | FUNCTION2(typeof, 1, 0, 0, typeofFunc, SQLITE_FUNC_TYPEOF), |
| 122698 | + FUNCTION2(subtype, 1, 0, 0, subtypeFunc, SQLITE_FUNC_TYPEOF), | |
| 122678 | 122699 | FUNCTION2(length, 1, 0, 0, lengthFunc, SQLITE_FUNC_LENGTH), |
| 122679 | 122700 | FUNCTION(instr, 2, 0, 0, instrFunc ), |
| 122680 | 122701 | FUNCTION(printf, -1, 0, 0, printfFunc ), |
| 122702 | + FUNCTION(format, -1, 0, 0, printfFunc ), | |
| 122681 | 122703 | FUNCTION(unicode, 1, 0, 0, unicodeFunc ), |
| 122682 | 122704 | FUNCTION(char, -1, 0, 0, charFunc ), |
| 122683 | 122705 | FUNCTION(abs, 1, 0, 0, absFunc ), |
| 122684 | 122706 | #ifndef SQLITE_OMIT_FLOATING_POINT |
| 122685 | 122707 | FUNCTION(round, 1, 0, 0, roundFunc ), |
| @@ -122774,10 +122796,11 @@ | ||
| 122774 | 122796 | #ifndef SQLITE_OMIT_ALTERTABLE |
| 122775 | 122797 | sqlite3AlterFunctions(); |
| 122776 | 122798 | #endif |
| 122777 | 122799 | sqlite3WindowFunctions(); |
| 122778 | 122800 | sqlite3RegisterDateTimeFunctions(); |
| 122801 | + sqlite3RegisterJsonFunctions(); | |
| 122779 | 122802 | sqlite3InsertBuiltinFuncs(aBuiltinFunc, ArraySize(aBuiltinFunc)); |
| 122780 | 122803 | |
| 122781 | 122804 | #if 0 /* Enable to print out how the built-in functions are hashed */ |
| 122782 | 122805 | { |
| 122783 | 122806 | int i; |
| @@ -160516,14 +160539,14 @@ | ||
| 160516 | 160539 | #define TK_DETACH 40 |
| 160517 | 160540 | #define TK_EACH 41 |
| 160518 | 160541 | #define TK_FAIL 42 |
| 160519 | 160542 | #define TK_OR 43 |
| 160520 | 160543 | #define TK_AND 44 |
| 160521 | -#define TK_MATCH 45 | |
| 160522 | -#define TK_LIKE_KW 46 | |
| 160523 | -#define TK_BETWEEN 47 | |
| 160524 | -#define TK_IS 48 | |
| 160544 | +#define TK_IS 45 | |
| 160545 | +#define TK_MATCH 46 | |
| 160546 | +#define TK_LIKE_KW 47 | |
| 160547 | +#define TK_BETWEEN 48 | |
| 160525 | 160548 | #define TK_IN 49 |
| 160526 | 160549 | #define TK_ISNULL 50 |
| 160527 | 160550 | #define TK_NOTNULL 51 |
| 160528 | 160551 | #define TK_NE 52 |
| 160529 | 160552 | #define TK_EQ 53 |
| @@ -160583,82 +160606,83 @@ | ||
| 160583 | 160606 | #define TK_MINUS 107 |
| 160584 | 160607 | #define TK_STAR 108 |
| 160585 | 160608 | #define TK_SLASH 109 |
| 160586 | 160609 | #define TK_REM 110 |
| 160587 | 160610 | #define TK_CONCAT 111 |
| 160588 | -#define TK_COLLATE 112 | |
| 160589 | -#define TK_BITNOT 113 | |
| 160590 | -#define TK_ON 114 | |
| 160591 | -#define TK_INDEXED 115 | |
| 160592 | -#define TK_STRING 116 | |
| 160593 | -#define TK_JOIN_KW 117 | |
| 160594 | -#define TK_CONSTRAINT 118 | |
| 160595 | -#define TK_DEFAULT 119 | |
| 160596 | -#define TK_NULL 120 | |
| 160597 | -#define TK_PRIMARY 121 | |
| 160598 | -#define TK_UNIQUE 122 | |
| 160599 | -#define TK_CHECK 123 | |
| 160600 | -#define TK_REFERENCES 124 | |
| 160601 | -#define TK_AUTOINCR 125 | |
| 160602 | -#define TK_INSERT 126 | |
| 160603 | -#define TK_DELETE 127 | |
| 160604 | -#define TK_UPDATE 128 | |
| 160605 | -#define TK_SET 129 | |
| 160606 | -#define TK_DEFERRABLE 130 | |
| 160607 | -#define TK_FOREIGN 131 | |
| 160608 | -#define TK_DROP 132 | |
| 160609 | -#define TK_UNION 133 | |
| 160610 | -#define TK_ALL 134 | |
| 160611 | -#define TK_EXCEPT 135 | |
| 160612 | -#define TK_INTERSECT 136 | |
| 160613 | -#define TK_SELECT 137 | |
| 160614 | -#define TK_VALUES 138 | |
| 160615 | -#define TK_DISTINCT 139 | |
| 160616 | -#define TK_DOT 140 | |
| 160617 | -#define TK_FROM 141 | |
| 160618 | -#define TK_JOIN 142 | |
| 160619 | -#define TK_USING 143 | |
| 160620 | -#define TK_ORDER 144 | |
| 160621 | -#define TK_GROUP 145 | |
| 160622 | -#define TK_HAVING 146 | |
| 160623 | -#define TK_LIMIT 147 | |
| 160624 | -#define TK_WHERE 148 | |
| 160625 | -#define TK_RETURNING 149 | |
| 160626 | -#define TK_INTO 150 | |
| 160627 | -#define TK_NOTHING 151 | |
| 160628 | -#define TK_FLOAT 152 | |
| 160629 | -#define TK_BLOB 153 | |
| 160630 | -#define TK_INTEGER 154 | |
| 160631 | -#define TK_VARIABLE 155 | |
| 160632 | -#define TK_CASE 156 | |
| 160633 | -#define TK_WHEN 157 | |
| 160634 | -#define TK_THEN 158 | |
| 160635 | -#define TK_ELSE 159 | |
| 160636 | -#define TK_INDEX 160 | |
| 160637 | -#define TK_ALTER 161 | |
| 160638 | -#define TK_ADD 162 | |
| 160639 | -#define TK_WINDOW 163 | |
| 160640 | -#define TK_OVER 164 | |
| 160641 | -#define TK_FILTER 165 | |
| 160642 | -#define TK_COLUMN 166 | |
| 160643 | -#define TK_AGG_FUNCTION 167 | |
| 160644 | -#define TK_AGG_COLUMN 168 | |
| 160645 | -#define TK_TRUEFALSE 169 | |
| 160646 | -#define TK_ISNOT 170 | |
| 160647 | -#define TK_FUNCTION 171 | |
| 160648 | -#define TK_UMINUS 172 | |
| 160649 | -#define TK_UPLUS 173 | |
| 160650 | -#define TK_TRUTH 174 | |
| 160651 | -#define TK_REGISTER 175 | |
| 160652 | -#define TK_VECTOR 176 | |
| 160653 | -#define TK_SELECT_COLUMN 177 | |
| 160654 | -#define TK_IF_NULL_ROW 178 | |
| 160655 | -#define TK_ASTERISK 179 | |
| 160656 | -#define TK_SPAN 180 | |
| 160657 | -#define TK_ERROR 181 | |
| 160658 | -#define TK_SPACE 182 | |
| 160659 | -#define TK_ILLEGAL 183 | |
| 160611 | +#define TK_PTR 112 | |
| 160612 | +#define TK_COLLATE 113 | |
| 160613 | +#define TK_BITNOT 114 | |
| 160614 | +#define TK_ON 115 | |
| 160615 | +#define TK_INDEXED 116 | |
| 160616 | +#define TK_STRING 117 | |
| 160617 | +#define TK_JOIN_KW 118 | |
| 160618 | +#define TK_CONSTRAINT 119 | |
| 160619 | +#define TK_DEFAULT 120 | |
| 160620 | +#define TK_NULL 121 | |
| 160621 | +#define TK_PRIMARY 122 | |
| 160622 | +#define TK_UNIQUE 123 | |
| 160623 | +#define TK_CHECK 124 | |
| 160624 | +#define TK_REFERENCES 125 | |
| 160625 | +#define TK_AUTOINCR 126 | |
| 160626 | +#define TK_INSERT 127 | |
| 160627 | +#define TK_DELETE 128 | |
| 160628 | +#define TK_UPDATE 129 | |
| 160629 | +#define TK_SET 130 | |
| 160630 | +#define TK_DEFERRABLE 131 | |
| 160631 | +#define TK_FOREIGN 132 | |
| 160632 | +#define TK_DROP 133 | |
| 160633 | +#define TK_UNION 134 | |
| 160634 | +#define TK_ALL 135 | |
| 160635 | +#define TK_EXCEPT 136 | |
| 160636 | +#define TK_INTERSECT 137 | |
| 160637 | +#define TK_SELECT 138 | |
| 160638 | +#define TK_VALUES 139 | |
| 160639 | +#define TK_DISTINCT 140 | |
| 160640 | +#define TK_DOT 141 | |
| 160641 | +#define TK_FROM 142 | |
| 160642 | +#define TK_JOIN 143 | |
| 160643 | +#define TK_USING 144 | |
| 160644 | +#define TK_ORDER 145 | |
| 160645 | +#define TK_GROUP 146 | |
| 160646 | +#define TK_HAVING 147 | |
| 160647 | +#define TK_LIMIT 148 | |
| 160648 | +#define TK_WHERE 149 | |
| 160649 | +#define TK_RETURNING 150 | |
| 160650 | +#define TK_INTO 151 | |
| 160651 | +#define TK_NOTHING 152 | |
| 160652 | +#define TK_FLOAT 153 | |
| 160653 | +#define TK_BLOB 154 | |
| 160654 | +#define TK_INTEGER 155 | |
| 160655 | +#define TK_VARIABLE 156 | |
| 160656 | +#define TK_CASE 157 | |
| 160657 | +#define TK_WHEN 158 | |
| 160658 | +#define TK_THEN 159 | |
| 160659 | +#define TK_ELSE 160 | |
| 160660 | +#define TK_INDEX 161 | |
| 160661 | +#define TK_ALTER 162 | |
| 160662 | +#define TK_ADD 163 | |
| 160663 | +#define TK_WINDOW 164 | |
| 160664 | +#define TK_OVER 165 | |
| 160665 | +#define TK_FILTER 166 | |
| 160666 | +#define TK_COLUMN 167 | |
| 160667 | +#define TK_AGG_FUNCTION 168 | |
| 160668 | +#define TK_AGG_COLUMN 169 | |
| 160669 | +#define TK_TRUEFALSE 170 | |
| 160670 | +#define TK_ISNOT 171 | |
| 160671 | +#define TK_FUNCTION 172 | |
| 160672 | +#define TK_UMINUS 173 | |
| 160673 | +#define TK_UPLUS 174 | |
| 160674 | +#define TK_TRUTH 175 | |
| 160675 | +#define TK_REGISTER 176 | |
| 160676 | +#define TK_VECTOR 177 | |
| 160677 | +#define TK_SELECT_COLUMN 178 | |
| 160678 | +#define TK_IF_NULL_ROW 179 | |
| 160679 | +#define TK_ASTERISK 180 | |
| 160680 | +#define TK_SPAN 181 | |
| 160681 | +#define TK_ERROR 182 | |
| 160682 | +#define TK_SPACE 183 | |
| 160683 | +#define TK_ILLEGAL 184 | |
| 160660 | 160684 | #endif |
| 160661 | 160685 | /**************** End token definitions ***************************************/ |
| 160662 | 160686 | |
| 160663 | 160687 | /* The next sections is a series of control #defines. |
| 160664 | 160688 | ** various aspects of the generated parser. |
| @@ -160714,34 +160738,34 @@ | ||
| 160714 | 160738 | #ifndef INTERFACE |
| 160715 | 160739 | # define INTERFACE 1 |
| 160716 | 160740 | #endif |
| 160717 | 160741 | /************* Begin control #defines *****************************************/ |
| 160718 | 160742 | #define YYCODETYPE unsigned short int |
| 160719 | -#define YYNOCODE 318 | |
| 160743 | +#define YYNOCODE 319 | |
| 160720 | 160744 | #define YYACTIONTYPE unsigned short int |
| 160721 | 160745 | #define YYWILDCARD 101 |
| 160722 | 160746 | #define sqlite3ParserTOKENTYPE Token |
| 160723 | 160747 | typedef union { |
| 160724 | 160748 | int yyinit; |
| 160725 | 160749 | sqlite3ParserTOKENTYPE yy0; |
| 160726 | - With* yy43; | |
| 160727 | - u32 yy51; | |
| 160728 | - int yy64; | |
| 160729 | - struct FrameBound yy81; | |
| 160730 | - struct {int value; int mask;} yy83; | |
| 160731 | - TriggerStep* yy95; | |
| 160732 | - Upsert* yy138; | |
| 160733 | - IdList* yy240; | |
| 160734 | - Cte* yy255; | |
| 160735 | - Select* yy303; | |
| 160736 | - Window* yy375; | |
| 160737 | - u8 yy534; | |
| 160738 | - ExprList* yy562; | |
| 160739 | - struct TrigEvent yy570; | |
| 160740 | - const char* yy600; | |
| 160741 | - SrcList* yy607; | |
| 160742 | - Expr* yy626; | |
| 160750 | + TriggerStep* yy33; | |
| 160751 | + Window* yy41; | |
| 160752 | + Select* yy47; | |
| 160753 | + SrcList* yy131; | |
| 160754 | + struct TrigEvent yy180; | |
| 160755 | + struct {int value; int mask;} yy231; | |
| 160756 | + IdList* yy254; | |
| 160757 | + u32 yy285; | |
| 160758 | + ExprList* yy322; | |
| 160759 | + Cte* yy385; | |
| 160760 | + int yy394; | |
| 160761 | + Upsert* yy444; | |
| 160762 | + u8 yy516; | |
| 160763 | + With* yy521; | |
| 160764 | + const char* yy522; | |
| 160765 | + Expr* yy528; | |
| 160766 | + struct FrameBound yy595; | |
| 160743 | 160767 | } YYMINORTYPE; |
| 160744 | 160768 | #ifndef YYSTACKDEPTH |
| 160745 | 160769 | #define YYSTACKDEPTH 100 |
| 160746 | 160770 | #endif |
| 160747 | 160771 | #define sqlite3ParserARG_SDECL |
| @@ -160753,22 +160777,22 @@ | ||
| 160753 | 160777 | #define sqlite3ParserCTX_PDECL ,Parse *pParse |
| 160754 | 160778 | #define sqlite3ParserCTX_PARAM ,pParse |
| 160755 | 160779 | #define sqlite3ParserCTX_FETCH Parse *pParse=yypParser->pParse; |
| 160756 | 160780 | #define sqlite3ParserCTX_STORE yypParser->pParse=pParse; |
| 160757 | 160781 | #define YYFALLBACK 1 |
| 160758 | -#define YYNSTATE 572 | |
| 160759 | -#define YYNRULE 401 | |
| 160760 | -#define YYNRULE_WITH_ACTION 339 | |
| 160761 | -#define YYNTOKEN 184 | |
| 160762 | -#define YY_MAX_SHIFT 571 | |
| 160763 | -#define YY_MIN_SHIFTREDUCE 829 | |
| 160764 | -#define YY_MAX_SHIFTREDUCE 1229 | |
| 160765 | -#define YY_ERROR_ACTION 1230 | |
| 160766 | -#define YY_ACCEPT_ACTION 1231 | |
| 160767 | -#define YY_NO_ACTION 1232 | |
| 160768 | -#define YY_MIN_REDUCE 1233 | |
| 160769 | -#define YY_MAX_REDUCE 1633 | |
| 160782 | +#define YYNSTATE 574 | |
| 160783 | +#define YYNRULE 402 | |
| 160784 | +#define YYNRULE_WITH_ACTION 340 | |
| 160785 | +#define YYNTOKEN 185 | |
| 160786 | +#define YY_MAX_SHIFT 573 | |
| 160787 | +#define YY_MIN_SHIFTREDUCE 831 | |
| 160788 | +#define YY_MAX_SHIFTREDUCE 1232 | |
| 160789 | +#define YY_ERROR_ACTION 1233 | |
| 160790 | +#define YY_ACCEPT_ACTION 1234 | |
| 160791 | +#define YY_NO_ACTION 1235 | |
| 160792 | +#define YY_MIN_REDUCE 1236 | |
| 160793 | +#define YY_MAX_REDUCE 1637 | |
| 160770 | 160794 | /************* End control #defines *******************************************/ |
| 160771 | 160795 | #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) |
| 160772 | 160796 | |
| 160773 | 160797 | /* Define the yytestcase() macro to be a no-op if is not already defined |
| 160774 | 160798 | ** otherwise. |
| @@ -160831,607 +160855,616 @@ | ||
| 160831 | 160855 | ** yy_reduce_ofst[] For each state, the offset into yy_action for |
| 160832 | 160856 | ** shifting non-terminals after a reduce. |
| 160833 | 160857 | ** yy_default[] Default action for each state. |
| 160834 | 160858 | ** |
| 160835 | 160859 | *********** Begin parsing tables **********************************************/ |
| 160836 | -#define YY_ACTTAB_COUNT (2022) | |
| 160860 | +#define YY_ACTTAB_COUNT (2070) | |
| 160837 | 160861 | static const YYACTIONTYPE yy_action[] = { |
| 160838 | - /* 0 */ 564, 115, 112, 220, 169, 199, 115, 112, 220, 564, | |
| 160839 | - /* 10 */ 375, 1266, 564, 376, 564, 270, 1309, 1309, 406, 407, | |
| 160840 | - /* 20 */ 1084, 199, 1513, 41, 41, 515, 489, 521, 558, 558, | |
| 160841 | - /* 30 */ 558, 965, 41, 41, 395, 41, 41, 51, 51, 966, | |
| 160842 | - /* 40 */ 296, 1269, 296, 122, 123, 1207, 1207, 1041, 113, 1044, | |
| 160843 | - /* 50 */ 1034, 1034, 120, 120, 121, 121, 121, 121, 564, 407, | |
| 160844 | - /* 60 */ 275, 275, 275, 275, 1268, 115, 112, 220, 115, 112, | |
| 160845 | - /* 70 */ 220, 1512, 846, 561, 516, 561, 115, 112, 220, 250, | |
| 160846 | - /* 80 */ 217, 71, 71, 122, 123, 1207, 1207, 1041, 113, 1044, | |
| 160847 | - /* 90 */ 1034, 1034, 120, 120, 121, 121, 121, 121, 440, 440, | |
| 160848 | - /* 100 */ 440, 1149, 119, 119, 119, 119, 118, 118, 117, 117, | |
| 160849 | - /* 110 */ 117, 116, 442, 1183, 1149, 116, 442, 1149, 546, 513, | |
| 160850 | - /* 120 */ 1548, 1554, 374, 213, 6, 169, 1154, 522, 1154, 407, | |
| 160851 | - /* 130 */ 1556, 461, 373, 1554, 535, 99, 463, 332, 121, 121, | |
| 160852 | - /* 140 */ 121, 121, 119, 119, 119, 119, 118, 118, 117, 117, | |
| 160853 | - /* 150 */ 117, 116, 442, 122, 123, 1207, 1207, 1041, 113, 1044, | |
| 160854 | - /* 160 */ 1034, 1034, 120, 120, 121, 121, 121, 121, 1257, 1183, | |
| 160855 | - /* 170 */ 1184, 1185, 243, 1064, 564, 502, 499, 498, 567, 124, | |
| 160856 | - /* 180 */ 567, 1128, 1627, 344, 1627, 497, 119, 119, 119, 119, | |
| 160857 | - /* 190 */ 118, 118, 117, 117, 117, 116, 442, 70, 70, 407, | |
| 160858 | - /* 200 */ 121, 121, 121, 121, 114, 117, 117, 117, 116, 442, | |
| 160859 | - /* 210 */ 474, 1469, 119, 119, 119, 119, 118, 118, 117, 117, | |
| 160860 | - /* 220 */ 117, 116, 442, 122, 123, 1207, 1207, 1041, 113, 1044, | |
| 160861 | - /* 230 */ 1034, 1034, 120, 120, 121, 121, 121, 121, 407, 208, | |
| 160862 | - /* 240 */ 539, 1548, 1424, 81, 339, 6, 342, 80, 119, 119, | |
| 160863 | - /* 250 */ 119, 119, 118, 118, 117, 117, 117, 116, 442, 381, | |
| 160864 | - /* 260 */ 1126, 442, 122, 123, 1207, 1207, 1041, 113, 1044, 1034, | |
| 160865 | - /* 270 */ 1034, 120, 120, 121, 121, 121, 121, 262, 463, 332, | |
| 160866 | - /* 280 */ 359, 1567, 119, 119, 119, 119, 118, 118, 117, 117, | |
| 160867 | - /* 290 */ 117, 116, 442, 1231, 1, 1, 571, 2, 1235, 1573, | |
| 160868 | - /* 300 */ 571, 2, 1235, 307, 1149, 141, 417, 307, 407, 141, | |
| 160869 | - /* 310 */ 1183, 98, 1317, 489, 866, 531, 1317, 1149, 215, 512, | |
| 160870 | - /* 320 */ 1149, 119, 119, 119, 119, 118, 118, 117, 117, 117, | |
| 160871 | - /* 330 */ 116, 442, 122, 123, 1207, 1207, 1041, 113, 1044, 1034, | |
| 160872 | - /* 340 */ 1034, 120, 120, 121, 121, 121, 121, 275, 275, 1001, | |
| 160873 | - /* 350 */ 1257, 275, 275, 1128, 1628, 1021, 1628, 137, 415, 1600, | |
| 160874 | - /* 360 */ 561, 272, 1255, 950, 561, 1423, 1183, 1184, 1185, 1594, | |
| 160875 | - /* 370 */ 866, 1012, 530, 315, 231, 1011, 317, 1276, 231, 119, | |
| 160876 | - /* 380 */ 119, 119, 119, 118, 118, 117, 117, 117, 116, 442, | |
| 160877 | - /* 390 */ 1570, 119, 119, 119, 119, 118, 118, 117, 117, 117, | |
| 160878 | - /* 400 */ 116, 442, 330, 359, 1567, 564, 446, 1011, 1011, 1013, | |
| 160879 | - /* 410 */ 446, 877, 564, 306, 555, 407, 447, 1021, 563, 346, | |
| 160880 | - /* 420 */ 184, 118, 118, 117, 117, 117, 116, 442, 71, 71, | |
| 160881 | - /* 430 */ 439, 438, 1126, 1012, 472, 71, 71, 1011, 205, 122, | |
| 160882 | - /* 440 */ 123, 1207, 1207, 1041, 113, 1044, 1034, 1034, 120, 120, | |
| 160883 | - /* 450 */ 121, 121, 121, 121, 1304, 219, 1283, 1183, 407, 570, | |
| 160884 | - /* 460 */ 1183, 1235, 503, 1477, 1304, 546, 307, 489, 141, 1011, | |
| 160885 | - /* 470 */ 1011, 1013, 546, 140, 545, 1317, 1214, 382, 1214, 378, | |
| 160886 | - /* 480 */ 950, 514, 122, 123, 1207, 1207, 1041, 113, 1044, 1034, | |
| 160887 | - /* 490 */ 1034, 120, 120, 121, 121, 121, 121, 472, 119, 119, | |
| 160888 | - /* 500 */ 119, 119, 118, 118, 117, 117, 117, 116, 442, 283, | |
| 160889 | - /* 510 */ 275, 275, 1476, 1183, 1184, 1185, 1183, 1184, 1185, 417, | |
| 160890 | - /* 520 */ 1183, 243, 541, 561, 502, 499, 498, 1001, 407, 478, | |
| 160891 | - /* 530 */ 1183, 472, 870, 143, 497, 1549, 185, 231, 9, 6, | |
| 160892 | - /* 540 */ 253, 119, 119, 119, 119, 118, 118, 117, 117, 117, | |
| 160893 | - /* 550 */ 116, 442, 122, 123, 1207, 1207, 1041, 113, 1044, 1034, | |
| 160894 | - /* 560 */ 1034, 120, 120, 121, 121, 121, 121, 407, 372, 446, | |
| 160895 | - /* 570 */ 363, 863, 288, 1183, 397, 1204, 1183, 1184, 1185, 931, | |
| 160896 | - /* 580 */ 330, 458, 318, 526, 564, 541, 1183, 1184, 1185, 284, | |
| 160897 | - /* 590 */ 1183, 122, 123, 1207, 1207, 1041, 113, 1044, 1034, 1034, | |
| 160898 | - /* 600 */ 120, 120, 121, 121, 121, 121, 291, 71, 71, 275, | |
| 160899 | - /* 610 */ 275, 119, 119, 119, 119, 118, 118, 117, 117, 117, | |
| 160900 | - /* 620 */ 116, 442, 561, 1031, 1031, 1042, 1183, 1045, 287, 1183, | |
| 160901 | - /* 630 */ 1184, 1185, 1204, 137, 218, 542, 1541, 407, 363, 470, | |
| 160902 | - /* 640 */ 431, 1167, 32, 363, 527, 350, 1183, 1184, 1185, 380, | |
| 160903 | - /* 650 */ 119, 119, 119, 119, 118, 118, 117, 117, 117, 116, | |
| 160904 | - /* 660 */ 442, 122, 123, 1207, 1207, 1041, 113, 1044, 1034, 1034, | |
| 160905 | - /* 670 */ 120, 120, 121, 121, 121, 121, 407, 392, 1227, 1183, | |
| 160906 | - /* 680 */ 1022, 1540, 1183, 1184, 1185, 1523, 149, 1307, 1307, 306, | |
| 160907 | - /* 690 */ 555, 151, 1546, 361, 5, 564, 6, 3, 1035, 1542, | |
| 160908 | - /* 700 */ 122, 123, 1207, 1207, 1041, 113, 1044, 1034, 1034, 120, | |
| 160909 | - /* 710 */ 120, 121, 121, 121, 121, 411, 505, 83, 71, 71, | |
| 160910 | - /* 720 */ 119, 119, 119, 119, 118, 118, 117, 117, 117, 116, | |
| 160911 | - /* 730 */ 442, 1183, 426, 428, 1183, 1183, 1184, 1185, 191, 261, | |
| 160912 | - /* 740 */ 278, 358, 508, 353, 507, 248, 407, 455, 137, 1539, | |
| 160913 | - /* 750 */ 1006, 349, 363, 472, 1539, 302, 1228, 405, 281, 119, | |
| 160914 | - /* 760 */ 119, 119, 119, 118, 118, 117, 117, 117, 116, 442, | |
| 160915 | - /* 770 */ 122, 123, 1207, 1207, 1041, 113, 1044, 1034, 1034, 120, | |
| 160916 | - /* 780 */ 120, 121, 121, 121, 121, 407, 452, 1183, 1184, 1185, | |
| 160917 | - /* 790 */ 1183, 1184, 1185, 275, 275, 269, 269, 489, 483, 1525, | |
| 160918 | - /* 800 */ 148, 363, 480, 564, 306, 555, 561, 489, 561, 122, | |
| 160919 | - /* 810 */ 123, 1207, 1207, 1041, 113, 1044, 1034, 1034, 120, 120, | |
| 160920 | - /* 820 */ 121, 121, 121, 121, 564, 886, 13, 13, 293, 119, | |
| 160921 | - /* 830 */ 119, 119, 119, 118, 118, 117, 117, 117, 116, 442, | |
| 160922 | - /* 840 */ 1183, 420, 1316, 564, 98, 417, 199, 13, 13, 150, | |
| 160923 | - /* 850 */ 306, 555, 1312, 322, 386, 407, 506, 478, 562, 400, | |
| 160924 | - /* 860 */ 920, 920, 425, 1539, 887, 292, 71, 71, 119, 119, | |
| 160925 | - /* 870 */ 119, 119, 118, 118, 117, 117, 117, 116, 442, 122, | |
| 160926 | - /* 880 */ 123, 1207, 1207, 1041, 113, 1044, 1034, 1034, 120, 120, | |
| 160927 | - /* 890 */ 121, 121, 121, 121, 564, 1149, 1183, 1184, 1185, 407, | |
| 160928 | - /* 900 */ 275, 275, 451, 303, 1089, 1089, 486, 448, 1149, 276, | |
| 160929 | - /* 910 */ 276, 1149, 1539, 561, 319, 286, 321, 71, 71, 429, | |
| 160930 | - /* 920 */ 451, 450, 561, 952, 101, 1207, 1207, 1041, 113, 1044, | |
| 160931 | - /* 930 */ 1034, 1034, 120, 120, 121, 121, 121, 121, 119, 119, | |
| 160932 | - /* 940 */ 119, 119, 118, 118, 117, 117, 117, 116, 442, 1105, | |
| 160933 | - /* 950 */ 1183, 1547, 564, 12, 437, 6, 329, 564, 834, 835, | |
| 160934 | - /* 960 */ 836, 1629, 393, 547, 1106, 246, 245, 244, 1545, 1258, | |
| 160935 | - /* 970 */ 413, 1521, 6, 1086, 310, 71, 71, 1086, 564, 1107, | |
| 160936 | - /* 980 */ 13, 13, 119, 119, 119, 119, 118, 118, 117, 117, | |
| 160937 | - /* 990 */ 117, 116, 442, 451, 104, 427, 537, 320, 275, 275, | |
| 160938 | - /* 1000 */ 906, 13, 13, 520, 1482, 1105, 1183, 1184, 1185, 484, | |
| 160939 | - /* 1010 */ 907, 561, 546, 564, 407, 536, 295, 478, 253, 200, | |
| 160940 | - /* 1020 */ 1106, 548, 1482, 1484, 1160, 1409, 16, 16, 126, 557, | |
| 160941 | - /* 1030 */ 413, 479, 311, 951, 407, 1107, 71, 71, 122, 123, | |
| 160942 | - /* 1040 */ 1207, 1207, 1041, 113, 1044, 1034, 1034, 120, 120, 121, | |
| 160943 | - /* 1050 */ 121, 121, 121, 1204, 407, 544, 552, 314, 122, 123, | |
| 160944 | - /* 1060 */ 1207, 1207, 1041, 113, 1044, 1034, 1034, 120, 120, 121, | |
| 160945 | - /* 1070 */ 121, 121, 121, 441, 144, 1160, 468, 146, 122, 111, | |
| 160946 | - /* 1080 */ 1207, 1207, 1041, 113, 1044, 1034, 1034, 120, 120, 121, | |
| 160947 | - /* 1090 */ 121, 121, 121, 247, 12, 1482, 422, 119, 119, 119, | |
| 160948 | - /* 1100 */ 119, 118, 118, 117, 117, 117, 116, 442, 1183, 564, | |
| 160949 | - /* 1110 */ 1204, 207, 404, 403, 858, 950, 294, 119, 119, 119, | |
| 160950 | - /* 1120 */ 119, 118, 118, 117, 117, 117, 116, 442, 564, 30, | |
| 160951 | - /* 1130 */ 564, 1409, 55, 55, 1599, 564, 895, 119, 119, 119, | |
| 160952 | - /* 1140 */ 119, 118, 118, 117, 117, 117, 116, 442, 510, 1409, | |
| 160953 | - /* 1150 */ 1409, 56, 56, 15, 15, 439, 438, 407, 13, 13, | |
| 160954 | - /* 1160 */ 31, 1187, 412, 1211, 1183, 1184, 1185, 196, 1213, 306, | |
| 160955 | - /* 1170 */ 555, 858, 462, 193, 926, 564, 1212, 489, 361, 925, | |
| 160956 | - /* 1180 */ 1183, 564, 123, 1207, 1207, 1041, 113, 1044, 1034, 1034, | |
| 160957 | - /* 1190 */ 120, 120, 121, 121, 121, 121, 1544, 1149, 43, 43, | |
| 160958 | - /* 1200 */ 6, 1214, 423, 1214, 13, 13, 564, 219, 538, 494, | |
| 160959 | - /* 1210 */ 1149, 108, 556, 1149, 4, 392, 1127, 434, 1187, 194, | |
| 160960 | - /* 1220 */ 424, 485, 337, 1315, 414, 171, 1253, 1321, 559, 57, | |
| 160961 | - /* 1230 */ 57, 564, 950, 564, 224, 247, 1183, 1184, 1185, 561, | |
| 160962 | - /* 1240 */ 119, 119, 119, 119, 118, 118, 117, 117, 117, 116, | |
| 160963 | - /* 1250 */ 442, 443, 564, 517, 13, 13, 44, 44, 275, 275, | |
| 160964 | - /* 1260 */ 1409, 275, 275, 553, 1353, 529, 213, 549, 456, 543, | |
| 160965 | - /* 1270 */ 465, 561, 564, 137, 561, 58, 58, 469, 405, 1222, | |
| 160966 | - /* 1280 */ 405, 274, 217, 108, 556, 110, 4, 405, 275, 275, | |
| 160967 | - /* 1290 */ 564, 1352, 1021, 564, 1228, 59, 59, 523, 106, 106, | |
| 160968 | - /* 1300 */ 559, 561, 275, 275, 412, 107, 457, 443, 566, 565, | |
| 160969 | - /* 1310 */ 564, 8, 1011, 60, 60, 561, 61, 61, 564, 965, | |
| 160970 | - /* 1320 */ 349, 926, 305, 443, 84, 204, 925, 966, 564, 306, | |
| 160971 | - /* 1330 */ 555, 435, 405, 62, 62, 553, 476, 105, 564, 103, | |
| 160972 | - /* 1340 */ 464, 45, 45, 1203, 1011, 1011, 1013, 1014, 27, 533, | |
| 160973 | - /* 1350 */ 564, 46, 46, 453, 532, 1572, 1171, 445, 1528, 564, | |
| 160974 | - /* 1360 */ 279, 47, 47, 327, 1021, 390, 390, 389, 264, 387, | |
| 160975 | - /* 1370 */ 106, 106, 843, 49, 49, 108, 556, 107, 4, 443, | |
| 160976 | - /* 1380 */ 566, 565, 50, 50, 1011, 225, 564, 313, 564, 96, | |
| 160977 | - /* 1390 */ 564, 228, 559, 524, 147, 312, 38, 1123, 564, 394, | |
| 160978 | - /* 1400 */ 466, 328, 280, 98, 544, 564, 17, 564, 323, 63, | |
| 160979 | - /* 1410 */ 63, 64, 64, 65, 65, 443, 1011, 1011, 1013, 1014, | |
| 160980 | - /* 1420 */ 27, 14, 14, 289, 564, 227, 564, 553, 66, 66, | |
| 160981 | - /* 1430 */ 128, 128, 477, 162, 564, 309, 135, 564, 1003, 277, | |
| 160982 | - /* 1440 */ 252, 533, 564, 1501, 564, 418, 534, 67, 67, 52, | |
| 160983 | - /* 1450 */ 52, 564, 1287, 226, 564, 1500, 1021, 68, 68, 208, | |
| 160984 | - /* 1460 */ 69, 69, 106, 106, 1286, 53, 53, 157, 157, 107, | |
| 160985 | - /* 1470 */ 873, 443, 566, 565, 158, 158, 1011, 76, 76, 564, | |
| 160986 | - /* 1480 */ 357, 564, 108, 556, 471, 4, 252, 408, 885, 884, | |
| 160987 | - /* 1490 */ 356, 564, 306, 555, 564, 473, 564, 252, 481, 559, | |
| 160988 | - /* 1500 */ 564, 334, 54, 54, 72, 72, 564, 230, 1011, 1011, | |
| 160989 | - /* 1510 */ 1013, 1014, 27, 564, 129, 129, 449, 73, 73, 130, | |
| 160990 | - /* 1520 */ 130, 564, 443, 131, 131, 519, 564, 873, 564, 127, | |
| 160991 | - /* 1530 */ 127, 333, 1071, 98, 553, 1349, 156, 156, 564, 495, | |
| 160992 | - /* 1540 */ 347, 249, 98, 338, 155, 155, 892, 893, 533, 136, | |
| 160993 | - /* 1550 */ 136, 134, 134, 532, 341, 1171, 445, 1587, 564, 279, | |
| 160994 | - /* 1560 */ 343, 132, 132, 1021, 390, 390, 389, 264, 387, 106, | |
| 160995 | - /* 1570 */ 106, 843, 564, 1067, 564, 249, 107, 564, 443, 566, | |
| 160996 | - /* 1580 */ 565, 133, 133, 1011, 225, 1015, 313, 108, 556, 1071, | |
| 160997 | - /* 1590 */ 4, 345, 968, 969, 312, 75, 75, 77, 77, 1300, | |
| 160998 | - /* 1600 */ 74, 74, 564, 1132, 559, 564, 108, 556, 959, 4, | |
| 160999 | - /* 1610 */ 252, 923, 1083, 110, 1083, 1011, 1011, 1013, 1014, 27, | |
| 161000 | - /* 1620 */ 1082, 1285, 1082, 559, 227, 42, 42, 443, 48, 48, | |
| 161001 | - /* 1630 */ 1284, 856, 162, 145, 924, 135, 110, 352, 362, 553, | |
| 161002 | - /* 1640 */ 1340, 1361, 1015, 1408, 1336, 301, 443, 1561, 1347, 550, | |
| 161003 | - /* 1650 */ 1414, 551, 226, 202, 1265, 1333, 1256, 1244, 553, 1243, | |
| 161004 | - /* 1660 */ 490, 1245, 1580, 267, 11, 391, 210, 223, 1021, 1390, | |
| 161005 | - /* 1670 */ 1395, 282, 365, 367, 106, 106, 930, 369, 454, 285, | |
| 161006 | - /* 1680 */ 1383, 107, 325, 443, 566, 565, 408, 1021, 1011, 326, | |
| 161007 | - /* 1690 */ 475, 306, 555, 106, 106, 100, 556, 500, 4, 1400, | |
| 161008 | - /* 1700 */ 107, 1399, 443, 566, 565, 398, 1283, 1011, 214, 355, | |
| 161009 | - /* 1710 */ 1473, 290, 559, 1472, 1583, 449, 554, 371, 331, 197, | |
| 161010 | - /* 1720 */ 1011, 1011, 1013, 1014, 27, 198, 209, 385, 1222, 173, | |
| 161011 | - /* 1730 */ 221, 256, 1520, 1518, 1219, 443, 79, 416, 206, 1011, | |
| 161012 | - /* 1740 */ 1011, 1013, 1014, 27, 83, 279, 182, 553, 82, 167, | |
| 161013 | - /* 1750 */ 390, 390, 389, 264, 387, 35, 1396, 843, 1478, 459, | |
| 161014 | - /* 1760 */ 175, 177, 460, 493, 178, 179, 180, 233, 96, 396, | |
| 161015 | - /* 1770 */ 225, 1402, 313, 1401, 36, 1404, 1021, 467, 186, 482, | |
| 161016 | - /* 1780 */ 312, 399, 106, 106, 237, 1467, 89, 1489, 488, 107, | |
| 161017 | - /* 1790 */ 239, 443, 566, 565, 268, 336, 1011, 190, 491, 340, | |
| 161018 | - /* 1800 */ 240, 401, 1246, 241, 509, 1294, 430, 1303, 91, 877, | |
| 161019 | - /* 1810 */ 227, 215, 1566, 1302, 1301, 1273, 1598, 432, 162, 518, | |
| 161020 | - /* 1820 */ 1272, 135, 1597, 354, 402, 433, 1271, 1596, 1011, 1011, | |
| 161021 | - /* 1830 */ 1013, 1014, 27, 1293, 299, 360, 300, 525, 226, 95, | |
| 161022 | - /* 1840 */ 254, 255, 1344, 364, 436, 125, 544, 1552, 10, 1453, | |
| 161023 | - /* 1850 */ 379, 1551, 102, 304, 97, 528, 34, 568, 1177, 263, | |
| 161024 | - /* 1860 */ 265, 266, 569, 1241, 1236, 172, 409, 410, 159, 383, | |
| 161025 | - /* 1870 */ 377, 366, 408, 1345, 1343, 368, 370, 306, 555, 1342, | |
| 161026 | - /* 1880 */ 1326, 1325, 1368, 201, 384, 1367, 1505, 1506, 160, 1504, | |
| 161027 | - /* 1890 */ 1503, 142, 161, 211, 212, 78, 830, 444, 203, 308, | |
| 161028 | - /* 1900 */ 297, 449, 222, 1081, 139, 1079, 316, 174, 163, 1203, | |
| 161029 | - /* 1910 */ 229, 176, 232, 909, 324, 1095, 164, 181, 165, 419, | |
| 161030 | - /* 1920 */ 421, 183, 85, 86, 87, 88, 166, 1098, 235, 234, | |
| 161031 | - /* 1930 */ 1094, 152, 18, 236, 335, 1087, 252, 1216, 487, 238, | |
| 161032 | - /* 1940 */ 37, 187, 188, 845, 492, 356, 242, 348, 496, 189, | |
| 161033 | - /* 1950 */ 90, 93, 19, 20, 168, 875, 501, 351, 92, 504, | |
| 161034 | - /* 1960 */ 888, 153, 511, 1133, 1165, 154, 298, 1047, 94, 1134, | |
| 161035 | - /* 1970 */ 39, 958, 216, 271, 273, 192, 953, 110, 1151, 251, | |
| 161036 | - /* 1980 */ 1155, 21, 1159, 22, 1158, 1139, 1153, 33, 23, 24, | |
| 161037 | - /* 1990 */ 540, 25, 195, 98, 26, 1062, 1048, 1046, 1050, 1104, | |
| 161038 | - /* 2000 */ 7, 1103, 257, 258, 1051, 28, 40, 560, 1016, 857, | |
| 161039 | - /* 2010 */ 109, 29, 919, 138, 259, 260, 170, 1589, 388, 1588, | |
| 161040 | - /* 2020 */ 1173, 1172, | |
| 160862 | + /* 0 */ 566, 1307, 566, 1286, 201, 201, 566, 116, 112, 222, | |
| 160863 | + /* 10 */ 566, 1307, 377, 566, 116, 112, 222, 397, 408, 409, | |
| 160864 | + /* 20 */ 1260, 378, 1269, 41, 41, 41, 41, 1412, 1517, 71, | |
| 160865 | + /* 30 */ 71, 967, 1258, 41, 41, 491, 71, 71, 272, 968, | |
| 160866 | + /* 40 */ 298, 476, 298, 123, 124, 114, 1210, 1210, 1044, 1047, | |
| 160867 | + /* 50 */ 1036, 1036, 121, 121, 122, 122, 122, 122, 543, 409, | |
| 160868 | + /* 60 */ 1234, 1, 1, 573, 2, 1238, 548, 116, 112, 222, | |
| 160869 | + /* 70 */ 309, 480, 142, 548, 1272, 524, 116, 112, 222, 1320, | |
| 160870 | + /* 80 */ 417, 523, 547, 123, 124, 114, 1210, 1210, 1044, 1047, | |
| 160871 | + /* 90 */ 1036, 1036, 121, 121, 122, 122, 122, 122, 424, 116, | |
| 160872 | + /* 100 */ 112, 222, 120, 120, 120, 120, 119, 119, 118, 118, | |
| 160873 | + /* 110 */ 118, 117, 113, 444, 277, 277, 277, 277, 560, 560, | |
| 160874 | + /* 120 */ 560, 1558, 376, 1560, 1186, 375, 1157, 563, 1157, 563, | |
| 160875 | + /* 130 */ 409, 1558, 537, 252, 219, 1553, 99, 141, 449, 6, | |
| 160876 | + /* 140 */ 365, 233, 120, 120, 120, 120, 119, 119, 118, 118, | |
| 160877 | + /* 150 */ 118, 117, 113, 444, 123, 124, 114, 1210, 1210, 1044, | |
| 160878 | + /* 160 */ 1047, 1036, 1036, 121, 121, 122, 122, 122, 122, 138, | |
| 160879 | + /* 170 */ 289, 1186, 1546, 448, 118, 118, 118, 117, 113, 444, | |
| 160880 | + /* 180 */ 125, 1186, 1187, 1188, 144, 465, 334, 566, 150, 127, | |
| 160881 | + /* 190 */ 444, 122, 122, 122, 122, 115, 120, 120, 120, 120, | |
| 160882 | + /* 200 */ 119, 119, 118, 118, 118, 117, 113, 444, 454, 419, | |
| 160883 | + /* 210 */ 13, 13, 215, 120, 120, 120, 120, 119, 119, 118, | |
| 160884 | + /* 220 */ 118, 118, 117, 113, 444, 422, 308, 557, 1186, 1187, | |
| 160885 | + /* 230 */ 1188, 441, 440, 409, 1271, 122, 122, 122, 122, 120, | |
| 160886 | + /* 240 */ 120, 120, 120, 119, 119, 118, 118, 118, 117, 113, | |
| 160887 | + /* 250 */ 444, 1543, 98, 1033, 1033, 1045, 1048, 123, 124, 114, | |
| 160888 | + /* 260 */ 1210, 1210, 1044, 1047, 1036, 1036, 121, 121, 122, 122, | |
| 160889 | + /* 270 */ 122, 122, 566, 406, 405, 1186, 566, 409, 1217, 319, | |
| 160890 | + /* 280 */ 1217, 80, 81, 120, 120, 120, 120, 119, 119, 118, | |
| 160891 | + /* 290 */ 118, 118, 117, 113, 444, 70, 70, 1186, 1604, 71, | |
| 160892 | + /* 300 */ 71, 123, 124, 114, 1210, 1210, 1044, 1047, 1036, 1036, | |
| 160893 | + /* 310 */ 121, 121, 122, 122, 122, 122, 120, 120, 120, 120, | |
| 160894 | + /* 320 */ 119, 119, 118, 118, 118, 117, 113, 444, 1037, 210, | |
| 160895 | + /* 330 */ 1186, 365, 1186, 1187, 1188, 245, 548, 399, 504, 501, | |
| 160896 | + /* 340 */ 500, 108, 558, 138, 4, 516, 933, 433, 499, 217, | |
| 160897 | + /* 350 */ 514, 522, 352, 879, 1186, 1187, 1188, 383, 561, 566, | |
| 160898 | + /* 360 */ 120, 120, 120, 120, 119, 119, 118, 118, 118, 117, | |
| 160899 | + /* 370 */ 113, 444, 277, 277, 16, 16, 1598, 441, 440, 153, | |
| 160900 | + /* 380 */ 409, 445, 13, 13, 1279, 563, 1214, 1186, 1187, 1188, | |
| 160901 | + /* 390 */ 1003, 1216, 264, 555, 1574, 186, 566, 427, 138, 1215, | |
| 160902 | + /* 400 */ 308, 557, 472, 138, 123, 124, 114, 1210, 1210, 1044, | |
| 160903 | + /* 410 */ 1047, 1036, 1036, 121, 121, 122, 122, 122, 122, 55, | |
| 160904 | + /* 420 */ 55, 413, 1023, 507, 1217, 1186, 1217, 474, 106, 106, | |
| 160905 | + /* 430 */ 1312, 1312, 1186, 171, 566, 384, 107, 380, 445, 568, | |
| 160906 | + /* 440 */ 567, 430, 1543, 1013, 332, 549, 565, 263, 280, 360, | |
| 160907 | + /* 450 */ 510, 355, 509, 250, 491, 308, 557, 71, 71, 351, | |
| 160908 | + /* 460 */ 308, 557, 374, 120, 120, 120, 120, 119, 119, 118, | |
| 160909 | + /* 470 */ 118, 118, 117, 113, 444, 1013, 1013, 1015, 1016, 27, | |
| 160910 | + /* 480 */ 277, 277, 1186, 1187, 1188, 1152, 566, 528, 409, 1186, | |
| 160911 | + /* 490 */ 1187, 1188, 348, 563, 548, 1260, 533, 517, 1152, 1516, | |
| 160912 | + /* 500 */ 317, 1152, 285, 550, 485, 569, 566, 569, 482, 51, | |
| 160913 | + /* 510 */ 51, 207, 123, 124, 114, 1210, 1210, 1044, 1047, 1036, | |
| 160914 | + /* 520 */ 1036, 121, 121, 122, 122, 122, 122, 171, 1412, 13, | |
| 160915 | + /* 530 */ 13, 409, 277, 277, 1186, 505, 119, 119, 118, 118, | |
| 160916 | + /* 540 */ 118, 117, 113, 444, 429, 563, 518, 220, 515, 1552, | |
| 160917 | + /* 550 */ 365, 546, 1186, 6, 532, 123, 124, 114, 1210, 1210, | |
| 160918 | + /* 560 */ 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, 122, | |
| 160919 | + /* 570 */ 145, 120, 120, 120, 120, 119, 119, 118, 118, 118, | |
| 160920 | + /* 580 */ 117, 113, 444, 245, 566, 474, 504, 501, 500, 566, | |
| 160921 | + /* 590 */ 1481, 1186, 1187, 1188, 1310, 1310, 499, 1186, 149, 425, | |
| 160922 | + /* 600 */ 1186, 480, 409, 274, 365, 952, 872, 56, 56, 1186, | |
| 160923 | + /* 610 */ 1187, 1188, 71, 71, 120, 120, 120, 120, 119, 119, | |
| 160924 | + /* 620 */ 118, 118, 118, 117, 113, 444, 123, 124, 114, 1210, | |
| 160925 | + /* 630 */ 1210, 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, | |
| 160926 | + /* 640 */ 122, 409, 541, 1552, 83, 865, 98, 6, 928, 529, | |
| 160927 | + /* 650 */ 848, 543, 151, 927, 1186, 1187, 1188, 1186, 1187, 1188, | |
| 160928 | + /* 660 */ 290, 1543, 187, 1633, 395, 123, 124, 114, 1210, 1210, | |
| 160929 | + /* 670 */ 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, 122, | |
| 160930 | + /* 680 */ 566, 954, 566, 453, 953, 120, 120, 120, 120, 119, | |
| 160931 | + /* 690 */ 119, 118, 118, 118, 117, 113, 444, 1152, 221, 1186, | |
| 160932 | + /* 700 */ 331, 453, 452, 13, 13, 13, 13, 1003, 365, 463, | |
| 160933 | + /* 710 */ 1152, 193, 409, 1152, 382, 1543, 1170, 32, 297, 474, | |
| 160934 | + /* 720 */ 195, 1527, 5, 952, 120, 120, 120, 120, 119, 119, | |
| 160935 | + /* 730 */ 118, 118, 118, 117, 113, 444, 123, 124, 114, 1210, | |
| 160936 | + /* 740 */ 1210, 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, | |
| 160937 | + /* 750 */ 122, 409, 1067, 419, 1186, 1024, 1186, 1187, 1188, 1186, | |
| 160938 | + /* 760 */ 419, 332, 460, 320, 544, 1545, 442, 442, 442, 566, | |
| 160939 | + /* 770 */ 3, 117, 113, 444, 453, 123, 124, 114, 1210, 1210, | |
| 160940 | + /* 780 */ 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, 122, | |
| 160941 | + /* 790 */ 1473, 566, 15, 15, 293, 120, 120, 120, 120, 119, | |
| 160942 | + /* 800 */ 119, 118, 118, 118, 117, 113, 444, 1186, 566, 1486, | |
| 160943 | + /* 810 */ 1412, 1186, 1187, 1188, 13, 13, 1186, 1187, 1188, 1544, | |
| 160944 | + /* 820 */ 271, 271, 409, 286, 308, 557, 1008, 1486, 1488, 196, | |
| 160945 | + /* 830 */ 288, 71, 71, 563, 120, 120, 120, 120, 119, 119, | |
| 160946 | + /* 840 */ 118, 118, 118, 117, 113, 444, 123, 124, 114, 1210, | |
| 160947 | + /* 850 */ 1210, 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, | |
| 160948 | + /* 860 */ 122, 409, 201, 1087, 1186, 1187, 1188, 1324, 304, 1529, | |
| 160949 | + /* 870 */ 388, 278, 278, 450, 564, 402, 922, 922, 566, 563, | |
| 160950 | + /* 880 */ 566, 426, 491, 480, 563, 123, 124, 114, 1210, 1210, | |
| 160951 | + /* 890 */ 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, 122, | |
| 160952 | + /* 900 */ 1486, 71, 71, 13, 13, 120, 120, 120, 120, 119, | |
| 160953 | + /* 910 */ 119, 118, 118, 118, 117, 113, 444, 566, 545, 566, | |
| 160954 | + /* 920 */ 1577, 573, 2, 1238, 1092, 1092, 488, 1480, 309, 1525, | |
| 160955 | + /* 930 */ 142, 324, 409, 836, 837, 838, 312, 1320, 305, 363, | |
| 160956 | + /* 940 */ 43, 43, 57, 57, 120, 120, 120, 120, 119, 119, | |
| 160957 | + /* 950 */ 118, 118, 118, 117, 113, 444, 123, 124, 114, 1210, | |
| 160958 | + /* 960 */ 1210, 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, | |
| 160959 | + /* 970 */ 122, 12, 277, 277, 566, 1152, 409, 572, 428, 1238, | |
| 160960 | + /* 980 */ 465, 334, 296, 474, 309, 563, 142, 249, 1152, 308, | |
| 160961 | + /* 990 */ 557, 1152, 321, 1320, 323, 491, 455, 71, 71, 233, | |
| 160962 | + /* 1000 */ 283, 101, 114, 1210, 1210, 1044, 1047, 1036, 1036, 121, | |
| 160963 | + /* 1010 */ 121, 122, 122, 122, 122, 120, 120, 120, 120, 119, | |
| 160964 | + /* 1020 */ 119, 118, 118, 118, 117, 113, 444, 1108, 277, 277, | |
| 160965 | + /* 1030 */ 1412, 448, 394, 1230, 439, 277, 277, 248, 247, 246, | |
| 160966 | + /* 1040 */ 1319, 563, 1109, 313, 198, 294, 491, 1318, 563, 464, | |
| 160967 | + /* 1050 */ 566, 1427, 394, 1130, 1023, 233, 414, 1110, 295, 120, | |
| 160968 | + /* 1060 */ 120, 120, 120, 119, 119, 118, 118, 118, 117, 113, | |
| 160969 | + /* 1070 */ 444, 1014, 104, 71, 71, 1013, 322, 496, 908, 566, | |
| 160970 | + /* 1080 */ 277, 277, 277, 277, 1108, 1261, 415, 448, 909, 361, | |
| 160971 | + /* 1090 */ 1571, 1315, 409, 563, 952, 563, 9, 202, 255, 1109, | |
| 160972 | + /* 1100 */ 316, 487, 44, 44, 249, 559, 415, 1013, 1013, 1015, | |
| 160973 | + /* 1110 */ 443, 1231, 409, 1603, 1110, 897, 123, 124, 114, 1210, | |
| 160974 | + /* 1120 */ 1210, 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, | |
| 160975 | + /* 1130 */ 122, 1231, 409, 1207, 215, 554, 123, 124, 114, 1210, | |
| 160976 | + /* 1140 */ 1210, 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, | |
| 160977 | + /* 1150 */ 122, 1131, 1631, 470, 1631, 255, 123, 111, 114, 1210, | |
| 160978 | + /* 1160 */ 1210, 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, | |
| 160979 | + /* 1170 */ 122, 1131, 1632, 414, 1632, 120, 120, 120, 120, 119, | |
| 160980 | + /* 1180 */ 119, 118, 118, 118, 117, 113, 444, 221, 209, 351, | |
| 160981 | + /* 1190 */ 1207, 1207, 147, 1426, 491, 120, 120, 120, 120, 119, | |
| 160982 | + /* 1200 */ 119, 118, 118, 118, 117, 113, 444, 1256, 539, 519, | |
| 160983 | + /* 1210 */ 888, 551, 952, 12, 566, 120, 120, 120, 120, 119, | |
| 160984 | + /* 1220 */ 119, 118, 118, 118, 117, 113, 444, 538, 566, 860, | |
| 160985 | + /* 1230 */ 1129, 361, 1571, 346, 1356, 409, 1163, 58, 58, 339, | |
| 160986 | + /* 1240 */ 1355, 508, 277, 277, 277, 277, 277, 277, 1207, 889, | |
| 160987 | + /* 1250 */ 1129, 59, 59, 459, 363, 563, 566, 563, 96, 563, | |
| 160988 | + /* 1260 */ 124, 114, 1210, 1210, 1044, 1047, 1036, 1036, 121, 121, | |
| 160989 | + /* 1270 */ 122, 122, 122, 122, 566, 1412, 566, 281, 1186, 60, | |
| 160990 | + /* 1280 */ 60, 110, 392, 392, 391, 266, 389, 860, 1163, 845, | |
| 160991 | + /* 1290 */ 566, 481, 566, 436, 341, 1152, 344, 61, 61, 62, | |
| 160992 | + /* 1300 */ 62, 967, 227, 1550, 315, 431, 540, 6, 1152, 968, | |
| 160993 | + /* 1310 */ 566, 1152, 314, 45, 45, 46, 46, 512, 120, 120, | |
| 160994 | + /* 1320 */ 120, 120, 119, 119, 118, 118, 118, 117, 113, 444, | |
| 160995 | + /* 1330 */ 416, 173, 1532, 47, 47, 1186, 1187, 1188, 108, 558, | |
| 160996 | + /* 1340 */ 325, 4, 229, 1551, 928, 566, 437, 6, 566, 927, | |
| 160997 | + /* 1350 */ 164, 566, 1290, 137, 1190, 561, 566, 1549, 566, 1089, | |
| 160998 | + /* 1360 */ 566, 6, 566, 1089, 531, 566, 868, 8, 49, 49, | |
| 160999 | + /* 1370 */ 228, 50, 50, 566, 63, 63, 566, 457, 445, 64, | |
| 161000 | + /* 1380 */ 64, 65, 65, 14, 14, 66, 66, 407, 129, 129, | |
| 161001 | + /* 1390 */ 555, 566, 458, 566, 1505, 486, 67, 67, 566, 52, | |
| 161002 | + /* 1400 */ 52, 546, 407, 467, 535, 410, 226, 1023, 566, 534, | |
| 161003 | + /* 1410 */ 308, 557, 1190, 407, 68, 68, 69, 69, 566, 1023, | |
| 161004 | + /* 1420 */ 566, 53, 53, 868, 1014, 106, 106, 525, 1013, 566, | |
| 161005 | + /* 1430 */ 1504, 159, 159, 107, 451, 445, 568, 567, 471, 307, | |
| 161006 | + /* 1440 */ 1013, 160, 160, 76, 76, 566, 1548, 466, 407, 407, | |
| 161007 | + /* 1450 */ 6, 1225, 54, 54, 478, 276, 219, 566, 887, 886, | |
| 161008 | + /* 1460 */ 1013, 1013, 1015, 84, 206, 1206, 230, 282, 72, 72, | |
| 161009 | + /* 1470 */ 329, 483, 1013, 1013, 1015, 1016, 27, 1576, 1174, 447, | |
| 161010 | + /* 1480 */ 130, 130, 281, 148, 105, 38, 103, 392, 392, 391, | |
| 161011 | + /* 1490 */ 266, 389, 566, 1126, 845, 396, 566, 108, 558, 566, | |
| 161012 | + /* 1500 */ 4, 311, 566, 30, 17, 566, 279, 227, 566, 315, | |
| 161013 | + /* 1510 */ 108, 558, 468, 4, 561, 73, 73, 314, 566, 157, | |
| 161014 | + /* 1520 */ 157, 566, 131, 131, 526, 132, 132, 561, 128, 128, | |
| 161015 | + /* 1530 */ 566, 158, 158, 566, 31, 291, 566, 445, 330, 521, | |
| 161016 | + /* 1540 */ 98, 152, 152, 420, 136, 136, 1005, 229, 254, 555, | |
| 161017 | + /* 1550 */ 445, 479, 336, 135, 135, 164, 133, 133, 137, 134, | |
| 161018 | + /* 1560 */ 134, 875, 555, 535, 566, 473, 566, 254, 536, 475, | |
| 161019 | + /* 1570 */ 335, 254, 98, 894, 895, 228, 535, 566, 1023, 566, | |
| 161020 | + /* 1580 */ 1074, 534, 210, 232, 106, 106, 1352, 75, 75, 77, | |
| 161021 | + /* 1590 */ 77, 1023, 107, 340, 445, 568, 567, 106, 106, 1013, | |
| 161022 | + /* 1600 */ 74, 74, 42, 42, 566, 107, 343, 445, 568, 567, | |
| 161023 | + /* 1610 */ 410, 497, 1013, 251, 359, 308, 557, 1135, 349, 875, | |
| 161024 | + /* 1620 */ 98, 1070, 345, 251, 358, 1591, 347, 48, 48, 1017, | |
| 161025 | + /* 1630 */ 1303, 1013, 1013, 1015, 1016, 27, 1289, 1287, 1074, 451, | |
| 161026 | + /* 1640 */ 961, 925, 254, 110, 1013, 1013, 1015, 1016, 27, 1174, | |
| 161027 | + /* 1650 */ 447, 970, 971, 281, 108, 558, 1288, 4, 392, 392, | |
| 161028 | + /* 1660 */ 391, 266, 389, 1343, 1086, 845, 1086, 1085, 858, 1085, | |
| 161029 | + /* 1670 */ 146, 561, 926, 354, 110, 303, 364, 553, 227, 1364, | |
| 161030 | + /* 1680 */ 315, 108, 558, 1411, 4, 1339, 492, 1017, 314, 1350, | |
| 161031 | + /* 1690 */ 1565, 552, 1417, 1268, 445, 204, 1259, 1247, 561, 1246, | |
| 161032 | + /* 1700 */ 1248, 1584, 269, 1336, 367, 369, 555, 371, 11, 212, | |
| 161033 | + /* 1710 */ 393, 225, 1393, 284, 1398, 456, 287, 327, 229, 328, | |
| 161034 | + /* 1720 */ 292, 445, 1386, 216, 333, 1403, 164, 477, 373, 137, | |
| 161035 | + /* 1730 */ 1402, 400, 502, 555, 1286, 1023, 357, 1477, 199, 1587, | |
| 161036 | + /* 1740 */ 211, 106, 106, 932, 1476, 1225, 228, 556, 175, 107, | |
| 161037 | + /* 1750 */ 200, 445, 568, 567, 258, 387, 1013, 1524, 1522, 223, | |
| 161038 | + /* 1760 */ 1222, 418, 1023, 83, 208, 79, 82, 184, 106, 106, | |
| 161039 | + /* 1770 */ 1482, 169, 177, 461, 179, 462, 107, 1399, 445, 568, | |
| 161040 | + /* 1780 */ 567, 410, 180, 1013, 495, 181, 308, 557, 1013, 1013, | |
| 161041 | + /* 1790 */ 1015, 1016, 27, 182, 35, 235, 100, 558, 398, 4, | |
| 161042 | + /* 1800 */ 96, 1405, 1404, 36, 484, 469, 1407, 188, 401, 1471, | |
| 161043 | + /* 1810 */ 451, 89, 1493, 561, 239, 1013, 1013, 1015, 1016, 27, | |
| 161044 | + /* 1820 */ 490, 338, 270, 241, 192, 342, 493, 242, 403, 1249, | |
| 161045 | + /* 1830 */ 243, 511, 432, 1297, 1306, 91, 445, 1305, 1304, 879, | |
| 161046 | + /* 1840 */ 217, 434, 435, 1570, 1276, 1602, 520, 1601, 555, 301, | |
| 161047 | + /* 1850 */ 527, 404, 1275, 302, 356, 1274, 1600, 95, 1347, 366, | |
| 161048 | + /* 1860 */ 1296, 362, 1348, 368, 256, 257, 1556, 1555, 438, 1346, | |
| 161049 | + /* 1870 */ 370, 126, 1345, 10, 1371, 546, 381, 1023, 102, 1457, | |
| 161050 | + /* 1880 */ 97, 530, 34, 106, 106, 570, 1180, 372, 265, 1329, | |
| 161051 | + /* 1890 */ 379, 107, 203, 445, 568, 567, 1328, 385, 1013, 1370, | |
| 161052 | + /* 1900 */ 386, 267, 268, 571, 1244, 161, 1239, 162, 1509, 1510, | |
| 161053 | + /* 1910 */ 1508, 143, 1507, 299, 832, 213, 214, 78, 446, 205, | |
| 161054 | + /* 1920 */ 310, 306, 163, 224, 1084, 140, 1082, 318, 165, 176, | |
| 161055 | + /* 1930 */ 1013, 1013, 1015, 1016, 27, 178, 1206, 231, 911, 234, | |
| 161056 | + /* 1940 */ 326, 1098, 183, 421, 166, 167, 411, 185, 85, 423, | |
| 161057 | + /* 1950 */ 412, 86, 174, 87, 168, 88, 1101, 236, 1097, 237, | |
| 161058 | + /* 1960 */ 154, 18, 238, 254, 337, 1219, 489, 1090, 240, 190, | |
| 161059 | + /* 1970 */ 37, 847, 189, 494, 358, 244, 350, 506, 191, 877, | |
| 161060 | + /* 1980 */ 90, 498, 19, 20, 503, 92, 353, 890, 300, 170, | |
| 161061 | + /* 1990 */ 155, 93, 513, 94, 1168, 156, 1050, 1137, 39, 218, | |
| 161062 | + /* 2000 */ 273, 275, 1136, 960, 194, 955, 110, 1154, 1158, 253, | |
| 161063 | + /* 2010 */ 7, 1162, 1156, 21, 22, 1161, 1142, 23, 24, 25, | |
| 161064 | + /* 2020 */ 33, 542, 26, 260, 197, 98, 1065, 1051, 1049, 1053, | |
| 161065 | + /* 2030 */ 1107, 1054, 1106, 259, 28, 40, 562, 1018, 859, 109, | |
| 161066 | + /* 2040 */ 29, 921, 390, 1176, 172, 139, 1175, 1235, 261, 1235, | |
| 161067 | + /* 2050 */ 1235, 1235, 1235, 1235, 1235, 1235, 1235, 262, 1235, 1235, | |
| 161068 | + /* 2060 */ 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1593, 1592, | |
| 161041 | 161069 | }; |
| 161042 | 161070 | static const YYCODETYPE yy_lookahead[] = { |
| 161043 | - /* 0 */ 192, 273, 274, 275, 192, 192, 273, 274, 275, 192, | |
| 161044 | - /* 10 */ 218, 215, 192, 218, 192, 212, 234, 235, 205, 19, | |
| 161045 | - /* 20 */ 11, 192, 294, 215, 216, 203, 192, 203, 209, 210, | |
| 161046 | - /* 30 */ 211, 31, 215, 216, 205, 215, 216, 215, 216, 39, | |
| 161047 | - /* 40 */ 227, 215, 229, 43, 44, 45, 46, 47, 48, 49, | |
| 161048 | - /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 192, 19, | |
| 161049 | - /* 60 */ 238, 239, 238, 239, 215, 273, 274, 275, 273, 274, | |
| 161050 | - /* 70 */ 275, 237, 21, 251, 252, 251, 273, 274, 275, 255, | |
| 161051 | - /* 80 */ 256, 215, 216, 43, 44, 45, 46, 47, 48, 49, | |
| 161052 | - /* 90 */ 50, 51, 52, 53, 54, 55, 56, 57, 209, 210, | |
| 161053 | - /* 100 */ 211, 76, 102, 103, 104, 105, 106, 107, 108, 109, | |
| 161054 | - /* 110 */ 110, 111, 112, 59, 89, 111, 112, 92, 252, 307, | |
| 161055 | - /* 120 */ 308, 313, 314, 25, 312, 192, 86, 261, 88, 19, | |
| 161056 | - /* 130 */ 313, 80, 315, 313, 314, 25, 127, 128, 54, 55, | |
| 161057 | - /* 140 */ 56, 57, 102, 103, 104, 105, 106, 107, 108, 109, | |
| 161058 | - /* 150 */ 110, 111, 112, 43, 44, 45, 46, 47, 48, 49, | |
| 161059 | - /* 160 */ 50, 51, 52, 53, 54, 55, 56, 57, 192, 115, | |
| 161060 | - /* 170 */ 116, 117, 118, 122, 192, 121, 122, 123, 202, 69, | |
| 161061 | - /* 180 */ 204, 22, 23, 16, 25, 131, 102, 103, 104, 105, | |
| 161062 | - /* 190 */ 106, 107, 108, 109, 110, 111, 112, 215, 216, 19, | |
| 161063 | - /* 200 */ 54, 55, 56, 57, 58, 108, 109, 110, 111, 112, | |
| 161064 | - /* 210 */ 192, 160, 102, 103, 104, 105, 106, 107, 108, 109, | |
| 161065 | - /* 220 */ 110, 111, 112, 43, 44, 45, 46, 47, 48, 49, | |
| 161066 | - /* 230 */ 50, 51, 52, 53, 54, 55, 56, 57, 19, 141, | |
| 161067 | - /* 240 */ 307, 308, 272, 24, 77, 312, 79, 67, 102, 103, | |
| 161068 | - /* 250 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 277, | |
| 161069 | - /* 260 */ 101, 112, 43, 44, 45, 46, 47, 48, 49, 50, | |
| 161070 | - /* 270 */ 51, 52, 53, 54, 55, 56, 57, 26, 127, 128, | |
| 161071 | - /* 280 */ 310, 311, 102, 103, 104, 105, 106, 107, 108, 109, | |
| 161072 | - /* 290 */ 110, 111, 112, 184, 185, 186, 187, 188, 189, 186, | |
| 161073 | - /* 300 */ 187, 188, 189, 194, 76, 196, 192, 194, 19, 196, | |
| 161074 | - /* 310 */ 59, 25, 203, 192, 59, 87, 203, 89, 164, 165, | |
| 161075 | - /* 320 */ 92, 102, 103, 104, 105, 106, 107, 108, 109, 110, | |
| 161076 | - /* 330 */ 111, 112, 43, 44, 45, 46, 47, 48, 49, 50, | |
| 161077 | - /* 340 */ 51, 52, 53, 54, 55, 56, 57, 238, 239, 73, | |
| 161078 | - /* 350 */ 192, 238, 239, 22, 23, 100, 25, 81, 237, 229, | |
| 161079 | - /* 360 */ 251, 23, 204, 25, 251, 272, 115, 116, 117, 214, | |
| 161080 | - /* 370 */ 115, 116, 144, 192, 265, 120, 262, 222, 265, 102, | |
| 161081 | - /* 380 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, | |
| 161082 | - /* 390 */ 192, 102, 103, 104, 105, 106, 107, 108, 109, 110, | |
| 161083 | - /* 400 */ 111, 112, 126, 310, 311, 192, 297, 152, 153, 154, | |
| 161084 | - /* 410 */ 297, 125, 192, 137, 138, 19, 295, 100, 192, 23, | |
| 161085 | - /* 420 */ 22, 106, 107, 108, 109, 110, 111, 112, 215, 216, | |
| 161086 | - /* 430 */ 106, 107, 101, 116, 192, 215, 216, 120, 149, 43, | |
| 161087 | - /* 440 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, | |
| 161088 | - /* 450 */ 54, 55, 56, 57, 222, 117, 224, 59, 19, 187, | |
| 161089 | - /* 460 */ 59, 189, 23, 282, 232, 252, 194, 192, 196, 152, | |
| 161090 | - /* 470 */ 153, 154, 252, 72, 261, 203, 152, 248, 154, 250, | |
| 161091 | - /* 480 */ 142, 261, 43, 44, 45, 46, 47, 48, 49, 50, | |
| 161092 | - /* 490 */ 51, 52, 53, 54, 55, 56, 57, 192, 102, 103, | |
| 161093 | - /* 500 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 267, | |
| 161094 | - /* 510 */ 238, 239, 237, 115, 116, 117, 115, 116, 117, 192, | |
| 161095 | - /* 520 */ 59, 118, 192, 251, 121, 122, 123, 73, 19, 192, | |
| 161096 | - /* 530 */ 59, 192, 23, 72, 131, 308, 22, 265, 22, 312, | |
| 161097 | - /* 540 */ 24, 102, 103, 104, 105, 106, 107, 108, 109, 110, | |
| 161098 | - /* 550 */ 111, 112, 43, 44, 45, 46, 47, 48, 49, 50, | |
| 161099 | - /* 560 */ 51, 52, 53, 54, 55, 56, 57, 19, 192, 297, | |
| 161100 | - /* 570 */ 192, 23, 267, 59, 203, 59, 115, 116, 117, 108, | |
| 161101 | - /* 580 */ 126, 127, 128, 192, 192, 192, 115, 116, 117, 262, | |
| 161102 | - /* 590 */ 59, 43, 44, 45, 46, 47, 48, 49, 50, 51, | |
| 161103 | - /* 600 */ 52, 53, 54, 55, 56, 57, 267, 215, 216, 238, | |
| 161104 | - /* 610 */ 239, 102, 103, 104, 105, 106, 107, 108, 109, 110, | |
| 161105 | - /* 620 */ 111, 112, 251, 45, 46, 47, 59, 49, 291, 115, | |
| 161106 | - /* 630 */ 116, 117, 116, 81, 192, 305, 306, 19, 192, 268, | |
| 161107 | - /* 640 */ 19, 23, 22, 192, 252, 24, 115, 116, 117, 192, | |
| 161108 | - /* 650 */ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, | |
| 161109 | - /* 660 */ 112, 43, 44, 45, 46, 47, 48, 49, 50, 51, | |
| 161110 | - /* 670 */ 52, 53, 54, 55, 56, 57, 19, 22, 23, 59, | |
| 161111 | - /* 680 */ 23, 303, 115, 116, 117, 192, 240, 234, 235, 137, | |
| 161112 | - /* 690 */ 138, 240, 308, 192, 22, 192, 312, 22, 120, 306, | |
| 161113 | - /* 700 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, | |
| 161114 | - /* 710 */ 53, 54, 55, 56, 57, 197, 95, 150, 215, 216, | |
| 161115 | - /* 720 */ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, | |
| 161116 | - /* 730 */ 112, 59, 231, 112, 59, 115, 116, 117, 25, 118, | |
| 161117 | - /* 740 */ 119, 120, 121, 122, 123, 124, 19, 243, 81, 303, | |
| 161118 | - /* 750 */ 23, 130, 192, 192, 303, 252, 101, 253, 203, 102, | |
| 161119 | - /* 760 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, | |
| 161120 | - /* 770 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, | |
| 161121 | - /* 780 */ 53, 54, 55, 56, 57, 19, 119, 115, 116, 117, | |
| 161122 | - /* 790 */ 115, 116, 117, 238, 239, 238, 239, 192, 280, 192, | |
| 161123 | - /* 800 */ 240, 192, 284, 192, 137, 138, 251, 192, 251, 43, | |
| 161124 | - /* 810 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, | |
| 161125 | - /* 820 */ 54, 55, 56, 57, 192, 35, 215, 216, 267, 102, | |
| 161126 | - /* 830 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, | |
| 161127 | - /* 840 */ 59, 230, 237, 192, 25, 192, 192, 215, 216, 240, | |
| 161128 | - /* 850 */ 137, 138, 237, 16, 200, 19, 66, 192, 133, 205, | |
| 161129 | - /* 860 */ 135, 136, 230, 303, 74, 203, 215, 216, 102, 103, | |
| 161130 | - /* 870 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 43, | |
| 161131 | - /* 880 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, | |
| 161132 | - /* 890 */ 54, 55, 56, 57, 192, 76, 115, 116, 117, 19, | |
| 161133 | - /* 900 */ 238, 239, 192, 252, 126, 127, 128, 192, 89, 238, | |
| 161134 | - /* 910 */ 239, 92, 303, 251, 77, 262, 79, 215, 216, 129, | |
| 161135 | - /* 920 */ 210, 211, 251, 142, 158, 45, 46, 47, 48, 49, | |
| 161136 | - /* 930 */ 50, 51, 52, 53, 54, 55, 56, 57, 102, 103, | |
| 161137 | - /* 940 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 12, | |
| 161138 | - /* 950 */ 59, 308, 192, 212, 252, 312, 291, 192, 7, 8, | |
| 161139 | - /* 960 */ 9, 300, 301, 203, 27, 126, 127, 128, 308, 207, | |
| 161140 | - /* 970 */ 208, 192, 312, 29, 192, 215, 216, 33, 192, 42, | |
| 161141 | - /* 980 */ 215, 216, 102, 103, 104, 105, 106, 107, 108, 109, | |
| 161142 | - /* 990 */ 110, 111, 112, 283, 158, 230, 66, 160, 238, 239, | |
| 161143 | - /* 1000 */ 63, 215, 216, 192, 192, 12, 115, 116, 117, 65, | |
| 161144 | - /* 1010 */ 73, 251, 252, 192, 19, 85, 230, 192, 24, 24, | |
| 161145 | - /* 1020 */ 27, 261, 210, 211, 94, 192, 215, 216, 22, 207, | |
| 161146 | - /* 1030 */ 208, 290, 192, 142, 19, 42, 215, 216, 43, 44, | |
| 161147 | - /* 1040 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, | |
| 161148 | - /* 1050 */ 55, 56, 57, 59, 19, 144, 63, 192, 43, 44, | |
| 161149 | - /* 1060 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, | |
| 161150 | - /* 1070 */ 55, 56, 57, 252, 163, 145, 114, 22, 43, 44, | |
| 161151 | - /* 1080 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, | |
| 161152 | - /* 1090 */ 55, 56, 57, 45, 212, 283, 263, 102, 103, 104, | |
| 161153 | - /* 1100 */ 105, 106, 107, 108, 109, 110, 111, 112, 59, 192, | |
| 161154 | - /* 1110 */ 116, 149, 106, 107, 59, 25, 291, 102, 103, 104, | |
| 161155 | - /* 1120 */ 105, 106, 107, 108, 109, 110, 111, 112, 192, 22, | |
| 161156 | - /* 1130 */ 192, 192, 215, 216, 23, 192, 25, 102, 103, 104, | |
| 161157 | - /* 1140 */ 105, 106, 107, 108, 109, 110, 111, 112, 108, 192, | |
| 161158 | - /* 1150 */ 192, 215, 216, 215, 216, 106, 107, 19, 215, 216, | |
| 161159 | - /* 1160 */ 53, 59, 114, 114, 115, 116, 117, 285, 119, 137, | |
| 161160 | - /* 1170 */ 138, 116, 290, 230, 134, 192, 127, 192, 192, 139, | |
| 161161 | - /* 1180 */ 59, 192, 44, 45, 46, 47, 48, 49, 50, 51, | |
| 161162 | - /* 1190 */ 52, 53, 54, 55, 56, 57, 308, 76, 215, 216, | |
| 161163 | - /* 1200 */ 312, 152, 263, 154, 215, 216, 192, 117, 87, 19, | |
| 161164 | - /* 1210 */ 89, 19, 20, 92, 22, 22, 23, 231, 116, 230, | |
| 161165 | - /* 1220 */ 263, 263, 237, 203, 298, 299, 203, 239, 36, 215, | |
| 161166 | - /* 1230 */ 216, 192, 142, 192, 15, 45, 115, 116, 117, 251, | |
| 161167 | - /* 1240 */ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, | |
| 161168 | - /* 1250 */ 112, 59, 192, 203, 215, 216, 215, 216, 238, 239, | |
| 161169 | - /* 1260 */ 192, 238, 239, 71, 192, 144, 25, 203, 243, 230, | |
| 161170 | - /* 1270 */ 243, 251, 192, 81, 251, 215, 216, 243, 253, 60, | |
| 161171 | - /* 1280 */ 253, 255, 256, 19, 20, 25, 22, 253, 238, 239, | |
| 161172 | - /* 1290 */ 192, 192, 100, 192, 101, 215, 216, 19, 106, 107, | |
| 161173 | - /* 1300 */ 36, 251, 238, 239, 114, 113, 192, 115, 116, 117, | |
| 161174 | - /* 1310 */ 192, 47, 120, 215, 216, 251, 215, 216, 192, 31, | |
| 161175 | - /* 1320 */ 130, 134, 243, 59, 148, 149, 139, 39, 192, 137, | |
| 161176 | - /* 1330 */ 138, 263, 253, 215, 216, 71, 19, 157, 192, 159, | |
| 161177 | - /* 1340 */ 128, 215, 216, 25, 152, 153, 154, 155, 156, 85, | |
| 161178 | - /* 1350 */ 192, 215, 216, 268, 90, 0, 1, 2, 192, 192, | |
| 161179 | - /* 1360 */ 5, 215, 216, 151, 100, 10, 11, 12, 13, 14, | |
| 161180 | - /* 1370 */ 106, 107, 17, 215, 216, 19, 20, 113, 22, 115, | |
| 161181 | - /* 1380 */ 116, 117, 215, 216, 120, 30, 192, 32, 192, 148, | |
| 161182 | - /* 1390 */ 192, 24, 36, 115, 22, 40, 24, 23, 192, 25, | |
| 161183 | - /* 1400 */ 128, 23, 99, 25, 144, 192, 22, 192, 192, 215, | |
| 161184 | - /* 1410 */ 216, 215, 216, 215, 216, 59, 152, 153, 154, 155, | |
| 161185 | - /* 1420 */ 156, 215, 216, 151, 192, 70, 192, 71, 215, 216, | |
| 161186 | - /* 1430 */ 215, 216, 115, 78, 192, 132, 81, 192, 23, 22, | |
| 161187 | - /* 1440 */ 25, 85, 192, 192, 192, 61, 90, 215, 216, 215, | |
| 161188 | - /* 1450 */ 216, 192, 225, 98, 192, 192, 100, 215, 216, 141, | |
| 161189 | - /* 1460 */ 215, 216, 106, 107, 225, 215, 216, 215, 216, 113, | |
| 161190 | - /* 1470 */ 59, 115, 116, 117, 215, 216, 120, 215, 216, 192, | |
| 161191 | - /* 1480 */ 120, 192, 19, 20, 23, 22, 25, 132, 119, 120, | |
| 161192 | - /* 1490 */ 130, 192, 137, 138, 192, 23, 192, 25, 192, 36, | |
| 161193 | - /* 1500 */ 192, 192, 215, 216, 215, 216, 192, 140, 152, 153, | |
| 161194 | - /* 1510 */ 154, 155, 156, 192, 215, 216, 161, 215, 216, 215, | |
| 161195 | - /* 1520 */ 216, 192, 59, 215, 216, 19, 192, 116, 192, 215, | |
| 161196 | - /* 1530 */ 216, 23, 59, 25, 71, 192, 215, 216, 192, 23, | |
| 161197 | - /* 1540 */ 23, 25, 25, 192, 215, 216, 7, 8, 85, 215, | |
| 161198 | - /* 1550 */ 216, 215, 216, 90, 192, 1, 2, 140, 192, 5, | |
| 161199 | - /* 1560 */ 192, 215, 216, 100, 10, 11, 12, 13, 14, 106, | |
| 161200 | - /* 1570 */ 107, 17, 192, 23, 192, 25, 113, 192, 115, 116, | |
| 161201 | - /* 1580 */ 117, 215, 216, 120, 30, 59, 32, 19, 20, 116, | |
| 161202 | - /* 1590 */ 22, 192, 83, 84, 40, 215, 216, 215, 216, 192, | |
| 161203 | - /* 1600 */ 215, 216, 192, 97, 36, 192, 19, 20, 23, 22, | |
| 161204 | - /* 1610 */ 25, 23, 152, 25, 154, 152, 153, 154, 155, 156, | |
| 161205 | - /* 1620 */ 152, 225, 154, 36, 70, 215, 216, 59, 215, 216, | |
| 161206 | - /* 1630 */ 192, 23, 78, 25, 23, 81, 25, 192, 192, 71, | |
| 161207 | - /* 1640 */ 257, 192, 116, 192, 192, 254, 59, 317, 192, 192, | |
| 161208 | - /* 1650 */ 192, 235, 98, 241, 192, 254, 192, 192, 71, 192, | |
| 161209 | - /* 1660 */ 287, 192, 192, 286, 242, 190, 213, 296, 100, 266, | |
| 161210 | - /* 1670 */ 270, 244, 254, 254, 106, 107, 108, 254, 258, 258, | |
| 161211 | - /* 1680 */ 266, 113, 292, 115, 116, 117, 132, 100, 120, 245, | |
| 161212 | - /* 1690 */ 292, 137, 138, 106, 107, 19, 20, 219, 22, 270, | |
| 161213 | - /* 1700 */ 113, 270, 115, 116, 117, 270, 224, 120, 228, 218, | |
| 161214 | - /* 1710 */ 218, 245, 36, 218, 195, 161, 279, 258, 244, 248, | |
| 161215 | - /* 1720 */ 152, 153, 154, 155, 156, 248, 242, 244, 60, 296, | |
| 161216 | - /* 1730 */ 296, 140, 199, 199, 38, 59, 293, 199, 149, 152, | |
| 161217 | - /* 1740 */ 153, 154, 155, 156, 150, 5, 22, 71, 293, 43, | |
| 161218 | - /* 1750 */ 10, 11, 12, 13, 14, 269, 271, 17, 282, 18, | |
| 161219 | - /* 1760 */ 233, 236, 199, 18, 236, 236, 236, 198, 148, 245, | |
| 161220 | - /* 1770 */ 30, 271, 32, 271, 269, 233, 100, 245, 233, 199, | |
| 161221 | - /* 1780 */ 40, 245, 106, 107, 198, 245, 157, 289, 62, 113, | |
| 161222 | - /* 1790 */ 198, 115, 116, 117, 199, 288, 120, 22, 220, 199, | |
| 161223 | - /* 1800 */ 198, 220, 199, 198, 114, 226, 64, 217, 22, 125, | |
| 161224 | - /* 1810 */ 70, 164, 311, 217, 217, 217, 223, 24, 78, 304, | |
| 161225 | - /* 1820 */ 219, 81, 223, 217, 220, 112, 217, 217, 152, 153, | |
| 161226 | - /* 1830 */ 154, 155, 156, 226, 281, 220, 281, 143, 98, 114, | |
| 161227 | - /* 1840 */ 199, 91, 260, 259, 82, 147, 144, 316, 22, 276, | |
| 161228 | - /* 1850 */ 199, 316, 157, 278, 146, 145, 25, 201, 13, 193, | |
| 161229 | - /* 1860 */ 193, 6, 191, 191, 191, 299, 302, 302, 206, 246, | |
| 161230 | - /* 1870 */ 248, 259, 132, 260, 260, 259, 259, 137, 138, 260, | |
| 161231 | - /* 1880 */ 249, 249, 264, 247, 245, 264, 212, 212, 206, 212, | |
| 161232 | - /* 1890 */ 212, 221, 206, 213, 213, 212, 4, 3, 22, 162, | |
| 161233 | - /* 1900 */ 221, 161, 15, 23, 16, 23, 138, 150, 129, 25, | |
| 161234 | - /* 1910 */ 24, 141, 143, 20, 16, 1, 129, 141, 129, 61, | |
| 161235 | - /* 1920 */ 37, 150, 53, 53, 53, 53, 129, 115, 140, 34, | |
| 161236 | - /* 1930 */ 1, 5, 22, 114, 160, 68, 25, 75, 41, 140, | |
| 161237 | - /* 1940 */ 24, 68, 114, 20, 19, 130, 124, 23, 67, 22, | |
| 161238 | - /* 1950 */ 22, 148, 22, 22, 37, 59, 67, 24, 22, 96, | |
| 161239 | - /* 1960 */ 28, 23, 22, 97, 23, 23, 67, 23, 25, 23, | |
| 161240 | - /* 1970 */ 22, 115, 140, 23, 23, 22, 142, 25, 88, 34, | |
| 161241 | - /* 1980 */ 75, 34, 75, 34, 93, 23, 86, 22, 34, 34, | |
| 161242 | - /* 1990 */ 24, 34, 25, 25, 34, 23, 23, 23, 23, 23, | |
| 161243 | - /* 2000 */ 44, 23, 25, 22, 11, 22, 22, 25, 23, 23, | |
| 161244 | - /* 2010 */ 22, 22, 134, 23, 140, 140, 25, 140, 15, 140, | |
| 161245 | - /* 2020 */ 1, 1, 318, 318, 318, 318, 318, 318, 318, 318, | |
| 161246 | - /* 2030 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, | |
| 161247 | - /* 2040 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, | |
| 161248 | - /* 2050 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, | |
| 161249 | - /* 2060 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, | |
| 161250 | - /* 2070 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, | |
| 161251 | - /* 2080 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, | |
| 161252 | - /* 2090 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, | |
| 161253 | - /* 2100 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, | |
| 161254 | - /* 2110 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, | |
| 161255 | - /* 2120 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, | |
| 161256 | - /* 2130 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, | |
| 161257 | - /* 2140 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, | |
| 161258 | - /* 2150 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, | |
| 161259 | - /* 2160 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, | |
| 161260 | - /* 2170 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, | |
| 161261 | - /* 2180 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, | |
| 161262 | - /* 2190 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, | |
| 161263 | - /* 2200 */ 318, 318, 318, 318, 318, 318, | |
| 161264 | -}; | |
| 161265 | -#define YY_SHIFT_COUNT (571) | |
| 161071 | + /* 0 */ 193, 223, 193, 225, 193, 193, 193, 274, 275, 276, | |
| 161072 | + /* 10 */ 193, 233, 219, 193, 274, 275, 276, 206, 206, 19, | |
| 161073 | + /* 20 */ 193, 219, 216, 216, 217, 216, 217, 193, 295, 216, | |
| 161074 | + /* 30 */ 217, 31, 205, 216, 217, 193, 216, 217, 213, 39, | |
| 161075 | + /* 40 */ 228, 193, 230, 43, 44, 45, 46, 47, 48, 49, | |
| 161076 | + /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 193, 19, | |
| 161077 | + /* 60 */ 185, 186, 187, 188, 189, 190, 253, 274, 275, 276, | |
| 161078 | + /* 70 */ 195, 193, 197, 253, 216, 262, 274, 275, 276, 204, | |
| 161079 | + /* 80 */ 238, 204, 262, 43, 44, 45, 46, 47, 48, 49, | |
| 161080 | + /* 90 */ 50, 51, 52, 53, 54, 55, 56, 57, 264, 274, | |
| 161081 | + /* 100 */ 275, 276, 102, 103, 104, 105, 106, 107, 108, 109, | |
| 161082 | + /* 110 */ 110, 111, 112, 113, 239, 240, 239, 240, 210, 211, | |
| 161083 | + /* 120 */ 212, 314, 315, 314, 59, 316, 86, 252, 88, 252, | |
| 161084 | + /* 130 */ 19, 314, 315, 256, 257, 309, 25, 72, 296, 313, | |
| 161085 | + /* 140 */ 193, 266, 102, 103, 104, 105, 106, 107, 108, 109, | |
| 161086 | + /* 150 */ 110, 111, 112, 113, 43, 44, 45, 46, 47, 48, | |
| 161087 | + /* 160 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 81, | |
| 161088 | + /* 170 */ 292, 59, 307, 298, 108, 109, 110, 111, 112, 113, | |
| 161089 | + /* 180 */ 69, 116, 117, 118, 72, 128, 129, 193, 241, 22, | |
| 161090 | + /* 190 */ 113, 54, 55, 56, 57, 58, 102, 103, 104, 105, | |
| 161091 | + /* 200 */ 106, 107, 108, 109, 110, 111, 112, 113, 120, 193, | |
| 161092 | + /* 210 */ 216, 217, 25, 102, 103, 104, 105, 106, 107, 108, | |
| 161093 | + /* 220 */ 109, 110, 111, 112, 113, 231, 138, 139, 116, 117, | |
| 161094 | + /* 230 */ 118, 106, 107, 19, 216, 54, 55, 56, 57, 102, | |
| 161095 | + /* 240 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, | |
| 161096 | + /* 250 */ 113, 304, 25, 46, 47, 48, 49, 43, 44, 45, | |
| 161097 | + /* 260 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, | |
| 161098 | + /* 270 */ 56, 57, 193, 106, 107, 59, 193, 19, 153, 263, | |
| 161099 | + /* 280 */ 155, 67, 24, 102, 103, 104, 105, 106, 107, 108, | |
| 161100 | + /* 290 */ 109, 110, 111, 112, 113, 216, 217, 59, 230, 216, | |
| 161101 | + /* 300 */ 217, 43, 44, 45, 46, 47, 48, 49, 50, 51, | |
| 161102 | + /* 310 */ 52, 53, 54, 55, 56, 57, 102, 103, 104, 105, | |
| 161103 | + /* 320 */ 106, 107, 108, 109, 110, 111, 112, 113, 121, 142, | |
| 161104 | + /* 330 */ 59, 193, 116, 117, 118, 119, 253, 204, 122, 123, | |
| 161105 | + /* 340 */ 124, 19, 20, 81, 22, 262, 108, 19, 132, 165, | |
| 161106 | + /* 350 */ 166, 193, 24, 126, 116, 117, 118, 278, 36, 193, | |
| 161107 | + /* 360 */ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, | |
| 161108 | + /* 370 */ 112, 113, 239, 240, 216, 217, 215, 106, 107, 241, | |
| 161109 | + /* 380 */ 19, 59, 216, 217, 223, 252, 115, 116, 117, 118, | |
| 161110 | + /* 390 */ 73, 120, 26, 71, 193, 22, 193, 231, 81, 128, | |
| 161111 | + /* 400 */ 138, 139, 269, 81, 43, 44, 45, 46, 47, 48, | |
| 161112 | + /* 410 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 216, | |
| 161113 | + /* 420 */ 217, 198, 100, 95, 153, 59, 155, 193, 106, 107, | |
| 161114 | + /* 430 */ 235, 236, 59, 193, 193, 249, 114, 251, 116, 117, | |
| 161115 | + /* 440 */ 118, 113, 304, 121, 127, 204, 193, 119, 120, 121, | |
| 161116 | + /* 450 */ 122, 123, 124, 125, 193, 138, 139, 216, 217, 131, | |
| 161117 | + /* 460 */ 138, 139, 193, 102, 103, 104, 105, 106, 107, 108, | |
| 161118 | + /* 470 */ 109, 110, 111, 112, 113, 153, 154, 155, 156, 157, | |
| 161119 | + /* 480 */ 239, 240, 116, 117, 118, 76, 193, 193, 19, 116, | |
| 161120 | + /* 490 */ 117, 118, 23, 252, 253, 193, 87, 204, 89, 238, | |
| 161121 | + /* 500 */ 193, 92, 268, 262, 281, 203, 193, 205, 285, 216, | |
| 161122 | + /* 510 */ 217, 150, 43, 44, 45, 46, 47, 48, 49, 50, | |
| 161123 | + /* 520 */ 51, 52, 53, 54, 55, 56, 57, 193, 193, 216, | |
| 161124 | + /* 530 */ 217, 19, 239, 240, 59, 23, 106, 107, 108, 109, | |
| 161125 | + /* 540 */ 110, 111, 112, 113, 231, 252, 253, 193, 308, 309, | |
| 161126 | + /* 550 */ 193, 145, 59, 313, 145, 43, 44, 45, 46, 47, | |
| 161127 | + /* 560 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, | |
| 161128 | + /* 570 */ 164, 102, 103, 104, 105, 106, 107, 108, 109, 110, | |
| 161129 | + /* 580 */ 111, 112, 113, 119, 193, 193, 122, 123, 124, 193, | |
| 161130 | + /* 590 */ 283, 116, 117, 118, 235, 236, 132, 59, 241, 264, | |
| 161131 | + /* 600 */ 59, 193, 19, 23, 193, 25, 23, 216, 217, 116, | |
| 161132 | + /* 610 */ 117, 118, 216, 217, 102, 103, 104, 105, 106, 107, | |
| 161133 | + /* 620 */ 108, 109, 110, 111, 112, 113, 43, 44, 45, 46, | |
| 161134 | + /* 630 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, | |
| 161135 | + /* 640 */ 57, 19, 308, 309, 151, 23, 25, 313, 135, 253, | |
| 161136 | + /* 650 */ 21, 193, 241, 140, 116, 117, 118, 116, 117, 118, | |
| 161137 | + /* 660 */ 268, 304, 22, 301, 302, 43, 44, 45, 46, 47, | |
| 161138 | + /* 670 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, | |
| 161139 | + /* 680 */ 193, 143, 193, 193, 143, 102, 103, 104, 105, 106, | |
| 161140 | + /* 690 */ 107, 108, 109, 110, 111, 112, 113, 76, 118, 59, | |
| 161141 | + /* 700 */ 292, 211, 212, 216, 217, 216, 217, 73, 193, 80, | |
| 161142 | + /* 710 */ 89, 25, 19, 92, 193, 304, 23, 22, 231, 193, | |
| 161143 | + /* 720 */ 231, 193, 22, 143, 102, 103, 104, 105, 106, 107, | |
| 161144 | + /* 730 */ 108, 109, 110, 111, 112, 113, 43, 44, 45, 46, | |
| 161145 | + /* 740 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, | |
| 161146 | + /* 750 */ 57, 19, 123, 193, 59, 23, 116, 117, 118, 59, | |
| 161147 | + /* 760 */ 193, 127, 128, 129, 306, 307, 210, 211, 212, 193, | |
| 161148 | + /* 770 */ 22, 111, 112, 113, 284, 43, 44, 45, 46, 47, | |
| 161149 | + /* 780 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, | |
| 161150 | + /* 790 */ 161, 193, 216, 217, 268, 102, 103, 104, 105, 106, | |
| 161151 | + /* 800 */ 107, 108, 109, 110, 111, 112, 113, 59, 193, 193, | |
| 161152 | + /* 810 */ 193, 116, 117, 118, 216, 217, 116, 117, 118, 304, | |
| 161153 | + /* 820 */ 239, 240, 19, 263, 138, 139, 23, 211, 212, 231, | |
| 161154 | + /* 830 */ 263, 216, 217, 252, 102, 103, 104, 105, 106, 107, | |
| 161155 | + /* 840 */ 108, 109, 110, 111, 112, 113, 43, 44, 45, 46, | |
| 161156 | + /* 850 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, | |
| 161157 | + /* 860 */ 57, 19, 193, 11, 116, 117, 118, 240, 253, 193, | |
| 161158 | + /* 870 */ 201, 239, 240, 193, 134, 206, 136, 137, 193, 252, | |
| 161159 | + /* 880 */ 193, 264, 193, 193, 252, 43, 44, 45, 46, 47, | |
| 161160 | + /* 890 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, | |
| 161161 | + /* 900 */ 284, 216, 217, 216, 217, 102, 103, 104, 105, 106, | |
| 161162 | + /* 910 */ 107, 108, 109, 110, 111, 112, 113, 193, 231, 193, | |
| 161163 | + /* 920 */ 187, 188, 189, 190, 127, 128, 129, 238, 195, 193, | |
| 161164 | + /* 930 */ 197, 16, 19, 7, 8, 9, 193, 204, 253, 193, | |
| 161165 | + /* 940 */ 216, 217, 216, 217, 102, 103, 104, 105, 106, 107, | |
| 161166 | + /* 950 */ 108, 109, 110, 111, 112, 113, 43, 44, 45, 46, | |
| 161167 | + /* 960 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, | |
| 161168 | + /* 970 */ 57, 213, 239, 240, 193, 76, 19, 188, 232, 190, | |
| 161169 | + /* 980 */ 128, 129, 292, 193, 195, 252, 197, 46, 89, 138, | |
| 161170 | + /* 990 */ 139, 92, 77, 204, 79, 193, 269, 216, 217, 266, | |
| 161171 | + /* 1000 */ 204, 159, 45, 46, 47, 48, 49, 50, 51, 52, | |
| 161172 | + /* 1010 */ 53, 54, 55, 56, 57, 102, 103, 104, 105, 106, | |
| 161173 | + /* 1020 */ 107, 108, 109, 110, 111, 112, 113, 12, 239, 240, | |
| 161174 | + /* 1030 */ 193, 298, 22, 23, 253, 239, 240, 127, 128, 129, | |
| 161175 | + /* 1040 */ 238, 252, 27, 193, 286, 204, 193, 204, 252, 291, | |
| 161176 | + /* 1050 */ 193, 273, 22, 23, 100, 266, 115, 42, 268, 102, | |
| 161177 | + /* 1060 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, | |
| 161178 | + /* 1070 */ 113, 117, 159, 216, 217, 121, 161, 19, 63, 193, | |
| 161179 | + /* 1080 */ 239, 240, 239, 240, 12, 208, 209, 298, 73, 311, | |
| 161180 | + /* 1090 */ 312, 238, 19, 252, 25, 252, 22, 24, 24, 27, | |
| 161181 | + /* 1100 */ 193, 264, 216, 217, 46, 208, 209, 153, 154, 155, | |
| 161182 | + /* 1110 */ 253, 101, 19, 23, 42, 25, 43, 44, 45, 46, | |
| 161183 | + /* 1120 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, | |
| 161184 | + /* 1130 */ 57, 101, 19, 59, 25, 63, 43, 44, 45, 46, | |
| 161185 | + /* 1140 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, | |
| 161186 | + /* 1150 */ 57, 22, 23, 115, 25, 24, 43, 44, 45, 46, | |
| 161187 | + /* 1160 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, | |
| 161188 | + /* 1170 */ 57, 22, 23, 115, 25, 102, 103, 104, 105, 106, | |
| 161189 | + /* 1180 */ 107, 108, 109, 110, 111, 112, 113, 118, 150, 131, | |
| 161190 | + /* 1190 */ 59, 117, 22, 273, 193, 102, 103, 104, 105, 106, | |
| 161191 | + /* 1200 */ 107, 108, 109, 110, 111, 112, 113, 204, 66, 204, | |
| 161192 | + /* 1210 */ 35, 204, 143, 213, 193, 102, 103, 104, 105, 106, | |
| 161193 | + /* 1220 */ 107, 108, 109, 110, 111, 112, 113, 85, 193, 59, | |
| 161194 | + /* 1230 */ 101, 311, 312, 16, 193, 19, 94, 216, 217, 238, | |
| 161195 | + /* 1240 */ 193, 66, 239, 240, 239, 240, 239, 240, 117, 74, | |
| 161196 | + /* 1250 */ 101, 216, 217, 193, 193, 252, 193, 252, 149, 252, | |
| 161197 | + /* 1260 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, | |
| 161198 | + /* 1270 */ 54, 55, 56, 57, 193, 193, 193, 5, 59, 216, | |
| 161199 | + /* 1280 */ 217, 25, 10, 11, 12, 13, 14, 117, 146, 17, | |
| 161200 | + /* 1290 */ 193, 291, 193, 232, 77, 76, 79, 216, 217, 216, | |
| 161201 | + /* 1300 */ 217, 31, 30, 309, 32, 130, 87, 313, 89, 39, | |
| 161202 | + /* 1310 */ 193, 92, 40, 216, 217, 216, 217, 108, 102, 103, | |
| 161203 | + /* 1320 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, | |
| 161204 | + /* 1330 */ 299, 300, 193, 216, 217, 116, 117, 118, 19, 20, | |
| 161205 | + /* 1340 */ 193, 22, 70, 309, 135, 193, 264, 313, 193, 140, | |
| 161206 | + /* 1350 */ 78, 193, 226, 81, 59, 36, 193, 309, 193, 29, | |
| 161207 | + /* 1360 */ 193, 313, 193, 33, 145, 193, 59, 48, 216, 217, | |
| 161208 | + /* 1370 */ 98, 216, 217, 193, 216, 217, 193, 244, 59, 216, | |
| 161209 | + /* 1380 */ 217, 216, 217, 216, 217, 216, 217, 254, 216, 217, | |
| 161210 | + /* 1390 */ 71, 193, 244, 193, 193, 65, 216, 217, 193, 216, | |
| 161211 | + /* 1400 */ 217, 145, 254, 244, 85, 133, 15, 100, 193, 90, | |
| 161212 | + /* 1410 */ 138, 139, 117, 254, 216, 217, 216, 217, 193, 100, | |
| 161213 | + /* 1420 */ 193, 216, 217, 116, 117, 106, 107, 19, 121, 193, | |
| 161214 | + /* 1430 */ 193, 216, 217, 114, 162, 116, 117, 118, 244, 244, | |
| 161215 | + /* 1440 */ 121, 216, 217, 216, 217, 193, 309, 129, 254, 254, | |
| 161216 | + /* 1450 */ 313, 60, 216, 217, 19, 256, 257, 193, 120, 121, | |
| 161217 | + /* 1460 */ 153, 154, 155, 149, 150, 25, 24, 99, 216, 217, | |
| 161218 | + /* 1470 */ 152, 193, 153, 154, 155, 156, 157, 0, 1, 2, | |
| 161219 | + /* 1480 */ 216, 217, 5, 22, 158, 24, 160, 10, 11, 12, | |
| 161220 | + /* 1490 */ 13, 14, 193, 23, 17, 25, 193, 19, 20, 193, | |
| 161221 | + /* 1500 */ 22, 133, 193, 22, 22, 193, 22, 30, 193, 32, | |
| 161222 | + /* 1510 */ 19, 20, 129, 22, 36, 216, 217, 40, 193, 216, | |
| 161223 | + /* 1520 */ 217, 193, 216, 217, 116, 216, 217, 36, 216, 217, | |
| 161224 | + /* 1530 */ 193, 216, 217, 193, 53, 152, 193, 59, 23, 19, | |
| 161225 | + /* 1540 */ 25, 216, 217, 61, 216, 217, 23, 70, 25, 71, | |
| 161226 | + /* 1550 */ 59, 116, 193, 216, 217, 78, 216, 217, 81, 216, | |
| 161227 | + /* 1560 */ 217, 59, 71, 85, 193, 23, 193, 25, 90, 23, | |
| 161228 | + /* 1570 */ 23, 25, 25, 7, 8, 98, 85, 193, 100, 193, | |
| 161229 | + /* 1580 */ 59, 90, 142, 141, 106, 107, 193, 216, 217, 216, | |
| 161230 | + /* 1590 */ 217, 100, 114, 193, 116, 117, 118, 106, 107, 121, | |
| 161231 | + /* 1600 */ 216, 217, 216, 217, 193, 114, 193, 116, 117, 118, | |
| 161232 | + /* 1610 */ 133, 23, 121, 25, 121, 138, 139, 97, 23, 117, | |
| 161233 | + /* 1620 */ 25, 23, 193, 25, 131, 141, 193, 216, 217, 59, | |
| 161234 | + /* 1630 */ 193, 153, 154, 155, 156, 157, 226, 193, 117, 162, | |
| 161235 | + /* 1640 */ 23, 23, 25, 25, 153, 154, 155, 156, 157, 1, | |
| 161236 | + /* 1650 */ 2, 83, 84, 5, 19, 20, 226, 22, 10, 11, | |
| 161237 | + /* 1660 */ 12, 13, 14, 258, 153, 17, 155, 153, 23, 155, | |
| 161238 | + /* 1670 */ 25, 36, 23, 193, 25, 255, 193, 236, 30, 193, | |
| 161239 | + /* 1680 */ 32, 19, 20, 193, 22, 193, 288, 117, 40, 193, | |
| 161240 | + /* 1690 */ 318, 193, 193, 193, 59, 242, 193, 193, 36, 193, | |
| 161241 | + /* 1700 */ 193, 193, 287, 255, 255, 255, 71, 255, 243, 214, | |
| 161242 | + /* 1710 */ 191, 297, 267, 245, 271, 259, 259, 293, 70, 246, | |
| 161243 | + /* 1720 */ 246, 59, 267, 229, 245, 271, 78, 293, 259, 81, | |
| 161244 | + /* 1730 */ 271, 271, 220, 71, 225, 100, 219, 219, 249, 196, | |
| 161245 | + /* 1740 */ 243, 106, 107, 108, 219, 60, 98, 280, 297, 114, | |
| 161246 | + /* 1750 */ 249, 116, 117, 118, 141, 245, 121, 200, 200, 297, | |
| 161247 | + /* 1760 */ 38, 200, 100, 151, 150, 294, 294, 22, 106, 107, | |
| 161248 | + /* 1770 */ 283, 43, 234, 18, 237, 200, 114, 272, 116, 117, | |
| 161249 | + /* 1780 */ 118, 133, 237, 121, 18, 237, 138, 139, 153, 154, | |
| 161250 | + /* 1790 */ 155, 156, 157, 237, 270, 199, 19, 20, 246, 22, | |
| 161251 | + /* 1800 */ 149, 272, 272, 270, 200, 246, 234, 234, 246, 246, | |
| 161252 | + /* 1810 */ 162, 158, 290, 36, 199, 153, 154, 155, 156, 157, | |
| 161253 | + /* 1820 */ 62, 289, 200, 199, 22, 200, 221, 199, 221, 200, | |
| 161254 | + /* 1830 */ 199, 115, 64, 227, 218, 22, 59, 218, 218, 126, | |
| 161255 | + /* 1840 */ 165, 24, 113, 312, 218, 224, 305, 224, 71, 282, | |
| 161256 | + /* 1850 */ 144, 221, 220, 282, 218, 218, 218, 115, 261, 260, | |
| 161257 | + /* 1860 */ 227, 221, 261, 260, 200, 91, 317, 317, 82, 261, | |
| 161258 | + /* 1870 */ 260, 148, 261, 22, 265, 145, 200, 100, 158, 277, | |
| 161259 | + /* 1880 */ 147, 146, 25, 106, 107, 202, 13, 260, 194, 250, | |
| 161260 | + /* 1890 */ 249, 114, 248, 116, 117, 118, 250, 247, 121, 265, | |
| 161261 | + /* 1900 */ 246, 194, 6, 192, 192, 207, 192, 207, 213, 213, | |
| 161262 | + /* 1910 */ 213, 222, 213, 222, 4, 214, 214, 213, 3, 22, | |
| 161263 | + /* 1920 */ 163, 279, 207, 15, 23, 16, 23, 139, 130, 151, | |
| 161264 | + /* 1930 */ 153, 154, 155, 156, 157, 142, 25, 24, 20, 144, | |
| 161265 | + /* 1940 */ 16, 1, 142, 61, 130, 130, 303, 151, 53, 37, | |
| 161266 | + /* 1950 */ 303, 53, 300, 53, 130, 53, 116, 34, 1, 141, | |
| 161267 | + /* 1960 */ 5, 22, 115, 25, 161, 75, 41, 68, 141, 115, | |
| 161268 | + /* 1970 */ 24, 20, 68, 19, 131, 125, 23, 96, 22, 59, | |
| 161269 | + /* 1980 */ 22, 67, 22, 22, 67, 22, 24, 28, 67, 37, | |
| 161270 | + /* 1990 */ 23, 149, 22, 25, 23, 23, 23, 23, 22, 141, | |
| 161271 | + /* 2000 */ 23, 23, 97, 116, 22, 143, 25, 88, 75, 34, | |
| 161272 | + /* 2010 */ 44, 75, 86, 34, 34, 93, 23, 34, 34, 34, | |
| 161273 | + /* 2020 */ 22, 24, 34, 22, 25, 25, 23, 23, 23, 23, | |
| 161274 | + /* 2030 */ 23, 11, 23, 25, 22, 22, 25, 23, 23, 22, | |
| 161275 | + /* 2040 */ 22, 135, 15, 1, 25, 23, 1, 319, 141, 319, | |
| 161276 | + /* 2050 */ 319, 319, 319, 319, 319, 319, 319, 141, 319, 319, | |
| 161277 | + /* 2060 */ 319, 319, 319, 319, 319, 319, 319, 319, 141, 141, | |
| 161278 | + /* 2070 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, | |
| 161279 | + /* 2080 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, | |
| 161280 | + /* 2090 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, | |
| 161281 | + /* 2100 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, | |
| 161282 | + /* 2110 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, | |
| 161283 | + /* 2120 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, | |
| 161284 | + /* 2130 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, | |
| 161285 | + /* 2140 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, | |
| 161286 | + /* 2150 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, | |
| 161287 | + /* 2160 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, | |
| 161288 | + /* 2170 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, | |
| 161289 | + /* 2180 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, | |
| 161290 | + /* 2190 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, | |
| 161291 | + /* 2200 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, | |
| 161292 | + /* 2210 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, | |
| 161293 | + /* 2220 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, | |
| 161294 | + /* 2230 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, | |
| 161295 | + /* 2240 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, | |
| 161296 | + /* 2250 */ 319, 319, 319, 319, 319, | |
| 161297 | +}; | |
| 161298 | +#define YY_SHIFT_COUNT (573) | |
| 161266 | 161299 | #define YY_SHIFT_MIN (0) |
| 161267 | -#define YY_SHIFT_MAX (2020) | |
| 161300 | +#define YY_SHIFT_MAX (2045) | |
| 161268 | 161301 | static const unsigned short int yy_shift_ofst[] = { |
| 161269 | - /* 0 */ 1554, 1355, 1740, 1192, 1192, 552, 1264, 1356, 1463, 1587, | |
| 161270 | - /* 10 */ 1587, 1587, 276, 0, 0, 180, 1015, 1587, 1587, 1587, | |
| 161271 | - /* 20 */ 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, | |
| 161272 | - /* 30 */ 1049, 1049, 1121, 1121, 54, 667, 552, 552, 552, 552, | |
| 161273 | - /* 40 */ 552, 40, 110, 219, 289, 396, 439, 509, 548, 618, | |
| 161274 | - /* 50 */ 657, 727, 766, 836, 995, 1015, 1015, 1015, 1015, 1015, | |
| 161275 | - /* 60 */ 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, | |
| 161276 | - /* 70 */ 1015, 1015, 1015, 1035, 1015, 1138, 880, 880, 1568, 1587, | |
| 161277 | - /* 80 */ 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, | |
| 161278 | - /* 90 */ 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, | |
| 161279 | - /* 100 */ 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, | |
| 161280 | - /* 110 */ 1587, 1587, 1587, 1676, 1587, 1587, 1587, 1587, 1587, 1587, | |
| 161281 | - /* 120 */ 1587, 1587, 1587, 1587, 1587, 1587, 1587, 146, 84, 84, | |
| 161282 | - /* 130 */ 84, 84, 84, 277, 315, 401, 97, 461, 251, 531, | |
| 161283 | - /* 140 */ 531, 51, 1190, 531, 531, 324, 324, 531, 713, 713, | |
| 161284 | - /* 150 */ 713, 713, 151, 154, 154, 4, 149, 2022, 2022, 621, | |
| 161285 | - /* 160 */ 621, 621, 567, 398, 398, 398, 398, 937, 937, 228, | |
| 161286 | - /* 170 */ 251, 159, 331, 531, 531, 531, 531, 531, 531, 531, | |
| 161287 | - /* 180 */ 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, | |
| 161288 | - /* 190 */ 531, 531, 531, 819, 819, 531, 9, 25, 25, 1102, | |
| 161289 | - /* 200 */ 1102, 911, 1032, 2022, 2022, 2022, 2022, 2022, 2022, 2022, | |
| 161290 | - /* 210 */ 255, 317, 317, 514, 403, 620, 471, 672, 781, 891, | |
| 161291 | - /* 220 */ 675, 531, 531, 531, 531, 531, 531, 531, 531, 531, | |
| 161292 | - /* 230 */ 531, 454, 531, 531, 531, 531, 531, 531, 531, 531, | |
| 161293 | - /* 240 */ 531, 531, 531, 531, 790, 790, 790, 531, 531, 531, | |
| 161294 | - /* 250 */ 338, 531, 531, 531, 516, 930, 531, 531, 993, 531, | |
| 161295 | - /* 260 */ 531, 531, 531, 531, 531, 531, 531, 778, 944, 725, | |
| 161296 | - /* 270 */ 994, 994, 994, 994, 1090, 725, 725, 1040, 1006, 951, | |
| 161297 | - /* 280 */ 1219, 962, 1176, 98, 1278, 1176, 1278, 1317, 1241, 962, | |
| 161298 | - /* 290 */ 962, 1241, 962, 98, 1317, 286, 1111, 1048, 1288, 1288, | |
| 161299 | - /* 300 */ 1288, 1278, 1260, 1260, 1180, 1318, 1187, 1372, 1668, 1668, | |
| 161300 | - /* 310 */ 1591, 1591, 1696, 1696, 1591, 1594, 1589, 1724, 1706, 1741, | |
| 161301 | - /* 320 */ 1741, 1741, 1741, 1591, 1745, 1620, 1589, 1589, 1620, 1724, | |
| 161302 | - /* 330 */ 1706, 1620, 1706, 1620, 1591, 1745, 1629, 1726, 1591, 1745, | |
| 161303 | - /* 340 */ 1775, 1591, 1745, 1591, 1745, 1775, 1690, 1690, 1690, 1742, | |
| 161304 | - /* 350 */ 1786, 1786, 1775, 1690, 1684, 1690, 1742, 1690, 1690, 1647, | |
| 161305 | - /* 360 */ 1793, 1713, 1713, 1775, 1694, 1725, 1694, 1725, 1694, 1725, | |
| 161306 | - /* 370 */ 1694, 1725, 1591, 1750, 1750, 1762, 1762, 1698, 1702, 1826, | |
| 161307 | - /* 380 */ 1591, 1695, 1698, 1708, 1710, 1620, 1831, 1845, 1845, 1855, | |
| 161308 | - /* 390 */ 1855, 1855, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, | |
| 161309 | - /* 400 */ 2022, 2022, 2022, 2022, 2022, 2022, 2022, 578, 837, 655, | |
| 161310 | - /* 410 */ 1193, 167, 839, 1055, 1374, 1303, 1107, 1367, 1212, 1272, | |
| 161311 | - /* 420 */ 1378, 1384, 1415, 1461, 1472, 1508, 1516, 1517, 1411, 1369, | |
| 161312 | - /* 430 */ 1539, 1360, 1506, 1473, 1550, 1585, 1509, 1588, 1460, 1468, | |
| 161313 | - /* 440 */ 1608, 1611, 1526, 1417, 1892, 1894, 1876, 1737, 1887, 1888, | |
| 161314 | - /* 450 */ 1880, 1882, 1768, 1757, 1779, 1884, 1884, 1886, 1770, 1893, | |
| 161315 | - /* 460 */ 1769, 1898, 1914, 1776, 1787, 1884, 1789, 1858, 1883, 1884, | |
| 161316 | - /* 470 */ 1771, 1869, 1870, 1871, 1872, 1797, 1812, 1895, 1788, 1929, | |
| 161317 | - /* 480 */ 1926, 1910, 1819, 1774, 1867, 1911, 1873, 1862, 1897, 1799, | |
| 161318 | - /* 490 */ 1828, 1916, 1923, 1925, 1815, 1822, 1927, 1881, 1928, 1930, | |
| 161319 | - /* 500 */ 1924, 1931, 1889, 1896, 1933, 1863, 1932, 1936, 1899, 1917, | |
| 161320 | - /* 510 */ 1938, 1803, 1940, 1941, 1942, 1944, 1943, 1946, 1948, 1866, | |
| 161321 | - /* 520 */ 1832, 1950, 1951, 1856, 1945, 1953, 1834, 1952, 1947, 1949, | |
| 161322 | - /* 530 */ 1954, 1955, 1890, 1905, 1900, 1956, 1907, 1891, 1957, 1962, | |
| 161323 | - /* 540 */ 1965, 1966, 1967, 1968, 1960, 1972, 1952, 1973, 1974, 1975, | |
| 161324 | - /* 550 */ 1976, 1977, 1978, 1981, 1993, 1983, 1984, 1985, 1986, 1988, | |
| 161325 | - /* 560 */ 1989, 1982, 1878, 1874, 1875, 1877, 1879, 1991, 1990, 2003, | |
| 161326 | - /* 570 */ 2019, 2020, | |
| 161327 | -}; | |
| 161328 | -#define YY_REDUCE_COUNT (406) | |
| 161329 | -#define YY_REDUCE_MIN (-272) | |
| 161330 | -#define YY_REDUCE_MAX (1686) | |
| 161302 | + /* 0 */ 1648, 1477, 1272, 322, 322, 262, 1319, 1478, 1491, 1662, | |
| 161303 | + /* 10 */ 1662, 1662, 317, 0, 0, 214, 1093, 1662, 1662, 1662, | |
| 161304 | + /* 20 */ 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, | |
| 161305 | + /* 30 */ 271, 271, 1219, 1219, 216, 88, 262, 262, 262, 262, | |
| 161306 | + /* 40 */ 262, 40, 111, 258, 361, 469, 512, 583, 622, 693, | |
| 161307 | + /* 50 */ 732, 803, 842, 913, 1073, 1093, 1093, 1093, 1093, 1093, | |
| 161308 | + /* 60 */ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, | |
| 161309 | + /* 70 */ 1093, 1093, 1093, 1113, 1093, 1216, 957, 957, 1635, 1662, | |
| 161310 | + /* 80 */ 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, | |
| 161311 | + /* 90 */ 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, | |
| 161312 | + /* 100 */ 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, | |
| 161313 | + /* 110 */ 1662, 1662, 1662, 1662, 1777, 1662, 1662, 1662, 1662, 1662, | |
| 161314 | + /* 120 */ 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 137, 181, | |
| 161315 | + /* 130 */ 181, 181, 181, 181, 94, 430, 66, 65, 112, 366, | |
| 161316 | + /* 140 */ 475, 475, 629, 1058, 475, 475, 125, 125, 475, 686, | |
| 161317 | + /* 150 */ 686, 686, 660, 686, 57, 184, 184, 77, 77, 2070, | |
| 161318 | + /* 160 */ 2070, 328, 328, 328, 493, 373, 373, 373, 373, 1015, | |
| 161319 | + /* 170 */ 1015, 409, 366, 1129, 1149, 475, 475, 475, 475, 475, | |
| 161320 | + /* 180 */ 475, 475, 475, 475, 475, 475, 475, 475, 475, 475, | |
| 161321 | + /* 190 */ 475, 475, 475, 475, 475, 621, 621, 475, 852, 899, | |
| 161322 | + /* 200 */ 899, 1295, 1295, 406, 851, 2070, 2070, 2070, 2070, 2070, | |
| 161323 | + /* 210 */ 2070, 2070, 1307, 954, 954, 640, 464, 695, 238, 700, | |
| 161324 | + /* 220 */ 538, 541, 748, 475, 475, 475, 475, 475, 475, 475, | |
| 161325 | + /* 230 */ 475, 475, 475, 634, 475, 475, 475, 475, 475, 475, | |
| 161326 | + /* 240 */ 475, 475, 475, 475, 475, 475, 1175, 1175, 1175, 475, | |
| 161327 | + /* 250 */ 475, 475, 580, 475, 475, 475, 1074, 1142, 475, 475, | |
| 161328 | + /* 260 */ 1072, 475, 475, 475, 475, 475, 475, 475, 475, 797, | |
| 161329 | + /* 270 */ 1330, 740, 1131, 1131, 1131, 1131, 1069, 740, 740, 1209, | |
| 161330 | + /* 280 */ 167, 926, 1391, 1038, 1314, 187, 1408, 1314, 1408, 1435, | |
| 161331 | + /* 290 */ 1109, 1038, 1038, 1109, 1038, 187, 1435, 227, 1090, 941, | |
| 161332 | + /* 300 */ 1270, 1270, 1270, 1408, 1256, 1256, 1326, 1440, 513, 1461, | |
| 161333 | + /* 310 */ 1685, 1685, 1613, 1613, 1722, 1722, 1613, 1612, 1614, 1745, | |
| 161334 | + /* 320 */ 1728, 1755, 1755, 1755, 1755, 1613, 1766, 1651, 1614, 1614, | |
| 161335 | + /* 330 */ 1651, 1745, 1728, 1651, 1728, 1651, 1613, 1766, 1653, 1758, | |
| 161336 | + /* 340 */ 1613, 1766, 1802, 1613, 1766, 1613, 1766, 1802, 1716, 1716, | |
| 161337 | + /* 350 */ 1716, 1768, 1813, 1813, 1802, 1716, 1713, 1716, 1768, 1716, | |
| 161338 | + /* 360 */ 1716, 1675, 1817, 1729, 1729, 1802, 1706, 1742, 1706, 1742, | |
| 161339 | + /* 370 */ 1706, 1742, 1706, 1742, 1613, 1774, 1774, 1786, 1786, 1723, | |
| 161340 | + /* 380 */ 1730, 1851, 1613, 1720, 1723, 1733, 1735, 1651, 1857, 1873, | |
| 161341 | + /* 390 */ 1873, 1896, 1896, 1896, 2070, 2070, 2070, 2070, 2070, 2070, | |
| 161342 | + /* 400 */ 2070, 2070, 2070, 2070, 2070, 2070, 2070, 2070, 2070, 207, | |
| 161343 | + /* 410 */ 915, 1010, 1030, 1217, 910, 1170, 1470, 1368, 1481, 1442, | |
| 161344 | + /* 420 */ 1318, 1383, 1515, 1482, 1523, 1542, 1546, 1547, 1588, 1595, | |
| 161345 | + /* 430 */ 1502, 1338, 1566, 1493, 1520, 1521, 1598, 1617, 1568, 1618, | |
| 161346 | + /* 440 */ 1511, 1514, 1645, 1649, 1570, 1484, 1910, 1915, 1897, 1757, | |
| 161347 | + /* 450 */ 1908, 1909, 1901, 1903, 1788, 1778, 1798, 1911, 1911, 1913, | |
| 161348 | + /* 460 */ 1793, 1918, 1795, 1924, 1940, 1800, 1814, 1911, 1815, 1882, | |
| 161349 | + /* 470 */ 1912, 1911, 1796, 1895, 1898, 1900, 1902, 1824, 1840, 1923, | |
| 161350 | + /* 480 */ 1818, 1957, 1955, 1939, 1847, 1803, 1899, 1938, 1904, 1890, | |
| 161351 | + /* 490 */ 1925, 1827, 1854, 1946, 1951, 1954, 1843, 1850, 1956, 1914, | |
| 161352 | + /* 500 */ 1958, 1960, 1953, 1961, 1917, 1920, 1962, 1881, 1959, 1963, | |
| 161353 | + /* 510 */ 1921, 1952, 1967, 1842, 1970, 1971, 1972, 1973, 1968, 1974, | |
| 161354 | + /* 520 */ 1976, 1905, 1858, 1977, 1978, 1887, 1975, 1982, 1862, 1981, | |
| 161355 | + /* 530 */ 1979, 1980, 1983, 1984, 1919, 1933, 1926, 1966, 1936, 1922, | |
| 161356 | + /* 540 */ 1985, 1993, 1998, 1997, 1999, 2000, 1988, 2003, 1981, 2004, | |
| 161357 | + /* 550 */ 2005, 2006, 2007, 2008, 2009, 2001, 2020, 2012, 2013, 2014, | |
| 161358 | + /* 560 */ 2015, 2017, 2018, 2011, 1906, 1907, 1916, 1927, 1928, 2019, | |
| 161359 | + /* 570 */ 2022, 2027, 2042, 2045, | |
| 161360 | +}; | |
| 161361 | +#define YY_REDUCE_COUNT (408) | |
| 161362 | +#define YY_REDUCE_MIN (-267) | |
| 161363 | +#define YY_REDUCE_MAX (1715) | |
| 161331 | 161364 | static const short yy_reduce_ofst[] = { |
| 161332 | - /* 0 */ 109, 113, 272, 760, -178, -176, -192, -183, -180, -134, | |
| 161333 | - /* 10 */ 213, 220, 371, -208, -205, -272, -197, 611, 632, 765, | |
| 161334 | - /* 20 */ 786, 392, 943, 989, 503, 651, 1039, -18, 702, 821, | |
| 161335 | - /* 30 */ 710, 812, -188, -67, -187, 555, 662, 1020, 1023, 1050, | |
| 161336 | - /* 40 */ 1064, -267, -267, -267, -267, -267, -267, -267, -267, -267, | |
| 161337 | - /* 50 */ -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, | |
| 161338 | - /* 60 */ -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, | |
| 161339 | - /* 70 */ -267, -267, -267, -267, -267, -267, -267, -267, 811, 917, | |
| 161340 | - /* 80 */ 936, 938, 983, 1014, 1041, 1060, 1080, 1098, 1101, 1118, | |
| 161341 | - /* 90 */ 1126, 1136, 1146, 1158, 1167, 1194, 1196, 1198, 1206, 1213, | |
| 161342 | - /* 100 */ 1215, 1232, 1234, 1242, 1245, 1250, 1252, 1259, 1262, 1287, | |
| 161343 | - /* 110 */ 1289, 1299, 1302, 1304, 1308, 1314, 1321, 1329, 1334, 1336, | |
| 161344 | - /* 120 */ 1346, 1366, 1380, 1382, 1385, 1410, 1413, -267, -267, -267, | |
| 161345 | - /* 130 */ -267, -267, -267, -267, -267, 446, -267, 451, -24, 121, | |
| 161346 | - /* 140 */ 560, 518, 232, 609, 330, -181, -111, 654, 557, 671, | |
| 161347 | - /* 150 */ 557, 671, 882, -30, 93, -267, -267, -267, -267, 155, | |
| 161348 | - /* 160 */ 155, 155, 181, 242, 305, 339, 561, -218, 453, 227, | |
| 161349 | - /* 170 */ 158, 661, 661, -171, 114, 327, 653, -166, 275, 605, | |
| 161350 | - /* 180 */ 615, 337, 833, 665, 939, 957, 825, 958, 985, 501, | |
| 161351 | - /* 190 */ 986, 378, 1068, 384, 643, 393, 741, 660, 888, 762, | |
| 161352 | - /* 200 */ 822, 229, 988, 926, 504, 1025, 1027, 1034, 1026, 1079, | |
| 161353 | - /* 210 */ -204, -174, -151, 18, 130, 198, 226, 376, 391, 442, | |
| 161354 | - /* 220 */ 457, 493, 607, 715, 779, 782, 840, 865, 1072, 1099, | |
| 161355 | - /* 230 */ 1114, 1085, 1166, 1216, 1251, 1263, 1306, 1309, 1343, 1351, | |
| 161356 | - /* 240 */ 1362, 1368, 1399, 1407, 1227, 1239, 1396, 1438, 1445, 1446, | |
| 161357 | - /* 250 */ 1383, 1449, 1451, 1452, 1391, 1330, 1456, 1457, 1416, 1458, | |
| 161358 | - /* 260 */ 226, 1462, 1464, 1465, 1467, 1469, 1470, 1373, 1377, 1412, | |
| 161359 | - /* 270 */ 1401, 1418, 1419, 1423, 1383, 1412, 1412, 1422, 1453, 1475, | |
| 161360 | - /* 280 */ 1371, 1400, 1403, 1427, 1420, 1414, 1421, 1390, 1444, 1429, | |
| 161361 | - /* 290 */ 1431, 1466, 1435, 1474, 1398, 1478, 1480, 1482, 1491, 1492, | |
| 161362 | - /* 300 */ 1495, 1459, 1471, 1477, 1437, 1483, 1484, 1519, 1433, 1434, | |
| 161363 | - /* 310 */ 1533, 1534, 1443, 1455, 1538, 1476, 1485, 1486, 1527, 1525, | |
| 161364 | - /* 320 */ 1528, 1529, 1530, 1563, 1569, 1524, 1500, 1502, 1532, 1505, | |
| 161365 | - /* 330 */ 1542, 1536, 1545, 1540, 1580, 1586, 1498, 1507, 1595, 1592, | |
| 161366 | - /* 340 */ 1578, 1600, 1602, 1603, 1605, 1581, 1590, 1596, 1597, 1579, | |
| 161367 | - /* 350 */ 1593, 1599, 1604, 1598, 1601, 1606, 1607, 1609, 1610, 1501, | |
| 161368 | - /* 360 */ 1515, 1553, 1555, 1615, 1582, 1584, 1613, 1612, 1614, 1616, | |
| 161369 | - /* 370 */ 1619, 1617, 1641, 1531, 1535, 1618, 1621, 1631, 1622, 1573, | |
| 161370 | - /* 380 */ 1651, 1575, 1632, 1636, 1623, 1639, 1656, 1666, 1667, 1671, | |
| 161371 | - /* 390 */ 1672, 1673, 1564, 1565, 1566, 1662, 1674, 1675, 1677, 1678, | |
| 161372 | - /* 400 */ 1682, 1670, 1679, 1680, 1681, 1683, 1686, | |
| 161365 | + /* 0 */ -125, 733, 789, 241, 293, -123, -193, -191, -183, -187, | |
| 161366 | + /* 10 */ -180, 83, 133, -207, -198, -267, -175, -6, 166, 313, | |
| 161367 | + /* 20 */ 487, 396, 489, 598, 615, 685, 687, 79, 781, 857, | |
| 161368 | + /* 30 */ 490, 616, 240, 334, -188, 796, 841, 843, 1003, 1005, | |
| 161369 | + /* 40 */ 1007, -260, -260, -260, -260, -260, -260, -260, -260, -260, | |
| 161370 | + /* 50 */ -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, | |
| 161371 | + /* 60 */ -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, | |
| 161372 | + /* 70 */ -260, -260, -260, -260, -260, -260, -260, -260, 158, 203, | |
| 161373 | + /* 80 */ 391, 576, 724, 726, 886, 1021, 1035, 1063, 1081, 1083, | |
| 161374 | + /* 90 */ 1097, 1099, 1117, 1152, 1155, 1158, 1163, 1165, 1167, 1169, | |
| 161375 | + /* 100 */ 1172, 1180, 1183, 1198, 1200, 1205, 1215, 1225, 1227, 1236, | |
| 161376 | + /* 110 */ 1252, 1264, 1299, 1303, 1306, 1309, 1312, 1315, 1325, 1328, | |
| 161377 | + /* 120 */ 1337, 1340, 1343, 1371, 1373, 1384, 1386, 1411, -260, -260, | |
| 161378 | + /* 130 */ -260, -260, -260, -260, -260, -260, -260, -53, 138, 302, | |
| 161379 | + /* 140 */ -158, 357, 223, -222, 411, 458, -92, 556, 669, 581, | |
| 161380 | + /* 150 */ 632, 581, -260, 632, 758, 778, 920, -260, -260, -260, | |
| 161381 | + /* 160 */ -260, 161, 161, 161, 307, 234, 392, 526, 790, 195, | |
| 161382 | + /* 170 */ 359, -174, -173, 362, 362, -189, 16, 560, 567, 261, | |
| 161383 | + /* 180 */ 689, 802, 853, -122, -166, 408, 335, 617, 690, 837, | |
| 161384 | + /* 190 */ 1001, 746, 1061, 515, 1082, 994, 1034, -135, 1000, 1048, | |
| 161385 | + /* 200 */ 1137, 877, 897, 186, 627, 1031, 1133, 1148, 1159, 1194, | |
| 161386 | + /* 210 */ 1199, 1195, -194, -142, 18, -152, 68, 201, 253, 269, | |
| 161387 | + /* 220 */ 294, 354, 521, 528, 676, 680, 736, 743, 850, 907, | |
| 161388 | + /* 230 */ 1041, 1047, 1060, 727, 1139, 1147, 1201, 1237, 1278, 1359, | |
| 161389 | + /* 240 */ 1393, 1400, 1413, 1429, 1433, 1437, 1126, 1410, 1430, 1444, | |
| 161390 | + /* 250 */ 1480, 1483, 1405, 1486, 1490, 1492, 1420, 1372, 1496, 1498, | |
| 161391 | + /* 260 */ 1441, 1499, 253, 1500, 1503, 1504, 1506, 1507, 1508, 1398, | |
| 161392 | + /* 270 */ 1415, 1453, 1448, 1449, 1450, 1452, 1405, 1453, 1453, 1465, | |
| 161393 | + /* 280 */ 1495, 1519, 1414, 1443, 1445, 1468, 1456, 1455, 1457, 1424, | |
| 161394 | + /* 290 */ 1473, 1454, 1459, 1474, 1460, 1479, 1434, 1512, 1494, 1509, | |
| 161395 | + /* 300 */ 1517, 1518, 1525, 1469, 1489, 1501, 1467, 1510, 1497, 1543, | |
| 161396 | + /* 310 */ 1451, 1462, 1557, 1558, 1471, 1472, 1561, 1487, 1505, 1524, | |
| 161397 | + /* 320 */ 1538, 1537, 1545, 1548, 1556, 1575, 1596, 1552, 1529, 1530, | |
| 161398 | + /* 330 */ 1559, 1533, 1572, 1562, 1573, 1563, 1604, 1615, 1522, 1532, | |
| 161399 | + /* 340 */ 1622, 1624, 1605, 1625, 1628, 1629, 1631, 1607, 1616, 1619, | |
| 161400 | + /* 350 */ 1620, 1606, 1621, 1623, 1630, 1626, 1632, 1636, 1633, 1637, | |
| 161401 | + /* 360 */ 1638, 1531, 1541, 1567, 1571, 1640, 1597, 1599, 1601, 1603, | |
| 161402 | + /* 370 */ 1608, 1610, 1611, 1627, 1664, 1549, 1550, 1609, 1634, 1639, | |
| 161403 | + /* 380 */ 1641, 1602, 1676, 1642, 1646, 1644, 1650, 1654, 1683, 1694, | |
| 161404 | + /* 390 */ 1707, 1711, 1712, 1714, 1643, 1647, 1652, 1698, 1695, 1696, | |
| 161405 | + /* 400 */ 1697, 1699, 1700, 1689, 1691, 1701, 1702, 1704, 1715, | |
| 161373 | 161406 | }; |
| 161374 | 161407 | static const YYACTIONTYPE yy_default[] = { |
| 161375 | - /* 0 */ 1633, 1633, 1633, 1462, 1230, 1341, 1230, 1230, 1230, 1462, | |
| 161376 | - /* 10 */ 1462, 1462, 1230, 1371, 1371, 1515, 1263, 1230, 1230, 1230, | |
| 161377 | - /* 20 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1461, 1230, 1230, | |
| 161378 | - /* 30 */ 1230, 1230, 1550, 1550, 1230, 1230, 1230, 1230, 1230, 1230, | |
| 161379 | - /* 40 */ 1230, 1230, 1380, 1230, 1387, 1230, 1230, 1230, 1230, 1230, | |
| 161380 | - /* 50 */ 1463, 1464, 1230, 1230, 1230, 1514, 1516, 1479, 1394, 1393, | |
| 161381 | - /* 60 */ 1392, 1391, 1497, 1358, 1385, 1378, 1382, 1457, 1458, 1456, | |
| 161382 | - /* 70 */ 1460, 1464, 1463, 1230, 1381, 1428, 1442, 1427, 1230, 1230, | |
| 161383 | - /* 80 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, | |
| 161384 | - /* 90 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, | |
| 161385 | - /* 100 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, | |
| 161386 | - /* 110 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, | |
| 161387 | - /* 120 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1436, 1441, 1447, | |
| 161388 | - /* 130 */ 1440, 1437, 1430, 1429, 1431, 1230, 1432, 1230, 1254, 1230, | |
| 161389 | - /* 140 */ 1230, 1251, 1305, 1230, 1230, 1230, 1230, 1230, 1534, 1533, | |
| 161390 | - /* 150 */ 1230, 1230, 1263, 1422, 1421, 1433, 1434, 1444, 1443, 1522, | |
| 161391 | - /* 160 */ 1586, 1585, 1480, 1230, 1230, 1230, 1230, 1230, 1230, 1550, | |
| 161392 | - /* 170 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, | |
| 161393 | - /* 180 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, | |
| 161394 | - /* 190 */ 1230, 1230, 1230, 1550, 1550, 1230, 1263, 1550, 1550, 1259, | |
| 161395 | - /* 200 */ 1259, 1365, 1230, 1529, 1332, 1332, 1332, 1332, 1341, 1332, | |
| 161396 | - /* 210 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, | |
| 161397 | - /* 220 */ 1230, 1230, 1230, 1230, 1230, 1519, 1517, 1230, 1230, 1230, | |
| 161398 | - /* 230 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, | |
| 161399 | - /* 240 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, | |
| 161400 | - /* 250 */ 1230, 1230, 1230, 1230, 1337, 1230, 1230, 1230, 1230, 1230, | |
| 161401 | - /* 260 */ 1230, 1230, 1230, 1230, 1230, 1230, 1579, 1230, 1492, 1319, | |
| 161402 | - /* 270 */ 1337, 1337, 1337, 1337, 1339, 1320, 1318, 1331, 1264, 1237, | |
| 161403 | - /* 280 */ 1625, 1397, 1386, 1338, 1360, 1386, 1360, 1622, 1384, 1397, | |
| 161404 | - /* 290 */ 1397, 1384, 1397, 1338, 1622, 1280, 1602, 1275, 1371, 1371, | |
| 161405 | - /* 300 */ 1371, 1360, 1365, 1365, 1459, 1338, 1331, 1230, 1625, 1625, | |
| 161406 | - /* 310 */ 1346, 1346, 1624, 1624, 1346, 1480, 1609, 1406, 1308, 1314, | |
| 161407 | - /* 320 */ 1314, 1314, 1314, 1346, 1248, 1384, 1609, 1609, 1384, 1406, | |
| 161408 | - /* 330 */ 1308, 1384, 1308, 1384, 1346, 1248, 1496, 1619, 1346, 1248, | |
| 161409 | - /* 340 */ 1470, 1346, 1248, 1346, 1248, 1470, 1306, 1306, 1306, 1295, | |
| 161410 | - /* 350 */ 1230, 1230, 1470, 1306, 1280, 1306, 1295, 1306, 1306, 1568, | |
| 161411 | - /* 360 */ 1230, 1474, 1474, 1470, 1364, 1359, 1364, 1359, 1364, 1359, | |
| 161412 | - /* 370 */ 1364, 1359, 1346, 1560, 1560, 1374, 1374, 1379, 1365, 1465, | |
| 161413 | - /* 380 */ 1346, 1230, 1379, 1377, 1375, 1384, 1298, 1582, 1582, 1578, | |
| 161414 | - /* 390 */ 1578, 1578, 1630, 1630, 1529, 1595, 1263, 1263, 1263, 1263, | |
| 161415 | - /* 400 */ 1595, 1282, 1282, 1264, 1264, 1263, 1595, 1230, 1230, 1230, | |
| 161416 | - /* 410 */ 1230, 1230, 1230, 1590, 1230, 1524, 1481, 1350, 1230, 1230, | |
| 161417 | - /* 420 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, | |
| 161418 | - /* 430 */ 1230, 1230, 1535, 1230, 1230, 1230, 1230, 1230, 1230, 1230, | |
| 161419 | - /* 440 */ 1230, 1230, 1230, 1411, 1230, 1233, 1526, 1230, 1230, 1230, | |
| 161420 | - /* 450 */ 1230, 1230, 1230, 1230, 1230, 1388, 1389, 1351, 1230, 1230, | |
| 161421 | - /* 460 */ 1230, 1230, 1230, 1230, 1230, 1403, 1230, 1230, 1230, 1398, | |
| 161422 | - /* 470 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1621, 1230, | |
| 161423 | - /* 480 */ 1230, 1230, 1230, 1230, 1230, 1495, 1494, 1230, 1230, 1348, | |
| 161424 | - /* 490 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, | |
| 161425 | - /* 500 */ 1230, 1230, 1230, 1278, 1230, 1230, 1230, 1230, 1230, 1230, | |
| 161426 | - /* 510 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, | |
| 161427 | - /* 520 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1376, 1230, 1230, | |
| 161428 | - /* 530 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, | |
| 161429 | - /* 540 */ 1230, 1230, 1565, 1366, 1230, 1230, 1612, 1230, 1230, 1230, | |
| 161430 | - /* 550 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, | |
| 161431 | - /* 560 */ 1230, 1606, 1322, 1413, 1230, 1412, 1416, 1252, 1230, 1242, | |
| 161432 | - /* 570 */ 1230, 1230, | |
| 161408 | + /* 0 */ 1637, 1637, 1637, 1466, 1233, 1344, 1233, 1233, 1233, 1466, | |
| 161409 | + /* 10 */ 1466, 1466, 1233, 1374, 1374, 1519, 1266, 1233, 1233, 1233, | |
| 161410 | + /* 20 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1465, 1233, 1233, | |
| 161411 | + /* 30 */ 1233, 1233, 1554, 1554, 1233, 1233, 1233, 1233, 1233, 1233, | |
| 161412 | + /* 40 */ 1233, 1233, 1383, 1233, 1390, 1233, 1233, 1233, 1233, 1233, | |
| 161413 | + /* 50 */ 1467, 1468, 1233, 1233, 1233, 1518, 1520, 1483, 1397, 1396, | |
| 161414 | + /* 60 */ 1395, 1394, 1501, 1361, 1388, 1381, 1385, 1461, 1462, 1460, | |
| 161415 | + /* 70 */ 1464, 1468, 1467, 1233, 1384, 1431, 1445, 1430, 1233, 1233, | |
| 161416 | + /* 80 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, | |
| 161417 | + /* 90 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, | |
| 161418 | + /* 100 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, | |
| 161419 | + /* 110 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, | |
| 161420 | + /* 120 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1439, 1444, | |
| 161421 | + /* 130 */ 1451, 1443, 1440, 1433, 1432, 1434, 1435, 1233, 1233, 1257, | |
| 161422 | + /* 140 */ 1233, 1233, 1254, 1308, 1233, 1233, 1233, 1233, 1233, 1538, | |
| 161423 | + /* 150 */ 1537, 1233, 1436, 1233, 1266, 1425, 1424, 1448, 1437, 1447, | |
| 161424 | + /* 160 */ 1446, 1526, 1590, 1589, 1484, 1233, 1233, 1233, 1233, 1233, | |
| 161425 | + /* 170 */ 1233, 1554, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, | |
| 161426 | + /* 180 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, | |
| 161427 | + /* 190 */ 1233, 1233, 1233, 1233, 1233, 1554, 1554, 1233, 1266, 1554, | |
| 161428 | + /* 200 */ 1554, 1262, 1262, 1368, 1233, 1533, 1335, 1335, 1335, 1335, | |
| 161429 | + /* 210 */ 1344, 1335, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, | |
| 161430 | + /* 220 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1523, 1521, 1233, | |
| 161431 | + /* 230 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, | |
| 161432 | + /* 240 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, | |
| 161433 | + /* 250 */ 1233, 1233, 1233, 1233, 1233, 1233, 1340, 1233, 1233, 1233, | |
| 161434 | + /* 260 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1583, 1233, | |
| 161435 | + /* 270 */ 1496, 1322, 1340, 1340, 1340, 1340, 1342, 1323, 1321, 1334, | |
| 161436 | + /* 280 */ 1267, 1240, 1629, 1400, 1389, 1341, 1363, 1389, 1363, 1626, | |
| 161437 | + /* 290 */ 1387, 1400, 1400, 1387, 1400, 1341, 1626, 1283, 1606, 1278, | |
| 161438 | + /* 300 */ 1374, 1374, 1374, 1363, 1368, 1368, 1463, 1341, 1334, 1233, | |
| 161439 | + /* 310 */ 1629, 1629, 1349, 1349, 1628, 1628, 1349, 1484, 1613, 1409, | |
| 161440 | + /* 320 */ 1311, 1317, 1317, 1317, 1317, 1349, 1251, 1387, 1613, 1613, | |
| 161441 | + /* 330 */ 1387, 1409, 1311, 1387, 1311, 1387, 1349, 1251, 1500, 1623, | |
| 161442 | + /* 340 */ 1349, 1251, 1474, 1349, 1251, 1349, 1251, 1474, 1309, 1309, | |
| 161443 | + /* 350 */ 1309, 1298, 1233, 1233, 1474, 1309, 1283, 1309, 1298, 1309, | |
| 161444 | + /* 360 */ 1309, 1572, 1233, 1478, 1478, 1474, 1367, 1362, 1367, 1362, | |
| 161445 | + /* 370 */ 1367, 1362, 1367, 1362, 1349, 1564, 1564, 1377, 1377, 1382, | |
| 161446 | + /* 380 */ 1368, 1469, 1349, 1233, 1382, 1380, 1378, 1387, 1301, 1586, | |
| 161447 | + /* 390 */ 1586, 1582, 1582, 1582, 1634, 1634, 1533, 1599, 1266, 1266, | |
| 161448 | + /* 400 */ 1266, 1266, 1599, 1285, 1285, 1267, 1267, 1266, 1599, 1233, | |
| 161449 | + /* 410 */ 1233, 1233, 1233, 1233, 1233, 1594, 1233, 1528, 1485, 1353, | |
| 161450 | + /* 420 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, | |
| 161451 | + /* 430 */ 1233, 1233, 1233, 1233, 1539, 1233, 1233, 1233, 1233, 1233, | |
| 161452 | + /* 440 */ 1233, 1233, 1233, 1233, 1233, 1414, 1233, 1236, 1530, 1233, | |
| 161453 | + /* 450 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1391, 1392, 1354, | |
| 161454 | + /* 460 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1406, 1233, 1233, | |
| 161455 | + /* 470 */ 1233, 1401, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, | |
| 161456 | + /* 480 */ 1625, 1233, 1233, 1233, 1233, 1233, 1233, 1499, 1498, 1233, | |
| 161457 | + /* 490 */ 1233, 1351, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, | |
| 161458 | + /* 500 */ 1233, 1233, 1233, 1233, 1233, 1281, 1233, 1233, 1233, 1233, | |
| 161459 | + /* 510 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, | |
| 161460 | + /* 520 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1379, | |
| 161461 | + /* 530 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, | |
| 161462 | + /* 540 */ 1233, 1233, 1233, 1233, 1569, 1369, 1233, 1233, 1616, 1233, | |
| 161463 | + /* 550 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, | |
| 161464 | + /* 560 */ 1233, 1233, 1233, 1610, 1325, 1416, 1233, 1415, 1419, 1255, | |
| 161465 | + /* 570 */ 1233, 1245, 1233, 1233, | |
| 161433 | 161466 | }; |
| 161434 | 161467 | /********** End of lemon-generated parsing tables *****************************/ |
| 161435 | 161468 | |
| 161436 | 161469 | /* The next table maps tokens (terminal symbols) into fallback tokens. |
| 161437 | 161470 | ** If a construct like the following: |
| @@ -161492,14 +161525,14 @@ | ||
| 161492 | 161525 | 59, /* DETACH => ID */ |
| 161493 | 161526 | 59, /* EACH => ID */ |
| 161494 | 161527 | 59, /* FAIL => ID */ |
| 161495 | 161528 | 0, /* OR => nothing */ |
| 161496 | 161529 | 0, /* AND => nothing */ |
| 161530 | + 0, /* IS => nothing */ | |
| 161497 | 161531 | 59, /* MATCH => ID */ |
| 161498 | 161532 | 59, /* LIKE_KW => ID */ |
| 161499 | 161533 | 0, /* BETWEEN => nothing */ |
| 161500 | - 0, /* IS => nothing */ | |
| 161501 | 161534 | 0, /* IN => nothing */ |
| 161502 | 161535 | 0, /* ISNULL => nothing */ |
| 161503 | 161536 | 0, /* NOTNULL => nothing */ |
| 161504 | 161537 | 0, /* NE => nothing */ |
| 161505 | 161538 | 0, /* EQ => nothing */ |
| @@ -161559,10 +161592,11 @@ | ||
| 161559 | 161592 | 0, /* MINUS => nothing */ |
| 161560 | 161593 | 0, /* STAR => nothing */ |
| 161561 | 161594 | 0, /* SLASH => nothing */ |
| 161562 | 161595 | 0, /* REM => nothing */ |
| 161563 | 161596 | 0, /* CONCAT => nothing */ |
| 161597 | + 0, /* PTR => nothing */ | |
| 161564 | 161598 | 0, /* COLLATE => nothing */ |
| 161565 | 161599 | 0, /* BITNOT => nothing */ |
| 161566 | 161600 | 0, /* ON => nothing */ |
| 161567 | 161601 | 0, /* INDEXED => nothing */ |
| 161568 | 161602 | 0, /* STRING => nothing */ |
| @@ -161764,14 +161798,14 @@ | ||
| 161764 | 161798 | /* 40 */ "DETACH", |
| 161765 | 161799 | /* 41 */ "EACH", |
| 161766 | 161800 | /* 42 */ "FAIL", |
| 161767 | 161801 | /* 43 */ "OR", |
| 161768 | 161802 | /* 44 */ "AND", |
| 161769 | - /* 45 */ "MATCH", | |
| 161770 | - /* 46 */ "LIKE_KW", | |
| 161771 | - /* 47 */ "BETWEEN", | |
| 161772 | - /* 48 */ "IS", | |
| 161803 | + /* 45 */ "IS", | |
| 161804 | + /* 46 */ "MATCH", | |
| 161805 | + /* 47 */ "LIKE_KW", | |
| 161806 | + /* 48 */ "BETWEEN", | |
| 161773 | 161807 | /* 49 */ "IN", |
| 161774 | 161808 | /* 50 */ "ISNULL", |
| 161775 | 161809 | /* 51 */ "NOTNULL", |
| 161776 | 161810 | /* 52 */ "NE", |
| 161777 | 161811 | /* 53 */ "EQ", |
| @@ -161831,216 +161865,217 @@ | ||
| 161831 | 161865 | /* 107 */ "MINUS", |
| 161832 | 161866 | /* 108 */ "STAR", |
| 161833 | 161867 | /* 109 */ "SLASH", |
| 161834 | 161868 | /* 110 */ "REM", |
| 161835 | 161869 | /* 111 */ "CONCAT", |
| 161836 | - /* 112 */ "COLLATE", | |
| 161837 | - /* 113 */ "BITNOT", | |
| 161838 | - /* 114 */ "ON", | |
| 161839 | - /* 115 */ "INDEXED", | |
| 161840 | - /* 116 */ "STRING", | |
| 161841 | - /* 117 */ "JOIN_KW", | |
| 161842 | - /* 118 */ "CONSTRAINT", | |
| 161843 | - /* 119 */ "DEFAULT", | |
| 161844 | - /* 120 */ "NULL", | |
| 161845 | - /* 121 */ "PRIMARY", | |
| 161846 | - /* 122 */ "UNIQUE", | |
| 161847 | - /* 123 */ "CHECK", | |
| 161848 | - /* 124 */ "REFERENCES", | |
| 161849 | - /* 125 */ "AUTOINCR", | |
| 161850 | - /* 126 */ "INSERT", | |
| 161851 | - /* 127 */ "DELETE", | |
| 161852 | - /* 128 */ "UPDATE", | |
| 161853 | - /* 129 */ "SET", | |
| 161854 | - /* 130 */ "DEFERRABLE", | |
| 161855 | - /* 131 */ "FOREIGN", | |
| 161856 | - /* 132 */ "DROP", | |
| 161857 | - /* 133 */ "UNION", | |
| 161858 | - /* 134 */ "ALL", | |
| 161859 | - /* 135 */ "EXCEPT", | |
| 161860 | - /* 136 */ "INTERSECT", | |
| 161861 | - /* 137 */ "SELECT", | |
| 161862 | - /* 138 */ "VALUES", | |
| 161863 | - /* 139 */ "DISTINCT", | |
| 161864 | - /* 140 */ "DOT", | |
| 161865 | - /* 141 */ "FROM", | |
| 161866 | - /* 142 */ "JOIN", | |
| 161867 | - /* 143 */ "USING", | |
| 161868 | - /* 144 */ "ORDER", | |
| 161869 | - /* 145 */ "GROUP", | |
| 161870 | - /* 146 */ "HAVING", | |
| 161871 | - /* 147 */ "LIMIT", | |
| 161872 | - /* 148 */ "WHERE", | |
| 161873 | - /* 149 */ "RETURNING", | |
| 161874 | - /* 150 */ "INTO", | |
| 161875 | - /* 151 */ "NOTHING", | |
| 161876 | - /* 152 */ "FLOAT", | |
| 161877 | - /* 153 */ "BLOB", | |
| 161878 | - /* 154 */ "INTEGER", | |
| 161879 | - /* 155 */ "VARIABLE", | |
| 161880 | - /* 156 */ "CASE", | |
| 161881 | - /* 157 */ "WHEN", | |
| 161882 | - /* 158 */ "THEN", | |
| 161883 | - /* 159 */ "ELSE", | |
| 161884 | - /* 160 */ "INDEX", | |
| 161885 | - /* 161 */ "ALTER", | |
| 161886 | - /* 162 */ "ADD", | |
| 161887 | - /* 163 */ "WINDOW", | |
| 161888 | - /* 164 */ "OVER", | |
| 161889 | - /* 165 */ "FILTER", | |
| 161890 | - /* 166 */ "COLUMN", | |
| 161891 | - /* 167 */ "AGG_FUNCTION", | |
| 161892 | - /* 168 */ "AGG_COLUMN", | |
| 161893 | - /* 169 */ "TRUEFALSE", | |
| 161894 | - /* 170 */ "ISNOT", | |
| 161895 | - /* 171 */ "FUNCTION", | |
| 161896 | - /* 172 */ "UMINUS", | |
| 161897 | - /* 173 */ "UPLUS", | |
| 161898 | - /* 174 */ "TRUTH", | |
| 161899 | - /* 175 */ "REGISTER", | |
| 161900 | - /* 176 */ "VECTOR", | |
| 161901 | - /* 177 */ "SELECT_COLUMN", | |
| 161902 | - /* 178 */ "IF_NULL_ROW", | |
| 161903 | - /* 179 */ "ASTERISK", | |
| 161904 | - /* 180 */ "SPAN", | |
| 161905 | - /* 181 */ "ERROR", | |
| 161906 | - /* 182 */ "SPACE", | |
| 161907 | - /* 183 */ "ILLEGAL", | |
| 161908 | - /* 184 */ "input", | |
| 161909 | - /* 185 */ "cmdlist", | |
| 161910 | - /* 186 */ "ecmd", | |
| 161911 | - /* 187 */ "cmdx", | |
| 161912 | - /* 188 */ "explain", | |
| 161913 | - /* 189 */ "cmd", | |
| 161914 | - /* 190 */ "transtype", | |
| 161915 | - /* 191 */ "trans_opt", | |
| 161916 | - /* 192 */ "nm", | |
| 161917 | - /* 193 */ "savepoint_opt", | |
| 161918 | - /* 194 */ "create_table", | |
| 161919 | - /* 195 */ "create_table_args", | |
| 161920 | - /* 196 */ "createkw", | |
| 161921 | - /* 197 */ "temp", | |
| 161922 | - /* 198 */ "ifnotexists", | |
| 161923 | - /* 199 */ "dbnm", | |
| 161924 | - /* 200 */ "columnlist", | |
| 161925 | - /* 201 */ "conslist_opt", | |
| 161926 | - /* 202 */ "table_option_set", | |
| 161927 | - /* 203 */ "select", | |
| 161928 | - /* 204 */ "table_option", | |
| 161929 | - /* 205 */ "columnname", | |
| 161930 | - /* 206 */ "carglist", | |
| 161931 | - /* 207 */ "typetoken", | |
| 161932 | - /* 208 */ "typename", | |
| 161933 | - /* 209 */ "signed", | |
| 161934 | - /* 210 */ "plus_num", | |
| 161935 | - /* 211 */ "minus_num", | |
| 161936 | - /* 212 */ "scanpt", | |
| 161937 | - /* 213 */ "scantok", | |
| 161938 | - /* 214 */ "ccons", | |
| 161939 | - /* 215 */ "term", | |
| 161940 | - /* 216 */ "expr", | |
| 161941 | - /* 217 */ "onconf", | |
| 161942 | - /* 218 */ "sortorder", | |
| 161943 | - /* 219 */ "autoinc", | |
| 161944 | - /* 220 */ "eidlist_opt", | |
| 161945 | - /* 221 */ "refargs", | |
| 161946 | - /* 222 */ "defer_subclause", | |
| 161947 | - /* 223 */ "generated", | |
| 161948 | - /* 224 */ "refarg", | |
| 161949 | - /* 225 */ "refact", | |
| 161950 | - /* 226 */ "init_deferred_pred_opt", | |
| 161951 | - /* 227 */ "conslist", | |
| 161952 | - /* 228 */ "tconscomma", | |
| 161953 | - /* 229 */ "tcons", | |
| 161954 | - /* 230 */ "sortlist", | |
| 161955 | - /* 231 */ "eidlist", | |
| 161956 | - /* 232 */ "defer_subclause_opt", | |
| 161957 | - /* 233 */ "orconf", | |
| 161958 | - /* 234 */ "resolvetype", | |
| 161959 | - /* 235 */ "raisetype", | |
| 161960 | - /* 236 */ "ifexists", | |
| 161961 | - /* 237 */ "fullname", | |
| 161962 | - /* 238 */ "selectnowith", | |
| 161963 | - /* 239 */ "oneselect", | |
| 161964 | - /* 240 */ "wqlist", | |
| 161965 | - /* 241 */ "multiselect_op", | |
| 161966 | - /* 242 */ "distinct", | |
| 161967 | - /* 243 */ "selcollist", | |
| 161968 | - /* 244 */ "from", | |
| 161969 | - /* 245 */ "where_opt", | |
| 161970 | - /* 246 */ "groupby_opt", | |
| 161971 | - /* 247 */ "having_opt", | |
| 161972 | - /* 248 */ "orderby_opt", | |
| 161973 | - /* 249 */ "limit_opt", | |
| 161974 | - /* 250 */ "window_clause", | |
| 161975 | - /* 251 */ "values", | |
| 161976 | - /* 252 */ "nexprlist", | |
| 161977 | - /* 253 */ "sclp", | |
| 161978 | - /* 254 */ "as", | |
| 161979 | - /* 255 */ "seltablist", | |
| 161980 | - /* 256 */ "stl_prefix", | |
| 161981 | - /* 257 */ "joinop", | |
| 161982 | - /* 258 */ "indexed_opt", | |
| 161983 | - /* 259 */ "on_opt", | |
| 161984 | - /* 260 */ "using_opt", | |
| 161985 | - /* 261 */ "exprlist", | |
| 161986 | - /* 262 */ "xfullname", | |
| 161987 | - /* 263 */ "idlist", | |
| 161988 | - /* 264 */ "nulls", | |
| 161989 | - /* 265 */ "with", | |
| 161990 | - /* 266 */ "where_opt_ret", | |
| 161991 | - /* 267 */ "setlist", | |
| 161992 | - /* 268 */ "insert_cmd", | |
| 161993 | - /* 269 */ "idlist_opt", | |
| 161994 | - /* 270 */ "upsert", | |
| 161995 | - /* 271 */ "returning", | |
| 161996 | - /* 272 */ "filter_over", | |
| 161997 | - /* 273 */ "likeop", | |
| 161998 | - /* 274 */ "between_op", | |
| 161999 | - /* 275 */ "in_op", | |
| 162000 | - /* 276 */ "paren_exprlist", | |
| 162001 | - /* 277 */ "case_operand", | |
| 162002 | - /* 278 */ "case_exprlist", | |
| 162003 | - /* 279 */ "case_else", | |
| 162004 | - /* 280 */ "uniqueflag", | |
| 162005 | - /* 281 */ "collate", | |
| 162006 | - /* 282 */ "vinto", | |
| 162007 | - /* 283 */ "nmnum", | |
| 162008 | - /* 284 */ "trigger_decl", | |
| 162009 | - /* 285 */ "trigger_cmd_list", | |
| 162010 | - /* 286 */ "trigger_time", | |
| 162011 | - /* 287 */ "trigger_event", | |
| 162012 | - /* 288 */ "foreach_clause", | |
| 162013 | - /* 289 */ "when_clause", | |
| 162014 | - /* 290 */ "trigger_cmd", | |
| 162015 | - /* 291 */ "trnm", | |
| 162016 | - /* 292 */ "tridxby", | |
| 162017 | - /* 293 */ "database_kw_opt", | |
| 162018 | - /* 294 */ "key_opt", | |
| 162019 | - /* 295 */ "add_column_fullname", | |
| 162020 | - /* 296 */ "kwcolumn_opt", | |
| 162021 | - /* 297 */ "create_vtab", | |
| 162022 | - /* 298 */ "vtabarglist", | |
| 162023 | - /* 299 */ "vtabarg", | |
| 162024 | - /* 300 */ "vtabargtoken", | |
| 162025 | - /* 301 */ "lp", | |
| 162026 | - /* 302 */ "anylist", | |
| 162027 | - /* 303 */ "wqitem", | |
| 162028 | - /* 304 */ "wqas", | |
| 162029 | - /* 305 */ "windowdefn_list", | |
| 162030 | - /* 306 */ "windowdefn", | |
| 162031 | - /* 307 */ "window", | |
| 162032 | - /* 308 */ "frame_opt", | |
| 162033 | - /* 309 */ "part_opt", | |
| 162034 | - /* 310 */ "filter_clause", | |
| 162035 | - /* 311 */ "over_clause", | |
| 162036 | - /* 312 */ "range_or_rows", | |
| 162037 | - /* 313 */ "frame_bound", | |
| 162038 | - /* 314 */ "frame_bound_s", | |
| 162039 | - /* 315 */ "frame_bound_e", | |
| 162040 | - /* 316 */ "frame_exclude_opt", | |
| 162041 | - /* 317 */ "frame_exclude", | |
| 161870 | + /* 112 */ "PTR", | |
| 161871 | + /* 113 */ "COLLATE", | |
| 161872 | + /* 114 */ "BITNOT", | |
| 161873 | + /* 115 */ "ON", | |
| 161874 | + /* 116 */ "INDEXED", | |
| 161875 | + /* 117 */ "STRING", | |
| 161876 | + /* 118 */ "JOIN_KW", | |
| 161877 | + /* 119 */ "CONSTRAINT", | |
| 161878 | + /* 120 */ "DEFAULT", | |
| 161879 | + /* 121 */ "NULL", | |
| 161880 | + /* 122 */ "PRIMARY", | |
| 161881 | + /* 123 */ "UNIQUE", | |
| 161882 | + /* 124 */ "CHECK", | |
| 161883 | + /* 125 */ "REFERENCES", | |
| 161884 | + /* 126 */ "AUTOINCR", | |
| 161885 | + /* 127 */ "INSERT", | |
| 161886 | + /* 128 */ "DELETE", | |
| 161887 | + /* 129 */ "UPDATE", | |
| 161888 | + /* 130 */ "SET", | |
| 161889 | + /* 131 */ "DEFERRABLE", | |
| 161890 | + /* 132 */ "FOREIGN", | |
| 161891 | + /* 133 */ "DROP", | |
| 161892 | + /* 134 */ "UNION", | |
| 161893 | + /* 135 */ "ALL", | |
| 161894 | + /* 136 */ "EXCEPT", | |
| 161895 | + /* 137 */ "INTERSECT", | |
| 161896 | + /* 138 */ "SELECT", | |
| 161897 | + /* 139 */ "VALUES", | |
| 161898 | + /* 140 */ "DISTINCT", | |
| 161899 | + /* 141 */ "DOT", | |
| 161900 | + /* 142 */ "FROM", | |
| 161901 | + /* 143 */ "JOIN", | |
| 161902 | + /* 144 */ "USING", | |
| 161903 | + /* 145 */ "ORDER", | |
| 161904 | + /* 146 */ "GROUP", | |
| 161905 | + /* 147 */ "HAVING", | |
| 161906 | + /* 148 */ "LIMIT", | |
| 161907 | + /* 149 */ "WHERE", | |
| 161908 | + /* 150 */ "RETURNING", | |
| 161909 | + /* 151 */ "INTO", | |
| 161910 | + /* 152 */ "NOTHING", | |
| 161911 | + /* 153 */ "FLOAT", | |
| 161912 | + /* 154 */ "BLOB", | |
| 161913 | + /* 155 */ "INTEGER", | |
| 161914 | + /* 156 */ "VARIABLE", | |
| 161915 | + /* 157 */ "CASE", | |
| 161916 | + /* 158 */ "WHEN", | |
| 161917 | + /* 159 */ "THEN", | |
| 161918 | + /* 160 */ "ELSE", | |
| 161919 | + /* 161 */ "INDEX", | |
| 161920 | + /* 162 */ "ALTER", | |
| 161921 | + /* 163 */ "ADD", | |
| 161922 | + /* 164 */ "WINDOW", | |
| 161923 | + /* 165 */ "OVER", | |
| 161924 | + /* 166 */ "FILTER", | |
| 161925 | + /* 167 */ "COLUMN", | |
| 161926 | + /* 168 */ "AGG_FUNCTION", | |
| 161927 | + /* 169 */ "AGG_COLUMN", | |
| 161928 | + /* 170 */ "TRUEFALSE", | |
| 161929 | + /* 171 */ "ISNOT", | |
| 161930 | + /* 172 */ "FUNCTION", | |
| 161931 | + /* 173 */ "UMINUS", | |
| 161932 | + /* 174 */ "UPLUS", | |
| 161933 | + /* 175 */ "TRUTH", | |
| 161934 | + /* 176 */ "REGISTER", | |
| 161935 | + /* 177 */ "VECTOR", | |
| 161936 | + /* 178 */ "SELECT_COLUMN", | |
| 161937 | + /* 179 */ "IF_NULL_ROW", | |
| 161938 | + /* 180 */ "ASTERISK", | |
| 161939 | + /* 181 */ "SPAN", | |
| 161940 | + /* 182 */ "ERROR", | |
| 161941 | + /* 183 */ "SPACE", | |
| 161942 | + /* 184 */ "ILLEGAL", | |
| 161943 | + /* 185 */ "input", | |
| 161944 | + /* 186 */ "cmdlist", | |
| 161945 | + /* 187 */ "ecmd", | |
| 161946 | + /* 188 */ "cmdx", | |
| 161947 | + /* 189 */ "explain", | |
| 161948 | + /* 190 */ "cmd", | |
| 161949 | + /* 191 */ "transtype", | |
| 161950 | + /* 192 */ "trans_opt", | |
| 161951 | + /* 193 */ "nm", | |
| 161952 | + /* 194 */ "savepoint_opt", | |
| 161953 | + /* 195 */ "create_table", | |
| 161954 | + /* 196 */ "create_table_args", | |
| 161955 | + /* 197 */ "createkw", | |
| 161956 | + /* 198 */ "temp", | |
| 161957 | + /* 199 */ "ifnotexists", | |
| 161958 | + /* 200 */ "dbnm", | |
| 161959 | + /* 201 */ "columnlist", | |
| 161960 | + /* 202 */ "conslist_opt", | |
| 161961 | + /* 203 */ "table_option_set", | |
| 161962 | + /* 204 */ "select", | |
| 161963 | + /* 205 */ "table_option", | |
| 161964 | + /* 206 */ "columnname", | |
| 161965 | + /* 207 */ "carglist", | |
| 161966 | + /* 208 */ "typetoken", | |
| 161967 | + /* 209 */ "typename", | |
| 161968 | + /* 210 */ "signed", | |
| 161969 | + /* 211 */ "plus_num", | |
| 161970 | + /* 212 */ "minus_num", | |
| 161971 | + /* 213 */ "scanpt", | |
| 161972 | + /* 214 */ "scantok", | |
| 161973 | + /* 215 */ "ccons", | |
| 161974 | + /* 216 */ "term", | |
| 161975 | + /* 217 */ "expr", | |
| 161976 | + /* 218 */ "onconf", | |
| 161977 | + /* 219 */ "sortorder", | |
| 161978 | + /* 220 */ "autoinc", | |
| 161979 | + /* 221 */ "eidlist_opt", | |
| 161980 | + /* 222 */ "refargs", | |
| 161981 | + /* 223 */ "defer_subclause", | |
| 161982 | + /* 224 */ "generated", | |
| 161983 | + /* 225 */ "refarg", | |
| 161984 | + /* 226 */ "refact", | |
| 161985 | + /* 227 */ "init_deferred_pred_opt", | |
| 161986 | + /* 228 */ "conslist", | |
| 161987 | + /* 229 */ "tconscomma", | |
| 161988 | + /* 230 */ "tcons", | |
| 161989 | + /* 231 */ "sortlist", | |
| 161990 | + /* 232 */ "eidlist", | |
| 161991 | + /* 233 */ "defer_subclause_opt", | |
| 161992 | + /* 234 */ "orconf", | |
| 161993 | + /* 235 */ "resolvetype", | |
| 161994 | + /* 236 */ "raisetype", | |
| 161995 | + /* 237 */ "ifexists", | |
| 161996 | + /* 238 */ "fullname", | |
| 161997 | + /* 239 */ "selectnowith", | |
| 161998 | + /* 240 */ "oneselect", | |
| 161999 | + /* 241 */ "wqlist", | |
| 162000 | + /* 242 */ "multiselect_op", | |
| 162001 | + /* 243 */ "distinct", | |
| 162002 | + /* 244 */ "selcollist", | |
| 162003 | + /* 245 */ "from", | |
| 162004 | + /* 246 */ "where_opt", | |
| 162005 | + /* 247 */ "groupby_opt", | |
| 162006 | + /* 248 */ "having_opt", | |
| 162007 | + /* 249 */ "orderby_opt", | |
| 162008 | + /* 250 */ "limit_opt", | |
| 162009 | + /* 251 */ "window_clause", | |
| 162010 | + /* 252 */ "values", | |
| 162011 | + /* 253 */ "nexprlist", | |
| 162012 | + /* 254 */ "sclp", | |
| 162013 | + /* 255 */ "as", | |
| 162014 | + /* 256 */ "seltablist", | |
| 162015 | + /* 257 */ "stl_prefix", | |
| 162016 | + /* 258 */ "joinop", | |
| 162017 | + /* 259 */ "indexed_opt", | |
| 162018 | + /* 260 */ "on_opt", | |
| 162019 | + /* 261 */ "using_opt", | |
| 162020 | + /* 262 */ "exprlist", | |
| 162021 | + /* 263 */ "xfullname", | |
| 162022 | + /* 264 */ "idlist", | |
| 162023 | + /* 265 */ "nulls", | |
| 162024 | + /* 266 */ "with", | |
| 162025 | + /* 267 */ "where_opt_ret", | |
| 162026 | + /* 268 */ "setlist", | |
| 162027 | + /* 269 */ "insert_cmd", | |
| 162028 | + /* 270 */ "idlist_opt", | |
| 162029 | + /* 271 */ "upsert", | |
| 162030 | + /* 272 */ "returning", | |
| 162031 | + /* 273 */ "filter_over", | |
| 162032 | + /* 274 */ "likeop", | |
| 162033 | + /* 275 */ "between_op", | |
| 162034 | + /* 276 */ "in_op", | |
| 162035 | + /* 277 */ "paren_exprlist", | |
| 162036 | + /* 278 */ "case_operand", | |
| 162037 | + /* 279 */ "case_exprlist", | |
| 162038 | + /* 280 */ "case_else", | |
| 162039 | + /* 281 */ "uniqueflag", | |
| 162040 | + /* 282 */ "collate", | |
| 162041 | + /* 283 */ "vinto", | |
| 162042 | + /* 284 */ "nmnum", | |
| 162043 | + /* 285 */ "trigger_decl", | |
| 162044 | + /* 286 */ "trigger_cmd_list", | |
| 162045 | + /* 287 */ "trigger_time", | |
| 162046 | + /* 288 */ "trigger_event", | |
| 162047 | + /* 289 */ "foreach_clause", | |
| 162048 | + /* 290 */ "when_clause", | |
| 162049 | + /* 291 */ "trigger_cmd", | |
| 162050 | + /* 292 */ "trnm", | |
| 162051 | + /* 293 */ "tridxby", | |
| 162052 | + /* 294 */ "database_kw_opt", | |
| 162053 | + /* 295 */ "key_opt", | |
| 162054 | + /* 296 */ "add_column_fullname", | |
| 162055 | + /* 297 */ "kwcolumn_opt", | |
| 162056 | + /* 298 */ "create_vtab", | |
| 162057 | + /* 299 */ "vtabarglist", | |
| 162058 | + /* 300 */ "vtabarg", | |
| 162059 | + /* 301 */ "vtabargtoken", | |
| 162060 | + /* 302 */ "lp", | |
| 162061 | + /* 303 */ "anylist", | |
| 162062 | + /* 304 */ "wqitem", | |
| 162063 | + /* 305 */ "wqas", | |
| 162064 | + /* 306 */ "windowdefn_list", | |
| 162065 | + /* 307 */ "windowdefn", | |
| 162066 | + /* 308 */ "window", | |
| 162067 | + /* 309 */ "frame_opt", | |
| 162068 | + /* 310 */ "part_opt", | |
| 162069 | + /* 311 */ "filter_clause", | |
| 162070 | + /* 312 */ "over_clause", | |
| 162071 | + /* 313 */ "range_or_rows", | |
| 162072 | + /* 314 */ "frame_bound", | |
| 162073 | + /* 315 */ "frame_bound_s", | |
| 162074 | + /* 316 */ "frame_bound_e", | |
| 162075 | + /* 317 */ "frame_exclude_opt", | |
| 162076 | + /* 318 */ "frame_exclude", | |
| 162042 | 162077 | }; |
| 162043 | 162078 | #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */ |
| 162044 | 162079 | |
| 162045 | 162080 | #ifndef NDEBUG |
| 162046 | 162081 | /* For tracing reduce actions, the names of all rules are required. |
| @@ -162256,199 +162291,200 @@ | ||
| 162256 | 162291 | /* 207 */ "expr ::= expr IS expr", |
| 162257 | 162292 | /* 208 */ "expr ::= expr IS NOT expr", |
| 162258 | 162293 | /* 209 */ "expr ::= NOT expr", |
| 162259 | 162294 | /* 210 */ "expr ::= BITNOT expr", |
| 162260 | 162295 | /* 211 */ "expr ::= PLUS|MINUS expr", |
| 162261 | - /* 212 */ "between_op ::= BETWEEN", | |
| 162262 | - /* 213 */ "between_op ::= NOT BETWEEN", | |
| 162263 | - /* 214 */ "expr ::= expr between_op expr AND expr", | |
| 162264 | - /* 215 */ "in_op ::= IN", | |
| 162265 | - /* 216 */ "in_op ::= NOT IN", | |
| 162266 | - /* 217 */ "expr ::= expr in_op LP exprlist RP", | |
| 162267 | - /* 218 */ "expr ::= LP select RP", | |
| 162268 | - /* 219 */ "expr ::= expr in_op LP select RP", | |
| 162269 | - /* 220 */ "expr ::= expr in_op nm dbnm paren_exprlist", | |
| 162270 | - /* 221 */ "expr ::= EXISTS LP select RP", | |
| 162271 | - /* 222 */ "expr ::= CASE case_operand case_exprlist case_else END", | |
| 162272 | - /* 223 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", | |
| 162273 | - /* 224 */ "case_exprlist ::= WHEN expr THEN expr", | |
| 162274 | - /* 225 */ "case_else ::= ELSE expr", | |
| 162275 | - /* 226 */ "case_else ::=", | |
| 162276 | - /* 227 */ "case_operand ::= expr", | |
| 162277 | - /* 228 */ "case_operand ::=", | |
| 162278 | - /* 229 */ "exprlist ::=", | |
| 162279 | - /* 230 */ "nexprlist ::= nexprlist COMMA expr", | |
| 162280 | - /* 231 */ "nexprlist ::= expr", | |
| 162281 | - /* 232 */ "paren_exprlist ::=", | |
| 162282 | - /* 233 */ "paren_exprlist ::= LP exprlist RP", | |
| 162283 | - /* 234 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt", | |
| 162284 | - /* 235 */ "uniqueflag ::= UNIQUE", | |
| 162285 | - /* 236 */ "uniqueflag ::=", | |
| 162286 | - /* 237 */ "eidlist_opt ::=", | |
| 162287 | - /* 238 */ "eidlist_opt ::= LP eidlist RP", | |
| 162288 | - /* 239 */ "eidlist ::= eidlist COMMA nm collate sortorder", | |
| 162289 | - /* 240 */ "eidlist ::= nm collate sortorder", | |
| 162290 | - /* 241 */ "collate ::=", | |
| 162291 | - /* 242 */ "collate ::= COLLATE ID|STRING", | |
| 162292 | - /* 243 */ "cmd ::= DROP INDEX ifexists fullname", | |
| 162293 | - /* 244 */ "cmd ::= VACUUM vinto", | |
| 162294 | - /* 245 */ "cmd ::= VACUUM nm vinto", | |
| 162295 | - /* 246 */ "vinto ::= INTO expr", | |
| 162296 | - /* 247 */ "vinto ::=", | |
| 162297 | - /* 248 */ "cmd ::= PRAGMA nm dbnm", | |
| 162298 | - /* 249 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", | |
| 162299 | - /* 250 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", | |
| 162300 | - /* 251 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", | |
| 162301 | - /* 252 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP", | |
| 162302 | - /* 253 */ "plus_num ::= PLUS INTEGER|FLOAT", | |
| 162303 | - /* 254 */ "minus_num ::= MINUS INTEGER|FLOAT", | |
| 162304 | - /* 255 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END", | |
| 162305 | - /* 256 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", | |
| 162306 | - /* 257 */ "trigger_time ::= BEFORE|AFTER", | |
| 162307 | - /* 258 */ "trigger_time ::= INSTEAD OF", | |
| 162308 | - /* 259 */ "trigger_time ::=", | |
| 162309 | - /* 260 */ "trigger_event ::= DELETE|INSERT", | |
| 162310 | - /* 261 */ "trigger_event ::= UPDATE", | |
| 162311 | - /* 262 */ "trigger_event ::= UPDATE OF idlist", | |
| 162312 | - /* 263 */ "when_clause ::=", | |
| 162313 | - /* 264 */ "when_clause ::= WHEN expr", | |
| 162314 | - /* 265 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", | |
| 162315 | - /* 266 */ "trigger_cmd_list ::= trigger_cmd SEMI", | |
| 162316 | - /* 267 */ "trnm ::= nm DOT nm", | |
| 162317 | - /* 268 */ "tridxby ::= INDEXED BY nm", | |
| 162318 | - /* 269 */ "tridxby ::= NOT INDEXED", | |
| 162319 | - /* 270 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt", | |
| 162320 | - /* 271 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt", | |
| 162321 | - /* 272 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt", | |
| 162322 | - /* 273 */ "trigger_cmd ::= scanpt select scanpt", | |
| 162323 | - /* 274 */ "expr ::= RAISE LP IGNORE RP", | |
| 162324 | - /* 275 */ "expr ::= RAISE LP raisetype COMMA nm RP", | |
| 162325 | - /* 276 */ "raisetype ::= ROLLBACK", | |
| 162326 | - /* 277 */ "raisetype ::= ABORT", | |
| 162327 | - /* 278 */ "raisetype ::= FAIL", | |
| 162328 | - /* 279 */ "cmd ::= DROP TRIGGER ifexists fullname", | |
| 162329 | - /* 280 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", | |
| 162330 | - /* 281 */ "cmd ::= DETACH database_kw_opt expr", | |
| 162331 | - /* 282 */ "key_opt ::=", | |
| 162332 | - /* 283 */ "key_opt ::= KEY expr", | |
| 162333 | - /* 284 */ "cmd ::= REINDEX", | |
| 162334 | - /* 285 */ "cmd ::= REINDEX nm dbnm", | |
| 162335 | - /* 286 */ "cmd ::= ANALYZE", | |
| 162336 | - /* 287 */ "cmd ::= ANALYZE nm dbnm", | |
| 162337 | - /* 288 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", | |
| 162338 | - /* 289 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist", | |
| 162339 | - /* 290 */ "cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm", | |
| 162340 | - /* 291 */ "add_column_fullname ::= fullname", | |
| 162341 | - /* 292 */ "cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm", | |
| 162342 | - /* 293 */ "cmd ::= create_vtab", | |
| 162343 | - /* 294 */ "cmd ::= create_vtab LP vtabarglist RP", | |
| 162344 | - /* 295 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm", | |
| 162345 | - /* 296 */ "vtabarg ::=", | |
| 162346 | - /* 297 */ "vtabargtoken ::= ANY", | |
| 162347 | - /* 298 */ "vtabargtoken ::= lp anylist RP", | |
| 162348 | - /* 299 */ "lp ::= LP", | |
| 162349 | - /* 300 */ "with ::= WITH wqlist", | |
| 162350 | - /* 301 */ "with ::= WITH RECURSIVE wqlist", | |
| 162351 | - /* 302 */ "wqas ::= AS", | |
| 162352 | - /* 303 */ "wqas ::= AS MATERIALIZED", | |
| 162353 | - /* 304 */ "wqas ::= AS NOT MATERIALIZED", | |
| 162354 | - /* 305 */ "wqitem ::= nm eidlist_opt wqas LP select RP", | |
| 162355 | - /* 306 */ "wqlist ::= wqitem", | |
| 162356 | - /* 307 */ "wqlist ::= wqlist COMMA wqitem", | |
| 162357 | - /* 308 */ "windowdefn_list ::= windowdefn", | |
| 162358 | - /* 309 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", | |
| 162359 | - /* 310 */ "windowdefn ::= nm AS LP window RP", | |
| 162360 | - /* 311 */ "window ::= PARTITION BY nexprlist orderby_opt frame_opt", | |
| 162361 | - /* 312 */ "window ::= nm PARTITION BY nexprlist orderby_opt frame_opt", | |
| 162362 | - /* 313 */ "window ::= ORDER BY sortlist frame_opt", | |
| 162363 | - /* 314 */ "window ::= nm ORDER BY sortlist frame_opt", | |
| 162364 | - /* 315 */ "window ::= frame_opt", | |
| 162365 | - /* 316 */ "window ::= nm frame_opt", | |
| 162366 | - /* 317 */ "frame_opt ::=", | |
| 162367 | - /* 318 */ "frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt", | |
| 162368 | - /* 319 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt", | |
| 162369 | - /* 320 */ "range_or_rows ::= RANGE|ROWS|GROUPS", | |
| 162370 | - /* 321 */ "frame_bound_s ::= frame_bound", | |
| 162371 | - /* 322 */ "frame_bound_s ::= UNBOUNDED PRECEDING", | |
| 162372 | - /* 323 */ "frame_bound_e ::= frame_bound", | |
| 162373 | - /* 324 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", | |
| 162374 | - /* 325 */ "frame_bound ::= expr PRECEDING|FOLLOWING", | |
| 162375 | - /* 326 */ "frame_bound ::= CURRENT ROW", | |
| 162376 | - /* 327 */ "frame_exclude_opt ::=", | |
| 162377 | - /* 328 */ "frame_exclude_opt ::= EXCLUDE frame_exclude", | |
| 162378 | - /* 329 */ "frame_exclude ::= NO OTHERS", | |
| 162379 | - /* 330 */ "frame_exclude ::= CURRENT ROW", | |
| 162380 | - /* 331 */ "frame_exclude ::= GROUP|TIES", | |
| 162381 | - /* 332 */ "window_clause ::= WINDOW windowdefn_list", | |
| 162382 | - /* 333 */ "filter_over ::= filter_clause over_clause", | |
| 162383 | - /* 334 */ "filter_over ::= over_clause", | |
| 162384 | - /* 335 */ "filter_over ::= filter_clause", | |
| 162385 | - /* 336 */ "over_clause ::= OVER LP window RP", | |
| 162386 | - /* 337 */ "over_clause ::= OVER nm", | |
| 162387 | - /* 338 */ "filter_clause ::= FILTER LP WHERE expr RP", | |
| 162388 | - /* 339 */ "input ::= cmdlist", | |
| 162389 | - /* 340 */ "cmdlist ::= cmdlist ecmd", | |
| 162390 | - /* 341 */ "cmdlist ::= ecmd", | |
| 162391 | - /* 342 */ "ecmd ::= SEMI", | |
| 162392 | - /* 343 */ "ecmd ::= cmdx SEMI", | |
| 162393 | - /* 344 */ "ecmd ::= explain cmdx SEMI", | |
| 162394 | - /* 345 */ "trans_opt ::=", | |
| 162395 | - /* 346 */ "trans_opt ::= TRANSACTION", | |
| 162396 | - /* 347 */ "trans_opt ::= TRANSACTION nm", | |
| 162397 | - /* 348 */ "savepoint_opt ::= SAVEPOINT", | |
| 162398 | - /* 349 */ "savepoint_opt ::=", | |
| 162399 | - /* 350 */ "cmd ::= create_table create_table_args", | |
| 162400 | - /* 351 */ "table_option_set ::= table_option", | |
| 162401 | - /* 352 */ "columnlist ::= columnlist COMMA columnname carglist", | |
| 162402 | - /* 353 */ "columnlist ::= columnname carglist", | |
| 162403 | - /* 354 */ "nm ::= ID|INDEXED", | |
| 162404 | - /* 355 */ "nm ::= STRING", | |
| 162405 | - /* 356 */ "nm ::= JOIN_KW", | |
| 162406 | - /* 357 */ "typetoken ::= typename", | |
| 162407 | - /* 358 */ "typename ::= ID|STRING", | |
| 162408 | - /* 359 */ "signed ::= plus_num", | |
| 162409 | - /* 360 */ "signed ::= minus_num", | |
| 162410 | - /* 361 */ "carglist ::= carglist ccons", | |
| 162411 | - /* 362 */ "carglist ::=", | |
| 162412 | - /* 363 */ "ccons ::= NULL onconf", | |
| 162413 | - /* 364 */ "ccons ::= GENERATED ALWAYS AS generated", | |
| 162414 | - /* 365 */ "ccons ::= AS generated", | |
| 162415 | - /* 366 */ "conslist_opt ::= COMMA conslist", | |
| 162416 | - /* 367 */ "conslist ::= conslist tconscomma tcons", | |
| 162417 | - /* 368 */ "conslist ::= tcons", | |
| 162418 | - /* 369 */ "tconscomma ::=", | |
| 162419 | - /* 370 */ "defer_subclause_opt ::= defer_subclause", | |
| 162420 | - /* 371 */ "resolvetype ::= raisetype", | |
| 162421 | - /* 372 */ "selectnowith ::= oneselect", | |
| 162422 | - /* 373 */ "oneselect ::= values", | |
| 162423 | - /* 374 */ "sclp ::= selcollist COMMA", | |
| 162424 | - /* 375 */ "as ::= ID|STRING", | |
| 162425 | - /* 376 */ "returning ::=", | |
| 162426 | - /* 377 */ "expr ::= term", | |
| 162427 | - /* 378 */ "likeop ::= LIKE_KW|MATCH", | |
| 162428 | - /* 379 */ "exprlist ::= nexprlist", | |
| 162429 | - /* 380 */ "nmnum ::= plus_num", | |
| 162430 | - /* 381 */ "nmnum ::= nm", | |
| 162431 | - /* 382 */ "nmnum ::= ON", | |
| 162432 | - /* 383 */ "nmnum ::= DELETE", | |
| 162433 | - /* 384 */ "nmnum ::= DEFAULT", | |
| 162434 | - /* 385 */ "plus_num ::= INTEGER|FLOAT", | |
| 162435 | - /* 386 */ "foreach_clause ::=", | |
| 162436 | - /* 387 */ "foreach_clause ::= FOR EACH ROW", | |
| 162437 | - /* 388 */ "trnm ::= nm", | |
| 162438 | - /* 389 */ "tridxby ::=", | |
| 162439 | - /* 390 */ "database_kw_opt ::= DATABASE", | |
| 162440 | - /* 391 */ "database_kw_opt ::=", | |
| 162441 | - /* 392 */ "kwcolumn_opt ::=", | |
| 162442 | - /* 393 */ "kwcolumn_opt ::= COLUMNKW", | |
| 162443 | - /* 394 */ "vtabarglist ::= vtabarg", | |
| 162444 | - /* 395 */ "vtabarglist ::= vtabarglist COMMA vtabarg", | |
| 162445 | - /* 396 */ "vtabarg ::= vtabarg vtabargtoken", | |
| 162446 | - /* 397 */ "anylist ::=", | |
| 162447 | - /* 398 */ "anylist ::= anylist LP anylist RP", | |
| 162448 | - /* 399 */ "anylist ::= anylist ANY", | |
| 162449 | - /* 400 */ "with ::=", | |
| 162296 | + /* 212 */ "expr ::= expr PTR expr", | |
| 162297 | + /* 213 */ "between_op ::= BETWEEN", | |
| 162298 | + /* 214 */ "between_op ::= NOT BETWEEN", | |
| 162299 | + /* 215 */ "expr ::= expr between_op expr AND expr", | |
| 162300 | + /* 216 */ "in_op ::= IN", | |
| 162301 | + /* 217 */ "in_op ::= NOT IN", | |
| 162302 | + /* 218 */ "expr ::= expr in_op LP exprlist RP", | |
| 162303 | + /* 219 */ "expr ::= LP select RP", | |
| 162304 | + /* 220 */ "expr ::= expr in_op LP select RP", | |
| 162305 | + /* 221 */ "expr ::= expr in_op nm dbnm paren_exprlist", | |
| 162306 | + /* 222 */ "expr ::= EXISTS LP select RP", | |
| 162307 | + /* 223 */ "expr ::= CASE case_operand case_exprlist case_else END", | |
| 162308 | + /* 224 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", | |
| 162309 | + /* 225 */ "case_exprlist ::= WHEN expr THEN expr", | |
| 162310 | + /* 226 */ "case_else ::= ELSE expr", | |
| 162311 | + /* 227 */ "case_else ::=", | |
| 162312 | + /* 228 */ "case_operand ::= expr", | |
| 162313 | + /* 229 */ "case_operand ::=", | |
| 162314 | + /* 230 */ "exprlist ::=", | |
| 162315 | + /* 231 */ "nexprlist ::= nexprlist COMMA expr", | |
| 162316 | + /* 232 */ "nexprlist ::= expr", | |
| 162317 | + /* 233 */ "paren_exprlist ::=", | |
| 162318 | + /* 234 */ "paren_exprlist ::= LP exprlist RP", | |
| 162319 | + /* 235 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt", | |
| 162320 | + /* 236 */ "uniqueflag ::= UNIQUE", | |
| 162321 | + /* 237 */ "uniqueflag ::=", | |
| 162322 | + /* 238 */ "eidlist_opt ::=", | |
| 162323 | + /* 239 */ "eidlist_opt ::= LP eidlist RP", | |
| 162324 | + /* 240 */ "eidlist ::= eidlist COMMA nm collate sortorder", | |
| 162325 | + /* 241 */ "eidlist ::= nm collate sortorder", | |
| 162326 | + /* 242 */ "collate ::=", | |
| 162327 | + /* 243 */ "collate ::= COLLATE ID|STRING", | |
| 162328 | + /* 244 */ "cmd ::= DROP INDEX ifexists fullname", | |
| 162329 | + /* 245 */ "cmd ::= VACUUM vinto", | |
| 162330 | + /* 246 */ "cmd ::= VACUUM nm vinto", | |
| 162331 | + /* 247 */ "vinto ::= INTO expr", | |
| 162332 | + /* 248 */ "vinto ::=", | |
| 162333 | + /* 249 */ "cmd ::= PRAGMA nm dbnm", | |
| 162334 | + /* 250 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", | |
| 162335 | + /* 251 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", | |
| 162336 | + /* 252 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", | |
| 162337 | + /* 253 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP", | |
| 162338 | + /* 254 */ "plus_num ::= PLUS INTEGER|FLOAT", | |
| 162339 | + /* 255 */ "minus_num ::= MINUS INTEGER|FLOAT", | |
| 162340 | + /* 256 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END", | |
| 162341 | + /* 257 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", | |
| 162342 | + /* 258 */ "trigger_time ::= BEFORE|AFTER", | |
| 162343 | + /* 259 */ "trigger_time ::= INSTEAD OF", | |
| 162344 | + /* 260 */ "trigger_time ::=", | |
| 162345 | + /* 261 */ "trigger_event ::= DELETE|INSERT", | |
| 162346 | + /* 262 */ "trigger_event ::= UPDATE", | |
| 162347 | + /* 263 */ "trigger_event ::= UPDATE OF idlist", | |
| 162348 | + /* 264 */ "when_clause ::=", | |
| 162349 | + /* 265 */ "when_clause ::= WHEN expr", | |
| 162350 | + /* 266 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", | |
| 162351 | + /* 267 */ "trigger_cmd_list ::= trigger_cmd SEMI", | |
| 162352 | + /* 268 */ "trnm ::= nm DOT nm", | |
| 162353 | + /* 269 */ "tridxby ::= INDEXED BY nm", | |
| 162354 | + /* 270 */ "tridxby ::= NOT INDEXED", | |
| 162355 | + /* 271 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt", | |
| 162356 | + /* 272 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt", | |
| 162357 | + /* 273 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt", | |
| 162358 | + /* 274 */ "trigger_cmd ::= scanpt select scanpt", | |
| 162359 | + /* 275 */ "expr ::= RAISE LP IGNORE RP", | |
| 162360 | + /* 276 */ "expr ::= RAISE LP raisetype COMMA nm RP", | |
| 162361 | + /* 277 */ "raisetype ::= ROLLBACK", | |
| 162362 | + /* 278 */ "raisetype ::= ABORT", | |
| 162363 | + /* 279 */ "raisetype ::= FAIL", | |
| 162364 | + /* 280 */ "cmd ::= DROP TRIGGER ifexists fullname", | |
| 162365 | + /* 281 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", | |
| 162366 | + /* 282 */ "cmd ::= DETACH database_kw_opt expr", | |
| 162367 | + /* 283 */ "key_opt ::=", | |
| 162368 | + /* 284 */ "key_opt ::= KEY expr", | |
| 162369 | + /* 285 */ "cmd ::= REINDEX", | |
| 162370 | + /* 286 */ "cmd ::= REINDEX nm dbnm", | |
| 162371 | + /* 287 */ "cmd ::= ANALYZE", | |
| 162372 | + /* 288 */ "cmd ::= ANALYZE nm dbnm", | |
| 162373 | + /* 289 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", | |
| 162374 | + /* 290 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist", | |
| 162375 | + /* 291 */ "cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm", | |
| 162376 | + /* 292 */ "add_column_fullname ::= fullname", | |
| 162377 | + /* 293 */ "cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm", | |
| 162378 | + /* 294 */ "cmd ::= create_vtab", | |
| 162379 | + /* 295 */ "cmd ::= create_vtab LP vtabarglist RP", | |
| 162380 | + /* 296 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm", | |
| 162381 | + /* 297 */ "vtabarg ::=", | |
| 162382 | + /* 298 */ "vtabargtoken ::= ANY", | |
| 162383 | + /* 299 */ "vtabargtoken ::= lp anylist RP", | |
| 162384 | + /* 300 */ "lp ::= LP", | |
| 162385 | + /* 301 */ "with ::= WITH wqlist", | |
| 162386 | + /* 302 */ "with ::= WITH RECURSIVE wqlist", | |
| 162387 | + /* 303 */ "wqas ::= AS", | |
| 162388 | + /* 304 */ "wqas ::= AS MATERIALIZED", | |
| 162389 | + /* 305 */ "wqas ::= AS NOT MATERIALIZED", | |
| 162390 | + /* 306 */ "wqitem ::= nm eidlist_opt wqas LP select RP", | |
| 162391 | + /* 307 */ "wqlist ::= wqitem", | |
| 162392 | + /* 308 */ "wqlist ::= wqlist COMMA wqitem", | |
| 162393 | + /* 309 */ "windowdefn_list ::= windowdefn", | |
| 162394 | + /* 310 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", | |
| 162395 | + /* 311 */ "windowdefn ::= nm AS LP window RP", | |
| 162396 | + /* 312 */ "window ::= PARTITION BY nexprlist orderby_opt frame_opt", | |
| 162397 | + /* 313 */ "window ::= nm PARTITION BY nexprlist orderby_opt frame_opt", | |
| 162398 | + /* 314 */ "window ::= ORDER BY sortlist frame_opt", | |
| 162399 | + /* 315 */ "window ::= nm ORDER BY sortlist frame_opt", | |
| 162400 | + /* 316 */ "window ::= frame_opt", | |
| 162401 | + /* 317 */ "window ::= nm frame_opt", | |
| 162402 | + /* 318 */ "frame_opt ::=", | |
| 162403 | + /* 319 */ "frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt", | |
| 162404 | + /* 320 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt", | |
| 162405 | + /* 321 */ "range_or_rows ::= RANGE|ROWS|GROUPS", | |
| 162406 | + /* 322 */ "frame_bound_s ::= frame_bound", | |
| 162407 | + /* 323 */ "frame_bound_s ::= UNBOUNDED PRECEDING", | |
| 162408 | + /* 324 */ "frame_bound_e ::= frame_bound", | |
| 162409 | + /* 325 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", | |
| 162410 | + /* 326 */ "frame_bound ::= expr PRECEDING|FOLLOWING", | |
| 162411 | + /* 327 */ "frame_bound ::= CURRENT ROW", | |
| 162412 | + /* 328 */ "frame_exclude_opt ::=", | |
| 162413 | + /* 329 */ "frame_exclude_opt ::= EXCLUDE frame_exclude", | |
| 162414 | + /* 330 */ "frame_exclude ::= NO OTHERS", | |
| 162415 | + /* 331 */ "frame_exclude ::= CURRENT ROW", | |
| 162416 | + /* 332 */ "frame_exclude ::= GROUP|TIES", | |
| 162417 | + /* 333 */ "window_clause ::= WINDOW windowdefn_list", | |
| 162418 | + /* 334 */ "filter_over ::= filter_clause over_clause", | |
| 162419 | + /* 335 */ "filter_over ::= over_clause", | |
| 162420 | + /* 336 */ "filter_over ::= filter_clause", | |
| 162421 | + /* 337 */ "over_clause ::= OVER LP window RP", | |
| 162422 | + /* 338 */ "over_clause ::= OVER nm", | |
| 162423 | + /* 339 */ "filter_clause ::= FILTER LP WHERE expr RP", | |
| 162424 | + /* 340 */ "input ::= cmdlist", | |
| 162425 | + /* 341 */ "cmdlist ::= cmdlist ecmd", | |
| 162426 | + /* 342 */ "cmdlist ::= ecmd", | |
| 162427 | + /* 343 */ "ecmd ::= SEMI", | |
| 162428 | + /* 344 */ "ecmd ::= cmdx SEMI", | |
| 162429 | + /* 345 */ "ecmd ::= explain cmdx SEMI", | |
| 162430 | + /* 346 */ "trans_opt ::=", | |
| 162431 | + /* 347 */ "trans_opt ::= TRANSACTION", | |
| 162432 | + /* 348 */ "trans_opt ::= TRANSACTION nm", | |
| 162433 | + /* 349 */ "savepoint_opt ::= SAVEPOINT", | |
| 162434 | + /* 350 */ "savepoint_opt ::=", | |
| 162435 | + /* 351 */ "cmd ::= create_table create_table_args", | |
| 162436 | + /* 352 */ "table_option_set ::= table_option", | |
| 162437 | + /* 353 */ "columnlist ::= columnlist COMMA columnname carglist", | |
| 162438 | + /* 354 */ "columnlist ::= columnname carglist", | |
| 162439 | + /* 355 */ "nm ::= ID|INDEXED", | |
| 162440 | + /* 356 */ "nm ::= STRING", | |
| 162441 | + /* 357 */ "nm ::= JOIN_KW", | |
| 162442 | + /* 358 */ "typetoken ::= typename", | |
| 162443 | + /* 359 */ "typename ::= ID|STRING", | |
| 162444 | + /* 360 */ "signed ::= plus_num", | |
| 162445 | + /* 361 */ "signed ::= minus_num", | |
| 162446 | + /* 362 */ "carglist ::= carglist ccons", | |
| 162447 | + /* 363 */ "carglist ::=", | |
| 162448 | + /* 364 */ "ccons ::= NULL onconf", | |
| 162449 | + /* 365 */ "ccons ::= GENERATED ALWAYS AS generated", | |
| 162450 | + /* 366 */ "ccons ::= AS generated", | |
| 162451 | + /* 367 */ "conslist_opt ::= COMMA conslist", | |
| 162452 | + /* 368 */ "conslist ::= conslist tconscomma tcons", | |
| 162453 | + /* 369 */ "conslist ::= tcons", | |
| 162454 | + /* 370 */ "tconscomma ::=", | |
| 162455 | + /* 371 */ "defer_subclause_opt ::= defer_subclause", | |
| 162456 | + /* 372 */ "resolvetype ::= raisetype", | |
| 162457 | + /* 373 */ "selectnowith ::= oneselect", | |
| 162458 | + /* 374 */ "oneselect ::= values", | |
| 162459 | + /* 375 */ "sclp ::= selcollist COMMA", | |
| 162460 | + /* 376 */ "as ::= ID|STRING", | |
| 162461 | + /* 377 */ "returning ::=", | |
| 162462 | + /* 378 */ "expr ::= term", | |
| 162463 | + /* 379 */ "likeop ::= LIKE_KW|MATCH", | |
| 162464 | + /* 380 */ "exprlist ::= nexprlist", | |
| 162465 | + /* 381 */ "nmnum ::= plus_num", | |
| 162466 | + /* 382 */ "nmnum ::= nm", | |
| 162467 | + /* 383 */ "nmnum ::= ON", | |
| 162468 | + /* 384 */ "nmnum ::= DELETE", | |
| 162469 | + /* 385 */ "nmnum ::= DEFAULT", | |
| 162470 | + /* 386 */ "plus_num ::= INTEGER|FLOAT", | |
| 162471 | + /* 387 */ "foreach_clause ::=", | |
| 162472 | + /* 388 */ "foreach_clause ::= FOR EACH ROW", | |
| 162473 | + /* 389 */ "trnm ::= nm", | |
| 162474 | + /* 390 */ "tridxby ::=", | |
| 162475 | + /* 391 */ "database_kw_opt ::= DATABASE", | |
| 162476 | + /* 392 */ "database_kw_opt ::=", | |
| 162477 | + /* 393 */ "kwcolumn_opt ::=", | |
| 162478 | + /* 394 */ "kwcolumn_opt ::= COLUMNKW", | |
| 162479 | + /* 395 */ "vtabarglist ::= vtabarg", | |
| 162480 | + /* 396 */ "vtabarglist ::= vtabarglist COMMA vtabarg", | |
| 162481 | + /* 397 */ "vtabarg ::= vtabarg vtabargtoken", | |
| 162482 | + /* 398 */ "anylist ::=", | |
| 162483 | + /* 399 */ "anylist ::= anylist LP anylist RP", | |
| 162484 | + /* 400 */ "anylist ::= anylist ANY", | |
| 162485 | + /* 401 */ "with ::=", | |
| 162450 | 162486 | }; |
| 162451 | 162487 | #endif /* NDEBUG */ |
| 162452 | 162488 | |
| 162453 | 162489 | |
| 162454 | 162490 | #if YYSTACKDEPTH<=0 |
| @@ -162570,103 +162606,103 @@ | ||
| 162570 | 162606 | ** Note: during a reduce, the only symbols destroyed are those |
| 162571 | 162607 | ** which appear on the RHS of the rule, but which are *not* used |
| 162572 | 162608 | ** inside the C code. |
| 162573 | 162609 | */ |
| 162574 | 162610 | /********* Begin destructor definitions ***************************************/ |
| 162575 | - case 203: /* select */ | |
| 162576 | - case 238: /* selectnowith */ | |
| 162577 | - case 239: /* oneselect */ | |
| 162578 | - case 251: /* values */ | |
| 162579 | -{ | |
| 162580 | -sqlite3SelectDelete(pParse->db, (yypminor->yy303)); | |
| 162581 | -} | |
| 162582 | - break; | |
| 162583 | - case 215: /* term */ | |
| 162584 | - case 216: /* expr */ | |
| 162585 | - case 245: /* where_opt */ | |
| 162586 | - case 247: /* having_opt */ | |
| 162587 | - case 259: /* on_opt */ | |
| 162588 | - case 266: /* where_opt_ret */ | |
| 162589 | - case 277: /* case_operand */ | |
| 162590 | - case 279: /* case_else */ | |
| 162591 | - case 282: /* vinto */ | |
| 162592 | - case 289: /* when_clause */ | |
| 162593 | - case 294: /* key_opt */ | |
| 162594 | - case 310: /* filter_clause */ | |
| 162595 | -{ | |
| 162596 | -sqlite3ExprDelete(pParse->db, (yypminor->yy626)); | |
| 162597 | -} | |
| 162598 | - break; | |
| 162599 | - case 220: /* eidlist_opt */ | |
| 162600 | - case 230: /* sortlist */ | |
| 162601 | - case 231: /* eidlist */ | |
| 162602 | - case 243: /* selcollist */ | |
| 162603 | - case 246: /* groupby_opt */ | |
| 162604 | - case 248: /* orderby_opt */ | |
| 162605 | - case 252: /* nexprlist */ | |
| 162606 | - case 253: /* sclp */ | |
| 162607 | - case 261: /* exprlist */ | |
| 162608 | - case 267: /* setlist */ | |
| 162609 | - case 276: /* paren_exprlist */ | |
| 162610 | - case 278: /* case_exprlist */ | |
| 162611 | - case 309: /* part_opt */ | |
| 162612 | -{ | |
| 162613 | -sqlite3ExprListDelete(pParse->db, (yypminor->yy562)); | |
| 162614 | -} | |
| 162615 | - break; | |
| 162616 | - case 237: /* fullname */ | |
| 162617 | - case 244: /* from */ | |
| 162618 | - case 255: /* seltablist */ | |
| 162619 | - case 256: /* stl_prefix */ | |
| 162620 | - case 262: /* xfullname */ | |
| 162621 | -{ | |
| 162622 | -sqlite3SrcListDelete(pParse->db, (yypminor->yy607)); | |
| 162623 | -} | |
| 162624 | - break; | |
| 162625 | - case 240: /* wqlist */ | |
| 162626 | -{ | |
| 162627 | -sqlite3WithDelete(pParse->db, (yypminor->yy43)); | |
| 162628 | -} | |
| 162629 | - break; | |
| 162630 | - case 250: /* window_clause */ | |
| 162631 | - case 305: /* windowdefn_list */ | |
| 162632 | -{ | |
| 162633 | -sqlite3WindowListDelete(pParse->db, (yypminor->yy375)); | |
| 162634 | -} | |
| 162635 | - break; | |
| 162636 | - case 260: /* using_opt */ | |
| 162637 | - case 263: /* idlist */ | |
| 162638 | - case 269: /* idlist_opt */ | |
| 162639 | -{ | |
| 162640 | -sqlite3IdListDelete(pParse->db, (yypminor->yy240)); | |
| 162641 | -} | |
| 162642 | - break; | |
| 162643 | - case 272: /* filter_over */ | |
| 162644 | - case 306: /* windowdefn */ | |
| 162645 | - case 307: /* window */ | |
| 162646 | - case 308: /* frame_opt */ | |
| 162647 | - case 311: /* over_clause */ | |
| 162648 | -{ | |
| 162649 | -sqlite3WindowDelete(pParse->db, (yypminor->yy375)); | |
| 162650 | -} | |
| 162651 | - break; | |
| 162652 | - case 285: /* trigger_cmd_list */ | |
| 162653 | - case 290: /* trigger_cmd */ | |
| 162654 | -{ | |
| 162655 | -sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy95)); | |
| 162656 | -} | |
| 162657 | - break; | |
| 162658 | - case 287: /* trigger_event */ | |
| 162659 | -{ | |
| 162660 | -sqlite3IdListDelete(pParse->db, (yypminor->yy570).b); | |
| 162661 | -} | |
| 162662 | - break; | |
| 162663 | - case 313: /* frame_bound */ | |
| 162664 | - case 314: /* frame_bound_s */ | |
| 162665 | - case 315: /* frame_bound_e */ | |
| 162666 | -{ | |
| 162667 | -sqlite3ExprDelete(pParse->db, (yypminor->yy81).pExpr); | |
| 162611 | + case 204: /* select */ | |
| 162612 | + case 239: /* selectnowith */ | |
| 162613 | + case 240: /* oneselect */ | |
| 162614 | + case 252: /* values */ | |
| 162615 | +{ | |
| 162616 | +sqlite3SelectDelete(pParse->db, (yypminor->yy47)); | |
| 162617 | +} | |
| 162618 | + break; | |
| 162619 | + case 216: /* term */ | |
| 162620 | + case 217: /* expr */ | |
| 162621 | + case 246: /* where_opt */ | |
| 162622 | + case 248: /* having_opt */ | |
| 162623 | + case 260: /* on_opt */ | |
| 162624 | + case 267: /* where_opt_ret */ | |
| 162625 | + case 278: /* case_operand */ | |
| 162626 | + case 280: /* case_else */ | |
| 162627 | + case 283: /* vinto */ | |
| 162628 | + case 290: /* when_clause */ | |
| 162629 | + case 295: /* key_opt */ | |
| 162630 | + case 311: /* filter_clause */ | |
| 162631 | +{ | |
| 162632 | +sqlite3ExprDelete(pParse->db, (yypminor->yy528)); | |
| 162633 | +} | |
| 162634 | + break; | |
| 162635 | + case 221: /* eidlist_opt */ | |
| 162636 | + case 231: /* sortlist */ | |
| 162637 | + case 232: /* eidlist */ | |
| 162638 | + case 244: /* selcollist */ | |
| 162639 | + case 247: /* groupby_opt */ | |
| 162640 | + case 249: /* orderby_opt */ | |
| 162641 | + case 253: /* nexprlist */ | |
| 162642 | + case 254: /* sclp */ | |
| 162643 | + case 262: /* exprlist */ | |
| 162644 | + case 268: /* setlist */ | |
| 162645 | + case 277: /* paren_exprlist */ | |
| 162646 | + case 279: /* case_exprlist */ | |
| 162647 | + case 310: /* part_opt */ | |
| 162648 | +{ | |
| 162649 | +sqlite3ExprListDelete(pParse->db, (yypminor->yy322)); | |
| 162650 | +} | |
| 162651 | + break; | |
| 162652 | + case 238: /* fullname */ | |
| 162653 | + case 245: /* from */ | |
| 162654 | + case 256: /* seltablist */ | |
| 162655 | + case 257: /* stl_prefix */ | |
| 162656 | + case 263: /* xfullname */ | |
| 162657 | +{ | |
| 162658 | +sqlite3SrcListDelete(pParse->db, (yypminor->yy131)); | |
| 162659 | +} | |
| 162660 | + break; | |
| 162661 | + case 241: /* wqlist */ | |
| 162662 | +{ | |
| 162663 | +sqlite3WithDelete(pParse->db, (yypminor->yy521)); | |
| 162664 | +} | |
| 162665 | + break; | |
| 162666 | + case 251: /* window_clause */ | |
| 162667 | + case 306: /* windowdefn_list */ | |
| 162668 | +{ | |
| 162669 | +sqlite3WindowListDelete(pParse->db, (yypminor->yy41)); | |
| 162670 | +} | |
| 162671 | + break; | |
| 162672 | + case 261: /* using_opt */ | |
| 162673 | + case 264: /* idlist */ | |
| 162674 | + case 270: /* idlist_opt */ | |
| 162675 | +{ | |
| 162676 | +sqlite3IdListDelete(pParse->db, (yypminor->yy254)); | |
| 162677 | +} | |
| 162678 | + break; | |
| 162679 | + case 273: /* filter_over */ | |
| 162680 | + case 307: /* windowdefn */ | |
| 162681 | + case 308: /* window */ | |
| 162682 | + case 309: /* frame_opt */ | |
| 162683 | + case 312: /* over_clause */ | |
| 162684 | +{ | |
| 162685 | +sqlite3WindowDelete(pParse->db, (yypminor->yy41)); | |
| 162686 | +} | |
| 162687 | + break; | |
| 162688 | + case 286: /* trigger_cmd_list */ | |
| 162689 | + case 291: /* trigger_cmd */ | |
| 162690 | +{ | |
| 162691 | +sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy33)); | |
| 162692 | +} | |
| 162693 | + break; | |
| 162694 | + case 288: /* trigger_event */ | |
| 162695 | +{ | |
| 162696 | +sqlite3IdListDelete(pParse->db, (yypminor->yy180).b); | |
| 162697 | +} | |
| 162698 | + break; | |
| 162699 | + case 314: /* frame_bound */ | |
| 162700 | + case 315: /* frame_bound_s */ | |
| 162701 | + case 316: /* frame_bound_e */ | |
| 162702 | +{ | |
| 162703 | +sqlite3ExprDelete(pParse->db, (yypminor->yy595).pExpr); | |
| 162668 | 162704 | } |
| 162669 | 162705 | break; |
| 162670 | 162706 | /********* End destructor definitions *****************************************/ |
| 162671 | 162707 | default: break; /* If no destructor action specified: do nothing */ |
| 162672 | 162708 | } |
| @@ -162953,411 +162989,412 @@ | ||
| 162953 | 162989 | } |
| 162954 | 162990 | |
| 162955 | 162991 | /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side |
| 162956 | 162992 | ** of that rule */ |
| 162957 | 162993 | static const YYCODETYPE yyRuleInfoLhs[] = { |
| 162958 | - 188, /* (0) explain ::= EXPLAIN */ | |
| 162959 | - 188, /* (1) explain ::= EXPLAIN QUERY PLAN */ | |
| 162960 | - 187, /* (2) cmdx ::= cmd */ | |
| 162961 | - 189, /* (3) cmd ::= BEGIN transtype trans_opt */ | |
| 162962 | - 190, /* (4) transtype ::= */ | |
| 162963 | - 190, /* (5) transtype ::= DEFERRED */ | |
| 162964 | - 190, /* (6) transtype ::= IMMEDIATE */ | |
| 162965 | - 190, /* (7) transtype ::= EXCLUSIVE */ | |
| 162966 | - 189, /* (8) cmd ::= COMMIT|END trans_opt */ | |
| 162967 | - 189, /* (9) cmd ::= ROLLBACK trans_opt */ | |
| 162968 | - 189, /* (10) cmd ::= SAVEPOINT nm */ | |
| 162969 | - 189, /* (11) cmd ::= RELEASE savepoint_opt nm */ | |
| 162970 | - 189, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ | |
| 162971 | - 194, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */ | |
| 162972 | - 196, /* (14) createkw ::= CREATE */ | |
| 162973 | - 198, /* (15) ifnotexists ::= */ | |
| 162974 | - 198, /* (16) ifnotexists ::= IF NOT EXISTS */ | |
| 162975 | - 197, /* (17) temp ::= TEMP */ | |
| 162976 | - 197, /* (18) temp ::= */ | |
| 162977 | - 195, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_option_set */ | |
| 162978 | - 195, /* (20) create_table_args ::= AS select */ | |
| 162979 | - 202, /* (21) table_option_set ::= */ | |
| 162980 | - 202, /* (22) table_option_set ::= table_option_set COMMA table_option */ | |
| 162981 | - 204, /* (23) table_option ::= WITHOUT nm */ | |
| 162982 | - 204, /* (24) table_option ::= nm */ | |
| 162983 | - 205, /* (25) columnname ::= nm typetoken */ | |
| 162984 | - 207, /* (26) typetoken ::= */ | |
| 162985 | - 207, /* (27) typetoken ::= typename LP signed RP */ | |
| 162986 | - 207, /* (28) typetoken ::= typename LP signed COMMA signed RP */ | |
| 162987 | - 208, /* (29) typename ::= typename ID|STRING */ | |
| 162988 | - 212, /* (30) scanpt ::= */ | |
| 162989 | - 213, /* (31) scantok ::= */ | |
| 162990 | - 214, /* (32) ccons ::= CONSTRAINT nm */ | |
| 162991 | - 214, /* (33) ccons ::= DEFAULT scantok term */ | |
| 162992 | - 214, /* (34) ccons ::= DEFAULT LP expr RP */ | |
| 162993 | - 214, /* (35) ccons ::= DEFAULT PLUS scantok term */ | |
| 162994 | - 214, /* (36) ccons ::= DEFAULT MINUS scantok term */ | |
| 162995 | - 214, /* (37) ccons ::= DEFAULT scantok ID|INDEXED */ | |
| 162996 | - 214, /* (38) ccons ::= NOT NULL onconf */ | |
| 162997 | - 214, /* (39) ccons ::= PRIMARY KEY sortorder onconf autoinc */ | |
| 162998 | - 214, /* (40) ccons ::= UNIQUE onconf */ | |
| 162999 | - 214, /* (41) ccons ::= CHECK LP expr RP */ | |
| 163000 | - 214, /* (42) ccons ::= REFERENCES nm eidlist_opt refargs */ | |
| 163001 | - 214, /* (43) ccons ::= defer_subclause */ | |
| 163002 | - 214, /* (44) ccons ::= COLLATE ID|STRING */ | |
| 163003 | - 223, /* (45) generated ::= LP expr RP */ | |
| 163004 | - 223, /* (46) generated ::= LP expr RP ID */ | |
| 163005 | - 219, /* (47) autoinc ::= */ | |
| 163006 | - 219, /* (48) autoinc ::= AUTOINCR */ | |
| 163007 | - 221, /* (49) refargs ::= */ | |
| 163008 | - 221, /* (50) refargs ::= refargs refarg */ | |
| 163009 | - 224, /* (51) refarg ::= MATCH nm */ | |
| 163010 | - 224, /* (52) refarg ::= ON INSERT refact */ | |
| 163011 | - 224, /* (53) refarg ::= ON DELETE refact */ | |
| 163012 | - 224, /* (54) refarg ::= ON UPDATE refact */ | |
| 163013 | - 225, /* (55) refact ::= SET NULL */ | |
| 163014 | - 225, /* (56) refact ::= SET DEFAULT */ | |
| 163015 | - 225, /* (57) refact ::= CASCADE */ | |
| 163016 | - 225, /* (58) refact ::= RESTRICT */ | |
| 163017 | - 225, /* (59) refact ::= NO ACTION */ | |
| 163018 | - 222, /* (60) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ | |
| 163019 | - 222, /* (61) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ | |
| 163020 | - 226, /* (62) init_deferred_pred_opt ::= */ | |
| 163021 | - 226, /* (63) init_deferred_pred_opt ::= INITIALLY DEFERRED */ | |
| 163022 | - 226, /* (64) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ | |
| 163023 | - 201, /* (65) conslist_opt ::= */ | |
| 163024 | - 228, /* (66) tconscomma ::= COMMA */ | |
| 163025 | - 229, /* (67) tcons ::= CONSTRAINT nm */ | |
| 163026 | - 229, /* (68) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ | |
| 163027 | - 229, /* (69) tcons ::= UNIQUE LP sortlist RP onconf */ | |
| 163028 | - 229, /* (70) tcons ::= CHECK LP expr RP onconf */ | |
| 163029 | - 229, /* (71) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ | |
| 163030 | - 232, /* (72) defer_subclause_opt ::= */ | |
| 163031 | - 217, /* (73) onconf ::= */ | |
| 163032 | - 217, /* (74) onconf ::= ON CONFLICT resolvetype */ | |
| 163033 | - 233, /* (75) orconf ::= */ | |
| 163034 | - 233, /* (76) orconf ::= OR resolvetype */ | |
| 163035 | - 234, /* (77) resolvetype ::= IGNORE */ | |
| 163036 | - 234, /* (78) resolvetype ::= REPLACE */ | |
| 163037 | - 189, /* (79) cmd ::= DROP TABLE ifexists fullname */ | |
| 163038 | - 236, /* (80) ifexists ::= IF EXISTS */ | |
| 163039 | - 236, /* (81) ifexists ::= */ | |
| 163040 | - 189, /* (82) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ | |
| 163041 | - 189, /* (83) cmd ::= DROP VIEW ifexists fullname */ | |
| 163042 | - 189, /* (84) cmd ::= select */ | |
| 163043 | - 203, /* (85) select ::= WITH wqlist selectnowith */ | |
| 163044 | - 203, /* (86) select ::= WITH RECURSIVE wqlist selectnowith */ | |
| 163045 | - 203, /* (87) select ::= selectnowith */ | |
| 163046 | - 238, /* (88) selectnowith ::= selectnowith multiselect_op oneselect */ | |
| 163047 | - 241, /* (89) multiselect_op ::= UNION */ | |
| 163048 | - 241, /* (90) multiselect_op ::= UNION ALL */ | |
| 163049 | - 241, /* (91) multiselect_op ::= EXCEPT|INTERSECT */ | |
| 163050 | - 239, /* (92) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ | |
| 163051 | - 239, /* (93) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ | |
| 163052 | - 251, /* (94) values ::= VALUES LP nexprlist RP */ | |
| 163053 | - 251, /* (95) values ::= values COMMA LP nexprlist RP */ | |
| 163054 | - 242, /* (96) distinct ::= DISTINCT */ | |
| 163055 | - 242, /* (97) distinct ::= ALL */ | |
| 163056 | - 242, /* (98) distinct ::= */ | |
| 163057 | - 253, /* (99) sclp ::= */ | |
| 163058 | - 243, /* (100) selcollist ::= sclp scanpt expr scanpt as */ | |
| 163059 | - 243, /* (101) selcollist ::= sclp scanpt STAR */ | |
| 163060 | - 243, /* (102) selcollist ::= sclp scanpt nm DOT STAR */ | |
| 163061 | - 254, /* (103) as ::= AS nm */ | |
| 163062 | - 254, /* (104) as ::= */ | |
| 163063 | - 244, /* (105) from ::= */ | |
| 163064 | - 244, /* (106) from ::= FROM seltablist */ | |
| 163065 | - 256, /* (107) stl_prefix ::= seltablist joinop */ | |
| 163066 | - 256, /* (108) stl_prefix ::= */ | |
| 163067 | - 255, /* (109) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ | |
| 163068 | - 255, /* (110) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */ | |
| 163069 | - 255, /* (111) seltablist ::= stl_prefix LP select RP as on_opt using_opt */ | |
| 163070 | - 255, /* (112) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ | |
| 163071 | - 199, /* (113) dbnm ::= */ | |
| 163072 | - 199, /* (114) dbnm ::= DOT nm */ | |
| 163073 | - 237, /* (115) fullname ::= nm */ | |
| 163074 | - 237, /* (116) fullname ::= nm DOT nm */ | |
| 163075 | - 262, /* (117) xfullname ::= nm */ | |
| 163076 | - 262, /* (118) xfullname ::= nm DOT nm */ | |
| 163077 | - 262, /* (119) xfullname ::= nm DOT nm AS nm */ | |
| 163078 | - 262, /* (120) xfullname ::= nm AS nm */ | |
| 163079 | - 257, /* (121) joinop ::= COMMA|JOIN */ | |
| 163080 | - 257, /* (122) joinop ::= JOIN_KW JOIN */ | |
| 163081 | - 257, /* (123) joinop ::= JOIN_KW nm JOIN */ | |
| 163082 | - 257, /* (124) joinop ::= JOIN_KW nm nm JOIN */ | |
| 163083 | - 259, /* (125) on_opt ::= ON expr */ | |
| 163084 | - 259, /* (126) on_opt ::= */ | |
| 163085 | - 258, /* (127) indexed_opt ::= */ | |
| 163086 | - 258, /* (128) indexed_opt ::= INDEXED BY nm */ | |
| 163087 | - 258, /* (129) indexed_opt ::= NOT INDEXED */ | |
| 163088 | - 260, /* (130) using_opt ::= USING LP idlist RP */ | |
| 163089 | - 260, /* (131) using_opt ::= */ | |
| 163090 | - 248, /* (132) orderby_opt ::= */ | |
| 163091 | - 248, /* (133) orderby_opt ::= ORDER BY sortlist */ | |
| 163092 | - 230, /* (134) sortlist ::= sortlist COMMA expr sortorder nulls */ | |
| 163093 | - 230, /* (135) sortlist ::= expr sortorder nulls */ | |
| 163094 | - 218, /* (136) sortorder ::= ASC */ | |
| 163095 | - 218, /* (137) sortorder ::= DESC */ | |
| 163096 | - 218, /* (138) sortorder ::= */ | |
| 163097 | - 264, /* (139) nulls ::= NULLS FIRST */ | |
| 163098 | - 264, /* (140) nulls ::= NULLS LAST */ | |
| 163099 | - 264, /* (141) nulls ::= */ | |
| 163100 | - 246, /* (142) groupby_opt ::= */ | |
| 163101 | - 246, /* (143) groupby_opt ::= GROUP BY nexprlist */ | |
| 163102 | - 247, /* (144) having_opt ::= */ | |
| 163103 | - 247, /* (145) having_opt ::= HAVING expr */ | |
| 163104 | - 249, /* (146) limit_opt ::= */ | |
| 163105 | - 249, /* (147) limit_opt ::= LIMIT expr */ | |
| 163106 | - 249, /* (148) limit_opt ::= LIMIT expr OFFSET expr */ | |
| 163107 | - 249, /* (149) limit_opt ::= LIMIT expr COMMA expr */ | |
| 163108 | - 189, /* (150) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ | |
| 163109 | - 245, /* (151) where_opt ::= */ | |
| 163110 | - 245, /* (152) where_opt ::= WHERE expr */ | |
| 163111 | - 266, /* (153) where_opt_ret ::= */ | |
| 163112 | - 266, /* (154) where_opt_ret ::= WHERE expr */ | |
| 163113 | - 266, /* (155) where_opt_ret ::= RETURNING selcollist */ | |
| 163114 | - 266, /* (156) where_opt_ret ::= WHERE expr RETURNING selcollist */ | |
| 163115 | - 189, /* (157) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ | |
| 163116 | - 267, /* (158) setlist ::= setlist COMMA nm EQ expr */ | |
| 163117 | - 267, /* (159) setlist ::= setlist COMMA LP idlist RP EQ expr */ | |
| 163118 | - 267, /* (160) setlist ::= nm EQ expr */ | |
| 163119 | - 267, /* (161) setlist ::= LP idlist RP EQ expr */ | |
| 163120 | - 189, /* (162) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ | |
| 163121 | - 189, /* (163) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ | |
| 163122 | - 270, /* (164) upsert ::= */ | |
| 163123 | - 270, /* (165) upsert ::= RETURNING selcollist */ | |
| 163124 | - 270, /* (166) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ | |
| 163125 | - 270, /* (167) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ | |
| 163126 | - 270, /* (168) upsert ::= ON CONFLICT DO NOTHING returning */ | |
| 163127 | - 270, /* (169) upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ | |
| 163128 | - 271, /* (170) returning ::= RETURNING selcollist */ | |
| 163129 | - 268, /* (171) insert_cmd ::= INSERT orconf */ | |
| 163130 | - 268, /* (172) insert_cmd ::= REPLACE */ | |
| 163131 | - 269, /* (173) idlist_opt ::= */ | |
| 163132 | - 269, /* (174) idlist_opt ::= LP idlist RP */ | |
| 163133 | - 263, /* (175) idlist ::= idlist COMMA nm */ | |
| 163134 | - 263, /* (176) idlist ::= nm */ | |
| 163135 | - 216, /* (177) expr ::= LP expr RP */ | |
| 163136 | - 216, /* (178) expr ::= ID|INDEXED */ | |
| 163137 | - 216, /* (179) expr ::= JOIN_KW */ | |
| 163138 | - 216, /* (180) expr ::= nm DOT nm */ | |
| 163139 | - 216, /* (181) expr ::= nm DOT nm DOT nm */ | |
| 163140 | - 215, /* (182) term ::= NULL|FLOAT|BLOB */ | |
| 163141 | - 215, /* (183) term ::= STRING */ | |
| 163142 | - 215, /* (184) term ::= INTEGER */ | |
| 163143 | - 216, /* (185) expr ::= VARIABLE */ | |
| 163144 | - 216, /* (186) expr ::= expr COLLATE ID|STRING */ | |
| 163145 | - 216, /* (187) expr ::= CAST LP expr AS typetoken RP */ | |
| 163146 | - 216, /* (188) expr ::= ID|INDEXED LP distinct exprlist RP */ | |
| 163147 | - 216, /* (189) expr ::= ID|INDEXED LP STAR RP */ | |
| 163148 | - 216, /* (190) expr ::= ID|INDEXED LP distinct exprlist RP filter_over */ | |
| 163149 | - 216, /* (191) expr ::= ID|INDEXED LP STAR RP filter_over */ | |
| 163150 | - 215, /* (192) term ::= CTIME_KW */ | |
| 163151 | - 216, /* (193) expr ::= LP nexprlist COMMA expr RP */ | |
| 163152 | - 216, /* (194) expr ::= expr AND expr */ | |
| 163153 | - 216, /* (195) expr ::= expr OR expr */ | |
| 163154 | - 216, /* (196) expr ::= expr LT|GT|GE|LE expr */ | |
| 163155 | - 216, /* (197) expr ::= expr EQ|NE expr */ | |
| 163156 | - 216, /* (198) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ | |
| 163157 | - 216, /* (199) expr ::= expr PLUS|MINUS expr */ | |
| 163158 | - 216, /* (200) expr ::= expr STAR|SLASH|REM expr */ | |
| 163159 | - 216, /* (201) expr ::= expr CONCAT expr */ | |
| 163160 | - 273, /* (202) likeop ::= NOT LIKE_KW|MATCH */ | |
| 163161 | - 216, /* (203) expr ::= expr likeop expr */ | |
| 163162 | - 216, /* (204) expr ::= expr likeop expr ESCAPE expr */ | |
| 163163 | - 216, /* (205) expr ::= expr ISNULL|NOTNULL */ | |
| 163164 | - 216, /* (206) expr ::= expr NOT NULL */ | |
| 163165 | - 216, /* (207) expr ::= expr IS expr */ | |
| 163166 | - 216, /* (208) expr ::= expr IS NOT expr */ | |
| 163167 | - 216, /* (209) expr ::= NOT expr */ | |
| 163168 | - 216, /* (210) expr ::= BITNOT expr */ | |
| 163169 | - 216, /* (211) expr ::= PLUS|MINUS expr */ | |
| 163170 | - 274, /* (212) between_op ::= BETWEEN */ | |
| 163171 | - 274, /* (213) between_op ::= NOT BETWEEN */ | |
| 163172 | - 216, /* (214) expr ::= expr between_op expr AND expr */ | |
| 163173 | - 275, /* (215) in_op ::= IN */ | |
| 163174 | - 275, /* (216) in_op ::= NOT IN */ | |
| 163175 | - 216, /* (217) expr ::= expr in_op LP exprlist RP */ | |
| 163176 | - 216, /* (218) expr ::= LP select RP */ | |
| 163177 | - 216, /* (219) expr ::= expr in_op LP select RP */ | |
| 163178 | - 216, /* (220) expr ::= expr in_op nm dbnm paren_exprlist */ | |
| 163179 | - 216, /* (221) expr ::= EXISTS LP select RP */ | |
| 163180 | - 216, /* (222) expr ::= CASE case_operand case_exprlist case_else END */ | |
| 163181 | - 278, /* (223) case_exprlist ::= case_exprlist WHEN expr THEN expr */ | |
| 163182 | - 278, /* (224) case_exprlist ::= WHEN expr THEN expr */ | |
| 163183 | - 279, /* (225) case_else ::= ELSE expr */ | |
| 163184 | - 279, /* (226) case_else ::= */ | |
| 163185 | - 277, /* (227) case_operand ::= expr */ | |
| 163186 | - 277, /* (228) case_operand ::= */ | |
| 163187 | - 261, /* (229) exprlist ::= */ | |
| 163188 | - 252, /* (230) nexprlist ::= nexprlist COMMA expr */ | |
| 163189 | - 252, /* (231) nexprlist ::= expr */ | |
| 163190 | - 276, /* (232) paren_exprlist ::= */ | |
| 163191 | - 276, /* (233) paren_exprlist ::= LP exprlist RP */ | |
| 163192 | - 189, /* (234) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ | |
| 163193 | - 280, /* (235) uniqueflag ::= UNIQUE */ | |
| 163194 | - 280, /* (236) uniqueflag ::= */ | |
| 163195 | - 220, /* (237) eidlist_opt ::= */ | |
| 163196 | - 220, /* (238) eidlist_opt ::= LP eidlist RP */ | |
| 163197 | - 231, /* (239) eidlist ::= eidlist COMMA nm collate sortorder */ | |
| 163198 | - 231, /* (240) eidlist ::= nm collate sortorder */ | |
| 163199 | - 281, /* (241) collate ::= */ | |
| 163200 | - 281, /* (242) collate ::= COLLATE ID|STRING */ | |
| 163201 | - 189, /* (243) cmd ::= DROP INDEX ifexists fullname */ | |
| 163202 | - 189, /* (244) cmd ::= VACUUM vinto */ | |
| 163203 | - 189, /* (245) cmd ::= VACUUM nm vinto */ | |
| 163204 | - 282, /* (246) vinto ::= INTO expr */ | |
| 163205 | - 282, /* (247) vinto ::= */ | |
| 163206 | - 189, /* (248) cmd ::= PRAGMA nm dbnm */ | |
| 163207 | - 189, /* (249) cmd ::= PRAGMA nm dbnm EQ nmnum */ | |
| 163208 | - 189, /* (250) cmd ::= PRAGMA nm dbnm LP nmnum RP */ | |
| 163209 | - 189, /* (251) cmd ::= PRAGMA nm dbnm EQ minus_num */ | |
| 163210 | - 189, /* (252) cmd ::= PRAGMA nm dbnm LP minus_num RP */ | |
| 163211 | - 210, /* (253) plus_num ::= PLUS INTEGER|FLOAT */ | |
| 163212 | - 211, /* (254) minus_num ::= MINUS INTEGER|FLOAT */ | |
| 163213 | - 189, /* (255) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ | |
| 163214 | - 284, /* (256) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ | |
| 163215 | - 286, /* (257) trigger_time ::= BEFORE|AFTER */ | |
| 163216 | - 286, /* (258) trigger_time ::= INSTEAD OF */ | |
| 163217 | - 286, /* (259) trigger_time ::= */ | |
| 163218 | - 287, /* (260) trigger_event ::= DELETE|INSERT */ | |
| 163219 | - 287, /* (261) trigger_event ::= UPDATE */ | |
| 163220 | - 287, /* (262) trigger_event ::= UPDATE OF idlist */ | |
| 163221 | - 289, /* (263) when_clause ::= */ | |
| 163222 | - 289, /* (264) when_clause ::= WHEN expr */ | |
| 163223 | - 285, /* (265) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ | |
| 163224 | - 285, /* (266) trigger_cmd_list ::= trigger_cmd SEMI */ | |
| 163225 | - 291, /* (267) trnm ::= nm DOT nm */ | |
| 163226 | - 292, /* (268) tridxby ::= INDEXED BY nm */ | |
| 163227 | - 292, /* (269) tridxby ::= NOT INDEXED */ | |
| 163228 | - 290, /* (270) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ | |
| 163229 | - 290, /* (271) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ | |
| 163230 | - 290, /* (272) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ | |
| 163231 | - 290, /* (273) trigger_cmd ::= scanpt select scanpt */ | |
| 163232 | - 216, /* (274) expr ::= RAISE LP IGNORE RP */ | |
| 163233 | - 216, /* (275) expr ::= RAISE LP raisetype COMMA nm RP */ | |
| 163234 | - 235, /* (276) raisetype ::= ROLLBACK */ | |
| 163235 | - 235, /* (277) raisetype ::= ABORT */ | |
| 163236 | - 235, /* (278) raisetype ::= FAIL */ | |
| 163237 | - 189, /* (279) cmd ::= DROP TRIGGER ifexists fullname */ | |
| 163238 | - 189, /* (280) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ | |
| 163239 | - 189, /* (281) cmd ::= DETACH database_kw_opt expr */ | |
| 163240 | - 294, /* (282) key_opt ::= */ | |
| 163241 | - 294, /* (283) key_opt ::= KEY expr */ | |
| 163242 | - 189, /* (284) cmd ::= REINDEX */ | |
| 163243 | - 189, /* (285) cmd ::= REINDEX nm dbnm */ | |
| 163244 | - 189, /* (286) cmd ::= ANALYZE */ | |
| 163245 | - 189, /* (287) cmd ::= ANALYZE nm dbnm */ | |
| 163246 | - 189, /* (288) cmd ::= ALTER TABLE fullname RENAME TO nm */ | |
| 163247 | - 189, /* (289) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ | |
| 163248 | - 189, /* (290) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ | |
| 163249 | - 295, /* (291) add_column_fullname ::= fullname */ | |
| 163250 | - 189, /* (292) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ | |
| 163251 | - 189, /* (293) cmd ::= create_vtab */ | |
| 163252 | - 189, /* (294) cmd ::= create_vtab LP vtabarglist RP */ | |
| 163253 | - 297, /* (295) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ | |
| 163254 | - 299, /* (296) vtabarg ::= */ | |
| 163255 | - 300, /* (297) vtabargtoken ::= ANY */ | |
| 163256 | - 300, /* (298) vtabargtoken ::= lp anylist RP */ | |
| 163257 | - 301, /* (299) lp ::= LP */ | |
| 163258 | - 265, /* (300) with ::= WITH wqlist */ | |
| 163259 | - 265, /* (301) with ::= WITH RECURSIVE wqlist */ | |
| 163260 | - 304, /* (302) wqas ::= AS */ | |
| 163261 | - 304, /* (303) wqas ::= AS MATERIALIZED */ | |
| 163262 | - 304, /* (304) wqas ::= AS NOT MATERIALIZED */ | |
| 163263 | - 303, /* (305) wqitem ::= nm eidlist_opt wqas LP select RP */ | |
| 163264 | - 240, /* (306) wqlist ::= wqitem */ | |
| 163265 | - 240, /* (307) wqlist ::= wqlist COMMA wqitem */ | |
| 163266 | - 305, /* (308) windowdefn_list ::= windowdefn */ | |
| 163267 | - 305, /* (309) windowdefn_list ::= windowdefn_list COMMA windowdefn */ | |
| 163268 | - 306, /* (310) windowdefn ::= nm AS LP window RP */ | |
| 163269 | - 307, /* (311) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ | |
| 163270 | - 307, /* (312) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ | |
| 163271 | - 307, /* (313) window ::= ORDER BY sortlist frame_opt */ | |
| 163272 | - 307, /* (314) window ::= nm ORDER BY sortlist frame_opt */ | |
| 163273 | - 307, /* (315) window ::= frame_opt */ | |
| 163274 | - 307, /* (316) window ::= nm frame_opt */ | |
| 163275 | - 308, /* (317) frame_opt ::= */ | |
| 163276 | - 308, /* (318) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ | |
| 163277 | - 308, /* (319) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ | |
| 163278 | - 312, /* (320) range_or_rows ::= RANGE|ROWS|GROUPS */ | |
| 163279 | - 314, /* (321) frame_bound_s ::= frame_bound */ | |
| 163280 | - 314, /* (322) frame_bound_s ::= UNBOUNDED PRECEDING */ | |
| 163281 | - 315, /* (323) frame_bound_e ::= frame_bound */ | |
| 163282 | - 315, /* (324) frame_bound_e ::= UNBOUNDED FOLLOWING */ | |
| 163283 | - 313, /* (325) frame_bound ::= expr PRECEDING|FOLLOWING */ | |
| 163284 | - 313, /* (326) frame_bound ::= CURRENT ROW */ | |
| 163285 | - 316, /* (327) frame_exclude_opt ::= */ | |
| 163286 | - 316, /* (328) frame_exclude_opt ::= EXCLUDE frame_exclude */ | |
| 163287 | - 317, /* (329) frame_exclude ::= NO OTHERS */ | |
| 163288 | - 317, /* (330) frame_exclude ::= CURRENT ROW */ | |
| 163289 | - 317, /* (331) frame_exclude ::= GROUP|TIES */ | |
| 163290 | - 250, /* (332) window_clause ::= WINDOW windowdefn_list */ | |
| 163291 | - 272, /* (333) filter_over ::= filter_clause over_clause */ | |
| 163292 | - 272, /* (334) filter_over ::= over_clause */ | |
| 163293 | - 272, /* (335) filter_over ::= filter_clause */ | |
| 163294 | - 311, /* (336) over_clause ::= OVER LP window RP */ | |
| 163295 | - 311, /* (337) over_clause ::= OVER nm */ | |
| 163296 | - 310, /* (338) filter_clause ::= FILTER LP WHERE expr RP */ | |
| 163297 | - 184, /* (339) input ::= cmdlist */ | |
| 163298 | - 185, /* (340) cmdlist ::= cmdlist ecmd */ | |
| 163299 | - 185, /* (341) cmdlist ::= ecmd */ | |
| 163300 | - 186, /* (342) ecmd ::= SEMI */ | |
| 163301 | - 186, /* (343) ecmd ::= cmdx SEMI */ | |
| 163302 | - 186, /* (344) ecmd ::= explain cmdx SEMI */ | |
| 163303 | - 191, /* (345) trans_opt ::= */ | |
| 163304 | - 191, /* (346) trans_opt ::= TRANSACTION */ | |
| 163305 | - 191, /* (347) trans_opt ::= TRANSACTION nm */ | |
| 163306 | - 193, /* (348) savepoint_opt ::= SAVEPOINT */ | |
| 163307 | - 193, /* (349) savepoint_opt ::= */ | |
| 163308 | - 189, /* (350) cmd ::= create_table create_table_args */ | |
| 163309 | - 202, /* (351) table_option_set ::= table_option */ | |
| 163310 | - 200, /* (352) columnlist ::= columnlist COMMA columnname carglist */ | |
| 163311 | - 200, /* (353) columnlist ::= columnname carglist */ | |
| 163312 | - 192, /* (354) nm ::= ID|INDEXED */ | |
| 163313 | - 192, /* (355) nm ::= STRING */ | |
| 163314 | - 192, /* (356) nm ::= JOIN_KW */ | |
| 163315 | - 207, /* (357) typetoken ::= typename */ | |
| 163316 | - 208, /* (358) typename ::= ID|STRING */ | |
| 163317 | - 209, /* (359) signed ::= plus_num */ | |
| 163318 | - 209, /* (360) signed ::= minus_num */ | |
| 163319 | - 206, /* (361) carglist ::= carglist ccons */ | |
| 163320 | - 206, /* (362) carglist ::= */ | |
| 163321 | - 214, /* (363) ccons ::= NULL onconf */ | |
| 163322 | - 214, /* (364) ccons ::= GENERATED ALWAYS AS generated */ | |
| 163323 | - 214, /* (365) ccons ::= AS generated */ | |
| 163324 | - 201, /* (366) conslist_opt ::= COMMA conslist */ | |
| 163325 | - 227, /* (367) conslist ::= conslist tconscomma tcons */ | |
| 163326 | - 227, /* (368) conslist ::= tcons */ | |
| 163327 | - 228, /* (369) tconscomma ::= */ | |
| 163328 | - 232, /* (370) defer_subclause_opt ::= defer_subclause */ | |
| 163329 | - 234, /* (371) resolvetype ::= raisetype */ | |
| 163330 | - 238, /* (372) selectnowith ::= oneselect */ | |
| 163331 | - 239, /* (373) oneselect ::= values */ | |
| 163332 | - 253, /* (374) sclp ::= selcollist COMMA */ | |
| 163333 | - 254, /* (375) as ::= ID|STRING */ | |
| 163334 | - 271, /* (376) returning ::= */ | |
| 163335 | - 216, /* (377) expr ::= term */ | |
| 163336 | - 273, /* (378) likeop ::= LIKE_KW|MATCH */ | |
| 163337 | - 261, /* (379) exprlist ::= nexprlist */ | |
| 163338 | - 283, /* (380) nmnum ::= plus_num */ | |
| 163339 | - 283, /* (381) nmnum ::= nm */ | |
| 163340 | - 283, /* (382) nmnum ::= ON */ | |
| 163341 | - 283, /* (383) nmnum ::= DELETE */ | |
| 163342 | - 283, /* (384) nmnum ::= DEFAULT */ | |
| 163343 | - 210, /* (385) plus_num ::= INTEGER|FLOAT */ | |
| 163344 | - 288, /* (386) foreach_clause ::= */ | |
| 163345 | - 288, /* (387) foreach_clause ::= FOR EACH ROW */ | |
| 163346 | - 291, /* (388) trnm ::= nm */ | |
| 163347 | - 292, /* (389) tridxby ::= */ | |
| 163348 | - 293, /* (390) database_kw_opt ::= DATABASE */ | |
| 163349 | - 293, /* (391) database_kw_opt ::= */ | |
| 163350 | - 296, /* (392) kwcolumn_opt ::= */ | |
| 163351 | - 296, /* (393) kwcolumn_opt ::= COLUMNKW */ | |
| 163352 | - 298, /* (394) vtabarglist ::= vtabarg */ | |
| 163353 | - 298, /* (395) vtabarglist ::= vtabarglist COMMA vtabarg */ | |
| 163354 | - 299, /* (396) vtabarg ::= vtabarg vtabargtoken */ | |
| 163355 | - 302, /* (397) anylist ::= */ | |
| 163356 | - 302, /* (398) anylist ::= anylist LP anylist RP */ | |
| 163357 | - 302, /* (399) anylist ::= anylist ANY */ | |
| 163358 | - 265, /* (400) with ::= */ | |
| 162994 | + 189, /* (0) explain ::= EXPLAIN */ | |
| 162995 | + 189, /* (1) explain ::= EXPLAIN QUERY PLAN */ | |
| 162996 | + 188, /* (2) cmdx ::= cmd */ | |
| 162997 | + 190, /* (3) cmd ::= BEGIN transtype trans_opt */ | |
| 162998 | + 191, /* (4) transtype ::= */ | |
| 162999 | + 191, /* (5) transtype ::= DEFERRED */ | |
| 163000 | + 191, /* (6) transtype ::= IMMEDIATE */ | |
| 163001 | + 191, /* (7) transtype ::= EXCLUSIVE */ | |
| 163002 | + 190, /* (8) cmd ::= COMMIT|END trans_opt */ | |
| 163003 | + 190, /* (9) cmd ::= ROLLBACK trans_opt */ | |
| 163004 | + 190, /* (10) cmd ::= SAVEPOINT nm */ | |
| 163005 | + 190, /* (11) cmd ::= RELEASE savepoint_opt nm */ | |
| 163006 | + 190, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ | |
| 163007 | + 195, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */ | |
| 163008 | + 197, /* (14) createkw ::= CREATE */ | |
| 163009 | + 199, /* (15) ifnotexists ::= */ | |
| 163010 | + 199, /* (16) ifnotexists ::= IF NOT EXISTS */ | |
| 163011 | + 198, /* (17) temp ::= TEMP */ | |
| 163012 | + 198, /* (18) temp ::= */ | |
| 163013 | + 196, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_option_set */ | |
| 163014 | + 196, /* (20) create_table_args ::= AS select */ | |
| 163015 | + 203, /* (21) table_option_set ::= */ | |
| 163016 | + 203, /* (22) table_option_set ::= table_option_set COMMA table_option */ | |
| 163017 | + 205, /* (23) table_option ::= WITHOUT nm */ | |
| 163018 | + 205, /* (24) table_option ::= nm */ | |
| 163019 | + 206, /* (25) columnname ::= nm typetoken */ | |
| 163020 | + 208, /* (26) typetoken ::= */ | |
| 163021 | + 208, /* (27) typetoken ::= typename LP signed RP */ | |
| 163022 | + 208, /* (28) typetoken ::= typename LP signed COMMA signed RP */ | |
| 163023 | + 209, /* (29) typename ::= typename ID|STRING */ | |
| 163024 | + 213, /* (30) scanpt ::= */ | |
| 163025 | + 214, /* (31) scantok ::= */ | |
| 163026 | + 215, /* (32) ccons ::= CONSTRAINT nm */ | |
| 163027 | + 215, /* (33) ccons ::= DEFAULT scantok term */ | |
| 163028 | + 215, /* (34) ccons ::= DEFAULT LP expr RP */ | |
| 163029 | + 215, /* (35) ccons ::= DEFAULT PLUS scantok term */ | |
| 163030 | + 215, /* (36) ccons ::= DEFAULT MINUS scantok term */ | |
| 163031 | + 215, /* (37) ccons ::= DEFAULT scantok ID|INDEXED */ | |
| 163032 | + 215, /* (38) ccons ::= NOT NULL onconf */ | |
| 163033 | + 215, /* (39) ccons ::= PRIMARY KEY sortorder onconf autoinc */ | |
| 163034 | + 215, /* (40) ccons ::= UNIQUE onconf */ | |
| 163035 | + 215, /* (41) ccons ::= CHECK LP expr RP */ | |
| 163036 | + 215, /* (42) ccons ::= REFERENCES nm eidlist_opt refargs */ | |
| 163037 | + 215, /* (43) ccons ::= defer_subclause */ | |
| 163038 | + 215, /* (44) ccons ::= COLLATE ID|STRING */ | |
| 163039 | + 224, /* (45) generated ::= LP expr RP */ | |
| 163040 | + 224, /* (46) generated ::= LP expr RP ID */ | |
| 163041 | + 220, /* (47) autoinc ::= */ | |
| 163042 | + 220, /* (48) autoinc ::= AUTOINCR */ | |
| 163043 | + 222, /* (49) refargs ::= */ | |
| 163044 | + 222, /* (50) refargs ::= refargs refarg */ | |
| 163045 | + 225, /* (51) refarg ::= MATCH nm */ | |
| 163046 | + 225, /* (52) refarg ::= ON INSERT refact */ | |
| 163047 | + 225, /* (53) refarg ::= ON DELETE refact */ | |
| 163048 | + 225, /* (54) refarg ::= ON UPDATE refact */ | |
| 163049 | + 226, /* (55) refact ::= SET NULL */ | |
| 163050 | + 226, /* (56) refact ::= SET DEFAULT */ | |
| 163051 | + 226, /* (57) refact ::= CASCADE */ | |
| 163052 | + 226, /* (58) refact ::= RESTRICT */ | |
| 163053 | + 226, /* (59) refact ::= NO ACTION */ | |
| 163054 | + 223, /* (60) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ | |
| 163055 | + 223, /* (61) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ | |
| 163056 | + 227, /* (62) init_deferred_pred_opt ::= */ | |
| 163057 | + 227, /* (63) init_deferred_pred_opt ::= INITIALLY DEFERRED */ | |
| 163058 | + 227, /* (64) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ | |
| 163059 | + 202, /* (65) conslist_opt ::= */ | |
| 163060 | + 229, /* (66) tconscomma ::= COMMA */ | |
| 163061 | + 230, /* (67) tcons ::= CONSTRAINT nm */ | |
| 163062 | + 230, /* (68) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ | |
| 163063 | + 230, /* (69) tcons ::= UNIQUE LP sortlist RP onconf */ | |
| 163064 | + 230, /* (70) tcons ::= CHECK LP expr RP onconf */ | |
| 163065 | + 230, /* (71) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ | |
| 163066 | + 233, /* (72) defer_subclause_opt ::= */ | |
| 163067 | + 218, /* (73) onconf ::= */ | |
| 163068 | + 218, /* (74) onconf ::= ON CONFLICT resolvetype */ | |
| 163069 | + 234, /* (75) orconf ::= */ | |
| 163070 | + 234, /* (76) orconf ::= OR resolvetype */ | |
| 163071 | + 235, /* (77) resolvetype ::= IGNORE */ | |
| 163072 | + 235, /* (78) resolvetype ::= REPLACE */ | |
| 163073 | + 190, /* (79) cmd ::= DROP TABLE ifexists fullname */ | |
| 163074 | + 237, /* (80) ifexists ::= IF EXISTS */ | |
| 163075 | + 237, /* (81) ifexists ::= */ | |
| 163076 | + 190, /* (82) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ | |
| 163077 | + 190, /* (83) cmd ::= DROP VIEW ifexists fullname */ | |
| 163078 | + 190, /* (84) cmd ::= select */ | |
| 163079 | + 204, /* (85) select ::= WITH wqlist selectnowith */ | |
| 163080 | + 204, /* (86) select ::= WITH RECURSIVE wqlist selectnowith */ | |
| 163081 | + 204, /* (87) select ::= selectnowith */ | |
| 163082 | + 239, /* (88) selectnowith ::= selectnowith multiselect_op oneselect */ | |
| 163083 | + 242, /* (89) multiselect_op ::= UNION */ | |
| 163084 | + 242, /* (90) multiselect_op ::= UNION ALL */ | |
| 163085 | + 242, /* (91) multiselect_op ::= EXCEPT|INTERSECT */ | |
| 163086 | + 240, /* (92) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ | |
| 163087 | + 240, /* (93) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ | |
| 163088 | + 252, /* (94) values ::= VALUES LP nexprlist RP */ | |
| 163089 | + 252, /* (95) values ::= values COMMA LP nexprlist RP */ | |
| 163090 | + 243, /* (96) distinct ::= DISTINCT */ | |
| 163091 | + 243, /* (97) distinct ::= ALL */ | |
| 163092 | + 243, /* (98) distinct ::= */ | |
| 163093 | + 254, /* (99) sclp ::= */ | |
| 163094 | + 244, /* (100) selcollist ::= sclp scanpt expr scanpt as */ | |
| 163095 | + 244, /* (101) selcollist ::= sclp scanpt STAR */ | |
| 163096 | + 244, /* (102) selcollist ::= sclp scanpt nm DOT STAR */ | |
| 163097 | + 255, /* (103) as ::= AS nm */ | |
| 163098 | + 255, /* (104) as ::= */ | |
| 163099 | + 245, /* (105) from ::= */ | |
| 163100 | + 245, /* (106) from ::= FROM seltablist */ | |
| 163101 | + 257, /* (107) stl_prefix ::= seltablist joinop */ | |
| 163102 | + 257, /* (108) stl_prefix ::= */ | |
| 163103 | + 256, /* (109) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ | |
| 163104 | + 256, /* (110) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */ | |
| 163105 | + 256, /* (111) seltablist ::= stl_prefix LP select RP as on_opt using_opt */ | |
| 163106 | + 256, /* (112) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ | |
| 163107 | + 200, /* (113) dbnm ::= */ | |
| 163108 | + 200, /* (114) dbnm ::= DOT nm */ | |
| 163109 | + 238, /* (115) fullname ::= nm */ | |
| 163110 | + 238, /* (116) fullname ::= nm DOT nm */ | |
| 163111 | + 263, /* (117) xfullname ::= nm */ | |
| 163112 | + 263, /* (118) xfullname ::= nm DOT nm */ | |
| 163113 | + 263, /* (119) xfullname ::= nm DOT nm AS nm */ | |
| 163114 | + 263, /* (120) xfullname ::= nm AS nm */ | |
| 163115 | + 258, /* (121) joinop ::= COMMA|JOIN */ | |
| 163116 | + 258, /* (122) joinop ::= JOIN_KW JOIN */ | |
| 163117 | + 258, /* (123) joinop ::= JOIN_KW nm JOIN */ | |
| 163118 | + 258, /* (124) joinop ::= JOIN_KW nm nm JOIN */ | |
| 163119 | + 260, /* (125) on_opt ::= ON expr */ | |
| 163120 | + 260, /* (126) on_opt ::= */ | |
| 163121 | + 259, /* (127) indexed_opt ::= */ | |
| 163122 | + 259, /* (128) indexed_opt ::= INDEXED BY nm */ | |
| 163123 | + 259, /* (129) indexed_opt ::= NOT INDEXED */ | |
| 163124 | + 261, /* (130) using_opt ::= USING LP idlist RP */ | |
| 163125 | + 261, /* (131) using_opt ::= */ | |
| 163126 | + 249, /* (132) orderby_opt ::= */ | |
| 163127 | + 249, /* (133) orderby_opt ::= ORDER BY sortlist */ | |
| 163128 | + 231, /* (134) sortlist ::= sortlist COMMA expr sortorder nulls */ | |
| 163129 | + 231, /* (135) sortlist ::= expr sortorder nulls */ | |
| 163130 | + 219, /* (136) sortorder ::= ASC */ | |
| 163131 | + 219, /* (137) sortorder ::= DESC */ | |
| 163132 | + 219, /* (138) sortorder ::= */ | |
| 163133 | + 265, /* (139) nulls ::= NULLS FIRST */ | |
| 163134 | + 265, /* (140) nulls ::= NULLS LAST */ | |
| 163135 | + 265, /* (141) nulls ::= */ | |
| 163136 | + 247, /* (142) groupby_opt ::= */ | |
| 163137 | + 247, /* (143) groupby_opt ::= GROUP BY nexprlist */ | |
| 163138 | + 248, /* (144) having_opt ::= */ | |
| 163139 | + 248, /* (145) having_opt ::= HAVING expr */ | |
| 163140 | + 250, /* (146) limit_opt ::= */ | |
| 163141 | + 250, /* (147) limit_opt ::= LIMIT expr */ | |
| 163142 | + 250, /* (148) limit_opt ::= LIMIT expr OFFSET expr */ | |
| 163143 | + 250, /* (149) limit_opt ::= LIMIT expr COMMA expr */ | |
| 163144 | + 190, /* (150) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ | |
| 163145 | + 246, /* (151) where_opt ::= */ | |
| 163146 | + 246, /* (152) where_opt ::= WHERE expr */ | |
| 163147 | + 267, /* (153) where_opt_ret ::= */ | |
| 163148 | + 267, /* (154) where_opt_ret ::= WHERE expr */ | |
| 163149 | + 267, /* (155) where_opt_ret ::= RETURNING selcollist */ | |
| 163150 | + 267, /* (156) where_opt_ret ::= WHERE expr RETURNING selcollist */ | |
| 163151 | + 190, /* (157) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ | |
| 163152 | + 268, /* (158) setlist ::= setlist COMMA nm EQ expr */ | |
| 163153 | + 268, /* (159) setlist ::= setlist COMMA LP idlist RP EQ expr */ | |
| 163154 | + 268, /* (160) setlist ::= nm EQ expr */ | |
| 163155 | + 268, /* (161) setlist ::= LP idlist RP EQ expr */ | |
| 163156 | + 190, /* (162) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ | |
| 163157 | + 190, /* (163) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ | |
| 163158 | + 271, /* (164) upsert ::= */ | |
| 163159 | + 271, /* (165) upsert ::= RETURNING selcollist */ | |
| 163160 | + 271, /* (166) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ | |
| 163161 | + 271, /* (167) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ | |
| 163162 | + 271, /* (168) upsert ::= ON CONFLICT DO NOTHING returning */ | |
| 163163 | + 271, /* (169) upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ | |
| 163164 | + 272, /* (170) returning ::= RETURNING selcollist */ | |
| 163165 | + 269, /* (171) insert_cmd ::= INSERT orconf */ | |
| 163166 | + 269, /* (172) insert_cmd ::= REPLACE */ | |
| 163167 | + 270, /* (173) idlist_opt ::= */ | |
| 163168 | + 270, /* (174) idlist_opt ::= LP idlist RP */ | |
| 163169 | + 264, /* (175) idlist ::= idlist COMMA nm */ | |
| 163170 | + 264, /* (176) idlist ::= nm */ | |
| 163171 | + 217, /* (177) expr ::= LP expr RP */ | |
| 163172 | + 217, /* (178) expr ::= ID|INDEXED */ | |
| 163173 | + 217, /* (179) expr ::= JOIN_KW */ | |
| 163174 | + 217, /* (180) expr ::= nm DOT nm */ | |
| 163175 | + 217, /* (181) expr ::= nm DOT nm DOT nm */ | |
| 163176 | + 216, /* (182) term ::= NULL|FLOAT|BLOB */ | |
| 163177 | + 216, /* (183) term ::= STRING */ | |
| 163178 | + 216, /* (184) term ::= INTEGER */ | |
| 163179 | + 217, /* (185) expr ::= VARIABLE */ | |
| 163180 | + 217, /* (186) expr ::= expr COLLATE ID|STRING */ | |
| 163181 | + 217, /* (187) expr ::= CAST LP expr AS typetoken RP */ | |
| 163182 | + 217, /* (188) expr ::= ID|INDEXED LP distinct exprlist RP */ | |
| 163183 | + 217, /* (189) expr ::= ID|INDEXED LP STAR RP */ | |
| 163184 | + 217, /* (190) expr ::= ID|INDEXED LP distinct exprlist RP filter_over */ | |
| 163185 | + 217, /* (191) expr ::= ID|INDEXED LP STAR RP filter_over */ | |
| 163186 | + 216, /* (192) term ::= CTIME_KW */ | |
| 163187 | + 217, /* (193) expr ::= LP nexprlist COMMA expr RP */ | |
| 163188 | + 217, /* (194) expr ::= expr AND expr */ | |
| 163189 | + 217, /* (195) expr ::= expr OR expr */ | |
| 163190 | + 217, /* (196) expr ::= expr LT|GT|GE|LE expr */ | |
| 163191 | + 217, /* (197) expr ::= expr EQ|NE expr */ | |
| 163192 | + 217, /* (198) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ | |
| 163193 | + 217, /* (199) expr ::= expr PLUS|MINUS expr */ | |
| 163194 | + 217, /* (200) expr ::= expr STAR|SLASH|REM expr */ | |
| 163195 | + 217, /* (201) expr ::= expr CONCAT expr */ | |
| 163196 | + 274, /* (202) likeop ::= NOT LIKE_KW|MATCH */ | |
| 163197 | + 217, /* (203) expr ::= expr likeop expr */ | |
| 163198 | + 217, /* (204) expr ::= expr likeop expr ESCAPE expr */ | |
| 163199 | + 217, /* (205) expr ::= expr ISNULL|NOTNULL */ | |
| 163200 | + 217, /* (206) expr ::= expr NOT NULL */ | |
| 163201 | + 217, /* (207) expr ::= expr IS expr */ | |
| 163202 | + 217, /* (208) expr ::= expr IS NOT expr */ | |
| 163203 | + 217, /* (209) expr ::= NOT expr */ | |
| 163204 | + 217, /* (210) expr ::= BITNOT expr */ | |
| 163205 | + 217, /* (211) expr ::= PLUS|MINUS expr */ | |
| 163206 | + 217, /* (212) expr ::= expr PTR expr */ | |
| 163207 | + 275, /* (213) between_op ::= BETWEEN */ | |
| 163208 | + 275, /* (214) between_op ::= NOT BETWEEN */ | |
| 163209 | + 217, /* (215) expr ::= expr between_op expr AND expr */ | |
| 163210 | + 276, /* (216) in_op ::= IN */ | |
| 163211 | + 276, /* (217) in_op ::= NOT IN */ | |
| 163212 | + 217, /* (218) expr ::= expr in_op LP exprlist RP */ | |
| 163213 | + 217, /* (219) expr ::= LP select RP */ | |
| 163214 | + 217, /* (220) expr ::= expr in_op LP select RP */ | |
| 163215 | + 217, /* (221) expr ::= expr in_op nm dbnm paren_exprlist */ | |
| 163216 | + 217, /* (222) expr ::= EXISTS LP select RP */ | |
| 163217 | + 217, /* (223) expr ::= CASE case_operand case_exprlist case_else END */ | |
| 163218 | + 279, /* (224) case_exprlist ::= case_exprlist WHEN expr THEN expr */ | |
| 163219 | + 279, /* (225) case_exprlist ::= WHEN expr THEN expr */ | |
| 163220 | + 280, /* (226) case_else ::= ELSE expr */ | |
| 163221 | + 280, /* (227) case_else ::= */ | |
| 163222 | + 278, /* (228) case_operand ::= expr */ | |
| 163223 | + 278, /* (229) case_operand ::= */ | |
| 163224 | + 262, /* (230) exprlist ::= */ | |
| 163225 | + 253, /* (231) nexprlist ::= nexprlist COMMA expr */ | |
| 163226 | + 253, /* (232) nexprlist ::= expr */ | |
| 163227 | + 277, /* (233) paren_exprlist ::= */ | |
| 163228 | + 277, /* (234) paren_exprlist ::= LP exprlist RP */ | |
| 163229 | + 190, /* (235) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ | |
| 163230 | + 281, /* (236) uniqueflag ::= UNIQUE */ | |
| 163231 | + 281, /* (237) uniqueflag ::= */ | |
| 163232 | + 221, /* (238) eidlist_opt ::= */ | |
| 163233 | + 221, /* (239) eidlist_opt ::= LP eidlist RP */ | |
| 163234 | + 232, /* (240) eidlist ::= eidlist COMMA nm collate sortorder */ | |
| 163235 | + 232, /* (241) eidlist ::= nm collate sortorder */ | |
| 163236 | + 282, /* (242) collate ::= */ | |
| 163237 | + 282, /* (243) collate ::= COLLATE ID|STRING */ | |
| 163238 | + 190, /* (244) cmd ::= DROP INDEX ifexists fullname */ | |
| 163239 | + 190, /* (245) cmd ::= VACUUM vinto */ | |
| 163240 | + 190, /* (246) cmd ::= VACUUM nm vinto */ | |
| 163241 | + 283, /* (247) vinto ::= INTO expr */ | |
| 163242 | + 283, /* (248) vinto ::= */ | |
| 163243 | + 190, /* (249) cmd ::= PRAGMA nm dbnm */ | |
| 163244 | + 190, /* (250) cmd ::= PRAGMA nm dbnm EQ nmnum */ | |
| 163245 | + 190, /* (251) cmd ::= PRAGMA nm dbnm LP nmnum RP */ | |
| 163246 | + 190, /* (252) cmd ::= PRAGMA nm dbnm EQ minus_num */ | |
| 163247 | + 190, /* (253) cmd ::= PRAGMA nm dbnm LP minus_num RP */ | |
| 163248 | + 211, /* (254) plus_num ::= PLUS INTEGER|FLOAT */ | |
| 163249 | + 212, /* (255) minus_num ::= MINUS INTEGER|FLOAT */ | |
| 163250 | + 190, /* (256) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ | |
| 163251 | + 285, /* (257) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ | |
| 163252 | + 287, /* (258) trigger_time ::= BEFORE|AFTER */ | |
| 163253 | + 287, /* (259) trigger_time ::= INSTEAD OF */ | |
| 163254 | + 287, /* (260) trigger_time ::= */ | |
| 163255 | + 288, /* (261) trigger_event ::= DELETE|INSERT */ | |
| 163256 | + 288, /* (262) trigger_event ::= UPDATE */ | |
| 163257 | + 288, /* (263) trigger_event ::= UPDATE OF idlist */ | |
| 163258 | + 290, /* (264) when_clause ::= */ | |
| 163259 | + 290, /* (265) when_clause ::= WHEN expr */ | |
| 163260 | + 286, /* (266) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ | |
| 163261 | + 286, /* (267) trigger_cmd_list ::= trigger_cmd SEMI */ | |
| 163262 | + 292, /* (268) trnm ::= nm DOT nm */ | |
| 163263 | + 293, /* (269) tridxby ::= INDEXED BY nm */ | |
| 163264 | + 293, /* (270) tridxby ::= NOT INDEXED */ | |
| 163265 | + 291, /* (271) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ | |
| 163266 | + 291, /* (272) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ | |
| 163267 | + 291, /* (273) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ | |
| 163268 | + 291, /* (274) trigger_cmd ::= scanpt select scanpt */ | |
| 163269 | + 217, /* (275) expr ::= RAISE LP IGNORE RP */ | |
| 163270 | + 217, /* (276) expr ::= RAISE LP raisetype COMMA nm RP */ | |
| 163271 | + 236, /* (277) raisetype ::= ROLLBACK */ | |
| 163272 | + 236, /* (278) raisetype ::= ABORT */ | |
| 163273 | + 236, /* (279) raisetype ::= FAIL */ | |
| 163274 | + 190, /* (280) cmd ::= DROP TRIGGER ifexists fullname */ | |
| 163275 | + 190, /* (281) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ | |
| 163276 | + 190, /* (282) cmd ::= DETACH database_kw_opt expr */ | |
| 163277 | + 295, /* (283) key_opt ::= */ | |
| 163278 | + 295, /* (284) key_opt ::= KEY expr */ | |
| 163279 | + 190, /* (285) cmd ::= REINDEX */ | |
| 163280 | + 190, /* (286) cmd ::= REINDEX nm dbnm */ | |
| 163281 | + 190, /* (287) cmd ::= ANALYZE */ | |
| 163282 | + 190, /* (288) cmd ::= ANALYZE nm dbnm */ | |
| 163283 | + 190, /* (289) cmd ::= ALTER TABLE fullname RENAME TO nm */ | |
| 163284 | + 190, /* (290) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ | |
| 163285 | + 190, /* (291) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ | |
| 163286 | + 296, /* (292) add_column_fullname ::= fullname */ | |
| 163287 | + 190, /* (293) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ | |
| 163288 | + 190, /* (294) cmd ::= create_vtab */ | |
| 163289 | + 190, /* (295) cmd ::= create_vtab LP vtabarglist RP */ | |
| 163290 | + 298, /* (296) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ | |
| 163291 | + 300, /* (297) vtabarg ::= */ | |
| 163292 | + 301, /* (298) vtabargtoken ::= ANY */ | |
| 163293 | + 301, /* (299) vtabargtoken ::= lp anylist RP */ | |
| 163294 | + 302, /* (300) lp ::= LP */ | |
| 163295 | + 266, /* (301) with ::= WITH wqlist */ | |
| 163296 | + 266, /* (302) with ::= WITH RECURSIVE wqlist */ | |
| 163297 | + 305, /* (303) wqas ::= AS */ | |
| 163298 | + 305, /* (304) wqas ::= AS MATERIALIZED */ | |
| 163299 | + 305, /* (305) wqas ::= AS NOT MATERIALIZED */ | |
| 163300 | + 304, /* (306) wqitem ::= nm eidlist_opt wqas LP select RP */ | |
| 163301 | + 241, /* (307) wqlist ::= wqitem */ | |
| 163302 | + 241, /* (308) wqlist ::= wqlist COMMA wqitem */ | |
| 163303 | + 306, /* (309) windowdefn_list ::= windowdefn */ | |
| 163304 | + 306, /* (310) windowdefn_list ::= windowdefn_list COMMA windowdefn */ | |
| 163305 | + 307, /* (311) windowdefn ::= nm AS LP window RP */ | |
| 163306 | + 308, /* (312) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ | |
| 163307 | + 308, /* (313) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ | |
| 163308 | + 308, /* (314) window ::= ORDER BY sortlist frame_opt */ | |
| 163309 | + 308, /* (315) window ::= nm ORDER BY sortlist frame_opt */ | |
| 163310 | + 308, /* (316) window ::= frame_opt */ | |
| 163311 | + 308, /* (317) window ::= nm frame_opt */ | |
| 163312 | + 309, /* (318) frame_opt ::= */ | |
| 163313 | + 309, /* (319) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ | |
| 163314 | + 309, /* (320) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ | |
| 163315 | + 313, /* (321) range_or_rows ::= RANGE|ROWS|GROUPS */ | |
| 163316 | + 315, /* (322) frame_bound_s ::= frame_bound */ | |
| 163317 | + 315, /* (323) frame_bound_s ::= UNBOUNDED PRECEDING */ | |
| 163318 | + 316, /* (324) frame_bound_e ::= frame_bound */ | |
| 163319 | + 316, /* (325) frame_bound_e ::= UNBOUNDED FOLLOWING */ | |
| 163320 | + 314, /* (326) frame_bound ::= expr PRECEDING|FOLLOWING */ | |
| 163321 | + 314, /* (327) frame_bound ::= CURRENT ROW */ | |
| 163322 | + 317, /* (328) frame_exclude_opt ::= */ | |
| 163323 | + 317, /* (329) frame_exclude_opt ::= EXCLUDE frame_exclude */ | |
| 163324 | + 318, /* (330) frame_exclude ::= NO OTHERS */ | |
| 163325 | + 318, /* (331) frame_exclude ::= CURRENT ROW */ | |
| 163326 | + 318, /* (332) frame_exclude ::= GROUP|TIES */ | |
| 163327 | + 251, /* (333) window_clause ::= WINDOW windowdefn_list */ | |
| 163328 | + 273, /* (334) filter_over ::= filter_clause over_clause */ | |
| 163329 | + 273, /* (335) filter_over ::= over_clause */ | |
| 163330 | + 273, /* (336) filter_over ::= filter_clause */ | |
| 163331 | + 312, /* (337) over_clause ::= OVER LP window RP */ | |
| 163332 | + 312, /* (338) over_clause ::= OVER nm */ | |
| 163333 | + 311, /* (339) filter_clause ::= FILTER LP WHERE expr RP */ | |
| 163334 | + 185, /* (340) input ::= cmdlist */ | |
| 163335 | + 186, /* (341) cmdlist ::= cmdlist ecmd */ | |
| 163336 | + 186, /* (342) cmdlist ::= ecmd */ | |
| 163337 | + 187, /* (343) ecmd ::= SEMI */ | |
| 163338 | + 187, /* (344) ecmd ::= cmdx SEMI */ | |
| 163339 | + 187, /* (345) ecmd ::= explain cmdx SEMI */ | |
| 163340 | + 192, /* (346) trans_opt ::= */ | |
| 163341 | + 192, /* (347) trans_opt ::= TRANSACTION */ | |
| 163342 | + 192, /* (348) trans_opt ::= TRANSACTION nm */ | |
| 163343 | + 194, /* (349) savepoint_opt ::= SAVEPOINT */ | |
| 163344 | + 194, /* (350) savepoint_opt ::= */ | |
| 163345 | + 190, /* (351) cmd ::= create_table create_table_args */ | |
| 163346 | + 203, /* (352) table_option_set ::= table_option */ | |
| 163347 | + 201, /* (353) columnlist ::= columnlist COMMA columnname carglist */ | |
| 163348 | + 201, /* (354) columnlist ::= columnname carglist */ | |
| 163349 | + 193, /* (355) nm ::= ID|INDEXED */ | |
| 163350 | + 193, /* (356) nm ::= STRING */ | |
| 163351 | + 193, /* (357) nm ::= JOIN_KW */ | |
| 163352 | + 208, /* (358) typetoken ::= typename */ | |
| 163353 | + 209, /* (359) typename ::= ID|STRING */ | |
| 163354 | + 210, /* (360) signed ::= plus_num */ | |
| 163355 | + 210, /* (361) signed ::= minus_num */ | |
| 163356 | + 207, /* (362) carglist ::= carglist ccons */ | |
| 163357 | + 207, /* (363) carglist ::= */ | |
| 163358 | + 215, /* (364) ccons ::= NULL onconf */ | |
| 163359 | + 215, /* (365) ccons ::= GENERATED ALWAYS AS generated */ | |
| 163360 | + 215, /* (366) ccons ::= AS generated */ | |
| 163361 | + 202, /* (367) conslist_opt ::= COMMA conslist */ | |
| 163362 | + 228, /* (368) conslist ::= conslist tconscomma tcons */ | |
| 163363 | + 228, /* (369) conslist ::= tcons */ | |
| 163364 | + 229, /* (370) tconscomma ::= */ | |
| 163365 | + 233, /* (371) defer_subclause_opt ::= defer_subclause */ | |
| 163366 | + 235, /* (372) resolvetype ::= raisetype */ | |
| 163367 | + 239, /* (373) selectnowith ::= oneselect */ | |
| 163368 | + 240, /* (374) oneselect ::= values */ | |
| 163369 | + 254, /* (375) sclp ::= selcollist COMMA */ | |
| 163370 | + 255, /* (376) as ::= ID|STRING */ | |
| 163371 | + 272, /* (377) returning ::= */ | |
| 163372 | + 217, /* (378) expr ::= term */ | |
| 163373 | + 274, /* (379) likeop ::= LIKE_KW|MATCH */ | |
| 163374 | + 262, /* (380) exprlist ::= nexprlist */ | |
| 163375 | + 284, /* (381) nmnum ::= plus_num */ | |
| 163376 | + 284, /* (382) nmnum ::= nm */ | |
| 163377 | + 284, /* (383) nmnum ::= ON */ | |
| 163378 | + 284, /* (384) nmnum ::= DELETE */ | |
| 163379 | + 284, /* (385) nmnum ::= DEFAULT */ | |
| 163380 | + 211, /* (386) plus_num ::= INTEGER|FLOAT */ | |
| 163381 | + 289, /* (387) foreach_clause ::= */ | |
| 163382 | + 289, /* (388) foreach_clause ::= FOR EACH ROW */ | |
| 163383 | + 292, /* (389) trnm ::= nm */ | |
| 163384 | + 293, /* (390) tridxby ::= */ | |
| 163385 | + 294, /* (391) database_kw_opt ::= DATABASE */ | |
| 163386 | + 294, /* (392) database_kw_opt ::= */ | |
| 163387 | + 297, /* (393) kwcolumn_opt ::= */ | |
| 163388 | + 297, /* (394) kwcolumn_opt ::= COLUMNKW */ | |
| 163389 | + 299, /* (395) vtabarglist ::= vtabarg */ | |
| 163390 | + 299, /* (396) vtabarglist ::= vtabarglist COMMA vtabarg */ | |
| 163391 | + 300, /* (397) vtabarg ::= vtabarg vtabargtoken */ | |
| 163392 | + 303, /* (398) anylist ::= */ | |
| 163393 | + 303, /* (399) anylist ::= anylist LP anylist RP */ | |
| 163394 | + 303, /* (400) anylist ::= anylist ANY */ | |
| 163395 | + 266, /* (401) with ::= */ | |
| 163359 | 163396 | }; |
| 163360 | 163397 | |
| 163361 | 163398 | /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number |
| 163362 | 163399 | ** of symbols on the right-hand side of that rule. */ |
| 163363 | 163400 | static const signed char yyRuleInfoNRhs[] = { |
| @@ -163571,199 +163608,200 @@ | ||
| 163571 | 163608 | -3, /* (207) expr ::= expr IS expr */ |
| 163572 | 163609 | -4, /* (208) expr ::= expr IS NOT expr */ |
| 163573 | 163610 | -2, /* (209) expr ::= NOT expr */ |
| 163574 | 163611 | -2, /* (210) expr ::= BITNOT expr */ |
| 163575 | 163612 | -2, /* (211) expr ::= PLUS|MINUS expr */ |
| 163576 | - -1, /* (212) between_op ::= BETWEEN */ | |
| 163577 | - -2, /* (213) between_op ::= NOT BETWEEN */ | |
| 163578 | - -5, /* (214) expr ::= expr between_op expr AND expr */ | |
| 163579 | - -1, /* (215) in_op ::= IN */ | |
| 163580 | - -2, /* (216) in_op ::= NOT IN */ | |
| 163581 | - -5, /* (217) expr ::= expr in_op LP exprlist RP */ | |
| 163582 | - -3, /* (218) expr ::= LP select RP */ | |
| 163583 | - -5, /* (219) expr ::= expr in_op LP select RP */ | |
| 163584 | - -5, /* (220) expr ::= expr in_op nm dbnm paren_exprlist */ | |
| 163585 | - -4, /* (221) expr ::= EXISTS LP select RP */ | |
| 163586 | - -5, /* (222) expr ::= CASE case_operand case_exprlist case_else END */ | |
| 163587 | - -5, /* (223) case_exprlist ::= case_exprlist WHEN expr THEN expr */ | |
| 163588 | - -4, /* (224) case_exprlist ::= WHEN expr THEN expr */ | |
| 163589 | - -2, /* (225) case_else ::= ELSE expr */ | |
| 163590 | - 0, /* (226) case_else ::= */ | |
| 163591 | - -1, /* (227) case_operand ::= expr */ | |
| 163592 | - 0, /* (228) case_operand ::= */ | |
| 163593 | - 0, /* (229) exprlist ::= */ | |
| 163594 | - -3, /* (230) nexprlist ::= nexprlist COMMA expr */ | |
| 163595 | - -1, /* (231) nexprlist ::= expr */ | |
| 163596 | - 0, /* (232) paren_exprlist ::= */ | |
| 163597 | - -3, /* (233) paren_exprlist ::= LP exprlist RP */ | |
| 163598 | - -12, /* (234) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ | |
| 163599 | - -1, /* (235) uniqueflag ::= UNIQUE */ | |
| 163600 | - 0, /* (236) uniqueflag ::= */ | |
| 163601 | - 0, /* (237) eidlist_opt ::= */ | |
| 163602 | - -3, /* (238) eidlist_opt ::= LP eidlist RP */ | |
| 163603 | - -5, /* (239) eidlist ::= eidlist COMMA nm collate sortorder */ | |
| 163604 | - -3, /* (240) eidlist ::= nm collate sortorder */ | |
| 163605 | - 0, /* (241) collate ::= */ | |
| 163606 | - -2, /* (242) collate ::= COLLATE ID|STRING */ | |
| 163607 | - -4, /* (243) cmd ::= DROP INDEX ifexists fullname */ | |
| 163608 | - -2, /* (244) cmd ::= VACUUM vinto */ | |
| 163609 | - -3, /* (245) cmd ::= VACUUM nm vinto */ | |
| 163610 | - -2, /* (246) vinto ::= INTO expr */ | |
| 163611 | - 0, /* (247) vinto ::= */ | |
| 163612 | - -3, /* (248) cmd ::= PRAGMA nm dbnm */ | |
| 163613 | - -5, /* (249) cmd ::= PRAGMA nm dbnm EQ nmnum */ | |
| 163614 | - -6, /* (250) cmd ::= PRAGMA nm dbnm LP nmnum RP */ | |
| 163615 | - -5, /* (251) cmd ::= PRAGMA nm dbnm EQ minus_num */ | |
| 163616 | - -6, /* (252) cmd ::= PRAGMA nm dbnm LP minus_num RP */ | |
| 163617 | - -2, /* (253) plus_num ::= PLUS INTEGER|FLOAT */ | |
| 163618 | - -2, /* (254) minus_num ::= MINUS INTEGER|FLOAT */ | |
| 163619 | - -5, /* (255) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ | |
| 163620 | - -11, /* (256) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ | |
| 163621 | - -1, /* (257) trigger_time ::= BEFORE|AFTER */ | |
| 163622 | - -2, /* (258) trigger_time ::= INSTEAD OF */ | |
| 163623 | - 0, /* (259) trigger_time ::= */ | |
| 163624 | - -1, /* (260) trigger_event ::= DELETE|INSERT */ | |
| 163625 | - -1, /* (261) trigger_event ::= UPDATE */ | |
| 163626 | - -3, /* (262) trigger_event ::= UPDATE OF idlist */ | |
| 163627 | - 0, /* (263) when_clause ::= */ | |
| 163628 | - -2, /* (264) when_clause ::= WHEN expr */ | |
| 163629 | - -3, /* (265) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ | |
| 163630 | - -2, /* (266) trigger_cmd_list ::= trigger_cmd SEMI */ | |
| 163631 | - -3, /* (267) trnm ::= nm DOT nm */ | |
| 163632 | - -3, /* (268) tridxby ::= INDEXED BY nm */ | |
| 163633 | - -2, /* (269) tridxby ::= NOT INDEXED */ | |
| 163634 | - -9, /* (270) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ | |
| 163635 | - -8, /* (271) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ | |
| 163636 | - -6, /* (272) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ | |
| 163637 | - -3, /* (273) trigger_cmd ::= scanpt select scanpt */ | |
| 163638 | - -4, /* (274) expr ::= RAISE LP IGNORE RP */ | |
| 163639 | - -6, /* (275) expr ::= RAISE LP raisetype COMMA nm RP */ | |
| 163640 | - -1, /* (276) raisetype ::= ROLLBACK */ | |
| 163641 | - -1, /* (277) raisetype ::= ABORT */ | |
| 163642 | - -1, /* (278) raisetype ::= FAIL */ | |
| 163643 | - -4, /* (279) cmd ::= DROP TRIGGER ifexists fullname */ | |
| 163644 | - -6, /* (280) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ | |
| 163645 | - -3, /* (281) cmd ::= DETACH database_kw_opt expr */ | |
| 163646 | - 0, /* (282) key_opt ::= */ | |
| 163647 | - -2, /* (283) key_opt ::= KEY expr */ | |
| 163648 | - -1, /* (284) cmd ::= REINDEX */ | |
| 163649 | - -3, /* (285) cmd ::= REINDEX nm dbnm */ | |
| 163650 | - -1, /* (286) cmd ::= ANALYZE */ | |
| 163651 | - -3, /* (287) cmd ::= ANALYZE nm dbnm */ | |
| 163652 | - -6, /* (288) cmd ::= ALTER TABLE fullname RENAME TO nm */ | |
| 163653 | - -7, /* (289) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ | |
| 163654 | - -6, /* (290) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ | |
| 163655 | - -1, /* (291) add_column_fullname ::= fullname */ | |
| 163656 | - -8, /* (292) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ | |
| 163657 | - -1, /* (293) cmd ::= create_vtab */ | |
| 163658 | - -4, /* (294) cmd ::= create_vtab LP vtabarglist RP */ | |
| 163659 | - -8, /* (295) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ | |
| 163660 | - 0, /* (296) vtabarg ::= */ | |
| 163661 | - -1, /* (297) vtabargtoken ::= ANY */ | |
| 163662 | - -3, /* (298) vtabargtoken ::= lp anylist RP */ | |
| 163663 | - -1, /* (299) lp ::= LP */ | |
| 163664 | - -2, /* (300) with ::= WITH wqlist */ | |
| 163665 | - -3, /* (301) with ::= WITH RECURSIVE wqlist */ | |
| 163666 | - -1, /* (302) wqas ::= AS */ | |
| 163667 | - -2, /* (303) wqas ::= AS MATERIALIZED */ | |
| 163668 | - -3, /* (304) wqas ::= AS NOT MATERIALIZED */ | |
| 163669 | - -6, /* (305) wqitem ::= nm eidlist_opt wqas LP select RP */ | |
| 163670 | - -1, /* (306) wqlist ::= wqitem */ | |
| 163671 | - -3, /* (307) wqlist ::= wqlist COMMA wqitem */ | |
| 163672 | - -1, /* (308) windowdefn_list ::= windowdefn */ | |
| 163673 | - -3, /* (309) windowdefn_list ::= windowdefn_list COMMA windowdefn */ | |
| 163674 | - -5, /* (310) windowdefn ::= nm AS LP window RP */ | |
| 163675 | - -5, /* (311) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ | |
| 163676 | - -6, /* (312) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ | |
| 163677 | - -4, /* (313) window ::= ORDER BY sortlist frame_opt */ | |
| 163678 | - -5, /* (314) window ::= nm ORDER BY sortlist frame_opt */ | |
| 163679 | - -1, /* (315) window ::= frame_opt */ | |
| 163680 | - -2, /* (316) window ::= nm frame_opt */ | |
| 163681 | - 0, /* (317) frame_opt ::= */ | |
| 163682 | - -3, /* (318) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ | |
| 163683 | - -6, /* (319) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ | |
| 163684 | - -1, /* (320) range_or_rows ::= RANGE|ROWS|GROUPS */ | |
| 163685 | - -1, /* (321) frame_bound_s ::= frame_bound */ | |
| 163686 | - -2, /* (322) frame_bound_s ::= UNBOUNDED PRECEDING */ | |
| 163687 | - -1, /* (323) frame_bound_e ::= frame_bound */ | |
| 163688 | - -2, /* (324) frame_bound_e ::= UNBOUNDED FOLLOWING */ | |
| 163689 | - -2, /* (325) frame_bound ::= expr PRECEDING|FOLLOWING */ | |
| 163690 | - -2, /* (326) frame_bound ::= CURRENT ROW */ | |
| 163691 | - 0, /* (327) frame_exclude_opt ::= */ | |
| 163692 | - -2, /* (328) frame_exclude_opt ::= EXCLUDE frame_exclude */ | |
| 163693 | - -2, /* (329) frame_exclude ::= NO OTHERS */ | |
| 163694 | - -2, /* (330) frame_exclude ::= CURRENT ROW */ | |
| 163695 | - -1, /* (331) frame_exclude ::= GROUP|TIES */ | |
| 163696 | - -2, /* (332) window_clause ::= WINDOW windowdefn_list */ | |
| 163697 | - -2, /* (333) filter_over ::= filter_clause over_clause */ | |
| 163698 | - -1, /* (334) filter_over ::= over_clause */ | |
| 163699 | - -1, /* (335) filter_over ::= filter_clause */ | |
| 163700 | - -4, /* (336) over_clause ::= OVER LP window RP */ | |
| 163701 | - -2, /* (337) over_clause ::= OVER nm */ | |
| 163702 | - -5, /* (338) filter_clause ::= FILTER LP WHERE expr RP */ | |
| 163703 | - -1, /* (339) input ::= cmdlist */ | |
| 163704 | - -2, /* (340) cmdlist ::= cmdlist ecmd */ | |
| 163705 | - -1, /* (341) cmdlist ::= ecmd */ | |
| 163706 | - -1, /* (342) ecmd ::= SEMI */ | |
| 163707 | - -2, /* (343) ecmd ::= cmdx SEMI */ | |
| 163708 | - -3, /* (344) ecmd ::= explain cmdx SEMI */ | |
| 163709 | - 0, /* (345) trans_opt ::= */ | |
| 163710 | - -1, /* (346) trans_opt ::= TRANSACTION */ | |
| 163711 | - -2, /* (347) trans_opt ::= TRANSACTION nm */ | |
| 163712 | - -1, /* (348) savepoint_opt ::= SAVEPOINT */ | |
| 163713 | - 0, /* (349) savepoint_opt ::= */ | |
| 163714 | - -2, /* (350) cmd ::= create_table create_table_args */ | |
| 163715 | - -1, /* (351) table_option_set ::= table_option */ | |
| 163716 | - -4, /* (352) columnlist ::= columnlist COMMA columnname carglist */ | |
| 163717 | - -2, /* (353) columnlist ::= columnname carglist */ | |
| 163718 | - -1, /* (354) nm ::= ID|INDEXED */ | |
| 163719 | - -1, /* (355) nm ::= STRING */ | |
| 163720 | - -1, /* (356) nm ::= JOIN_KW */ | |
| 163721 | - -1, /* (357) typetoken ::= typename */ | |
| 163722 | - -1, /* (358) typename ::= ID|STRING */ | |
| 163723 | - -1, /* (359) signed ::= plus_num */ | |
| 163724 | - -1, /* (360) signed ::= minus_num */ | |
| 163725 | - -2, /* (361) carglist ::= carglist ccons */ | |
| 163726 | - 0, /* (362) carglist ::= */ | |
| 163727 | - -2, /* (363) ccons ::= NULL onconf */ | |
| 163728 | - -4, /* (364) ccons ::= GENERATED ALWAYS AS generated */ | |
| 163729 | - -2, /* (365) ccons ::= AS generated */ | |
| 163730 | - -2, /* (366) conslist_opt ::= COMMA conslist */ | |
| 163731 | - -3, /* (367) conslist ::= conslist tconscomma tcons */ | |
| 163732 | - -1, /* (368) conslist ::= tcons */ | |
| 163733 | - 0, /* (369) tconscomma ::= */ | |
| 163734 | - -1, /* (370) defer_subclause_opt ::= defer_subclause */ | |
| 163735 | - -1, /* (371) resolvetype ::= raisetype */ | |
| 163736 | - -1, /* (372) selectnowith ::= oneselect */ | |
| 163737 | - -1, /* (373) oneselect ::= values */ | |
| 163738 | - -2, /* (374) sclp ::= selcollist COMMA */ | |
| 163739 | - -1, /* (375) as ::= ID|STRING */ | |
| 163740 | - 0, /* (376) returning ::= */ | |
| 163741 | - -1, /* (377) expr ::= term */ | |
| 163742 | - -1, /* (378) likeop ::= LIKE_KW|MATCH */ | |
| 163743 | - -1, /* (379) exprlist ::= nexprlist */ | |
| 163744 | - -1, /* (380) nmnum ::= plus_num */ | |
| 163745 | - -1, /* (381) nmnum ::= nm */ | |
| 163746 | - -1, /* (382) nmnum ::= ON */ | |
| 163747 | - -1, /* (383) nmnum ::= DELETE */ | |
| 163748 | - -1, /* (384) nmnum ::= DEFAULT */ | |
| 163749 | - -1, /* (385) plus_num ::= INTEGER|FLOAT */ | |
| 163750 | - 0, /* (386) foreach_clause ::= */ | |
| 163751 | - -3, /* (387) foreach_clause ::= FOR EACH ROW */ | |
| 163752 | - -1, /* (388) trnm ::= nm */ | |
| 163753 | - 0, /* (389) tridxby ::= */ | |
| 163754 | - -1, /* (390) database_kw_opt ::= DATABASE */ | |
| 163755 | - 0, /* (391) database_kw_opt ::= */ | |
| 163756 | - 0, /* (392) kwcolumn_opt ::= */ | |
| 163757 | - -1, /* (393) kwcolumn_opt ::= COLUMNKW */ | |
| 163758 | - -1, /* (394) vtabarglist ::= vtabarg */ | |
| 163759 | - -3, /* (395) vtabarglist ::= vtabarglist COMMA vtabarg */ | |
| 163760 | - -2, /* (396) vtabarg ::= vtabarg vtabargtoken */ | |
| 163761 | - 0, /* (397) anylist ::= */ | |
| 163762 | - -4, /* (398) anylist ::= anylist LP anylist RP */ | |
| 163763 | - -2, /* (399) anylist ::= anylist ANY */ | |
| 163764 | - 0, /* (400) with ::= */ | |
| 163613 | + -3, /* (212) expr ::= expr PTR expr */ | |
| 163614 | + -1, /* (213) between_op ::= BETWEEN */ | |
| 163615 | + -2, /* (214) between_op ::= NOT BETWEEN */ | |
| 163616 | + -5, /* (215) expr ::= expr between_op expr AND expr */ | |
| 163617 | + -1, /* (216) in_op ::= IN */ | |
| 163618 | + -2, /* (217) in_op ::= NOT IN */ | |
| 163619 | + -5, /* (218) expr ::= expr in_op LP exprlist RP */ | |
| 163620 | + -3, /* (219) expr ::= LP select RP */ | |
| 163621 | + -5, /* (220) expr ::= expr in_op LP select RP */ | |
| 163622 | + -5, /* (221) expr ::= expr in_op nm dbnm paren_exprlist */ | |
| 163623 | + -4, /* (222) expr ::= EXISTS LP select RP */ | |
| 163624 | + -5, /* (223) expr ::= CASE case_operand case_exprlist case_else END */ | |
| 163625 | + -5, /* (224) case_exprlist ::= case_exprlist WHEN expr THEN expr */ | |
| 163626 | + -4, /* (225) case_exprlist ::= WHEN expr THEN expr */ | |
| 163627 | + -2, /* (226) case_else ::= ELSE expr */ | |
| 163628 | + 0, /* (227) case_else ::= */ | |
| 163629 | + -1, /* (228) case_operand ::= expr */ | |
| 163630 | + 0, /* (229) case_operand ::= */ | |
| 163631 | + 0, /* (230) exprlist ::= */ | |
| 163632 | + -3, /* (231) nexprlist ::= nexprlist COMMA expr */ | |
| 163633 | + -1, /* (232) nexprlist ::= expr */ | |
| 163634 | + 0, /* (233) paren_exprlist ::= */ | |
| 163635 | + -3, /* (234) paren_exprlist ::= LP exprlist RP */ | |
| 163636 | + -12, /* (235) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ | |
| 163637 | + -1, /* (236) uniqueflag ::= UNIQUE */ | |
| 163638 | + 0, /* (237) uniqueflag ::= */ | |
| 163639 | + 0, /* (238) eidlist_opt ::= */ | |
| 163640 | + -3, /* (239) eidlist_opt ::= LP eidlist RP */ | |
| 163641 | + -5, /* (240) eidlist ::= eidlist COMMA nm collate sortorder */ | |
| 163642 | + -3, /* (241) eidlist ::= nm collate sortorder */ | |
| 163643 | + 0, /* (242) collate ::= */ | |
| 163644 | + -2, /* (243) collate ::= COLLATE ID|STRING */ | |
| 163645 | + -4, /* (244) cmd ::= DROP INDEX ifexists fullname */ | |
| 163646 | + -2, /* (245) cmd ::= VACUUM vinto */ | |
| 163647 | + -3, /* (246) cmd ::= VACUUM nm vinto */ | |
| 163648 | + -2, /* (247) vinto ::= INTO expr */ | |
| 163649 | + 0, /* (248) vinto ::= */ | |
| 163650 | + -3, /* (249) cmd ::= PRAGMA nm dbnm */ | |
| 163651 | + -5, /* (250) cmd ::= PRAGMA nm dbnm EQ nmnum */ | |
| 163652 | + -6, /* (251) cmd ::= PRAGMA nm dbnm LP nmnum RP */ | |
| 163653 | + -5, /* (252) cmd ::= PRAGMA nm dbnm EQ minus_num */ | |
| 163654 | + -6, /* (253) cmd ::= PRAGMA nm dbnm LP minus_num RP */ | |
| 163655 | + -2, /* (254) plus_num ::= PLUS INTEGER|FLOAT */ | |
| 163656 | + -2, /* (255) minus_num ::= MINUS INTEGER|FLOAT */ | |
| 163657 | + -5, /* (256) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ | |
| 163658 | + -11, /* (257) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ | |
| 163659 | + -1, /* (258) trigger_time ::= BEFORE|AFTER */ | |
| 163660 | + -2, /* (259) trigger_time ::= INSTEAD OF */ | |
| 163661 | + 0, /* (260) trigger_time ::= */ | |
| 163662 | + -1, /* (261) trigger_event ::= DELETE|INSERT */ | |
| 163663 | + -1, /* (262) trigger_event ::= UPDATE */ | |
| 163664 | + -3, /* (263) trigger_event ::= UPDATE OF idlist */ | |
| 163665 | + 0, /* (264) when_clause ::= */ | |
| 163666 | + -2, /* (265) when_clause ::= WHEN expr */ | |
| 163667 | + -3, /* (266) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ | |
| 163668 | + -2, /* (267) trigger_cmd_list ::= trigger_cmd SEMI */ | |
| 163669 | + -3, /* (268) trnm ::= nm DOT nm */ | |
| 163670 | + -3, /* (269) tridxby ::= INDEXED BY nm */ | |
| 163671 | + -2, /* (270) tridxby ::= NOT INDEXED */ | |
| 163672 | + -9, /* (271) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ | |
| 163673 | + -8, /* (272) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ | |
| 163674 | + -6, /* (273) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ | |
| 163675 | + -3, /* (274) trigger_cmd ::= scanpt select scanpt */ | |
| 163676 | + -4, /* (275) expr ::= RAISE LP IGNORE RP */ | |
| 163677 | + -6, /* (276) expr ::= RAISE LP raisetype COMMA nm RP */ | |
| 163678 | + -1, /* (277) raisetype ::= ROLLBACK */ | |
| 163679 | + -1, /* (278) raisetype ::= ABORT */ | |
| 163680 | + -1, /* (279) raisetype ::= FAIL */ | |
| 163681 | + -4, /* (280) cmd ::= DROP TRIGGER ifexists fullname */ | |
| 163682 | + -6, /* (281) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ | |
| 163683 | + -3, /* (282) cmd ::= DETACH database_kw_opt expr */ | |
| 163684 | + 0, /* (283) key_opt ::= */ | |
| 163685 | + -2, /* (284) key_opt ::= KEY expr */ | |
| 163686 | + -1, /* (285) cmd ::= REINDEX */ | |
| 163687 | + -3, /* (286) cmd ::= REINDEX nm dbnm */ | |
| 163688 | + -1, /* (287) cmd ::= ANALYZE */ | |
| 163689 | + -3, /* (288) cmd ::= ANALYZE nm dbnm */ | |
| 163690 | + -6, /* (289) cmd ::= ALTER TABLE fullname RENAME TO nm */ | |
| 163691 | + -7, /* (290) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ | |
| 163692 | + -6, /* (291) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ | |
| 163693 | + -1, /* (292) add_column_fullname ::= fullname */ | |
| 163694 | + -8, /* (293) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ | |
| 163695 | + -1, /* (294) cmd ::= create_vtab */ | |
| 163696 | + -4, /* (295) cmd ::= create_vtab LP vtabarglist RP */ | |
| 163697 | + -8, /* (296) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ | |
| 163698 | + 0, /* (297) vtabarg ::= */ | |
| 163699 | + -1, /* (298) vtabargtoken ::= ANY */ | |
| 163700 | + -3, /* (299) vtabargtoken ::= lp anylist RP */ | |
| 163701 | + -1, /* (300) lp ::= LP */ | |
| 163702 | + -2, /* (301) with ::= WITH wqlist */ | |
| 163703 | + -3, /* (302) with ::= WITH RECURSIVE wqlist */ | |
| 163704 | + -1, /* (303) wqas ::= AS */ | |
| 163705 | + -2, /* (304) wqas ::= AS MATERIALIZED */ | |
| 163706 | + -3, /* (305) wqas ::= AS NOT MATERIALIZED */ | |
| 163707 | + -6, /* (306) wqitem ::= nm eidlist_opt wqas LP select RP */ | |
| 163708 | + -1, /* (307) wqlist ::= wqitem */ | |
| 163709 | + -3, /* (308) wqlist ::= wqlist COMMA wqitem */ | |
| 163710 | + -1, /* (309) windowdefn_list ::= windowdefn */ | |
| 163711 | + -3, /* (310) windowdefn_list ::= windowdefn_list COMMA windowdefn */ | |
| 163712 | + -5, /* (311) windowdefn ::= nm AS LP window RP */ | |
| 163713 | + -5, /* (312) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ | |
| 163714 | + -6, /* (313) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ | |
| 163715 | + -4, /* (314) window ::= ORDER BY sortlist frame_opt */ | |
| 163716 | + -5, /* (315) window ::= nm ORDER BY sortlist frame_opt */ | |
| 163717 | + -1, /* (316) window ::= frame_opt */ | |
| 163718 | + -2, /* (317) window ::= nm frame_opt */ | |
| 163719 | + 0, /* (318) frame_opt ::= */ | |
| 163720 | + -3, /* (319) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ | |
| 163721 | + -6, /* (320) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ | |
| 163722 | + -1, /* (321) range_or_rows ::= RANGE|ROWS|GROUPS */ | |
| 163723 | + -1, /* (322) frame_bound_s ::= frame_bound */ | |
| 163724 | + -2, /* (323) frame_bound_s ::= UNBOUNDED PRECEDING */ | |
| 163725 | + -1, /* (324) frame_bound_e ::= frame_bound */ | |
| 163726 | + -2, /* (325) frame_bound_e ::= UNBOUNDED FOLLOWING */ | |
| 163727 | + -2, /* (326) frame_bound ::= expr PRECEDING|FOLLOWING */ | |
| 163728 | + -2, /* (327) frame_bound ::= CURRENT ROW */ | |
| 163729 | + 0, /* (328) frame_exclude_opt ::= */ | |
| 163730 | + -2, /* (329) frame_exclude_opt ::= EXCLUDE frame_exclude */ | |
| 163731 | + -2, /* (330) frame_exclude ::= NO OTHERS */ | |
| 163732 | + -2, /* (331) frame_exclude ::= CURRENT ROW */ | |
| 163733 | + -1, /* (332) frame_exclude ::= GROUP|TIES */ | |
| 163734 | + -2, /* (333) window_clause ::= WINDOW windowdefn_list */ | |
| 163735 | + -2, /* (334) filter_over ::= filter_clause over_clause */ | |
| 163736 | + -1, /* (335) filter_over ::= over_clause */ | |
| 163737 | + -1, /* (336) filter_over ::= filter_clause */ | |
| 163738 | + -4, /* (337) over_clause ::= OVER LP window RP */ | |
| 163739 | + -2, /* (338) over_clause ::= OVER nm */ | |
| 163740 | + -5, /* (339) filter_clause ::= FILTER LP WHERE expr RP */ | |
| 163741 | + -1, /* (340) input ::= cmdlist */ | |
| 163742 | + -2, /* (341) cmdlist ::= cmdlist ecmd */ | |
| 163743 | + -1, /* (342) cmdlist ::= ecmd */ | |
| 163744 | + -1, /* (343) ecmd ::= SEMI */ | |
| 163745 | + -2, /* (344) ecmd ::= cmdx SEMI */ | |
| 163746 | + -3, /* (345) ecmd ::= explain cmdx SEMI */ | |
| 163747 | + 0, /* (346) trans_opt ::= */ | |
| 163748 | + -1, /* (347) trans_opt ::= TRANSACTION */ | |
| 163749 | + -2, /* (348) trans_opt ::= TRANSACTION nm */ | |
| 163750 | + -1, /* (349) savepoint_opt ::= SAVEPOINT */ | |
| 163751 | + 0, /* (350) savepoint_opt ::= */ | |
| 163752 | + -2, /* (351) cmd ::= create_table create_table_args */ | |
| 163753 | + -1, /* (352) table_option_set ::= table_option */ | |
| 163754 | + -4, /* (353) columnlist ::= columnlist COMMA columnname carglist */ | |
| 163755 | + -2, /* (354) columnlist ::= columnname carglist */ | |
| 163756 | + -1, /* (355) nm ::= ID|INDEXED */ | |
| 163757 | + -1, /* (356) nm ::= STRING */ | |
| 163758 | + -1, /* (357) nm ::= JOIN_KW */ | |
| 163759 | + -1, /* (358) typetoken ::= typename */ | |
| 163760 | + -1, /* (359) typename ::= ID|STRING */ | |
| 163761 | + -1, /* (360) signed ::= plus_num */ | |
| 163762 | + -1, /* (361) signed ::= minus_num */ | |
| 163763 | + -2, /* (362) carglist ::= carglist ccons */ | |
| 163764 | + 0, /* (363) carglist ::= */ | |
| 163765 | + -2, /* (364) ccons ::= NULL onconf */ | |
| 163766 | + -4, /* (365) ccons ::= GENERATED ALWAYS AS generated */ | |
| 163767 | + -2, /* (366) ccons ::= AS generated */ | |
| 163768 | + -2, /* (367) conslist_opt ::= COMMA conslist */ | |
| 163769 | + -3, /* (368) conslist ::= conslist tconscomma tcons */ | |
| 163770 | + -1, /* (369) conslist ::= tcons */ | |
| 163771 | + 0, /* (370) tconscomma ::= */ | |
| 163772 | + -1, /* (371) defer_subclause_opt ::= defer_subclause */ | |
| 163773 | + -1, /* (372) resolvetype ::= raisetype */ | |
| 163774 | + -1, /* (373) selectnowith ::= oneselect */ | |
| 163775 | + -1, /* (374) oneselect ::= values */ | |
| 163776 | + -2, /* (375) sclp ::= selcollist COMMA */ | |
| 163777 | + -1, /* (376) as ::= ID|STRING */ | |
| 163778 | + 0, /* (377) returning ::= */ | |
| 163779 | + -1, /* (378) expr ::= term */ | |
| 163780 | + -1, /* (379) likeop ::= LIKE_KW|MATCH */ | |
| 163781 | + -1, /* (380) exprlist ::= nexprlist */ | |
| 163782 | + -1, /* (381) nmnum ::= plus_num */ | |
| 163783 | + -1, /* (382) nmnum ::= nm */ | |
| 163784 | + -1, /* (383) nmnum ::= ON */ | |
| 163785 | + -1, /* (384) nmnum ::= DELETE */ | |
| 163786 | + -1, /* (385) nmnum ::= DEFAULT */ | |
| 163787 | + -1, /* (386) plus_num ::= INTEGER|FLOAT */ | |
| 163788 | + 0, /* (387) foreach_clause ::= */ | |
| 163789 | + -3, /* (388) foreach_clause ::= FOR EACH ROW */ | |
| 163790 | + -1, /* (389) trnm ::= nm */ | |
| 163791 | + 0, /* (390) tridxby ::= */ | |
| 163792 | + -1, /* (391) database_kw_opt ::= DATABASE */ | |
| 163793 | + 0, /* (392) database_kw_opt ::= */ | |
| 163794 | + 0, /* (393) kwcolumn_opt ::= */ | |
| 163795 | + -1, /* (394) kwcolumn_opt ::= COLUMNKW */ | |
| 163796 | + -1, /* (395) vtabarglist ::= vtabarg */ | |
| 163797 | + -3, /* (396) vtabarglist ::= vtabarglist COMMA vtabarg */ | |
| 163798 | + -2, /* (397) vtabarg ::= vtabarg vtabargtoken */ | |
| 163799 | + 0, /* (398) anylist ::= */ | |
| 163800 | + -4, /* (399) anylist ::= anylist LP anylist RP */ | |
| 163801 | + -2, /* (400) anylist ::= anylist ANY */ | |
| 163802 | + 0, /* (401) with ::= */ | |
| 163765 | 163803 | }; |
| 163766 | 163804 | |
| 163767 | 163805 | static void yy_accept(yyParser*); /* Forward Declaration */ |
| 163768 | 163806 | |
| 163769 | 163807 | /* |
| @@ -163811,20 +163849,20 @@ | ||
| 163811 | 163849 | break; |
| 163812 | 163850 | case 2: /* cmdx ::= cmd */ |
| 163813 | 163851 | { sqlite3FinishCoding(pParse); } |
| 163814 | 163852 | break; |
| 163815 | 163853 | case 3: /* cmd ::= BEGIN transtype trans_opt */ |
| 163816 | -{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy64);} | |
| 163854 | +{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy394);} | |
| 163817 | 163855 | break; |
| 163818 | 163856 | case 4: /* transtype ::= */ |
| 163819 | -{yymsp[1].minor.yy64 = TK_DEFERRED;} | |
| 163857 | +{yymsp[1].minor.yy394 = TK_DEFERRED;} | |
| 163820 | 163858 | break; |
| 163821 | 163859 | case 5: /* transtype ::= DEFERRED */ |
| 163822 | 163860 | case 6: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==6); |
| 163823 | 163861 | case 7: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==7); |
| 163824 | - case 320: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==320); | |
| 163825 | -{yymsp[0].minor.yy64 = yymsp[0].major; /*A-overwrites-X*/} | |
| 163862 | + case 321: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==321); | |
| 163863 | +{yymsp[0].minor.yy394 = yymsp[0].major; /*A-overwrites-X*/} | |
| 163826 | 163864 | break; |
| 163827 | 163865 | case 8: /* cmd ::= COMMIT|END trans_opt */ |
| 163828 | 163866 | case 9: /* cmd ::= ROLLBACK trans_opt */ yytestcase(yyruleno==9); |
| 163829 | 163867 | {sqlite3EndTransaction(pParse,yymsp[-1].major);} |
| 163830 | 163868 | break; |
| @@ -163843,11 +163881,11 @@ | ||
| 163843 | 163881 | sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0); |
| 163844 | 163882 | } |
| 163845 | 163883 | break; |
| 163846 | 163884 | case 13: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ |
| 163847 | 163885 | { |
| 163848 | - sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy64,0,0,yymsp[-2].minor.yy64); | |
| 163886 | + sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy394,0,0,yymsp[-2].minor.yy394); | |
| 163849 | 163887 | } |
| 163850 | 163888 | break; |
| 163851 | 163889 | case 14: /* createkw ::= CREATE */ |
| 163852 | 163890 | {disableLookaside(pParse);} |
| 163853 | 163891 | break; |
| @@ -163856,57 +163894,57 @@ | ||
| 163856 | 163894 | case 47: /* autoinc ::= */ yytestcase(yyruleno==47); |
| 163857 | 163895 | case 62: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==62); |
| 163858 | 163896 | case 72: /* defer_subclause_opt ::= */ yytestcase(yyruleno==72); |
| 163859 | 163897 | case 81: /* ifexists ::= */ yytestcase(yyruleno==81); |
| 163860 | 163898 | case 98: /* distinct ::= */ yytestcase(yyruleno==98); |
| 163861 | - case 241: /* collate ::= */ yytestcase(yyruleno==241); | |
| 163862 | -{yymsp[1].minor.yy64 = 0;} | |
| 163899 | + case 242: /* collate ::= */ yytestcase(yyruleno==242); | |
| 163900 | +{yymsp[1].minor.yy394 = 0;} | |
| 163863 | 163901 | break; |
| 163864 | 163902 | case 16: /* ifnotexists ::= IF NOT EXISTS */ |
| 163865 | -{yymsp[-2].minor.yy64 = 1;} | |
| 163903 | +{yymsp[-2].minor.yy394 = 1;} | |
| 163866 | 163904 | break; |
| 163867 | 163905 | case 17: /* temp ::= TEMP */ |
| 163868 | -{yymsp[0].minor.yy64 = pParse->db->init.busy==0;} | |
| 163906 | +{yymsp[0].minor.yy394 = pParse->db->init.busy==0;} | |
| 163869 | 163907 | break; |
| 163870 | 163908 | case 19: /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */ |
| 163871 | 163909 | { |
| 163872 | - sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy51,0); | |
| 163910 | + sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy285,0); | |
| 163873 | 163911 | } |
| 163874 | 163912 | break; |
| 163875 | 163913 | case 20: /* create_table_args ::= AS select */ |
| 163876 | 163914 | { |
| 163877 | - sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy303); | |
| 163878 | - sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy303); | |
| 163915 | + sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy47); | |
| 163916 | + sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy47); | |
| 163879 | 163917 | } |
| 163880 | 163918 | break; |
| 163881 | 163919 | case 21: /* table_option_set ::= */ |
| 163882 | -{yymsp[1].minor.yy51 = 0;} | |
| 163920 | +{yymsp[1].minor.yy285 = 0;} | |
| 163883 | 163921 | break; |
| 163884 | 163922 | case 22: /* table_option_set ::= table_option_set COMMA table_option */ |
| 163885 | -{yylhsminor.yy51 = yymsp[-2].minor.yy51|yymsp[0].minor.yy51;} | |
| 163886 | - yymsp[-2].minor.yy51 = yylhsminor.yy51; | |
| 163923 | +{yylhsminor.yy285 = yymsp[-2].minor.yy285|yymsp[0].minor.yy285;} | |
| 163924 | + yymsp[-2].minor.yy285 = yylhsminor.yy285; | |
| 163887 | 163925 | break; |
| 163888 | 163926 | case 23: /* table_option ::= WITHOUT nm */ |
| 163889 | 163927 | { |
| 163890 | 163928 | if( yymsp[0].minor.yy0.n==5 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"rowid",5)==0 ){ |
| 163891 | - yymsp[-1].minor.yy51 = TF_WithoutRowid | TF_NoVisibleRowid; | |
| 163929 | + yymsp[-1].minor.yy285 = TF_WithoutRowid | TF_NoVisibleRowid; | |
| 163892 | 163930 | }else{ |
| 163893 | - yymsp[-1].minor.yy51 = 0; | |
| 163931 | + yymsp[-1].minor.yy285 = 0; | |
| 163894 | 163932 | sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z); |
| 163895 | 163933 | } |
| 163896 | 163934 | } |
| 163897 | 163935 | break; |
| 163898 | 163936 | case 24: /* table_option ::= nm */ |
| 163899 | 163937 | { |
| 163900 | 163938 | if( yymsp[0].minor.yy0.n==6 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"strict",6)==0 ){ |
| 163901 | - yylhsminor.yy51 = TF_Strict; | |
| 163939 | + yylhsminor.yy285 = TF_Strict; | |
| 163902 | 163940 | }else{ |
| 163903 | - yylhsminor.yy51 = 0; | |
| 163941 | + yylhsminor.yy285 = 0; | |
| 163904 | 163942 | sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z); |
| 163905 | 163943 | } |
| 163906 | 163944 | } |
| 163907 | - yymsp[0].minor.yy51 = yylhsminor.yy51; | |
| 163945 | + yymsp[0].minor.yy285 = yylhsminor.yy285; | |
| 163908 | 163946 | break; |
| 163909 | 163947 | case 25: /* columnname ::= nm typetoken */ |
| 163910 | 163948 | {sqlite3AddColumn(pParse,yymsp[-1].minor.yy0,yymsp[0].minor.yy0);} |
| 163911 | 163949 | break; |
| 163912 | 163950 | case 26: /* typetoken ::= */ |
| @@ -163928,11 +163966,11 @@ | ||
| 163928 | 163966 | {yymsp[-1].minor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);} |
| 163929 | 163967 | break; |
| 163930 | 163968 | case 30: /* scanpt ::= */ |
| 163931 | 163969 | { |
| 163932 | 163970 | assert( yyLookahead!=YYNOCODE ); |
| 163933 | - yymsp[1].minor.yy600 = yyLookaheadToken.z; | |
| 163971 | + yymsp[1].minor.yy522 = yyLookaheadToken.z; | |
| 163934 | 163972 | } |
| 163935 | 163973 | break; |
| 163936 | 163974 | case 31: /* scantok ::= */ |
| 163937 | 163975 | { |
| 163938 | 163976 | assert( yyLookahead!=YYNOCODE ); |
| @@ -163942,21 +163980,21 @@ | ||
| 163942 | 163980 | case 32: /* ccons ::= CONSTRAINT nm */ |
| 163943 | 163981 | case 67: /* tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==67); |
| 163944 | 163982 | {pParse->constraintName = yymsp[0].minor.yy0;} |
| 163945 | 163983 | break; |
| 163946 | 163984 | case 33: /* ccons ::= DEFAULT scantok term */ |
| 163947 | -{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy626,yymsp[-1].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} | |
| 163985 | +{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy528,yymsp[-1].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} | |
| 163948 | 163986 | break; |
| 163949 | 163987 | case 34: /* ccons ::= DEFAULT LP expr RP */ |
| 163950 | -{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy626,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);} | |
| 163988 | +{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy528,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);} | |
| 163951 | 163989 | break; |
| 163952 | 163990 | case 35: /* ccons ::= DEFAULT PLUS scantok term */ |
| 163953 | -{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy626,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} | |
| 163991 | +{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy528,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} | |
| 163954 | 163992 | break; |
| 163955 | 163993 | case 36: /* ccons ::= DEFAULT MINUS scantok term */ |
| 163956 | 163994 | { |
| 163957 | - Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy626, 0); | |
| 163995 | + Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy528, 0); | |
| 163958 | 163996 | sqlite3AddDefaultValue(pParse,p,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]); |
| 163959 | 163997 | } |
| 163960 | 163998 | break; |
| 163961 | 163999 | case 37: /* ccons ::= DEFAULT scantok ID|INDEXED */ |
| 163962 | 164000 | { |
| @@ -163967,308 +164005,308 @@ | ||
| 163967 | 164005 | } |
| 163968 | 164006 | sqlite3AddDefaultValue(pParse,p,yymsp[0].minor.yy0.z,yymsp[0].minor.yy0.z+yymsp[0].minor.yy0.n); |
| 163969 | 164007 | } |
| 163970 | 164008 | break; |
| 163971 | 164009 | case 38: /* ccons ::= NOT NULL onconf */ |
| 163972 | -{sqlite3AddNotNull(pParse, yymsp[0].minor.yy64);} | |
| 164010 | +{sqlite3AddNotNull(pParse, yymsp[0].minor.yy394);} | |
| 163973 | 164011 | break; |
| 163974 | 164012 | case 39: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ |
| 163975 | -{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy64,yymsp[0].minor.yy64,yymsp[-2].minor.yy64);} | |
| 164013 | +{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy394,yymsp[0].minor.yy394,yymsp[-2].minor.yy394);} | |
| 163976 | 164014 | break; |
| 163977 | 164015 | case 40: /* ccons ::= UNIQUE onconf */ |
| 163978 | -{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy64,0,0,0,0, | |
| 164016 | +{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy394,0,0,0,0, | |
| 163979 | 164017 | SQLITE_IDXTYPE_UNIQUE);} |
| 163980 | 164018 | break; |
| 163981 | 164019 | case 41: /* ccons ::= CHECK LP expr RP */ |
| 163982 | -{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy626,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy0.z);} | |
| 164020 | +{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy528,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy0.z);} | |
| 163983 | 164021 | break; |
| 163984 | 164022 | case 42: /* ccons ::= REFERENCES nm eidlist_opt refargs */ |
| 163985 | -{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy562,yymsp[0].minor.yy64);} | |
| 164023 | +{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy322,yymsp[0].minor.yy394);} | |
| 163986 | 164024 | break; |
| 163987 | 164025 | case 43: /* ccons ::= defer_subclause */ |
| 163988 | -{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy64);} | |
| 164026 | +{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy394);} | |
| 163989 | 164027 | break; |
| 163990 | 164028 | case 44: /* ccons ::= COLLATE ID|STRING */ |
| 163991 | 164029 | {sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);} |
| 163992 | 164030 | break; |
| 163993 | 164031 | case 45: /* generated ::= LP expr RP */ |
| 163994 | -{sqlite3AddGenerated(pParse,yymsp[-1].minor.yy626,0);} | |
| 164032 | +{sqlite3AddGenerated(pParse,yymsp[-1].minor.yy528,0);} | |
| 163995 | 164033 | break; |
| 163996 | 164034 | case 46: /* generated ::= LP expr RP ID */ |
| 163997 | -{sqlite3AddGenerated(pParse,yymsp[-2].minor.yy626,&yymsp[0].minor.yy0);} | |
| 164035 | +{sqlite3AddGenerated(pParse,yymsp[-2].minor.yy528,&yymsp[0].minor.yy0);} | |
| 163998 | 164036 | break; |
| 163999 | 164037 | case 48: /* autoinc ::= AUTOINCR */ |
| 164000 | -{yymsp[0].minor.yy64 = 1;} | |
| 164038 | +{yymsp[0].minor.yy394 = 1;} | |
| 164001 | 164039 | break; |
| 164002 | 164040 | case 49: /* refargs ::= */ |
| 164003 | -{ yymsp[1].minor.yy64 = OE_None*0x0101; /* EV: R-19803-45884 */} | |
| 164041 | +{ yymsp[1].minor.yy394 = OE_None*0x0101; /* EV: R-19803-45884 */} | |
| 164004 | 164042 | break; |
| 164005 | 164043 | case 50: /* refargs ::= refargs refarg */ |
| 164006 | -{ yymsp[-1].minor.yy64 = (yymsp[-1].minor.yy64 & ~yymsp[0].minor.yy83.mask) | yymsp[0].minor.yy83.value; } | |
| 164044 | +{ yymsp[-1].minor.yy394 = (yymsp[-1].minor.yy394 & ~yymsp[0].minor.yy231.mask) | yymsp[0].minor.yy231.value; } | |
| 164007 | 164045 | break; |
| 164008 | 164046 | case 51: /* refarg ::= MATCH nm */ |
| 164009 | -{ yymsp[-1].minor.yy83.value = 0; yymsp[-1].minor.yy83.mask = 0x000000; } | |
| 164047 | +{ yymsp[-1].minor.yy231.value = 0; yymsp[-1].minor.yy231.mask = 0x000000; } | |
| 164010 | 164048 | break; |
| 164011 | 164049 | case 52: /* refarg ::= ON INSERT refact */ |
| 164012 | -{ yymsp[-2].minor.yy83.value = 0; yymsp[-2].minor.yy83.mask = 0x000000; } | |
| 164050 | +{ yymsp[-2].minor.yy231.value = 0; yymsp[-2].minor.yy231.mask = 0x000000; } | |
| 164013 | 164051 | break; |
| 164014 | 164052 | case 53: /* refarg ::= ON DELETE refact */ |
| 164015 | -{ yymsp[-2].minor.yy83.value = yymsp[0].minor.yy64; yymsp[-2].minor.yy83.mask = 0x0000ff; } | |
| 164053 | +{ yymsp[-2].minor.yy231.value = yymsp[0].minor.yy394; yymsp[-2].minor.yy231.mask = 0x0000ff; } | |
| 164016 | 164054 | break; |
| 164017 | 164055 | case 54: /* refarg ::= ON UPDATE refact */ |
| 164018 | -{ yymsp[-2].minor.yy83.value = yymsp[0].minor.yy64<<8; yymsp[-2].minor.yy83.mask = 0x00ff00; } | |
| 164056 | +{ yymsp[-2].minor.yy231.value = yymsp[0].minor.yy394<<8; yymsp[-2].minor.yy231.mask = 0x00ff00; } | |
| 164019 | 164057 | break; |
| 164020 | 164058 | case 55: /* refact ::= SET NULL */ |
| 164021 | -{ yymsp[-1].minor.yy64 = OE_SetNull; /* EV: R-33326-45252 */} | |
| 164059 | +{ yymsp[-1].minor.yy394 = OE_SetNull; /* EV: R-33326-45252 */} | |
| 164022 | 164060 | break; |
| 164023 | 164061 | case 56: /* refact ::= SET DEFAULT */ |
| 164024 | -{ yymsp[-1].minor.yy64 = OE_SetDflt; /* EV: R-33326-45252 */} | |
| 164062 | +{ yymsp[-1].minor.yy394 = OE_SetDflt; /* EV: R-33326-45252 */} | |
| 164025 | 164063 | break; |
| 164026 | 164064 | case 57: /* refact ::= CASCADE */ |
| 164027 | -{ yymsp[0].minor.yy64 = OE_Cascade; /* EV: R-33326-45252 */} | |
| 164065 | +{ yymsp[0].minor.yy394 = OE_Cascade; /* EV: R-33326-45252 */} | |
| 164028 | 164066 | break; |
| 164029 | 164067 | case 58: /* refact ::= RESTRICT */ |
| 164030 | -{ yymsp[0].minor.yy64 = OE_Restrict; /* EV: R-33326-45252 */} | |
| 164068 | +{ yymsp[0].minor.yy394 = OE_Restrict; /* EV: R-33326-45252 */} | |
| 164031 | 164069 | break; |
| 164032 | 164070 | case 59: /* refact ::= NO ACTION */ |
| 164033 | -{ yymsp[-1].minor.yy64 = OE_None; /* EV: R-33326-45252 */} | |
| 164071 | +{ yymsp[-1].minor.yy394 = OE_None; /* EV: R-33326-45252 */} | |
| 164034 | 164072 | break; |
| 164035 | 164073 | case 60: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ |
| 164036 | -{yymsp[-2].minor.yy64 = 0;} | |
| 164074 | +{yymsp[-2].minor.yy394 = 0;} | |
| 164037 | 164075 | break; |
| 164038 | 164076 | case 61: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ |
| 164039 | 164077 | case 76: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==76); |
| 164040 | 164078 | case 171: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==171); |
| 164041 | -{yymsp[-1].minor.yy64 = yymsp[0].minor.yy64;} | |
| 164079 | +{yymsp[-1].minor.yy394 = yymsp[0].minor.yy394;} | |
| 164042 | 164080 | break; |
| 164043 | 164081 | case 63: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ |
| 164044 | 164082 | case 80: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==80); |
| 164045 | - case 213: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==213); | |
| 164046 | - case 216: /* in_op ::= NOT IN */ yytestcase(yyruleno==216); | |
| 164047 | - case 242: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==242); | |
| 164048 | -{yymsp[-1].minor.yy64 = 1;} | |
| 164083 | + case 214: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==214); | |
| 164084 | + case 217: /* in_op ::= NOT IN */ yytestcase(yyruleno==217); | |
| 164085 | + case 243: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==243); | |
| 164086 | +{yymsp[-1].minor.yy394 = 1;} | |
| 164049 | 164087 | break; |
| 164050 | 164088 | case 64: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ |
| 164051 | -{yymsp[-1].minor.yy64 = 0;} | |
| 164089 | +{yymsp[-1].minor.yy394 = 0;} | |
| 164052 | 164090 | break; |
| 164053 | 164091 | case 66: /* tconscomma ::= COMMA */ |
| 164054 | 164092 | {pParse->constraintName.n = 0;} |
| 164055 | 164093 | break; |
| 164056 | 164094 | case 68: /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ |
| 164057 | -{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy562,yymsp[0].minor.yy64,yymsp[-2].minor.yy64,0);} | |
| 164095 | +{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy322,yymsp[0].minor.yy394,yymsp[-2].minor.yy394,0);} | |
| 164058 | 164096 | break; |
| 164059 | 164097 | case 69: /* tcons ::= UNIQUE LP sortlist RP onconf */ |
| 164060 | -{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy562,yymsp[0].minor.yy64,0,0,0,0, | |
| 164098 | +{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy322,yymsp[0].minor.yy394,0,0,0,0, | |
| 164061 | 164099 | SQLITE_IDXTYPE_UNIQUE);} |
| 164062 | 164100 | break; |
| 164063 | 164101 | case 70: /* tcons ::= CHECK LP expr RP onconf */ |
| 164064 | -{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy626,yymsp[-3].minor.yy0.z,yymsp[-1].minor.yy0.z);} | |
| 164102 | +{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy528,yymsp[-3].minor.yy0.z,yymsp[-1].minor.yy0.z);} | |
| 164065 | 164103 | break; |
| 164066 | 164104 | case 71: /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ |
| 164067 | 164105 | { |
| 164068 | - sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy562, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy562, yymsp[-1].minor.yy64); | |
| 164069 | - sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy64); | |
| 164106 | + sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy322, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy322, yymsp[-1].minor.yy394); | |
| 164107 | + sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy394); | |
| 164070 | 164108 | } |
| 164071 | 164109 | break; |
| 164072 | 164110 | case 73: /* onconf ::= */ |
| 164073 | 164111 | case 75: /* orconf ::= */ yytestcase(yyruleno==75); |
| 164074 | -{yymsp[1].minor.yy64 = OE_Default;} | |
| 164112 | +{yymsp[1].minor.yy394 = OE_Default;} | |
| 164075 | 164113 | break; |
| 164076 | 164114 | case 74: /* onconf ::= ON CONFLICT resolvetype */ |
| 164077 | -{yymsp[-2].minor.yy64 = yymsp[0].minor.yy64;} | |
| 164115 | +{yymsp[-2].minor.yy394 = yymsp[0].minor.yy394;} | |
| 164078 | 164116 | break; |
| 164079 | 164117 | case 77: /* resolvetype ::= IGNORE */ |
| 164080 | -{yymsp[0].minor.yy64 = OE_Ignore;} | |
| 164118 | +{yymsp[0].minor.yy394 = OE_Ignore;} | |
| 164081 | 164119 | break; |
| 164082 | 164120 | case 78: /* resolvetype ::= REPLACE */ |
| 164083 | 164121 | case 172: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==172); |
| 164084 | -{yymsp[0].minor.yy64 = OE_Replace;} | |
| 164122 | +{yymsp[0].minor.yy394 = OE_Replace;} | |
| 164085 | 164123 | break; |
| 164086 | 164124 | case 79: /* cmd ::= DROP TABLE ifexists fullname */ |
| 164087 | 164125 | { |
| 164088 | - sqlite3DropTable(pParse, yymsp[0].minor.yy607, 0, yymsp[-1].minor.yy64); | |
| 164126 | + sqlite3DropTable(pParse, yymsp[0].minor.yy131, 0, yymsp[-1].minor.yy394); | |
| 164089 | 164127 | } |
| 164090 | 164128 | break; |
| 164091 | 164129 | case 82: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ |
| 164092 | 164130 | { |
| 164093 | - sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy562, yymsp[0].minor.yy303, yymsp[-7].minor.yy64, yymsp[-5].minor.yy64); | |
| 164131 | + sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy322, yymsp[0].minor.yy47, yymsp[-7].minor.yy394, yymsp[-5].minor.yy394); | |
| 164094 | 164132 | } |
| 164095 | 164133 | break; |
| 164096 | 164134 | case 83: /* cmd ::= DROP VIEW ifexists fullname */ |
| 164097 | 164135 | { |
| 164098 | - sqlite3DropTable(pParse, yymsp[0].minor.yy607, 1, yymsp[-1].minor.yy64); | |
| 164136 | + sqlite3DropTable(pParse, yymsp[0].minor.yy131, 1, yymsp[-1].minor.yy394); | |
| 164099 | 164137 | } |
| 164100 | 164138 | break; |
| 164101 | 164139 | case 84: /* cmd ::= select */ |
| 164102 | 164140 | { |
| 164103 | 164141 | SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0, 0}; |
| 164104 | - sqlite3Select(pParse, yymsp[0].minor.yy303, &dest); | |
| 164105 | - sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy303); | |
| 164142 | + sqlite3Select(pParse, yymsp[0].minor.yy47, &dest); | |
| 164143 | + sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy47); | |
| 164106 | 164144 | } |
| 164107 | 164145 | break; |
| 164108 | 164146 | case 85: /* select ::= WITH wqlist selectnowith */ |
| 164109 | -{yymsp[-2].minor.yy303 = attachWithToSelect(pParse,yymsp[0].minor.yy303,yymsp[-1].minor.yy43);} | |
| 164147 | +{yymsp[-2].minor.yy47 = attachWithToSelect(pParse,yymsp[0].minor.yy47,yymsp[-1].minor.yy521);} | |
| 164110 | 164148 | break; |
| 164111 | 164149 | case 86: /* select ::= WITH RECURSIVE wqlist selectnowith */ |
| 164112 | -{yymsp[-3].minor.yy303 = attachWithToSelect(pParse,yymsp[0].minor.yy303,yymsp[-1].minor.yy43);} | |
| 164150 | +{yymsp[-3].minor.yy47 = attachWithToSelect(pParse,yymsp[0].minor.yy47,yymsp[-1].minor.yy521);} | |
| 164113 | 164151 | break; |
| 164114 | 164152 | case 87: /* select ::= selectnowith */ |
| 164115 | 164153 | { |
| 164116 | - Select *p = yymsp[0].minor.yy303; | |
| 164154 | + Select *p = yymsp[0].minor.yy47; | |
| 164117 | 164155 | if( p ){ |
| 164118 | 164156 | parserDoubleLinkSelect(pParse, p); |
| 164119 | 164157 | } |
| 164120 | - yymsp[0].minor.yy303 = p; /*A-overwrites-X*/ | |
| 164158 | + yymsp[0].minor.yy47 = p; /*A-overwrites-X*/ | |
| 164121 | 164159 | } |
| 164122 | 164160 | break; |
| 164123 | 164161 | case 88: /* selectnowith ::= selectnowith multiselect_op oneselect */ |
| 164124 | 164162 | { |
| 164125 | - Select *pRhs = yymsp[0].minor.yy303; | |
| 164126 | - Select *pLhs = yymsp[-2].minor.yy303; | |
| 164163 | + Select *pRhs = yymsp[0].minor.yy47; | |
| 164164 | + Select *pLhs = yymsp[-2].minor.yy47; | |
| 164127 | 164165 | if( pRhs && pRhs->pPrior ){ |
| 164128 | 164166 | SrcList *pFrom; |
| 164129 | 164167 | Token x; |
| 164130 | 164168 | x.n = 0; |
| 164131 | 164169 | parserDoubleLinkSelect(pParse, pRhs); |
| 164132 | 164170 | pFrom = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&x,pRhs,0,0); |
| 164133 | 164171 | pRhs = sqlite3SelectNew(pParse,0,pFrom,0,0,0,0,0,0); |
| 164134 | 164172 | } |
| 164135 | 164173 | if( pRhs ){ |
| 164136 | - pRhs->op = (u8)yymsp[-1].minor.yy64; | |
| 164174 | + pRhs->op = (u8)yymsp[-1].minor.yy394; | |
| 164137 | 164175 | pRhs->pPrior = pLhs; |
| 164138 | 164176 | if( ALWAYS(pLhs) ) pLhs->selFlags &= ~SF_MultiValue; |
| 164139 | 164177 | pRhs->selFlags &= ~SF_MultiValue; |
| 164140 | - if( yymsp[-1].minor.yy64!=TK_ALL ) pParse->hasCompound = 1; | |
| 164178 | + if( yymsp[-1].minor.yy394!=TK_ALL ) pParse->hasCompound = 1; | |
| 164141 | 164179 | }else{ |
| 164142 | 164180 | sqlite3SelectDelete(pParse->db, pLhs); |
| 164143 | 164181 | } |
| 164144 | - yymsp[-2].minor.yy303 = pRhs; | |
| 164182 | + yymsp[-2].minor.yy47 = pRhs; | |
| 164145 | 164183 | } |
| 164146 | 164184 | break; |
| 164147 | 164185 | case 89: /* multiselect_op ::= UNION */ |
| 164148 | 164186 | case 91: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==91); |
| 164149 | -{yymsp[0].minor.yy64 = yymsp[0].major; /*A-overwrites-OP*/} | |
| 164187 | +{yymsp[0].minor.yy394 = yymsp[0].major; /*A-overwrites-OP*/} | |
| 164150 | 164188 | break; |
| 164151 | 164189 | case 90: /* multiselect_op ::= UNION ALL */ |
| 164152 | -{yymsp[-1].minor.yy64 = TK_ALL;} | |
| 164190 | +{yymsp[-1].minor.yy394 = TK_ALL;} | |
| 164153 | 164191 | break; |
| 164154 | 164192 | case 92: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ |
| 164155 | 164193 | { |
| 164156 | - yymsp[-8].minor.yy303 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy562,yymsp[-5].minor.yy607,yymsp[-4].minor.yy626,yymsp[-3].minor.yy562,yymsp[-2].minor.yy626,yymsp[-1].minor.yy562,yymsp[-7].minor.yy64,yymsp[0].minor.yy626); | |
| 164194 | + yymsp[-8].minor.yy47 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy322,yymsp[-5].minor.yy131,yymsp[-4].minor.yy528,yymsp[-3].minor.yy322,yymsp[-2].minor.yy528,yymsp[-1].minor.yy322,yymsp[-7].minor.yy394,yymsp[0].minor.yy528); | |
| 164157 | 164195 | } |
| 164158 | 164196 | break; |
| 164159 | 164197 | case 93: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ |
| 164160 | 164198 | { |
| 164161 | - yymsp[-9].minor.yy303 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy562,yymsp[-6].minor.yy607,yymsp[-5].minor.yy626,yymsp[-4].minor.yy562,yymsp[-3].minor.yy626,yymsp[-1].minor.yy562,yymsp[-8].minor.yy64,yymsp[0].minor.yy626); | |
| 164162 | - if( yymsp[-9].minor.yy303 ){ | |
| 164163 | - yymsp[-9].minor.yy303->pWinDefn = yymsp[-2].minor.yy375; | |
| 164199 | + yymsp[-9].minor.yy47 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy322,yymsp[-6].minor.yy131,yymsp[-5].minor.yy528,yymsp[-4].minor.yy322,yymsp[-3].minor.yy528,yymsp[-1].minor.yy322,yymsp[-8].minor.yy394,yymsp[0].minor.yy528); | |
| 164200 | + if( yymsp[-9].minor.yy47 ){ | |
| 164201 | + yymsp[-9].minor.yy47->pWinDefn = yymsp[-2].minor.yy41; | |
| 164164 | 164202 | }else{ |
| 164165 | - sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy375); | |
| 164203 | + sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy41); | |
| 164166 | 164204 | } |
| 164167 | 164205 | } |
| 164168 | 164206 | break; |
| 164169 | 164207 | case 94: /* values ::= VALUES LP nexprlist RP */ |
| 164170 | 164208 | { |
| 164171 | - yymsp[-3].minor.yy303 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy562,0,0,0,0,0,SF_Values,0); | |
| 164209 | + yymsp[-3].minor.yy47 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy322,0,0,0,0,0,SF_Values,0); | |
| 164172 | 164210 | } |
| 164173 | 164211 | break; |
| 164174 | 164212 | case 95: /* values ::= values COMMA LP nexprlist RP */ |
| 164175 | 164213 | { |
| 164176 | - Select *pRight, *pLeft = yymsp[-4].minor.yy303; | |
| 164177 | - pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy562,0,0,0,0,0,SF_Values|SF_MultiValue,0); | |
| 164214 | + Select *pRight, *pLeft = yymsp[-4].minor.yy47; | |
| 164215 | + pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy322,0,0,0,0,0,SF_Values|SF_MultiValue,0); | |
| 164178 | 164216 | if( ALWAYS(pLeft) ) pLeft->selFlags &= ~SF_MultiValue; |
| 164179 | 164217 | if( pRight ){ |
| 164180 | 164218 | pRight->op = TK_ALL; |
| 164181 | 164219 | pRight->pPrior = pLeft; |
| 164182 | - yymsp[-4].minor.yy303 = pRight; | |
| 164220 | + yymsp[-4].minor.yy47 = pRight; | |
| 164183 | 164221 | }else{ |
| 164184 | - yymsp[-4].minor.yy303 = pLeft; | |
| 164222 | + yymsp[-4].minor.yy47 = pLeft; | |
| 164185 | 164223 | } |
| 164186 | 164224 | } |
| 164187 | 164225 | break; |
| 164188 | 164226 | case 96: /* distinct ::= DISTINCT */ |
| 164189 | -{yymsp[0].minor.yy64 = SF_Distinct;} | |
| 164227 | +{yymsp[0].minor.yy394 = SF_Distinct;} | |
| 164190 | 164228 | break; |
| 164191 | 164229 | case 97: /* distinct ::= ALL */ |
| 164192 | -{yymsp[0].minor.yy64 = SF_All;} | |
| 164230 | +{yymsp[0].minor.yy394 = SF_All;} | |
| 164193 | 164231 | break; |
| 164194 | 164232 | case 99: /* sclp ::= */ |
| 164195 | 164233 | case 132: /* orderby_opt ::= */ yytestcase(yyruleno==132); |
| 164196 | 164234 | case 142: /* groupby_opt ::= */ yytestcase(yyruleno==142); |
| 164197 | - case 229: /* exprlist ::= */ yytestcase(yyruleno==229); | |
| 164198 | - case 232: /* paren_exprlist ::= */ yytestcase(yyruleno==232); | |
| 164199 | - case 237: /* eidlist_opt ::= */ yytestcase(yyruleno==237); | |
| 164200 | -{yymsp[1].minor.yy562 = 0;} | |
| 164235 | + case 230: /* exprlist ::= */ yytestcase(yyruleno==230); | |
| 164236 | + case 233: /* paren_exprlist ::= */ yytestcase(yyruleno==233); | |
| 164237 | + case 238: /* eidlist_opt ::= */ yytestcase(yyruleno==238); | |
| 164238 | +{yymsp[1].minor.yy322 = 0;} | |
| 164201 | 164239 | break; |
| 164202 | 164240 | case 100: /* selcollist ::= sclp scanpt expr scanpt as */ |
| 164203 | 164241 | { |
| 164204 | - yymsp[-4].minor.yy562 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy562, yymsp[-2].minor.yy626); | |
| 164205 | - if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy562, &yymsp[0].minor.yy0, 1); | |
| 164206 | - sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy562,yymsp[-3].minor.yy600,yymsp[-1].minor.yy600); | |
| 164242 | + yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy322, yymsp[-2].minor.yy528); | |
| 164243 | + if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy322, &yymsp[0].minor.yy0, 1); | |
| 164244 | + sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy322,yymsp[-3].minor.yy522,yymsp[-1].minor.yy522); | |
| 164207 | 164245 | } |
| 164208 | 164246 | break; |
| 164209 | 164247 | case 101: /* selcollist ::= sclp scanpt STAR */ |
| 164210 | 164248 | { |
| 164211 | 164249 | Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0); |
| 164212 | - yymsp[-2].minor.yy562 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy562, p); | |
| 164250 | + yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy322, p); | |
| 164213 | 164251 | } |
| 164214 | 164252 | break; |
| 164215 | 164253 | case 102: /* selcollist ::= sclp scanpt nm DOT STAR */ |
| 164216 | 164254 | { |
| 164217 | 164255 | Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0); |
| 164218 | 164256 | Expr *pLeft = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1); |
| 164219 | 164257 | Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight); |
| 164220 | - yymsp[-4].minor.yy562 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy562, pDot); | |
| 164258 | + yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, pDot); | |
| 164221 | 164259 | } |
| 164222 | 164260 | break; |
| 164223 | 164261 | case 103: /* as ::= AS nm */ |
| 164224 | 164262 | case 114: /* dbnm ::= DOT nm */ yytestcase(yyruleno==114); |
| 164225 | - case 253: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==253); | |
| 164226 | - case 254: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==254); | |
| 164263 | + case 254: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==254); | |
| 164264 | + case 255: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==255); | |
| 164227 | 164265 | {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;} |
| 164228 | 164266 | break; |
| 164229 | 164267 | case 105: /* from ::= */ |
| 164230 | 164268 | case 108: /* stl_prefix ::= */ yytestcase(yyruleno==108); |
| 164231 | -{yymsp[1].minor.yy607 = 0;} | |
| 164269 | +{yymsp[1].minor.yy131 = 0;} | |
| 164232 | 164270 | break; |
| 164233 | 164271 | case 106: /* from ::= FROM seltablist */ |
| 164234 | 164272 | { |
| 164235 | - yymsp[-1].minor.yy607 = yymsp[0].minor.yy607; | |
| 164236 | - sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy607); | |
| 164273 | + yymsp[-1].minor.yy131 = yymsp[0].minor.yy131; | |
| 164274 | + sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy131); | |
| 164237 | 164275 | } |
| 164238 | 164276 | break; |
| 164239 | 164277 | case 107: /* stl_prefix ::= seltablist joinop */ |
| 164240 | 164278 | { |
| 164241 | - if( ALWAYS(yymsp[-1].minor.yy607 && yymsp[-1].minor.yy607->nSrc>0) ) yymsp[-1].minor.yy607->a[yymsp[-1].minor.yy607->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy64; | |
| 164279 | + if( ALWAYS(yymsp[-1].minor.yy131 && yymsp[-1].minor.yy131->nSrc>0) ) yymsp[-1].minor.yy131->a[yymsp[-1].minor.yy131->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy394; | |
| 164242 | 164280 | } |
| 164243 | 164281 | break; |
| 164244 | 164282 | case 109: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ |
| 164245 | 164283 | { |
| 164246 | - yymsp[-6].minor.yy607 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy607,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy626,yymsp[0].minor.yy240); | |
| 164247 | - sqlite3SrcListIndexedBy(pParse, yymsp[-6].minor.yy607, &yymsp[-2].minor.yy0); | |
| 164284 | + yymsp[-6].minor.yy131 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy131,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy528,yymsp[0].minor.yy254); | |
| 164285 | + sqlite3SrcListIndexedBy(pParse, yymsp[-6].minor.yy131, &yymsp[-2].minor.yy0); | |
| 164248 | 164286 | } |
| 164249 | 164287 | break; |
| 164250 | 164288 | case 110: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */ |
| 164251 | 164289 | { |
| 164252 | - yymsp[-8].minor.yy607 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-8].minor.yy607,&yymsp[-7].minor.yy0,&yymsp[-6].minor.yy0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy626,yymsp[0].minor.yy240); | |
| 164253 | - sqlite3SrcListFuncArgs(pParse, yymsp[-8].minor.yy607, yymsp[-4].minor.yy562); | |
| 164290 | + yymsp[-8].minor.yy131 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-8].minor.yy131,&yymsp[-7].minor.yy0,&yymsp[-6].minor.yy0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy528,yymsp[0].minor.yy254); | |
| 164291 | + sqlite3SrcListFuncArgs(pParse, yymsp[-8].minor.yy131, yymsp[-4].minor.yy322); | |
| 164254 | 164292 | } |
| 164255 | 164293 | break; |
| 164256 | 164294 | case 111: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */ |
| 164257 | 164295 | { |
| 164258 | - yymsp[-6].minor.yy607 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy607,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy303,yymsp[-1].minor.yy626,yymsp[0].minor.yy240); | |
| 164296 | + yymsp[-6].minor.yy131 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy131,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy47,yymsp[-1].minor.yy528,yymsp[0].minor.yy254); | |
| 164259 | 164297 | } |
| 164260 | 164298 | break; |
| 164261 | 164299 | case 112: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ |
| 164262 | 164300 | { |
| 164263 | - if( yymsp[-6].minor.yy607==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy626==0 && yymsp[0].minor.yy240==0 ){ | |
| 164264 | - yymsp[-6].minor.yy607 = yymsp[-4].minor.yy607; | |
| 164265 | - }else if( yymsp[-4].minor.yy607->nSrc==1 ){ | |
| 164266 | - yymsp[-6].minor.yy607 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy607,0,0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy626,yymsp[0].minor.yy240); | |
| 164267 | - if( yymsp[-6].minor.yy607 ){ | |
| 164268 | - SrcItem *pNew = &yymsp[-6].minor.yy607->a[yymsp[-6].minor.yy607->nSrc-1]; | |
| 164269 | - SrcItem *pOld = yymsp[-4].minor.yy607->a; | |
| 164301 | + if( yymsp[-6].minor.yy131==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy528==0 && yymsp[0].minor.yy254==0 ){ | |
| 164302 | + yymsp[-6].minor.yy131 = yymsp[-4].minor.yy131; | |
| 164303 | + }else if( yymsp[-4].minor.yy131->nSrc==1 ){ | |
| 164304 | + yymsp[-6].minor.yy131 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy131,0,0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy528,yymsp[0].minor.yy254); | |
| 164305 | + if( yymsp[-6].minor.yy131 ){ | |
| 164306 | + SrcItem *pNew = &yymsp[-6].minor.yy131->a[yymsp[-6].minor.yy131->nSrc-1]; | |
| 164307 | + SrcItem *pOld = yymsp[-4].minor.yy131->a; | |
| 164270 | 164308 | pNew->zName = pOld->zName; |
| 164271 | 164309 | pNew->zDatabase = pOld->zDatabase; |
| 164272 | 164310 | pNew->pSelect = pOld->pSelect; |
| 164273 | 164311 | if( pOld->fg.isTabFunc ){ |
| 164274 | 164312 | pNew->u1.pFuncArg = pOld->u1.pFuncArg; |
| @@ -164277,240 +164315,240 @@ | ||
| 164277 | 164315 | pNew->fg.isTabFunc = 1; |
| 164278 | 164316 | } |
| 164279 | 164317 | pOld->zName = pOld->zDatabase = 0; |
| 164280 | 164318 | pOld->pSelect = 0; |
| 164281 | 164319 | } |
| 164282 | - sqlite3SrcListDelete(pParse->db, yymsp[-4].minor.yy607); | |
| 164320 | + sqlite3SrcListDelete(pParse->db, yymsp[-4].minor.yy131); | |
| 164283 | 164321 | }else{ |
| 164284 | 164322 | Select *pSubquery; |
| 164285 | - sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy607); | |
| 164286 | - pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy607,0,0,0,0,SF_NestedFrom,0); | |
| 164287 | - yymsp[-6].minor.yy607 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy607,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy626,yymsp[0].minor.yy240); | |
| 164323 | + sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy131); | |
| 164324 | + pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy131,0,0,0,0,SF_NestedFrom,0); | |
| 164325 | + yymsp[-6].minor.yy131 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy131,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy528,yymsp[0].minor.yy254); | |
| 164288 | 164326 | } |
| 164289 | 164327 | } |
| 164290 | 164328 | break; |
| 164291 | 164329 | case 113: /* dbnm ::= */ |
| 164292 | 164330 | case 127: /* indexed_opt ::= */ yytestcase(yyruleno==127); |
| 164293 | 164331 | {yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;} |
| 164294 | 164332 | break; |
| 164295 | 164333 | case 115: /* fullname ::= nm */ |
| 164296 | 164334 | { |
| 164297 | - yylhsminor.yy607 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); | |
| 164298 | - if( IN_RENAME_OBJECT && yylhsminor.yy607 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy607->a[0].zName, &yymsp[0].minor.yy0); | |
| 164335 | + yylhsminor.yy131 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); | |
| 164336 | + if( IN_RENAME_OBJECT && yylhsminor.yy131 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy131->a[0].zName, &yymsp[0].minor.yy0); | |
| 164299 | 164337 | } |
| 164300 | - yymsp[0].minor.yy607 = yylhsminor.yy607; | |
| 164338 | + yymsp[0].minor.yy131 = yylhsminor.yy131; | |
| 164301 | 164339 | break; |
| 164302 | 164340 | case 116: /* fullname ::= nm DOT nm */ |
| 164303 | 164341 | { |
| 164304 | - yylhsminor.yy607 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); | |
| 164305 | - if( IN_RENAME_OBJECT && yylhsminor.yy607 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy607->a[0].zName, &yymsp[0].minor.yy0); | |
| 164342 | + yylhsminor.yy131 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); | |
| 164343 | + if( IN_RENAME_OBJECT && yylhsminor.yy131 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy131->a[0].zName, &yymsp[0].minor.yy0); | |
| 164306 | 164344 | } |
| 164307 | - yymsp[-2].minor.yy607 = yylhsminor.yy607; | |
| 164345 | + yymsp[-2].minor.yy131 = yylhsminor.yy131; | |
| 164308 | 164346 | break; |
| 164309 | 164347 | case 117: /* xfullname ::= nm */ |
| 164310 | -{yymsp[0].minor.yy607 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/} | |
| 164348 | +{yymsp[0].minor.yy131 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/} | |
| 164311 | 164349 | break; |
| 164312 | 164350 | case 118: /* xfullname ::= nm DOT nm */ |
| 164313 | -{yymsp[-2].minor.yy607 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/} | |
| 164351 | +{yymsp[-2].minor.yy131 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/} | |
| 164314 | 164352 | break; |
| 164315 | 164353 | case 119: /* xfullname ::= nm DOT nm AS nm */ |
| 164316 | 164354 | { |
| 164317 | - yymsp[-4].minor.yy607 = sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/ | |
| 164318 | - if( yymsp[-4].minor.yy607 ) yymsp[-4].minor.yy607->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); | |
| 164355 | + yymsp[-4].minor.yy131 = sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/ | |
| 164356 | + if( yymsp[-4].minor.yy131 ) yymsp[-4].minor.yy131->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); | |
| 164319 | 164357 | } |
| 164320 | 164358 | break; |
| 164321 | 164359 | case 120: /* xfullname ::= nm AS nm */ |
| 164322 | 164360 | { |
| 164323 | - yymsp[-2].minor.yy607 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/ | |
| 164324 | - if( yymsp[-2].minor.yy607 ) yymsp[-2].minor.yy607->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); | |
| 164361 | + yymsp[-2].minor.yy131 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/ | |
| 164362 | + if( yymsp[-2].minor.yy131 ) yymsp[-2].minor.yy131->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); | |
| 164325 | 164363 | } |
| 164326 | 164364 | break; |
| 164327 | 164365 | case 121: /* joinop ::= COMMA|JOIN */ |
| 164328 | -{ yymsp[0].minor.yy64 = JT_INNER; } | |
| 164366 | +{ yymsp[0].minor.yy394 = JT_INNER; } | |
| 164329 | 164367 | break; |
| 164330 | 164368 | case 122: /* joinop ::= JOIN_KW JOIN */ |
| 164331 | -{yymsp[-1].minor.yy64 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/} | |
| 164369 | +{yymsp[-1].minor.yy394 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/} | |
| 164332 | 164370 | break; |
| 164333 | 164371 | case 123: /* joinop ::= JOIN_KW nm JOIN */ |
| 164334 | -{yymsp[-2].minor.yy64 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/} | |
| 164372 | +{yymsp[-2].minor.yy394 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/} | |
| 164335 | 164373 | break; |
| 164336 | 164374 | case 124: /* joinop ::= JOIN_KW nm nm JOIN */ |
| 164337 | -{yymsp[-3].minor.yy64 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/} | |
| 164375 | +{yymsp[-3].minor.yy394 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/} | |
| 164338 | 164376 | break; |
| 164339 | 164377 | case 125: /* on_opt ::= ON expr */ |
| 164340 | 164378 | case 145: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==145); |
| 164341 | 164379 | case 152: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==152); |
| 164342 | 164380 | case 154: /* where_opt_ret ::= WHERE expr */ yytestcase(yyruleno==154); |
| 164343 | - case 225: /* case_else ::= ELSE expr */ yytestcase(yyruleno==225); | |
| 164344 | - case 246: /* vinto ::= INTO expr */ yytestcase(yyruleno==246); | |
| 164345 | -{yymsp[-1].minor.yy626 = yymsp[0].minor.yy626;} | |
| 164381 | + case 226: /* case_else ::= ELSE expr */ yytestcase(yyruleno==226); | |
| 164382 | + case 247: /* vinto ::= INTO expr */ yytestcase(yyruleno==247); | |
| 164383 | +{yymsp[-1].minor.yy528 = yymsp[0].minor.yy528;} | |
| 164346 | 164384 | break; |
| 164347 | 164385 | case 126: /* on_opt ::= */ |
| 164348 | 164386 | case 144: /* having_opt ::= */ yytestcase(yyruleno==144); |
| 164349 | 164387 | case 146: /* limit_opt ::= */ yytestcase(yyruleno==146); |
| 164350 | 164388 | case 151: /* where_opt ::= */ yytestcase(yyruleno==151); |
| 164351 | 164389 | case 153: /* where_opt_ret ::= */ yytestcase(yyruleno==153); |
| 164352 | - case 226: /* case_else ::= */ yytestcase(yyruleno==226); | |
| 164353 | - case 228: /* case_operand ::= */ yytestcase(yyruleno==228); | |
| 164354 | - case 247: /* vinto ::= */ yytestcase(yyruleno==247); | |
| 164355 | -{yymsp[1].minor.yy626 = 0;} | |
| 164390 | + case 227: /* case_else ::= */ yytestcase(yyruleno==227); | |
| 164391 | + case 229: /* case_operand ::= */ yytestcase(yyruleno==229); | |
| 164392 | + case 248: /* vinto ::= */ yytestcase(yyruleno==248); | |
| 164393 | +{yymsp[1].minor.yy528 = 0;} | |
| 164356 | 164394 | break; |
| 164357 | 164395 | case 128: /* indexed_opt ::= INDEXED BY nm */ |
| 164358 | 164396 | {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;} |
| 164359 | 164397 | break; |
| 164360 | 164398 | case 129: /* indexed_opt ::= NOT INDEXED */ |
| 164361 | 164399 | {yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;} |
| 164362 | 164400 | break; |
| 164363 | 164401 | case 130: /* using_opt ::= USING LP idlist RP */ |
| 164364 | -{yymsp[-3].minor.yy240 = yymsp[-1].minor.yy240;} | |
| 164402 | +{yymsp[-3].minor.yy254 = yymsp[-1].minor.yy254;} | |
| 164365 | 164403 | break; |
| 164366 | 164404 | case 131: /* using_opt ::= */ |
| 164367 | 164405 | case 173: /* idlist_opt ::= */ yytestcase(yyruleno==173); |
| 164368 | -{yymsp[1].minor.yy240 = 0;} | |
| 164406 | +{yymsp[1].minor.yy254 = 0;} | |
| 164369 | 164407 | break; |
| 164370 | 164408 | case 133: /* orderby_opt ::= ORDER BY sortlist */ |
| 164371 | 164409 | case 143: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==143); |
| 164372 | -{yymsp[-2].minor.yy562 = yymsp[0].minor.yy562;} | |
| 164410 | +{yymsp[-2].minor.yy322 = yymsp[0].minor.yy322;} | |
| 164373 | 164411 | break; |
| 164374 | 164412 | case 134: /* sortlist ::= sortlist COMMA expr sortorder nulls */ |
| 164375 | 164413 | { |
| 164376 | - yymsp[-4].minor.yy562 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy562,yymsp[-2].minor.yy626); | |
| 164377 | - sqlite3ExprListSetSortOrder(yymsp[-4].minor.yy562,yymsp[-1].minor.yy64,yymsp[0].minor.yy64); | |
| 164414 | + yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322,yymsp[-2].minor.yy528); | |
| 164415 | + sqlite3ExprListSetSortOrder(yymsp[-4].minor.yy322,yymsp[-1].minor.yy394,yymsp[0].minor.yy394); | |
| 164378 | 164416 | } |
| 164379 | 164417 | break; |
| 164380 | 164418 | case 135: /* sortlist ::= expr sortorder nulls */ |
| 164381 | 164419 | { |
| 164382 | - yymsp[-2].minor.yy562 = sqlite3ExprListAppend(pParse,0,yymsp[-2].minor.yy626); /*A-overwrites-Y*/ | |
| 164383 | - sqlite3ExprListSetSortOrder(yymsp[-2].minor.yy562,yymsp[-1].minor.yy64,yymsp[0].minor.yy64); | |
| 164420 | + yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[-2].minor.yy528); /*A-overwrites-Y*/ | |
| 164421 | + sqlite3ExprListSetSortOrder(yymsp[-2].minor.yy322,yymsp[-1].minor.yy394,yymsp[0].minor.yy394); | |
| 164384 | 164422 | } |
| 164385 | 164423 | break; |
| 164386 | 164424 | case 136: /* sortorder ::= ASC */ |
| 164387 | -{yymsp[0].minor.yy64 = SQLITE_SO_ASC;} | |
| 164425 | +{yymsp[0].minor.yy394 = SQLITE_SO_ASC;} | |
| 164388 | 164426 | break; |
| 164389 | 164427 | case 137: /* sortorder ::= DESC */ |
| 164390 | -{yymsp[0].minor.yy64 = SQLITE_SO_DESC;} | |
| 164428 | +{yymsp[0].minor.yy394 = SQLITE_SO_DESC;} | |
| 164391 | 164429 | break; |
| 164392 | 164430 | case 138: /* sortorder ::= */ |
| 164393 | 164431 | case 141: /* nulls ::= */ yytestcase(yyruleno==141); |
| 164394 | -{yymsp[1].minor.yy64 = SQLITE_SO_UNDEFINED;} | |
| 164432 | +{yymsp[1].minor.yy394 = SQLITE_SO_UNDEFINED;} | |
| 164395 | 164433 | break; |
| 164396 | 164434 | case 139: /* nulls ::= NULLS FIRST */ |
| 164397 | -{yymsp[-1].minor.yy64 = SQLITE_SO_ASC;} | |
| 164435 | +{yymsp[-1].minor.yy394 = SQLITE_SO_ASC;} | |
| 164398 | 164436 | break; |
| 164399 | 164437 | case 140: /* nulls ::= NULLS LAST */ |
| 164400 | -{yymsp[-1].minor.yy64 = SQLITE_SO_DESC;} | |
| 164438 | +{yymsp[-1].minor.yy394 = SQLITE_SO_DESC;} | |
| 164401 | 164439 | break; |
| 164402 | 164440 | case 147: /* limit_opt ::= LIMIT expr */ |
| 164403 | -{yymsp[-1].minor.yy626 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy626,0);} | |
| 164441 | +{yymsp[-1].minor.yy528 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy528,0);} | |
| 164404 | 164442 | break; |
| 164405 | 164443 | case 148: /* limit_opt ::= LIMIT expr OFFSET expr */ |
| 164406 | -{yymsp[-3].minor.yy626 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy626,yymsp[0].minor.yy626);} | |
| 164444 | +{yymsp[-3].minor.yy528 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy528,yymsp[0].minor.yy528);} | |
| 164407 | 164445 | break; |
| 164408 | 164446 | case 149: /* limit_opt ::= LIMIT expr COMMA expr */ |
| 164409 | -{yymsp[-3].minor.yy626 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy626,yymsp[-2].minor.yy626);} | |
| 164447 | +{yymsp[-3].minor.yy528 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy528,yymsp[-2].minor.yy528);} | |
| 164410 | 164448 | break; |
| 164411 | 164449 | case 150: /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ |
| 164412 | 164450 | { |
| 164413 | - sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy607, &yymsp[-1].minor.yy0); | |
| 164414 | - sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy607,yymsp[0].minor.yy626,0,0); | |
| 164451 | + sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy131, &yymsp[-1].minor.yy0); | |
| 164452 | + sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy131,yymsp[0].minor.yy528,0,0); | |
| 164415 | 164453 | } |
| 164416 | 164454 | break; |
| 164417 | 164455 | case 155: /* where_opt_ret ::= RETURNING selcollist */ |
| 164418 | -{sqlite3AddReturning(pParse,yymsp[0].minor.yy562); yymsp[-1].minor.yy626 = 0;} | |
| 164456 | +{sqlite3AddReturning(pParse,yymsp[0].minor.yy322); yymsp[-1].minor.yy528 = 0;} | |
| 164419 | 164457 | break; |
| 164420 | 164458 | case 156: /* where_opt_ret ::= WHERE expr RETURNING selcollist */ |
| 164421 | -{sqlite3AddReturning(pParse,yymsp[0].minor.yy562); yymsp[-3].minor.yy626 = yymsp[-2].minor.yy626;} | |
| 164459 | +{sqlite3AddReturning(pParse,yymsp[0].minor.yy322); yymsp[-3].minor.yy528 = yymsp[-2].minor.yy528;} | |
| 164422 | 164460 | break; |
| 164423 | 164461 | case 157: /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ |
| 164424 | 164462 | { |
| 164425 | - sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy607, &yymsp[-4].minor.yy0); | |
| 164426 | - sqlite3ExprListCheckLength(pParse,yymsp[-2].minor.yy562,"set list"); | |
| 164427 | - yymsp[-5].minor.yy607 = sqlite3SrcListAppendList(pParse, yymsp[-5].minor.yy607, yymsp[-1].minor.yy607); | |
| 164428 | - sqlite3Update(pParse,yymsp[-5].minor.yy607,yymsp[-2].minor.yy562,yymsp[0].minor.yy626,yymsp[-6].minor.yy64,0,0,0); | |
| 164463 | + sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy131, &yymsp[-4].minor.yy0); | |
| 164464 | + sqlite3ExprListCheckLength(pParse,yymsp[-2].minor.yy322,"set list"); | |
| 164465 | + yymsp[-5].minor.yy131 = sqlite3SrcListAppendList(pParse, yymsp[-5].minor.yy131, yymsp[-1].minor.yy131); | |
| 164466 | + sqlite3Update(pParse,yymsp[-5].minor.yy131,yymsp[-2].minor.yy322,yymsp[0].minor.yy528,yymsp[-6].minor.yy394,0,0,0); | |
| 164429 | 164467 | } |
| 164430 | 164468 | break; |
| 164431 | 164469 | case 158: /* setlist ::= setlist COMMA nm EQ expr */ |
| 164432 | 164470 | { |
| 164433 | - yymsp[-4].minor.yy562 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy562, yymsp[0].minor.yy626); | |
| 164434 | - sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy562, &yymsp[-2].minor.yy0, 1); | |
| 164471 | + yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy322, yymsp[0].minor.yy528); | |
| 164472 | + sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy322, &yymsp[-2].minor.yy0, 1); | |
| 164435 | 164473 | } |
| 164436 | 164474 | break; |
| 164437 | 164475 | case 159: /* setlist ::= setlist COMMA LP idlist RP EQ expr */ |
| 164438 | 164476 | { |
| 164439 | - yymsp[-6].minor.yy562 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy562, yymsp[-3].minor.yy240, yymsp[0].minor.yy626); | |
| 164477 | + yymsp[-6].minor.yy322 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy322, yymsp[-3].minor.yy254, yymsp[0].minor.yy528); | |
| 164440 | 164478 | } |
| 164441 | 164479 | break; |
| 164442 | 164480 | case 160: /* setlist ::= nm EQ expr */ |
| 164443 | 164481 | { |
| 164444 | - yylhsminor.yy562 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy626); | |
| 164445 | - sqlite3ExprListSetName(pParse, yylhsminor.yy562, &yymsp[-2].minor.yy0, 1); | |
| 164482 | + yylhsminor.yy322 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy528); | |
| 164483 | + sqlite3ExprListSetName(pParse, yylhsminor.yy322, &yymsp[-2].minor.yy0, 1); | |
| 164446 | 164484 | } |
| 164447 | - yymsp[-2].minor.yy562 = yylhsminor.yy562; | |
| 164485 | + yymsp[-2].minor.yy322 = yylhsminor.yy322; | |
| 164448 | 164486 | break; |
| 164449 | 164487 | case 161: /* setlist ::= LP idlist RP EQ expr */ |
| 164450 | 164488 | { |
| 164451 | - yymsp[-4].minor.yy562 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy240, yymsp[0].minor.yy626); | |
| 164489 | + yymsp[-4].minor.yy322 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy254, yymsp[0].minor.yy528); | |
| 164452 | 164490 | } |
| 164453 | 164491 | break; |
| 164454 | 164492 | case 162: /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ |
| 164455 | 164493 | { |
| 164456 | - sqlite3Insert(pParse, yymsp[-3].minor.yy607, yymsp[-1].minor.yy303, yymsp[-2].minor.yy240, yymsp[-5].minor.yy64, yymsp[0].minor.yy138); | |
| 164494 | + sqlite3Insert(pParse, yymsp[-3].minor.yy131, yymsp[-1].minor.yy47, yymsp[-2].minor.yy254, yymsp[-5].minor.yy394, yymsp[0].minor.yy444); | |
| 164457 | 164495 | } |
| 164458 | 164496 | break; |
| 164459 | 164497 | case 163: /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ |
| 164460 | 164498 | { |
| 164461 | - sqlite3Insert(pParse, yymsp[-4].minor.yy607, 0, yymsp[-3].minor.yy240, yymsp[-6].minor.yy64, 0); | |
| 164499 | + sqlite3Insert(pParse, yymsp[-4].minor.yy131, 0, yymsp[-3].minor.yy254, yymsp[-6].minor.yy394, 0); | |
| 164462 | 164500 | } |
| 164463 | 164501 | break; |
| 164464 | 164502 | case 164: /* upsert ::= */ |
| 164465 | -{ yymsp[1].minor.yy138 = 0; } | |
| 164503 | +{ yymsp[1].minor.yy444 = 0; } | |
| 164466 | 164504 | break; |
| 164467 | 164505 | case 165: /* upsert ::= RETURNING selcollist */ |
| 164468 | -{ yymsp[-1].minor.yy138 = 0; sqlite3AddReturning(pParse,yymsp[0].minor.yy562); } | |
| 164506 | +{ yymsp[-1].minor.yy444 = 0; sqlite3AddReturning(pParse,yymsp[0].minor.yy322); } | |
| 164469 | 164507 | break; |
| 164470 | 164508 | case 166: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ |
| 164471 | -{ yymsp[-11].minor.yy138 = sqlite3UpsertNew(pParse->db,yymsp[-8].minor.yy562,yymsp[-6].minor.yy626,yymsp[-2].minor.yy562,yymsp[-1].minor.yy626,yymsp[0].minor.yy138);} | |
| 164509 | +{ yymsp[-11].minor.yy444 = sqlite3UpsertNew(pParse->db,yymsp[-8].minor.yy322,yymsp[-6].minor.yy528,yymsp[-2].minor.yy322,yymsp[-1].minor.yy528,yymsp[0].minor.yy444);} | |
| 164472 | 164510 | break; |
| 164473 | 164511 | case 167: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ |
| 164474 | -{ yymsp[-8].minor.yy138 = sqlite3UpsertNew(pParse->db,yymsp[-5].minor.yy562,yymsp[-3].minor.yy626,0,0,yymsp[0].minor.yy138); } | |
| 164512 | +{ yymsp[-8].minor.yy444 = sqlite3UpsertNew(pParse->db,yymsp[-5].minor.yy322,yymsp[-3].minor.yy528,0,0,yymsp[0].minor.yy444); } | |
| 164475 | 164513 | break; |
| 164476 | 164514 | case 168: /* upsert ::= ON CONFLICT DO NOTHING returning */ |
| 164477 | -{ yymsp[-4].minor.yy138 = sqlite3UpsertNew(pParse->db,0,0,0,0,0); } | |
| 164515 | +{ yymsp[-4].minor.yy444 = sqlite3UpsertNew(pParse->db,0,0,0,0,0); } | |
| 164478 | 164516 | break; |
| 164479 | 164517 | case 169: /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ |
| 164480 | -{ yymsp[-7].minor.yy138 = sqlite3UpsertNew(pParse->db,0,0,yymsp[-2].minor.yy562,yymsp[-1].minor.yy626,0);} | |
| 164518 | +{ yymsp[-7].minor.yy444 = sqlite3UpsertNew(pParse->db,0,0,yymsp[-2].minor.yy322,yymsp[-1].minor.yy528,0);} | |
| 164481 | 164519 | break; |
| 164482 | 164520 | case 170: /* returning ::= RETURNING selcollist */ |
| 164483 | -{sqlite3AddReturning(pParse,yymsp[0].minor.yy562);} | |
| 164521 | +{sqlite3AddReturning(pParse,yymsp[0].minor.yy322);} | |
| 164484 | 164522 | break; |
| 164485 | 164523 | case 174: /* idlist_opt ::= LP idlist RP */ |
| 164486 | -{yymsp[-2].minor.yy240 = yymsp[-1].minor.yy240;} | |
| 164524 | +{yymsp[-2].minor.yy254 = yymsp[-1].minor.yy254;} | |
| 164487 | 164525 | break; |
| 164488 | 164526 | case 175: /* idlist ::= idlist COMMA nm */ |
| 164489 | -{yymsp[-2].minor.yy240 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy240,&yymsp[0].minor.yy0);} | |
| 164527 | +{yymsp[-2].minor.yy254 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy254,&yymsp[0].minor.yy0);} | |
| 164490 | 164528 | break; |
| 164491 | 164529 | case 176: /* idlist ::= nm */ |
| 164492 | -{yymsp[0].minor.yy240 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/} | |
| 164530 | +{yymsp[0].minor.yy254 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/} | |
| 164493 | 164531 | break; |
| 164494 | 164532 | case 177: /* expr ::= LP expr RP */ |
| 164495 | -{yymsp[-2].minor.yy626 = yymsp[-1].minor.yy626;} | |
| 164533 | +{yymsp[-2].minor.yy528 = yymsp[-1].minor.yy528;} | |
| 164496 | 164534 | break; |
| 164497 | 164535 | case 178: /* expr ::= ID|INDEXED */ |
| 164498 | 164536 | case 179: /* expr ::= JOIN_KW */ yytestcase(yyruleno==179); |
| 164499 | -{yymsp[0].minor.yy626=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/} | |
| 164537 | +{yymsp[0].minor.yy528=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/} | |
| 164500 | 164538 | break; |
| 164501 | 164539 | case 180: /* expr ::= nm DOT nm */ |
| 164502 | 164540 | { |
| 164503 | 164541 | Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1); |
| 164504 | 164542 | Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1); |
| 164505 | 164543 | if( IN_RENAME_OBJECT ){ |
| 164506 | 164544 | sqlite3RenameTokenMap(pParse, (void*)temp2, &yymsp[0].minor.yy0); |
| 164507 | 164545 | sqlite3RenameTokenMap(pParse, (void*)temp1, &yymsp[-2].minor.yy0); |
| 164508 | 164546 | } |
| 164509 | - yylhsminor.yy626 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2); | |
| 164547 | + yylhsminor.yy528 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2); | |
| 164510 | 164548 | } |
| 164511 | - yymsp[-2].minor.yy626 = yylhsminor.yy626; | |
| 164549 | + yymsp[-2].minor.yy528 = yylhsminor.yy528; | |
| 164512 | 164550 | break; |
| 164513 | 164551 | case 181: /* expr ::= nm DOT nm DOT nm */ |
| 164514 | 164552 | { |
| 164515 | 164553 | Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-4].minor.yy0, 1); |
| 164516 | 164554 | Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1); |
| @@ -164518,768 +164556,776 @@ | ||
| 164518 | 164556 | Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3); |
| 164519 | 164557 | if( IN_RENAME_OBJECT ){ |
| 164520 | 164558 | sqlite3RenameTokenMap(pParse, (void*)temp3, &yymsp[0].minor.yy0); |
| 164521 | 164559 | sqlite3RenameTokenMap(pParse, (void*)temp2, &yymsp[-2].minor.yy0); |
| 164522 | 164560 | } |
| 164523 | - yylhsminor.yy626 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4); | |
| 164561 | + yylhsminor.yy528 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4); | |
| 164524 | 164562 | } |
| 164525 | - yymsp[-4].minor.yy626 = yylhsminor.yy626; | |
| 164563 | + yymsp[-4].minor.yy528 = yylhsminor.yy528; | |
| 164526 | 164564 | break; |
| 164527 | 164565 | case 182: /* term ::= NULL|FLOAT|BLOB */ |
| 164528 | 164566 | case 183: /* term ::= STRING */ yytestcase(yyruleno==183); |
| 164529 | -{yymsp[0].minor.yy626=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/} | |
| 164567 | +{yymsp[0].minor.yy528=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/} | |
| 164530 | 164568 | break; |
| 164531 | 164569 | case 184: /* term ::= INTEGER */ |
| 164532 | 164570 | { |
| 164533 | - yylhsminor.yy626 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1); | |
| 164571 | + yylhsminor.yy528 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1); | |
| 164534 | 164572 | } |
| 164535 | - yymsp[0].minor.yy626 = yylhsminor.yy626; | |
| 164573 | + yymsp[0].minor.yy528 = yylhsminor.yy528; | |
| 164536 | 164574 | break; |
| 164537 | 164575 | case 185: /* expr ::= VARIABLE */ |
| 164538 | 164576 | { |
| 164539 | 164577 | if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){ |
| 164540 | 164578 | u32 n = yymsp[0].minor.yy0.n; |
| 164541 | - yymsp[0].minor.yy626 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0); | |
| 164542 | - sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy626, n); | |
| 164579 | + yymsp[0].minor.yy528 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0); | |
| 164580 | + sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy528, n); | |
| 164543 | 164581 | }else{ |
| 164544 | 164582 | /* When doing a nested parse, one can include terms in an expression |
| 164545 | 164583 | ** that look like this: #1 #2 ... These terms refer to registers |
| 164546 | 164584 | ** in the virtual machine. #N is the N-th register. */ |
| 164547 | 164585 | Token t = yymsp[0].minor.yy0; /*A-overwrites-X*/ |
| 164548 | 164586 | assert( t.n>=2 ); |
| 164549 | 164587 | if( pParse->nested==0 ){ |
| 164550 | 164588 | sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &t); |
| 164551 | - yymsp[0].minor.yy626 = 0; | |
| 164589 | + yymsp[0].minor.yy528 = 0; | |
| 164552 | 164590 | }else{ |
| 164553 | - yymsp[0].minor.yy626 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0); | |
| 164554 | - if( yymsp[0].minor.yy626 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy626->iTable); | |
| 164591 | + yymsp[0].minor.yy528 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0); | |
| 164592 | + if( yymsp[0].minor.yy528 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy528->iTable); | |
| 164555 | 164593 | } |
| 164556 | 164594 | } |
| 164557 | 164595 | } |
| 164558 | 164596 | break; |
| 164559 | 164597 | case 186: /* expr ::= expr COLLATE ID|STRING */ |
| 164560 | 164598 | { |
| 164561 | - yymsp[-2].minor.yy626 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy626, &yymsp[0].minor.yy0, 1); | |
| 164599 | + yymsp[-2].minor.yy528 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy528, &yymsp[0].minor.yy0, 1); | |
| 164562 | 164600 | } |
| 164563 | 164601 | break; |
| 164564 | 164602 | case 187: /* expr ::= CAST LP expr AS typetoken RP */ |
| 164565 | 164603 | { |
| 164566 | - yymsp[-5].minor.yy626 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1); | |
| 164567 | - sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy626, yymsp[-3].minor.yy626, 0); | |
| 164604 | + yymsp[-5].minor.yy528 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1); | |
| 164605 | + sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy528, yymsp[-3].minor.yy528, 0); | |
| 164568 | 164606 | } |
| 164569 | 164607 | break; |
| 164570 | 164608 | case 188: /* expr ::= ID|INDEXED LP distinct exprlist RP */ |
| 164571 | 164609 | { |
| 164572 | - yylhsminor.yy626 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy562, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy64); | |
| 164610 | + yylhsminor.yy528 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy322, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy394); | |
| 164573 | 164611 | } |
| 164574 | - yymsp[-4].minor.yy626 = yylhsminor.yy626; | |
| 164612 | + yymsp[-4].minor.yy528 = yylhsminor.yy528; | |
| 164575 | 164613 | break; |
| 164576 | 164614 | case 189: /* expr ::= ID|INDEXED LP STAR RP */ |
| 164577 | 164615 | { |
| 164578 | - yylhsminor.yy626 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0); | |
| 164616 | + yylhsminor.yy528 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0); | |
| 164579 | 164617 | } |
| 164580 | - yymsp[-3].minor.yy626 = yylhsminor.yy626; | |
| 164618 | + yymsp[-3].minor.yy528 = yylhsminor.yy528; | |
| 164581 | 164619 | break; |
| 164582 | 164620 | case 190: /* expr ::= ID|INDEXED LP distinct exprlist RP filter_over */ |
| 164583 | 164621 | { |
| 164584 | - yylhsminor.yy626 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy562, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy64); | |
| 164585 | - sqlite3WindowAttach(pParse, yylhsminor.yy626, yymsp[0].minor.yy375); | |
| 164622 | + yylhsminor.yy528 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy322, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy394); | |
| 164623 | + sqlite3WindowAttach(pParse, yylhsminor.yy528, yymsp[0].minor.yy41); | |
| 164586 | 164624 | } |
| 164587 | - yymsp[-5].minor.yy626 = yylhsminor.yy626; | |
| 164625 | + yymsp[-5].minor.yy528 = yylhsminor.yy528; | |
| 164588 | 164626 | break; |
| 164589 | 164627 | case 191: /* expr ::= ID|INDEXED LP STAR RP filter_over */ |
| 164590 | 164628 | { |
| 164591 | - yylhsminor.yy626 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0); | |
| 164592 | - sqlite3WindowAttach(pParse, yylhsminor.yy626, yymsp[0].minor.yy375); | |
| 164629 | + yylhsminor.yy528 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0); | |
| 164630 | + sqlite3WindowAttach(pParse, yylhsminor.yy528, yymsp[0].minor.yy41); | |
| 164593 | 164631 | } |
| 164594 | - yymsp[-4].minor.yy626 = yylhsminor.yy626; | |
| 164632 | + yymsp[-4].minor.yy528 = yylhsminor.yy528; | |
| 164595 | 164633 | break; |
| 164596 | 164634 | case 192: /* term ::= CTIME_KW */ |
| 164597 | 164635 | { |
| 164598 | - yylhsminor.yy626 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0); | |
| 164636 | + yylhsminor.yy528 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0); | |
| 164599 | 164637 | } |
| 164600 | - yymsp[0].minor.yy626 = yylhsminor.yy626; | |
| 164638 | + yymsp[0].minor.yy528 = yylhsminor.yy528; | |
| 164601 | 164639 | break; |
| 164602 | 164640 | case 193: /* expr ::= LP nexprlist COMMA expr RP */ |
| 164603 | 164641 | { |
| 164604 | - ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy562, yymsp[-1].minor.yy626); | |
| 164605 | - yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0); | |
| 164606 | - if( yymsp[-4].minor.yy626 ){ | |
| 164607 | - yymsp[-4].minor.yy626->x.pList = pList; | |
| 164642 | + ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy322, yymsp[-1].minor.yy528); | |
| 164643 | + yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0); | |
| 164644 | + if( yymsp[-4].minor.yy528 ){ | |
| 164645 | + yymsp[-4].minor.yy528->x.pList = pList; | |
| 164608 | 164646 | if( ALWAYS(pList->nExpr) ){ |
| 164609 | - yymsp[-4].minor.yy626->flags |= pList->a[0].pExpr->flags & EP_Propagate; | |
| 164647 | + yymsp[-4].minor.yy528->flags |= pList->a[0].pExpr->flags & EP_Propagate; | |
| 164610 | 164648 | } |
| 164611 | 164649 | }else{ |
| 164612 | 164650 | sqlite3ExprListDelete(pParse->db, pList); |
| 164613 | 164651 | } |
| 164614 | 164652 | } |
| 164615 | 164653 | break; |
| 164616 | 164654 | case 194: /* expr ::= expr AND expr */ |
| 164617 | -{yymsp[-2].minor.yy626=sqlite3ExprAnd(pParse,yymsp[-2].minor.yy626,yymsp[0].minor.yy626);} | |
| 164655 | +{yymsp[-2].minor.yy528=sqlite3ExprAnd(pParse,yymsp[-2].minor.yy528,yymsp[0].minor.yy528);} | |
| 164618 | 164656 | break; |
| 164619 | 164657 | case 195: /* expr ::= expr OR expr */ |
| 164620 | 164658 | case 196: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==196); |
| 164621 | 164659 | case 197: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==197); |
| 164622 | 164660 | case 198: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==198); |
| 164623 | 164661 | case 199: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==199); |
| 164624 | 164662 | case 200: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==200); |
| 164625 | 164663 | case 201: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==201); |
| 164626 | -{yymsp[-2].minor.yy626=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy626,yymsp[0].minor.yy626);} | |
| 164664 | +{yymsp[-2].minor.yy528=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy528,yymsp[0].minor.yy528);} | |
| 164627 | 164665 | break; |
| 164628 | 164666 | case 202: /* likeop ::= NOT LIKE_KW|MATCH */ |
| 164629 | 164667 | {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/} |
| 164630 | 164668 | break; |
| 164631 | 164669 | case 203: /* expr ::= expr likeop expr */ |
| 164632 | 164670 | { |
| 164633 | 164671 | ExprList *pList; |
| 164634 | 164672 | int bNot = yymsp[-1].minor.yy0.n & 0x80000000; |
| 164635 | 164673 | yymsp[-1].minor.yy0.n &= 0x7fffffff; |
| 164636 | - pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy626); | |
| 164637 | - pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy626); | |
| 164638 | - yymsp[-2].minor.yy626 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0); | |
| 164639 | - if( bNot ) yymsp[-2].minor.yy626 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy626, 0); | |
| 164640 | - if( yymsp[-2].minor.yy626 ) yymsp[-2].minor.yy626->flags |= EP_InfixFunc; | |
| 164674 | + pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy528); | |
| 164675 | + pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy528); | |
| 164676 | + yymsp[-2].minor.yy528 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0); | |
| 164677 | + if( bNot ) yymsp[-2].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy528, 0); | |
| 164678 | + if( yymsp[-2].minor.yy528 ) yymsp[-2].minor.yy528->flags |= EP_InfixFunc; | |
| 164641 | 164679 | } |
| 164642 | 164680 | break; |
| 164643 | 164681 | case 204: /* expr ::= expr likeop expr ESCAPE expr */ |
| 164644 | 164682 | { |
| 164645 | 164683 | ExprList *pList; |
| 164646 | 164684 | int bNot = yymsp[-3].minor.yy0.n & 0x80000000; |
| 164647 | 164685 | yymsp[-3].minor.yy0.n &= 0x7fffffff; |
| 164648 | - pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy626); | |
| 164649 | - pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy626); | |
| 164650 | - pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy626); | |
| 164651 | - yymsp[-4].minor.yy626 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0); | |
| 164652 | - if( bNot ) yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy626, 0); | |
| 164653 | - if( yymsp[-4].minor.yy626 ) yymsp[-4].minor.yy626->flags |= EP_InfixFunc; | |
| 164686 | + pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy528); | |
| 164687 | + pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy528); | |
| 164688 | + pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy528); | |
| 164689 | + yymsp[-4].minor.yy528 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0); | |
| 164690 | + if( bNot ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); | |
| 164691 | + if( yymsp[-4].minor.yy528 ) yymsp[-4].minor.yy528->flags |= EP_InfixFunc; | |
| 164654 | 164692 | } |
| 164655 | 164693 | break; |
| 164656 | 164694 | case 205: /* expr ::= expr ISNULL|NOTNULL */ |
| 164657 | -{yymsp[-1].minor.yy626 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy626,0);} | |
| 164695 | +{yymsp[-1].minor.yy528 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy528,0);} | |
| 164658 | 164696 | break; |
| 164659 | 164697 | case 206: /* expr ::= expr NOT NULL */ |
| 164660 | -{yymsp[-2].minor.yy626 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy626,0);} | |
| 164698 | +{yymsp[-2].minor.yy528 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy528,0);} | |
| 164661 | 164699 | break; |
| 164662 | 164700 | case 207: /* expr ::= expr IS expr */ |
| 164663 | 164701 | { |
| 164664 | - yymsp[-2].minor.yy626 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy626,yymsp[0].minor.yy626); | |
| 164665 | - binaryToUnaryIfNull(pParse, yymsp[0].minor.yy626, yymsp[-2].minor.yy626, TK_ISNULL); | |
| 164702 | + yymsp[-2].minor.yy528 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy528,yymsp[0].minor.yy528); | |
| 164703 | + binaryToUnaryIfNull(pParse, yymsp[0].minor.yy528, yymsp[-2].minor.yy528, TK_ISNULL); | |
| 164666 | 164704 | } |
| 164667 | 164705 | break; |
| 164668 | 164706 | case 208: /* expr ::= expr IS NOT expr */ |
| 164669 | 164707 | { |
| 164670 | - yymsp[-3].minor.yy626 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy626,yymsp[0].minor.yy626); | |
| 164671 | - binaryToUnaryIfNull(pParse, yymsp[0].minor.yy626, yymsp[-3].minor.yy626, TK_NOTNULL); | |
| 164708 | + yymsp[-3].minor.yy528 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy528,yymsp[0].minor.yy528); | |
| 164709 | + binaryToUnaryIfNull(pParse, yymsp[0].minor.yy528, yymsp[-3].minor.yy528, TK_NOTNULL); | |
| 164672 | 164710 | } |
| 164673 | 164711 | break; |
| 164674 | 164712 | case 209: /* expr ::= NOT expr */ |
| 164675 | 164713 | case 210: /* expr ::= BITNOT expr */ yytestcase(yyruleno==210); |
| 164676 | -{yymsp[-1].minor.yy626 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy626, 0);/*A-overwrites-B*/} | |
| 164714 | +{yymsp[-1].minor.yy528 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy528, 0);/*A-overwrites-B*/} | |
| 164677 | 164715 | break; |
| 164678 | 164716 | case 211: /* expr ::= PLUS|MINUS expr */ |
| 164679 | 164717 | { |
| 164680 | - yymsp[-1].minor.yy626 = sqlite3PExpr(pParse, yymsp[-1].major==TK_PLUS ? TK_UPLUS : TK_UMINUS, yymsp[0].minor.yy626, 0); | |
| 164718 | + yymsp[-1].minor.yy528 = sqlite3PExpr(pParse, yymsp[-1].major==TK_PLUS ? TK_UPLUS : TK_UMINUS, yymsp[0].minor.yy528, 0); | |
| 164681 | 164719 | /*A-overwrites-B*/ |
| 164682 | 164720 | } |
| 164683 | 164721 | break; |
| 164684 | - case 212: /* between_op ::= BETWEEN */ | |
| 164685 | - case 215: /* in_op ::= IN */ yytestcase(yyruleno==215); | |
| 164686 | -{yymsp[0].minor.yy64 = 0;} | |
| 164722 | + case 212: /* expr ::= expr PTR expr */ | |
| 164723 | +{ | |
| 164724 | + ExprList *pList = sqlite3ExprListAppend(pParse, 0, yymsp[-2].minor.yy528); | |
| 164725 | + pList = sqlite3ExprListAppend(pParse, pList, yymsp[0].minor.yy528); | |
| 164726 | + yylhsminor.yy528 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0); | |
| 164727 | +} | |
| 164728 | + yymsp[-2].minor.yy528 = yylhsminor.yy528; | |
| 164687 | 164729 | break; |
| 164688 | - case 214: /* expr ::= expr between_op expr AND expr */ | |
| 164730 | + case 213: /* between_op ::= BETWEEN */ | |
| 164731 | + case 216: /* in_op ::= IN */ yytestcase(yyruleno==216); | |
| 164732 | +{yymsp[0].minor.yy394 = 0;} | |
| 164733 | + break; | |
| 164734 | + case 215: /* expr ::= expr between_op expr AND expr */ | |
| 164689 | 164735 | { |
| 164690 | - ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy626); | |
| 164691 | - pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy626); | |
| 164692 | - yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy626, 0); | |
| 164693 | - if( yymsp[-4].minor.yy626 ){ | |
| 164694 | - yymsp[-4].minor.yy626->x.pList = pList; | |
| 164736 | + ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy528); | |
| 164737 | + pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy528); | |
| 164738 | + yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy528, 0); | |
| 164739 | + if( yymsp[-4].minor.yy528 ){ | |
| 164740 | + yymsp[-4].minor.yy528->x.pList = pList; | |
| 164695 | 164741 | }else{ |
| 164696 | 164742 | sqlite3ExprListDelete(pParse->db, pList); |
| 164697 | 164743 | } |
| 164698 | - if( yymsp[-3].minor.yy64 ) yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy626, 0); | |
| 164744 | + if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); | |
| 164699 | 164745 | } |
| 164700 | 164746 | break; |
| 164701 | - case 217: /* expr ::= expr in_op LP exprlist RP */ | |
| 164747 | + case 218: /* expr ::= expr in_op LP exprlist RP */ | |
| 164702 | 164748 | { |
| 164703 | - if( yymsp[-1].minor.yy562==0 ){ | |
| 164749 | + if( yymsp[-1].minor.yy322==0 ){ | |
| 164704 | 164750 | /* Expressions of the form |
| 164705 | 164751 | ** |
| 164706 | 164752 | ** expr1 IN () |
| 164707 | 164753 | ** expr1 NOT IN () |
| 164708 | 164754 | ** |
| 164709 | 164755 | ** simplify to constants 0 (false) and 1 (true), respectively, |
| 164710 | 164756 | ** regardless of the value of expr1. |
| 164711 | 164757 | */ |
| 164712 | - sqlite3ExprUnmapAndDelete(pParse, yymsp[-4].minor.yy626); | |
| 164713 | - yymsp[-4].minor.yy626 = sqlite3Expr(pParse->db, TK_INTEGER, yymsp[-3].minor.yy64 ? "1" : "0"); | |
| 164758 | + sqlite3ExprUnmapAndDelete(pParse, yymsp[-4].minor.yy528); | |
| 164759 | + yymsp[-4].minor.yy528 = sqlite3Expr(pParse->db, TK_INTEGER, yymsp[-3].minor.yy394 ? "1" : "0"); | |
| 164714 | 164760 | }else{ |
| 164715 | - Expr *pRHS = yymsp[-1].minor.yy562->a[0].pExpr; | |
| 164716 | - if( yymsp[-1].minor.yy562->nExpr==1 && sqlite3ExprIsConstant(pRHS) && yymsp[-4].minor.yy626->op!=TK_VECTOR ){ | |
| 164717 | - yymsp[-1].minor.yy562->a[0].pExpr = 0; | |
| 164718 | - sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy562); | |
| 164761 | + Expr *pRHS = yymsp[-1].minor.yy322->a[0].pExpr; | |
| 164762 | + if( yymsp[-1].minor.yy322->nExpr==1 && sqlite3ExprIsConstant(pRHS) && yymsp[-4].minor.yy528->op!=TK_VECTOR ){ | |
| 164763 | + yymsp[-1].minor.yy322->a[0].pExpr = 0; | |
| 164764 | + sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy322); | |
| 164719 | 164765 | pRHS = sqlite3PExpr(pParse, TK_UPLUS, pRHS, 0); |
| 164720 | - yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_EQ, yymsp[-4].minor.yy626, pRHS); | |
| 164766 | + yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_EQ, yymsp[-4].minor.yy528, pRHS); | |
| 164721 | 164767 | }else{ |
| 164722 | - yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy626, 0); | |
| 164723 | - if( yymsp[-4].minor.yy626==0 ){ | |
| 164724 | - sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy562); | |
| 164725 | - }else if( yymsp[-4].minor.yy626->pLeft->op==TK_VECTOR ){ | |
| 164726 | - int nExpr = yymsp[-4].minor.yy626->pLeft->x.pList->nExpr; | |
| 164727 | - Select *pSelectRHS = sqlite3ExprListToValues(pParse, nExpr, yymsp[-1].minor.yy562); | |
| 164768 | + yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy528, 0); | |
| 164769 | + if( yymsp[-4].minor.yy528==0 ){ | |
| 164770 | + sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy322); | |
| 164771 | + }else if( yymsp[-4].minor.yy528->pLeft->op==TK_VECTOR ){ | |
| 164772 | + int nExpr = yymsp[-4].minor.yy528->pLeft->x.pList->nExpr; | |
| 164773 | + Select *pSelectRHS = sqlite3ExprListToValues(pParse, nExpr, yymsp[-1].minor.yy322); | |
| 164728 | 164774 | if( pSelectRHS ){ |
| 164729 | 164775 | parserDoubleLinkSelect(pParse, pSelectRHS); |
| 164730 | - sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy626, pSelectRHS); | |
| 164731 | - } | |
| 164732 | - }else{ | |
| 164733 | - yymsp[-4].minor.yy626->x.pList = yymsp[-1].minor.yy562; | |
| 164734 | - sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy626); | |
| 164735 | - } | |
| 164736 | - } | |
| 164737 | - if( yymsp[-3].minor.yy64 ) yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy626, 0); | |
| 164738 | - } | |
| 164739 | - } | |
| 164740 | - break; | |
| 164741 | - case 218: /* expr ::= LP select RP */ | |
| 164742 | -{ | |
| 164743 | - yymsp[-2].minor.yy626 = sqlite3PExpr(pParse, TK_SELECT, 0, 0); | |
| 164744 | - sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy626, yymsp[-1].minor.yy303); | |
| 164745 | - } | |
| 164746 | - break; | |
| 164747 | - case 219: /* expr ::= expr in_op LP select RP */ | |
| 164748 | -{ | |
| 164749 | - yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy626, 0); | |
| 164750 | - sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy626, yymsp[-1].minor.yy303); | |
| 164751 | - if( yymsp[-3].minor.yy64 ) yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy626, 0); | |
| 164752 | - } | |
| 164753 | - break; | |
| 164754 | - case 220: /* expr ::= expr in_op nm dbnm paren_exprlist */ | |
| 164776 | + sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy528, pSelectRHS); | |
| 164777 | + } | |
| 164778 | + }else{ | |
| 164779 | + yymsp[-4].minor.yy528->x.pList = yymsp[-1].minor.yy322; | |
| 164780 | + sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy528); | |
| 164781 | + } | |
| 164782 | + } | |
| 164783 | + if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); | |
| 164784 | + } | |
| 164785 | + } | |
| 164786 | + break; | |
| 164787 | + case 219: /* expr ::= LP select RP */ | |
| 164788 | +{ | |
| 164789 | + yymsp[-2].minor.yy528 = sqlite3PExpr(pParse, TK_SELECT, 0, 0); | |
| 164790 | + sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy528, yymsp[-1].minor.yy47); | |
| 164791 | + } | |
| 164792 | + break; | |
| 164793 | + case 220: /* expr ::= expr in_op LP select RP */ | |
| 164794 | +{ | |
| 164795 | + yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy528, 0); | |
| 164796 | + sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy528, yymsp[-1].minor.yy47); | |
| 164797 | + if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); | |
| 164798 | + } | |
| 164799 | + break; | |
| 164800 | + case 221: /* expr ::= expr in_op nm dbnm paren_exprlist */ | |
| 164755 | 164801 | { |
| 164756 | 164802 | SrcList *pSrc = sqlite3SrcListAppend(pParse, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); |
| 164757 | 164803 | Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0); |
| 164758 | - if( yymsp[0].minor.yy562 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy562); | |
| 164759 | - yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy626, 0); | |
| 164760 | - sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy626, pSelect); | |
| 164761 | - if( yymsp[-3].minor.yy64 ) yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy626, 0); | |
| 164804 | + if( yymsp[0].minor.yy322 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy322); | |
| 164805 | + yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy528, 0); | |
| 164806 | + sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy528, pSelect); | |
| 164807 | + if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); | |
| 164762 | 164808 | } |
| 164763 | 164809 | break; |
| 164764 | - case 221: /* expr ::= EXISTS LP select RP */ | |
| 164810 | + case 222: /* expr ::= EXISTS LP select RP */ | |
| 164765 | 164811 | { |
| 164766 | 164812 | Expr *p; |
| 164767 | - p = yymsp[-3].minor.yy626 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0); | |
| 164768 | - sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy303); | |
| 164769 | - } | |
| 164770 | - break; | |
| 164771 | - case 222: /* expr ::= CASE case_operand case_exprlist case_else END */ | |
| 164772 | -{ | |
| 164773 | - yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy626, 0); | |
| 164774 | - if( yymsp[-4].minor.yy626 ){ | |
| 164775 | - yymsp[-4].minor.yy626->x.pList = yymsp[-1].minor.yy626 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy562,yymsp[-1].minor.yy626) : yymsp[-2].minor.yy562; | |
| 164776 | - sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy626); | |
| 164777 | - }else{ | |
| 164778 | - sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy562); | |
| 164779 | - sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy626); | |
| 164780 | - } | |
| 164781 | -} | |
| 164782 | - break; | |
| 164783 | - case 223: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ | |
| 164784 | -{ | |
| 164785 | - yymsp[-4].minor.yy562 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy562, yymsp[-2].minor.yy626); | |
| 164786 | - yymsp[-4].minor.yy562 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy562, yymsp[0].minor.yy626); | |
| 164787 | -} | |
| 164788 | - break; | |
| 164789 | - case 224: /* case_exprlist ::= WHEN expr THEN expr */ | |
| 164790 | -{ | |
| 164791 | - yymsp[-3].minor.yy562 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy626); | |
| 164792 | - yymsp[-3].minor.yy562 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy562, yymsp[0].minor.yy626); | |
| 164793 | -} | |
| 164794 | - break; | |
| 164795 | - case 227: /* case_operand ::= expr */ | |
| 164796 | -{yymsp[0].minor.yy626 = yymsp[0].minor.yy626; /*A-overwrites-X*/} | |
| 164797 | - break; | |
| 164798 | - case 230: /* nexprlist ::= nexprlist COMMA expr */ | |
| 164799 | -{yymsp[-2].minor.yy562 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy562,yymsp[0].minor.yy626);} | |
| 164800 | - break; | |
| 164801 | - case 231: /* nexprlist ::= expr */ | |
| 164802 | -{yymsp[0].minor.yy562 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy626); /*A-overwrites-Y*/} | |
| 164803 | - break; | |
| 164804 | - case 233: /* paren_exprlist ::= LP exprlist RP */ | |
| 164805 | - case 238: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==238); | |
| 164806 | -{yymsp[-2].minor.yy562 = yymsp[-1].minor.yy562;} | |
| 164807 | - break; | |
| 164808 | - case 234: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ | |
| 164813 | + p = yymsp[-3].minor.yy528 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0); | |
| 164814 | + sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy47); | |
| 164815 | + } | |
| 164816 | + break; | |
| 164817 | + case 223: /* expr ::= CASE case_operand case_exprlist case_else END */ | |
| 164818 | +{ | |
| 164819 | + yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy528, 0); | |
| 164820 | + if( yymsp[-4].minor.yy528 ){ | |
| 164821 | + yymsp[-4].minor.yy528->x.pList = yymsp[-1].minor.yy528 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[-1].minor.yy528) : yymsp[-2].minor.yy322; | |
| 164822 | + sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy528); | |
| 164823 | + }else{ | |
| 164824 | + sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy322); | |
| 164825 | + sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy528); | |
| 164826 | + } | |
| 164827 | +} | |
| 164828 | + break; | |
| 164829 | + case 224: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ | |
| 164830 | +{ | |
| 164831 | + yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[-2].minor.yy528); | |
| 164832 | + yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[0].minor.yy528); | |
| 164833 | +} | |
| 164834 | + break; | |
| 164835 | + case 225: /* case_exprlist ::= WHEN expr THEN expr */ | |
| 164836 | +{ | |
| 164837 | + yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy528); | |
| 164838 | + yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322, yymsp[0].minor.yy528); | |
| 164839 | +} | |
| 164840 | + break; | |
| 164841 | + case 228: /* case_operand ::= expr */ | |
| 164842 | +{yymsp[0].minor.yy528 = yymsp[0].minor.yy528; /*A-overwrites-X*/} | |
| 164843 | + break; | |
| 164844 | + case 231: /* nexprlist ::= nexprlist COMMA expr */ | |
| 164845 | +{yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[0].minor.yy528);} | |
| 164846 | + break; | |
| 164847 | + case 232: /* nexprlist ::= expr */ | |
| 164848 | +{yymsp[0].minor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy528); /*A-overwrites-Y*/} | |
| 164849 | + break; | |
| 164850 | + case 234: /* paren_exprlist ::= LP exprlist RP */ | |
| 164851 | + case 239: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==239); | |
| 164852 | +{yymsp[-2].minor.yy322 = yymsp[-1].minor.yy322;} | |
| 164853 | + break; | |
| 164854 | + case 235: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ | |
| 164809 | 164855 | { |
| 164810 | 164856 | sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, |
| 164811 | - sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy562, yymsp[-10].minor.yy64, | |
| 164812 | - &yymsp[-11].minor.yy0, yymsp[0].minor.yy626, SQLITE_SO_ASC, yymsp[-8].minor.yy64, SQLITE_IDXTYPE_APPDEF); | |
| 164857 | + sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy322, yymsp[-10].minor.yy394, | |
| 164858 | + &yymsp[-11].minor.yy0, yymsp[0].minor.yy528, SQLITE_SO_ASC, yymsp[-8].minor.yy394, SQLITE_IDXTYPE_APPDEF); | |
| 164813 | 164859 | if( IN_RENAME_OBJECT && pParse->pNewIndex ){ |
| 164814 | 164860 | sqlite3RenameTokenMap(pParse, pParse->pNewIndex->zName, &yymsp[-4].minor.yy0); |
| 164815 | 164861 | } |
| 164816 | 164862 | } |
| 164817 | 164863 | break; |
| 164818 | - case 235: /* uniqueflag ::= UNIQUE */ | |
| 164819 | - case 277: /* raisetype ::= ABORT */ yytestcase(yyruleno==277); | |
| 164820 | -{yymsp[0].minor.yy64 = OE_Abort;} | |
| 164821 | - break; | |
| 164822 | - case 236: /* uniqueflag ::= */ | |
| 164823 | -{yymsp[1].minor.yy64 = OE_None;} | |
| 164824 | - break; | |
| 164825 | - case 239: /* eidlist ::= eidlist COMMA nm collate sortorder */ | |
| 164826 | -{ | |
| 164827 | - yymsp[-4].minor.yy562 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy562, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy64, yymsp[0].minor.yy64); | |
| 164828 | -} | |
| 164829 | - break; | |
| 164830 | - case 240: /* eidlist ::= nm collate sortorder */ | |
| 164831 | -{ | |
| 164832 | - yymsp[-2].minor.yy562 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy64, yymsp[0].minor.yy64); /*A-overwrites-Y*/ | |
| 164833 | -} | |
| 164834 | - break; | |
| 164835 | - case 243: /* cmd ::= DROP INDEX ifexists fullname */ | |
| 164836 | -{sqlite3DropIndex(pParse, yymsp[0].minor.yy607, yymsp[-1].minor.yy64);} | |
| 164837 | - break; | |
| 164838 | - case 244: /* cmd ::= VACUUM vinto */ | |
| 164839 | -{sqlite3Vacuum(pParse,0,yymsp[0].minor.yy626);} | |
| 164840 | - break; | |
| 164841 | - case 245: /* cmd ::= VACUUM nm vinto */ | |
| 164842 | -{sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy626);} | |
| 164843 | - break; | |
| 164844 | - case 248: /* cmd ::= PRAGMA nm dbnm */ | |
| 164864 | + case 236: /* uniqueflag ::= UNIQUE */ | |
| 164865 | + case 278: /* raisetype ::= ABORT */ yytestcase(yyruleno==278); | |
| 164866 | +{yymsp[0].minor.yy394 = OE_Abort;} | |
| 164867 | + break; | |
| 164868 | + case 237: /* uniqueflag ::= */ | |
| 164869 | +{yymsp[1].minor.yy394 = OE_None;} | |
| 164870 | + break; | |
| 164871 | + case 240: /* eidlist ::= eidlist COMMA nm collate sortorder */ | |
| 164872 | +{ | |
| 164873 | + yymsp[-4].minor.yy322 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy322, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy394, yymsp[0].minor.yy394); | |
| 164874 | +} | |
| 164875 | + break; | |
| 164876 | + case 241: /* eidlist ::= nm collate sortorder */ | |
| 164877 | +{ | |
| 164878 | + yymsp[-2].minor.yy322 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy394, yymsp[0].minor.yy394); /*A-overwrites-Y*/ | |
| 164879 | +} | |
| 164880 | + break; | |
| 164881 | + case 244: /* cmd ::= DROP INDEX ifexists fullname */ | |
| 164882 | +{sqlite3DropIndex(pParse, yymsp[0].minor.yy131, yymsp[-1].minor.yy394);} | |
| 164883 | + break; | |
| 164884 | + case 245: /* cmd ::= VACUUM vinto */ | |
| 164885 | +{sqlite3Vacuum(pParse,0,yymsp[0].minor.yy528);} | |
| 164886 | + break; | |
| 164887 | + case 246: /* cmd ::= VACUUM nm vinto */ | |
| 164888 | +{sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy528);} | |
| 164889 | + break; | |
| 164890 | + case 249: /* cmd ::= PRAGMA nm dbnm */ | |
| 164845 | 164891 | {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);} |
| 164846 | 164892 | break; |
| 164847 | - case 249: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ | |
| 164893 | + case 250: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ | |
| 164848 | 164894 | {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);} |
| 164849 | 164895 | break; |
| 164850 | - case 250: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ | |
| 164896 | + case 251: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ | |
| 164851 | 164897 | {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);} |
| 164852 | 164898 | break; |
| 164853 | - case 251: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ | |
| 164899 | + case 252: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ | |
| 164854 | 164900 | {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);} |
| 164855 | 164901 | break; |
| 164856 | - case 252: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ | |
| 164902 | + case 253: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ | |
| 164857 | 164903 | {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);} |
| 164858 | 164904 | break; |
| 164859 | - case 255: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ | |
| 164905 | + case 256: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ | |
| 164860 | 164906 | { |
| 164861 | 164907 | Token all; |
| 164862 | 164908 | all.z = yymsp[-3].minor.yy0.z; |
| 164863 | 164909 | all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n; |
| 164864 | - sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy95, &all); | |
| 164910 | + sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy33, &all); | |
| 164865 | 164911 | } |
| 164866 | 164912 | break; |
| 164867 | - case 256: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ | |
| 164913 | + case 257: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ | |
| 164868 | 164914 | { |
| 164869 | - sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy64, yymsp[-4].minor.yy570.a, yymsp[-4].minor.yy570.b, yymsp[-2].minor.yy607, yymsp[0].minor.yy626, yymsp[-10].minor.yy64, yymsp[-8].minor.yy64); | |
| 164915 | + sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy394, yymsp[-4].minor.yy180.a, yymsp[-4].minor.yy180.b, yymsp[-2].minor.yy131, yymsp[0].minor.yy528, yymsp[-10].minor.yy394, yymsp[-8].minor.yy394); | |
| 164870 | 164916 | yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/ |
| 164871 | 164917 | } |
| 164872 | 164918 | break; |
| 164873 | - case 257: /* trigger_time ::= BEFORE|AFTER */ | |
| 164874 | -{ yymsp[0].minor.yy64 = yymsp[0].major; /*A-overwrites-X*/ } | |
| 164875 | - break; | |
| 164876 | - case 258: /* trigger_time ::= INSTEAD OF */ | |
| 164877 | -{ yymsp[-1].minor.yy64 = TK_INSTEAD;} | |
| 164878 | - break; | |
| 164879 | - case 259: /* trigger_time ::= */ | |
| 164880 | -{ yymsp[1].minor.yy64 = TK_BEFORE; } | |
| 164881 | - break; | |
| 164882 | - case 260: /* trigger_event ::= DELETE|INSERT */ | |
| 164883 | - case 261: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==261); | |
| 164884 | -{yymsp[0].minor.yy570.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy570.b = 0;} | |
| 164885 | - break; | |
| 164886 | - case 262: /* trigger_event ::= UPDATE OF idlist */ | |
| 164887 | -{yymsp[-2].minor.yy570.a = TK_UPDATE; yymsp[-2].minor.yy570.b = yymsp[0].minor.yy240;} | |
| 164888 | - break; | |
| 164889 | - case 263: /* when_clause ::= */ | |
| 164890 | - case 282: /* key_opt ::= */ yytestcase(yyruleno==282); | |
| 164891 | -{ yymsp[1].minor.yy626 = 0; } | |
| 164892 | - break; | |
| 164893 | - case 264: /* when_clause ::= WHEN expr */ | |
| 164894 | - case 283: /* key_opt ::= KEY expr */ yytestcase(yyruleno==283); | |
| 164895 | -{ yymsp[-1].minor.yy626 = yymsp[0].minor.yy626; } | |
| 164896 | - break; | |
| 164897 | - case 265: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ | |
| 164898 | -{ | |
| 164899 | - assert( yymsp[-2].minor.yy95!=0 ); | |
| 164900 | - yymsp[-2].minor.yy95->pLast->pNext = yymsp[-1].minor.yy95; | |
| 164901 | - yymsp[-2].minor.yy95->pLast = yymsp[-1].minor.yy95; | |
| 164902 | -} | |
| 164903 | - break; | |
| 164904 | - case 266: /* trigger_cmd_list ::= trigger_cmd SEMI */ | |
| 164905 | -{ | |
| 164906 | - assert( yymsp[-1].minor.yy95!=0 ); | |
| 164907 | - yymsp[-1].minor.yy95->pLast = yymsp[-1].minor.yy95; | |
| 164908 | -} | |
| 164909 | - break; | |
| 164910 | - case 267: /* trnm ::= nm DOT nm */ | |
| 164919 | + case 258: /* trigger_time ::= BEFORE|AFTER */ | |
| 164920 | +{ yymsp[0].minor.yy394 = yymsp[0].major; /*A-overwrites-X*/ } | |
| 164921 | + break; | |
| 164922 | + case 259: /* trigger_time ::= INSTEAD OF */ | |
| 164923 | +{ yymsp[-1].minor.yy394 = TK_INSTEAD;} | |
| 164924 | + break; | |
| 164925 | + case 260: /* trigger_time ::= */ | |
| 164926 | +{ yymsp[1].minor.yy394 = TK_BEFORE; } | |
| 164927 | + break; | |
| 164928 | + case 261: /* trigger_event ::= DELETE|INSERT */ | |
| 164929 | + case 262: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==262); | |
| 164930 | +{yymsp[0].minor.yy180.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy180.b = 0;} | |
| 164931 | + break; | |
| 164932 | + case 263: /* trigger_event ::= UPDATE OF idlist */ | |
| 164933 | +{yymsp[-2].minor.yy180.a = TK_UPDATE; yymsp[-2].minor.yy180.b = yymsp[0].minor.yy254;} | |
| 164934 | + break; | |
| 164935 | + case 264: /* when_clause ::= */ | |
| 164936 | + case 283: /* key_opt ::= */ yytestcase(yyruleno==283); | |
| 164937 | +{ yymsp[1].minor.yy528 = 0; } | |
| 164938 | + break; | |
| 164939 | + case 265: /* when_clause ::= WHEN expr */ | |
| 164940 | + case 284: /* key_opt ::= KEY expr */ yytestcase(yyruleno==284); | |
| 164941 | +{ yymsp[-1].minor.yy528 = yymsp[0].minor.yy528; } | |
| 164942 | + break; | |
| 164943 | + case 266: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ | |
| 164944 | +{ | |
| 164945 | + assert( yymsp[-2].minor.yy33!=0 ); | |
| 164946 | + yymsp[-2].minor.yy33->pLast->pNext = yymsp[-1].minor.yy33; | |
| 164947 | + yymsp[-2].minor.yy33->pLast = yymsp[-1].minor.yy33; | |
| 164948 | +} | |
| 164949 | + break; | |
| 164950 | + case 267: /* trigger_cmd_list ::= trigger_cmd SEMI */ | |
| 164951 | +{ | |
| 164952 | + assert( yymsp[-1].minor.yy33!=0 ); | |
| 164953 | + yymsp[-1].minor.yy33->pLast = yymsp[-1].minor.yy33; | |
| 164954 | +} | |
| 164955 | + break; | |
| 164956 | + case 268: /* trnm ::= nm DOT nm */ | |
| 164911 | 164957 | { |
| 164912 | 164958 | yymsp[-2].minor.yy0 = yymsp[0].minor.yy0; |
| 164913 | 164959 | sqlite3ErrorMsg(pParse, |
| 164914 | 164960 | "qualified table names are not allowed on INSERT, UPDATE, and DELETE " |
| 164915 | 164961 | "statements within triggers"); |
| 164916 | 164962 | } |
| 164917 | 164963 | break; |
| 164918 | - case 268: /* tridxby ::= INDEXED BY nm */ | |
| 164964 | + case 269: /* tridxby ::= INDEXED BY nm */ | |
| 164919 | 164965 | { |
| 164920 | 164966 | sqlite3ErrorMsg(pParse, |
| 164921 | 164967 | "the INDEXED BY clause is not allowed on UPDATE or DELETE statements " |
| 164922 | 164968 | "within triggers"); |
| 164923 | 164969 | } |
| 164924 | 164970 | break; |
| 164925 | - case 269: /* tridxby ::= NOT INDEXED */ | |
| 164971 | + case 270: /* tridxby ::= NOT INDEXED */ | |
| 164926 | 164972 | { |
| 164927 | 164973 | sqlite3ErrorMsg(pParse, |
| 164928 | 164974 | "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements " |
| 164929 | 164975 | "within triggers"); |
| 164930 | 164976 | } |
| 164931 | 164977 | break; |
| 164932 | - case 270: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ | |
| 164933 | -{yylhsminor.yy95 = sqlite3TriggerUpdateStep(pParse, &yymsp[-6].minor.yy0, yymsp[-2].minor.yy607, yymsp[-3].minor.yy562, yymsp[-1].minor.yy626, yymsp[-7].minor.yy64, yymsp[-8].minor.yy0.z, yymsp[0].minor.yy600);} | |
| 164934 | - yymsp[-8].minor.yy95 = yylhsminor.yy95; | |
| 164935 | - break; | |
| 164936 | - case 271: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ | |
| 164937 | -{ | |
| 164938 | - yylhsminor.yy95 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy240,yymsp[-2].minor.yy303,yymsp[-6].minor.yy64,yymsp[-1].minor.yy138,yymsp[-7].minor.yy600,yymsp[0].minor.yy600);/*yylhsminor.yy95-overwrites-yymsp[-6].minor.yy64*/ | |
| 164939 | -} | |
| 164940 | - yymsp[-7].minor.yy95 = yylhsminor.yy95; | |
| 164941 | - break; | |
| 164942 | - case 272: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ | |
| 164943 | -{yylhsminor.yy95 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy626, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy600);} | |
| 164944 | - yymsp[-5].minor.yy95 = yylhsminor.yy95; | |
| 164945 | - break; | |
| 164946 | - case 273: /* trigger_cmd ::= scanpt select scanpt */ | |
| 164947 | -{yylhsminor.yy95 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy303, yymsp[-2].minor.yy600, yymsp[0].minor.yy600); /*yylhsminor.yy95-overwrites-yymsp[-1].minor.yy303*/} | |
| 164948 | - yymsp[-2].minor.yy95 = yylhsminor.yy95; | |
| 164949 | - break; | |
| 164950 | - case 274: /* expr ::= RAISE LP IGNORE RP */ | |
| 164951 | -{ | |
| 164952 | - yymsp[-3].minor.yy626 = sqlite3PExpr(pParse, TK_RAISE, 0, 0); | |
| 164953 | - if( yymsp[-3].minor.yy626 ){ | |
| 164954 | - yymsp[-3].minor.yy626->affExpr = OE_Ignore; | |
| 164955 | - } | |
| 164956 | -} | |
| 164957 | - break; | |
| 164958 | - case 275: /* expr ::= RAISE LP raisetype COMMA nm RP */ | |
| 164959 | -{ | |
| 164960 | - yymsp[-5].minor.yy626 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1); | |
| 164961 | - if( yymsp[-5].minor.yy626 ) { | |
| 164962 | - yymsp[-5].minor.yy626->affExpr = (char)yymsp[-3].minor.yy64; | |
| 164963 | - } | |
| 164964 | -} | |
| 164965 | - break; | |
| 164966 | - case 276: /* raisetype ::= ROLLBACK */ | |
| 164967 | -{yymsp[0].minor.yy64 = OE_Rollback;} | |
| 164968 | - break; | |
| 164969 | - case 278: /* raisetype ::= FAIL */ | |
| 164970 | -{yymsp[0].minor.yy64 = OE_Fail;} | |
| 164971 | - break; | |
| 164972 | - case 279: /* cmd ::= DROP TRIGGER ifexists fullname */ | |
| 164973 | -{ | |
| 164974 | - sqlite3DropTrigger(pParse,yymsp[0].minor.yy607,yymsp[-1].minor.yy64); | |
| 164975 | -} | |
| 164976 | - break; | |
| 164977 | - case 280: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ | |
| 164978 | -{ | |
| 164979 | - sqlite3Attach(pParse, yymsp[-3].minor.yy626, yymsp[-1].minor.yy626, yymsp[0].minor.yy626); | |
| 164980 | -} | |
| 164981 | - break; | |
| 164982 | - case 281: /* cmd ::= DETACH database_kw_opt expr */ | |
| 164983 | -{ | |
| 164984 | - sqlite3Detach(pParse, yymsp[0].minor.yy626); | |
| 164985 | -} | |
| 164986 | - break; | |
| 164987 | - case 284: /* cmd ::= REINDEX */ | |
| 164978 | + case 271: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ | |
| 164979 | +{yylhsminor.yy33 = sqlite3TriggerUpdateStep(pParse, &yymsp[-6].minor.yy0, yymsp[-2].minor.yy131, yymsp[-3].minor.yy322, yymsp[-1].minor.yy528, yymsp[-7].minor.yy394, yymsp[-8].minor.yy0.z, yymsp[0].minor.yy522);} | |
| 164980 | + yymsp[-8].minor.yy33 = yylhsminor.yy33; | |
| 164981 | + break; | |
| 164982 | + case 272: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ | |
| 164983 | +{ | |
| 164984 | + yylhsminor.yy33 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy254,yymsp[-2].minor.yy47,yymsp[-6].minor.yy394,yymsp[-1].minor.yy444,yymsp[-7].minor.yy522,yymsp[0].minor.yy522);/*yylhsminor.yy33-overwrites-yymsp[-6].minor.yy394*/ | |
| 164985 | +} | |
| 164986 | + yymsp[-7].minor.yy33 = yylhsminor.yy33; | |
| 164987 | + break; | |
| 164988 | + case 273: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ | |
| 164989 | +{yylhsminor.yy33 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy528, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy522);} | |
| 164990 | + yymsp[-5].minor.yy33 = yylhsminor.yy33; | |
| 164991 | + break; | |
| 164992 | + case 274: /* trigger_cmd ::= scanpt select scanpt */ | |
| 164993 | +{yylhsminor.yy33 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy47, yymsp[-2].minor.yy522, yymsp[0].minor.yy522); /*yylhsminor.yy33-overwrites-yymsp[-1].minor.yy47*/} | |
| 164994 | + yymsp[-2].minor.yy33 = yylhsminor.yy33; | |
| 164995 | + break; | |
| 164996 | + case 275: /* expr ::= RAISE LP IGNORE RP */ | |
| 164997 | +{ | |
| 164998 | + yymsp[-3].minor.yy528 = sqlite3PExpr(pParse, TK_RAISE, 0, 0); | |
| 164999 | + if( yymsp[-3].minor.yy528 ){ | |
| 165000 | + yymsp[-3].minor.yy528->affExpr = OE_Ignore; | |
| 165001 | + } | |
| 165002 | +} | |
| 165003 | + break; | |
| 165004 | + case 276: /* expr ::= RAISE LP raisetype COMMA nm RP */ | |
| 165005 | +{ | |
| 165006 | + yymsp[-5].minor.yy528 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1); | |
| 165007 | + if( yymsp[-5].minor.yy528 ) { | |
| 165008 | + yymsp[-5].minor.yy528->affExpr = (char)yymsp[-3].minor.yy394; | |
| 165009 | + } | |
| 165010 | +} | |
| 165011 | + break; | |
| 165012 | + case 277: /* raisetype ::= ROLLBACK */ | |
| 165013 | +{yymsp[0].minor.yy394 = OE_Rollback;} | |
| 165014 | + break; | |
| 165015 | + case 279: /* raisetype ::= FAIL */ | |
| 165016 | +{yymsp[0].minor.yy394 = OE_Fail;} | |
| 165017 | + break; | |
| 165018 | + case 280: /* cmd ::= DROP TRIGGER ifexists fullname */ | |
| 165019 | +{ | |
| 165020 | + sqlite3DropTrigger(pParse,yymsp[0].minor.yy131,yymsp[-1].minor.yy394); | |
| 165021 | +} | |
| 165022 | + break; | |
| 165023 | + case 281: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ | |
| 165024 | +{ | |
| 165025 | + sqlite3Attach(pParse, yymsp[-3].minor.yy528, yymsp[-1].minor.yy528, yymsp[0].minor.yy528); | |
| 165026 | +} | |
| 165027 | + break; | |
| 165028 | + case 282: /* cmd ::= DETACH database_kw_opt expr */ | |
| 165029 | +{ | |
| 165030 | + sqlite3Detach(pParse, yymsp[0].minor.yy528); | |
| 165031 | +} | |
| 165032 | + break; | |
| 165033 | + case 285: /* cmd ::= REINDEX */ | |
| 164988 | 165034 | {sqlite3Reindex(pParse, 0, 0);} |
| 164989 | 165035 | break; |
| 164990 | - case 285: /* cmd ::= REINDEX nm dbnm */ | |
| 165036 | + case 286: /* cmd ::= REINDEX nm dbnm */ | |
| 164991 | 165037 | {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} |
| 164992 | 165038 | break; |
| 164993 | - case 286: /* cmd ::= ANALYZE */ | |
| 165039 | + case 287: /* cmd ::= ANALYZE */ | |
| 164994 | 165040 | {sqlite3Analyze(pParse, 0, 0);} |
| 164995 | 165041 | break; |
| 164996 | - case 287: /* cmd ::= ANALYZE nm dbnm */ | |
| 165042 | + case 288: /* cmd ::= ANALYZE nm dbnm */ | |
| 164997 | 165043 | {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} |
| 164998 | 165044 | break; |
| 164999 | - case 288: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ | |
| 165045 | + case 289: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ | |
| 165000 | 165046 | { |
| 165001 | - sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy607,&yymsp[0].minor.yy0); | |
| 165047 | + sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy131,&yymsp[0].minor.yy0); | |
| 165002 | 165048 | } |
| 165003 | 165049 | break; |
| 165004 | - case 289: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ | |
| 165050 | + case 290: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ | |
| 165005 | 165051 | { |
| 165006 | 165052 | yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n; |
| 165007 | 165053 | sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0); |
| 165008 | 165054 | } |
| 165009 | 165055 | break; |
| 165010 | - case 290: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ | |
| 165056 | + case 291: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ | |
| 165011 | 165057 | { |
| 165012 | - sqlite3AlterDropColumn(pParse, yymsp[-3].minor.yy607, &yymsp[0].minor.yy0); | |
| 165058 | + sqlite3AlterDropColumn(pParse, yymsp[-3].minor.yy131, &yymsp[0].minor.yy0); | |
| 165013 | 165059 | } |
| 165014 | 165060 | break; |
| 165015 | - case 291: /* add_column_fullname ::= fullname */ | |
| 165061 | + case 292: /* add_column_fullname ::= fullname */ | |
| 165016 | 165062 | { |
| 165017 | 165063 | disableLookaside(pParse); |
| 165018 | - sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy607); | |
| 165019 | -} | |
| 165020 | - break; | |
| 165021 | - case 292: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ | |
| 165022 | -{ | |
| 165023 | - sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy607, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); | |
| 165024 | -} | |
| 165025 | - break; | |
| 165026 | - case 293: /* cmd ::= create_vtab */ | |
| 165064 | + sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy131); | |
| 165065 | +} | |
| 165066 | + break; | |
| 165067 | + case 293: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ | |
| 165068 | +{ | |
| 165069 | + sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy131, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); | |
| 165070 | +} | |
| 165071 | + break; | |
| 165072 | + case 294: /* cmd ::= create_vtab */ | |
| 165027 | 165073 | {sqlite3VtabFinishParse(pParse,0);} |
| 165028 | 165074 | break; |
| 165029 | - case 294: /* cmd ::= create_vtab LP vtabarglist RP */ | |
| 165075 | + case 295: /* cmd ::= create_vtab LP vtabarglist RP */ | |
| 165030 | 165076 | {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);} |
| 165031 | 165077 | break; |
| 165032 | - case 295: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ | |
| 165078 | + case 296: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ | |
| 165033 | 165079 | { |
| 165034 | - sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy64); | |
| 165080 | + sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy394); | |
| 165035 | 165081 | } |
| 165036 | 165082 | break; |
| 165037 | - case 296: /* vtabarg ::= */ | |
| 165083 | + case 297: /* vtabarg ::= */ | |
| 165038 | 165084 | {sqlite3VtabArgInit(pParse);} |
| 165039 | 165085 | break; |
| 165040 | - case 297: /* vtabargtoken ::= ANY */ | |
| 165041 | - case 298: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==298); | |
| 165042 | - case 299: /* lp ::= LP */ yytestcase(yyruleno==299); | |
| 165086 | + case 298: /* vtabargtoken ::= ANY */ | |
| 165087 | + case 299: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==299); | |
| 165088 | + case 300: /* lp ::= LP */ yytestcase(yyruleno==300); | |
| 165043 | 165089 | {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);} |
| 165044 | 165090 | break; |
| 165045 | - case 300: /* with ::= WITH wqlist */ | |
| 165046 | - case 301: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==301); | |
| 165047 | -{ sqlite3WithPush(pParse, yymsp[0].minor.yy43, 1); } | |
| 165048 | - break; | |
| 165049 | - case 302: /* wqas ::= AS */ | |
| 165050 | -{yymsp[0].minor.yy534 = M10d_Any;} | |
| 165051 | - break; | |
| 165052 | - case 303: /* wqas ::= AS MATERIALIZED */ | |
| 165053 | -{yymsp[-1].minor.yy534 = M10d_Yes;} | |
| 165054 | - break; | |
| 165055 | - case 304: /* wqas ::= AS NOT MATERIALIZED */ | |
| 165056 | -{yymsp[-2].minor.yy534 = M10d_No;} | |
| 165057 | - break; | |
| 165058 | - case 305: /* wqitem ::= nm eidlist_opt wqas LP select RP */ | |
| 165059 | -{ | |
| 165060 | - yymsp[-5].minor.yy255 = sqlite3CteNew(pParse, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy562, yymsp[-1].minor.yy303, yymsp[-3].minor.yy534); /*A-overwrites-X*/ | |
| 165061 | -} | |
| 165062 | - break; | |
| 165063 | - case 306: /* wqlist ::= wqitem */ | |
| 165064 | -{ | |
| 165065 | - yymsp[0].minor.yy43 = sqlite3WithAdd(pParse, 0, yymsp[0].minor.yy255); /*A-overwrites-X*/ | |
| 165066 | -} | |
| 165067 | - break; | |
| 165068 | - case 307: /* wqlist ::= wqlist COMMA wqitem */ | |
| 165069 | -{ | |
| 165070 | - yymsp[-2].minor.yy43 = sqlite3WithAdd(pParse, yymsp[-2].minor.yy43, yymsp[0].minor.yy255); | |
| 165071 | -} | |
| 165072 | - break; | |
| 165073 | - case 308: /* windowdefn_list ::= windowdefn */ | |
| 165074 | -{ yylhsminor.yy375 = yymsp[0].minor.yy375; } | |
| 165075 | - yymsp[0].minor.yy375 = yylhsminor.yy375; | |
| 165076 | - break; | |
| 165077 | - case 309: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ | |
| 165078 | -{ | |
| 165079 | - assert( yymsp[0].minor.yy375!=0 ); | |
| 165080 | - sqlite3WindowChain(pParse, yymsp[0].minor.yy375, yymsp[-2].minor.yy375); | |
| 165081 | - yymsp[0].minor.yy375->pNextWin = yymsp[-2].minor.yy375; | |
| 165082 | - yylhsminor.yy375 = yymsp[0].minor.yy375; | |
| 165083 | -} | |
| 165084 | - yymsp[-2].minor.yy375 = yylhsminor.yy375; | |
| 165085 | - break; | |
| 165086 | - case 310: /* windowdefn ::= nm AS LP window RP */ | |
| 165087 | -{ | |
| 165088 | - if( ALWAYS(yymsp[-1].minor.yy375) ){ | |
| 165089 | - yymsp[-1].minor.yy375->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n); | |
| 165090 | - } | |
| 165091 | - yylhsminor.yy375 = yymsp[-1].minor.yy375; | |
| 165092 | -} | |
| 165093 | - yymsp[-4].minor.yy375 = yylhsminor.yy375; | |
| 165094 | - break; | |
| 165095 | - case 311: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ | |
| 165096 | -{ | |
| 165097 | - yymsp[-4].minor.yy375 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy375, yymsp[-2].minor.yy562, yymsp[-1].minor.yy562, 0); | |
| 165098 | -} | |
| 165099 | - break; | |
| 165100 | - case 312: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ | |
| 165101 | -{ | |
| 165102 | - yylhsminor.yy375 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy375, yymsp[-2].minor.yy562, yymsp[-1].minor.yy562, &yymsp[-5].minor.yy0); | |
| 165103 | -} | |
| 165104 | - yymsp[-5].minor.yy375 = yylhsminor.yy375; | |
| 165105 | - break; | |
| 165106 | - case 313: /* window ::= ORDER BY sortlist frame_opt */ | |
| 165107 | -{ | |
| 165108 | - yymsp[-3].minor.yy375 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy375, 0, yymsp[-1].minor.yy562, 0); | |
| 165109 | -} | |
| 165110 | - break; | |
| 165111 | - case 314: /* window ::= nm ORDER BY sortlist frame_opt */ | |
| 165112 | -{ | |
| 165113 | - yylhsminor.yy375 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy375, 0, yymsp[-1].minor.yy562, &yymsp[-4].minor.yy0); | |
| 165114 | -} | |
| 165115 | - yymsp[-4].minor.yy375 = yylhsminor.yy375; | |
| 165116 | - break; | |
| 165117 | - case 315: /* window ::= frame_opt */ | |
| 165118 | - case 334: /* filter_over ::= over_clause */ yytestcase(yyruleno==334); | |
| 165119 | -{ | |
| 165120 | - yylhsminor.yy375 = yymsp[0].minor.yy375; | |
| 165121 | -} | |
| 165122 | - yymsp[0].minor.yy375 = yylhsminor.yy375; | |
| 165123 | - break; | |
| 165124 | - case 316: /* window ::= nm frame_opt */ | |
| 165125 | -{ | |
| 165126 | - yylhsminor.yy375 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy375, 0, 0, &yymsp[-1].minor.yy0); | |
| 165127 | -} | |
| 165128 | - yymsp[-1].minor.yy375 = yylhsminor.yy375; | |
| 165129 | - break; | |
| 165130 | - case 317: /* frame_opt ::= */ | |
| 165131 | -{ | |
| 165132 | - yymsp[1].minor.yy375 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0); | |
| 165133 | -} | |
| 165134 | - break; | |
| 165135 | - case 318: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ | |
| 165136 | -{ | |
| 165137 | - yylhsminor.yy375 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy64, yymsp[-1].minor.yy81.eType, yymsp[-1].minor.yy81.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy534); | |
| 165138 | -} | |
| 165139 | - yymsp[-2].minor.yy375 = yylhsminor.yy375; | |
| 165140 | - break; | |
| 165141 | - case 319: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ | |
| 165142 | -{ | |
| 165143 | - yylhsminor.yy375 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy64, yymsp[-3].minor.yy81.eType, yymsp[-3].minor.yy81.pExpr, yymsp[-1].minor.yy81.eType, yymsp[-1].minor.yy81.pExpr, yymsp[0].minor.yy534); | |
| 165144 | -} | |
| 165145 | - yymsp[-5].minor.yy375 = yylhsminor.yy375; | |
| 165146 | - break; | |
| 165147 | - case 321: /* frame_bound_s ::= frame_bound */ | |
| 165148 | - case 323: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==323); | |
| 165149 | -{yylhsminor.yy81 = yymsp[0].minor.yy81;} | |
| 165150 | - yymsp[0].minor.yy81 = yylhsminor.yy81; | |
| 165151 | - break; | |
| 165152 | - case 322: /* frame_bound_s ::= UNBOUNDED PRECEDING */ | |
| 165153 | - case 324: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==324); | |
| 165154 | - case 326: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==326); | |
| 165155 | -{yylhsminor.yy81.eType = yymsp[-1].major; yylhsminor.yy81.pExpr = 0;} | |
| 165156 | - yymsp[-1].minor.yy81 = yylhsminor.yy81; | |
| 165157 | - break; | |
| 165158 | - case 325: /* frame_bound ::= expr PRECEDING|FOLLOWING */ | |
| 165159 | -{yylhsminor.yy81.eType = yymsp[0].major; yylhsminor.yy81.pExpr = yymsp[-1].minor.yy626;} | |
| 165160 | - yymsp[-1].minor.yy81 = yylhsminor.yy81; | |
| 165161 | - break; | |
| 165162 | - case 327: /* frame_exclude_opt ::= */ | |
| 165163 | -{yymsp[1].minor.yy534 = 0;} | |
| 165164 | - break; | |
| 165165 | - case 328: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ | |
| 165166 | -{yymsp[-1].minor.yy534 = yymsp[0].minor.yy534;} | |
| 165167 | - break; | |
| 165168 | - case 329: /* frame_exclude ::= NO OTHERS */ | |
| 165169 | - case 330: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==330); | |
| 165170 | -{yymsp[-1].minor.yy534 = yymsp[-1].major; /*A-overwrites-X*/} | |
| 165171 | - break; | |
| 165172 | - case 331: /* frame_exclude ::= GROUP|TIES */ | |
| 165173 | -{yymsp[0].minor.yy534 = yymsp[0].major; /*A-overwrites-X*/} | |
| 165174 | - break; | |
| 165175 | - case 332: /* window_clause ::= WINDOW windowdefn_list */ | |
| 165176 | -{ yymsp[-1].minor.yy375 = yymsp[0].minor.yy375; } | |
| 165177 | - break; | |
| 165178 | - case 333: /* filter_over ::= filter_clause over_clause */ | |
| 165179 | -{ | |
| 165180 | - if( yymsp[0].minor.yy375 ){ | |
| 165181 | - yymsp[0].minor.yy375->pFilter = yymsp[-1].minor.yy626; | |
| 165182 | - }else{ | |
| 165183 | - sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy626); | |
| 165184 | - } | |
| 165185 | - yylhsminor.yy375 = yymsp[0].minor.yy375; | |
| 165186 | -} | |
| 165187 | - yymsp[-1].minor.yy375 = yylhsminor.yy375; | |
| 165188 | - break; | |
| 165189 | - case 335: /* filter_over ::= filter_clause */ | |
| 165190 | -{ | |
| 165191 | - yylhsminor.yy375 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); | |
| 165192 | - if( yylhsminor.yy375 ){ | |
| 165193 | - yylhsminor.yy375->eFrmType = TK_FILTER; | |
| 165194 | - yylhsminor.yy375->pFilter = yymsp[0].minor.yy626; | |
| 165195 | - }else{ | |
| 165196 | - sqlite3ExprDelete(pParse->db, yymsp[0].minor.yy626); | |
| 165197 | - } | |
| 165198 | -} | |
| 165199 | - yymsp[0].minor.yy375 = yylhsminor.yy375; | |
| 165200 | - break; | |
| 165201 | - case 336: /* over_clause ::= OVER LP window RP */ | |
| 165202 | -{ | |
| 165203 | - yymsp[-3].minor.yy375 = yymsp[-1].minor.yy375; | |
| 165204 | - assert( yymsp[-3].minor.yy375!=0 ); | |
| 165205 | -} | |
| 165206 | - break; | |
| 165207 | - case 337: /* over_clause ::= OVER nm */ | |
| 165208 | -{ | |
| 165209 | - yymsp[-1].minor.yy375 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); | |
| 165210 | - if( yymsp[-1].minor.yy375 ){ | |
| 165211 | - yymsp[-1].minor.yy375->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n); | |
| 165212 | - } | |
| 165213 | -} | |
| 165214 | - break; | |
| 165215 | - case 338: /* filter_clause ::= FILTER LP WHERE expr RP */ | |
| 165216 | -{ yymsp[-4].minor.yy626 = yymsp[-1].minor.yy626; } | |
| 165091 | + case 301: /* with ::= WITH wqlist */ | |
| 165092 | + case 302: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==302); | |
| 165093 | +{ sqlite3WithPush(pParse, yymsp[0].minor.yy521, 1); } | |
| 165094 | + break; | |
| 165095 | + case 303: /* wqas ::= AS */ | |
| 165096 | +{yymsp[0].minor.yy516 = M10d_Any;} | |
| 165097 | + break; | |
| 165098 | + case 304: /* wqas ::= AS MATERIALIZED */ | |
| 165099 | +{yymsp[-1].minor.yy516 = M10d_Yes;} | |
| 165100 | + break; | |
| 165101 | + case 305: /* wqas ::= AS NOT MATERIALIZED */ | |
| 165102 | +{yymsp[-2].minor.yy516 = M10d_No;} | |
| 165103 | + break; | |
| 165104 | + case 306: /* wqitem ::= nm eidlist_opt wqas LP select RP */ | |
| 165105 | +{ | |
| 165106 | + yymsp[-5].minor.yy385 = sqlite3CteNew(pParse, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy322, yymsp[-1].minor.yy47, yymsp[-3].minor.yy516); /*A-overwrites-X*/ | |
| 165107 | +} | |
| 165108 | + break; | |
| 165109 | + case 307: /* wqlist ::= wqitem */ | |
| 165110 | +{ | |
| 165111 | + yymsp[0].minor.yy521 = sqlite3WithAdd(pParse, 0, yymsp[0].minor.yy385); /*A-overwrites-X*/ | |
| 165112 | +} | |
| 165113 | + break; | |
| 165114 | + case 308: /* wqlist ::= wqlist COMMA wqitem */ | |
| 165115 | +{ | |
| 165116 | + yymsp[-2].minor.yy521 = sqlite3WithAdd(pParse, yymsp[-2].minor.yy521, yymsp[0].minor.yy385); | |
| 165117 | +} | |
| 165118 | + break; | |
| 165119 | + case 309: /* windowdefn_list ::= windowdefn */ | |
| 165120 | +{ yylhsminor.yy41 = yymsp[0].minor.yy41; } | |
| 165121 | + yymsp[0].minor.yy41 = yylhsminor.yy41; | |
| 165122 | + break; | |
| 165123 | + case 310: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ | |
| 165124 | +{ | |
| 165125 | + assert( yymsp[0].minor.yy41!=0 ); | |
| 165126 | + sqlite3WindowChain(pParse, yymsp[0].minor.yy41, yymsp[-2].minor.yy41); | |
| 165127 | + yymsp[0].minor.yy41->pNextWin = yymsp[-2].minor.yy41; | |
| 165128 | + yylhsminor.yy41 = yymsp[0].minor.yy41; | |
| 165129 | +} | |
| 165130 | + yymsp[-2].minor.yy41 = yylhsminor.yy41; | |
| 165131 | + break; | |
| 165132 | + case 311: /* windowdefn ::= nm AS LP window RP */ | |
| 165133 | +{ | |
| 165134 | + if( ALWAYS(yymsp[-1].minor.yy41) ){ | |
| 165135 | + yymsp[-1].minor.yy41->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n); | |
| 165136 | + } | |
| 165137 | + yylhsminor.yy41 = yymsp[-1].minor.yy41; | |
| 165138 | +} | |
| 165139 | + yymsp[-4].minor.yy41 = yylhsminor.yy41; | |
| 165140 | + break; | |
| 165141 | + case 312: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ | |
| 165142 | +{ | |
| 165143 | + yymsp[-4].minor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, yymsp[-2].minor.yy322, yymsp[-1].minor.yy322, 0); | |
| 165144 | +} | |
| 165145 | + break; | |
| 165146 | + case 313: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ | |
| 165147 | +{ | |
| 165148 | + yylhsminor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, yymsp[-2].minor.yy322, yymsp[-1].minor.yy322, &yymsp[-5].minor.yy0); | |
| 165149 | +} | |
| 165150 | + yymsp[-5].minor.yy41 = yylhsminor.yy41; | |
| 165151 | + break; | |
| 165152 | + case 314: /* window ::= ORDER BY sortlist frame_opt */ | |
| 165153 | +{ | |
| 165154 | + yymsp[-3].minor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, 0, yymsp[-1].minor.yy322, 0); | |
| 165155 | +} | |
| 165156 | + break; | |
| 165157 | + case 315: /* window ::= nm ORDER BY sortlist frame_opt */ | |
| 165158 | +{ | |
| 165159 | + yylhsminor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, 0, yymsp[-1].minor.yy322, &yymsp[-4].minor.yy0); | |
| 165160 | +} | |
| 165161 | + yymsp[-4].minor.yy41 = yylhsminor.yy41; | |
| 165162 | + break; | |
| 165163 | + case 316: /* window ::= frame_opt */ | |
| 165164 | + case 335: /* filter_over ::= over_clause */ yytestcase(yyruleno==335); | |
| 165165 | +{ | |
| 165166 | + yylhsminor.yy41 = yymsp[0].minor.yy41; | |
| 165167 | +} | |
| 165168 | + yymsp[0].minor.yy41 = yylhsminor.yy41; | |
| 165169 | + break; | |
| 165170 | + case 317: /* window ::= nm frame_opt */ | |
| 165171 | +{ | |
| 165172 | + yylhsminor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, 0, 0, &yymsp[-1].minor.yy0); | |
| 165173 | +} | |
| 165174 | + yymsp[-1].minor.yy41 = yylhsminor.yy41; | |
| 165175 | + break; | |
| 165176 | + case 318: /* frame_opt ::= */ | |
| 165177 | +{ | |
| 165178 | + yymsp[1].minor.yy41 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0); | |
| 165179 | +} | |
| 165180 | + break; | |
| 165181 | + case 319: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ | |
| 165182 | +{ | |
| 165183 | + yylhsminor.yy41 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy394, yymsp[-1].minor.yy595.eType, yymsp[-1].minor.yy595.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy516); | |
| 165184 | +} | |
| 165185 | + yymsp[-2].minor.yy41 = yylhsminor.yy41; | |
| 165186 | + break; | |
| 165187 | + case 320: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ | |
| 165188 | +{ | |
| 165189 | + yylhsminor.yy41 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy394, yymsp[-3].minor.yy595.eType, yymsp[-3].minor.yy595.pExpr, yymsp[-1].minor.yy595.eType, yymsp[-1].minor.yy595.pExpr, yymsp[0].minor.yy516); | |
| 165190 | +} | |
| 165191 | + yymsp[-5].minor.yy41 = yylhsminor.yy41; | |
| 165192 | + break; | |
| 165193 | + case 322: /* frame_bound_s ::= frame_bound */ | |
| 165194 | + case 324: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==324); | |
| 165195 | +{yylhsminor.yy595 = yymsp[0].minor.yy595;} | |
| 165196 | + yymsp[0].minor.yy595 = yylhsminor.yy595; | |
| 165197 | + break; | |
| 165198 | + case 323: /* frame_bound_s ::= UNBOUNDED PRECEDING */ | |
| 165199 | + case 325: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==325); | |
| 165200 | + case 327: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==327); | |
| 165201 | +{yylhsminor.yy595.eType = yymsp[-1].major; yylhsminor.yy595.pExpr = 0;} | |
| 165202 | + yymsp[-1].minor.yy595 = yylhsminor.yy595; | |
| 165203 | + break; | |
| 165204 | + case 326: /* frame_bound ::= expr PRECEDING|FOLLOWING */ | |
| 165205 | +{yylhsminor.yy595.eType = yymsp[0].major; yylhsminor.yy595.pExpr = yymsp[-1].minor.yy528;} | |
| 165206 | + yymsp[-1].minor.yy595 = yylhsminor.yy595; | |
| 165207 | + break; | |
| 165208 | + case 328: /* frame_exclude_opt ::= */ | |
| 165209 | +{yymsp[1].minor.yy516 = 0;} | |
| 165210 | + break; | |
| 165211 | + case 329: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ | |
| 165212 | +{yymsp[-1].minor.yy516 = yymsp[0].minor.yy516;} | |
| 165213 | + break; | |
| 165214 | + case 330: /* frame_exclude ::= NO OTHERS */ | |
| 165215 | + case 331: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==331); | |
| 165216 | +{yymsp[-1].minor.yy516 = yymsp[-1].major; /*A-overwrites-X*/} | |
| 165217 | + break; | |
| 165218 | + case 332: /* frame_exclude ::= GROUP|TIES */ | |
| 165219 | +{yymsp[0].minor.yy516 = yymsp[0].major; /*A-overwrites-X*/} | |
| 165220 | + break; | |
| 165221 | + case 333: /* window_clause ::= WINDOW windowdefn_list */ | |
| 165222 | +{ yymsp[-1].minor.yy41 = yymsp[0].minor.yy41; } | |
| 165223 | + break; | |
| 165224 | + case 334: /* filter_over ::= filter_clause over_clause */ | |
| 165225 | +{ | |
| 165226 | + if( yymsp[0].minor.yy41 ){ | |
| 165227 | + yymsp[0].minor.yy41->pFilter = yymsp[-1].minor.yy528; | |
| 165228 | + }else{ | |
| 165229 | + sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy528); | |
| 165230 | + } | |
| 165231 | + yylhsminor.yy41 = yymsp[0].minor.yy41; | |
| 165232 | +} | |
| 165233 | + yymsp[-1].minor.yy41 = yylhsminor.yy41; | |
| 165234 | + break; | |
| 165235 | + case 336: /* filter_over ::= filter_clause */ | |
| 165236 | +{ | |
| 165237 | + yylhsminor.yy41 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); | |
| 165238 | + if( yylhsminor.yy41 ){ | |
| 165239 | + yylhsminor.yy41->eFrmType = TK_FILTER; | |
| 165240 | + yylhsminor.yy41->pFilter = yymsp[0].minor.yy528; | |
| 165241 | + }else{ | |
| 165242 | + sqlite3ExprDelete(pParse->db, yymsp[0].minor.yy528); | |
| 165243 | + } | |
| 165244 | +} | |
| 165245 | + yymsp[0].minor.yy41 = yylhsminor.yy41; | |
| 165246 | + break; | |
| 165247 | + case 337: /* over_clause ::= OVER LP window RP */ | |
| 165248 | +{ | |
| 165249 | + yymsp[-3].minor.yy41 = yymsp[-1].minor.yy41; | |
| 165250 | + assert( yymsp[-3].minor.yy41!=0 ); | |
| 165251 | +} | |
| 165252 | + break; | |
| 165253 | + case 338: /* over_clause ::= OVER nm */ | |
| 165254 | +{ | |
| 165255 | + yymsp[-1].minor.yy41 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); | |
| 165256 | + if( yymsp[-1].minor.yy41 ){ | |
| 165257 | + yymsp[-1].minor.yy41->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n); | |
| 165258 | + } | |
| 165259 | +} | |
| 165260 | + break; | |
| 165261 | + case 339: /* filter_clause ::= FILTER LP WHERE expr RP */ | |
| 165262 | +{ yymsp[-4].minor.yy528 = yymsp[-1].minor.yy528; } | |
| 165217 | 165263 | break; |
| 165218 | 165264 | default: |
| 165219 | - /* (339) input ::= cmdlist */ yytestcase(yyruleno==339); | |
| 165220 | - /* (340) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==340); | |
| 165221 | - /* (341) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=341); | |
| 165222 | - /* (342) ecmd ::= SEMI */ yytestcase(yyruleno==342); | |
| 165223 | - /* (343) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==343); | |
| 165224 | - /* (344) ecmd ::= explain cmdx SEMI (NEVER REDUCES) */ assert(yyruleno!=344); | |
| 165225 | - /* (345) trans_opt ::= */ yytestcase(yyruleno==345); | |
| 165226 | - /* (346) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==346); | |
| 165227 | - /* (347) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==347); | |
| 165228 | - /* (348) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==348); | |
| 165229 | - /* (349) savepoint_opt ::= */ yytestcase(yyruleno==349); | |
| 165230 | - /* (350) cmd ::= create_table create_table_args */ yytestcase(yyruleno==350); | |
| 165231 | - /* (351) table_option_set ::= table_option (OPTIMIZED OUT) */ assert(yyruleno!=351); | |
| 165232 | - /* (352) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==352); | |
| 165233 | - /* (353) columnlist ::= columnname carglist */ yytestcase(yyruleno==353); | |
| 165234 | - /* (354) nm ::= ID|INDEXED */ yytestcase(yyruleno==354); | |
| 165235 | - /* (355) nm ::= STRING */ yytestcase(yyruleno==355); | |
| 165236 | - /* (356) nm ::= JOIN_KW */ yytestcase(yyruleno==356); | |
| 165237 | - /* (357) typetoken ::= typename */ yytestcase(yyruleno==357); | |
| 165238 | - /* (358) typename ::= ID|STRING */ yytestcase(yyruleno==358); | |
| 165239 | - /* (359) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=359); | |
| 165240 | - /* (360) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=360); | |
| 165241 | - /* (361) carglist ::= carglist ccons */ yytestcase(yyruleno==361); | |
| 165242 | - /* (362) carglist ::= */ yytestcase(yyruleno==362); | |
| 165243 | - /* (363) ccons ::= NULL onconf */ yytestcase(yyruleno==363); | |
| 165244 | - /* (364) ccons ::= GENERATED ALWAYS AS generated */ yytestcase(yyruleno==364); | |
| 165245 | - /* (365) ccons ::= AS generated */ yytestcase(yyruleno==365); | |
| 165246 | - /* (366) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==366); | |
| 165247 | - /* (367) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==367); | |
| 165248 | - /* (368) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=368); | |
| 165249 | - /* (369) tconscomma ::= */ yytestcase(yyruleno==369); | |
| 165250 | - /* (370) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=370); | |
| 165251 | - /* (371) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=371); | |
| 165252 | - /* (372) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=372); | |
| 165253 | - /* (373) oneselect ::= values */ yytestcase(yyruleno==373); | |
| 165254 | - /* (374) sclp ::= selcollist COMMA */ yytestcase(yyruleno==374); | |
| 165255 | - /* (375) as ::= ID|STRING */ yytestcase(yyruleno==375); | |
| 165256 | - /* (376) returning ::= */ yytestcase(yyruleno==376); | |
| 165257 | - /* (377) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=377); | |
| 165258 | - /* (378) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==378); | |
| 165259 | - /* (379) exprlist ::= nexprlist */ yytestcase(yyruleno==379); | |
| 165260 | - /* (380) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=380); | |
| 165261 | - /* (381) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=381); | |
| 165262 | - /* (382) nmnum ::= ON */ yytestcase(yyruleno==382); | |
| 165263 | - /* (383) nmnum ::= DELETE */ yytestcase(yyruleno==383); | |
| 165264 | - /* (384) nmnum ::= DEFAULT */ yytestcase(yyruleno==384); | |
| 165265 | - /* (385) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==385); | |
| 165266 | - /* (386) foreach_clause ::= */ yytestcase(yyruleno==386); | |
| 165267 | - /* (387) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==387); | |
| 165268 | - /* (388) trnm ::= nm */ yytestcase(yyruleno==388); | |
| 165269 | - /* (389) tridxby ::= */ yytestcase(yyruleno==389); | |
| 165270 | - /* (390) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==390); | |
| 165271 | - /* (391) database_kw_opt ::= */ yytestcase(yyruleno==391); | |
| 165272 | - /* (392) kwcolumn_opt ::= */ yytestcase(yyruleno==392); | |
| 165273 | - /* (393) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==393); | |
| 165274 | - /* (394) vtabarglist ::= vtabarg */ yytestcase(yyruleno==394); | |
| 165275 | - /* (395) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==395); | |
| 165276 | - /* (396) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==396); | |
| 165277 | - /* (397) anylist ::= */ yytestcase(yyruleno==397); | |
| 165278 | - /* (398) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==398); | |
| 165279 | - /* (399) anylist ::= anylist ANY */ yytestcase(yyruleno==399); | |
| 165280 | - /* (400) with ::= */ yytestcase(yyruleno==400); | |
| 165265 | + /* (340) input ::= cmdlist */ yytestcase(yyruleno==340); | |
| 165266 | + /* (341) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==341); | |
| 165267 | + /* (342) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=342); | |
| 165268 | + /* (343) ecmd ::= SEMI */ yytestcase(yyruleno==343); | |
| 165269 | + /* (344) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==344); | |
| 165270 | + /* (345) ecmd ::= explain cmdx SEMI (NEVER REDUCES) */ assert(yyruleno!=345); | |
| 165271 | + /* (346) trans_opt ::= */ yytestcase(yyruleno==346); | |
| 165272 | + /* (347) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==347); | |
| 165273 | + /* (348) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==348); | |
| 165274 | + /* (349) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==349); | |
| 165275 | + /* (350) savepoint_opt ::= */ yytestcase(yyruleno==350); | |
| 165276 | + /* (351) cmd ::= create_table create_table_args */ yytestcase(yyruleno==351); | |
| 165277 | + /* (352) table_option_set ::= table_option (OPTIMIZED OUT) */ assert(yyruleno!=352); | |
| 165278 | + /* (353) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==353); | |
| 165279 | + /* (354) columnlist ::= columnname carglist */ yytestcase(yyruleno==354); | |
| 165280 | + /* (355) nm ::= ID|INDEXED */ yytestcase(yyruleno==355); | |
| 165281 | + /* (356) nm ::= STRING */ yytestcase(yyruleno==356); | |
| 165282 | + /* (357) nm ::= JOIN_KW */ yytestcase(yyruleno==357); | |
| 165283 | + /* (358) typetoken ::= typename */ yytestcase(yyruleno==358); | |
| 165284 | + /* (359) typename ::= ID|STRING */ yytestcase(yyruleno==359); | |
| 165285 | + /* (360) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=360); | |
| 165286 | + /* (361) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=361); | |
| 165287 | + /* (362) carglist ::= carglist ccons */ yytestcase(yyruleno==362); | |
| 165288 | + /* (363) carglist ::= */ yytestcase(yyruleno==363); | |
| 165289 | + /* (364) ccons ::= NULL onconf */ yytestcase(yyruleno==364); | |
| 165290 | + /* (365) ccons ::= GENERATED ALWAYS AS generated */ yytestcase(yyruleno==365); | |
| 165291 | + /* (366) ccons ::= AS generated */ yytestcase(yyruleno==366); | |
| 165292 | + /* (367) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==367); | |
| 165293 | + /* (368) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==368); | |
| 165294 | + /* (369) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=369); | |
| 165295 | + /* (370) tconscomma ::= */ yytestcase(yyruleno==370); | |
| 165296 | + /* (371) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=371); | |
| 165297 | + /* (372) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=372); | |
| 165298 | + /* (373) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=373); | |
| 165299 | + /* (374) oneselect ::= values */ yytestcase(yyruleno==374); | |
| 165300 | + /* (375) sclp ::= selcollist COMMA */ yytestcase(yyruleno==375); | |
| 165301 | + /* (376) as ::= ID|STRING */ yytestcase(yyruleno==376); | |
| 165302 | + /* (377) returning ::= */ yytestcase(yyruleno==377); | |
| 165303 | + /* (378) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=378); | |
| 165304 | + /* (379) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==379); | |
| 165305 | + /* (380) exprlist ::= nexprlist */ yytestcase(yyruleno==380); | |
| 165306 | + /* (381) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=381); | |
| 165307 | + /* (382) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=382); | |
| 165308 | + /* (383) nmnum ::= ON */ yytestcase(yyruleno==383); | |
| 165309 | + /* (384) nmnum ::= DELETE */ yytestcase(yyruleno==384); | |
| 165310 | + /* (385) nmnum ::= DEFAULT */ yytestcase(yyruleno==385); | |
| 165311 | + /* (386) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==386); | |
| 165312 | + /* (387) foreach_clause ::= */ yytestcase(yyruleno==387); | |
| 165313 | + /* (388) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==388); | |
| 165314 | + /* (389) trnm ::= nm */ yytestcase(yyruleno==389); | |
| 165315 | + /* (390) tridxby ::= */ yytestcase(yyruleno==390); | |
| 165316 | + /* (391) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==391); | |
| 165317 | + /* (392) database_kw_opt ::= */ yytestcase(yyruleno==392); | |
| 165318 | + /* (393) kwcolumn_opt ::= */ yytestcase(yyruleno==393); | |
| 165319 | + /* (394) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==394); | |
| 165320 | + /* (395) vtabarglist ::= vtabarg */ yytestcase(yyruleno==395); | |
| 165321 | + /* (396) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==396); | |
| 165322 | + /* (397) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==397); | |
| 165323 | + /* (398) anylist ::= */ yytestcase(yyruleno==398); | |
| 165324 | + /* (399) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==399); | |
| 165325 | + /* (400) anylist ::= anylist ANY */ yytestcase(yyruleno==400); | |
| 165326 | + /* (401) with ::= */ yytestcase(yyruleno==401); | |
| 165281 | 165327 | break; |
| 165282 | 165328 | /********** End reduce actions ************************************************/ |
| 165283 | 165329 | }; |
| 165284 | 165330 | assert( yyruleno<sizeof(yyRuleInfoLhs)/sizeof(yyRuleInfoLhs[0]) ); |
| 165285 | 165331 | yygoto = yyRuleInfoLhs[yyruleno]; |
| @@ -166398,10 +166444,13 @@ | ||
| 166398 | 166444 | case CC_MINUS: { |
| 166399 | 166445 | if( z[1]=='-' ){ |
| 166400 | 166446 | for(i=2; (c=z[i])!=0 && c!='\n'; i++){} |
| 166401 | 166447 | *tokenType = TK_SPACE; /* IMP: R-22934-25134 */ |
| 166402 | 166448 | return i; |
| 166449 | + }else if( z[1]=='>' ){ | |
| 166450 | + *tokenType = TK_PTR; | |
| 166451 | + return 2 + (z[2]=='>'); | |
| 166403 | 166452 | } |
| 166404 | 166453 | *tokenType = TK_MINUS; |
| 166405 | 166454 | return 1; |
| 166406 | 166455 | } |
| 166407 | 166456 | case CC_LP: { |
| @@ -167394,13 +167443,10 @@ | ||
| 167394 | 167443 | SQLITE_PRIVATE int sqlite3Fts2Init(sqlite3*); |
| 167395 | 167444 | #endif |
| 167396 | 167445 | #ifdef SQLITE_ENABLE_FTS5 |
| 167397 | 167446 | SQLITE_PRIVATE int sqlite3Fts5Init(sqlite3*); |
| 167398 | 167447 | #endif |
| 167399 | -#ifdef SQLITE_ENABLE_JSON1 | |
| 167400 | -SQLITE_PRIVATE int sqlite3Json1Init(sqlite3*); | |
| 167401 | -#endif | |
| 167402 | 167448 | #ifdef SQLITE_ENABLE_STMTVTAB |
| 167403 | 167449 | SQLITE_PRIVATE int sqlite3StmtVtabInit(sqlite3*); |
| 167404 | 167450 | #endif |
| 167405 | 167451 | |
| 167406 | 167452 | /* |
| @@ -167431,12 +167477,12 @@ | ||
| 167431 | 167477 | #endif |
| 167432 | 167478 | #ifdef SQLITE_ENABLE_DBSTAT_VTAB |
| 167433 | 167479 | sqlite3DbstatRegister, |
| 167434 | 167480 | #endif |
| 167435 | 167481 | sqlite3TestExtInit, |
| 167436 | -#ifdef SQLITE_ENABLE_JSON1 | |
| 167437 | - sqlite3Json1Init, | |
| 167482 | +#if !defined(SQLITE_OMIT_VIRTUALTABLE) && !defined(SQLITE_OMIT_JSON) | |
| 167483 | + sqlite3JsonTableFunctions, | |
| 167438 | 167484 | #endif |
| 167439 | 167485 | #ifdef SQLITE_ENABLE_STMTVTAB |
| 167440 | 167486 | sqlite3StmtVtabInit, |
| 167441 | 167487 | #endif |
| 167442 | 167488 | #ifdef SQLITE_ENABLE_BYTECODE_VTAB |
| @@ -192022,11 +192068,11 @@ | ||
| 192022 | 192068 | } |
| 192023 | 192069 | #endif /* defined(SQLITE_ENABLE_FTS3) || defined(SQLITE_ENABLE_FTS4) */ |
| 192024 | 192070 | #endif /* !defined(SQLITE_DISABLE_FTS3_UNICODE) */ |
| 192025 | 192071 | |
| 192026 | 192072 | /************** End of fts3_unicode2.c ***************************************/ |
| 192027 | -/************** Begin file json1.c *******************************************/ | |
| 192073 | +/************** Begin file json.c ********************************************/ | |
| 192028 | 192074 | /* |
| 192029 | 192075 | ** 2015-08-12 |
| 192030 | 192076 | ** |
| 192031 | 192077 | ** The author disclaims copyright to this source code. In place of |
| 192032 | 192078 | ** a legal notice, here is a blessing: |
| @@ -192035,72 +192081,23 @@ | ||
| 192035 | 192081 | ** May you find forgiveness for yourself and forgive others. |
| 192036 | 192082 | ** May you share freely, never taking more than you give. |
| 192037 | 192083 | ** |
| 192038 | 192084 | ****************************************************************************** |
| 192039 | 192085 | ** |
| 192040 | -** This SQLite extension implements JSON functions. The interface is | |
| 192041 | -** modeled after MySQL JSON functions: | |
| 192086 | +** This SQLite JSON functions. | |
| 192042 | 192087 | ** |
| 192043 | -** https://dev.mysql.com/doc/refman/5.7/en/json.html | |
| 192088 | +** This file began as an extension in ext/misc/json1.c in 2015. That | |
| 192089 | +** extension proved so useful that it has now been moved into the core. | |
| 192044 | 192090 | ** |
| 192045 | 192091 | ** For the time being, all JSON is stored as pure text. (We might add |
| 192046 | 192092 | ** a JSONB type in the future which stores a binary encoding of JSON in |
| 192047 | 192093 | ** a BLOB, but there is no support for JSONB in the current implementation. |
| 192048 | 192094 | ** This implementation parses JSON text at 250 MB/s, so it is hard to see |
| 192049 | 192095 | ** how JSONB might improve on that.) |
| 192050 | 192096 | */ |
| 192051 | -#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_JSON1) | |
| 192052 | -#if !defined(SQLITEINT_H) | |
| 192053 | -/* #include "sqlite3ext.h" */ | |
| 192054 | -#endif | |
| 192055 | -SQLITE_EXTENSION_INIT1 | |
| 192056 | - | |
| 192057 | -/* If compiling this extension separately (why would anybody do that when | |
| 192058 | -** it is built into the amalgamation?) we must set NDEBUG if SQLITE_DEBUG | |
| 192059 | -** is not defined *before* including <assert.h>, in order to disable asserts(). | |
| 192060 | -*/ | |
| 192061 | -#if !defined(SQLITE_AMALGAMATION) && !defined(SQLITE_DEBUG) | |
| 192062 | -# define NDEBUG 1 | |
| 192063 | -#endif | |
| 192064 | - | |
| 192065 | -/* #include <assert.h> */ | |
| 192066 | -/* #include <string.h> */ | |
| 192067 | -/* #include <stdlib.h> */ | |
| 192068 | -/* #include <stdarg.h> */ | |
| 192069 | - | |
| 192070 | -/* Mark a function parameter as unused, to suppress nuisance compiler | |
| 192071 | -** warnings. */ | |
| 192072 | -#ifndef UNUSED_PARAM | |
| 192073 | -# define UNUSED_PARAM(X) (void)(X) | |
| 192074 | -#endif | |
| 192075 | - | |
| 192076 | -#ifndef LARGEST_INT64 | |
| 192077 | -# define LARGEST_INT64 (0xffffffff|(((sqlite3_int64)0x7fffffff)<<32)) | |
| 192078 | -# define SMALLEST_INT64 (((sqlite3_int64)-1) - LARGEST_INT64) | |
| 192079 | -#endif | |
| 192080 | - | |
| 192081 | -#ifndef deliberate_fall_through | |
| 192082 | -# define deliberate_fall_through | |
| 192083 | -#endif | |
| 192084 | - | |
| 192085 | -/* | |
| 192086 | -** Versions of isspace(), isalnum() and isdigit() to which it is safe | |
| 192087 | -** to pass signed char values. | |
| 192088 | -*/ | |
| 192089 | -#ifdef sqlite3Isdigit | |
| 192090 | - /* Use the SQLite core versions if this routine is part of the | |
| 192091 | - ** SQLite amalgamation */ | |
| 192092 | -# define safe_isdigit(x) sqlite3Isdigit(x) | |
| 192093 | -# define safe_isalnum(x) sqlite3Isalnum(x) | |
| 192094 | -# define safe_isxdigit(x) sqlite3Isxdigit(x) | |
| 192095 | -#else | |
| 192096 | - /* Use the standard library for separate compilation */ | |
| 192097 | -#include <ctype.h> /* amalgamator: keep */ | |
| 192098 | -# define safe_isdigit(x) isdigit((unsigned char)(x)) | |
| 192099 | -# define safe_isalnum(x) isalnum((unsigned char)(x)) | |
| 192100 | -# define safe_isxdigit(x) isxdigit((unsigned char)(x)) | |
| 192101 | -#endif | |
| 192097 | +#ifndef SQLITE_OMIT_JSON | |
| 192098 | +/* #include "sqliteInt.h" */ | |
| 192102 | 192099 | |
| 192103 | 192100 | /* |
| 192104 | 192101 | ** Growing our own isspace() routine this way is twice as fast as |
| 192105 | 192102 | ** the library isspace() function, resulting in a 7% overall performance |
| 192106 | 192103 | ** increase for the parser. (Ubuntu14.10 gcc 4.8.4 x64 with -Os). |
| @@ -192121,48 +192118,18 @@ | ||
| 192121 | 192118 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 192122 | 192119 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 192123 | 192120 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 192124 | 192121 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 192125 | 192122 | }; |
| 192126 | -#define safe_isspace(x) (jsonIsSpace[(unsigned char)x]) | |
| 192127 | - | |
| 192128 | -#ifndef SQLITE_AMALGAMATION | |
| 192129 | - /* Unsigned integer types. These are already defined in the sqliteInt.h, | |
| 192130 | - ** but the definitions need to be repeated for separate compilation. */ | |
| 192131 | - typedef sqlite3_uint64 u64; | |
| 192132 | - typedef unsigned int u32; | |
| 192133 | - typedef unsigned short int u16; | |
| 192134 | - typedef unsigned char u8; | |
| 192135 | -# if defined(SQLITE_COVERAGE_TEST) || defined(SQLITE_MUTATION_TEST) | |
| 192136 | -# define SQLITE_OMIT_AUXILIARY_SAFETY_CHECKS 1 | |
| 192137 | -# endif | |
| 192138 | -# if defined(SQLITE_OMIT_AUXILIARY_SAFETY_CHECKS) | |
| 192139 | -# define ALWAYS(X) (1) | |
| 192140 | -# define NEVER(X) (0) | |
| 192141 | -# elif !defined(NDEBUG) | |
| 192142 | -# define ALWAYS(X) ((X)?1:(assert(0),0)) | |
| 192143 | -# define NEVER(X) ((X)?(assert(0),1):0) | |
| 192144 | -# else | |
| 192145 | -# define ALWAYS(X) (X) | |
| 192146 | -# define NEVER(X) (X) | |
| 192147 | -# endif | |
| 192148 | -# define testcase(X) | |
| 192149 | -#endif | |
| 192123 | +#define fast_isspace(x) (jsonIsSpace[(unsigned char)x]) | |
| 192124 | + | |
| 192150 | 192125 | #if !defined(SQLITE_DEBUG) && !defined(SQLITE_COVERAGE_TEST) |
| 192151 | 192126 | # define VVA(X) |
| 192152 | 192127 | #else |
| 192153 | 192128 | # define VVA(X) X |
| 192154 | 192129 | #endif |
| 192155 | 192130 | |
| 192156 | -/* | |
| 192157 | -** Some of the testcase() macros in this file are problematic for gcov | |
| 192158 | -** in that they generate false-miss errors randomly. This is a gcov problem, | |
| 192159 | -** not a problem in this case. But to work around it, we disable the | |
| 192160 | -** problematic test cases for production builds. | |
| 192161 | -*/ | |
| 192162 | -#define json_testcase(X) | |
| 192163 | - | |
| 192164 | 192131 | /* Objects */ |
| 192165 | 192132 | typedef struct JsonString JsonString; |
| 192166 | 192133 | typedef struct JsonNode JsonNode; |
| 192167 | 192134 | typedef struct JsonParse JsonParse; |
| 192168 | 192135 | |
| @@ -192616,14 +192583,14 @@ | ||
| 192616 | 192583 | /* |
| 192617 | 192584 | ** Convert a 4-byte hex string into an integer |
| 192618 | 192585 | */ |
| 192619 | 192586 | static u32 jsonHexToInt4(const char *z){ |
| 192620 | 192587 | u32 v; |
| 192621 | - assert( safe_isxdigit(z[0]) ); | |
| 192622 | - assert( safe_isxdigit(z[1]) ); | |
| 192623 | - assert( safe_isxdigit(z[2]) ); | |
| 192624 | - assert( safe_isxdigit(z[3]) ); | |
| 192588 | + assert( sqlite3Isxdigit(z[0]) ); | |
| 192589 | + assert( sqlite3Isxdigit(z[1]) ); | |
| 192590 | + assert( sqlite3Isxdigit(z[2]) ); | |
| 192591 | + assert( sqlite3Isxdigit(z[3]) ); | |
| 192625 | 192592 | v = (jsonHexToInt(z[0])<<12) |
| 192626 | 192593 | + (jsonHexToInt(z[1])<<8) |
| 192627 | 192594 | + (jsonHexToInt(z[2])<<4) |
| 192628 | 192595 | + jsonHexToInt(z[3]); |
| 192629 | 192596 | return v; |
| @@ -192854,11 +192821,11 @@ | ||
| 192854 | 192821 | /* |
| 192855 | 192822 | ** Return true if z[] begins with 4 (or more) hexadecimal digits |
| 192856 | 192823 | */ |
| 192857 | 192824 | static int jsonIs4Hex(const char *z){ |
| 192858 | 192825 | int i; |
| 192859 | - for(i=0; i<4; i++) if( !safe_isxdigit(z[i]) ) return 0; | |
| 192826 | + for(i=0; i<4; i++) if( !sqlite3Isxdigit(z[i]) ) return 0; | |
| 192860 | 192827 | return 1; |
| 192861 | 192828 | } |
| 192862 | 192829 | |
| 192863 | 192830 | /* |
| 192864 | 192831 | ** Parse a single JSON value which begins at pParse->zJson[i]. Return the |
| @@ -192873,17 +192840,17 @@ | ||
| 192873 | 192840 | u32 j; |
| 192874 | 192841 | int iThis; |
| 192875 | 192842 | int x; |
| 192876 | 192843 | JsonNode *pNode; |
| 192877 | 192844 | const char *z = pParse->zJson; |
| 192878 | - while( safe_isspace(z[i]) ){ i++; } | |
| 192845 | + while( fast_isspace(z[i]) ){ i++; } | |
| 192879 | 192846 | if( (c = z[i])=='{' ){ |
| 192880 | 192847 | /* Parse object */ |
| 192881 | 192848 | iThis = jsonParseAddNode(pParse, JSON_OBJECT, 0, 0); |
| 192882 | 192849 | if( iThis<0 ) return -1; |
| 192883 | 192850 | for(j=i+1;;j++){ |
| 192884 | - while( safe_isspace(z[j]) ){ j++; } | |
| 192851 | + while( fast_isspace(z[j]) ){ j++; } | |
| 192885 | 192852 | if( ++pParse->iDepth > JSON_MAX_DEPTH ) return -1; |
| 192886 | 192853 | x = jsonParseValue(pParse, j); |
| 192887 | 192854 | if( x<0 ){ |
| 192888 | 192855 | pParse->iDepth--; |
| 192889 | 192856 | if( x==(-2) && pParse->nNode==(u32)iThis+1 ) return j+1; |
| @@ -192892,18 +192859,18 @@ | ||
| 192892 | 192859 | if( pParse->oom ) return -1; |
| 192893 | 192860 | pNode = &pParse->aNode[pParse->nNode-1]; |
| 192894 | 192861 | if( pNode->eType!=JSON_STRING ) return -1; |
| 192895 | 192862 | pNode->jnFlags |= JNODE_LABEL; |
| 192896 | 192863 | j = x; |
| 192897 | - while( safe_isspace(z[j]) ){ j++; } | |
| 192864 | + while( fast_isspace(z[j]) ){ j++; } | |
| 192898 | 192865 | if( z[j]!=':' ) return -1; |
| 192899 | 192866 | j++; |
| 192900 | 192867 | x = jsonParseValue(pParse, j); |
| 192901 | 192868 | pParse->iDepth--; |
| 192902 | 192869 | if( x<0 ) return -1; |
| 192903 | 192870 | j = x; |
| 192904 | - while( safe_isspace(z[j]) ){ j++; } | |
| 192871 | + while( fast_isspace(z[j]) ){ j++; } | |
| 192905 | 192872 | c = z[j]; |
| 192906 | 192873 | if( c==',' ) continue; |
| 192907 | 192874 | if( c!='}' ) return -1; |
| 192908 | 192875 | break; |
| 192909 | 192876 | } |
| @@ -192913,20 +192880,20 @@ | ||
| 192913 | 192880 | /* Parse array */ |
| 192914 | 192881 | iThis = jsonParseAddNode(pParse, JSON_ARRAY, 0, 0); |
| 192915 | 192882 | if( iThis<0 ) return -1; |
| 192916 | 192883 | memset(&pParse->aNode[iThis].u, 0, sizeof(pParse->aNode[iThis].u)); |
| 192917 | 192884 | for(j=i+1;;j++){ |
| 192918 | - while( safe_isspace(z[j]) ){ j++; } | |
| 192885 | + while( fast_isspace(z[j]) ){ j++; } | |
| 192919 | 192886 | if( ++pParse->iDepth > JSON_MAX_DEPTH ) return -1; |
| 192920 | 192887 | x = jsonParseValue(pParse, j); |
| 192921 | 192888 | pParse->iDepth--; |
| 192922 | 192889 | if( x<0 ){ |
| 192923 | 192890 | if( x==(-3) && pParse->nNode==(u32)iThis+1 ) return j+1; |
| 192924 | 192891 | return -1; |
| 192925 | 192892 | } |
| 192926 | 192893 | j = x; |
| 192927 | - while( safe_isspace(z[j]) ){ j++; } | |
| 192894 | + while( fast_isspace(z[j]) ){ j++; } | |
| 192928 | 192895 | c = z[j]; |
| 192929 | 192896 | if( c==',' ) continue; |
| 192930 | 192897 | if( c!=']' ) return -1; |
| 192931 | 192898 | break; |
| 192932 | 192899 | } |
| @@ -192959,21 +192926,21 @@ | ||
| 192959 | 192926 | jsonParseAddNode(pParse, JSON_STRING, j+1-i, &z[i]); |
| 192960 | 192927 | if( !pParse->oom ) pParse->aNode[pParse->nNode-1].jnFlags = jnFlags; |
| 192961 | 192928 | return j+1; |
| 192962 | 192929 | }else if( c=='n' |
| 192963 | 192930 | && strncmp(z+i,"null",4)==0 |
| 192964 | - && !safe_isalnum(z[i+4]) ){ | |
| 192931 | + && !sqlite3Isalnum(z[i+4]) ){ | |
| 192965 | 192932 | jsonParseAddNode(pParse, JSON_NULL, 0, 0); |
| 192966 | 192933 | return i+4; |
| 192967 | 192934 | }else if( c=='t' |
| 192968 | 192935 | && strncmp(z+i,"true",4)==0 |
| 192969 | - && !safe_isalnum(z[i+4]) ){ | |
| 192936 | + && !sqlite3Isalnum(z[i+4]) ){ | |
| 192970 | 192937 | jsonParseAddNode(pParse, JSON_TRUE, 0, 0); |
| 192971 | 192938 | return i+4; |
| 192972 | 192939 | }else if( c=='f' |
| 192973 | 192940 | && strncmp(z+i,"false",5)==0 |
| 192974 | - && !safe_isalnum(z[i+5]) ){ | |
| 192941 | + && !sqlite3Isalnum(z[i+5]) ){ | |
| 192975 | 192942 | jsonParseAddNode(pParse, JSON_FALSE, 0, 0); |
| 192976 | 192943 | return i+5; |
| 192977 | 192944 | }else if( c=='-' || (c>='0' && c<='9') ){ |
| 192978 | 192945 | /* Parse number */ |
| 192979 | 192946 | u8 seenDP = 0; |
| @@ -193040,11 +193007,11 @@ | ||
| 193040 | 193007 | pParse->zJson = zJson; |
| 193041 | 193008 | i = jsonParseValue(pParse, 0); |
| 193042 | 193009 | if( pParse->oom ) i = -1; |
| 193043 | 193010 | if( i>0 ){ |
| 193044 | 193011 | assert( pParse->iDepth==0 ); |
| 193045 | - while( safe_isspace(zJson[i]) ) i++; | |
| 193012 | + while( fast_isspace(zJson[i]) ) i++; | |
| 193046 | 193013 | if( zJson[i] ) i = -1; |
| 193047 | 193014 | } |
| 193048 | 193015 | if( i<=0 ){ |
| 193049 | 193016 | if( pCtx!=0 ){ |
| 193050 | 193017 | if( pParse->oom ){ |
| @@ -193268,11 +193235,11 @@ | ||
| 193268 | 193235 | return pNode; |
| 193269 | 193236 | } |
| 193270 | 193237 | }else if( zPath[0]=='[' ){ |
| 193271 | 193238 | i = 0; |
| 193272 | 193239 | j = 1; |
| 193273 | - while( safe_isdigit(zPath[j]) ){ | |
| 193240 | + while( sqlite3Isdigit(zPath[j]) ){ | |
| 193274 | 193241 | i = i*10 + zPath[j] - '0'; |
| 193275 | 193242 | j++; |
| 193276 | 193243 | } |
| 193277 | 193244 | if( j<2 || zPath[j]!=']' ){ |
| 193278 | 193245 | if( zPath[1]=='#' ){ |
| @@ -193289,17 +193256,17 @@ | ||
| 193289 | 193256 | iBase += pBase->u.iAppend; |
| 193290 | 193257 | pBase = &pParse->aNode[iBase]; |
| 193291 | 193258 | j = 1; |
| 193292 | 193259 | } |
| 193293 | 193260 | j = 2; |
| 193294 | - if( zPath[2]=='-' && safe_isdigit(zPath[3]) ){ | |
| 193261 | + if( zPath[2]=='-' && sqlite3Isdigit(zPath[3]) ){ | |
| 193295 | 193262 | unsigned int x = 0; |
| 193296 | 193263 | j = 3; |
| 193297 | 193264 | do{ |
| 193298 | 193265 | x = x*10 + zPath[j] - '0'; |
| 193299 | 193266 | j++; |
| 193300 | - }while( safe_isdigit(zPath[j]) ); | |
| 193267 | + }while( sqlite3Isdigit(zPath[j]) ); | |
| 193301 | 193268 | if( x>i ) return 0; |
| 193302 | 193269 | i -= x; |
| 193303 | 193270 | } |
| 193304 | 193271 | if( zPath[j]!=']' ){ |
| 193305 | 193272 | *pzErr = zPath; |
| @@ -193514,11 +193481,11 @@ | ||
| 193514 | 193481 | static void jsonTest1Func( |
| 193515 | 193482 | sqlite3_context *ctx, |
| 193516 | 193483 | int argc, |
| 193517 | 193484 | sqlite3_value **argv |
| 193518 | 193485 | ){ |
| 193519 | - UNUSED_PARAM(argc); | |
| 193486 | + UNUSED_PARAMETER(argc); | |
| 193520 | 193487 | sqlite3_result_int(ctx, sqlite3_value_subtype(argv[0])==JSON_SUBTYPE); |
| 193521 | 193488 | } |
| 193522 | 193489 | #endif /* SQLITE_DEBUG */ |
| 193523 | 193490 | |
| 193524 | 193491 | /**************************************************************************** |
| @@ -193535,11 +193502,11 @@ | ||
| 193535 | 193502 | sqlite3_context *ctx, |
| 193536 | 193503 | int argc, |
| 193537 | 193504 | sqlite3_value **argv |
| 193538 | 193505 | ){ |
| 193539 | 193506 | JsonString jx; |
| 193540 | - UNUSED_PARAM(argc); | |
| 193507 | + UNUSED_PARAMETER(argc); | |
| 193541 | 193508 | |
| 193542 | 193509 | jsonInit(&jx, ctx); |
| 193543 | 193510 | jsonAppendValue(&jx, argv[0]); |
| 193544 | 193511 | jsonResult(&jx); |
| 193545 | 193512 | sqlite3_result_subtype(ctx, JSON_SUBTYPE); |
| @@ -193606,55 +193573,118 @@ | ||
| 193606 | 193573 | } |
| 193607 | 193574 | } |
| 193608 | 193575 | sqlite3_result_int64(ctx, n); |
| 193609 | 193576 | } |
| 193610 | 193577 | |
| 193578 | +/* | |
| 193579 | +** Bit values for the flags passed into jsonExtractFunc() or | |
| 193580 | +** jsonSetFunc() via the user-data value. | |
| 193581 | +*/ | |
| 193582 | +#define JSON_JSON 0x01 /* Result is always JSON */ | |
| 193583 | +#define JSON_SQL 0x02 /* Result is always SQL */ | |
| 193584 | +#define JSON_ABPATH 0x03 /* Allow abbreviated JSON path specs */ | |
| 193585 | +#define JSON_ISSET 0x04 /* json_set(), not json_insert() */ | |
| 193586 | + | |
| 193611 | 193587 | /* |
| 193612 | 193588 | ** json_extract(JSON, PATH, ...) |
| 193589 | +** "->"(JSON,PATH) | |
| 193590 | +** "->>"(JSON,PATH) | |
| 193613 | 193591 | ** |
| 193614 | -** Return the element described by PATH. Return NULL if there is no | |
| 193615 | -** PATH element. If there are multiple PATHs, then return a JSON array | |
| 193616 | -** with the result from each path. Throw an error if the JSON or any PATH | |
| 193617 | -** is malformed. | |
| 193592 | +** Return the element described by PATH. Return NULL if that PATH element | |
| 193593 | +** is not found. | |
| 193594 | +** | |
| 193595 | +** If JSON_JSON is set or if more that one PATH argument is supplied then | |
| 193596 | +** always return a JSON representation of the result. If JSON_SQL is set, | |
| 193597 | +** then always return an SQL representation of the result. If neither flag | |
| 193598 | +** is present and argc==2, then return JSON for objects and arrays and SQL | |
| 193599 | +** for all other values. | |
| 193600 | +** | |
| 193601 | +** When multiple PATH arguments are supplied, the result is a JSON array | |
| 193602 | +** containing the result of each PATH. | |
| 193603 | +** | |
| 193604 | +** Abbreviated JSON path expressions are allows if JSON_ABPATH, for | |
| 193605 | +** compatibility with PG. | |
| 193618 | 193606 | */ |
| 193619 | 193607 | static void jsonExtractFunc( |
| 193620 | 193608 | sqlite3_context *ctx, |
| 193621 | 193609 | int argc, |
| 193622 | 193610 | sqlite3_value **argv |
| 193623 | 193611 | ){ |
| 193624 | 193612 | JsonParse *p; /* The parse */ |
| 193625 | 193613 | JsonNode *pNode; |
| 193626 | 193614 | const char *zPath; |
| 193615 | + int flags = SQLITE_PTR_TO_INT(sqlite3_user_data(ctx)); | |
| 193627 | 193616 | JsonString jx; |
| 193628 | - int i; | |
| 193629 | 193617 | |
| 193630 | 193618 | if( argc<2 ) return; |
| 193631 | 193619 | p = jsonParseCached(ctx, argv, ctx); |
| 193632 | 193620 | if( p==0 ) return; |
| 193633 | - jsonInit(&jx, ctx); | |
| 193634 | - jsonAppendChar(&jx, '['); | |
| 193635 | - for(i=1; i<argc; i++){ | |
| 193636 | - zPath = (const char*)sqlite3_value_text(argv[i]); | |
| 193637 | - pNode = jsonLookup(p, zPath, 0, ctx); | |
| 193638 | - if( p->nErr ) break; | |
| 193639 | - if( argc>2 ){ | |
| 193621 | + if( argc==2 ){ | |
| 193622 | + /* With a single PATH argument */ | |
| 193623 | + zPath = (const char*)sqlite3_value_text(argv[1]); | |
| 193624 | + if( zPath==0 ) return; | |
| 193625 | + if( flags & JSON_ABPATH ){ | |
| 193626 | + if( zPath[0]!='$' ){ | |
| 193627 | + /* The -> and ->> operators accept abbreviated PATH arguments. This | |
| 193628 | + ** is mostly for compatibility with PostgreSQL, but also for | |
| 193629 | + ** convenience. | |
| 193630 | + ** | |
| 193631 | + ** NUMBER ==> $[NUMBER] // PG compatible | |
| 193632 | + ** LABEL ==> $.LABEL // PG compatible | |
| 193633 | + ** [NUMBER] ==> $[NUMBER] // Not PG. Purely for convenience | |
| 193634 | + */ | |
| 193635 | + jsonInit(&jx, ctx); | |
| 193636 | + if( sqlite3Isdigit(zPath[0]) ){ | |
| 193637 | + jsonAppendRaw(&jx, "$[", 2); | |
| 193638 | + jsonAppendRaw(&jx, zPath, (int)strlen(zPath)); | |
| 193639 | + jsonAppendRaw(&jx, "]", 2); | |
| 193640 | + }else{ | |
| 193641 | + jsonAppendRaw(&jx, "$.", 1 + (zPath[0]!='[')); | |
| 193642 | + jsonAppendRaw(&jx, zPath, (int)strlen(zPath)); | |
| 193643 | + jsonAppendChar(&jx, 0); | |
| 193644 | + } | |
| 193645 | + pNode = jx.bErr ? 0 : jsonLookup(p, jx.zBuf, 0, ctx); | |
| 193646 | + jsonReset(&jx); | |
| 193647 | + }else{ | |
| 193648 | + pNode = jsonLookup(p, zPath, 0, ctx); | |
| 193649 | + } | |
| 193650 | + if( pNode ){ | |
| 193651 | + if( flags & JSON_JSON ){ | |
| 193652 | + jsonReturnJson(pNode, ctx, 0); | |
| 193653 | + }else{ | |
| 193654 | + jsonReturn(pNode, ctx, 0); | |
| 193655 | + sqlite3_result_subtype(ctx, 0); | |
| 193656 | + } | |
| 193657 | + } | |
| 193658 | + }else{ | |
| 193659 | + pNode = jsonLookup(p, zPath, 0, ctx); | |
| 193660 | + if( p->nErr==0 && pNode ) jsonReturn(pNode, ctx, 0); | |
| 193661 | + } | |
| 193662 | + }else{ | |
| 193663 | + /* Two or more PATH arguments results in a JSON array with each | |
| 193664 | + ** element of the array being the value selected by one of the PATHs */ | |
| 193665 | + int i; | |
| 193666 | + jsonInit(&jx, ctx); | |
| 193667 | + jsonAppendChar(&jx, '['); | |
| 193668 | + for(i=1; i<argc; i++){ | |
| 193669 | + zPath = (const char*)sqlite3_value_text(argv[i]); | |
| 193670 | + pNode = jsonLookup(p, zPath, 0, ctx); | |
| 193671 | + if( p->nErr ) break; | |
| 193640 | 193672 | jsonAppendSeparator(&jx); |
| 193641 | 193673 | if( pNode ){ |
| 193642 | 193674 | jsonRenderNode(pNode, &jx, 0); |
| 193643 | 193675 | }else{ |
| 193644 | 193676 | jsonAppendRaw(&jx, "null", 4); |
| 193645 | 193677 | } |
| 193646 | - }else if( pNode ){ | |
| 193647 | - jsonReturn(pNode, ctx, 0); | |
| 193648 | - } | |
| 193649 | - } | |
| 193650 | - if( argc>2 && i==argc ){ | |
| 193651 | - jsonAppendChar(&jx, ']'); | |
| 193652 | - jsonResult(&jx); | |
| 193653 | - sqlite3_result_subtype(ctx, JSON_SUBTYPE); | |
| 193654 | - } | |
| 193655 | - jsonReset(&jx); | |
| 193678 | + } | |
| 193679 | + if( i==argc ){ | |
| 193680 | + jsonAppendChar(&jx, ']'); | |
| 193681 | + jsonResult(&jx); | |
| 193682 | + sqlite3_result_subtype(ctx, JSON_SUBTYPE); | |
| 193683 | + } | |
| 193684 | + jsonReset(&jx); | |
| 193685 | + } | |
| 193656 | 193686 | } |
| 193657 | 193687 | |
| 193658 | 193688 | /* This is the RFC 7396 MergePatch algorithm. |
| 193659 | 193689 | */ |
| 193660 | 193690 | static JsonNode *jsonMergePatch( |
| @@ -193746,11 +193776,11 @@ | ||
| 193746 | 193776 | ){ |
| 193747 | 193777 | JsonParse x; /* The JSON that is being patched */ |
| 193748 | 193778 | JsonParse y; /* The patch */ |
| 193749 | 193779 | JsonNode *pResult; /* The result of the merge */ |
| 193750 | 193780 | |
| 193751 | - UNUSED_PARAM(argc); | |
| 193781 | + UNUSED_PARAMETER(argc); | |
| 193752 | 193782 | if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return; |
| 193753 | 193783 | if( jsonParse(&y, ctx, (const char*)sqlite3_value_text(argv[1])) ){ |
| 193754 | 193784 | jsonParseReset(&x); |
| 193755 | 193785 | return; |
| 193756 | 193786 | } |
| @@ -193867,11 +193897,11 @@ | ||
| 193867 | 193897 | zPath = (const char*)sqlite3_value_text(argv[i]); |
| 193868 | 193898 | pNode = jsonLookup(&x, zPath, 0, ctx); |
| 193869 | 193899 | if( x.nErr ) goto replace_err; |
| 193870 | 193900 | if( pNode ){ |
| 193871 | 193901 | assert( pNode->eU==0 || pNode->eU==1 || pNode->eU==4 ); |
| 193872 | - json_testcase( pNode->eU!=0 && pNode->eU!=1 ); | |
| 193902 | + testcase( pNode->eU!=0 && pNode->eU!=1 ); | |
| 193873 | 193903 | pNode->jnFlags |= (u8)JNODE_REPLACE; |
| 193874 | 193904 | VVA( pNode->eU = 4 ); |
| 193875 | 193905 | pNode->u.iReplace = i + 1; |
| 193876 | 193906 | } |
| 193877 | 193907 | } |
| @@ -193882,10 +193912,11 @@ | ||
| 193882 | 193912 | jsonReturnJson(x.aNode, ctx, argv); |
| 193883 | 193913 | } |
| 193884 | 193914 | replace_err: |
| 193885 | 193915 | jsonParseReset(&x); |
| 193886 | 193916 | } |
| 193917 | + | |
| 193887 | 193918 | |
| 193888 | 193919 | /* |
| 193889 | 193920 | ** json_set(JSON, PATH, VALUE, ...) |
| 193890 | 193921 | ** |
| 193891 | 193922 | ** Set the value at PATH to VALUE. Create the PATH if it does not already |
| @@ -193905,11 +193936,11 @@ | ||
| 193905 | 193936 | JsonParse x; /* The parse */ |
| 193906 | 193937 | JsonNode *pNode; |
| 193907 | 193938 | const char *zPath; |
| 193908 | 193939 | u32 i; |
| 193909 | 193940 | int bApnd; |
| 193910 | - int bIsSet = *(int*)sqlite3_user_data(ctx); | |
| 193941 | + int bIsSet = sqlite3_user_data(ctx)!=0; | |
| 193911 | 193942 | |
| 193912 | 193943 | if( argc<1 ) return; |
| 193913 | 193944 | if( (argc&1)==0 ) { |
| 193914 | 193945 | jsonWrongNumArgs(ctx, bIsSet ? "set" : "insert"); |
| 193915 | 193946 | return; |
| @@ -193924,11 +193955,11 @@ | ||
| 193924 | 193955 | sqlite3_result_error_nomem(ctx); |
| 193925 | 193956 | goto jsonSetDone; |
| 193926 | 193957 | }else if( x.nErr ){ |
| 193927 | 193958 | goto jsonSetDone; |
| 193928 | 193959 | }else if( pNode && (bApnd || bIsSet) ){ |
| 193929 | - json_testcase( pNode->eU!=0 && pNode->eU!=1 && pNode->eU!=4 ); | |
| 193960 | + testcase( pNode->eU!=0 && pNode->eU!=1 && pNode->eU!=4 ); | |
| 193930 | 193961 | assert( pNode->eU!=3 || pNode->eU!=5 ); |
| 193931 | 193962 | VVA( pNode->eU = 4 ); |
| 193932 | 193963 | pNode->jnFlags |= (u8)JNODE_REPLACE; |
| 193933 | 193964 | pNode->u.iReplace = i + 1; |
| 193934 | 193965 | } |
| @@ -193945,12 +193976,12 @@ | ||
| 193945 | 193976 | |
| 193946 | 193977 | /* |
| 193947 | 193978 | ** json_type(JSON) |
| 193948 | 193979 | ** json_type(JSON, PATH) |
| 193949 | 193980 | ** |
| 193950 | -** Return the top-level "type" of a JSON string. Throw an error if | |
| 193951 | -** either the JSON or PATH inputs are not well-formed. | |
| 193981 | +** Return the top-level "type" of a JSON string. json_type() raises an | |
| 193982 | +** error if either the JSON or PATH inputs are not well-formed. | |
| 193952 | 193983 | */ |
| 193953 | 193984 | static void jsonTypeFunc( |
| 193954 | 193985 | sqlite3_context *ctx, |
| 193955 | 193986 | int argc, |
| 193956 | 193987 | sqlite3_value **argv |
| @@ -193982,11 +194013,11 @@ | ||
| 193982 | 194013 | sqlite3_context *ctx, |
| 193983 | 194014 | int argc, |
| 193984 | 194015 | sqlite3_value **argv |
| 193985 | 194016 | ){ |
| 193986 | 194017 | JsonParse *p; /* The parse */ |
| 193987 | - UNUSED_PARAM(argc); | |
| 194018 | + UNUSED_PARAMETER(argc); | |
| 193988 | 194019 | p = jsonParseCached(ctx, argv, 0); |
| 193989 | 194020 | sqlite3_result_int(ctx, p!=0); |
| 193990 | 194021 | } |
| 193991 | 194022 | |
| 193992 | 194023 | |
| @@ -194002,11 +194033,11 @@ | ||
| 194002 | 194033 | sqlite3_context *ctx, |
| 194003 | 194034 | int argc, |
| 194004 | 194035 | sqlite3_value **argv |
| 194005 | 194036 | ){ |
| 194006 | 194037 | JsonString *pStr; |
| 194007 | - UNUSED_PARAM(argc); | |
| 194038 | + UNUSED_PARAMETER(argc); | |
| 194008 | 194039 | pStr = (JsonString*)sqlite3_aggregate_context(ctx, sizeof(*pStr)); |
| 194009 | 194040 | if( pStr ){ |
| 194010 | 194041 | if( pStr->zBuf==0 ){ |
| 194011 | 194042 | jsonInit(pStr, ctx); |
| 194012 | 194043 | jsonAppendChar(pStr, '['); |
| @@ -194062,12 +194093,12 @@ | ||
| 194062 | 194093 | int inStr = 0; |
| 194063 | 194094 | int nNest = 0; |
| 194064 | 194095 | char *z; |
| 194065 | 194096 | char c; |
| 194066 | 194097 | JsonString *pStr; |
| 194067 | - UNUSED_PARAM(argc); | |
| 194068 | - UNUSED_PARAM(argv); | |
| 194098 | + UNUSED_PARAMETER(argc); | |
| 194099 | + UNUSED_PARAMETER(argv); | |
| 194069 | 194100 | pStr = (JsonString*)sqlite3_aggregate_context(ctx, 0); |
| 194070 | 194101 | #ifdef NEVER |
| 194071 | 194102 | /* pStr is always non-NULL since jsonArrayStep() or jsonObjectStep() will |
| 194072 | 194103 | ** always have been called to initalize it */ |
| 194073 | 194104 | if( NEVER(!pStr) ) return; |
| @@ -194107,11 +194138,11 @@ | ||
| 194107 | 194138 | sqlite3_value **argv |
| 194108 | 194139 | ){ |
| 194109 | 194140 | JsonString *pStr; |
| 194110 | 194141 | const char *z; |
| 194111 | 194142 | u32 n; |
| 194112 | - UNUSED_PARAM(argc); | |
| 194143 | + UNUSED_PARAMETER(argc); | |
| 194113 | 194144 | pStr = (JsonString*)sqlite3_aggregate_context(ctx, sizeof(*pStr)); |
| 194114 | 194145 | if( pStr ){ |
| 194115 | 194146 | if( pStr->zBuf==0 ){ |
| 194116 | 194147 | jsonInit(pStr, ctx); |
| 194117 | 194148 | jsonAppendChar(pStr, '{'); |
| @@ -194198,14 +194229,14 @@ | ||
| 194198 | 194229 | ** the last two columns in the table. Should this ever changes, be |
| 194199 | 194230 | ** sure to update the xBestIndex method. */ |
| 194200 | 194231 | #define JEACH_JSON 8 |
| 194201 | 194232 | #define JEACH_ROOT 9 |
| 194202 | 194233 | |
| 194203 | - UNUSED_PARAM(pzErr); | |
| 194204 | - UNUSED_PARAM(argv); | |
| 194205 | - UNUSED_PARAM(argc); | |
| 194206 | - UNUSED_PARAM(pAux); | |
| 194234 | + UNUSED_PARAMETER(pzErr); | |
| 194235 | + UNUSED_PARAMETER(argv); | |
| 194236 | + UNUSED_PARAMETER(argc); | |
| 194237 | + UNUSED_PARAMETER(pAux); | |
| 194207 | 194238 | rc = sqlite3_declare_vtab(db, |
| 194208 | 194239 | "CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path," |
| 194209 | 194240 | "json HIDDEN,root HIDDEN)"); |
| 194210 | 194241 | if( rc==SQLITE_OK ){ |
| 194211 | 194242 | pNew = *ppVtab = sqlite3_malloc( sizeof(*pNew) ); |
| @@ -194224,11 +194255,11 @@ | ||
| 194224 | 194255 | |
| 194225 | 194256 | /* constructor for a JsonEachCursor object for json_each(). */ |
| 194226 | 194257 | static int jsonEachOpenEach(sqlite3_vtab *p, sqlite3_vtab_cursor **ppCursor){ |
| 194227 | 194258 | JsonEachCursor *pCur; |
| 194228 | 194259 | |
| 194229 | - UNUSED_PARAM(p); | |
| 194260 | + UNUSED_PARAMETER(p); | |
| 194230 | 194261 | pCur = sqlite3_malloc( sizeof(*pCur) ); |
| 194231 | 194262 | if( pCur==0 ) return SQLITE_NOMEM; |
| 194232 | 194263 | memset(pCur, 0, sizeof(*pCur)); |
| 194233 | 194264 | *ppCursor = &pCur->base; |
| 194234 | 194265 | return SQLITE_OK; |
| @@ -194284,11 +194315,11 @@ | ||
| 194284 | 194315 | u32 iUp = p->sParse.aUp[p->i]; |
| 194285 | 194316 | JsonNode *pUp = &p->sParse.aNode[iUp]; |
| 194286 | 194317 | p->eType = pUp->eType; |
| 194287 | 194318 | if( pUp->eType==JSON_ARRAY ){ |
| 194288 | 194319 | assert( pUp->eU==0 || pUp->eU==3 ); |
| 194289 | - json_testcase( pUp->eU==3 ); | |
| 194320 | + testcase( pUp->eU==3 ); | |
| 194290 | 194321 | VVA( pUp->eU = 3 ); |
| 194291 | 194322 | if( iUp==p->i-1 ){ |
| 194292 | 194323 | pUp->u.iKey = 0; |
| 194293 | 194324 | }else{ |
| 194294 | 194325 | pUp->u.iKey++; |
| @@ -194471,11 +194502,11 @@ | ||
| 194471 | 194502 | const struct sqlite3_index_constraint *pConstraint; |
| 194472 | 194503 | |
| 194473 | 194504 | /* This implementation assumes that JSON and ROOT are the last two |
| 194474 | 194505 | ** columns in the table */ |
| 194475 | 194506 | assert( JEACH_ROOT == JEACH_JSON+1 ); |
| 194476 | - UNUSED_PARAM(tab); | |
| 194507 | + UNUSED_PARAMETER(tab); | |
| 194477 | 194508 | aIdx[0] = aIdx[1] = -1; |
| 194478 | 194509 | pConstraint = pIdxInfo->aConstraint; |
| 194479 | 194510 | for(i=0; i<pIdxInfo->nConstraint; i++, pConstraint++){ |
| 194480 | 194511 | int iCol; |
| 194481 | 194512 | int iMask; |
| @@ -194527,12 +194558,12 @@ | ||
| 194527 | 194558 | JsonEachCursor *p = (JsonEachCursor*)cur; |
| 194528 | 194559 | const char *z; |
| 194529 | 194560 | const char *zRoot = 0; |
| 194530 | 194561 | sqlite3_int64 n; |
| 194531 | 194562 | |
| 194532 | - UNUSED_PARAM(idxStr); | |
| 194533 | - UNUSED_PARAM(argc); | |
| 194563 | + UNUSED_PARAMETER(idxStr); | |
| 194564 | + UNUSED_PARAMETER(argc); | |
| 194534 | 194565 | jsonEachCursorReset(p); |
| 194535 | 194566 | if( idxNum==0 ) return SQLITE_OK; |
| 194536 | 194567 | z = (const char*)sqlite3_value_text(argv[0]); |
| 194537 | 194568 | if( z==0 ) return SQLITE_OK; |
| 194538 | 194569 | n = sqlite3_value_bytes(argv[0]); |
| @@ -194653,112 +194684,72 @@ | ||
| 194653 | 194684 | 0, /* xRelease */ |
| 194654 | 194685 | 0, /* xRollbackTo */ |
| 194655 | 194686 | 0 /* xShadowName */ |
| 194656 | 194687 | }; |
| 194657 | 194688 | #endif /* SQLITE_OMIT_VIRTUALTABLE */ |
| 194658 | - | |
| 194659 | -/**************************************************************************** | |
| 194660 | -** The following routines are the only publically visible identifiers in this | |
| 194661 | -** file. Call the following routines in order to register the various SQL | |
| 194662 | -** functions and the virtual table implemented by this file. | |
| 194663 | -****************************************************************************/ | |
| 194664 | - | |
| 194665 | -SQLITE_PRIVATE int sqlite3Json1Init(sqlite3 *db){ | |
| 194666 | - int rc = SQLITE_OK; | |
| 194667 | - unsigned int i; | |
| 194668 | - static const struct { | |
| 194669 | - const char *zName; | |
| 194670 | - int nArg; | |
| 194671 | - int flag; | |
| 194672 | - void (*xFunc)(sqlite3_context*,int,sqlite3_value**); | |
| 194673 | - } aFunc[] = { | |
| 194674 | - { "json", 1, 0, jsonRemoveFunc }, | |
| 194675 | - { "json_array", -1, 0, jsonArrayFunc }, | |
| 194676 | - { "json_array_length", 1, 0, jsonArrayLengthFunc }, | |
| 194677 | - { "json_array_length", 2, 0, jsonArrayLengthFunc }, | |
| 194678 | - { "json_extract", -1, 0, jsonExtractFunc }, | |
| 194679 | - { "json_insert", -1, 0, jsonSetFunc }, | |
| 194680 | - { "json_object", -1, 0, jsonObjectFunc }, | |
| 194681 | - { "json_patch", 2, 0, jsonPatchFunc }, | |
| 194682 | - { "json_quote", 1, 0, jsonQuoteFunc }, | |
| 194683 | - { "json_remove", -1, 0, jsonRemoveFunc }, | |
| 194684 | - { "json_replace", -1, 0, jsonReplaceFunc }, | |
| 194685 | - { "json_set", -1, 1, jsonSetFunc }, | |
| 194686 | - { "json_type", 1, 0, jsonTypeFunc }, | |
| 194687 | - { "json_type", 2, 0, jsonTypeFunc }, | |
| 194688 | - { "json_valid", 1, 0, jsonValidFunc }, | |
| 194689 | - | |
| 194689 | +#endif /* !defined(SQLITE_OMIT_JSON) */ | |
| 194690 | + | |
| 194691 | +/* | |
| 194692 | +** Register JSON functions. | |
| 194693 | +*/ | |
| 194694 | +SQLITE_PRIVATE void sqlite3RegisterJsonFunctions(void){ | |
| 194695 | +#ifndef SQLITE_OMIT_JSON | |
| 194696 | + static FuncDef aJsonFunc[] = { | |
| 194697 | + JFUNCTION(json, 1, 0, jsonRemoveFunc), | |
| 194698 | + JFUNCTION(json_array, -1, 0, jsonArrayFunc), | |
| 194699 | + JFUNCTION(json_array_length, 1, 0, jsonArrayLengthFunc), | |
| 194700 | + JFUNCTION(json_array_length, 2, 0, jsonArrayLengthFunc), | |
| 194701 | + JFUNCTION(json_extract, -1, 0, jsonExtractFunc), | |
| 194702 | + JFUNCTION(->, 2, JSON_JSON, jsonExtractFunc), | |
| 194703 | + JFUNCTION(->>, 2, JSON_SQL, jsonExtractFunc), | |
| 194704 | + JFUNCTION(json_insert, -1, 0, jsonSetFunc), | |
| 194705 | + JFUNCTION(json_object, -1, 0, jsonObjectFunc), | |
| 194706 | + JFUNCTION(json_patch, 2, 0, jsonPatchFunc), | |
| 194707 | + JFUNCTION(json_quote, 1, 0, jsonQuoteFunc), | |
| 194708 | + JFUNCTION(json_remove, -1, 0, jsonRemoveFunc), | |
| 194709 | + JFUNCTION(json_replace, -1, 0, jsonReplaceFunc), | |
| 194710 | + JFUNCTION(json_set, -1, JSON_ISSET, jsonSetFunc), | |
| 194711 | + JFUNCTION(json_type, 1, 0, jsonTypeFunc), | |
| 194712 | + JFUNCTION(json_type, 2, 0, jsonTypeFunc), | |
| 194713 | + JFUNCTION(json_valid, 1, 0, jsonValidFunc), | |
| 194690 | 194714 | #if SQLITE_DEBUG |
| 194691 | - /* DEBUG and TESTING functions */ | |
| 194692 | - { "json_parse", 1, 0, jsonParseFunc }, | |
| 194693 | - { "json_test1", 1, 0, jsonTest1Func }, | |
| 194694 | -#endif | |
| 194695 | - }; | |
| 194696 | - static const struct { | |
| 194697 | - const char *zName; | |
| 194698 | - int nArg; | |
| 194699 | - void (*xStep)(sqlite3_context*,int,sqlite3_value**); | |
| 194700 | - void (*xFinal)(sqlite3_context*); | |
| 194701 | - void (*xValue)(sqlite3_context*); | |
| 194702 | - } aAgg[] = { | |
| 194703 | - { "json_group_array", 1, | |
| 194704 | - jsonArrayStep, jsonArrayFinal, jsonArrayValue }, | |
| 194705 | - { "json_group_object", 2, | |
| 194706 | - jsonObjectStep, jsonObjectFinal, jsonObjectValue }, | |
| 194707 | - }; | |
| 194708 | -#ifndef SQLITE_OMIT_VIRTUALTABLE | |
| 194709 | - static const struct { | |
| 194710 | - const char *zName; | |
| 194711 | - sqlite3_module *pModule; | |
| 194715 | + JFUNCTION(json_parse, 1, 0, jsonParseFunc), | |
| 194716 | + JFUNCTION(json_test1, 1, 0, jsonTest1Func), | |
| 194717 | +#endif | |
| 194718 | + WAGGREGATE(json_group_array, 1, 0, 0, | |
| 194719 | + jsonArrayStep, jsonArrayFinal, jsonArrayValue, jsonGroupInverse, | |
| 194720 | + SQLITE_SUBTYPE|SQLITE_UTF8|SQLITE_DETERMINISTIC|SQLITE_INNOCUOUS), | |
| 194721 | + WAGGREGATE(json_group_object, 2, 0, 0, | |
| 194722 | + jsonObjectStep, jsonObjectFinal, jsonObjectValue, jsonGroupInverse, | |
| 194723 | + SQLITE_SUBTYPE|SQLITE_UTF8|SQLITE_DETERMINISTIC|SQLITE_INNOCUOUS) | |
| 194724 | + }; | |
| 194725 | + sqlite3InsertBuiltinFuncs(aJsonFunc, ArraySize(aJsonFunc)); | |
| 194726 | +#endif | |
| 194727 | +} | |
| 194728 | + | |
| 194729 | +#if !defined(SQLITE_OMIT_VIRTUALTABLE) && !defined(SQLITE_OMIT_JSON) | |
| 194730 | +/* | |
| 194731 | +** Register the JSON table-valued functions | |
| 194732 | +*/ | |
| 194733 | +SQLITE_PRIVATE int sqlite3JsonTableFunctions(sqlite3 *db){ | |
| 194734 | + int rc = SQLITE_OK; | |
| 194735 | + static const struct { | |
| 194736 | + const char *zName; | |
| 194737 | + sqlite3_module *pModule; | |
| 194712 | 194738 | } aMod[] = { |
| 194713 | 194739 | { "json_each", &jsonEachModule }, |
| 194714 | 194740 | { "json_tree", &jsonTreeModule }, |
| 194715 | 194741 | }; |
| 194716 | -#endif | |
| 194717 | - static const int enc = | |
| 194718 | - SQLITE_UTF8 | | |
| 194719 | - SQLITE_DETERMINISTIC | | |
| 194720 | - SQLITE_INNOCUOUS; | |
| 194721 | - for(i=0; i<sizeof(aFunc)/sizeof(aFunc[0]) && rc==SQLITE_OK; i++){ | |
| 194722 | - rc = sqlite3_create_function(db, aFunc[i].zName, aFunc[i].nArg, enc, | |
| 194723 | - (void*)&aFunc[i].flag, | |
| 194724 | - aFunc[i].xFunc, 0, 0); | |
| 194725 | - } | |
| 194726 | -#ifndef SQLITE_OMIT_WINDOWFUNC | |
| 194727 | - for(i=0; i<sizeof(aAgg)/sizeof(aAgg[0]) && rc==SQLITE_OK; i++){ | |
| 194728 | - rc = sqlite3_create_window_function(db, aAgg[i].zName, aAgg[i].nArg, | |
| 194729 | - SQLITE_SUBTYPE | enc, 0, | |
| 194730 | - aAgg[i].xStep, aAgg[i].xFinal, | |
| 194731 | - aAgg[i].xValue, jsonGroupInverse, 0); | |
| 194732 | - } | |
| 194733 | -#endif | |
| 194734 | -#ifndef SQLITE_OMIT_VIRTUALTABLE | |
| 194742 | + int i; | |
| 194735 | 194743 | for(i=0; i<sizeof(aMod)/sizeof(aMod[0]) && rc==SQLITE_OK; i++){ |
| 194736 | 194744 | rc = sqlite3_create_module(db, aMod[i].zName, aMod[i].pModule, 0); |
| 194737 | 194745 | } |
| 194738 | -#endif | |
| 194739 | 194746 | return rc; |
| 194740 | 194747 | } |
| 194741 | - | |
| 194742 | - | |
| 194743 | -#ifndef SQLITE_CORE | |
| 194744 | -#ifdef _WIN32 | |
| 194745 | -__declspec(dllexport) | |
| 194746 | -#endif | |
| 194747 | -SQLITE_API int sqlite3_json_init( | |
| 194748 | - sqlite3 *db, | |
| 194749 | - char **pzErrMsg, | |
| 194750 | - const sqlite3_api_routines *pApi | |
| 194751 | -){ | |
| 194752 | - SQLITE_EXTENSION_INIT2(pApi); | |
| 194753 | - (void)pzErrMsg; /* Unused parameter */ | |
| 194754 | - return sqlite3Json1Init(db); | |
| 194755 | -} | |
| 194756 | -#endif | |
| 194757 | -#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_JSON1) */ | |
| 194758 | - | |
| 194759 | -/************** End of json1.c ***********************************************/ | |
| 194748 | +#endif /* !defined(SQLITE_OMIT_VIRTUALTABLE) && !defined(SQLITE_OMIT_JSON) */ | |
| 194749 | + | |
| 194750 | +/************** End of json.c ************************************************/ | |
| 194760 | 194751 | /************** Begin file rtree.c *******************************************/ |
| 194761 | 194752 | /* |
| 194762 | 194753 | ** 2001 September 15 |
| 194763 | 194754 | ** |
| 194764 | 194755 | ** The author disclaims copyright to this source code. In place of |
| @@ -199188,15 +199179,11 @@ | ||
| 199188 | 199179 | # define GEODEBUG(X) if(geo_debug)printf X |
| 199189 | 199180 | #else |
| 199190 | 199181 | # define GEODEBUG(X) |
| 199191 | 199182 | #endif |
| 199192 | 199183 | |
| 199193 | -#ifndef JSON_NULL /* The following stuff repeats things found in json1 */ | |
| 199194 | -/* | |
| 199195 | -** Versions of isspace(), isalnum() and isdigit() to which it is safe | |
| 199196 | -** to pass signed char values. | |
| 199197 | -*/ | |
| 199184 | +/* Character class routines */ | |
| 199198 | 199185 | #ifdef sqlite3Isdigit |
| 199199 | 199186 | /* Use the SQLite core versions if this routine is part of the |
| 199200 | 199187 | ** SQLite amalgamation */ |
| 199201 | 199188 | # define safe_isdigit(x) sqlite3Isdigit(x) |
| 199202 | 199189 | # define safe_isalnum(x) sqlite3Isalnum(x) |
| @@ -199207,10 +199194,11 @@ | ||
| 199207 | 199194 | # define safe_isdigit(x) isdigit((unsigned char)(x)) |
| 199208 | 199195 | # define safe_isalnum(x) isalnum((unsigned char)(x)) |
| 199209 | 199196 | # define safe_isxdigit(x) isxdigit((unsigned char)(x)) |
| 199210 | 199197 | #endif |
| 199211 | 199198 | |
| 199199 | +#ifndef JSON_NULL /* The following stuff repeats things found in json1 */ | |
| 199212 | 199200 | /* |
| 199213 | 199201 | ** Growing our own isspace() routine this way is twice as fast as |
| 199214 | 199202 | ** the library isspace() function. |
| 199215 | 199203 | */ |
| 199216 | 199204 | static const char geopolyIsSpace[] = { |
| @@ -199229,11 +199217,11 @@ | ||
| 199229 | 199217 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 199230 | 199218 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 199231 | 199219 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 199232 | 199220 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 199233 | 199221 | }; |
| 199234 | -#define safe_isspace(x) (geopolyIsSpace[(unsigned char)x]) | |
| 199222 | +#define fast_isspace(x) (geopolyIsSpace[(unsigned char)x]) | |
| 199235 | 199223 | #endif /* JSON NULL - back to original code */ |
| 199236 | 199224 | |
| 199237 | 199225 | /* Compiler and version */ |
| 199238 | 199226 | #ifndef GCC_VERSION |
| 199239 | 199227 | #if defined(__GNUC__) && !defined(SQLITE_DISABLE_INTRINSIC) |
| @@ -199318,11 +199306,11 @@ | ||
| 199318 | 199306 | a[2] = t; |
| 199319 | 199307 | } |
| 199320 | 199308 | |
| 199321 | 199309 | /* Skip whitespace. Return the next non-whitespace character. */ |
| 199322 | 199310 | static char geopolySkipSpace(GeoParse *p){ |
| 199323 | - while( safe_isspace(p->z[0]) ) p->z++; | |
| 199311 | + while( fast_isspace(p->z[0]) ) p->z++; | |
| 199324 | 199312 | return p->z[0]; |
| 199325 | 199313 | } |
| 199326 | 199314 | |
| 199327 | 199315 | /* Parse out a number. Write the value into *pVal if pVal!=0. |
| 199328 | 199316 | ** return non-zero on success and zero if the next token is not a number. |
| @@ -233346,11 +233334,11 @@ | ||
| 233346 | 233334 | int nArg, /* Number of args */ |
| 233347 | 233335 | sqlite3_value **apUnused /* Function arguments */ |
| 233348 | 233336 | ){ |
| 233349 | 233337 | assert( nArg==0 ); |
| 233350 | 233338 | UNUSED_PARAM2(nArg, apUnused); |
| 233351 | - sqlite3_result_text(pCtx, "fts5: 2022-01-06 17:13:56 2d6a16caa7d28ad5c766036b2eb6c2020683fcc9389b3c7df2013739929dd36f", -1, SQLITE_TRANSIENT); | |
| 233339 | + sqlite3_result_text(pCtx, "fts5: 2022-01-12 00:28:12 adebb9d7478d092f16fb0ef7d5246ce152b166479d6f949110b5878b89ea2cec", -1, SQLITE_TRANSIENT); | |
| 233352 | 233340 | } |
| 233353 | 233341 | |
| 233354 | 233342 | /* |
| 233355 | 233343 | ** Return true if zName is the extension on one of the shadow tables used |
| 233356 | 233344 | ** by this module. |
| 233357 | 233345 |
| --- extsrc/sqlite3.c | |
| +++ extsrc/sqlite3.c | |
| @@ -452,11 +452,11 @@ | |
| 452 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 453 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 454 | */ |
| 455 | #define SQLITE_VERSION "3.38.0" |
| 456 | #define SQLITE_VERSION_NUMBER 3038000 |
| 457 | #define SQLITE_SOURCE_ID "2022-01-06 17:13:56 2d6a16caa7d28ad5c766036b2eb6c2020683fcc9389b3c7df2013739929dd36f" |
| 458 | |
| 459 | /* |
| 460 | ** CAPI3REF: Run-Time Library Version Numbers |
| 461 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 462 | ** |
| @@ -13593,14 +13593,14 @@ | |
| 13593 | #define TK_DETACH 40 |
| 13594 | #define TK_EACH 41 |
| 13595 | #define TK_FAIL 42 |
| 13596 | #define TK_OR 43 |
| 13597 | #define TK_AND 44 |
| 13598 | #define TK_MATCH 45 |
| 13599 | #define TK_LIKE_KW 46 |
| 13600 | #define TK_BETWEEN 47 |
| 13601 | #define TK_IS 48 |
| 13602 | #define TK_IN 49 |
| 13603 | #define TK_ISNULL 50 |
| 13604 | #define TK_NOTNULL 51 |
| 13605 | #define TK_NE 52 |
| 13606 | #define TK_EQ 53 |
| @@ -13660,82 +13660,83 @@ | |
| 13660 | #define TK_MINUS 107 |
| 13661 | #define TK_STAR 108 |
| 13662 | #define TK_SLASH 109 |
| 13663 | #define TK_REM 110 |
| 13664 | #define TK_CONCAT 111 |
| 13665 | #define TK_COLLATE 112 |
| 13666 | #define TK_BITNOT 113 |
| 13667 | #define TK_ON 114 |
| 13668 | #define TK_INDEXED 115 |
| 13669 | #define TK_STRING 116 |
| 13670 | #define TK_JOIN_KW 117 |
| 13671 | #define TK_CONSTRAINT 118 |
| 13672 | #define TK_DEFAULT 119 |
| 13673 | #define TK_NULL 120 |
| 13674 | #define TK_PRIMARY 121 |
| 13675 | #define TK_UNIQUE 122 |
| 13676 | #define TK_CHECK 123 |
| 13677 | #define TK_REFERENCES 124 |
| 13678 | #define TK_AUTOINCR 125 |
| 13679 | #define TK_INSERT 126 |
| 13680 | #define TK_DELETE 127 |
| 13681 | #define TK_UPDATE 128 |
| 13682 | #define TK_SET 129 |
| 13683 | #define TK_DEFERRABLE 130 |
| 13684 | #define TK_FOREIGN 131 |
| 13685 | #define TK_DROP 132 |
| 13686 | #define TK_UNION 133 |
| 13687 | #define TK_ALL 134 |
| 13688 | #define TK_EXCEPT 135 |
| 13689 | #define TK_INTERSECT 136 |
| 13690 | #define TK_SELECT 137 |
| 13691 | #define TK_VALUES 138 |
| 13692 | #define TK_DISTINCT 139 |
| 13693 | #define TK_DOT 140 |
| 13694 | #define TK_FROM 141 |
| 13695 | #define TK_JOIN 142 |
| 13696 | #define TK_USING 143 |
| 13697 | #define TK_ORDER 144 |
| 13698 | #define TK_GROUP 145 |
| 13699 | #define TK_HAVING 146 |
| 13700 | #define TK_LIMIT 147 |
| 13701 | #define TK_WHERE 148 |
| 13702 | #define TK_RETURNING 149 |
| 13703 | #define TK_INTO 150 |
| 13704 | #define TK_NOTHING 151 |
| 13705 | #define TK_FLOAT 152 |
| 13706 | #define TK_BLOB 153 |
| 13707 | #define TK_INTEGER 154 |
| 13708 | #define TK_VARIABLE 155 |
| 13709 | #define TK_CASE 156 |
| 13710 | #define TK_WHEN 157 |
| 13711 | #define TK_THEN 158 |
| 13712 | #define TK_ELSE 159 |
| 13713 | #define TK_INDEX 160 |
| 13714 | #define TK_ALTER 161 |
| 13715 | #define TK_ADD 162 |
| 13716 | #define TK_WINDOW 163 |
| 13717 | #define TK_OVER 164 |
| 13718 | #define TK_FILTER 165 |
| 13719 | #define TK_COLUMN 166 |
| 13720 | #define TK_AGG_FUNCTION 167 |
| 13721 | #define TK_AGG_COLUMN 168 |
| 13722 | #define TK_TRUEFALSE 169 |
| 13723 | #define TK_ISNOT 170 |
| 13724 | #define TK_FUNCTION 171 |
| 13725 | #define TK_UMINUS 172 |
| 13726 | #define TK_UPLUS 173 |
| 13727 | #define TK_TRUTH 174 |
| 13728 | #define TK_REGISTER 175 |
| 13729 | #define TK_VECTOR 176 |
| 13730 | #define TK_SELECT_COLUMN 177 |
| 13731 | #define TK_IF_NULL_ROW 178 |
| 13732 | #define TK_ASTERISK 179 |
| 13733 | #define TK_SPAN 180 |
| 13734 | #define TK_ERROR 181 |
| 13735 | #define TK_SPACE 182 |
| 13736 | #define TK_ILLEGAL 183 |
| 13737 | |
| 13738 | /************** End of parse.h ***********************************************/ |
| 13739 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 13740 | #include <stdio.h> |
| 13741 | #include <stdlib.h> |
| @@ -15342,15 +15343,15 @@ | |
| 15342 | #define OP_Multiply 108 /* same as TK_STAR, synopsis: r[P3]=r[P1]*r[P2] */ |
| 15343 | #define OP_Divide 109 /* same as TK_SLASH, synopsis: r[P3]=r[P2]/r[P1] */ |
| 15344 | #define OP_Remainder 110 /* same as TK_REM, synopsis: r[P3]=r[P2]%r[P1] */ |
| 15345 | #define OP_Concat 111 /* same as TK_CONCAT, synopsis: r[P3]=r[P2]+r[P1] */ |
| 15346 | #define OP_OpenWrite 112 /* synopsis: root=P2 iDb=P3 */ |
| 15347 | #define OP_BitNot 113 /* same as TK_BITNOT, synopsis: r[P2]= ~r[P1] */ |
| 15348 | #define OP_OpenDup 114 |
| 15349 | #define OP_OpenAutoindex 115 /* synopsis: nColumn=P2 */ |
| 15350 | #define OP_String8 116 /* same as TK_STRING, synopsis: r[P2]='P4' */ |
| 15351 | #define OP_OpenEphemeral 117 /* synopsis: nColumn=P2 */ |
| 15352 | #define OP_SorterOpen 118 |
| 15353 | #define OP_SequenceTest 119 /* synopsis: if( cursor[P1].ctr++ ) pc = P2 */ |
| 15354 | #define OP_OpenPseudo 120 /* synopsis: P3 columns in r[P2] */ |
| 15355 | #define OP_Close 121 |
| 15356 | #define OP_ColumnsUsed 122 |
| @@ -15381,12 +15382,12 @@ | |
| 15381 | #define OP_SqlExec 147 |
| 15382 | #define OP_ParseSchema 148 |
| 15383 | #define OP_LoadAnalysis 149 |
| 15384 | #define OP_DropTable 150 |
| 15385 | #define OP_DropIndex 151 |
| 15386 | #define OP_Real 152 /* same as TK_FLOAT, synopsis: r[P2]=P4 */ |
| 15387 | #define OP_DropTrigger 153 |
| 15388 | #define OP_IntegrityCk 154 |
| 15389 | #define OP_RowSetAdd 155 /* synopsis: rowset(P1)=r[P2] */ |
| 15390 | #define OP_Param 156 |
| 15391 | #define OP_FkCounter 157 /* synopsis: fkctr[P1]+=P2 */ |
| 15392 | #define OP_MemMax 158 /* synopsis: r[P1]=max(r[P1],r[P2]) */ |
| @@ -15439,16 +15440,16 @@ | |
| 15439 | /* 72 */ 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x00, 0x00,\ |
| 15440 | /* 80 */ 0x10, 0x10, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02,\ |
| 15441 | /* 88 */ 0x00, 0x00, 0x12, 0x1e, 0x20, 0x00, 0x00, 0x00,\ |
| 15442 | /* 96 */ 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x26, 0x26,\ |
| 15443 | /* 104 */ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,\ |
| 15444 | /* 112 */ 0x00, 0x12, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,\ |
| 15445 | /* 120 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00,\ |
| 15446 | /* 128 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,\ |
| 15447 | /* 136 */ 0x00, 0x04, 0x04, 0x00, 0x00, 0x10, 0x00, 0x10,\ |
| 15448 | /* 144 */ 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,\ |
| 15449 | /* 152 */ 0x10, 0x00, 0x00, 0x06, 0x10, 0x00, 0x04, 0x1a,\ |
| 15450 | /* 160 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ |
| 15451 | /* 168 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,\ |
| 15452 | /* 176 */ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ |
| 15453 | } |
| 15454 | |
| @@ -16928,11 +16929,11 @@ | |
| 16928 | ** Used to create an aggregate function definition implemented by |
| 16929 | ** the C functions xStep and xFinal. The first four parameters |
| 16930 | ** are interpreted in the same way as the first 4 parameters to |
| 16931 | ** FUNCTION(). |
| 16932 | ** |
| 16933 | ** WFUNCTION(zName, nArg, iArg, xStep, xFinal, xValue, xInverse) |
| 16934 | ** Used to create an aggregate function definition implemented by |
| 16935 | ** the C functions xStep and xFinal. The first four parameters |
| 16936 | ** are interpreted in the same way as the first 4 parameters to |
| 16937 | ** FUNCTION(). |
| 16938 | ** |
| @@ -16955,10 +16956,14 @@ | |
| 16955 | {nArg, SQLITE_FUNC_BUILTIN|SQLITE_UTF8|SQLITE_DIRECTONLY|SQLITE_FUNC_UNSAFE, \ |
| 16956 | SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, 0, #zName, {0} } |
| 16957 | #define MFUNCTION(zName, nArg, xPtr, xFunc) \ |
| 16958 | {nArg, SQLITE_FUNC_BUILTIN|SQLITE_FUNC_CONSTANT|SQLITE_UTF8, \ |
| 16959 | xPtr, 0, xFunc, 0, 0, 0, #zName, {0} } |
| 16960 | #define INLINE_FUNC(zName, nArg, iArg, mFlags) \ |
| 16961 | {nArg, SQLITE_FUNC_BUILTIN|\ |
| 16962 | SQLITE_UTF8|SQLITE_FUNC_INLINE|SQLITE_FUNC_CONSTANT|(mFlags), \ |
| 16963 | SQLITE_INT_TO_PTR(iArg), 0, noopFunc, 0, 0, 0, #zName, {0} } |
| 16964 | #define TEST_FUNC(zName, nArg, iArg, mFlags) \ |
| @@ -19679,11 +19684,15 @@ | |
| 19679 | SQLITE_PRIVATE void sqlite3InsertBuiltinFuncs(FuncDef*,int); |
| 19680 | SQLITE_PRIVATE FuncDef *sqlite3FindFunction(sqlite3*,const char*,int,u8,u8); |
| 19681 | SQLITE_PRIVATE void sqlite3QuoteValue(StrAccum*,sqlite3_value*); |
| 19682 | SQLITE_PRIVATE void sqlite3RegisterBuiltinFunctions(void); |
| 19683 | SQLITE_PRIVATE void sqlite3RegisterDateTimeFunctions(void); |
| 19684 | SQLITE_PRIVATE void sqlite3RegisterPerConnectionBuiltinFunctions(sqlite3*); |
| 19685 | SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3*); |
| 19686 | SQLITE_PRIVATE int sqlite3SafetyCheckSickOrOk(sqlite3*); |
| 19687 | SQLITE_PRIVATE void sqlite3ChangeCookie(Parse*, int); |
| 19688 | SQLITE_PRIVATE With *sqlite3WithDup(sqlite3 *db, With *p); |
| 19689 | |
| @@ -20691,10 +20700,13 @@ | |
| 20691 | #ifdef SQLITE_DISABLE_FTS4_DEFERRED |
| 20692 | "DISABLE_FTS4_DEFERRED", |
| 20693 | #endif |
| 20694 | #ifdef SQLITE_DISABLE_INTRINSIC |
| 20695 | "DISABLE_INTRINSIC", |
| 20696 | #endif |
| 20697 | #ifdef SQLITE_DISABLE_LFS |
| 20698 | "DISABLE_LFS", |
| 20699 | #endif |
| 20700 | #ifdef SQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS |
| @@ -20770,13 +20782,10 @@ | |
| 20770 | "ENABLE_ICU", |
| 20771 | #endif |
| 20772 | #ifdef SQLITE_ENABLE_IOTRACE |
| 20773 | "ENABLE_IOTRACE", |
| 20774 | #endif |
| 20775 | #ifdef SQLITE_ENABLE_JSON1 |
| 20776 | "ENABLE_JSON1", |
| 20777 | #endif |
| 20778 | #ifdef SQLITE_ENABLE_LOAD_EXTENSION |
| 20779 | "ENABLE_LOAD_EXTENSION", |
| 20780 | #endif |
| 20781 | #ifdef SQLITE_ENABLE_LOCKING_STYLE |
| 20782 | "ENABLE_LOCKING_STYLE=" CTIMEOPT_VAL(SQLITE_ENABLE_LOCKING_STYLE), |
| @@ -34265,15 +34274,15 @@ | |
| 34265 | /* 108 */ "Multiply" OpHelp("r[P3]=r[P1]*r[P2]"), |
| 34266 | /* 109 */ "Divide" OpHelp("r[P3]=r[P2]/r[P1]"), |
| 34267 | /* 110 */ "Remainder" OpHelp("r[P3]=r[P2]%r[P1]"), |
| 34268 | /* 111 */ "Concat" OpHelp("r[P3]=r[P2]+r[P1]"), |
| 34269 | /* 112 */ "OpenWrite" OpHelp("root=P2 iDb=P3"), |
| 34270 | /* 113 */ "BitNot" OpHelp("r[P2]= ~r[P1]"), |
| 34271 | /* 114 */ "OpenDup" OpHelp(""), |
| 34272 | /* 115 */ "OpenAutoindex" OpHelp("nColumn=P2"), |
| 34273 | /* 116 */ "String8" OpHelp("r[P2]='P4'"), |
| 34274 | /* 117 */ "OpenEphemeral" OpHelp("nColumn=P2"), |
| 34275 | /* 118 */ "SorterOpen" OpHelp(""), |
| 34276 | /* 119 */ "SequenceTest" OpHelp("if( cursor[P1].ctr++ ) pc = P2"), |
| 34277 | /* 120 */ "OpenPseudo" OpHelp("P3 columns in r[P2]"), |
| 34278 | /* 121 */ "Close" OpHelp(""), |
| 34279 | /* 122 */ "ColumnsUsed" OpHelp(""), |
| @@ -34304,12 +34313,12 @@ | |
| 34304 | /* 147 */ "SqlExec" OpHelp(""), |
| 34305 | /* 148 */ "ParseSchema" OpHelp(""), |
| 34306 | /* 149 */ "LoadAnalysis" OpHelp(""), |
| 34307 | /* 150 */ "DropTable" OpHelp(""), |
| 34308 | /* 151 */ "DropIndex" OpHelp(""), |
| 34309 | /* 152 */ "Real" OpHelp("r[P2]=P4"), |
| 34310 | /* 153 */ "DropTrigger" OpHelp(""), |
| 34311 | /* 154 */ "IntegrityCk" OpHelp(""), |
| 34312 | /* 155 */ "RowSetAdd" OpHelp("rowset(P1)=r[P2]"), |
| 34313 | /* 156 */ "Param" OpHelp(""), |
| 34314 | /* 157 */ "FkCounter" OpHelp("fkctr[P1]+=P2"), |
| 34315 | /* 158 */ "MemMax" OpHelp("r[P1]=max(r[P1],r[P2])"), |
| @@ -58435,10 +58444,11 @@ | |
| 58435 | Pager *pPager, /* The pager open on the database file */ |
| 58436 | Pgno pgno, /* Page number to fetch */ |
| 58437 | DbPage **ppPage, /* Write a pointer to the page here */ |
| 58438 | int flags /* PAGER_GET_XXX flags */ |
| 58439 | ){ |
| 58440 | return pPager->xGet(pPager, pgno, ppPage, flags); |
| 58441 | } |
| 58442 | |
| 58443 | /* |
| 58444 | ** Acquire a page if it is already in the in-memory cache. Do |
| @@ -72528,11 +72538,11 @@ | |
| 72528 | assert( sqlite3PagerIswriteable(pPage->pDbPage) ); |
| 72529 | assert( sqlite3_mutex_held(pPage->pBt->mutex) ); |
| 72530 | assert( pPage->nFree>=0 ); |
| 72531 | data = pPage->aData; |
| 72532 | ptr = &pPage->aCellIdx[2*idx]; |
| 72533 | assert( pPage->pBt->usableSize > (int)(ptr-data) ); |
| 72534 | pc = get2byte(ptr); |
| 72535 | hdr = pPage->hdrOffset; |
| 72536 | testcase( pc==(u32)get2byte(&data[hdr+5]) ); |
| 72537 | testcase( pc+sz==pPage->pBt->usableSize ); |
| 72538 | if( pc+sz > pPage->pBt->usableSize ){ |
| @@ -113443,11 +113453,11 @@ | |
| 113443 | Returning *pReturning = pParse->u1.pReturning; |
| 113444 | int addrRewind; |
| 113445 | int i; |
| 113446 | int reg; |
| 113447 | |
| 113448 | if( pReturning->nRetCol==0 ){ |
| 113449 | assert( CORRUPT_DB ); |
| 113450 | }else{ |
| 113451 | sqlite3VdbeAddOp0(v, OP_FkCheck); |
| 113452 | addrRewind = |
| 113453 | sqlite3VdbeAddOp1(v, OP_Rewind, pReturning->iRetCur); |
| @@ -113539,11 +113549,11 @@ | |
| 113539 | } |
| 113540 | } |
| 113541 | |
| 113542 | if( pParse->bReturning ){ |
| 113543 | Returning *pRet = pParse->u1.pReturning; |
| 113544 | if( pRet->nRetCol==0 ){ |
| 113545 | assert( CORRUPT_DB ); |
| 113546 | }else{ |
| 113547 | sqlite3VdbeAddOp2(v, OP_OpenEphemeral, pRet->iRetCur, pRet->nRetCol); |
| 113548 | } |
| 113549 | } |
| @@ -119261,11 +119271,10 @@ | |
| 119261 | for(i=0; i<nDef; i++){ |
| 119262 | FuncDef *pOther; |
| 119263 | const char *zName = aDef[i].zName; |
| 119264 | int nName = sqlite3Strlen30(zName); |
| 119265 | int h = SQLITE_FUNC_HASH(zName[0], nName); |
| 119266 | assert( zName[0]>='a' && zName[0]<='z' ); |
| 119267 | assert( aDef[i].funcFlags & SQLITE_FUNC_BUILTIN ); |
| 119268 | pOther = sqlite3FunctionSearch(h, zName); |
| 119269 | if( pOther ){ |
| 119270 | assert( pOther!=&aDef[i] && pOther->pNext!=&aDef[i] ); |
| 119271 | aDef[i].pNext = pOther->pNext; |
| @@ -120524,10 +120533,21 @@ | |
| 120524 | ** V. The returned value is one of SQLITE_INTEGER, SQLITE_FLOAT, |
| 120525 | ** SQLITE_TEXT, SQLITE_BLOB, or SQLITE_NULL. */ |
| 120526 | sqlite3_result_text(context, azType[i], -1, SQLITE_STATIC); |
| 120527 | } |
| 120528 | |
| 120529 | |
| 120530 | /* |
| 120531 | ** Implementation of the length() function |
| 120532 | */ |
| 120533 | static void lengthFunc( |
| @@ -120685,11 +120705,11 @@ | |
| 120685 | sqlite3_result_error_nomem(context); |
| 120686 | goto endInstr; |
| 120687 | } |
| 120688 | |
| 120689 | /* |
| 120690 | ** Implementation of the printf() function. |
| 120691 | */ |
| 120692 | static void printfFunc( |
| 120693 | sqlite3_context *context, |
| 120694 | int argc, |
| 120695 | sqlite3_value **argv |
| @@ -122673,13 +122693,15 @@ | |
| 122673 | FUNCTION(max, -1, 1, 1, minmaxFunc ), |
| 122674 | FUNCTION(max, 0, 1, 1, 0 ), |
| 122675 | WAGGREGATE(max, 1, 1, 1, minmaxStep, minMaxFinalize, minMaxValue, 0, |
| 122676 | SQLITE_FUNC_MINMAX|SQLITE_FUNC_ANYORDER ), |
| 122677 | FUNCTION2(typeof, 1, 0, 0, typeofFunc, SQLITE_FUNC_TYPEOF), |
| 122678 | FUNCTION2(length, 1, 0, 0, lengthFunc, SQLITE_FUNC_LENGTH), |
| 122679 | FUNCTION(instr, 2, 0, 0, instrFunc ), |
| 122680 | FUNCTION(printf, -1, 0, 0, printfFunc ), |
| 122681 | FUNCTION(unicode, 1, 0, 0, unicodeFunc ), |
| 122682 | FUNCTION(char, -1, 0, 0, charFunc ), |
| 122683 | FUNCTION(abs, 1, 0, 0, absFunc ), |
| 122684 | #ifndef SQLITE_OMIT_FLOATING_POINT |
| 122685 | FUNCTION(round, 1, 0, 0, roundFunc ), |
| @@ -122774,10 +122796,11 @@ | |
| 122774 | #ifndef SQLITE_OMIT_ALTERTABLE |
| 122775 | sqlite3AlterFunctions(); |
| 122776 | #endif |
| 122777 | sqlite3WindowFunctions(); |
| 122778 | sqlite3RegisterDateTimeFunctions(); |
| 122779 | sqlite3InsertBuiltinFuncs(aBuiltinFunc, ArraySize(aBuiltinFunc)); |
| 122780 | |
| 122781 | #if 0 /* Enable to print out how the built-in functions are hashed */ |
| 122782 | { |
| 122783 | int i; |
| @@ -160516,14 +160539,14 @@ | |
| 160516 | #define TK_DETACH 40 |
| 160517 | #define TK_EACH 41 |
| 160518 | #define TK_FAIL 42 |
| 160519 | #define TK_OR 43 |
| 160520 | #define TK_AND 44 |
| 160521 | #define TK_MATCH 45 |
| 160522 | #define TK_LIKE_KW 46 |
| 160523 | #define TK_BETWEEN 47 |
| 160524 | #define TK_IS 48 |
| 160525 | #define TK_IN 49 |
| 160526 | #define TK_ISNULL 50 |
| 160527 | #define TK_NOTNULL 51 |
| 160528 | #define TK_NE 52 |
| 160529 | #define TK_EQ 53 |
| @@ -160583,82 +160606,83 @@ | |
| 160583 | #define TK_MINUS 107 |
| 160584 | #define TK_STAR 108 |
| 160585 | #define TK_SLASH 109 |
| 160586 | #define TK_REM 110 |
| 160587 | #define TK_CONCAT 111 |
| 160588 | #define TK_COLLATE 112 |
| 160589 | #define TK_BITNOT 113 |
| 160590 | #define TK_ON 114 |
| 160591 | #define TK_INDEXED 115 |
| 160592 | #define TK_STRING 116 |
| 160593 | #define TK_JOIN_KW 117 |
| 160594 | #define TK_CONSTRAINT 118 |
| 160595 | #define TK_DEFAULT 119 |
| 160596 | #define TK_NULL 120 |
| 160597 | #define TK_PRIMARY 121 |
| 160598 | #define TK_UNIQUE 122 |
| 160599 | #define TK_CHECK 123 |
| 160600 | #define TK_REFERENCES 124 |
| 160601 | #define TK_AUTOINCR 125 |
| 160602 | #define TK_INSERT 126 |
| 160603 | #define TK_DELETE 127 |
| 160604 | #define TK_UPDATE 128 |
| 160605 | #define TK_SET 129 |
| 160606 | #define TK_DEFERRABLE 130 |
| 160607 | #define TK_FOREIGN 131 |
| 160608 | #define TK_DROP 132 |
| 160609 | #define TK_UNION 133 |
| 160610 | #define TK_ALL 134 |
| 160611 | #define TK_EXCEPT 135 |
| 160612 | #define TK_INTERSECT 136 |
| 160613 | #define TK_SELECT 137 |
| 160614 | #define TK_VALUES 138 |
| 160615 | #define TK_DISTINCT 139 |
| 160616 | #define TK_DOT 140 |
| 160617 | #define TK_FROM 141 |
| 160618 | #define TK_JOIN 142 |
| 160619 | #define TK_USING 143 |
| 160620 | #define TK_ORDER 144 |
| 160621 | #define TK_GROUP 145 |
| 160622 | #define TK_HAVING 146 |
| 160623 | #define TK_LIMIT 147 |
| 160624 | #define TK_WHERE 148 |
| 160625 | #define TK_RETURNING 149 |
| 160626 | #define TK_INTO 150 |
| 160627 | #define TK_NOTHING 151 |
| 160628 | #define TK_FLOAT 152 |
| 160629 | #define TK_BLOB 153 |
| 160630 | #define TK_INTEGER 154 |
| 160631 | #define TK_VARIABLE 155 |
| 160632 | #define TK_CASE 156 |
| 160633 | #define TK_WHEN 157 |
| 160634 | #define TK_THEN 158 |
| 160635 | #define TK_ELSE 159 |
| 160636 | #define TK_INDEX 160 |
| 160637 | #define TK_ALTER 161 |
| 160638 | #define TK_ADD 162 |
| 160639 | #define TK_WINDOW 163 |
| 160640 | #define TK_OVER 164 |
| 160641 | #define TK_FILTER 165 |
| 160642 | #define TK_COLUMN 166 |
| 160643 | #define TK_AGG_FUNCTION 167 |
| 160644 | #define TK_AGG_COLUMN 168 |
| 160645 | #define TK_TRUEFALSE 169 |
| 160646 | #define TK_ISNOT 170 |
| 160647 | #define TK_FUNCTION 171 |
| 160648 | #define TK_UMINUS 172 |
| 160649 | #define TK_UPLUS 173 |
| 160650 | #define TK_TRUTH 174 |
| 160651 | #define TK_REGISTER 175 |
| 160652 | #define TK_VECTOR 176 |
| 160653 | #define TK_SELECT_COLUMN 177 |
| 160654 | #define TK_IF_NULL_ROW 178 |
| 160655 | #define TK_ASTERISK 179 |
| 160656 | #define TK_SPAN 180 |
| 160657 | #define TK_ERROR 181 |
| 160658 | #define TK_SPACE 182 |
| 160659 | #define TK_ILLEGAL 183 |
| 160660 | #endif |
| 160661 | /**************** End token definitions ***************************************/ |
| 160662 | |
| 160663 | /* The next sections is a series of control #defines. |
| 160664 | ** various aspects of the generated parser. |
| @@ -160714,34 +160738,34 @@ | |
| 160714 | #ifndef INTERFACE |
| 160715 | # define INTERFACE 1 |
| 160716 | #endif |
| 160717 | /************* Begin control #defines *****************************************/ |
| 160718 | #define YYCODETYPE unsigned short int |
| 160719 | #define YYNOCODE 318 |
| 160720 | #define YYACTIONTYPE unsigned short int |
| 160721 | #define YYWILDCARD 101 |
| 160722 | #define sqlite3ParserTOKENTYPE Token |
| 160723 | typedef union { |
| 160724 | int yyinit; |
| 160725 | sqlite3ParserTOKENTYPE yy0; |
| 160726 | With* yy43; |
| 160727 | u32 yy51; |
| 160728 | int yy64; |
| 160729 | struct FrameBound yy81; |
| 160730 | struct {int value; int mask;} yy83; |
| 160731 | TriggerStep* yy95; |
| 160732 | Upsert* yy138; |
| 160733 | IdList* yy240; |
| 160734 | Cte* yy255; |
| 160735 | Select* yy303; |
| 160736 | Window* yy375; |
| 160737 | u8 yy534; |
| 160738 | ExprList* yy562; |
| 160739 | struct TrigEvent yy570; |
| 160740 | const char* yy600; |
| 160741 | SrcList* yy607; |
| 160742 | Expr* yy626; |
| 160743 | } YYMINORTYPE; |
| 160744 | #ifndef YYSTACKDEPTH |
| 160745 | #define YYSTACKDEPTH 100 |
| 160746 | #endif |
| 160747 | #define sqlite3ParserARG_SDECL |
| @@ -160753,22 +160777,22 @@ | |
| 160753 | #define sqlite3ParserCTX_PDECL ,Parse *pParse |
| 160754 | #define sqlite3ParserCTX_PARAM ,pParse |
| 160755 | #define sqlite3ParserCTX_FETCH Parse *pParse=yypParser->pParse; |
| 160756 | #define sqlite3ParserCTX_STORE yypParser->pParse=pParse; |
| 160757 | #define YYFALLBACK 1 |
| 160758 | #define YYNSTATE 572 |
| 160759 | #define YYNRULE 401 |
| 160760 | #define YYNRULE_WITH_ACTION 339 |
| 160761 | #define YYNTOKEN 184 |
| 160762 | #define YY_MAX_SHIFT 571 |
| 160763 | #define YY_MIN_SHIFTREDUCE 829 |
| 160764 | #define YY_MAX_SHIFTREDUCE 1229 |
| 160765 | #define YY_ERROR_ACTION 1230 |
| 160766 | #define YY_ACCEPT_ACTION 1231 |
| 160767 | #define YY_NO_ACTION 1232 |
| 160768 | #define YY_MIN_REDUCE 1233 |
| 160769 | #define YY_MAX_REDUCE 1633 |
| 160770 | /************* End control #defines *******************************************/ |
| 160771 | #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) |
| 160772 | |
| 160773 | /* Define the yytestcase() macro to be a no-op if is not already defined |
| 160774 | ** otherwise. |
| @@ -160831,607 +160855,616 @@ | |
| 160831 | ** yy_reduce_ofst[] For each state, the offset into yy_action for |
| 160832 | ** shifting non-terminals after a reduce. |
| 160833 | ** yy_default[] Default action for each state. |
| 160834 | ** |
| 160835 | *********** Begin parsing tables **********************************************/ |
| 160836 | #define YY_ACTTAB_COUNT (2022) |
| 160837 | static const YYACTIONTYPE yy_action[] = { |
| 160838 | /* 0 */ 564, 115, 112, 220, 169, 199, 115, 112, 220, 564, |
| 160839 | /* 10 */ 375, 1266, 564, 376, 564, 270, 1309, 1309, 406, 407, |
| 160840 | /* 20 */ 1084, 199, 1513, 41, 41, 515, 489, 521, 558, 558, |
| 160841 | /* 30 */ 558, 965, 41, 41, 395, 41, 41, 51, 51, 966, |
| 160842 | /* 40 */ 296, 1269, 296, 122, 123, 1207, 1207, 1041, 113, 1044, |
| 160843 | /* 50 */ 1034, 1034, 120, 120, 121, 121, 121, 121, 564, 407, |
| 160844 | /* 60 */ 275, 275, 275, 275, 1268, 115, 112, 220, 115, 112, |
| 160845 | /* 70 */ 220, 1512, 846, 561, 516, 561, 115, 112, 220, 250, |
| 160846 | /* 80 */ 217, 71, 71, 122, 123, 1207, 1207, 1041, 113, 1044, |
| 160847 | /* 90 */ 1034, 1034, 120, 120, 121, 121, 121, 121, 440, 440, |
| 160848 | /* 100 */ 440, 1149, 119, 119, 119, 119, 118, 118, 117, 117, |
| 160849 | /* 110 */ 117, 116, 442, 1183, 1149, 116, 442, 1149, 546, 513, |
| 160850 | /* 120 */ 1548, 1554, 374, 213, 6, 169, 1154, 522, 1154, 407, |
| 160851 | /* 130 */ 1556, 461, 373, 1554, 535, 99, 463, 332, 121, 121, |
| 160852 | /* 140 */ 121, 121, 119, 119, 119, 119, 118, 118, 117, 117, |
| 160853 | /* 150 */ 117, 116, 442, 122, 123, 1207, 1207, 1041, 113, 1044, |
| 160854 | /* 160 */ 1034, 1034, 120, 120, 121, 121, 121, 121, 1257, 1183, |
| 160855 | /* 170 */ 1184, 1185, 243, 1064, 564, 502, 499, 498, 567, 124, |
| 160856 | /* 180 */ 567, 1128, 1627, 344, 1627, 497, 119, 119, 119, 119, |
| 160857 | /* 190 */ 118, 118, 117, 117, 117, 116, 442, 70, 70, 407, |
| 160858 | /* 200 */ 121, 121, 121, 121, 114, 117, 117, 117, 116, 442, |
| 160859 | /* 210 */ 474, 1469, 119, 119, 119, 119, 118, 118, 117, 117, |
| 160860 | /* 220 */ 117, 116, 442, 122, 123, 1207, 1207, 1041, 113, 1044, |
| 160861 | /* 230 */ 1034, 1034, 120, 120, 121, 121, 121, 121, 407, 208, |
| 160862 | /* 240 */ 539, 1548, 1424, 81, 339, 6, 342, 80, 119, 119, |
| 160863 | /* 250 */ 119, 119, 118, 118, 117, 117, 117, 116, 442, 381, |
| 160864 | /* 260 */ 1126, 442, 122, 123, 1207, 1207, 1041, 113, 1044, 1034, |
| 160865 | /* 270 */ 1034, 120, 120, 121, 121, 121, 121, 262, 463, 332, |
| 160866 | /* 280 */ 359, 1567, 119, 119, 119, 119, 118, 118, 117, 117, |
| 160867 | /* 290 */ 117, 116, 442, 1231, 1, 1, 571, 2, 1235, 1573, |
| 160868 | /* 300 */ 571, 2, 1235, 307, 1149, 141, 417, 307, 407, 141, |
| 160869 | /* 310 */ 1183, 98, 1317, 489, 866, 531, 1317, 1149, 215, 512, |
| 160870 | /* 320 */ 1149, 119, 119, 119, 119, 118, 118, 117, 117, 117, |
| 160871 | /* 330 */ 116, 442, 122, 123, 1207, 1207, 1041, 113, 1044, 1034, |
| 160872 | /* 340 */ 1034, 120, 120, 121, 121, 121, 121, 275, 275, 1001, |
| 160873 | /* 350 */ 1257, 275, 275, 1128, 1628, 1021, 1628, 137, 415, 1600, |
| 160874 | /* 360 */ 561, 272, 1255, 950, 561, 1423, 1183, 1184, 1185, 1594, |
| 160875 | /* 370 */ 866, 1012, 530, 315, 231, 1011, 317, 1276, 231, 119, |
| 160876 | /* 380 */ 119, 119, 119, 118, 118, 117, 117, 117, 116, 442, |
| 160877 | /* 390 */ 1570, 119, 119, 119, 119, 118, 118, 117, 117, 117, |
| 160878 | /* 400 */ 116, 442, 330, 359, 1567, 564, 446, 1011, 1011, 1013, |
| 160879 | /* 410 */ 446, 877, 564, 306, 555, 407, 447, 1021, 563, 346, |
| 160880 | /* 420 */ 184, 118, 118, 117, 117, 117, 116, 442, 71, 71, |
| 160881 | /* 430 */ 439, 438, 1126, 1012, 472, 71, 71, 1011, 205, 122, |
| 160882 | /* 440 */ 123, 1207, 1207, 1041, 113, 1044, 1034, 1034, 120, 120, |
| 160883 | /* 450 */ 121, 121, 121, 121, 1304, 219, 1283, 1183, 407, 570, |
| 160884 | /* 460 */ 1183, 1235, 503, 1477, 1304, 546, 307, 489, 141, 1011, |
| 160885 | /* 470 */ 1011, 1013, 546, 140, 545, 1317, 1214, 382, 1214, 378, |
| 160886 | /* 480 */ 950, 514, 122, 123, 1207, 1207, 1041, 113, 1044, 1034, |
| 160887 | /* 490 */ 1034, 120, 120, 121, 121, 121, 121, 472, 119, 119, |
| 160888 | /* 500 */ 119, 119, 118, 118, 117, 117, 117, 116, 442, 283, |
| 160889 | /* 510 */ 275, 275, 1476, 1183, 1184, 1185, 1183, 1184, 1185, 417, |
| 160890 | /* 520 */ 1183, 243, 541, 561, 502, 499, 498, 1001, 407, 478, |
| 160891 | /* 530 */ 1183, 472, 870, 143, 497, 1549, 185, 231, 9, 6, |
| 160892 | /* 540 */ 253, 119, 119, 119, 119, 118, 118, 117, 117, 117, |
| 160893 | /* 550 */ 116, 442, 122, 123, 1207, 1207, 1041, 113, 1044, 1034, |
| 160894 | /* 560 */ 1034, 120, 120, 121, 121, 121, 121, 407, 372, 446, |
| 160895 | /* 570 */ 363, 863, 288, 1183, 397, 1204, 1183, 1184, 1185, 931, |
| 160896 | /* 580 */ 330, 458, 318, 526, 564, 541, 1183, 1184, 1185, 284, |
| 160897 | /* 590 */ 1183, 122, 123, 1207, 1207, 1041, 113, 1044, 1034, 1034, |
| 160898 | /* 600 */ 120, 120, 121, 121, 121, 121, 291, 71, 71, 275, |
| 160899 | /* 610 */ 275, 119, 119, 119, 119, 118, 118, 117, 117, 117, |
| 160900 | /* 620 */ 116, 442, 561, 1031, 1031, 1042, 1183, 1045, 287, 1183, |
| 160901 | /* 630 */ 1184, 1185, 1204, 137, 218, 542, 1541, 407, 363, 470, |
| 160902 | /* 640 */ 431, 1167, 32, 363, 527, 350, 1183, 1184, 1185, 380, |
| 160903 | /* 650 */ 119, 119, 119, 119, 118, 118, 117, 117, 117, 116, |
| 160904 | /* 660 */ 442, 122, 123, 1207, 1207, 1041, 113, 1044, 1034, 1034, |
| 160905 | /* 670 */ 120, 120, 121, 121, 121, 121, 407, 392, 1227, 1183, |
| 160906 | /* 680 */ 1022, 1540, 1183, 1184, 1185, 1523, 149, 1307, 1307, 306, |
| 160907 | /* 690 */ 555, 151, 1546, 361, 5, 564, 6, 3, 1035, 1542, |
| 160908 | /* 700 */ 122, 123, 1207, 1207, 1041, 113, 1044, 1034, 1034, 120, |
| 160909 | /* 710 */ 120, 121, 121, 121, 121, 411, 505, 83, 71, 71, |
| 160910 | /* 720 */ 119, 119, 119, 119, 118, 118, 117, 117, 117, 116, |
| 160911 | /* 730 */ 442, 1183, 426, 428, 1183, 1183, 1184, 1185, 191, 261, |
| 160912 | /* 740 */ 278, 358, 508, 353, 507, 248, 407, 455, 137, 1539, |
| 160913 | /* 750 */ 1006, 349, 363, 472, 1539, 302, 1228, 405, 281, 119, |
| 160914 | /* 760 */ 119, 119, 119, 118, 118, 117, 117, 117, 116, 442, |
| 160915 | /* 770 */ 122, 123, 1207, 1207, 1041, 113, 1044, 1034, 1034, 120, |
| 160916 | /* 780 */ 120, 121, 121, 121, 121, 407, 452, 1183, 1184, 1185, |
| 160917 | /* 790 */ 1183, 1184, 1185, 275, 275, 269, 269, 489, 483, 1525, |
| 160918 | /* 800 */ 148, 363, 480, 564, 306, 555, 561, 489, 561, 122, |
| 160919 | /* 810 */ 123, 1207, 1207, 1041, 113, 1044, 1034, 1034, 120, 120, |
| 160920 | /* 820 */ 121, 121, 121, 121, 564, 886, 13, 13, 293, 119, |
| 160921 | /* 830 */ 119, 119, 119, 118, 118, 117, 117, 117, 116, 442, |
| 160922 | /* 840 */ 1183, 420, 1316, 564, 98, 417, 199, 13, 13, 150, |
| 160923 | /* 850 */ 306, 555, 1312, 322, 386, 407, 506, 478, 562, 400, |
| 160924 | /* 860 */ 920, 920, 425, 1539, 887, 292, 71, 71, 119, 119, |
| 160925 | /* 870 */ 119, 119, 118, 118, 117, 117, 117, 116, 442, 122, |
| 160926 | /* 880 */ 123, 1207, 1207, 1041, 113, 1044, 1034, 1034, 120, 120, |
| 160927 | /* 890 */ 121, 121, 121, 121, 564, 1149, 1183, 1184, 1185, 407, |
| 160928 | /* 900 */ 275, 275, 451, 303, 1089, 1089, 486, 448, 1149, 276, |
| 160929 | /* 910 */ 276, 1149, 1539, 561, 319, 286, 321, 71, 71, 429, |
| 160930 | /* 920 */ 451, 450, 561, 952, 101, 1207, 1207, 1041, 113, 1044, |
| 160931 | /* 930 */ 1034, 1034, 120, 120, 121, 121, 121, 121, 119, 119, |
| 160932 | /* 940 */ 119, 119, 118, 118, 117, 117, 117, 116, 442, 1105, |
| 160933 | /* 950 */ 1183, 1547, 564, 12, 437, 6, 329, 564, 834, 835, |
| 160934 | /* 960 */ 836, 1629, 393, 547, 1106, 246, 245, 244, 1545, 1258, |
| 160935 | /* 970 */ 413, 1521, 6, 1086, 310, 71, 71, 1086, 564, 1107, |
| 160936 | /* 980 */ 13, 13, 119, 119, 119, 119, 118, 118, 117, 117, |
| 160937 | /* 990 */ 117, 116, 442, 451, 104, 427, 537, 320, 275, 275, |
| 160938 | /* 1000 */ 906, 13, 13, 520, 1482, 1105, 1183, 1184, 1185, 484, |
| 160939 | /* 1010 */ 907, 561, 546, 564, 407, 536, 295, 478, 253, 200, |
| 160940 | /* 1020 */ 1106, 548, 1482, 1484, 1160, 1409, 16, 16, 126, 557, |
| 160941 | /* 1030 */ 413, 479, 311, 951, 407, 1107, 71, 71, 122, 123, |
| 160942 | /* 1040 */ 1207, 1207, 1041, 113, 1044, 1034, 1034, 120, 120, 121, |
| 160943 | /* 1050 */ 121, 121, 121, 1204, 407, 544, 552, 314, 122, 123, |
| 160944 | /* 1060 */ 1207, 1207, 1041, 113, 1044, 1034, 1034, 120, 120, 121, |
| 160945 | /* 1070 */ 121, 121, 121, 441, 144, 1160, 468, 146, 122, 111, |
| 160946 | /* 1080 */ 1207, 1207, 1041, 113, 1044, 1034, 1034, 120, 120, 121, |
| 160947 | /* 1090 */ 121, 121, 121, 247, 12, 1482, 422, 119, 119, 119, |
| 160948 | /* 1100 */ 119, 118, 118, 117, 117, 117, 116, 442, 1183, 564, |
| 160949 | /* 1110 */ 1204, 207, 404, 403, 858, 950, 294, 119, 119, 119, |
| 160950 | /* 1120 */ 119, 118, 118, 117, 117, 117, 116, 442, 564, 30, |
| 160951 | /* 1130 */ 564, 1409, 55, 55, 1599, 564, 895, 119, 119, 119, |
| 160952 | /* 1140 */ 119, 118, 118, 117, 117, 117, 116, 442, 510, 1409, |
| 160953 | /* 1150 */ 1409, 56, 56, 15, 15, 439, 438, 407, 13, 13, |
| 160954 | /* 1160 */ 31, 1187, 412, 1211, 1183, 1184, 1185, 196, 1213, 306, |
| 160955 | /* 1170 */ 555, 858, 462, 193, 926, 564, 1212, 489, 361, 925, |
| 160956 | /* 1180 */ 1183, 564, 123, 1207, 1207, 1041, 113, 1044, 1034, 1034, |
| 160957 | /* 1190 */ 120, 120, 121, 121, 121, 121, 1544, 1149, 43, 43, |
| 160958 | /* 1200 */ 6, 1214, 423, 1214, 13, 13, 564, 219, 538, 494, |
| 160959 | /* 1210 */ 1149, 108, 556, 1149, 4, 392, 1127, 434, 1187, 194, |
| 160960 | /* 1220 */ 424, 485, 337, 1315, 414, 171, 1253, 1321, 559, 57, |
| 160961 | /* 1230 */ 57, 564, 950, 564, 224, 247, 1183, 1184, 1185, 561, |
| 160962 | /* 1240 */ 119, 119, 119, 119, 118, 118, 117, 117, 117, 116, |
| 160963 | /* 1250 */ 442, 443, 564, 517, 13, 13, 44, 44, 275, 275, |
| 160964 | /* 1260 */ 1409, 275, 275, 553, 1353, 529, 213, 549, 456, 543, |
| 160965 | /* 1270 */ 465, 561, 564, 137, 561, 58, 58, 469, 405, 1222, |
| 160966 | /* 1280 */ 405, 274, 217, 108, 556, 110, 4, 405, 275, 275, |
| 160967 | /* 1290 */ 564, 1352, 1021, 564, 1228, 59, 59, 523, 106, 106, |
| 160968 | /* 1300 */ 559, 561, 275, 275, 412, 107, 457, 443, 566, 565, |
| 160969 | /* 1310 */ 564, 8, 1011, 60, 60, 561, 61, 61, 564, 965, |
| 160970 | /* 1320 */ 349, 926, 305, 443, 84, 204, 925, 966, 564, 306, |
| 160971 | /* 1330 */ 555, 435, 405, 62, 62, 553, 476, 105, 564, 103, |
| 160972 | /* 1340 */ 464, 45, 45, 1203, 1011, 1011, 1013, 1014, 27, 533, |
| 160973 | /* 1350 */ 564, 46, 46, 453, 532, 1572, 1171, 445, 1528, 564, |
| 160974 | /* 1360 */ 279, 47, 47, 327, 1021, 390, 390, 389, 264, 387, |
| 160975 | /* 1370 */ 106, 106, 843, 49, 49, 108, 556, 107, 4, 443, |
| 160976 | /* 1380 */ 566, 565, 50, 50, 1011, 225, 564, 313, 564, 96, |
| 160977 | /* 1390 */ 564, 228, 559, 524, 147, 312, 38, 1123, 564, 394, |
| 160978 | /* 1400 */ 466, 328, 280, 98, 544, 564, 17, 564, 323, 63, |
| 160979 | /* 1410 */ 63, 64, 64, 65, 65, 443, 1011, 1011, 1013, 1014, |
| 160980 | /* 1420 */ 27, 14, 14, 289, 564, 227, 564, 553, 66, 66, |
| 160981 | /* 1430 */ 128, 128, 477, 162, 564, 309, 135, 564, 1003, 277, |
| 160982 | /* 1440 */ 252, 533, 564, 1501, 564, 418, 534, 67, 67, 52, |
| 160983 | /* 1450 */ 52, 564, 1287, 226, 564, 1500, 1021, 68, 68, 208, |
| 160984 | /* 1460 */ 69, 69, 106, 106, 1286, 53, 53, 157, 157, 107, |
| 160985 | /* 1470 */ 873, 443, 566, 565, 158, 158, 1011, 76, 76, 564, |
| 160986 | /* 1480 */ 357, 564, 108, 556, 471, 4, 252, 408, 885, 884, |
| 160987 | /* 1490 */ 356, 564, 306, 555, 564, 473, 564, 252, 481, 559, |
| 160988 | /* 1500 */ 564, 334, 54, 54, 72, 72, 564, 230, 1011, 1011, |
| 160989 | /* 1510 */ 1013, 1014, 27, 564, 129, 129, 449, 73, 73, 130, |
| 160990 | /* 1520 */ 130, 564, 443, 131, 131, 519, 564, 873, 564, 127, |
| 160991 | /* 1530 */ 127, 333, 1071, 98, 553, 1349, 156, 156, 564, 495, |
| 160992 | /* 1540 */ 347, 249, 98, 338, 155, 155, 892, 893, 533, 136, |
| 160993 | /* 1550 */ 136, 134, 134, 532, 341, 1171, 445, 1587, 564, 279, |
| 160994 | /* 1560 */ 343, 132, 132, 1021, 390, 390, 389, 264, 387, 106, |
| 160995 | /* 1570 */ 106, 843, 564, 1067, 564, 249, 107, 564, 443, 566, |
| 160996 | /* 1580 */ 565, 133, 133, 1011, 225, 1015, 313, 108, 556, 1071, |
| 160997 | /* 1590 */ 4, 345, 968, 969, 312, 75, 75, 77, 77, 1300, |
| 160998 | /* 1600 */ 74, 74, 564, 1132, 559, 564, 108, 556, 959, 4, |
| 160999 | /* 1610 */ 252, 923, 1083, 110, 1083, 1011, 1011, 1013, 1014, 27, |
| 161000 | /* 1620 */ 1082, 1285, 1082, 559, 227, 42, 42, 443, 48, 48, |
| 161001 | /* 1630 */ 1284, 856, 162, 145, 924, 135, 110, 352, 362, 553, |
| 161002 | /* 1640 */ 1340, 1361, 1015, 1408, 1336, 301, 443, 1561, 1347, 550, |
| 161003 | /* 1650 */ 1414, 551, 226, 202, 1265, 1333, 1256, 1244, 553, 1243, |
| 161004 | /* 1660 */ 490, 1245, 1580, 267, 11, 391, 210, 223, 1021, 1390, |
| 161005 | /* 1670 */ 1395, 282, 365, 367, 106, 106, 930, 369, 454, 285, |
| 161006 | /* 1680 */ 1383, 107, 325, 443, 566, 565, 408, 1021, 1011, 326, |
| 161007 | /* 1690 */ 475, 306, 555, 106, 106, 100, 556, 500, 4, 1400, |
| 161008 | /* 1700 */ 107, 1399, 443, 566, 565, 398, 1283, 1011, 214, 355, |
| 161009 | /* 1710 */ 1473, 290, 559, 1472, 1583, 449, 554, 371, 331, 197, |
| 161010 | /* 1720 */ 1011, 1011, 1013, 1014, 27, 198, 209, 385, 1222, 173, |
| 161011 | /* 1730 */ 221, 256, 1520, 1518, 1219, 443, 79, 416, 206, 1011, |
| 161012 | /* 1740 */ 1011, 1013, 1014, 27, 83, 279, 182, 553, 82, 167, |
| 161013 | /* 1750 */ 390, 390, 389, 264, 387, 35, 1396, 843, 1478, 459, |
| 161014 | /* 1760 */ 175, 177, 460, 493, 178, 179, 180, 233, 96, 396, |
| 161015 | /* 1770 */ 225, 1402, 313, 1401, 36, 1404, 1021, 467, 186, 482, |
| 161016 | /* 1780 */ 312, 399, 106, 106, 237, 1467, 89, 1489, 488, 107, |
| 161017 | /* 1790 */ 239, 443, 566, 565, 268, 336, 1011, 190, 491, 340, |
| 161018 | /* 1800 */ 240, 401, 1246, 241, 509, 1294, 430, 1303, 91, 877, |
| 161019 | /* 1810 */ 227, 215, 1566, 1302, 1301, 1273, 1598, 432, 162, 518, |
| 161020 | /* 1820 */ 1272, 135, 1597, 354, 402, 433, 1271, 1596, 1011, 1011, |
| 161021 | /* 1830 */ 1013, 1014, 27, 1293, 299, 360, 300, 525, 226, 95, |
| 161022 | /* 1840 */ 254, 255, 1344, 364, 436, 125, 544, 1552, 10, 1453, |
| 161023 | /* 1850 */ 379, 1551, 102, 304, 97, 528, 34, 568, 1177, 263, |
| 161024 | /* 1860 */ 265, 266, 569, 1241, 1236, 172, 409, 410, 159, 383, |
| 161025 | /* 1870 */ 377, 366, 408, 1345, 1343, 368, 370, 306, 555, 1342, |
| 161026 | /* 1880 */ 1326, 1325, 1368, 201, 384, 1367, 1505, 1506, 160, 1504, |
| 161027 | /* 1890 */ 1503, 142, 161, 211, 212, 78, 830, 444, 203, 308, |
| 161028 | /* 1900 */ 297, 449, 222, 1081, 139, 1079, 316, 174, 163, 1203, |
| 161029 | /* 1910 */ 229, 176, 232, 909, 324, 1095, 164, 181, 165, 419, |
| 161030 | /* 1920 */ 421, 183, 85, 86, 87, 88, 166, 1098, 235, 234, |
| 161031 | /* 1930 */ 1094, 152, 18, 236, 335, 1087, 252, 1216, 487, 238, |
| 161032 | /* 1940 */ 37, 187, 188, 845, 492, 356, 242, 348, 496, 189, |
| 161033 | /* 1950 */ 90, 93, 19, 20, 168, 875, 501, 351, 92, 504, |
| 161034 | /* 1960 */ 888, 153, 511, 1133, 1165, 154, 298, 1047, 94, 1134, |
| 161035 | /* 1970 */ 39, 958, 216, 271, 273, 192, 953, 110, 1151, 251, |
| 161036 | /* 1980 */ 1155, 21, 1159, 22, 1158, 1139, 1153, 33, 23, 24, |
| 161037 | /* 1990 */ 540, 25, 195, 98, 26, 1062, 1048, 1046, 1050, 1104, |
| 161038 | /* 2000 */ 7, 1103, 257, 258, 1051, 28, 40, 560, 1016, 857, |
| 161039 | /* 2010 */ 109, 29, 919, 138, 259, 260, 170, 1589, 388, 1588, |
| 161040 | /* 2020 */ 1173, 1172, |
| 161041 | }; |
| 161042 | static const YYCODETYPE yy_lookahead[] = { |
| 161043 | /* 0 */ 192, 273, 274, 275, 192, 192, 273, 274, 275, 192, |
| 161044 | /* 10 */ 218, 215, 192, 218, 192, 212, 234, 235, 205, 19, |
| 161045 | /* 20 */ 11, 192, 294, 215, 216, 203, 192, 203, 209, 210, |
| 161046 | /* 30 */ 211, 31, 215, 216, 205, 215, 216, 215, 216, 39, |
| 161047 | /* 40 */ 227, 215, 229, 43, 44, 45, 46, 47, 48, 49, |
| 161048 | /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 192, 19, |
| 161049 | /* 60 */ 238, 239, 238, 239, 215, 273, 274, 275, 273, 274, |
| 161050 | /* 70 */ 275, 237, 21, 251, 252, 251, 273, 274, 275, 255, |
| 161051 | /* 80 */ 256, 215, 216, 43, 44, 45, 46, 47, 48, 49, |
| 161052 | /* 90 */ 50, 51, 52, 53, 54, 55, 56, 57, 209, 210, |
| 161053 | /* 100 */ 211, 76, 102, 103, 104, 105, 106, 107, 108, 109, |
| 161054 | /* 110 */ 110, 111, 112, 59, 89, 111, 112, 92, 252, 307, |
| 161055 | /* 120 */ 308, 313, 314, 25, 312, 192, 86, 261, 88, 19, |
| 161056 | /* 130 */ 313, 80, 315, 313, 314, 25, 127, 128, 54, 55, |
| 161057 | /* 140 */ 56, 57, 102, 103, 104, 105, 106, 107, 108, 109, |
| 161058 | /* 150 */ 110, 111, 112, 43, 44, 45, 46, 47, 48, 49, |
| 161059 | /* 160 */ 50, 51, 52, 53, 54, 55, 56, 57, 192, 115, |
| 161060 | /* 170 */ 116, 117, 118, 122, 192, 121, 122, 123, 202, 69, |
| 161061 | /* 180 */ 204, 22, 23, 16, 25, 131, 102, 103, 104, 105, |
| 161062 | /* 190 */ 106, 107, 108, 109, 110, 111, 112, 215, 216, 19, |
| 161063 | /* 200 */ 54, 55, 56, 57, 58, 108, 109, 110, 111, 112, |
| 161064 | /* 210 */ 192, 160, 102, 103, 104, 105, 106, 107, 108, 109, |
| 161065 | /* 220 */ 110, 111, 112, 43, 44, 45, 46, 47, 48, 49, |
| 161066 | /* 230 */ 50, 51, 52, 53, 54, 55, 56, 57, 19, 141, |
| 161067 | /* 240 */ 307, 308, 272, 24, 77, 312, 79, 67, 102, 103, |
| 161068 | /* 250 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 277, |
| 161069 | /* 260 */ 101, 112, 43, 44, 45, 46, 47, 48, 49, 50, |
| 161070 | /* 270 */ 51, 52, 53, 54, 55, 56, 57, 26, 127, 128, |
| 161071 | /* 280 */ 310, 311, 102, 103, 104, 105, 106, 107, 108, 109, |
| 161072 | /* 290 */ 110, 111, 112, 184, 185, 186, 187, 188, 189, 186, |
| 161073 | /* 300 */ 187, 188, 189, 194, 76, 196, 192, 194, 19, 196, |
| 161074 | /* 310 */ 59, 25, 203, 192, 59, 87, 203, 89, 164, 165, |
| 161075 | /* 320 */ 92, 102, 103, 104, 105, 106, 107, 108, 109, 110, |
| 161076 | /* 330 */ 111, 112, 43, 44, 45, 46, 47, 48, 49, 50, |
| 161077 | /* 340 */ 51, 52, 53, 54, 55, 56, 57, 238, 239, 73, |
| 161078 | /* 350 */ 192, 238, 239, 22, 23, 100, 25, 81, 237, 229, |
| 161079 | /* 360 */ 251, 23, 204, 25, 251, 272, 115, 116, 117, 214, |
| 161080 | /* 370 */ 115, 116, 144, 192, 265, 120, 262, 222, 265, 102, |
| 161081 | /* 380 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, |
| 161082 | /* 390 */ 192, 102, 103, 104, 105, 106, 107, 108, 109, 110, |
| 161083 | /* 400 */ 111, 112, 126, 310, 311, 192, 297, 152, 153, 154, |
| 161084 | /* 410 */ 297, 125, 192, 137, 138, 19, 295, 100, 192, 23, |
| 161085 | /* 420 */ 22, 106, 107, 108, 109, 110, 111, 112, 215, 216, |
| 161086 | /* 430 */ 106, 107, 101, 116, 192, 215, 216, 120, 149, 43, |
| 161087 | /* 440 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, |
| 161088 | /* 450 */ 54, 55, 56, 57, 222, 117, 224, 59, 19, 187, |
| 161089 | /* 460 */ 59, 189, 23, 282, 232, 252, 194, 192, 196, 152, |
| 161090 | /* 470 */ 153, 154, 252, 72, 261, 203, 152, 248, 154, 250, |
| 161091 | /* 480 */ 142, 261, 43, 44, 45, 46, 47, 48, 49, 50, |
| 161092 | /* 490 */ 51, 52, 53, 54, 55, 56, 57, 192, 102, 103, |
| 161093 | /* 500 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 267, |
| 161094 | /* 510 */ 238, 239, 237, 115, 116, 117, 115, 116, 117, 192, |
| 161095 | /* 520 */ 59, 118, 192, 251, 121, 122, 123, 73, 19, 192, |
| 161096 | /* 530 */ 59, 192, 23, 72, 131, 308, 22, 265, 22, 312, |
| 161097 | /* 540 */ 24, 102, 103, 104, 105, 106, 107, 108, 109, 110, |
| 161098 | /* 550 */ 111, 112, 43, 44, 45, 46, 47, 48, 49, 50, |
| 161099 | /* 560 */ 51, 52, 53, 54, 55, 56, 57, 19, 192, 297, |
| 161100 | /* 570 */ 192, 23, 267, 59, 203, 59, 115, 116, 117, 108, |
| 161101 | /* 580 */ 126, 127, 128, 192, 192, 192, 115, 116, 117, 262, |
| 161102 | /* 590 */ 59, 43, 44, 45, 46, 47, 48, 49, 50, 51, |
| 161103 | /* 600 */ 52, 53, 54, 55, 56, 57, 267, 215, 216, 238, |
| 161104 | /* 610 */ 239, 102, 103, 104, 105, 106, 107, 108, 109, 110, |
| 161105 | /* 620 */ 111, 112, 251, 45, 46, 47, 59, 49, 291, 115, |
| 161106 | /* 630 */ 116, 117, 116, 81, 192, 305, 306, 19, 192, 268, |
| 161107 | /* 640 */ 19, 23, 22, 192, 252, 24, 115, 116, 117, 192, |
| 161108 | /* 650 */ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, |
| 161109 | /* 660 */ 112, 43, 44, 45, 46, 47, 48, 49, 50, 51, |
| 161110 | /* 670 */ 52, 53, 54, 55, 56, 57, 19, 22, 23, 59, |
| 161111 | /* 680 */ 23, 303, 115, 116, 117, 192, 240, 234, 235, 137, |
| 161112 | /* 690 */ 138, 240, 308, 192, 22, 192, 312, 22, 120, 306, |
| 161113 | /* 700 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, |
| 161114 | /* 710 */ 53, 54, 55, 56, 57, 197, 95, 150, 215, 216, |
| 161115 | /* 720 */ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, |
| 161116 | /* 730 */ 112, 59, 231, 112, 59, 115, 116, 117, 25, 118, |
| 161117 | /* 740 */ 119, 120, 121, 122, 123, 124, 19, 243, 81, 303, |
| 161118 | /* 750 */ 23, 130, 192, 192, 303, 252, 101, 253, 203, 102, |
| 161119 | /* 760 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, |
| 161120 | /* 770 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, |
| 161121 | /* 780 */ 53, 54, 55, 56, 57, 19, 119, 115, 116, 117, |
| 161122 | /* 790 */ 115, 116, 117, 238, 239, 238, 239, 192, 280, 192, |
| 161123 | /* 800 */ 240, 192, 284, 192, 137, 138, 251, 192, 251, 43, |
| 161124 | /* 810 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, |
| 161125 | /* 820 */ 54, 55, 56, 57, 192, 35, 215, 216, 267, 102, |
| 161126 | /* 830 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, |
| 161127 | /* 840 */ 59, 230, 237, 192, 25, 192, 192, 215, 216, 240, |
| 161128 | /* 850 */ 137, 138, 237, 16, 200, 19, 66, 192, 133, 205, |
| 161129 | /* 860 */ 135, 136, 230, 303, 74, 203, 215, 216, 102, 103, |
| 161130 | /* 870 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 43, |
| 161131 | /* 880 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, |
| 161132 | /* 890 */ 54, 55, 56, 57, 192, 76, 115, 116, 117, 19, |
| 161133 | /* 900 */ 238, 239, 192, 252, 126, 127, 128, 192, 89, 238, |
| 161134 | /* 910 */ 239, 92, 303, 251, 77, 262, 79, 215, 216, 129, |
| 161135 | /* 920 */ 210, 211, 251, 142, 158, 45, 46, 47, 48, 49, |
| 161136 | /* 930 */ 50, 51, 52, 53, 54, 55, 56, 57, 102, 103, |
| 161137 | /* 940 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 12, |
| 161138 | /* 950 */ 59, 308, 192, 212, 252, 312, 291, 192, 7, 8, |
| 161139 | /* 960 */ 9, 300, 301, 203, 27, 126, 127, 128, 308, 207, |
| 161140 | /* 970 */ 208, 192, 312, 29, 192, 215, 216, 33, 192, 42, |
| 161141 | /* 980 */ 215, 216, 102, 103, 104, 105, 106, 107, 108, 109, |
| 161142 | /* 990 */ 110, 111, 112, 283, 158, 230, 66, 160, 238, 239, |
| 161143 | /* 1000 */ 63, 215, 216, 192, 192, 12, 115, 116, 117, 65, |
| 161144 | /* 1010 */ 73, 251, 252, 192, 19, 85, 230, 192, 24, 24, |
| 161145 | /* 1020 */ 27, 261, 210, 211, 94, 192, 215, 216, 22, 207, |
| 161146 | /* 1030 */ 208, 290, 192, 142, 19, 42, 215, 216, 43, 44, |
| 161147 | /* 1040 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, |
| 161148 | /* 1050 */ 55, 56, 57, 59, 19, 144, 63, 192, 43, 44, |
| 161149 | /* 1060 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, |
| 161150 | /* 1070 */ 55, 56, 57, 252, 163, 145, 114, 22, 43, 44, |
| 161151 | /* 1080 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, |
| 161152 | /* 1090 */ 55, 56, 57, 45, 212, 283, 263, 102, 103, 104, |
| 161153 | /* 1100 */ 105, 106, 107, 108, 109, 110, 111, 112, 59, 192, |
| 161154 | /* 1110 */ 116, 149, 106, 107, 59, 25, 291, 102, 103, 104, |
| 161155 | /* 1120 */ 105, 106, 107, 108, 109, 110, 111, 112, 192, 22, |
| 161156 | /* 1130 */ 192, 192, 215, 216, 23, 192, 25, 102, 103, 104, |
| 161157 | /* 1140 */ 105, 106, 107, 108, 109, 110, 111, 112, 108, 192, |
| 161158 | /* 1150 */ 192, 215, 216, 215, 216, 106, 107, 19, 215, 216, |
| 161159 | /* 1160 */ 53, 59, 114, 114, 115, 116, 117, 285, 119, 137, |
| 161160 | /* 1170 */ 138, 116, 290, 230, 134, 192, 127, 192, 192, 139, |
| 161161 | /* 1180 */ 59, 192, 44, 45, 46, 47, 48, 49, 50, 51, |
| 161162 | /* 1190 */ 52, 53, 54, 55, 56, 57, 308, 76, 215, 216, |
| 161163 | /* 1200 */ 312, 152, 263, 154, 215, 216, 192, 117, 87, 19, |
| 161164 | /* 1210 */ 89, 19, 20, 92, 22, 22, 23, 231, 116, 230, |
| 161165 | /* 1220 */ 263, 263, 237, 203, 298, 299, 203, 239, 36, 215, |
| 161166 | /* 1230 */ 216, 192, 142, 192, 15, 45, 115, 116, 117, 251, |
| 161167 | /* 1240 */ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, |
| 161168 | /* 1250 */ 112, 59, 192, 203, 215, 216, 215, 216, 238, 239, |
| 161169 | /* 1260 */ 192, 238, 239, 71, 192, 144, 25, 203, 243, 230, |
| 161170 | /* 1270 */ 243, 251, 192, 81, 251, 215, 216, 243, 253, 60, |
| 161171 | /* 1280 */ 253, 255, 256, 19, 20, 25, 22, 253, 238, 239, |
| 161172 | /* 1290 */ 192, 192, 100, 192, 101, 215, 216, 19, 106, 107, |
| 161173 | /* 1300 */ 36, 251, 238, 239, 114, 113, 192, 115, 116, 117, |
| 161174 | /* 1310 */ 192, 47, 120, 215, 216, 251, 215, 216, 192, 31, |
| 161175 | /* 1320 */ 130, 134, 243, 59, 148, 149, 139, 39, 192, 137, |
| 161176 | /* 1330 */ 138, 263, 253, 215, 216, 71, 19, 157, 192, 159, |
| 161177 | /* 1340 */ 128, 215, 216, 25, 152, 153, 154, 155, 156, 85, |
| 161178 | /* 1350 */ 192, 215, 216, 268, 90, 0, 1, 2, 192, 192, |
| 161179 | /* 1360 */ 5, 215, 216, 151, 100, 10, 11, 12, 13, 14, |
| 161180 | /* 1370 */ 106, 107, 17, 215, 216, 19, 20, 113, 22, 115, |
| 161181 | /* 1380 */ 116, 117, 215, 216, 120, 30, 192, 32, 192, 148, |
| 161182 | /* 1390 */ 192, 24, 36, 115, 22, 40, 24, 23, 192, 25, |
| 161183 | /* 1400 */ 128, 23, 99, 25, 144, 192, 22, 192, 192, 215, |
| 161184 | /* 1410 */ 216, 215, 216, 215, 216, 59, 152, 153, 154, 155, |
| 161185 | /* 1420 */ 156, 215, 216, 151, 192, 70, 192, 71, 215, 216, |
| 161186 | /* 1430 */ 215, 216, 115, 78, 192, 132, 81, 192, 23, 22, |
| 161187 | /* 1440 */ 25, 85, 192, 192, 192, 61, 90, 215, 216, 215, |
| 161188 | /* 1450 */ 216, 192, 225, 98, 192, 192, 100, 215, 216, 141, |
| 161189 | /* 1460 */ 215, 216, 106, 107, 225, 215, 216, 215, 216, 113, |
| 161190 | /* 1470 */ 59, 115, 116, 117, 215, 216, 120, 215, 216, 192, |
| 161191 | /* 1480 */ 120, 192, 19, 20, 23, 22, 25, 132, 119, 120, |
| 161192 | /* 1490 */ 130, 192, 137, 138, 192, 23, 192, 25, 192, 36, |
| 161193 | /* 1500 */ 192, 192, 215, 216, 215, 216, 192, 140, 152, 153, |
| 161194 | /* 1510 */ 154, 155, 156, 192, 215, 216, 161, 215, 216, 215, |
| 161195 | /* 1520 */ 216, 192, 59, 215, 216, 19, 192, 116, 192, 215, |
| 161196 | /* 1530 */ 216, 23, 59, 25, 71, 192, 215, 216, 192, 23, |
| 161197 | /* 1540 */ 23, 25, 25, 192, 215, 216, 7, 8, 85, 215, |
| 161198 | /* 1550 */ 216, 215, 216, 90, 192, 1, 2, 140, 192, 5, |
| 161199 | /* 1560 */ 192, 215, 216, 100, 10, 11, 12, 13, 14, 106, |
| 161200 | /* 1570 */ 107, 17, 192, 23, 192, 25, 113, 192, 115, 116, |
| 161201 | /* 1580 */ 117, 215, 216, 120, 30, 59, 32, 19, 20, 116, |
| 161202 | /* 1590 */ 22, 192, 83, 84, 40, 215, 216, 215, 216, 192, |
| 161203 | /* 1600 */ 215, 216, 192, 97, 36, 192, 19, 20, 23, 22, |
| 161204 | /* 1610 */ 25, 23, 152, 25, 154, 152, 153, 154, 155, 156, |
| 161205 | /* 1620 */ 152, 225, 154, 36, 70, 215, 216, 59, 215, 216, |
| 161206 | /* 1630 */ 192, 23, 78, 25, 23, 81, 25, 192, 192, 71, |
| 161207 | /* 1640 */ 257, 192, 116, 192, 192, 254, 59, 317, 192, 192, |
| 161208 | /* 1650 */ 192, 235, 98, 241, 192, 254, 192, 192, 71, 192, |
| 161209 | /* 1660 */ 287, 192, 192, 286, 242, 190, 213, 296, 100, 266, |
| 161210 | /* 1670 */ 270, 244, 254, 254, 106, 107, 108, 254, 258, 258, |
| 161211 | /* 1680 */ 266, 113, 292, 115, 116, 117, 132, 100, 120, 245, |
| 161212 | /* 1690 */ 292, 137, 138, 106, 107, 19, 20, 219, 22, 270, |
| 161213 | /* 1700 */ 113, 270, 115, 116, 117, 270, 224, 120, 228, 218, |
| 161214 | /* 1710 */ 218, 245, 36, 218, 195, 161, 279, 258, 244, 248, |
| 161215 | /* 1720 */ 152, 153, 154, 155, 156, 248, 242, 244, 60, 296, |
| 161216 | /* 1730 */ 296, 140, 199, 199, 38, 59, 293, 199, 149, 152, |
| 161217 | /* 1740 */ 153, 154, 155, 156, 150, 5, 22, 71, 293, 43, |
| 161218 | /* 1750 */ 10, 11, 12, 13, 14, 269, 271, 17, 282, 18, |
| 161219 | /* 1760 */ 233, 236, 199, 18, 236, 236, 236, 198, 148, 245, |
| 161220 | /* 1770 */ 30, 271, 32, 271, 269, 233, 100, 245, 233, 199, |
| 161221 | /* 1780 */ 40, 245, 106, 107, 198, 245, 157, 289, 62, 113, |
| 161222 | /* 1790 */ 198, 115, 116, 117, 199, 288, 120, 22, 220, 199, |
| 161223 | /* 1800 */ 198, 220, 199, 198, 114, 226, 64, 217, 22, 125, |
| 161224 | /* 1810 */ 70, 164, 311, 217, 217, 217, 223, 24, 78, 304, |
| 161225 | /* 1820 */ 219, 81, 223, 217, 220, 112, 217, 217, 152, 153, |
| 161226 | /* 1830 */ 154, 155, 156, 226, 281, 220, 281, 143, 98, 114, |
| 161227 | /* 1840 */ 199, 91, 260, 259, 82, 147, 144, 316, 22, 276, |
| 161228 | /* 1850 */ 199, 316, 157, 278, 146, 145, 25, 201, 13, 193, |
| 161229 | /* 1860 */ 193, 6, 191, 191, 191, 299, 302, 302, 206, 246, |
| 161230 | /* 1870 */ 248, 259, 132, 260, 260, 259, 259, 137, 138, 260, |
| 161231 | /* 1880 */ 249, 249, 264, 247, 245, 264, 212, 212, 206, 212, |
| 161232 | /* 1890 */ 212, 221, 206, 213, 213, 212, 4, 3, 22, 162, |
| 161233 | /* 1900 */ 221, 161, 15, 23, 16, 23, 138, 150, 129, 25, |
| 161234 | /* 1910 */ 24, 141, 143, 20, 16, 1, 129, 141, 129, 61, |
| 161235 | /* 1920 */ 37, 150, 53, 53, 53, 53, 129, 115, 140, 34, |
| 161236 | /* 1930 */ 1, 5, 22, 114, 160, 68, 25, 75, 41, 140, |
| 161237 | /* 1940 */ 24, 68, 114, 20, 19, 130, 124, 23, 67, 22, |
| 161238 | /* 1950 */ 22, 148, 22, 22, 37, 59, 67, 24, 22, 96, |
| 161239 | /* 1960 */ 28, 23, 22, 97, 23, 23, 67, 23, 25, 23, |
| 161240 | /* 1970 */ 22, 115, 140, 23, 23, 22, 142, 25, 88, 34, |
| 161241 | /* 1980 */ 75, 34, 75, 34, 93, 23, 86, 22, 34, 34, |
| 161242 | /* 1990 */ 24, 34, 25, 25, 34, 23, 23, 23, 23, 23, |
| 161243 | /* 2000 */ 44, 23, 25, 22, 11, 22, 22, 25, 23, 23, |
| 161244 | /* 2010 */ 22, 22, 134, 23, 140, 140, 25, 140, 15, 140, |
| 161245 | /* 2020 */ 1, 1, 318, 318, 318, 318, 318, 318, 318, 318, |
| 161246 | /* 2030 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 161247 | /* 2040 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 161248 | /* 2050 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 161249 | /* 2060 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 161250 | /* 2070 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 161251 | /* 2080 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 161252 | /* 2090 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 161253 | /* 2100 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 161254 | /* 2110 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 161255 | /* 2120 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 161256 | /* 2130 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 161257 | /* 2140 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 161258 | /* 2150 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 161259 | /* 2160 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 161260 | /* 2170 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 161261 | /* 2180 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 161262 | /* 2190 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 161263 | /* 2200 */ 318, 318, 318, 318, 318, 318, |
| 161264 | }; |
| 161265 | #define YY_SHIFT_COUNT (571) |
| 161266 | #define YY_SHIFT_MIN (0) |
| 161267 | #define YY_SHIFT_MAX (2020) |
| 161268 | static const unsigned short int yy_shift_ofst[] = { |
| 161269 | /* 0 */ 1554, 1355, 1740, 1192, 1192, 552, 1264, 1356, 1463, 1587, |
| 161270 | /* 10 */ 1587, 1587, 276, 0, 0, 180, 1015, 1587, 1587, 1587, |
| 161271 | /* 20 */ 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, |
| 161272 | /* 30 */ 1049, 1049, 1121, 1121, 54, 667, 552, 552, 552, 552, |
| 161273 | /* 40 */ 552, 40, 110, 219, 289, 396, 439, 509, 548, 618, |
| 161274 | /* 50 */ 657, 727, 766, 836, 995, 1015, 1015, 1015, 1015, 1015, |
| 161275 | /* 60 */ 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, |
| 161276 | /* 70 */ 1015, 1015, 1015, 1035, 1015, 1138, 880, 880, 1568, 1587, |
| 161277 | /* 80 */ 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, |
| 161278 | /* 90 */ 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, |
| 161279 | /* 100 */ 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, |
| 161280 | /* 110 */ 1587, 1587, 1587, 1676, 1587, 1587, 1587, 1587, 1587, 1587, |
| 161281 | /* 120 */ 1587, 1587, 1587, 1587, 1587, 1587, 1587, 146, 84, 84, |
| 161282 | /* 130 */ 84, 84, 84, 277, 315, 401, 97, 461, 251, 531, |
| 161283 | /* 140 */ 531, 51, 1190, 531, 531, 324, 324, 531, 713, 713, |
| 161284 | /* 150 */ 713, 713, 151, 154, 154, 4, 149, 2022, 2022, 621, |
| 161285 | /* 160 */ 621, 621, 567, 398, 398, 398, 398, 937, 937, 228, |
| 161286 | /* 170 */ 251, 159, 331, 531, 531, 531, 531, 531, 531, 531, |
| 161287 | /* 180 */ 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, |
| 161288 | /* 190 */ 531, 531, 531, 819, 819, 531, 9, 25, 25, 1102, |
| 161289 | /* 200 */ 1102, 911, 1032, 2022, 2022, 2022, 2022, 2022, 2022, 2022, |
| 161290 | /* 210 */ 255, 317, 317, 514, 403, 620, 471, 672, 781, 891, |
| 161291 | /* 220 */ 675, 531, 531, 531, 531, 531, 531, 531, 531, 531, |
| 161292 | /* 230 */ 531, 454, 531, 531, 531, 531, 531, 531, 531, 531, |
| 161293 | /* 240 */ 531, 531, 531, 531, 790, 790, 790, 531, 531, 531, |
| 161294 | /* 250 */ 338, 531, 531, 531, 516, 930, 531, 531, 993, 531, |
| 161295 | /* 260 */ 531, 531, 531, 531, 531, 531, 531, 778, 944, 725, |
| 161296 | /* 270 */ 994, 994, 994, 994, 1090, 725, 725, 1040, 1006, 951, |
| 161297 | /* 280 */ 1219, 962, 1176, 98, 1278, 1176, 1278, 1317, 1241, 962, |
| 161298 | /* 290 */ 962, 1241, 962, 98, 1317, 286, 1111, 1048, 1288, 1288, |
| 161299 | /* 300 */ 1288, 1278, 1260, 1260, 1180, 1318, 1187, 1372, 1668, 1668, |
| 161300 | /* 310 */ 1591, 1591, 1696, 1696, 1591, 1594, 1589, 1724, 1706, 1741, |
| 161301 | /* 320 */ 1741, 1741, 1741, 1591, 1745, 1620, 1589, 1589, 1620, 1724, |
| 161302 | /* 330 */ 1706, 1620, 1706, 1620, 1591, 1745, 1629, 1726, 1591, 1745, |
| 161303 | /* 340 */ 1775, 1591, 1745, 1591, 1745, 1775, 1690, 1690, 1690, 1742, |
| 161304 | /* 350 */ 1786, 1786, 1775, 1690, 1684, 1690, 1742, 1690, 1690, 1647, |
| 161305 | /* 360 */ 1793, 1713, 1713, 1775, 1694, 1725, 1694, 1725, 1694, 1725, |
| 161306 | /* 370 */ 1694, 1725, 1591, 1750, 1750, 1762, 1762, 1698, 1702, 1826, |
| 161307 | /* 380 */ 1591, 1695, 1698, 1708, 1710, 1620, 1831, 1845, 1845, 1855, |
| 161308 | /* 390 */ 1855, 1855, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, |
| 161309 | /* 400 */ 2022, 2022, 2022, 2022, 2022, 2022, 2022, 578, 837, 655, |
| 161310 | /* 410 */ 1193, 167, 839, 1055, 1374, 1303, 1107, 1367, 1212, 1272, |
| 161311 | /* 420 */ 1378, 1384, 1415, 1461, 1472, 1508, 1516, 1517, 1411, 1369, |
| 161312 | /* 430 */ 1539, 1360, 1506, 1473, 1550, 1585, 1509, 1588, 1460, 1468, |
| 161313 | /* 440 */ 1608, 1611, 1526, 1417, 1892, 1894, 1876, 1737, 1887, 1888, |
| 161314 | /* 450 */ 1880, 1882, 1768, 1757, 1779, 1884, 1884, 1886, 1770, 1893, |
| 161315 | /* 460 */ 1769, 1898, 1914, 1776, 1787, 1884, 1789, 1858, 1883, 1884, |
| 161316 | /* 470 */ 1771, 1869, 1870, 1871, 1872, 1797, 1812, 1895, 1788, 1929, |
| 161317 | /* 480 */ 1926, 1910, 1819, 1774, 1867, 1911, 1873, 1862, 1897, 1799, |
| 161318 | /* 490 */ 1828, 1916, 1923, 1925, 1815, 1822, 1927, 1881, 1928, 1930, |
| 161319 | /* 500 */ 1924, 1931, 1889, 1896, 1933, 1863, 1932, 1936, 1899, 1917, |
| 161320 | /* 510 */ 1938, 1803, 1940, 1941, 1942, 1944, 1943, 1946, 1948, 1866, |
| 161321 | /* 520 */ 1832, 1950, 1951, 1856, 1945, 1953, 1834, 1952, 1947, 1949, |
| 161322 | /* 530 */ 1954, 1955, 1890, 1905, 1900, 1956, 1907, 1891, 1957, 1962, |
| 161323 | /* 540 */ 1965, 1966, 1967, 1968, 1960, 1972, 1952, 1973, 1974, 1975, |
| 161324 | /* 550 */ 1976, 1977, 1978, 1981, 1993, 1983, 1984, 1985, 1986, 1988, |
| 161325 | /* 560 */ 1989, 1982, 1878, 1874, 1875, 1877, 1879, 1991, 1990, 2003, |
| 161326 | /* 570 */ 2019, 2020, |
| 161327 | }; |
| 161328 | #define YY_REDUCE_COUNT (406) |
| 161329 | #define YY_REDUCE_MIN (-272) |
| 161330 | #define YY_REDUCE_MAX (1686) |
| 161331 | static const short yy_reduce_ofst[] = { |
| 161332 | /* 0 */ 109, 113, 272, 760, -178, -176, -192, -183, -180, -134, |
| 161333 | /* 10 */ 213, 220, 371, -208, -205, -272, -197, 611, 632, 765, |
| 161334 | /* 20 */ 786, 392, 943, 989, 503, 651, 1039, -18, 702, 821, |
| 161335 | /* 30 */ 710, 812, -188, -67, -187, 555, 662, 1020, 1023, 1050, |
| 161336 | /* 40 */ 1064, -267, -267, -267, -267, -267, -267, -267, -267, -267, |
| 161337 | /* 50 */ -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, |
| 161338 | /* 60 */ -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, |
| 161339 | /* 70 */ -267, -267, -267, -267, -267, -267, -267, -267, 811, 917, |
| 161340 | /* 80 */ 936, 938, 983, 1014, 1041, 1060, 1080, 1098, 1101, 1118, |
| 161341 | /* 90 */ 1126, 1136, 1146, 1158, 1167, 1194, 1196, 1198, 1206, 1213, |
| 161342 | /* 100 */ 1215, 1232, 1234, 1242, 1245, 1250, 1252, 1259, 1262, 1287, |
| 161343 | /* 110 */ 1289, 1299, 1302, 1304, 1308, 1314, 1321, 1329, 1334, 1336, |
| 161344 | /* 120 */ 1346, 1366, 1380, 1382, 1385, 1410, 1413, -267, -267, -267, |
| 161345 | /* 130 */ -267, -267, -267, -267, -267, 446, -267, 451, -24, 121, |
| 161346 | /* 140 */ 560, 518, 232, 609, 330, -181, -111, 654, 557, 671, |
| 161347 | /* 150 */ 557, 671, 882, -30, 93, -267, -267, -267, -267, 155, |
| 161348 | /* 160 */ 155, 155, 181, 242, 305, 339, 561, -218, 453, 227, |
| 161349 | /* 170 */ 158, 661, 661, -171, 114, 327, 653, -166, 275, 605, |
| 161350 | /* 180 */ 615, 337, 833, 665, 939, 957, 825, 958, 985, 501, |
| 161351 | /* 190 */ 986, 378, 1068, 384, 643, 393, 741, 660, 888, 762, |
| 161352 | /* 200 */ 822, 229, 988, 926, 504, 1025, 1027, 1034, 1026, 1079, |
| 161353 | /* 210 */ -204, -174, -151, 18, 130, 198, 226, 376, 391, 442, |
| 161354 | /* 220 */ 457, 493, 607, 715, 779, 782, 840, 865, 1072, 1099, |
| 161355 | /* 230 */ 1114, 1085, 1166, 1216, 1251, 1263, 1306, 1309, 1343, 1351, |
| 161356 | /* 240 */ 1362, 1368, 1399, 1407, 1227, 1239, 1396, 1438, 1445, 1446, |
| 161357 | /* 250 */ 1383, 1449, 1451, 1452, 1391, 1330, 1456, 1457, 1416, 1458, |
| 161358 | /* 260 */ 226, 1462, 1464, 1465, 1467, 1469, 1470, 1373, 1377, 1412, |
| 161359 | /* 270 */ 1401, 1418, 1419, 1423, 1383, 1412, 1412, 1422, 1453, 1475, |
| 161360 | /* 280 */ 1371, 1400, 1403, 1427, 1420, 1414, 1421, 1390, 1444, 1429, |
| 161361 | /* 290 */ 1431, 1466, 1435, 1474, 1398, 1478, 1480, 1482, 1491, 1492, |
| 161362 | /* 300 */ 1495, 1459, 1471, 1477, 1437, 1483, 1484, 1519, 1433, 1434, |
| 161363 | /* 310 */ 1533, 1534, 1443, 1455, 1538, 1476, 1485, 1486, 1527, 1525, |
| 161364 | /* 320 */ 1528, 1529, 1530, 1563, 1569, 1524, 1500, 1502, 1532, 1505, |
| 161365 | /* 330 */ 1542, 1536, 1545, 1540, 1580, 1586, 1498, 1507, 1595, 1592, |
| 161366 | /* 340 */ 1578, 1600, 1602, 1603, 1605, 1581, 1590, 1596, 1597, 1579, |
| 161367 | /* 350 */ 1593, 1599, 1604, 1598, 1601, 1606, 1607, 1609, 1610, 1501, |
| 161368 | /* 360 */ 1515, 1553, 1555, 1615, 1582, 1584, 1613, 1612, 1614, 1616, |
| 161369 | /* 370 */ 1619, 1617, 1641, 1531, 1535, 1618, 1621, 1631, 1622, 1573, |
| 161370 | /* 380 */ 1651, 1575, 1632, 1636, 1623, 1639, 1656, 1666, 1667, 1671, |
| 161371 | /* 390 */ 1672, 1673, 1564, 1565, 1566, 1662, 1674, 1675, 1677, 1678, |
| 161372 | /* 400 */ 1682, 1670, 1679, 1680, 1681, 1683, 1686, |
| 161373 | }; |
| 161374 | static const YYACTIONTYPE yy_default[] = { |
| 161375 | /* 0 */ 1633, 1633, 1633, 1462, 1230, 1341, 1230, 1230, 1230, 1462, |
| 161376 | /* 10 */ 1462, 1462, 1230, 1371, 1371, 1515, 1263, 1230, 1230, 1230, |
| 161377 | /* 20 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1461, 1230, 1230, |
| 161378 | /* 30 */ 1230, 1230, 1550, 1550, 1230, 1230, 1230, 1230, 1230, 1230, |
| 161379 | /* 40 */ 1230, 1230, 1380, 1230, 1387, 1230, 1230, 1230, 1230, 1230, |
| 161380 | /* 50 */ 1463, 1464, 1230, 1230, 1230, 1514, 1516, 1479, 1394, 1393, |
| 161381 | /* 60 */ 1392, 1391, 1497, 1358, 1385, 1378, 1382, 1457, 1458, 1456, |
| 161382 | /* 70 */ 1460, 1464, 1463, 1230, 1381, 1428, 1442, 1427, 1230, 1230, |
| 161383 | /* 80 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 161384 | /* 90 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 161385 | /* 100 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 161386 | /* 110 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 161387 | /* 120 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1436, 1441, 1447, |
| 161388 | /* 130 */ 1440, 1437, 1430, 1429, 1431, 1230, 1432, 1230, 1254, 1230, |
| 161389 | /* 140 */ 1230, 1251, 1305, 1230, 1230, 1230, 1230, 1230, 1534, 1533, |
| 161390 | /* 150 */ 1230, 1230, 1263, 1422, 1421, 1433, 1434, 1444, 1443, 1522, |
| 161391 | /* 160 */ 1586, 1585, 1480, 1230, 1230, 1230, 1230, 1230, 1230, 1550, |
| 161392 | /* 170 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 161393 | /* 180 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 161394 | /* 190 */ 1230, 1230, 1230, 1550, 1550, 1230, 1263, 1550, 1550, 1259, |
| 161395 | /* 200 */ 1259, 1365, 1230, 1529, 1332, 1332, 1332, 1332, 1341, 1332, |
| 161396 | /* 210 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 161397 | /* 220 */ 1230, 1230, 1230, 1230, 1230, 1519, 1517, 1230, 1230, 1230, |
| 161398 | /* 230 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 161399 | /* 240 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 161400 | /* 250 */ 1230, 1230, 1230, 1230, 1337, 1230, 1230, 1230, 1230, 1230, |
| 161401 | /* 260 */ 1230, 1230, 1230, 1230, 1230, 1230, 1579, 1230, 1492, 1319, |
| 161402 | /* 270 */ 1337, 1337, 1337, 1337, 1339, 1320, 1318, 1331, 1264, 1237, |
| 161403 | /* 280 */ 1625, 1397, 1386, 1338, 1360, 1386, 1360, 1622, 1384, 1397, |
| 161404 | /* 290 */ 1397, 1384, 1397, 1338, 1622, 1280, 1602, 1275, 1371, 1371, |
| 161405 | /* 300 */ 1371, 1360, 1365, 1365, 1459, 1338, 1331, 1230, 1625, 1625, |
| 161406 | /* 310 */ 1346, 1346, 1624, 1624, 1346, 1480, 1609, 1406, 1308, 1314, |
| 161407 | /* 320 */ 1314, 1314, 1314, 1346, 1248, 1384, 1609, 1609, 1384, 1406, |
| 161408 | /* 330 */ 1308, 1384, 1308, 1384, 1346, 1248, 1496, 1619, 1346, 1248, |
| 161409 | /* 340 */ 1470, 1346, 1248, 1346, 1248, 1470, 1306, 1306, 1306, 1295, |
| 161410 | /* 350 */ 1230, 1230, 1470, 1306, 1280, 1306, 1295, 1306, 1306, 1568, |
| 161411 | /* 360 */ 1230, 1474, 1474, 1470, 1364, 1359, 1364, 1359, 1364, 1359, |
| 161412 | /* 370 */ 1364, 1359, 1346, 1560, 1560, 1374, 1374, 1379, 1365, 1465, |
| 161413 | /* 380 */ 1346, 1230, 1379, 1377, 1375, 1384, 1298, 1582, 1582, 1578, |
| 161414 | /* 390 */ 1578, 1578, 1630, 1630, 1529, 1595, 1263, 1263, 1263, 1263, |
| 161415 | /* 400 */ 1595, 1282, 1282, 1264, 1264, 1263, 1595, 1230, 1230, 1230, |
| 161416 | /* 410 */ 1230, 1230, 1230, 1590, 1230, 1524, 1481, 1350, 1230, 1230, |
| 161417 | /* 420 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 161418 | /* 430 */ 1230, 1230, 1535, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 161419 | /* 440 */ 1230, 1230, 1230, 1411, 1230, 1233, 1526, 1230, 1230, 1230, |
| 161420 | /* 450 */ 1230, 1230, 1230, 1230, 1230, 1388, 1389, 1351, 1230, 1230, |
| 161421 | /* 460 */ 1230, 1230, 1230, 1230, 1230, 1403, 1230, 1230, 1230, 1398, |
| 161422 | /* 470 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1621, 1230, |
| 161423 | /* 480 */ 1230, 1230, 1230, 1230, 1230, 1495, 1494, 1230, 1230, 1348, |
| 161424 | /* 490 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 161425 | /* 500 */ 1230, 1230, 1230, 1278, 1230, 1230, 1230, 1230, 1230, 1230, |
| 161426 | /* 510 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 161427 | /* 520 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1376, 1230, 1230, |
| 161428 | /* 530 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 161429 | /* 540 */ 1230, 1230, 1565, 1366, 1230, 1230, 1612, 1230, 1230, 1230, |
| 161430 | /* 550 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 161431 | /* 560 */ 1230, 1606, 1322, 1413, 1230, 1412, 1416, 1252, 1230, 1242, |
| 161432 | /* 570 */ 1230, 1230, |
| 161433 | }; |
| 161434 | /********** End of lemon-generated parsing tables *****************************/ |
| 161435 | |
| 161436 | /* The next table maps tokens (terminal symbols) into fallback tokens. |
| 161437 | ** If a construct like the following: |
| @@ -161492,14 +161525,14 @@ | |
| 161492 | 59, /* DETACH => ID */ |
| 161493 | 59, /* EACH => ID */ |
| 161494 | 59, /* FAIL => ID */ |
| 161495 | 0, /* OR => nothing */ |
| 161496 | 0, /* AND => nothing */ |
| 161497 | 59, /* MATCH => ID */ |
| 161498 | 59, /* LIKE_KW => ID */ |
| 161499 | 0, /* BETWEEN => nothing */ |
| 161500 | 0, /* IS => nothing */ |
| 161501 | 0, /* IN => nothing */ |
| 161502 | 0, /* ISNULL => nothing */ |
| 161503 | 0, /* NOTNULL => nothing */ |
| 161504 | 0, /* NE => nothing */ |
| 161505 | 0, /* EQ => nothing */ |
| @@ -161559,10 +161592,11 @@ | |
| 161559 | 0, /* MINUS => nothing */ |
| 161560 | 0, /* STAR => nothing */ |
| 161561 | 0, /* SLASH => nothing */ |
| 161562 | 0, /* REM => nothing */ |
| 161563 | 0, /* CONCAT => nothing */ |
| 161564 | 0, /* COLLATE => nothing */ |
| 161565 | 0, /* BITNOT => nothing */ |
| 161566 | 0, /* ON => nothing */ |
| 161567 | 0, /* INDEXED => nothing */ |
| 161568 | 0, /* STRING => nothing */ |
| @@ -161764,14 +161798,14 @@ | |
| 161764 | /* 40 */ "DETACH", |
| 161765 | /* 41 */ "EACH", |
| 161766 | /* 42 */ "FAIL", |
| 161767 | /* 43 */ "OR", |
| 161768 | /* 44 */ "AND", |
| 161769 | /* 45 */ "MATCH", |
| 161770 | /* 46 */ "LIKE_KW", |
| 161771 | /* 47 */ "BETWEEN", |
| 161772 | /* 48 */ "IS", |
| 161773 | /* 49 */ "IN", |
| 161774 | /* 50 */ "ISNULL", |
| 161775 | /* 51 */ "NOTNULL", |
| 161776 | /* 52 */ "NE", |
| 161777 | /* 53 */ "EQ", |
| @@ -161831,216 +161865,217 @@ | |
| 161831 | /* 107 */ "MINUS", |
| 161832 | /* 108 */ "STAR", |
| 161833 | /* 109 */ "SLASH", |
| 161834 | /* 110 */ "REM", |
| 161835 | /* 111 */ "CONCAT", |
| 161836 | /* 112 */ "COLLATE", |
| 161837 | /* 113 */ "BITNOT", |
| 161838 | /* 114 */ "ON", |
| 161839 | /* 115 */ "INDEXED", |
| 161840 | /* 116 */ "STRING", |
| 161841 | /* 117 */ "JOIN_KW", |
| 161842 | /* 118 */ "CONSTRAINT", |
| 161843 | /* 119 */ "DEFAULT", |
| 161844 | /* 120 */ "NULL", |
| 161845 | /* 121 */ "PRIMARY", |
| 161846 | /* 122 */ "UNIQUE", |
| 161847 | /* 123 */ "CHECK", |
| 161848 | /* 124 */ "REFERENCES", |
| 161849 | /* 125 */ "AUTOINCR", |
| 161850 | /* 126 */ "INSERT", |
| 161851 | /* 127 */ "DELETE", |
| 161852 | /* 128 */ "UPDATE", |
| 161853 | /* 129 */ "SET", |
| 161854 | /* 130 */ "DEFERRABLE", |
| 161855 | /* 131 */ "FOREIGN", |
| 161856 | /* 132 */ "DROP", |
| 161857 | /* 133 */ "UNION", |
| 161858 | /* 134 */ "ALL", |
| 161859 | /* 135 */ "EXCEPT", |
| 161860 | /* 136 */ "INTERSECT", |
| 161861 | /* 137 */ "SELECT", |
| 161862 | /* 138 */ "VALUES", |
| 161863 | /* 139 */ "DISTINCT", |
| 161864 | /* 140 */ "DOT", |
| 161865 | /* 141 */ "FROM", |
| 161866 | /* 142 */ "JOIN", |
| 161867 | /* 143 */ "USING", |
| 161868 | /* 144 */ "ORDER", |
| 161869 | /* 145 */ "GROUP", |
| 161870 | /* 146 */ "HAVING", |
| 161871 | /* 147 */ "LIMIT", |
| 161872 | /* 148 */ "WHERE", |
| 161873 | /* 149 */ "RETURNING", |
| 161874 | /* 150 */ "INTO", |
| 161875 | /* 151 */ "NOTHING", |
| 161876 | /* 152 */ "FLOAT", |
| 161877 | /* 153 */ "BLOB", |
| 161878 | /* 154 */ "INTEGER", |
| 161879 | /* 155 */ "VARIABLE", |
| 161880 | /* 156 */ "CASE", |
| 161881 | /* 157 */ "WHEN", |
| 161882 | /* 158 */ "THEN", |
| 161883 | /* 159 */ "ELSE", |
| 161884 | /* 160 */ "INDEX", |
| 161885 | /* 161 */ "ALTER", |
| 161886 | /* 162 */ "ADD", |
| 161887 | /* 163 */ "WINDOW", |
| 161888 | /* 164 */ "OVER", |
| 161889 | /* 165 */ "FILTER", |
| 161890 | /* 166 */ "COLUMN", |
| 161891 | /* 167 */ "AGG_FUNCTION", |
| 161892 | /* 168 */ "AGG_COLUMN", |
| 161893 | /* 169 */ "TRUEFALSE", |
| 161894 | /* 170 */ "ISNOT", |
| 161895 | /* 171 */ "FUNCTION", |
| 161896 | /* 172 */ "UMINUS", |
| 161897 | /* 173 */ "UPLUS", |
| 161898 | /* 174 */ "TRUTH", |
| 161899 | /* 175 */ "REGISTER", |
| 161900 | /* 176 */ "VECTOR", |
| 161901 | /* 177 */ "SELECT_COLUMN", |
| 161902 | /* 178 */ "IF_NULL_ROW", |
| 161903 | /* 179 */ "ASTERISK", |
| 161904 | /* 180 */ "SPAN", |
| 161905 | /* 181 */ "ERROR", |
| 161906 | /* 182 */ "SPACE", |
| 161907 | /* 183 */ "ILLEGAL", |
| 161908 | /* 184 */ "input", |
| 161909 | /* 185 */ "cmdlist", |
| 161910 | /* 186 */ "ecmd", |
| 161911 | /* 187 */ "cmdx", |
| 161912 | /* 188 */ "explain", |
| 161913 | /* 189 */ "cmd", |
| 161914 | /* 190 */ "transtype", |
| 161915 | /* 191 */ "trans_opt", |
| 161916 | /* 192 */ "nm", |
| 161917 | /* 193 */ "savepoint_opt", |
| 161918 | /* 194 */ "create_table", |
| 161919 | /* 195 */ "create_table_args", |
| 161920 | /* 196 */ "createkw", |
| 161921 | /* 197 */ "temp", |
| 161922 | /* 198 */ "ifnotexists", |
| 161923 | /* 199 */ "dbnm", |
| 161924 | /* 200 */ "columnlist", |
| 161925 | /* 201 */ "conslist_opt", |
| 161926 | /* 202 */ "table_option_set", |
| 161927 | /* 203 */ "select", |
| 161928 | /* 204 */ "table_option", |
| 161929 | /* 205 */ "columnname", |
| 161930 | /* 206 */ "carglist", |
| 161931 | /* 207 */ "typetoken", |
| 161932 | /* 208 */ "typename", |
| 161933 | /* 209 */ "signed", |
| 161934 | /* 210 */ "plus_num", |
| 161935 | /* 211 */ "minus_num", |
| 161936 | /* 212 */ "scanpt", |
| 161937 | /* 213 */ "scantok", |
| 161938 | /* 214 */ "ccons", |
| 161939 | /* 215 */ "term", |
| 161940 | /* 216 */ "expr", |
| 161941 | /* 217 */ "onconf", |
| 161942 | /* 218 */ "sortorder", |
| 161943 | /* 219 */ "autoinc", |
| 161944 | /* 220 */ "eidlist_opt", |
| 161945 | /* 221 */ "refargs", |
| 161946 | /* 222 */ "defer_subclause", |
| 161947 | /* 223 */ "generated", |
| 161948 | /* 224 */ "refarg", |
| 161949 | /* 225 */ "refact", |
| 161950 | /* 226 */ "init_deferred_pred_opt", |
| 161951 | /* 227 */ "conslist", |
| 161952 | /* 228 */ "tconscomma", |
| 161953 | /* 229 */ "tcons", |
| 161954 | /* 230 */ "sortlist", |
| 161955 | /* 231 */ "eidlist", |
| 161956 | /* 232 */ "defer_subclause_opt", |
| 161957 | /* 233 */ "orconf", |
| 161958 | /* 234 */ "resolvetype", |
| 161959 | /* 235 */ "raisetype", |
| 161960 | /* 236 */ "ifexists", |
| 161961 | /* 237 */ "fullname", |
| 161962 | /* 238 */ "selectnowith", |
| 161963 | /* 239 */ "oneselect", |
| 161964 | /* 240 */ "wqlist", |
| 161965 | /* 241 */ "multiselect_op", |
| 161966 | /* 242 */ "distinct", |
| 161967 | /* 243 */ "selcollist", |
| 161968 | /* 244 */ "from", |
| 161969 | /* 245 */ "where_opt", |
| 161970 | /* 246 */ "groupby_opt", |
| 161971 | /* 247 */ "having_opt", |
| 161972 | /* 248 */ "orderby_opt", |
| 161973 | /* 249 */ "limit_opt", |
| 161974 | /* 250 */ "window_clause", |
| 161975 | /* 251 */ "values", |
| 161976 | /* 252 */ "nexprlist", |
| 161977 | /* 253 */ "sclp", |
| 161978 | /* 254 */ "as", |
| 161979 | /* 255 */ "seltablist", |
| 161980 | /* 256 */ "stl_prefix", |
| 161981 | /* 257 */ "joinop", |
| 161982 | /* 258 */ "indexed_opt", |
| 161983 | /* 259 */ "on_opt", |
| 161984 | /* 260 */ "using_opt", |
| 161985 | /* 261 */ "exprlist", |
| 161986 | /* 262 */ "xfullname", |
| 161987 | /* 263 */ "idlist", |
| 161988 | /* 264 */ "nulls", |
| 161989 | /* 265 */ "with", |
| 161990 | /* 266 */ "where_opt_ret", |
| 161991 | /* 267 */ "setlist", |
| 161992 | /* 268 */ "insert_cmd", |
| 161993 | /* 269 */ "idlist_opt", |
| 161994 | /* 270 */ "upsert", |
| 161995 | /* 271 */ "returning", |
| 161996 | /* 272 */ "filter_over", |
| 161997 | /* 273 */ "likeop", |
| 161998 | /* 274 */ "between_op", |
| 161999 | /* 275 */ "in_op", |
| 162000 | /* 276 */ "paren_exprlist", |
| 162001 | /* 277 */ "case_operand", |
| 162002 | /* 278 */ "case_exprlist", |
| 162003 | /* 279 */ "case_else", |
| 162004 | /* 280 */ "uniqueflag", |
| 162005 | /* 281 */ "collate", |
| 162006 | /* 282 */ "vinto", |
| 162007 | /* 283 */ "nmnum", |
| 162008 | /* 284 */ "trigger_decl", |
| 162009 | /* 285 */ "trigger_cmd_list", |
| 162010 | /* 286 */ "trigger_time", |
| 162011 | /* 287 */ "trigger_event", |
| 162012 | /* 288 */ "foreach_clause", |
| 162013 | /* 289 */ "when_clause", |
| 162014 | /* 290 */ "trigger_cmd", |
| 162015 | /* 291 */ "trnm", |
| 162016 | /* 292 */ "tridxby", |
| 162017 | /* 293 */ "database_kw_opt", |
| 162018 | /* 294 */ "key_opt", |
| 162019 | /* 295 */ "add_column_fullname", |
| 162020 | /* 296 */ "kwcolumn_opt", |
| 162021 | /* 297 */ "create_vtab", |
| 162022 | /* 298 */ "vtabarglist", |
| 162023 | /* 299 */ "vtabarg", |
| 162024 | /* 300 */ "vtabargtoken", |
| 162025 | /* 301 */ "lp", |
| 162026 | /* 302 */ "anylist", |
| 162027 | /* 303 */ "wqitem", |
| 162028 | /* 304 */ "wqas", |
| 162029 | /* 305 */ "windowdefn_list", |
| 162030 | /* 306 */ "windowdefn", |
| 162031 | /* 307 */ "window", |
| 162032 | /* 308 */ "frame_opt", |
| 162033 | /* 309 */ "part_opt", |
| 162034 | /* 310 */ "filter_clause", |
| 162035 | /* 311 */ "over_clause", |
| 162036 | /* 312 */ "range_or_rows", |
| 162037 | /* 313 */ "frame_bound", |
| 162038 | /* 314 */ "frame_bound_s", |
| 162039 | /* 315 */ "frame_bound_e", |
| 162040 | /* 316 */ "frame_exclude_opt", |
| 162041 | /* 317 */ "frame_exclude", |
| 162042 | }; |
| 162043 | #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */ |
| 162044 | |
| 162045 | #ifndef NDEBUG |
| 162046 | /* For tracing reduce actions, the names of all rules are required. |
| @@ -162256,199 +162291,200 @@ | |
| 162256 | /* 207 */ "expr ::= expr IS expr", |
| 162257 | /* 208 */ "expr ::= expr IS NOT expr", |
| 162258 | /* 209 */ "expr ::= NOT expr", |
| 162259 | /* 210 */ "expr ::= BITNOT expr", |
| 162260 | /* 211 */ "expr ::= PLUS|MINUS expr", |
| 162261 | /* 212 */ "between_op ::= BETWEEN", |
| 162262 | /* 213 */ "between_op ::= NOT BETWEEN", |
| 162263 | /* 214 */ "expr ::= expr between_op expr AND expr", |
| 162264 | /* 215 */ "in_op ::= IN", |
| 162265 | /* 216 */ "in_op ::= NOT IN", |
| 162266 | /* 217 */ "expr ::= expr in_op LP exprlist RP", |
| 162267 | /* 218 */ "expr ::= LP select RP", |
| 162268 | /* 219 */ "expr ::= expr in_op LP select RP", |
| 162269 | /* 220 */ "expr ::= expr in_op nm dbnm paren_exprlist", |
| 162270 | /* 221 */ "expr ::= EXISTS LP select RP", |
| 162271 | /* 222 */ "expr ::= CASE case_operand case_exprlist case_else END", |
| 162272 | /* 223 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", |
| 162273 | /* 224 */ "case_exprlist ::= WHEN expr THEN expr", |
| 162274 | /* 225 */ "case_else ::= ELSE expr", |
| 162275 | /* 226 */ "case_else ::=", |
| 162276 | /* 227 */ "case_operand ::= expr", |
| 162277 | /* 228 */ "case_operand ::=", |
| 162278 | /* 229 */ "exprlist ::=", |
| 162279 | /* 230 */ "nexprlist ::= nexprlist COMMA expr", |
| 162280 | /* 231 */ "nexprlist ::= expr", |
| 162281 | /* 232 */ "paren_exprlist ::=", |
| 162282 | /* 233 */ "paren_exprlist ::= LP exprlist RP", |
| 162283 | /* 234 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt", |
| 162284 | /* 235 */ "uniqueflag ::= UNIQUE", |
| 162285 | /* 236 */ "uniqueflag ::=", |
| 162286 | /* 237 */ "eidlist_opt ::=", |
| 162287 | /* 238 */ "eidlist_opt ::= LP eidlist RP", |
| 162288 | /* 239 */ "eidlist ::= eidlist COMMA nm collate sortorder", |
| 162289 | /* 240 */ "eidlist ::= nm collate sortorder", |
| 162290 | /* 241 */ "collate ::=", |
| 162291 | /* 242 */ "collate ::= COLLATE ID|STRING", |
| 162292 | /* 243 */ "cmd ::= DROP INDEX ifexists fullname", |
| 162293 | /* 244 */ "cmd ::= VACUUM vinto", |
| 162294 | /* 245 */ "cmd ::= VACUUM nm vinto", |
| 162295 | /* 246 */ "vinto ::= INTO expr", |
| 162296 | /* 247 */ "vinto ::=", |
| 162297 | /* 248 */ "cmd ::= PRAGMA nm dbnm", |
| 162298 | /* 249 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", |
| 162299 | /* 250 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", |
| 162300 | /* 251 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", |
| 162301 | /* 252 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP", |
| 162302 | /* 253 */ "plus_num ::= PLUS INTEGER|FLOAT", |
| 162303 | /* 254 */ "minus_num ::= MINUS INTEGER|FLOAT", |
| 162304 | /* 255 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END", |
| 162305 | /* 256 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", |
| 162306 | /* 257 */ "trigger_time ::= BEFORE|AFTER", |
| 162307 | /* 258 */ "trigger_time ::= INSTEAD OF", |
| 162308 | /* 259 */ "trigger_time ::=", |
| 162309 | /* 260 */ "trigger_event ::= DELETE|INSERT", |
| 162310 | /* 261 */ "trigger_event ::= UPDATE", |
| 162311 | /* 262 */ "trigger_event ::= UPDATE OF idlist", |
| 162312 | /* 263 */ "when_clause ::=", |
| 162313 | /* 264 */ "when_clause ::= WHEN expr", |
| 162314 | /* 265 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", |
| 162315 | /* 266 */ "trigger_cmd_list ::= trigger_cmd SEMI", |
| 162316 | /* 267 */ "trnm ::= nm DOT nm", |
| 162317 | /* 268 */ "tridxby ::= INDEXED BY nm", |
| 162318 | /* 269 */ "tridxby ::= NOT INDEXED", |
| 162319 | /* 270 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt", |
| 162320 | /* 271 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt", |
| 162321 | /* 272 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt", |
| 162322 | /* 273 */ "trigger_cmd ::= scanpt select scanpt", |
| 162323 | /* 274 */ "expr ::= RAISE LP IGNORE RP", |
| 162324 | /* 275 */ "expr ::= RAISE LP raisetype COMMA nm RP", |
| 162325 | /* 276 */ "raisetype ::= ROLLBACK", |
| 162326 | /* 277 */ "raisetype ::= ABORT", |
| 162327 | /* 278 */ "raisetype ::= FAIL", |
| 162328 | /* 279 */ "cmd ::= DROP TRIGGER ifexists fullname", |
| 162329 | /* 280 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", |
| 162330 | /* 281 */ "cmd ::= DETACH database_kw_opt expr", |
| 162331 | /* 282 */ "key_opt ::=", |
| 162332 | /* 283 */ "key_opt ::= KEY expr", |
| 162333 | /* 284 */ "cmd ::= REINDEX", |
| 162334 | /* 285 */ "cmd ::= REINDEX nm dbnm", |
| 162335 | /* 286 */ "cmd ::= ANALYZE", |
| 162336 | /* 287 */ "cmd ::= ANALYZE nm dbnm", |
| 162337 | /* 288 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", |
| 162338 | /* 289 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist", |
| 162339 | /* 290 */ "cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm", |
| 162340 | /* 291 */ "add_column_fullname ::= fullname", |
| 162341 | /* 292 */ "cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm", |
| 162342 | /* 293 */ "cmd ::= create_vtab", |
| 162343 | /* 294 */ "cmd ::= create_vtab LP vtabarglist RP", |
| 162344 | /* 295 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm", |
| 162345 | /* 296 */ "vtabarg ::=", |
| 162346 | /* 297 */ "vtabargtoken ::= ANY", |
| 162347 | /* 298 */ "vtabargtoken ::= lp anylist RP", |
| 162348 | /* 299 */ "lp ::= LP", |
| 162349 | /* 300 */ "with ::= WITH wqlist", |
| 162350 | /* 301 */ "with ::= WITH RECURSIVE wqlist", |
| 162351 | /* 302 */ "wqas ::= AS", |
| 162352 | /* 303 */ "wqas ::= AS MATERIALIZED", |
| 162353 | /* 304 */ "wqas ::= AS NOT MATERIALIZED", |
| 162354 | /* 305 */ "wqitem ::= nm eidlist_opt wqas LP select RP", |
| 162355 | /* 306 */ "wqlist ::= wqitem", |
| 162356 | /* 307 */ "wqlist ::= wqlist COMMA wqitem", |
| 162357 | /* 308 */ "windowdefn_list ::= windowdefn", |
| 162358 | /* 309 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", |
| 162359 | /* 310 */ "windowdefn ::= nm AS LP window RP", |
| 162360 | /* 311 */ "window ::= PARTITION BY nexprlist orderby_opt frame_opt", |
| 162361 | /* 312 */ "window ::= nm PARTITION BY nexprlist orderby_opt frame_opt", |
| 162362 | /* 313 */ "window ::= ORDER BY sortlist frame_opt", |
| 162363 | /* 314 */ "window ::= nm ORDER BY sortlist frame_opt", |
| 162364 | /* 315 */ "window ::= frame_opt", |
| 162365 | /* 316 */ "window ::= nm frame_opt", |
| 162366 | /* 317 */ "frame_opt ::=", |
| 162367 | /* 318 */ "frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt", |
| 162368 | /* 319 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt", |
| 162369 | /* 320 */ "range_or_rows ::= RANGE|ROWS|GROUPS", |
| 162370 | /* 321 */ "frame_bound_s ::= frame_bound", |
| 162371 | /* 322 */ "frame_bound_s ::= UNBOUNDED PRECEDING", |
| 162372 | /* 323 */ "frame_bound_e ::= frame_bound", |
| 162373 | /* 324 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", |
| 162374 | /* 325 */ "frame_bound ::= expr PRECEDING|FOLLOWING", |
| 162375 | /* 326 */ "frame_bound ::= CURRENT ROW", |
| 162376 | /* 327 */ "frame_exclude_opt ::=", |
| 162377 | /* 328 */ "frame_exclude_opt ::= EXCLUDE frame_exclude", |
| 162378 | /* 329 */ "frame_exclude ::= NO OTHERS", |
| 162379 | /* 330 */ "frame_exclude ::= CURRENT ROW", |
| 162380 | /* 331 */ "frame_exclude ::= GROUP|TIES", |
| 162381 | /* 332 */ "window_clause ::= WINDOW windowdefn_list", |
| 162382 | /* 333 */ "filter_over ::= filter_clause over_clause", |
| 162383 | /* 334 */ "filter_over ::= over_clause", |
| 162384 | /* 335 */ "filter_over ::= filter_clause", |
| 162385 | /* 336 */ "over_clause ::= OVER LP window RP", |
| 162386 | /* 337 */ "over_clause ::= OVER nm", |
| 162387 | /* 338 */ "filter_clause ::= FILTER LP WHERE expr RP", |
| 162388 | /* 339 */ "input ::= cmdlist", |
| 162389 | /* 340 */ "cmdlist ::= cmdlist ecmd", |
| 162390 | /* 341 */ "cmdlist ::= ecmd", |
| 162391 | /* 342 */ "ecmd ::= SEMI", |
| 162392 | /* 343 */ "ecmd ::= cmdx SEMI", |
| 162393 | /* 344 */ "ecmd ::= explain cmdx SEMI", |
| 162394 | /* 345 */ "trans_opt ::=", |
| 162395 | /* 346 */ "trans_opt ::= TRANSACTION", |
| 162396 | /* 347 */ "trans_opt ::= TRANSACTION nm", |
| 162397 | /* 348 */ "savepoint_opt ::= SAVEPOINT", |
| 162398 | /* 349 */ "savepoint_opt ::=", |
| 162399 | /* 350 */ "cmd ::= create_table create_table_args", |
| 162400 | /* 351 */ "table_option_set ::= table_option", |
| 162401 | /* 352 */ "columnlist ::= columnlist COMMA columnname carglist", |
| 162402 | /* 353 */ "columnlist ::= columnname carglist", |
| 162403 | /* 354 */ "nm ::= ID|INDEXED", |
| 162404 | /* 355 */ "nm ::= STRING", |
| 162405 | /* 356 */ "nm ::= JOIN_KW", |
| 162406 | /* 357 */ "typetoken ::= typename", |
| 162407 | /* 358 */ "typename ::= ID|STRING", |
| 162408 | /* 359 */ "signed ::= plus_num", |
| 162409 | /* 360 */ "signed ::= minus_num", |
| 162410 | /* 361 */ "carglist ::= carglist ccons", |
| 162411 | /* 362 */ "carglist ::=", |
| 162412 | /* 363 */ "ccons ::= NULL onconf", |
| 162413 | /* 364 */ "ccons ::= GENERATED ALWAYS AS generated", |
| 162414 | /* 365 */ "ccons ::= AS generated", |
| 162415 | /* 366 */ "conslist_opt ::= COMMA conslist", |
| 162416 | /* 367 */ "conslist ::= conslist tconscomma tcons", |
| 162417 | /* 368 */ "conslist ::= tcons", |
| 162418 | /* 369 */ "tconscomma ::=", |
| 162419 | /* 370 */ "defer_subclause_opt ::= defer_subclause", |
| 162420 | /* 371 */ "resolvetype ::= raisetype", |
| 162421 | /* 372 */ "selectnowith ::= oneselect", |
| 162422 | /* 373 */ "oneselect ::= values", |
| 162423 | /* 374 */ "sclp ::= selcollist COMMA", |
| 162424 | /* 375 */ "as ::= ID|STRING", |
| 162425 | /* 376 */ "returning ::=", |
| 162426 | /* 377 */ "expr ::= term", |
| 162427 | /* 378 */ "likeop ::= LIKE_KW|MATCH", |
| 162428 | /* 379 */ "exprlist ::= nexprlist", |
| 162429 | /* 380 */ "nmnum ::= plus_num", |
| 162430 | /* 381 */ "nmnum ::= nm", |
| 162431 | /* 382 */ "nmnum ::= ON", |
| 162432 | /* 383 */ "nmnum ::= DELETE", |
| 162433 | /* 384 */ "nmnum ::= DEFAULT", |
| 162434 | /* 385 */ "plus_num ::= INTEGER|FLOAT", |
| 162435 | /* 386 */ "foreach_clause ::=", |
| 162436 | /* 387 */ "foreach_clause ::= FOR EACH ROW", |
| 162437 | /* 388 */ "trnm ::= nm", |
| 162438 | /* 389 */ "tridxby ::=", |
| 162439 | /* 390 */ "database_kw_opt ::= DATABASE", |
| 162440 | /* 391 */ "database_kw_opt ::=", |
| 162441 | /* 392 */ "kwcolumn_opt ::=", |
| 162442 | /* 393 */ "kwcolumn_opt ::= COLUMNKW", |
| 162443 | /* 394 */ "vtabarglist ::= vtabarg", |
| 162444 | /* 395 */ "vtabarglist ::= vtabarglist COMMA vtabarg", |
| 162445 | /* 396 */ "vtabarg ::= vtabarg vtabargtoken", |
| 162446 | /* 397 */ "anylist ::=", |
| 162447 | /* 398 */ "anylist ::= anylist LP anylist RP", |
| 162448 | /* 399 */ "anylist ::= anylist ANY", |
| 162449 | /* 400 */ "with ::=", |
| 162450 | }; |
| 162451 | #endif /* NDEBUG */ |
| 162452 | |
| 162453 | |
| 162454 | #if YYSTACKDEPTH<=0 |
| @@ -162570,103 +162606,103 @@ | |
| 162570 | ** Note: during a reduce, the only symbols destroyed are those |
| 162571 | ** which appear on the RHS of the rule, but which are *not* used |
| 162572 | ** inside the C code. |
| 162573 | */ |
| 162574 | /********* Begin destructor definitions ***************************************/ |
| 162575 | case 203: /* select */ |
| 162576 | case 238: /* selectnowith */ |
| 162577 | case 239: /* oneselect */ |
| 162578 | case 251: /* values */ |
| 162579 | { |
| 162580 | sqlite3SelectDelete(pParse->db, (yypminor->yy303)); |
| 162581 | } |
| 162582 | break; |
| 162583 | case 215: /* term */ |
| 162584 | case 216: /* expr */ |
| 162585 | case 245: /* where_opt */ |
| 162586 | case 247: /* having_opt */ |
| 162587 | case 259: /* on_opt */ |
| 162588 | case 266: /* where_opt_ret */ |
| 162589 | case 277: /* case_operand */ |
| 162590 | case 279: /* case_else */ |
| 162591 | case 282: /* vinto */ |
| 162592 | case 289: /* when_clause */ |
| 162593 | case 294: /* key_opt */ |
| 162594 | case 310: /* filter_clause */ |
| 162595 | { |
| 162596 | sqlite3ExprDelete(pParse->db, (yypminor->yy626)); |
| 162597 | } |
| 162598 | break; |
| 162599 | case 220: /* eidlist_opt */ |
| 162600 | case 230: /* sortlist */ |
| 162601 | case 231: /* eidlist */ |
| 162602 | case 243: /* selcollist */ |
| 162603 | case 246: /* groupby_opt */ |
| 162604 | case 248: /* orderby_opt */ |
| 162605 | case 252: /* nexprlist */ |
| 162606 | case 253: /* sclp */ |
| 162607 | case 261: /* exprlist */ |
| 162608 | case 267: /* setlist */ |
| 162609 | case 276: /* paren_exprlist */ |
| 162610 | case 278: /* case_exprlist */ |
| 162611 | case 309: /* part_opt */ |
| 162612 | { |
| 162613 | sqlite3ExprListDelete(pParse->db, (yypminor->yy562)); |
| 162614 | } |
| 162615 | break; |
| 162616 | case 237: /* fullname */ |
| 162617 | case 244: /* from */ |
| 162618 | case 255: /* seltablist */ |
| 162619 | case 256: /* stl_prefix */ |
| 162620 | case 262: /* xfullname */ |
| 162621 | { |
| 162622 | sqlite3SrcListDelete(pParse->db, (yypminor->yy607)); |
| 162623 | } |
| 162624 | break; |
| 162625 | case 240: /* wqlist */ |
| 162626 | { |
| 162627 | sqlite3WithDelete(pParse->db, (yypminor->yy43)); |
| 162628 | } |
| 162629 | break; |
| 162630 | case 250: /* window_clause */ |
| 162631 | case 305: /* windowdefn_list */ |
| 162632 | { |
| 162633 | sqlite3WindowListDelete(pParse->db, (yypminor->yy375)); |
| 162634 | } |
| 162635 | break; |
| 162636 | case 260: /* using_opt */ |
| 162637 | case 263: /* idlist */ |
| 162638 | case 269: /* idlist_opt */ |
| 162639 | { |
| 162640 | sqlite3IdListDelete(pParse->db, (yypminor->yy240)); |
| 162641 | } |
| 162642 | break; |
| 162643 | case 272: /* filter_over */ |
| 162644 | case 306: /* windowdefn */ |
| 162645 | case 307: /* window */ |
| 162646 | case 308: /* frame_opt */ |
| 162647 | case 311: /* over_clause */ |
| 162648 | { |
| 162649 | sqlite3WindowDelete(pParse->db, (yypminor->yy375)); |
| 162650 | } |
| 162651 | break; |
| 162652 | case 285: /* trigger_cmd_list */ |
| 162653 | case 290: /* trigger_cmd */ |
| 162654 | { |
| 162655 | sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy95)); |
| 162656 | } |
| 162657 | break; |
| 162658 | case 287: /* trigger_event */ |
| 162659 | { |
| 162660 | sqlite3IdListDelete(pParse->db, (yypminor->yy570).b); |
| 162661 | } |
| 162662 | break; |
| 162663 | case 313: /* frame_bound */ |
| 162664 | case 314: /* frame_bound_s */ |
| 162665 | case 315: /* frame_bound_e */ |
| 162666 | { |
| 162667 | sqlite3ExprDelete(pParse->db, (yypminor->yy81).pExpr); |
| 162668 | } |
| 162669 | break; |
| 162670 | /********* End destructor definitions *****************************************/ |
| 162671 | default: break; /* If no destructor action specified: do nothing */ |
| 162672 | } |
| @@ -162953,411 +162989,412 @@ | |
| 162953 | } |
| 162954 | |
| 162955 | /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side |
| 162956 | ** of that rule */ |
| 162957 | static const YYCODETYPE yyRuleInfoLhs[] = { |
| 162958 | 188, /* (0) explain ::= EXPLAIN */ |
| 162959 | 188, /* (1) explain ::= EXPLAIN QUERY PLAN */ |
| 162960 | 187, /* (2) cmdx ::= cmd */ |
| 162961 | 189, /* (3) cmd ::= BEGIN transtype trans_opt */ |
| 162962 | 190, /* (4) transtype ::= */ |
| 162963 | 190, /* (5) transtype ::= DEFERRED */ |
| 162964 | 190, /* (6) transtype ::= IMMEDIATE */ |
| 162965 | 190, /* (7) transtype ::= EXCLUSIVE */ |
| 162966 | 189, /* (8) cmd ::= COMMIT|END trans_opt */ |
| 162967 | 189, /* (9) cmd ::= ROLLBACK trans_opt */ |
| 162968 | 189, /* (10) cmd ::= SAVEPOINT nm */ |
| 162969 | 189, /* (11) cmd ::= RELEASE savepoint_opt nm */ |
| 162970 | 189, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ |
| 162971 | 194, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */ |
| 162972 | 196, /* (14) createkw ::= CREATE */ |
| 162973 | 198, /* (15) ifnotexists ::= */ |
| 162974 | 198, /* (16) ifnotexists ::= IF NOT EXISTS */ |
| 162975 | 197, /* (17) temp ::= TEMP */ |
| 162976 | 197, /* (18) temp ::= */ |
| 162977 | 195, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_option_set */ |
| 162978 | 195, /* (20) create_table_args ::= AS select */ |
| 162979 | 202, /* (21) table_option_set ::= */ |
| 162980 | 202, /* (22) table_option_set ::= table_option_set COMMA table_option */ |
| 162981 | 204, /* (23) table_option ::= WITHOUT nm */ |
| 162982 | 204, /* (24) table_option ::= nm */ |
| 162983 | 205, /* (25) columnname ::= nm typetoken */ |
| 162984 | 207, /* (26) typetoken ::= */ |
| 162985 | 207, /* (27) typetoken ::= typename LP signed RP */ |
| 162986 | 207, /* (28) typetoken ::= typename LP signed COMMA signed RP */ |
| 162987 | 208, /* (29) typename ::= typename ID|STRING */ |
| 162988 | 212, /* (30) scanpt ::= */ |
| 162989 | 213, /* (31) scantok ::= */ |
| 162990 | 214, /* (32) ccons ::= CONSTRAINT nm */ |
| 162991 | 214, /* (33) ccons ::= DEFAULT scantok term */ |
| 162992 | 214, /* (34) ccons ::= DEFAULT LP expr RP */ |
| 162993 | 214, /* (35) ccons ::= DEFAULT PLUS scantok term */ |
| 162994 | 214, /* (36) ccons ::= DEFAULT MINUS scantok term */ |
| 162995 | 214, /* (37) ccons ::= DEFAULT scantok ID|INDEXED */ |
| 162996 | 214, /* (38) ccons ::= NOT NULL onconf */ |
| 162997 | 214, /* (39) ccons ::= PRIMARY KEY sortorder onconf autoinc */ |
| 162998 | 214, /* (40) ccons ::= UNIQUE onconf */ |
| 162999 | 214, /* (41) ccons ::= CHECK LP expr RP */ |
| 163000 | 214, /* (42) ccons ::= REFERENCES nm eidlist_opt refargs */ |
| 163001 | 214, /* (43) ccons ::= defer_subclause */ |
| 163002 | 214, /* (44) ccons ::= COLLATE ID|STRING */ |
| 163003 | 223, /* (45) generated ::= LP expr RP */ |
| 163004 | 223, /* (46) generated ::= LP expr RP ID */ |
| 163005 | 219, /* (47) autoinc ::= */ |
| 163006 | 219, /* (48) autoinc ::= AUTOINCR */ |
| 163007 | 221, /* (49) refargs ::= */ |
| 163008 | 221, /* (50) refargs ::= refargs refarg */ |
| 163009 | 224, /* (51) refarg ::= MATCH nm */ |
| 163010 | 224, /* (52) refarg ::= ON INSERT refact */ |
| 163011 | 224, /* (53) refarg ::= ON DELETE refact */ |
| 163012 | 224, /* (54) refarg ::= ON UPDATE refact */ |
| 163013 | 225, /* (55) refact ::= SET NULL */ |
| 163014 | 225, /* (56) refact ::= SET DEFAULT */ |
| 163015 | 225, /* (57) refact ::= CASCADE */ |
| 163016 | 225, /* (58) refact ::= RESTRICT */ |
| 163017 | 225, /* (59) refact ::= NO ACTION */ |
| 163018 | 222, /* (60) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ |
| 163019 | 222, /* (61) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ |
| 163020 | 226, /* (62) init_deferred_pred_opt ::= */ |
| 163021 | 226, /* (63) init_deferred_pred_opt ::= INITIALLY DEFERRED */ |
| 163022 | 226, /* (64) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ |
| 163023 | 201, /* (65) conslist_opt ::= */ |
| 163024 | 228, /* (66) tconscomma ::= COMMA */ |
| 163025 | 229, /* (67) tcons ::= CONSTRAINT nm */ |
| 163026 | 229, /* (68) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ |
| 163027 | 229, /* (69) tcons ::= UNIQUE LP sortlist RP onconf */ |
| 163028 | 229, /* (70) tcons ::= CHECK LP expr RP onconf */ |
| 163029 | 229, /* (71) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ |
| 163030 | 232, /* (72) defer_subclause_opt ::= */ |
| 163031 | 217, /* (73) onconf ::= */ |
| 163032 | 217, /* (74) onconf ::= ON CONFLICT resolvetype */ |
| 163033 | 233, /* (75) orconf ::= */ |
| 163034 | 233, /* (76) orconf ::= OR resolvetype */ |
| 163035 | 234, /* (77) resolvetype ::= IGNORE */ |
| 163036 | 234, /* (78) resolvetype ::= REPLACE */ |
| 163037 | 189, /* (79) cmd ::= DROP TABLE ifexists fullname */ |
| 163038 | 236, /* (80) ifexists ::= IF EXISTS */ |
| 163039 | 236, /* (81) ifexists ::= */ |
| 163040 | 189, /* (82) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ |
| 163041 | 189, /* (83) cmd ::= DROP VIEW ifexists fullname */ |
| 163042 | 189, /* (84) cmd ::= select */ |
| 163043 | 203, /* (85) select ::= WITH wqlist selectnowith */ |
| 163044 | 203, /* (86) select ::= WITH RECURSIVE wqlist selectnowith */ |
| 163045 | 203, /* (87) select ::= selectnowith */ |
| 163046 | 238, /* (88) selectnowith ::= selectnowith multiselect_op oneselect */ |
| 163047 | 241, /* (89) multiselect_op ::= UNION */ |
| 163048 | 241, /* (90) multiselect_op ::= UNION ALL */ |
| 163049 | 241, /* (91) multiselect_op ::= EXCEPT|INTERSECT */ |
| 163050 | 239, /* (92) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ |
| 163051 | 239, /* (93) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ |
| 163052 | 251, /* (94) values ::= VALUES LP nexprlist RP */ |
| 163053 | 251, /* (95) values ::= values COMMA LP nexprlist RP */ |
| 163054 | 242, /* (96) distinct ::= DISTINCT */ |
| 163055 | 242, /* (97) distinct ::= ALL */ |
| 163056 | 242, /* (98) distinct ::= */ |
| 163057 | 253, /* (99) sclp ::= */ |
| 163058 | 243, /* (100) selcollist ::= sclp scanpt expr scanpt as */ |
| 163059 | 243, /* (101) selcollist ::= sclp scanpt STAR */ |
| 163060 | 243, /* (102) selcollist ::= sclp scanpt nm DOT STAR */ |
| 163061 | 254, /* (103) as ::= AS nm */ |
| 163062 | 254, /* (104) as ::= */ |
| 163063 | 244, /* (105) from ::= */ |
| 163064 | 244, /* (106) from ::= FROM seltablist */ |
| 163065 | 256, /* (107) stl_prefix ::= seltablist joinop */ |
| 163066 | 256, /* (108) stl_prefix ::= */ |
| 163067 | 255, /* (109) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ |
| 163068 | 255, /* (110) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */ |
| 163069 | 255, /* (111) seltablist ::= stl_prefix LP select RP as on_opt using_opt */ |
| 163070 | 255, /* (112) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ |
| 163071 | 199, /* (113) dbnm ::= */ |
| 163072 | 199, /* (114) dbnm ::= DOT nm */ |
| 163073 | 237, /* (115) fullname ::= nm */ |
| 163074 | 237, /* (116) fullname ::= nm DOT nm */ |
| 163075 | 262, /* (117) xfullname ::= nm */ |
| 163076 | 262, /* (118) xfullname ::= nm DOT nm */ |
| 163077 | 262, /* (119) xfullname ::= nm DOT nm AS nm */ |
| 163078 | 262, /* (120) xfullname ::= nm AS nm */ |
| 163079 | 257, /* (121) joinop ::= COMMA|JOIN */ |
| 163080 | 257, /* (122) joinop ::= JOIN_KW JOIN */ |
| 163081 | 257, /* (123) joinop ::= JOIN_KW nm JOIN */ |
| 163082 | 257, /* (124) joinop ::= JOIN_KW nm nm JOIN */ |
| 163083 | 259, /* (125) on_opt ::= ON expr */ |
| 163084 | 259, /* (126) on_opt ::= */ |
| 163085 | 258, /* (127) indexed_opt ::= */ |
| 163086 | 258, /* (128) indexed_opt ::= INDEXED BY nm */ |
| 163087 | 258, /* (129) indexed_opt ::= NOT INDEXED */ |
| 163088 | 260, /* (130) using_opt ::= USING LP idlist RP */ |
| 163089 | 260, /* (131) using_opt ::= */ |
| 163090 | 248, /* (132) orderby_opt ::= */ |
| 163091 | 248, /* (133) orderby_opt ::= ORDER BY sortlist */ |
| 163092 | 230, /* (134) sortlist ::= sortlist COMMA expr sortorder nulls */ |
| 163093 | 230, /* (135) sortlist ::= expr sortorder nulls */ |
| 163094 | 218, /* (136) sortorder ::= ASC */ |
| 163095 | 218, /* (137) sortorder ::= DESC */ |
| 163096 | 218, /* (138) sortorder ::= */ |
| 163097 | 264, /* (139) nulls ::= NULLS FIRST */ |
| 163098 | 264, /* (140) nulls ::= NULLS LAST */ |
| 163099 | 264, /* (141) nulls ::= */ |
| 163100 | 246, /* (142) groupby_opt ::= */ |
| 163101 | 246, /* (143) groupby_opt ::= GROUP BY nexprlist */ |
| 163102 | 247, /* (144) having_opt ::= */ |
| 163103 | 247, /* (145) having_opt ::= HAVING expr */ |
| 163104 | 249, /* (146) limit_opt ::= */ |
| 163105 | 249, /* (147) limit_opt ::= LIMIT expr */ |
| 163106 | 249, /* (148) limit_opt ::= LIMIT expr OFFSET expr */ |
| 163107 | 249, /* (149) limit_opt ::= LIMIT expr COMMA expr */ |
| 163108 | 189, /* (150) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ |
| 163109 | 245, /* (151) where_opt ::= */ |
| 163110 | 245, /* (152) where_opt ::= WHERE expr */ |
| 163111 | 266, /* (153) where_opt_ret ::= */ |
| 163112 | 266, /* (154) where_opt_ret ::= WHERE expr */ |
| 163113 | 266, /* (155) where_opt_ret ::= RETURNING selcollist */ |
| 163114 | 266, /* (156) where_opt_ret ::= WHERE expr RETURNING selcollist */ |
| 163115 | 189, /* (157) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ |
| 163116 | 267, /* (158) setlist ::= setlist COMMA nm EQ expr */ |
| 163117 | 267, /* (159) setlist ::= setlist COMMA LP idlist RP EQ expr */ |
| 163118 | 267, /* (160) setlist ::= nm EQ expr */ |
| 163119 | 267, /* (161) setlist ::= LP idlist RP EQ expr */ |
| 163120 | 189, /* (162) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ |
| 163121 | 189, /* (163) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ |
| 163122 | 270, /* (164) upsert ::= */ |
| 163123 | 270, /* (165) upsert ::= RETURNING selcollist */ |
| 163124 | 270, /* (166) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ |
| 163125 | 270, /* (167) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ |
| 163126 | 270, /* (168) upsert ::= ON CONFLICT DO NOTHING returning */ |
| 163127 | 270, /* (169) upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ |
| 163128 | 271, /* (170) returning ::= RETURNING selcollist */ |
| 163129 | 268, /* (171) insert_cmd ::= INSERT orconf */ |
| 163130 | 268, /* (172) insert_cmd ::= REPLACE */ |
| 163131 | 269, /* (173) idlist_opt ::= */ |
| 163132 | 269, /* (174) idlist_opt ::= LP idlist RP */ |
| 163133 | 263, /* (175) idlist ::= idlist COMMA nm */ |
| 163134 | 263, /* (176) idlist ::= nm */ |
| 163135 | 216, /* (177) expr ::= LP expr RP */ |
| 163136 | 216, /* (178) expr ::= ID|INDEXED */ |
| 163137 | 216, /* (179) expr ::= JOIN_KW */ |
| 163138 | 216, /* (180) expr ::= nm DOT nm */ |
| 163139 | 216, /* (181) expr ::= nm DOT nm DOT nm */ |
| 163140 | 215, /* (182) term ::= NULL|FLOAT|BLOB */ |
| 163141 | 215, /* (183) term ::= STRING */ |
| 163142 | 215, /* (184) term ::= INTEGER */ |
| 163143 | 216, /* (185) expr ::= VARIABLE */ |
| 163144 | 216, /* (186) expr ::= expr COLLATE ID|STRING */ |
| 163145 | 216, /* (187) expr ::= CAST LP expr AS typetoken RP */ |
| 163146 | 216, /* (188) expr ::= ID|INDEXED LP distinct exprlist RP */ |
| 163147 | 216, /* (189) expr ::= ID|INDEXED LP STAR RP */ |
| 163148 | 216, /* (190) expr ::= ID|INDEXED LP distinct exprlist RP filter_over */ |
| 163149 | 216, /* (191) expr ::= ID|INDEXED LP STAR RP filter_over */ |
| 163150 | 215, /* (192) term ::= CTIME_KW */ |
| 163151 | 216, /* (193) expr ::= LP nexprlist COMMA expr RP */ |
| 163152 | 216, /* (194) expr ::= expr AND expr */ |
| 163153 | 216, /* (195) expr ::= expr OR expr */ |
| 163154 | 216, /* (196) expr ::= expr LT|GT|GE|LE expr */ |
| 163155 | 216, /* (197) expr ::= expr EQ|NE expr */ |
| 163156 | 216, /* (198) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ |
| 163157 | 216, /* (199) expr ::= expr PLUS|MINUS expr */ |
| 163158 | 216, /* (200) expr ::= expr STAR|SLASH|REM expr */ |
| 163159 | 216, /* (201) expr ::= expr CONCAT expr */ |
| 163160 | 273, /* (202) likeop ::= NOT LIKE_KW|MATCH */ |
| 163161 | 216, /* (203) expr ::= expr likeop expr */ |
| 163162 | 216, /* (204) expr ::= expr likeop expr ESCAPE expr */ |
| 163163 | 216, /* (205) expr ::= expr ISNULL|NOTNULL */ |
| 163164 | 216, /* (206) expr ::= expr NOT NULL */ |
| 163165 | 216, /* (207) expr ::= expr IS expr */ |
| 163166 | 216, /* (208) expr ::= expr IS NOT expr */ |
| 163167 | 216, /* (209) expr ::= NOT expr */ |
| 163168 | 216, /* (210) expr ::= BITNOT expr */ |
| 163169 | 216, /* (211) expr ::= PLUS|MINUS expr */ |
| 163170 | 274, /* (212) between_op ::= BETWEEN */ |
| 163171 | 274, /* (213) between_op ::= NOT BETWEEN */ |
| 163172 | 216, /* (214) expr ::= expr between_op expr AND expr */ |
| 163173 | 275, /* (215) in_op ::= IN */ |
| 163174 | 275, /* (216) in_op ::= NOT IN */ |
| 163175 | 216, /* (217) expr ::= expr in_op LP exprlist RP */ |
| 163176 | 216, /* (218) expr ::= LP select RP */ |
| 163177 | 216, /* (219) expr ::= expr in_op LP select RP */ |
| 163178 | 216, /* (220) expr ::= expr in_op nm dbnm paren_exprlist */ |
| 163179 | 216, /* (221) expr ::= EXISTS LP select RP */ |
| 163180 | 216, /* (222) expr ::= CASE case_operand case_exprlist case_else END */ |
| 163181 | 278, /* (223) case_exprlist ::= case_exprlist WHEN expr THEN expr */ |
| 163182 | 278, /* (224) case_exprlist ::= WHEN expr THEN expr */ |
| 163183 | 279, /* (225) case_else ::= ELSE expr */ |
| 163184 | 279, /* (226) case_else ::= */ |
| 163185 | 277, /* (227) case_operand ::= expr */ |
| 163186 | 277, /* (228) case_operand ::= */ |
| 163187 | 261, /* (229) exprlist ::= */ |
| 163188 | 252, /* (230) nexprlist ::= nexprlist COMMA expr */ |
| 163189 | 252, /* (231) nexprlist ::= expr */ |
| 163190 | 276, /* (232) paren_exprlist ::= */ |
| 163191 | 276, /* (233) paren_exprlist ::= LP exprlist RP */ |
| 163192 | 189, /* (234) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ |
| 163193 | 280, /* (235) uniqueflag ::= UNIQUE */ |
| 163194 | 280, /* (236) uniqueflag ::= */ |
| 163195 | 220, /* (237) eidlist_opt ::= */ |
| 163196 | 220, /* (238) eidlist_opt ::= LP eidlist RP */ |
| 163197 | 231, /* (239) eidlist ::= eidlist COMMA nm collate sortorder */ |
| 163198 | 231, /* (240) eidlist ::= nm collate sortorder */ |
| 163199 | 281, /* (241) collate ::= */ |
| 163200 | 281, /* (242) collate ::= COLLATE ID|STRING */ |
| 163201 | 189, /* (243) cmd ::= DROP INDEX ifexists fullname */ |
| 163202 | 189, /* (244) cmd ::= VACUUM vinto */ |
| 163203 | 189, /* (245) cmd ::= VACUUM nm vinto */ |
| 163204 | 282, /* (246) vinto ::= INTO expr */ |
| 163205 | 282, /* (247) vinto ::= */ |
| 163206 | 189, /* (248) cmd ::= PRAGMA nm dbnm */ |
| 163207 | 189, /* (249) cmd ::= PRAGMA nm dbnm EQ nmnum */ |
| 163208 | 189, /* (250) cmd ::= PRAGMA nm dbnm LP nmnum RP */ |
| 163209 | 189, /* (251) cmd ::= PRAGMA nm dbnm EQ minus_num */ |
| 163210 | 189, /* (252) cmd ::= PRAGMA nm dbnm LP minus_num RP */ |
| 163211 | 210, /* (253) plus_num ::= PLUS INTEGER|FLOAT */ |
| 163212 | 211, /* (254) minus_num ::= MINUS INTEGER|FLOAT */ |
| 163213 | 189, /* (255) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ |
| 163214 | 284, /* (256) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ |
| 163215 | 286, /* (257) trigger_time ::= BEFORE|AFTER */ |
| 163216 | 286, /* (258) trigger_time ::= INSTEAD OF */ |
| 163217 | 286, /* (259) trigger_time ::= */ |
| 163218 | 287, /* (260) trigger_event ::= DELETE|INSERT */ |
| 163219 | 287, /* (261) trigger_event ::= UPDATE */ |
| 163220 | 287, /* (262) trigger_event ::= UPDATE OF idlist */ |
| 163221 | 289, /* (263) when_clause ::= */ |
| 163222 | 289, /* (264) when_clause ::= WHEN expr */ |
| 163223 | 285, /* (265) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ |
| 163224 | 285, /* (266) trigger_cmd_list ::= trigger_cmd SEMI */ |
| 163225 | 291, /* (267) trnm ::= nm DOT nm */ |
| 163226 | 292, /* (268) tridxby ::= INDEXED BY nm */ |
| 163227 | 292, /* (269) tridxby ::= NOT INDEXED */ |
| 163228 | 290, /* (270) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ |
| 163229 | 290, /* (271) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ |
| 163230 | 290, /* (272) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ |
| 163231 | 290, /* (273) trigger_cmd ::= scanpt select scanpt */ |
| 163232 | 216, /* (274) expr ::= RAISE LP IGNORE RP */ |
| 163233 | 216, /* (275) expr ::= RAISE LP raisetype COMMA nm RP */ |
| 163234 | 235, /* (276) raisetype ::= ROLLBACK */ |
| 163235 | 235, /* (277) raisetype ::= ABORT */ |
| 163236 | 235, /* (278) raisetype ::= FAIL */ |
| 163237 | 189, /* (279) cmd ::= DROP TRIGGER ifexists fullname */ |
| 163238 | 189, /* (280) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ |
| 163239 | 189, /* (281) cmd ::= DETACH database_kw_opt expr */ |
| 163240 | 294, /* (282) key_opt ::= */ |
| 163241 | 294, /* (283) key_opt ::= KEY expr */ |
| 163242 | 189, /* (284) cmd ::= REINDEX */ |
| 163243 | 189, /* (285) cmd ::= REINDEX nm dbnm */ |
| 163244 | 189, /* (286) cmd ::= ANALYZE */ |
| 163245 | 189, /* (287) cmd ::= ANALYZE nm dbnm */ |
| 163246 | 189, /* (288) cmd ::= ALTER TABLE fullname RENAME TO nm */ |
| 163247 | 189, /* (289) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ |
| 163248 | 189, /* (290) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ |
| 163249 | 295, /* (291) add_column_fullname ::= fullname */ |
| 163250 | 189, /* (292) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ |
| 163251 | 189, /* (293) cmd ::= create_vtab */ |
| 163252 | 189, /* (294) cmd ::= create_vtab LP vtabarglist RP */ |
| 163253 | 297, /* (295) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ |
| 163254 | 299, /* (296) vtabarg ::= */ |
| 163255 | 300, /* (297) vtabargtoken ::= ANY */ |
| 163256 | 300, /* (298) vtabargtoken ::= lp anylist RP */ |
| 163257 | 301, /* (299) lp ::= LP */ |
| 163258 | 265, /* (300) with ::= WITH wqlist */ |
| 163259 | 265, /* (301) with ::= WITH RECURSIVE wqlist */ |
| 163260 | 304, /* (302) wqas ::= AS */ |
| 163261 | 304, /* (303) wqas ::= AS MATERIALIZED */ |
| 163262 | 304, /* (304) wqas ::= AS NOT MATERIALIZED */ |
| 163263 | 303, /* (305) wqitem ::= nm eidlist_opt wqas LP select RP */ |
| 163264 | 240, /* (306) wqlist ::= wqitem */ |
| 163265 | 240, /* (307) wqlist ::= wqlist COMMA wqitem */ |
| 163266 | 305, /* (308) windowdefn_list ::= windowdefn */ |
| 163267 | 305, /* (309) windowdefn_list ::= windowdefn_list COMMA windowdefn */ |
| 163268 | 306, /* (310) windowdefn ::= nm AS LP window RP */ |
| 163269 | 307, /* (311) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ |
| 163270 | 307, /* (312) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ |
| 163271 | 307, /* (313) window ::= ORDER BY sortlist frame_opt */ |
| 163272 | 307, /* (314) window ::= nm ORDER BY sortlist frame_opt */ |
| 163273 | 307, /* (315) window ::= frame_opt */ |
| 163274 | 307, /* (316) window ::= nm frame_opt */ |
| 163275 | 308, /* (317) frame_opt ::= */ |
| 163276 | 308, /* (318) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ |
| 163277 | 308, /* (319) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ |
| 163278 | 312, /* (320) range_or_rows ::= RANGE|ROWS|GROUPS */ |
| 163279 | 314, /* (321) frame_bound_s ::= frame_bound */ |
| 163280 | 314, /* (322) frame_bound_s ::= UNBOUNDED PRECEDING */ |
| 163281 | 315, /* (323) frame_bound_e ::= frame_bound */ |
| 163282 | 315, /* (324) frame_bound_e ::= UNBOUNDED FOLLOWING */ |
| 163283 | 313, /* (325) frame_bound ::= expr PRECEDING|FOLLOWING */ |
| 163284 | 313, /* (326) frame_bound ::= CURRENT ROW */ |
| 163285 | 316, /* (327) frame_exclude_opt ::= */ |
| 163286 | 316, /* (328) frame_exclude_opt ::= EXCLUDE frame_exclude */ |
| 163287 | 317, /* (329) frame_exclude ::= NO OTHERS */ |
| 163288 | 317, /* (330) frame_exclude ::= CURRENT ROW */ |
| 163289 | 317, /* (331) frame_exclude ::= GROUP|TIES */ |
| 163290 | 250, /* (332) window_clause ::= WINDOW windowdefn_list */ |
| 163291 | 272, /* (333) filter_over ::= filter_clause over_clause */ |
| 163292 | 272, /* (334) filter_over ::= over_clause */ |
| 163293 | 272, /* (335) filter_over ::= filter_clause */ |
| 163294 | 311, /* (336) over_clause ::= OVER LP window RP */ |
| 163295 | 311, /* (337) over_clause ::= OVER nm */ |
| 163296 | 310, /* (338) filter_clause ::= FILTER LP WHERE expr RP */ |
| 163297 | 184, /* (339) input ::= cmdlist */ |
| 163298 | 185, /* (340) cmdlist ::= cmdlist ecmd */ |
| 163299 | 185, /* (341) cmdlist ::= ecmd */ |
| 163300 | 186, /* (342) ecmd ::= SEMI */ |
| 163301 | 186, /* (343) ecmd ::= cmdx SEMI */ |
| 163302 | 186, /* (344) ecmd ::= explain cmdx SEMI */ |
| 163303 | 191, /* (345) trans_opt ::= */ |
| 163304 | 191, /* (346) trans_opt ::= TRANSACTION */ |
| 163305 | 191, /* (347) trans_opt ::= TRANSACTION nm */ |
| 163306 | 193, /* (348) savepoint_opt ::= SAVEPOINT */ |
| 163307 | 193, /* (349) savepoint_opt ::= */ |
| 163308 | 189, /* (350) cmd ::= create_table create_table_args */ |
| 163309 | 202, /* (351) table_option_set ::= table_option */ |
| 163310 | 200, /* (352) columnlist ::= columnlist COMMA columnname carglist */ |
| 163311 | 200, /* (353) columnlist ::= columnname carglist */ |
| 163312 | 192, /* (354) nm ::= ID|INDEXED */ |
| 163313 | 192, /* (355) nm ::= STRING */ |
| 163314 | 192, /* (356) nm ::= JOIN_KW */ |
| 163315 | 207, /* (357) typetoken ::= typename */ |
| 163316 | 208, /* (358) typename ::= ID|STRING */ |
| 163317 | 209, /* (359) signed ::= plus_num */ |
| 163318 | 209, /* (360) signed ::= minus_num */ |
| 163319 | 206, /* (361) carglist ::= carglist ccons */ |
| 163320 | 206, /* (362) carglist ::= */ |
| 163321 | 214, /* (363) ccons ::= NULL onconf */ |
| 163322 | 214, /* (364) ccons ::= GENERATED ALWAYS AS generated */ |
| 163323 | 214, /* (365) ccons ::= AS generated */ |
| 163324 | 201, /* (366) conslist_opt ::= COMMA conslist */ |
| 163325 | 227, /* (367) conslist ::= conslist tconscomma tcons */ |
| 163326 | 227, /* (368) conslist ::= tcons */ |
| 163327 | 228, /* (369) tconscomma ::= */ |
| 163328 | 232, /* (370) defer_subclause_opt ::= defer_subclause */ |
| 163329 | 234, /* (371) resolvetype ::= raisetype */ |
| 163330 | 238, /* (372) selectnowith ::= oneselect */ |
| 163331 | 239, /* (373) oneselect ::= values */ |
| 163332 | 253, /* (374) sclp ::= selcollist COMMA */ |
| 163333 | 254, /* (375) as ::= ID|STRING */ |
| 163334 | 271, /* (376) returning ::= */ |
| 163335 | 216, /* (377) expr ::= term */ |
| 163336 | 273, /* (378) likeop ::= LIKE_KW|MATCH */ |
| 163337 | 261, /* (379) exprlist ::= nexprlist */ |
| 163338 | 283, /* (380) nmnum ::= plus_num */ |
| 163339 | 283, /* (381) nmnum ::= nm */ |
| 163340 | 283, /* (382) nmnum ::= ON */ |
| 163341 | 283, /* (383) nmnum ::= DELETE */ |
| 163342 | 283, /* (384) nmnum ::= DEFAULT */ |
| 163343 | 210, /* (385) plus_num ::= INTEGER|FLOAT */ |
| 163344 | 288, /* (386) foreach_clause ::= */ |
| 163345 | 288, /* (387) foreach_clause ::= FOR EACH ROW */ |
| 163346 | 291, /* (388) trnm ::= nm */ |
| 163347 | 292, /* (389) tridxby ::= */ |
| 163348 | 293, /* (390) database_kw_opt ::= DATABASE */ |
| 163349 | 293, /* (391) database_kw_opt ::= */ |
| 163350 | 296, /* (392) kwcolumn_opt ::= */ |
| 163351 | 296, /* (393) kwcolumn_opt ::= COLUMNKW */ |
| 163352 | 298, /* (394) vtabarglist ::= vtabarg */ |
| 163353 | 298, /* (395) vtabarglist ::= vtabarglist COMMA vtabarg */ |
| 163354 | 299, /* (396) vtabarg ::= vtabarg vtabargtoken */ |
| 163355 | 302, /* (397) anylist ::= */ |
| 163356 | 302, /* (398) anylist ::= anylist LP anylist RP */ |
| 163357 | 302, /* (399) anylist ::= anylist ANY */ |
| 163358 | 265, /* (400) with ::= */ |
| 163359 | }; |
| 163360 | |
| 163361 | /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number |
| 163362 | ** of symbols on the right-hand side of that rule. */ |
| 163363 | static const signed char yyRuleInfoNRhs[] = { |
| @@ -163571,199 +163608,200 @@ | |
| 163571 | -3, /* (207) expr ::= expr IS expr */ |
| 163572 | -4, /* (208) expr ::= expr IS NOT expr */ |
| 163573 | -2, /* (209) expr ::= NOT expr */ |
| 163574 | -2, /* (210) expr ::= BITNOT expr */ |
| 163575 | -2, /* (211) expr ::= PLUS|MINUS expr */ |
| 163576 | -1, /* (212) between_op ::= BETWEEN */ |
| 163577 | -2, /* (213) between_op ::= NOT BETWEEN */ |
| 163578 | -5, /* (214) expr ::= expr between_op expr AND expr */ |
| 163579 | -1, /* (215) in_op ::= IN */ |
| 163580 | -2, /* (216) in_op ::= NOT IN */ |
| 163581 | -5, /* (217) expr ::= expr in_op LP exprlist RP */ |
| 163582 | -3, /* (218) expr ::= LP select RP */ |
| 163583 | -5, /* (219) expr ::= expr in_op LP select RP */ |
| 163584 | -5, /* (220) expr ::= expr in_op nm dbnm paren_exprlist */ |
| 163585 | -4, /* (221) expr ::= EXISTS LP select RP */ |
| 163586 | -5, /* (222) expr ::= CASE case_operand case_exprlist case_else END */ |
| 163587 | -5, /* (223) case_exprlist ::= case_exprlist WHEN expr THEN expr */ |
| 163588 | -4, /* (224) case_exprlist ::= WHEN expr THEN expr */ |
| 163589 | -2, /* (225) case_else ::= ELSE expr */ |
| 163590 | 0, /* (226) case_else ::= */ |
| 163591 | -1, /* (227) case_operand ::= expr */ |
| 163592 | 0, /* (228) case_operand ::= */ |
| 163593 | 0, /* (229) exprlist ::= */ |
| 163594 | -3, /* (230) nexprlist ::= nexprlist COMMA expr */ |
| 163595 | -1, /* (231) nexprlist ::= expr */ |
| 163596 | 0, /* (232) paren_exprlist ::= */ |
| 163597 | -3, /* (233) paren_exprlist ::= LP exprlist RP */ |
| 163598 | -12, /* (234) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ |
| 163599 | -1, /* (235) uniqueflag ::= UNIQUE */ |
| 163600 | 0, /* (236) uniqueflag ::= */ |
| 163601 | 0, /* (237) eidlist_opt ::= */ |
| 163602 | -3, /* (238) eidlist_opt ::= LP eidlist RP */ |
| 163603 | -5, /* (239) eidlist ::= eidlist COMMA nm collate sortorder */ |
| 163604 | -3, /* (240) eidlist ::= nm collate sortorder */ |
| 163605 | 0, /* (241) collate ::= */ |
| 163606 | -2, /* (242) collate ::= COLLATE ID|STRING */ |
| 163607 | -4, /* (243) cmd ::= DROP INDEX ifexists fullname */ |
| 163608 | -2, /* (244) cmd ::= VACUUM vinto */ |
| 163609 | -3, /* (245) cmd ::= VACUUM nm vinto */ |
| 163610 | -2, /* (246) vinto ::= INTO expr */ |
| 163611 | 0, /* (247) vinto ::= */ |
| 163612 | -3, /* (248) cmd ::= PRAGMA nm dbnm */ |
| 163613 | -5, /* (249) cmd ::= PRAGMA nm dbnm EQ nmnum */ |
| 163614 | -6, /* (250) cmd ::= PRAGMA nm dbnm LP nmnum RP */ |
| 163615 | -5, /* (251) cmd ::= PRAGMA nm dbnm EQ minus_num */ |
| 163616 | -6, /* (252) cmd ::= PRAGMA nm dbnm LP minus_num RP */ |
| 163617 | -2, /* (253) plus_num ::= PLUS INTEGER|FLOAT */ |
| 163618 | -2, /* (254) minus_num ::= MINUS INTEGER|FLOAT */ |
| 163619 | -5, /* (255) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ |
| 163620 | -11, /* (256) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ |
| 163621 | -1, /* (257) trigger_time ::= BEFORE|AFTER */ |
| 163622 | -2, /* (258) trigger_time ::= INSTEAD OF */ |
| 163623 | 0, /* (259) trigger_time ::= */ |
| 163624 | -1, /* (260) trigger_event ::= DELETE|INSERT */ |
| 163625 | -1, /* (261) trigger_event ::= UPDATE */ |
| 163626 | -3, /* (262) trigger_event ::= UPDATE OF idlist */ |
| 163627 | 0, /* (263) when_clause ::= */ |
| 163628 | -2, /* (264) when_clause ::= WHEN expr */ |
| 163629 | -3, /* (265) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ |
| 163630 | -2, /* (266) trigger_cmd_list ::= trigger_cmd SEMI */ |
| 163631 | -3, /* (267) trnm ::= nm DOT nm */ |
| 163632 | -3, /* (268) tridxby ::= INDEXED BY nm */ |
| 163633 | -2, /* (269) tridxby ::= NOT INDEXED */ |
| 163634 | -9, /* (270) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ |
| 163635 | -8, /* (271) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ |
| 163636 | -6, /* (272) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ |
| 163637 | -3, /* (273) trigger_cmd ::= scanpt select scanpt */ |
| 163638 | -4, /* (274) expr ::= RAISE LP IGNORE RP */ |
| 163639 | -6, /* (275) expr ::= RAISE LP raisetype COMMA nm RP */ |
| 163640 | -1, /* (276) raisetype ::= ROLLBACK */ |
| 163641 | -1, /* (277) raisetype ::= ABORT */ |
| 163642 | -1, /* (278) raisetype ::= FAIL */ |
| 163643 | -4, /* (279) cmd ::= DROP TRIGGER ifexists fullname */ |
| 163644 | -6, /* (280) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ |
| 163645 | -3, /* (281) cmd ::= DETACH database_kw_opt expr */ |
| 163646 | 0, /* (282) key_opt ::= */ |
| 163647 | -2, /* (283) key_opt ::= KEY expr */ |
| 163648 | -1, /* (284) cmd ::= REINDEX */ |
| 163649 | -3, /* (285) cmd ::= REINDEX nm dbnm */ |
| 163650 | -1, /* (286) cmd ::= ANALYZE */ |
| 163651 | -3, /* (287) cmd ::= ANALYZE nm dbnm */ |
| 163652 | -6, /* (288) cmd ::= ALTER TABLE fullname RENAME TO nm */ |
| 163653 | -7, /* (289) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ |
| 163654 | -6, /* (290) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ |
| 163655 | -1, /* (291) add_column_fullname ::= fullname */ |
| 163656 | -8, /* (292) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ |
| 163657 | -1, /* (293) cmd ::= create_vtab */ |
| 163658 | -4, /* (294) cmd ::= create_vtab LP vtabarglist RP */ |
| 163659 | -8, /* (295) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ |
| 163660 | 0, /* (296) vtabarg ::= */ |
| 163661 | -1, /* (297) vtabargtoken ::= ANY */ |
| 163662 | -3, /* (298) vtabargtoken ::= lp anylist RP */ |
| 163663 | -1, /* (299) lp ::= LP */ |
| 163664 | -2, /* (300) with ::= WITH wqlist */ |
| 163665 | -3, /* (301) with ::= WITH RECURSIVE wqlist */ |
| 163666 | -1, /* (302) wqas ::= AS */ |
| 163667 | -2, /* (303) wqas ::= AS MATERIALIZED */ |
| 163668 | -3, /* (304) wqas ::= AS NOT MATERIALIZED */ |
| 163669 | -6, /* (305) wqitem ::= nm eidlist_opt wqas LP select RP */ |
| 163670 | -1, /* (306) wqlist ::= wqitem */ |
| 163671 | -3, /* (307) wqlist ::= wqlist COMMA wqitem */ |
| 163672 | -1, /* (308) windowdefn_list ::= windowdefn */ |
| 163673 | -3, /* (309) windowdefn_list ::= windowdefn_list COMMA windowdefn */ |
| 163674 | -5, /* (310) windowdefn ::= nm AS LP window RP */ |
| 163675 | -5, /* (311) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ |
| 163676 | -6, /* (312) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ |
| 163677 | -4, /* (313) window ::= ORDER BY sortlist frame_opt */ |
| 163678 | -5, /* (314) window ::= nm ORDER BY sortlist frame_opt */ |
| 163679 | -1, /* (315) window ::= frame_opt */ |
| 163680 | -2, /* (316) window ::= nm frame_opt */ |
| 163681 | 0, /* (317) frame_opt ::= */ |
| 163682 | -3, /* (318) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ |
| 163683 | -6, /* (319) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ |
| 163684 | -1, /* (320) range_or_rows ::= RANGE|ROWS|GROUPS */ |
| 163685 | -1, /* (321) frame_bound_s ::= frame_bound */ |
| 163686 | -2, /* (322) frame_bound_s ::= UNBOUNDED PRECEDING */ |
| 163687 | -1, /* (323) frame_bound_e ::= frame_bound */ |
| 163688 | -2, /* (324) frame_bound_e ::= UNBOUNDED FOLLOWING */ |
| 163689 | -2, /* (325) frame_bound ::= expr PRECEDING|FOLLOWING */ |
| 163690 | -2, /* (326) frame_bound ::= CURRENT ROW */ |
| 163691 | 0, /* (327) frame_exclude_opt ::= */ |
| 163692 | -2, /* (328) frame_exclude_opt ::= EXCLUDE frame_exclude */ |
| 163693 | -2, /* (329) frame_exclude ::= NO OTHERS */ |
| 163694 | -2, /* (330) frame_exclude ::= CURRENT ROW */ |
| 163695 | -1, /* (331) frame_exclude ::= GROUP|TIES */ |
| 163696 | -2, /* (332) window_clause ::= WINDOW windowdefn_list */ |
| 163697 | -2, /* (333) filter_over ::= filter_clause over_clause */ |
| 163698 | -1, /* (334) filter_over ::= over_clause */ |
| 163699 | -1, /* (335) filter_over ::= filter_clause */ |
| 163700 | -4, /* (336) over_clause ::= OVER LP window RP */ |
| 163701 | -2, /* (337) over_clause ::= OVER nm */ |
| 163702 | -5, /* (338) filter_clause ::= FILTER LP WHERE expr RP */ |
| 163703 | -1, /* (339) input ::= cmdlist */ |
| 163704 | -2, /* (340) cmdlist ::= cmdlist ecmd */ |
| 163705 | -1, /* (341) cmdlist ::= ecmd */ |
| 163706 | -1, /* (342) ecmd ::= SEMI */ |
| 163707 | -2, /* (343) ecmd ::= cmdx SEMI */ |
| 163708 | -3, /* (344) ecmd ::= explain cmdx SEMI */ |
| 163709 | 0, /* (345) trans_opt ::= */ |
| 163710 | -1, /* (346) trans_opt ::= TRANSACTION */ |
| 163711 | -2, /* (347) trans_opt ::= TRANSACTION nm */ |
| 163712 | -1, /* (348) savepoint_opt ::= SAVEPOINT */ |
| 163713 | 0, /* (349) savepoint_opt ::= */ |
| 163714 | -2, /* (350) cmd ::= create_table create_table_args */ |
| 163715 | -1, /* (351) table_option_set ::= table_option */ |
| 163716 | -4, /* (352) columnlist ::= columnlist COMMA columnname carglist */ |
| 163717 | -2, /* (353) columnlist ::= columnname carglist */ |
| 163718 | -1, /* (354) nm ::= ID|INDEXED */ |
| 163719 | -1, /* (355) nm ::= STRING */ |
| 163720 | -1, /* (356) nm ::= JOIN_KW */ |
| 163721 | -1, /* (357) typetoken ::= typename */ |
| 163722 | -1, /* (358) typename ::= ID|STRING */ |
| 163723 | -1, /* (359) signed ::= plus_num */ |
| 163724 | -1, /* (360) signed ::= minus_num */ |
| 163725 | -2, /* (361) carglist ::= carglist ccons */ |
| 163726 | 0, /* (362) carglist ::= */ |
| 163727 | -2, /* (363) ccons ::= NULL onconf */ |
| 163728 | -4, /* (364) ccons ::= GENERATED ALWAYS AS generated */ |
| 163729 | -2, /* (365) ccons ::= AS generated */ |
| 163730 | -2, /* (366) conslist_opt ::= COMMA conslist */ |
| 163731 | -3, /* (367) conslist ::= conslist tconscomma tcons */ |
| 163732 | -1, /* (368) conslist ::= tcons */ |
| 163733 | 0, /* (369) tconscomma ::= */ |
| 163734 | -1, /* (370) defer_subclause_opt ::= defer_subclause */ |
| 163735 | -1, /* (371) resolvetype ::= raisetype */ |
| 163736 | -1, /* (372) selectnowith ::= oneselect */ |
| 163737 | -1, /* (373) oneselect ::= values */ |
| 163738 | -2, /* (374) sclp ::= selcollist COMMA */ |
| 163739 | -1, /* (375) as ::= ID|STRING */ |
| 163740 | 0, /* (376) returning ::= */ |
| 163741 | -1, /* (377) expr ::= term */ |
| 163742 | -1, /* (378) likeop ::= LIKE_KW|MATCH */ |
| 163743 | -1, /* (379) exprlist ::= nexprlist */ |
| 163744 | -1, /* (380) nmnum ::= plus_num */ |
| 163745 | -1, /* (381) nmnum ::= nm */ |
| 163746 | -1, /* (382) nmnum ::= ON */ |
| 163747 | -1, /* (383) nmnum ::= DELETE */ |
| 163748 | -1, /* (384) nmnum ::= DEFAULT */ |
| 163749 | -1, /* (385) plus_num ::= INTEGER|FLOAT */ |
| 163750 | 0, /* (386) foreach_clause ::= */ |
| 163751 | -3, /* (387) foreach_clause ::= FOR EACH ROW */ |
| 163752 | -1, /* (388) trnm ::= nm */ |
| 163753 | 0, /* (389) tridxby ::= */ |
| 163754 | -1, /* (390) database_kw_opt ::= DATABASE */ |
| 163755 | 0, /* (391) database_kw_opt ::= */ |
| 163756 | 0, /* (392) kwcolumn_opt ::= */ |
| 163757 | -1, /* (393) kwcolumn_opt ::= COLUMNKW */ |
| 163758 | -1, /* (394) vtabarglist ::= vtabarg */ |
| 163759 | -3, /* (395) vtabarglist ::= vtabarglist COMMA vtabarg */ |
| 163760 | -2, /* (396) vtabarg ::= vtabarg vtabargtoken */ |
| 163761 | 0, /* (397) anylist ::= */ |
| 163762 | -4, /* (398) anylist ::= anylist LP anylist RP */ |
| 163763 | -2, /* (399) anylist ::= anylist ANY */ |
| 163764 | 0, /* (400) with ::= */ |
| 163765 | }; |
| 163766 | |
| 163767 | static void yy_accept(yyParser*); /* Forward Declaration */ |
| 163768 | |
| 163769 | /* |
| @@ -163811,20 +163849,20 @@ | |
| 163811 | break; |
| 163812 | case 2: /* cmdx ::= cmd */ |
| 163813 | { sqlite3FinishCoding(pParse); } |
| 163814 | break; |
| 163815 | case 3: /* cmd ::= BEGIN transtype trans_opt */ |
| 163816 | {sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy64);} |
| 163817 | break; |
| 163818 | case 4: /* transtype ::= */ |
| 163819 | {yymsp[1].minor.yy64 = TK_DEFERRED;} |
| 163820 | break; |
| 163821 | case 5: /* transtype ::= DEFERRED */ |
| 163822 | case 6: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==6); |
| 163823 | case 7: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==7); |
| 163824 | case 320: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==320); |
| 163825 | {yymsp[0].minor.yy64 = yymsp[0].major; /*A-overwrites-X*/} |
| 163826 | break; |
| 163827 | case 8: /* cmd ::= COMMIT|END trans_opt */ |
| 163828 | case 9: /* cmd ::= ROLLBACK trans_opt */ yytestcase(yyruleno==9); |
| 163829 | {sqlite3EndTransaction(pParse,yymsp[-1].major);} |
| 163830 | break; |
| @@ -163843,11 +163881,11 @@ | |
| 163843 | sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0); |
| 163844 | } |
| 163845 | break; |
| 163846 | case 13: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ |
| 163847 | { |
| 163848 | sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy64,0,0,yymsp[-2].minor.yy64); |
| 163849 | } |
| 163850 | break; |
| 163851 | case 14: /* createkw ::= CREATE */ |
| 163852 | {disableLookaside(pParse);} |
| 163853 | break; |
| @@ -163856,57 +163894,57 @@ | |
| 163856 | case 47: /* autoinc ::= */ yytestcase(yyruleno==47); |
| 163857 | case 62: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==62); |
| 163858 | case 72: /* defer_subclause_opt ::= */ yytestcase(yyruleno==72); |
| 163859 | case 81: /* ifexists ::= */ yytestcase(yyruleno==81); |
| 163860 | case 98: /* distinct ::= */ yytestcase(yyruleno==98); |
| 163861 | case 241: /* collate ::= */ yytestcase(yyruleno==241); |
| 163862 | {yymsp[1].minor.yy64 = 0;} |
| 163863 | break; |
| 163864 | case 16: /* ifnotexists ::= IF NOT EXISTS */ |
| 163865 | {yymsp[-2].minor.yy64 = 1;} |
| 163866 | break; |
| 163867 | case 17: /* temp ::= TEMP */ |
| 163868 | {yymsp[0].minor.yy64 = pParse->db->init.busy==0;} |
| 163869 | break; |
| 163870 | case 19: /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */ |
| 163871 | { |
| 163872 | sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy51,0); |
| 163873 | } |
| 163874 | break; |
| 163875 | case 20: /* create_table_args ::= AS select */ |
| 163876 | { |
| 163877 | sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy303); |
| 163878 | sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy303); |
| 163879 | } |
| 163880 | break; |
| 163881 | case 21: /* table_option_set ::= */ |
| 163882 | {yymsp[1].minor.yy51 = 0;} |
| 163883 | break; |
| 163884 | case 22: /* table_option_set ::= table_option_set COMMA table_option */ |
| 163885 | {yylhsminor.yy51 = yymsp[-2].minor.yy51|yymsp[0].minor.yy51;} |
| 163886 | yymsp[-2].minor.yy51 = yylhsminor.yy51; |
| 163887 | break; |
| 163888 | case 23: /* table_option ::= WITHOUT nm */ |
| 163889 | { |
| 163890 | if( yymsp[0].minor.yy0.n==5 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"rowid",5)==0 ){ |
| 163891 | yymsp[-1].minor.yy51 = TF_WithoutRowid | TF_NoVisibleRowid; |
| 163892 | }else{ |
| 163893 | yymsp[-1].minor.yy51 = 0; |
| 163894 | sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z); |
| 163895 | } |
| 163896 | } |
| 163897 | break; |
| 163898 | case 24: /* table_option ::= nm */ |
| 163899 | { |
| 163900 | if( yymsp[0].minor.yy0.n==6 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"strict",6)==0 ){ |
| 163901 | yylhsminor.yy51 = TF_Strict; |
| 163902 | }else{ |
| 163903 | yylhsminor.yy51 = 0; |
| 163904 | sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z); |
| 163905 | } |
| 163906 | } |
| 163907 | yymsp[0].minor.yy51 = yylhsminor.yy51; |
| 163908 | break; |
| 163909 | case 25: /* columnname ::= nm typetoken */ |
| 163910 | {sqlite3AddColumn(pParse,yymsp[-1].minor.yy0,yymsp[0].minor.yy0);} |
| 163911 | break; |
| 163912 | case 26: /* typetoken ::= */ |
| @@ -163928,11 +163966,11 @@ | |
| 163928 | {yymsp[-1].minor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);} |
| 163929 | break; |
| 163930 | case 30: /* scanpt ::= */ |
| 163931 | { |
| 163932 | assert( yyLookahead!=YYNOCODE ); |
| 163933 | yymsp[1].minor.yy600 = yyLookaheadToken.z; |
| 163934 | } |
| 163935 | break; |
| 163936 | case 31: /* scantok ::= */ |
| 163937 | { |
| 163938 | assert( yyLookahead!=YYNOCODE ); |
| @@ -163942,21 +163980,21 @@ | |
| 163942 | case 32: /* ccons ::= CONSTRAINT nm */ |
| 163943 | case 67: /* tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==67); |
| 163944 | {pParse->constraintName = yymsp[0].minor.yy0;} |
| 163945 | break; |
| 163946 | case 33: /* ccons ::= DEFAULT scantok term */ |
| 163947 | {sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy626,yymsp[-1].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} |
| 163948 | break; |
| 163949 | case 34: /* ccons ::= DEFAULT LP expr RP */ |
| 163950 | {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy626,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);} |
| 163951 | break; |
| 163952 | case 35: /* ccons ::= DEFAULT PLUS scantok term */ |
| 163953 | {sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy626,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} |
| 163954 | break; |
| 163955 | case 36: /* ccons ::= DEFAULT MINUS scantok term */ |
| 163956 | { |
| 163957 | Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy626, 0); |
| 163958 | sqlite3AddDefaultValue(pParse,p,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]); |
| 163959 | } |
| 163960 | break; |
| 163961 | case 37: /* ccons ::= DEFAULT scantok ID|INDEXED */ |
| 163962 | { |
| @@ -163967,308 +164005,308 @@ | |
| 163967 | } |
| 163968 | sqlite3AddDefaultValue(pParse,p,yymsp[0].minor.yy0.z,yymsp[0].minor.yy0.z+yymsp[0].minor.yy0.n); |
| 163969 | } |
| 163970 | break; |
| 163971 | case 38: /* ccons ::= NOT NULL onconf */ |
| 163972 | {sqlite3AddNotNull(pParse, yymsp[0].minor.yy64);} |
| 163973 | break; |
| 163974 | case 39: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ |
| 163975 | {sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy64,yymsp[0].minor.yy64,yymsp[-2].minor.yy64);} |
| 163976 | break; |
| 163977 | case 40: /* ccons ::= UNIQUE onconf */ |
| 163978 | {sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy64,0,0,0,0, |
| 163979 | SQLITE_IDXTYPE_UNIQUE);} |
| 163980 | break; |
| 163981 | case 41: /* ccons ::= CHECK LP expr RP */ |
| 163982 | {sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy626,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy0.z);} |
| 163983 | break; |
| 163984 | case 42: /* ccons ::= REFERENCES nm eidlist_opt refargs */ |
| 163985 | {sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy562,yymsp[0].minor.yy64);} |
| 163986 | break; |
| 163987 | case 43: /* ccons ::= defer_subclause */ |
| 163988 | {sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy64);} |
| 163989 | break; |
| 163990 | case 44: /* ccons ::= COLLATE ID|STRING */ |
| 163991 | {sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);} |
| 163992 | break; |
| 163993 | case 45: /* generated ::= LP expr RP */ |
| 163994 | {sqlite3AddGenerated(pParse,yymsp[-1].minor.yy626,0);} |
| 163995 | break; |
| 163996 | case 46: /* generated ::= LP expr RP ID */ |
| 163997 | {sqlite3AddGenerated(pParse,yymsp[-2].minor.yy626,&yymsp[0].minor.yy0);} |
| 163998 | break; |
| 163999 | case 48: /* autoinc ::= AUTOINCR */ |
| 164000 | {yymsp[0].minor.yy64 = 1;} |
| 164001 | break; |
| 164002 | case 49: /* refargs ::= */ |
| 164003 | { yymsp[1].minor.yy64 = OE_None*0x0101; /* EV: R-19803-45884 */} |
| 164004 | break; |
| 164005 | case 50: /* refargs ::= refargs refarg */ |
| 164006 | { yymsp[-1].minor.yy64 = (yymsp[-1].minor.yy64 & ~yymsp[0].minor.yy83.mask) | yymsp[0].minor.yy83.value; } |
| 164007 | break; |
| 164008 | case 51: /* refarg ::= MATCH nm */ |
| 164009 | { yymsp[-1].minor.yy83.value = 0; yymsp[-1].minor.yy83.mask = 0x000000; } |
| 164010 | break; |
| 164011 | case 52: /* refarg ::= ON INSERT refact */ |
| 164012 | { yymsp[-2].minor.yy83.value = 0; yymsp[-2].minor.yy83.mask = 0x000000; } |
| 164013 | break; |
| 164014 | case 53: /* refarg ::= ON DELETE refact */ |
| 164015 | { yymsp[-2].minor.yy83.value = yymsp[0].minor.yy64; yymsp[-2].minor.yy83.mask = 0x0000ff; } |
| 164016 | break; |
| 164017 | case 54: /* refarg ::= ON UPDATE refact */ |
| 164018 | { yymsp[-2].minor.yy83.value = yymsp[0].minor.yy64<<8; yymsp[-2].minor.yy83.mask = 0x00ff00; } |
| 164019 | break; |
| 164020 | case 55: /* refact ::= SET NULL */ |
| 164021 | { yymsp[-1].minor.yy64 = OE_SetNull; /* EV: R-33326-45252 */} |
| 164022 | break; |
| 164023 | case 56: /* refact ::= SET DEFAULT */ |
| 164024 | { yymsp[-1].minor.yy64 = OE_SetDflt; /* EV: R-33326-45252 */} |
| 164025 | break; |
| 164026 | case 57: /* refact ::= CASCADE */ |
| 164027 | { yymsp[0].minor.yy64 = OE_Cascade; /* EV: R-33326-45252 */} |
| 164028 | break; |
| 164029 | case 58: /* refact ::= RESTRICT */ |
| 164030 | { yymsp[0].minor.yy64 = OE_Restrict; /* EV: R-33326-45252 */} |
| 164031 | break; |
| 164032 | case 59: /* refact ::= NO ACTION */ |
| 164033 | { yymsp[-1].minor.yy64 = OE_None; /* EV: R-33326-45252 */} |
| 164034 | break; |
| 164035 | case 60: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ |
| 164036 | {yymsp[-2].minor.yy64 = 0;} |
| 164037 | break; |
| 164038 | case 61: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ |
| 164039 | case 76: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==76); |
| 164040 | case 171: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==171); |
| 164041 | {yymsp[-1].minor.yy64 = yymsp[0].minor.yy64;} |
| 164042 | break; |
| 164043 | case 63: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ |
| 164044 | case 80: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==80); |
| 164045 | case 213: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==213); |
| 164046 | case 216: /* in_op ::= NOT IN */ yytestcase(yyruleno==216); |
| 164047 | case 242: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==242); |
| 164048 | {yymsp[-1].minor.yy64 = 1;} |
| 164049 | break; |
| 164050 | case 64: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ |
| 164051 | {yymsp[-1].minor.yy64 = 0;} |
| 164052 | break; |
| 164053 | case 66: /* tconscomma ::= COMMA */ |
| 164054 | {pParse->constraintName.n = 0;} |
| 164055 | break; |
| 164056 | case 68: /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ |
| 164057 | {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy562,yymsp[0].minor.yy64,yymsp[-2].minor.yy64,0);} |
| 164058 | break; |
| 164059 | case 69: /* tcons ::= UNIQUE LP sortlist RP onconf */ |
| 164060 | {sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy562,yymsp[0].minor.yy64,0,0,0,0, |
| 164061 | SQLITE_IDXTYPE_UNIQUE);} |
| 164062 | break; |
| 164063 | case 70: /* tcons ::= CHECK LP expr RP onconf */ |
| 164064 | {sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy626,yymsp[-3].minor.yy0.z,yymsp[-1].minor.yy0.z);} |
| 164065 | break; |
| 164066 | case 71: /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ |
| 164067 | { |
| 164068 | sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy562, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy562, yymsp[-1].minor.yy64); |
| 164069 | sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy64); |
| 164070 | } |
| 164071 | break; |
| 164072 | case 73: /* onconf ::= */ |
| 164073 | case 75: /* orconf ::= */ yytestcase(yyruleno==75); |
| 164074 | {yymsp[1].minor.yy64 = OE_Default;} |
| 164075 | break; |
| 164076 | case 74: /* onconf ::= ON CONFLICT resolvetype */ |
| 164077 | {yymsp[-2].minor.yy64 = yymsp[0].minor.yy64;} |
| 164078 | break; |
| 164079 | case 77: /* resolvetype ::= IGNORE */ |
| 164080 | {yymsp[0].minor.yy64 = OE_Ignore;} |
| 164081 | break; |
| 164082 | case 78: /* resolvetype ::= REPLACE */ |
| 164083 | case 172: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==172); |
| 164084 | {yymsp[0].minor.yy64 = OE_Replace;} |
| 164085 | break; |
| 164086 | case 79: /* cmd ::= DROP TABLE ifexists fullname */ |
| 164087 | { |
| 164088 | sqlite3DropTable(pParse, yymsp[0].minor.yy607, 0, yymsp[-1].minor.yy64); |
| 164089 | } |
| 164090 | break; |
| 164091 | case 82: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ |
| 164092 | { |
| 164093 | sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy562, yymsp[0].minor.yy303, yymsp[-7].minor.yy64, yymsp[-5].minor.yy64); |
| 164094 | } |
| 164095 | break; |
| 164096 | case 83: /* cmd ::= DROP VIEW ifexists fullname */ |
| 164097 | { |
| 164098 | sqlite3DropTable(pParse, yymsp[0].minor.yy607, 1, yymsp[-1].minor.yy64); |
| 164099 | } |
| 164100 | break; |
| 164101 | case 84: /* cmd ::= select */ |
| 164102 | { |
| 164103 | SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0, 0}; |
| 164104 | sqlite3Select(pParse, yymsp[0].minor.yy303, &dest); |
| 164105 | sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy303); |
| 164106 | } |
| 164107 | break; |
| 164108 | case 85: /* select ::= WITH wqlist selectnowith */ |
| 164109 | {yymsp[-2].minor.yy303 = attachWithToSelect(pParse,yymsp[0].minor.yy303,yymsp[-1].minor.yy43);} |
| 164110 | break; |
| 164111 | case 86: /* select ::= WITH RECURSIVE wqlist selectnowith */ |
| 164112 | {yymsp[-3].minor.yy303 = attachWithToSelect(pParse,yymsp[0].minor.yy303,yymsp[-1].minor.yy43);} |
| 164113 | break; |
| 164114 | case 87: /* select ::= selectnowith */ |
| 164115 | { |
| 164116 | Select *p = yymsp[0].minor.yy303; |
| 164117 | if( p ){ |
| 164118 | parserDoubleLinkSelect(pParse, p); |
| 164119 | } |
| 164120 | yymsp[0].minor.yy303 = p; /*A-overwrites-X*/ |
| 164121 | } |
| 164122 | break; |
| 164123 | case 88: /* selectnowith ::= selectnowith multiselect_op oneselect */ |
| 164124 | { |
| 164125 | Select *pRhs = yymsp[0].minor.yy303; |
| 164126 | Select *pLhs = yymsp[-2].minor.yy303; |
| 164127 | if( pRhs && pRhs->pPrior ){ |
| 164128 | SrcList *pFrom; |
| 164129 | Token x; |
| 164130 | x.n = 0; |
| 164131 | parserDoubleLinkSelect(pParse, pRhs); |
| 164132 | pFrom = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&x,pRhs,0,0); |
| 164133 | pRhs = sqlite3SelectNew(pParse,0,pFrom,0,0,0,0,0,0); |
| 164134 | } |
| 164135 | if( pRhs ){ |
| 164136 | pRhs->op = (u8)yymsp[-1].minor.yy64; |
| 164137 | pRhs->pPrior = pLhs; |
| 164138 | if( ALWAYS(pLhs) ) pLhs->selFlags &= ~SF_MultiValue; |
| 164139 | pRhs->selFlags &= ~SF_MultiValue; |
| 164140 | if( yymsp[-1].minor.yy64!=TK_ALL ) pParse->hasCompound = 1; |
| 164141 | }else{ |
| 164142 | sqlite3SelectDelete(pParse->db, pLhs); |
| 164143 | } |
| 164144 | yymsp[-2].minor.yy303 = pRhs; |
| 164145 | } |
| 164146 | break; |
| 164147 | case 89: /* multiselect_op ::= UNION */ |
| 164148 | case 91: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==91); |
| 164149 | {yymsp[0].minor.yy64 = yymsp[0].major; /*A-overwrites-OP*/} |
| 164150 | break; |
| 164151 | case 90: /* multiselect_op ::= UNION ALL */ |
| 164152 | {yymsp[-1].minor.yy64 = TK_ALL;} |
| 164153 | break; |
| 164154 | case 92: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ |
| 164155 | { |
| 164156 | yymsp[-8].minor.yy303 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy562,yymsp[-5].minor.yy607,yymsp[-4].minor.yy626,yymsp[-3].minor.yy562,yymsp[-2].minor.yy626,yymsp[-1].minor.yy562,yymsp[-7].minor.yy64,yymsp[0].minor.yy626); |
| 164157 | } |
| 164158 | break; |
| 164159 | case 93: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ |
| 164160 | { |
| 164161 | yymsp[-9].minor.yy303 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy562,yymsp[-6].minor.yy607,yymsp[-5].minor.yy626,yymsp[-4].minor.yy562,yymsp[-3].minor.yy626,yymsp[-1].minor.yy562,yymsp[-8].minor.yy64,yymsp[0].minor.yy626); |
| 164162 | if( yymsp[-9].minor.yy303 ){ |
| 164163 | yymsp[-9].minor.yy303->pWinDefn = yymsp[-2].minor.yy375; |
| 164164 | }else{ |
| 164165 | sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy375); |
| 164166 | } |
| 164167 | } |
| 164168 | break; |
| 164169 | case 94: /* values ::= VALUES LP nexprlist RP */ |
| 164170 | { |
| 164171 | yymsp[-3].minor.yy303 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy562,0,0,0,0,0,SF_Values,0); |
| 164172 | } |
| 164173 | break; |
| 164174 | case 95: /* values ::= values COMMA LP nexprlist RP */ |
| 164175 | { |
| 164176 | Select *pRight, *pLeft = yymsp[-4].minor.yy303; |
| 164177 | pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy562,0,0,0,0,0,SF_Values|SF_MultiValue,0); |
| 164178 | if( ALWAYS(pLeft) ) pLeft->selFlags &= ~SF_MultiValue; |
| 164179 | if( pRight ){ |
| 164180 | pRight->op = TK_ALL; |
| 164181 | pRight->pPrior = pLeft; |
| 164182 | yymsp[-4].minor.yy303 = pRight; |
| 164183 | }else{ |
| 164184 | yymsp[-4].minor.yy303 = pLeft; |
| 164185 | } |
| 164186 | } |
| 164187 | break; |
| 164188 | case 96: /* distinct ::= DISTINCT */ |
| 164189 | {yymsp[0].minor.yy64 = SF_Distinct;} |
| 164190 | break; |
| 164191 | case 97: /* distinct ::= ALL */ |
| 164192 | {yymsp[0].minor.yy64 = SF_All;} |
| 164193 | break; |
| 164194 | case 99: /* sclp ::= */ |
| 164195 | case 132: /* orderby_opt ::= */ yytestcase(yyruleno==132); |
| 164196 | case 142: /* groupby_opt ::= */ yytestcase(yyruleno==142); |
| 164197 | case 229: /* exprlist ::= */ yytestcase(yyruleno==229); |
| 164198 | case 232: /* paren_exprlist ::= */ yytestcase(yyruleno==232); |
| 164199 | case 237: /* eidlist_opt ::= */ yytestcase(yyruleno==237); |
| 164200 | {yymsp[1].minor.yy562 = 0;} |
| 164201 | break; |
| 164202 | case 100: /* selcollist ::= sclp scanpt expr scanpt as */ |
| 164203 | { |
| 164204 | yymsp[-4].minor.yy562 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy562, yymsp[-2].minor.yy626); |
| 164205 | if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy562, &yymsp[0].minor.yy0, 1); |
| 164206 | sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy562,yymsp[-3].minor.yy600,yymsp[-1].minor.yy600); |
| 164207 | } |
| 164208 | break; |
| 164209 | case 101: /* selcollist ::= sclp scanpt STAR */ |
| 164210 | { |
| 164211 | Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0); |
| 164212 | yymsp[-2].minor.yy562 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy562, p); |
| 164213 | } |
| 164214 | break; |
| 164215 | case 102: /* selcollist ::= sclp scanpt nm DOT STAR */ |
| 164216 | { |
| 164217 | Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0); |
| 164218 | Expr *pLeft = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1); |
| 164219 | Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight); |
| 164220 | yymsp[-4].minor.yy562 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy562, pDot); |
| 164221 | } |
| 164222 | break; |
| 164223 | case 103: /* as ::= AS nm */ |
| 164224 | case 114: /* dbnm ::= DOT nm */ yytestcase(yyruleno==114); |
| 164225 | case 253: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==253); |
| 164226 | case 254: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==254); |
| 164227 | {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;} |
| 164228 | break; |
| 164229 | case 105: /* from ::= */ |
| 164230 | case 108: /* stl_prefix ::= */ yytestcase(yyruleno==108); |
| 164231 | {yymsp[1].minor.yy607 = 0;} |
| 164232 | break; |
| 164233 | case 106: /* from ::= FROM seltablist */ |
| 164234 | { |
| 164235 | yymsp[-1].minor.yy607 = yymsp[0].minor.yy607; |
| 164236 | sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy607); |
| 164237 | } |
| 164238 | break; |
| 164239 | case 107: /* stl_prefix ::= seltablist joinop */ |
| 164240 | { |
| 164241 | if( ALWAYS(yymsp[-1].minor.yy607 && yymsp[-1].minor.yy607->nSrc>0) ) yymsp[-1].minor.yy607->a[yymsp[-1].minor.yy607->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy64; |
| 164242 | } |
| 164243 | break; |
| 164244 | case 109: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ |
| 164245 | { |
| 164246 | yymsp[-6].minor.yy607 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy607,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy626,yymsp[0].minor.yy240); |
| 164247 | sqlite3SrcListIndexedBy(pParse, yymsp[-6].minor.yy607, &yymsp[-2].minor.yy0); |
| 164248 | } |
| 164249 | break; |
| 164250 | case 110: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */ |
| 164251 | { |
| 164252 | yymsp[-8].minor.yy607 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-8].minor.yy607,&yymsp[-7].minor.yy0,&yymsp[-6].minor.yy0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy626,yymsp[0].minor.yy240); |
| 164253 | sqlite3SrcListFuncArgs(pParse, yymsp[-8].minor.yy607, yymsp[-4].minor.yy562); |
| 164254 | } |
| 164255 | break; |
| 164256 | case 111: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */ |
| 164257 | { |
| 164258 | yymsp[-6].minor.yy607 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy607,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy303,yymsp[-1].minor.yy626,yymsp[0].minor.yy240); |
| 164259 | } |
| 164260 | break; |
| 164261 | case 112: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ |
| 164262 | { |
| 164263 | if( yymsp[-6].minor.yy607==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy626==0 && yymsp[0].minor.yy240==0 ){ |
| 164264 | yymsp[-6].minor.yy607 = yymsp[-4].minor.yy607; |
| 164265 | }else if( yymsp[-4].minor.yy607->nSrc==1 ){ |
| 164266 | yymsp[-6].minor.yy607 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy607,0,0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy626,yymsp[0].minor.yy240); |
| 164267 | if( yymsp[-6].minor.yy607 ){ |
| 164268 | SrcItem *pNew = &yymsp[-6].minor.yy607->a[yymsp[-6].minor.yy607->nSrc-1]; |
| 164269 | SrcItem *pOld = yymsp[-4].minor.yy607->a; |
| 164270 | pNew->zName = pOld->zName; |
| 164271 | pNew->zDatabase = pOld->zDatabase; |
| 164272 | pNew->pSelect = pOld->pSelect; |
| 164273 | if( pOld->fg.isTabFunc ){ |
| 164274 | pNew->u1.pFuncArg = pOld->u1.pFuncArg; |
| @@ -164277,240 +164315,240 @@ | |
| 164277 | pNew->fg.isTabFunc = 1; |
| 164278 | } |
| 164279 | pOld->zName = pOld->zDatabase = 0; |
| 164280 | pOld->pSelect = 0; |
| 164281 | } |
| 164282 | sqlite3SrcListDelete(pParse->db, yymsp[-4].minor.yy607); |
| 164283 | }else{ |
| 164284 | Select *pSubquery; |
| 164285 | sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy607); |
| 164286 | pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy607,0,0,0,0,SF_NestedFrom,0); |
| 164287 | yymsp[-6].minor.yy607 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy607,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy626,yymsp[0].minor.yy240); |
| 164288 | } |
| 164289 | } |
| 164290 | break; |
| 164291 | case 113: /* dbnm ::= */ |
| 164292 | case 127: /* indexed_opt ::= */ yytestcase(yyruleno==127); |
| 164293 | {yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;} |
| 164294 | break; |
| 164295 | case 115: /* fullname ::= nm */ |
| 164296 | { |
| 164297 | yylhsminor.yy607 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); |
| 164298 | if( IN_RENAME_OBJECT && yylhsminor.yy607 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy607->a[0].zName, &yymsp[0].minor.yy0); |
| 164299 | } |
| 164300 | yymsp[0].minor.yy607 = yylhsminor.yy607; |
| 164301 | break; |
| 164302 | case 116: /* fullname ::= nm DOT nm */ |
| 164303 | { |
| 164304 | yylhsminor.yy607 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); |
| 164305 | if( IN_RENAME_OBJECT && yylhsminor.yy607 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy607->a[0].zName, &yymsp[0].minor.yy0); |
| 164306 | } |
| 164307 | yymsp[-2].minor.yy607 = yylhsminor.yy607; |
| 164308 | break; |
| 164309 | case 117: /* xfullname ::= nm */ |
| 164310 | {yymsp[0].minor.yy607 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/} |
| 164311 | break; |
| 164312 | case 118: /* xfullname ::= nm DOT nm */ |
| 164313 | {yymsp[-2].minor.yy607 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/} |
| 164314 | break; |
| 164315 | case 119: /* xfullname ::= nm DOT nm AS nm */ |
| 164316 | { |
| 164317 | yymsp[-4].minor.yy607 = sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/ |
| 164318 | if( yymsp[-4].minor.yy607 ) yymsp[-4].minor.yy607->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); |
| 164319 | } |
| 164320 | break; |
| 164321 | case 120: /* xfullname ::= nm AS nm */ |
| 164322 | { |
| 164323 | yymsp[-2].minor.yy607 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/ |
| 164324 | if( yymsp[-2].minor.yy607 ) yymsp[-2].minor.yy607->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); |
| 164325 | } |
| 164326 | break; |
| 164327 | case 121: /* joinop ::= COMMA|JOIN */ |
| 164328 | { yymsp[0].minor.yy64 = JT_INNER; } |
| 164329 | break; |
| 164330 | case 122: /* joinop ::= JOIN_KW JOIN */ |
| 164331 | {yymsp[-1].minor.yy64 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/} |
| 164332 | break; |
| 164333 | case 123: /* joinop ::= JOIN_KW nm JOIN */ |
| 164334 | {yymsp[-2].minor.yy64 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/} |
| 164335 | break; |
| 164336 | case 124: /* joinop ::= JOIN_KW nm nm JOIN */ |
| 164337 | {yymsp[-3].minor.yy64 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/} |
| 164338 | break; |
| 164339 | case 125: /* on_opt ::= ON expr */ |
| 164340 | case 145: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==145); |
| 164341 | case 152: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==152); |
| 164342 | case 154: /* where_opt_ret ::= WHERE expr */ yytestcase(yyruleno==154); |
| 164343 | case 225: /* case_else ::= ELSE expr */ yytestcase(yyruleno==225); |
| 164344 | case 246: /* vinto ::= INTO expr */ yytestcase(yyruleno==246); |
| 164345 | {yymsp[-1].minor.yy626 = yymsp[0].minor.yy626;} |
| 164346 | break; |
| 164347 | case 126: /* on_opt ::= */ |
| 164348 | case 144: /* having_opt ::= */ yytestcase(yyruleno==144); |
| 164349 | case 146: /* limit_opt ::= */ yytestcase(yyruleno==146); |
| 164350 | case 151: /* where_opt ::= */ yytestcase(yyruleno==151); |
| 164351 | case 153: /* where_opt_ret ::= */ yytestcase(yyruleno==153); |
| 164352 | case 226: /* case_else ::= */ yytestcase(yyruleno==226); |
| 164353 | case 228: /* case_operand ::= */ yytestcase(yyruleno==228); |
| 164354 | case 247: /* vinto ::= */ yytestcase(yyruleno==247); |
| 164355 | {yymsp[1].minor.yy626 = 0;} |
| 164356 | break; |
| 164357 | case 128: /* indexed_opt ::= INDEXED BY nm */ |
| 164358 | {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;} |
| 164359 | break; |
| 164360 | case 129: /* indexed_opt ::= NOT INDEXED */ |
| 164361 | {yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;} |
| 164362 | break; |
| 164363 | case 130: /* using_opt ::= USING LP idlist RP */ |
| 164364 | {yymsp[-3].minor.yy240 = yymsp[-1].minor.yy240;} |
| 164365 | break; |
| 164366 | case 131: /* using_opt ::= */ |
| 164367 | case 173: /* idlist_opt ::= */ yytestcase(yyruleno==173); |
| 164368 | {yymsp[1].minor.yy240 = 0;} |
| 164369 | break; |
| 164370 | case 133: /* orderby_opt ::= ORDER BY sortlist */ |
| 164371 | case 143: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==143); |
| 164372 | {yymsp[-2].minor.yy562 = yymsp[0].minor.yy562;} |
| 164373 | break; |
| 164374 | case 134: /* sortlist ::= sortlist COMMA expr sortorder nulls */ |
| 164375 | { |
| 164376 | yymsp[-4].minor.yy562 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy562,yymsp[-2].minor.yy626); |
| 164377 | sqlite3ExprListSetSortOrder(yymsp[-4].minor.yy562,yymsp[-1].minor.yy64,yymsp[0].minor.yy64); |
| 164378 | } |
| 164379 | break; |
| 164380 | case 135: /* sortlist ::= expr sortorder nulls */ |
| 164381 | { |
| 164382 | yymsp[-2].minor.yy562 = sqlite3ExprListAppend(pParse,0,yymsp[-2].minor.yy626); /*A-overwrites-Y*/ |
| 164383 | sqlite3ExprListSetSortOrder(yymsp[-2].minor.yy562,yymsp[-1].minor.yy64,yymsp[0].minor.yy64); |
| 164384 | } |
| 164385 | break; |
| 164386 | case 136: /* sortorder ::= ASC */ |
| 164387 | {yymsp[0].minor.yy64 = SQLITE_SO_ASC;} |
| 164388 | break; |
| 164389 | case 137: /* sortorder ::= DESC */ |
| 164390 | {yymsp[0].minor.yy64 = SQLITE_SO_DESC;} |
| 164391 | break; |
| 164392 | case 138: /* sortorder ::= */ |
| 164393 | case 141: /* nulls ::= */ yytestcase(yyruleno==141); |
| 164394 | {yymsp[1].minor.yy64 = SQLITE_SO_UNDEFINED;} |
| 164395 | break; |
| 164396 | case 139: /* nulls ::= NULLS FIRST */ |
| 164397 | {yymsp[-1].minor.yy64 = SQLITE_SO_ASC;} |
| 164398 | break; |
| 164399 | case 140: /* nulls ::= NULLS LAST */ |
| 164400 | {yymsp[-1].minor.yy64 = SQLITE_SO_DESC;} |
| 164401 | break; |
| 164402 | case 147: /* limit_opt ::= LIMIT expr */ |
| 164403 | {yymsp[-1].minor.yy626 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy626,0);} |
| 164404 | break; |
| 164405 | case 148: /* limit_opt ::= LIMIT expr OFFSET expr */ |
| 164406 | {yymsp[-3].minor.yy626 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy626,yymsp[0].minor.yy626);} |
| 164407 | break; |
| 164408 | case 149: /* limit_opt ::= LIMIT expr COMMA expr */ |
| 164409 | {yymsp[-3].minor.yy626 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy626,yymsp[-2].minor.yy626);} |
| 164410 | break; |
| 164411 | case 150: /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ |
| 164412 | { |
| 164413 | sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy607, &yymsp[-1].minor.yy0); |
| 164414 | sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy607,yymsp[0].minor.yy626,0,0); |
| 164415 | } |
| 164416 | break; |
| 164417 | case 155: /* where_opt_ret ::= RETURNING selcollist */ |
| 164418 | {sqlite3AddReturning(pParse,yymsp[0].minor.yy562); yymsp[-1].minor.yy626 = 0;} |
| 164419 | break; |
| 164420 | case 156: /* where_opt_ret ::= WHERE expr RETURNING selcollist */ |
| 164421 | {sqlite3AddReturning(pParse,yymsp[0].minor.yy562); yymsp[-3].minor.yy626 = yymsp[-2].minor.yy626;} |
| 164422 | break; |
| 164423 | case 157: /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ |
| 164424 | { |
| 164425 | sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy607, &yymsp[-4].minor.yy0); |
| 164426 | sqlite3ExprListCheckLength(pParse,yymsp[-2].minor.yy562,"set list"); |
| 164427 | yymsp[-5].minor.yy607 = sqlite3SrcListAppendList(pParse, yymsp[-5].minor.yy607, yymsp[-1].minor.yy607); |
| 164428 | sqlite3Update(pParse,yymsp[-5].minor.yy607,yymsp[-2].minor.yy562,yymsp[0].minor.yy626,yymsp[-6].minor.yy64,0,0,0); |
| 164429 | } |
| 164430 | break; |
| 164431 | case 158: /* setlist ::= setlist COMMA nm EQ expr */ |
| 164432 | { |
| 164433 | yymsp[-4].minor.yy562 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy562, yymsp[0].minor.yy626); |
| 164434 | sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy562, &yymsp[-2].minor.yy0, 1); |
| 164435 | } |
| 164436 | break; |
| 164437 | case 159: /* setlist ::= setlist COMMA LP idlist RP EQ expr */ |
| 164438 | { |
| 164439 | yymsp[-6].minor.yy562 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy562, yymsp[-3].minor.yy240, yymsp[0].minor.yy626); |
| 164440 | } |
| 164441 | break; |
| 164442 | case 160: /* setlist ::= nm EQ expr */ |
| 164443 | { |
| 164444 | yylhsminor.yy562 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy626); |
| 164445 | sqlite3ExprListSetName(pParse, yylhsminor.yy562, &yymsp[-2].minor.yy0, 1); |
| 164446 | } |
| 164447 | yymsp[-2].minor.yy562 = yylhsminor.yy562; |
| 164448 | break; |
| 164449 | case 161: /* setlist ::= LP idlist RP EQ expr */ |
| 164450 | { |
| 164451 | yymsp[-4].minor.yy562 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy240, yymsp[0].minor.yy626); |
| 164452 | } |
| 164453 | break; |
| 164454 | case 162: /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ |
| 164455 | { |
| 164456 | sqlite3Insert(pParse, yymsp[-3].minor.yy607, yymsp[-1].minor.yy303, yymsp[-2].minor.yy240, yymsp[-5].minor.yy64, yymsp[0].minor.yy138); |
| 164457 | } |
| 164458 | break; |
| 164459 | case 163: /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ |
| 164460 | { |
| 164461 | sqlite3Insert(pParse, yymsp[-4].minor.yy607, 0, yymsp[-3].minor.yy240, yymsp[-6].minor.yy64, 0); |
| 164462 | } |
| 164463 | break; |
| 164464 | case 164: /* upsert ::= */ |
| 164465 | { yymsp[1].minor.yy138 = 0; } |
| 164466 | break; |
| 164467 | case 165: /* upsert ::= RETURNING selcollist */ |
| 164468 | { yymsp[-1].minor.yy138 = 0; sqlite3AddReturning(pParse,yymsp[0].minor.yy562); } |
| 164469 | break; |
| 164470 | case 166: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ |
| 164471 | { yymsp[-11].minor.yy138 = sqlite3UpsertNew(pParse->db,yymsp[-8].minor.yy562,yymsp[-6].minor.yy626,yymsp[-2].minor.yy562,yymsp[-1].minor.yy626,yymsp[0].minor.yy138);} |
| 164472 | break; |
| 164473 | case 167: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ |
| 164474 | { yymsp[-8].minor.yy138 = sqlite3UpsertNew(pParse->db,yymsp[-5].minor.yy562,yymsp[-3].minor.yy626,0,0,yymsp[0].minor.yy138); } |
| 164475 | break; |
| 164476 | case 168: /* upsert ::= ON CONFLICT DO NOTHING returning */ |
| 164477 | { yymsp[-4].minor.yy138 = sqlite3UpsertNew(pParse->db,0,0,0,0,0); } |
| 164478 | break; |
| 164479 | case 169: /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ |
| 164480 | { yymsp[-7].minor.yy138 = sqlite3UpsertNew(pParse->db,0,0,yymsp[-2].minor.yy562,yymsp[-1].minor.yy626,0);} |
| 164481 | break; |
| 164482 | case 170: /* returning ::= RETURNING selcollist */ |
| 164483 | {sqlite3AddReturning(pParse,yymsp[0].minor.yy562);} |
| 164484 | break; |
| 164485 | case 174: /* idlist_opt ::= LP idlist RP */ |
| 164486 | {yymsp[-2].minor.yy240 = yymsp[-1].minor.yy240;} |
| 164487 | break; |
| 164488 | case 175: /* idlist ::= idlist COMMA nm */ |
| 164489 | {yymsp[-2].minor.yy240 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy240,&yymsp[0].minor.yy0);} |
| 164490 | break; |
| 164491 | case 176: /* idlist ::= nm */ |
| 164492 | {yymsp[0].minor.yy240 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/} |
| 164493 | break; |
| 164494 | case 177: /* expr ::= LP expr RP */ |
| 164495 | {yymsp[-2].minor.yy626 = yymsp[-1].minor.yy626;} |
| 164496 | break; |
| 164497 | case 178: /* expr ::= ID|INDEXED */ |
| 164498 | case 179: /* expr ::= JOIN_KW */ yytestcase(yyruleno==179); |
| 164499 | {yymsp[0].minor.yy626=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/} |
| 164500 | break; |
| 164501 | case 180: /* expr ::= nm DOT nm */ |
| 164502 | { |
| 164503 | Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1); |
| 164504 | Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1); |
| 164505 | if( IN_RENAME_OBJECT ){ |
| 164506 | sqlite3RenameTokenMap(pParse, (void*)temp2, &yymsp[0].minor.yy0); |
| 164507 | sqlite3RenameTokenMap(pParse, (void*)temp1, &yymsp[-2].minor.yy0); |
| 164508 | } |
| 164509 | yylhsminor.yy626 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2); |
| 164510 | } |
| 164511 | yymsp[-2].minor.yy626 = yylhsminor.yy626; |
| 164512 | break; |
| 164513 | case 181: /* expr ::= nm DOT nm DOT nm */ |
| 164514 | { |
| 164515 | Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-4].minor.yy0, 1); |
| 164516 | Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1); |
| @@ -164518,768 +164556,776 @@ | |
| 164518 | Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3); |
| 164519 | if( IN_RENAME_OBJECT ){ |
| 164520 | sqlite3RenameTokenMap(pParse, (void*)temp3, &yymsp[0].minor.yy0); |
| 164521 | sqlite3RenameTokenMap(pParse, (void*)temp2, &yymsp[-2].minor.yy0); |
| 164522 | } |
| 164523 | yylhsminor.yy626 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4); |
| 164524 | } |
| 164525 | yymsp[-4].minor.yy626 = yylhsminor.yy626; |
| 164526 | break; |
| 164527 | case 182: /* term ::= NULL|FLOAT|BLOB */ |
| 164528 | case 183: /* term ::= STRING */ yytestcase(yyruleno==183); |
| 164529 | {yymsp[0].minor.yy626=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/} |
| 164530 | break; |
| 164531 | case 184: /* term ::= INTEGER */ |
| 164532 | { |
| 164533 | yylhsminor.yy626 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1); |
| 164534 | } |
| 164535 | yymsp[0].minor.yy626 = yylhsminor.yy626; |
| 164536 | break; |
| 164537 | case 185: /* expr ::= VARIABLE */ |
| 164538 | { |
| 164539 | if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){ |
| 164540 | u32 n = yymsp[0].minor.yy0.n; |
| 164541 | yymsp[0].minor.yy626 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0); |
| 164542 | sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy626, n); |
| 164543 | }else{ |
| 164544 | /* When doing a nested parse, one can include terms in an expression |
| 164545 | ** that look like this: #1 #2 ... These terms refer to registers |
| 164546 | ** in the virtual machine. #N is the N-th register. */ |
| 164547 | Token t = yymsp[0].minor.yy0; /*A-overwrites-X*/ |
| 164548 | assert( t.n>=2 ); |
| 164549 | if( pParse->nested==0 ){ |
| 164550 | sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &t); |
| 164551 | yymsp[0].minor.yy626 = 0; |
| 164552 | }else{ |
| 164553 | yymsp[0].minor.yy626 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0); |
| 164554 | if( yymsp[0].minor.yy626 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy626->iTable); |
| 164555 | } |
| 164556 | } |
| 164557 | } |
| 164558 | break; |
| 164559 | case 186: /* expr ::= expr COLLATE ID|STRING */ |
| 164560 | { |
| 164561 | yymsp[-2].minor.yy626 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy626, &yymsp[0].minor.yy0, 1); |
| 164562 | } |
| 164563 | break; |
| 164564 | case 187: /* expr ::= CAST LP expr AS typetoken RP */ |
| 164565 | { |
| 164566 | yymsp[-5].minor.yy626 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1); |
| 164567 | sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy626, yymsp[-3].minor.yy626, 0); |
| 164568 | } |
| 164569 | break; |
| 164570 | case 188: /* expr ::= ID|INDEXED LP distinct exprlist RP */ |
| 164571 | { |
| 164572 | yylhsminor.yy626 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy562, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy64); |
| 164573 | } |
| 164574 | yymsp[-4].minor.yy626 = yylhsminor.yy626; |
| 164575 | break; |
| 164576 | case 189: /* expr ::= ID|INDEXED LP STAR RP */ |
| 164577 | { |
| 164578 | yylhsminor.yy626 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0); |
| 164579 | } |
| 164580 | yymsp[-3].minor.yy626 = yylhsminor.yy626; |
| 164581 | break; |
| 164582 | case 190: /* expr ::= ID|INDEXED LP distinct exprlist RP filter_over */ |
| 164583 | { |
| 164584 | yylhsminor.yy626 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy562, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy64); |
| 164585 | sqlite3WindowAttach(pParse, yylhsminor.yy626, yymsp[0].minor.yy375); |
| 164586 | } |
| 164587 | yymsp[-5].minor.yy626 = yylhsminor.yy626; |
| 164588 | break; |
| 164589 | case 191: /* expr ::= ID|INDEXED LP STAR RP filter_over */ |
| 164590 | { |
| 164591 | yylhsminor.yy626 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0); |
| 164592 | sqlite3WindowAttach(pParse, yylhsminor.yy626, yymsp[0].minor.yy375); |
| 164593 | } |
| 164594 | yymsp[-4].minor.yy626 = yylhsminor.yy626; |
| 164595 | break; |
| 164596 | case 192: /* term ::= CTIME_KW */ |
| 164597 | { |
| 164598 | yylhsminor.yy626 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0); |
| 164599 | } |
| 164600 | yymsp[0].minor.yy626 = yylhsminor.yy626; |
| 164601 | break; |
| 164602 | case 193: /* expr ::= LP nexprlist COMMA expr RP */ |
| 164603 | { |
| 164604 | ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy562, yymsp[-1].minor.yy626); |
| 164605 | yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0); |
| 164606 | if( yymsp[-4].minor.yy626 ){ |
| 164607 | yymsp[-4].minor.yy626->x.pList = pList; |
| 164608 | if( ALWAYS(pList->nExpr) ){ |
| 164609 | yymsp[-4].minor.yy626->flags |= pList->a[0].pExpr->flags & EP_Propagate; |
| 164610 | } |
| 164611 | }else{ |
| 164612 | sqlite3ExprListDelete(pParse->db, pList); |
| 164613 | } |
| 164614 | } |
| 164615 | break; |
| 164616 | case 194: /* expr ::= expr AND expr */ |
| 164617 | {yymsp[-2].minor.yy626=sqlite3ExprAnd(pParse,yymsp[-2].minor.yy626,yymsp[0].minor.yy626);} |
| 164618 | break; |
| 164619 | case 195: /* expr ::= expr OR expr */ |
| 164620 | case 196: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==196); |
| 164621 | case 197: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==197); |
| 164622 | case 198: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==198); |
| 164623 | case 199: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==199); |
| 164624 | case 200: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==200); |
| 164625 | case 201: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==201); |
| 164626 | {yymsp[-2].minor.yy626=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy626,yymsp[0].minor.yy626);} |
| 164627 | break; |
| 164628 | case 202: /* likeop ::= NOT LIKE_KW|MATCH */ |
| 164629 | {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/} |
| 164630 | break; |
| 164631 | case 203: /* expr ::= expr likeop expr */ |
| 164632 | { |
| 164633 | ExprList *pList; |
| 164634 | int bNot = yymsp[-1].minor.yy0.n & 0x80000000; |
| 164635 | yymsp[-1].minor.yy0.n &= 0x7fffffff; |
| 164636 | pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy626); |
| 164637 | pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy626); |
| 164638 | yymsp[-2].minor.yy626 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0); |
| 164639 | if( bNot ) yymsp[-2].minor.yy626 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy626, 0); |
| 164640 | if( yymsp[-2].minor.yy626 ) yymsp[-2].minor.yy626->flags |= EP_InfixFunc; |
| 164641 | } |
| 164642 | break; |
| 164643 | case 204: /* expr ::= expr likeop expr ESCAPE expr */ |
| 164644 | { |
| 164645 | ExprList *pList; |
| 164646 | int bNot = yymsp[-3].minor.yy0.n & 0x80000000; |
| 164647 | yymsp[-3].minor.yy0.n &= 0x7fffffff; |
| 164648 | pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy626); |
| 164649 | pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy626); |
| 164650 | pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy626); |
| 164651 | yymsp[-4].minor.yy626 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0); |
| 164652 | if( bNot ) yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy626, 0); |
| 164653 | if( yymsp[-4].minor.yy626 ) yymsp[-4].minor.yy626->flags |= EP_InfixFunc; |
| 164654 | } |
| 164655 | break; |
| 164656 | case 205: /* expr ::= expr ISNULL|NOTNULL */ |
| 164657 | {yymsp[-1].minor.yy626 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy626,0);} |
| 164658 | break; |
| 164659 | case 206: /* expr ::= expr NOT NULL */ |
| 164660 | {yymsp[-2].minor.yy626 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy626,0);} |
| 164661 | break; |
| 164662 | case 207: /* expr ::= expr IS expr */ |
| 164663 | { |
| 164664 | yymsp[-2].minor.yy626 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy626,yymsp[0].minor.yy626); |
| 164665 | binaryToUnaryIfNull(pParse, yymsp[0].minor.yy626, yymsp[-2].minor.yy626, TK_ISNULL); |
| 164666 | } |
| 164667 | break; |
| 164668 | case 208: /* expr ::= expr IS NOT expr */ |
| 164669 | { |
| 164670 | yymsp[-3].minor.yy626 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy626,yymsp[0].minor.yy626); |
| 164671 | binaryToUnaryIfNull(pParse, yymsp[0].minor.yy626, yymsp[-3].minor.yy626, TK_NOTNULL); |
| 164672 | } |
| 164673 | break; |
| 164674 | case 209: /* expr ::= NOT expr */ |
| 164675 | case 210: /* expr ::= BITNOT expr */ yytestcase(yyruleno==210); |
| 164676 | {yymsp[-1].minor.yy626 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy626, 0);/*A-overwrites-B*/} |
| 164677 | break; |
| 164678 | case 211: /* expr ::= PLUS|MINUS expr */ |
| 164679 | { |
| 164680 | yymsp[-1].minor.yy626 = sqlite3PExpr(pParse, yymsp[-1].major==TK_PLUS ? TK_UPLUS : TK_UMINUS, yymsp[0].minor.yy626, 0); |
| 164681 | /*A-overwrites-B*/ |
| 164682 | } |
| 164683 | break; |
| 164684 | case 212: /* between_op ::= BETWEEN */ |
| 164685 | case 215: /* in_op ::= IN */ yytestcase(yyruleno==215); |
| 164686 | {yymsp[0].minor.yy64 = 0;} |
| 164687 | break; |
| 164688 | case 214: /* expr ::= expr between_op expr AND expr */ |
| 164689 | { |
| 164690 | ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy626); |
| 164691 | pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy626); |
| 164692 | yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy626, 0); |
| 164693 | if( yymsp[-4].minor.yy626 ){ |
| 164694 | yymsp[-4].minor.yy626->x.pList = pList; |
| 164695 | }else{ |
| 164696 | sqlite3ExprListDelete(pParse->db, pList); |
| 164697 | } |
| 164698 | if( yymsp[-3].minor.yy64 ) yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy626, 0); |
| 164699 | } |
| 164700 | break; |
| 164701 | case 217: /* expr ::= expr in_op LP exprlist RP */ |
| 164702 | { |
| 164703 | if( yymsp[-1].minor.yy562==0 ){ |
| 164704 | /* Expressions of the form |
| 164705 | ** |
| 164706 | ** expr1 IN () |
| 164707 | ** expr1 NOT IN () |
| 164708 | ** |
| 164709 | ** simplify to constants 0 (false) and 1 (true), respectively, |
| 164710 | ** regardless of the value of expr1. |
| 164711 | */ |
| 164712 | sqlite3ExprUnmapAndDelete(pParse, yymsp[-4].minor.yy626); |
| 164713 | yymsp[-4].minor.yy626 = sqlite3Expr(pParse->db, TK_INTEGER, yymsp[-3].minor.yy64 ? "1" : "0"); |
| 164714 | }else{ |
| 164715 | Expr *pRHS = yymsp[-1].minor.yy562->a[0].pExpr; |
| 164716 | if( yymsp[-1].minor.yy562->nExpr==1 && sqlite3ExprIsConstant(pRHS) && yymsp[-4].minor.yy626->op!=TK_VECTOR ){ |
| 164717 | yymsp[-1].minor.yy562->a[0].pExpr = 0; |
| 164718 | sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy562); |
| 164719 | pRHS = sqlite3PExpr(pParse, TK_UPLUS, pRHS, 0); |
| 164720 | yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_EQ, yymsp[-4].minor.yy626, pRHS); |
| 164721 | }else{ |
| 164722 | yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy626, 0); |
| 164723 | if( yymsp[-4].minor.yy626==0 ){ |
| 164724 | sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy562); |
| 164725 | }else if( yymsp[-4].minor.yy626->pLeft->op==TK_VECTOR ){ |
| 164726 | int nExpr = yymsp[-4].minor.yy626->pLeft->x.pList->nExpr; |
| 164727 | Select *pSelectRHS = sqlite3ExprListToValues(pParse, nExpr, yymsp[-1].minor.yy562); |
| 164728 | if( pSelectRHS ){ |
| 164729 | parserDoubleLinkSelect(pParse, pSelectRHS); |
| 164730 | sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy626, pSelectRHS); |
| 164731 | } |
| 164732 | }else{ |
| 164733 | yymsp[-4].minor.yy626->x.pList = yymsp[-1].minor.yy562; |
| 164734 | sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy626); |
| 164735 | } |
| 164736 | } |
| 164737 | if( yymsp[-3].minor.yy64 ) yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy626, 0); |
| 164738 | } |
| 164739 | } |
| 164740 | break; |
| 164741 | case 218: /* expr ::= LP select RP */ |
| 164742 | { |
| 164743 | yymsp[-2].minor.yy626 = sqlite3PExpr(pParse, TK_SELECT, 0, 0); |
| 164744 | sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy626, yymsp[-1].minor.yy303); |
| 164745 | } |
| 164746 | break; |
| 164747 | case 219: /* expr ::= expr in_op LP select RP */ |
| 164748 | { |
| 164749 | yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy626, 0); |
| 164750 | sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy626, yymsp[-1].minor.yy303); |
| 164751 | if( yymsp[-3].minor.yy64 ) yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy626, 0); |
| 164752 | } |
| 164753 | break; |
| 164754 | case 220: /* expr ::= expr in_op nm dbnm paren_exprlist */ |
| 164755 | { |
| 164756 | SrcList *pSrc = sqlite3SrcListAppend(pParse, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); |
| 164757 | Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0); |
| 164758 | if( yymsp[0].minor.yy562 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy562); |
| 164759 | yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy626, 0); |
| 164760 | sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy626, pSelect); |
| 164761 | if( yymsp[-3].minor.yy64 ) yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy626, 0); |
| 164762 | } |
| 164763 | break; |
| 164764 | case 221: /* expr ::= EXISTS LP select RP */ |
| 164765 | { |
| 164766 | Expr *p; |
| 164767 | p = yymsp[-3].minor.yy626 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0); |
| 164768 | sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy303); |
| 164769 | } |
| 164770 | break; |
| 164771 | case 222: /* expr ::= CASE case_operand case_exprlist case_else END */ |
| 164772 | { |
| 164773 | yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy626, 0); |
| 164774 | if( yymsp[-4].minor.yy626 ){ |
| 164775 | yymsp[-4].minor.yy626->x.pList = yymsp[-1].minor.yy626 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy562,yymsp[-1].minor.yy626) : yymsp[-2].minor.yy562; |
| 164776 | sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy626); |
| 164777 | }else{ |
| 164778 | sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy562); |
| 164779 | sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy626); |
| 164780 | } |
| 164781 | } |
| 164782 | break; |
| 164783 | case 223: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ |
| 164784 | { |
| 164785 | yymsp[-4].minor.yy562 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy562, yymsp[-2].minor.yy626); |
| 164786 | yymsp[-4].minor.yy562 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy562, yymsp[0].minor.yy626); |
| 164787 | } |
| 164788 | break; |
| 164789 | case 224: /* case_exprlist ::= WHEN expr THEN expr */ |
| 164790 | { |
| 164791 | yymsp[-3].minor.yy562 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy626); |
| 164792 | yymsp[-3].minor.yy562 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy562, yymsp[0].minor.yy626); |
| 164793 | } |
| 164794 | break; |
| 164795 | case 227: /* case_operand ::= expr */ |
| 164796 | {yymsp[0].minor.yy626 = yymsp[0].minor.yy626; /*A-overwrites-X*/} |
| 164797 | break; |
| 164798 | case 230: /* nexprlist ::= nexprlist COMMA expr */ |
| 164799 | {yymsp[-2].minor.yy562 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy562,yymsp[0].minor.yy626);} |
| 164800 | break; |
| 164801 | case 231: /* nexprlist ::= expr */ |
| 164802 | {yymsp[0].minor.yy562 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy626); /*A-overwrites-Y*/} |
| 164803 | break; |
| 164804 | case 233: /* paren_exprlist ::= LP exprlist RP */ |
| 164805 | case 238: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==238); |
| 164806 | {yymsp[-2].minor.yy562 = yymsp[-1].minor.yy562;} |
| 164807 | break; |
| 164808 | case 234: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ |
| 164809 | { |
| 164810 | sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, |
| 164811 | sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy562, yymsp[-10].minor.yy64, |
| 164812 | &yymsp[-11].minor.yy0, yymsp[0].minor.yy626, SQLITE_SO_ASC, yymsp[-8].minor.yy64, SQLITE_IDXTYPE_APPDEF); |
| 164813 | if( IN_RENAME_OBJECT && pParse->pNewIndex ){ |
| 164814 | sqlite3RenameTokenMap(pParse, pParse->pNewIndex->zName, &yymsp[-4].minor.yy0); |
| 164815 | } |
| 164816 | } |
| 164817 | break; |
| 164818 | case 235: /* uniqueflag ::= UNIQUE */ |
| 164819 | case 277: /* raisetype ::= ABORT */ yytestcase(yyruleno==277); |
| 164820 | {yymsp[0].minor.yy64 = OE_Abort;} |
| 164821 | break; |
| 164822 | case 236: /* uniqueflag ::= */ |
| 164823 | {yymsp[1].minor.yy64 = OE_None;} |
| 164824 | break; |
| 164825 | case 239: /* eidlist ::= eidlist COMMA nm collate sortorder */ |
| 164826 | { |
| 164827 | yymsp[-4].minor.yy562 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy562, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy64, yymsp[0].minor.yy64); |
| 164828 | } |
| 164829 | break; |
| 164830 | case 240: /* eidlist ::= nm collate sortorder */ |
| 164831 | { |
| 164832 | yymsp[-2].minor.yy562 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy64, yymsp[0].minor.yy64); /*A-overwrites-Y*/ |
| 164833 | } |
| 164834 | break; |
| 164835 | case 243: /* cmd ::= DROP INDEX ifexists fullname */ |
| 164836 | {sqlite3DropIndex(pParse, yymsp[0].minor.yy607, yymsp[-1].minor.yy64);} |
| 164837 | break; |
| 164838 | case 244: /* cmd ::= VACUUM vinto */ |
| 164839 | {sqlite3Vacuum(pParse,0,yymsp[0].minor.yy626);} |
| 164840 | break; |
| 164841 | case 245: /* cmd ::= VACUUM nm vinto */ |
| 164842 | {sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy626);} |
| 164843 | break; |
| 164844 | case 248: /* cmd ::= PRAGMA nm dbnm */ |
| 164845 | {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);} |
| 164846 | break; |
| 164847 | case 249: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ |
| 164848 | {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);} |
| 164849 | break; |
| 164850 | case 250: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ |
| 164851 | {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);} |
| 164852 | break; |
| 164853 | case 251: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ |
| 164854 | {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);} |
| 164855 | break; |
| 164856 | case 252: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ |
| 164857 | {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);} |
| 164858 | break; |
| 164859 | case 255: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ |
| 164860 | { |
| 164861 | Token all; |
| 164862 | all.z = yymsp[-3].minor.yy0.z; |
| 164863 | all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n; |
| 164864 | sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy95, &all); |
| 164865 | } |
| 164866 | break; |
| 164867 | case 256: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ |
| 164868 | { |
| 164869 | sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy64, yymsp[-4].minor.yy570.a, yymsp[-4].minor.yy570.b, yymsp[-2].minor.yy607, yymsp[0].minor.yy626, yymsp[-10].minor.yy64, yymsp[-8].minor.yy64); |
| 164870 | yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/ |
| 164871 | } |
| 164872 | break; |
| 164873 | case 257: /* trigger_time ::= BEFORE|AFTER */ |
| 164874 | { yymsp[0].minor.yy64 = yymsp[0].major; /*A-overwrites-X*/ } |
| 164875 | break; |
| 164876 | case 258: /* trigger_time ::= INSTEAD OF */ |
| 164877 | { yymsp[-1].minor.yy64 = TK_INSTEAD;} |
| 164878 | break; |
| 164879 | case 259: /* trigger_time ::= */ |
| 164880 | { yymsp[1].minor.yy64 = TK_BEFORE; } |
| 164881 | break; |
| 164882 | case 260: /* trigger_event ::= DELETE|INSERT */ |
| 164883 | case 261: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==261); |
| 164884 | {yymsp[0].minor.yy570.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy570.b = 0;} |
| 164885 | break; |
| 164886 | case 262: /* trigger_event ::= UPDATE OF idlist */ |
| 164887 | {yymsp[-2].minor.yy570.a = TK_UPDATE; yymsp[-2].minor.yy570.b = yymsp[0].minor.yy240;} |
| 164888 | break; |
| 164889 | case 263: /* when_clause ::= */ |
| 164890 | case 282: /* key_opt ::= */ yytestcase(yyruleno==282); |
| 164891 | { yymsp[1].minor.yy626 = 0; } |
| 164892 | break; |
| 164893 | case 264: /* when_clause ::= WHEN expr */ |
| 164894 | case 283: /* key_opt ::= KEY expr */ yytestcase(yyruleno==283); |
| 164895 | { yymsp[-1].minor.yy626 = yymsp[0].minor.yy626; } |
| 164896 | break; |
| 164897 | case 265: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ |
| 164898 | { |
| 164899 | assert( yymsp[-2].minor.yy95!=0 ); |
| 164900 | yymsp[-2].minor.yy95->pLast->pNext = yymsp[-1].minor.yy95; |
| 164901 | yymsp[-2].minor.yy95->pLast = yymsp[-1].minor.yy95; |
| 164902 | } |
| 164903 | break; |
| 164904 | case 266: /* trigger_cmd_list ::= trigger_cmd SEMI */ |
| 164905 | { |
| 164906 | assert( yymsp[-1].minor.yy95!=0 ); |
| 164907 | yymsp[-1].minor.yy95->pLast = yymsp[-1].minor.yy95; |
| 164908 | } |
| 164909 | break; |
| 164910 | case 267: /* trnm ::= nm DOT nm */ |
| 164911 | { |
| 164912 | yymsp[-2].minor.yy0 = yymsp[0].minor.yy0; |
| 164913 | sqlite3ErrorMsg(pParse, |
| 164914 | "qualified table names are not allowed on INSERT, UPDATE, and DELETE " |
| 164915 | "statements within triggers"); |
| 164916 | } |
| 164917 | break; |
| 164918 | case 268: /* tridxby ::= INDEXED BY nm */ |
| 164919 | { |
| 164920 | sqlite3ErrorMsg(pParse, |
| 164921 | "the INDEXED BY clause is not allowed on UPDATE or DELETE statements " |
| 164922 | "within triggers"); |
| 164923 | } |
| 164924 | break; |
| 164925 | case 269: /* tridxby ::= NOT INDEXED */ |
| 164926 | { |
| 164927 | sqlite3ErrorMsg(pParse, |
| 164928 | "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements " |
| 164929 | "within triggers"); |
| 164930 | } |
| 164931 | break; |
| 164932 | case 270: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ |
| 164933 | {yylhsminor.yy95 = sqlite3TriggerUpdateStep(pParse, &yymsp[-6].minor.yy0, yymsp[-2].minor.yy607, yymsp[-3].minor.yy562, yymsp[-1].minor.yy626, yymsp[-7].minor.yy64, yymsp[-8].minor.yy0.z, yymsp[0].minor.yy600);} |
| 164934 | yymsp[-8].minor.yy95 = yylhsminor.yy95; |
| 164935 | break; |
| 164936 | case 271: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ |
| 164937 | { |
| 164938 | yylhsminor.yy95 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy240,yymsp[-2].minor.yy303,yymsp[-6].minor.yy64,yymsp[-1].minor.yy138,yymsp[-7].minor.yy600,yymsp[0].minor.yy600);/*yylhsminor.yy95-overwrites-yymsp[-6].minor.yy64*/ |
| 164939 | } |
| 164940 | yymsp[-7].minor.yy95 = yylhsminor.yy95; |
| 164941 | break; |
| 164942 | case 272: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ |
| 164943 | {yylhsminor.yy95 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy626, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy600);} |
| 164944 | yymsp[-5].minor.yy95 = yylhsminor.yy95; |
| 164945 | break; |
| 164946 | case 273: /* trigger_cmd ::= scanpt select scanpt */ |
| 164947 | {yylhsminor.yy95 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy303, yymsp[-2].minor.yy600, yymsp[0].minor.yy600); /*yylhsminor.yy95-overwrites-yymsp[-1].minor.yy303*/} |
| 164948 | yymsp[-2].minor.yy95 = yylhsminor.yy95; |
| 164949 | break; |
| 164950 | case 274: /* expr ::= RAISE LP IGNORE RP */ |
| 164951 | { |
| 164952 | yymsp[-3].minor.yy626 = sqlite3PExpr(pParse, TK_RAISE, 0, 0); |
| 164953 | if( yymsp[-3].minor.yy626 ){ |
| 164954 | yymsp[-3].minor.yy626->affExpr = OE_Ignore; |
| 164955 | } |
| 164956 | } |
| 164957 | break; |
| 164958 | case 275: /* expr ::= RAISE LP raisetype COMMA nm RP */ |
| 164959 | { |
| 164960 | yymsp[-5].minor.yy626 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1); |
| 164961 | if( yymsp[-5].minor.yy626 ) { |
| 164962 | yymsp[-5].minor.yy626->affExpr = (char)yymsp[-3].minor.yy64; |
| 164963 | } |
| 164964 | } |
| 164965 | break; |
| 164966 | case 276: /* raisetype ::= ROLLBACK */ |
| 164967 | {yymsp[0].minor.yy64 = OE_Rollback;} |
| 164968 | break; |
| 164969 | case 278: /* raisetype ::= FAIL */ |
| 164970 | {yymsp[0].minor.yy64 = OE_Fail;} |
| 164971 | break; |
| 164972 | case 279: /* cmd ::= DROP TRIGGER ifexists fullname */ |
| 164973 | { |
| 164974 | sqlite3DropTrigger(pParse,yymsp[0].minor.yy607,yymsp[-1].minor.yy64); |
| 164975 | } |
| 164976 | break; |
| 164977 | case 280: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ |
| 164978 | { |
| 164979 | sqlite3Attach(pParse, yymsp[-3].minor.yy626, yymsp[-1].minor.yy626, yymsp[0].minor.yy626); |
| 164980 | } |
| 164981 | break; |
| 164982 | case 281: /* cmd ::= DETACH database_kw_opt expr */ |
| 164983 | { |
| 164984 | sqlite3Detach(pParse, yymsp[0].minor.yy626); |
| 164985 | } |
| 164986 | break; |
| 164987 | case 284: /* cmd ::= REINDEX */ |
| 164988 | {sqlite3Reindex(pParse, 0, 0);} |
| 164989 | break; |
| 164990 | case 285: /* cmd ::= REINDEX nm dbnm */ |
| 164991 | {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} |
| 164992 | break; |
| 164993 | case 286: /* cmd ::= ANALYZE */ |
| 164994 | {sqlite3Analyze(pParse, 0, 0);} |
| 164995 | break; |
| 164996 | case 287: /* cmd ::= ANALYZE nm dbnm */ |
| 164997 | {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} |
| 164998 | break; |
| 164999 | case 288: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ |
| 165000 | { |
| 165001 | sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy607,&yymsp[0].minor.yy0); |
| 165002 | } |
| 165003 | break; |
| 165004 | case 289: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ |
| 165005 | { |
| 165006 | yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n; |
| 165007 | sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0); |
| 165008 | } |
| 165009 | break; |
| 165010 | case 290: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ |
| 165011 | { |
| 165012 | sqlite3AlterDropColumn(pParse, yymsp[-3].minor.yy607, &yymsp[0].minor.yy0); |
| 165013 | } |
| 165014 | break; |
| 165015 | case 291: /* add_column_fullname ::= fullname */ |
| 165016 | { |
| 165017 | disableLookaside(pParse); |
| 165018 | sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy607); |
| 165019 | } |
| 165020 | break; |
| 165021 | case 292: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ |
| 165022 | { |
| 165023 | sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy607, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); |
| 165024 | } |
| 165025 | break; |
| 165026 | case 293: /* cmd ::= create_vtab */ |
| 165027 | {sqlite3VtabFinishParse(pParse,0);} |
| 165028 | break; |
| 165029 | case 294: /* cmd ::= create_vtab LP vtabarglist RP */ |
| 165030 | {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);} |
| 165031 | break; |
| 165032 | case 295: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ |
| 165033 | { |
| 165034 | sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy64); |
| 165035 | } |
| 165036 | break; |
| 165037 | case 296: /* vtabarg ::= */ |
| 165038 | {sqlite3VtabArgInit(pParse);} |
| 165039 | break; |
| 165040 | case 297: /* vtabargtoken ::= ANY */ |
| 165041 | case 298: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==298); |
| 165042 | case 299: /* lp ::= LP */ yytestcase(yyruleno==299); |
| 165043 | {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);} |
| 165044 | break; |
| 165045 | case 300: /* with ::= WITH wqlist */ |
| 165046 | case 301: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==301); |
| 165047 | { sqlite3WithPush(pParse, yymsp[0].minor.yy43, 1); } |
| 165048 | break; |
| 165049 | case 302: /* wqas ::= AS */ |
| 165050 | {yymsp[0].minor.yy534 = M10d_Any;} |
| 165051 | break; |
| 165052 | case 303: /* wqas ::= AS MATERIALIZED */ |
| 165053 | {yymsp[-1].minor.yy534 = M10d_Yes;} |
| 165054 | break; |
| 165055 | case 304: /* wqas ::= AS NOT MATERIALIZED */ |
| 165056 | {yymsp[-2].minor.yy534 = M10d_No;} |
| 165057 | break; |
| 165058 | case 305: /* wqitem ::= nm eidlist_opt wqas LP select RP */ |
| 165059 | { |
| 165060 | yymsp[-5].minor.yy255 = sqlite3CteNew(pParse, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy562, yymsp[-1].minor.yy303, yymsp[-3].minor.yy534); /*A-overwrites-X*/ |
| 165061 | } |
| 165062 | break; |
| 165063 | case 306: /* wqlist ::= wqitem */ |
| 165064 | { |
| 165065 | yymsp[0].minor.yy43 = sqlite3WithAdd(pParse, 0, yymsp[0].minor.yy255); /*A-overwrites-X*/ |
| 165066 | } |
| 165067 | break; |
| 165068 | case 307: /* wqlist ::= wqlist COMMA wqitem */ |
| 165069 | { |
| 165070 | yymsp[-2].minor.yy43 = sqlite3WithAdd(pParse, yymsp[-2].minor.yy43, yymsp[0].minor.yy255); |
| 165071 | } |
| 165072 | break; |
| 165073 | case 308: /* windowdefn_list ::= windowdefn */ |
| 165074 | { yylhsminor.yy375 = yymsp[0].minor.yy375; } |
| 165075 | yymsp[0].minor.yy375 = yylhsminor.yy375; |
| 165076 | break; |
| 165077 | case 309: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ |
| 165078 | { |
| 165079 | assert( yymsp[0].minor.yy375!=0 ); |
| 165080 | sqlite3WindowChain(pParse, yymsp[0].minor.yy375, yymsp[-2].minor.yy375); |
| 165081 | yymsp[0].minor.yy375->pNextWin = yymsp[-2].minor.yy375; |
| 165082 | yylhsminor.yy375 = yymsp[0].minor.yy375; |
| 165083 | } |
| 165084 | yymsp[-2].minor.yy375 = yylhsminor.yy375; |
| 165085 | break; |
| 165086 | case 310: /* windowdefn ::= nm AS LP window RP */ |
| 165087 | { |
| 165088 | if( ALWAYS(yymsp[-1].minor.yy375) ){ |
| 165089 | yymsp[-1].minor.yy375->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n); |
| 165090 | } |
| 165091 | yylhsminor.yy375 = yymsp[-1].minor.yy375; |
| 165092 | } |
| 165093 | yymsp[-4].minor.yy375 = yylhsminor.yy375; |
| 165094 | break; |
| 165095 | case 311: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ |
| 165096 | { |
| 165097 | yymsp[-4].minor.yy375 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy375, yymsp[-2].minor.yy562, yymsp[-1].minor.yy562, 0); |
| 165098 | } |
| 165099 | break; |
| 165100 | case 312: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ |
| 165101 | { |
| 165102 | yylhsminor.yy375 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy375, yymsp[-2].minor.yy562, yymsp[-1].minor.yy562, &yymsp[-5].minor.yy0); |
| 165103 | } |
| 165104 | yymsp[-5].minor.yy375 = yylhsminor.yy375; |
| 165105 | break; |
| 165106 | case 313: /* window ::= ORDER BY sortlist frame_opt */ |
| 165107 | { |
| 165108 | yymsp[-3].minor.yy375 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy375, 0, yymsp[-1].minor.yy562, 0); |
| 165109 | } |
| 165110 | break; |
| 165111 | case 314: /* window ::= nm ORDER BY sortlist frame_opt */ |
| 165112 | { |
| 165113 | yylhsminor.yy375 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy375, 0, yymsp[-1].minor.yy562, &yymsp[-4].minor.yy0); |
| 165114 | } |
| 165115 | yymsp[-4].minor.yy375 = yylhsminor.yy375; |
| 165116 | break; |
| 165117 | case 315: /* window ::= frame_opt */ |
| 165118 | case 334: /* filter_over ::= over_clause */ yytestcase(yyruleno==334); |
| 165119 | { |
| 165120 | yylhsminor.yy375 = yymsp[0].minor.yy375; |
| 165121 | } |
| 165122 | yymsp[0].minor.yy375 = yylhsminor.yy375; |
| 165123 | break; |
| 165124 | case 316: /* window ::= nm frame_opt */ |
| 165125 | { |
| 165126 | yylhsminor.yy375 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy375, 0, 0, &yymsp[-1].minor.yy0); |
| 165127 | } |
| 165128 | yymsp[-1].minor.yy375 = yylhsminor.yy375; |
| 165129 | break; |
| 165130 | case 317: /* frame_opt ::= */ |
| 165131 | { |
| 165132 | yymsp[1].minor.yy375 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0); |
| 165133 | } |
| 165134 | break; |
| 165135 | case 318: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ |
| 165136 | { |
| 165137 | yylhsminor.yy375 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy64, yymsp[-1].minor.yy81.eType, yymsp[-1].minor.yy81.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy534); |
| 165138 | } |
| 165139 | yymsp[-2].minor.yy375 = yylhsminor.yy375; |
| 165140 | break; |
| 165141 | case 319: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ |
| 165142 | { |
| 165143 | yylhsminor.yy375 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy64, yymsp[-3].minor.yy81.eType, yymsp[-3].minor.yy81.pExpr, yymsp[-1].minor.yy81.eType, yymsp[-1].minor.yy81.pExpr, yymsp[0].minor.yy534); |
| 165144 | } |
| 165145 | yymsp[-5].minor.yy375 = yylhsminor.yy375; |
| 165146 | break; |
| 165147 | case 321: /* frame_bound_s ::= frame_bound */ |
| 165148 | case 323: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==323); |
| 165149 | {yylhsminor.yy81 = yymsp[0].minor.yy81;} |
| 165150 | yymsp[0].minor.yy81 = yylhsminor.yy81; |
| 165151 | break; |
| 165152 | case 322: /* frame_bound_s ::= UNBOUNDED PRECEDING */ |
| 165153 | case 324: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==324); |
| 165154 | case 326: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==326); |
| 165155 | {yylhsminor.yy81.eType = yymsp[-1].major; yylhsminor.yy81.pExpr = 0;} |
| 165156 | yymsp[-1].minor.yy81 = yylhsminor.yy81; |
| 165157 | break; |
| 165158 | case 325: /* frame_bound ::= expr PRECEDING|FOLLOWING */ |
| 165159 | {yylhsminor.yy81.eType = yymsp[0].major; yylhsminor.yy81.pExpr = yymsp[-1].minor.yy626;} |
| 165160 | yymsp[-1].minor.yy81 = yylhsminor.yy81; |
| 165161 | break; |
| 165162 | case 327: /* frame_exclude_opt ::= */ |
| 165163 | {yymsp[1].minor.yy534 = 0;} |
| 165164 | break; |
| 165165 | case 328: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ |
| 165166 | {yymsp[-1].minor.yy534 = yymsp[0].minor.yy534;} |
| 165167 | break; |
| 165168 | case 329: /* frame_exclude ::= NO OTHERS */ |
| 165169 | case 330: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==330); |
| 165170 | {yymsp[-1].minor.yy534 = yymsp[-1].major; /*A-overwrites-X*/} |
| 165171 | break; |
| 165172 | case 331: /* frame_exclude ::= GROUP|TIES */ |
| 165173 | {yymsp[0].minor.yy534 = yymsp[0].major; /*A-overwrites-X*/} |
| 165174 | break; |
| 165175 | case 332: /* window_clause ::= WINDOW windowdefn_list */ |
| 165176 | { yymsp[-1].minor.yy375 = yymsp[0].minor.yy375; } |
| 165177 | break; |
| 165178 | case 333: /* filter_over ::= filter_clause over_clause */ |
| 165179 | { |
| 165180 | if( yymsp[0].minor.yy375 ){ |
| 165181 | yymsp[0].minor.yy375->pFilter = yymsp[-1].minor.yy626; |
| 165182 | }else{ |
| 165183 | sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy626); |
| 165184 | } |
| 165185 | yylhsminor.yy375 = yymsp[0].minor.yy375; |
| 165186 | } |
| 165187 | yymsp[-1].minor.yy375 = yylhsminor.yy375; |
| 165188 | break; |
| 165189 | case 335: /* filter_over ::= filter_clause */ |
| 165190 | { |
| 165191 | yylhsminor.yy375 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); |
| 165192 | if( yylhsminor.yy375 ){ |
| 165193 | yylhsminor.yy375->eFrmType = TK_FILTER; |
| 165194 | yylhsminor.yy375->pFilter = yymsp[0].minor.yy626; |
| 165195 | }else{ |
| 165196 | sqlite3ExprDelete(pParse->db, yymsp[0].minor.yy626); |
| 165197 | } |
| 165198 | } |
| 165199 | yymsp[0].minor.yy375 = yylhsminor.yy375; |
| 165200 | break; |
| 165201 | case 336: /* over_clause ::= OVER LP window RP */ |
| 165202 | { |
| 165203 | yymsp[-3].minor.yy375 = yymsp[-1].minor.yy375; |
| 165204 | assert( yymsp[-3].minor.yy375!=0 ); |
| 165205 | } |
| 165206 | break; |
| 165207 | case 337: /* over_clause ::= OVER nm */ |
| 165208 | { |
| 165209 | yymsp[-1].minor.yy375 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); |
| 165210 | if( yymsp[-1].minor.yy375 ){ |
| 165211 | yymsp[-1].minor.yy375->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n); |
| 165212 | } |
| 165213 | } |
| 165214 | break; |
| 165215 | case 338: /* filter_clause ::= FILTER LP WHERE expr RP */ |
| 165216 | { yymsp[-4].minor.yy626 = yymsp[-1].minor.yy626; } |
| 165217 | break; |
| 165218 | default: |
| 165219 | /* (339) input ::= cmdlist */ yytestcase(yyruleno==339); |
| 165220 | /* (340) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==340); |
| 165221 | /* (341) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=341); |
| 165222 | /* (342) ecmd ::= SEMI */ yytestcase(yyruleno==342); |
| 165223 | /* (343) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==343); |
| 165224 | /* (344) ecmd ::= explain cmdx SEMI (NEVER REDUCES) */ assert(yyruleno!=344); |
| 165225 | /* (345) trans_opt ::= */ yytestcase(yyruleno==345); |
| 165226 | /* (346) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==346); |
| 165227 | /* (347) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==347); |
| 165228 | /* (348) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==348); |
| 165229 | /* (349) savepoint_opt ::= */ yytestcase(yyruleno==349); |
| 165230 | /* (350) cmd ::= create_table create_table_args */ yytestcase(yyruleno==350); |
| 165231 | /* (351) table_option_set ::= table_option (OPTIMIZED OUT) */ assert(yyruleno!=351); |
| 165232 | /* (352) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==352); |
| 165233 | /* (353) columnlist ::= columnname carglist */ yytestcase(yyruleno==353); |
| 165234 | /* (354) nm ::= ID|INDEXED */ yytestcase(yyruleno==354); |
| 165235 | /* (355) nm ::= STRING */ yytestcase(yyruleno==355); |
| 165236 | /* (356) nm ::= JOIN_KW */ yytestcase(yyruleno==356); |
| 165237 | /* (357) typetoken ::= typename */ yytestcase(yyruleno==357); |
| 165238 | /* (358) typename ::= ID|STRING */ yytestcase(yyruleno==358); |
| 165239 | /* (359) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=359); |
| 165240 | /* (360) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=360); |
| 165241 | /* (361) carglist ::= carglist ccons */ yytestcase(yyruleno==361); |
| 165242 | /* (362) carglist ::= */ yytestcase(yyruleno==362); |
| 165243 | /* (363) ccons ::= NULL onconf */ yytestcase(yyruleno==363); |
| 165244 | /* (364) ccons ::= GENERATED ALWAYS AS generated */ yytestcase(yyruleno==364); |
| 165245 | /* (365) ccons ::= AS generated */ yytestcase(yyruleno==365); |
| 165246 | /* (366) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==366); |
| 165247 | /* (367) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==367); |
| 165248 | /* (368) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=368); |
| 165249 | /* (369) tconscomma ::= */ yytestcase(yyruleno==369); |
| 165250 | /* (370) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=370); |
| 165251 | /* (371) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=371); |
| 165252 | /* (372) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=372); |
| 165253 | /* (373) oneselect ::= values */ yytestcase(yyruleno==373); |
| 165254 | /* (374) sclp ::= selcollist COMMA */ yytestcase(yyruleno==374); |
| 165255 | /* (375) as ::= ID|STRING */ yytestcase(yyruleno==375); |
| 165256 | /* (376) returning ::= */ yytestcase(yyruleno==376); |
| 165257 | /* (377) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=377); |
| 165258 | /* (378) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==378); |
| 165259 | /* (379) exprlist ::= nexprlist */ yytestcase(yyruleno==379); |
| 165260 | /* (380) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=380); |
| 165261 | /* (381) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=381); |
| 165262 | /* (382) nmnum ::= ON */ yytestcase(yyruleno==382); |
| 165263 | /* (383) nmnum ::= DELETE */ yytestcase(yyruleno==383); |
| 165264 | /* (384) nmnum ::= DEFAULT */ yytestcase(yyruleno==384); |
| 165265 | /* (385) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==385); |
| 165266 | /* (386) foreach_clause ::= */ yytestcase(yyruleno==386); |
| 165267 | /* (387) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==387); |
| 165268 | /* (388) trnm ::= nm */ yytestcase(yyruleno==388); |
| 165269 | /* (389) tridxby ::= */ yytestcase(yyruleno==389); |
| 165270 | /* (390) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==390); |
| 165271 | /* (391) database_kw_opt ::= */ yytestcase(yyruleno==391); |
| 165272 | /* (392) kwcolumn_opt ::= */ yytestcase(yyruleno==392); |
| 165273 | /* (393) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==393); |
| 165274 | /* (394) vtabarglist ::= vtabarg */ yytestcase(yyruleno==394); |
| 165275 | /* (395) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==395); |
| 165276 | /* (396) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==396); |
| 165277 | /* (397) anylist ::= */ yytestcase(yyruleno==397); |
| 165278 | /* (398) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==398); |
| 165279 | /* (399) anylist ::= anylist ANY */ yytestcase(yyruleno==399); |
| 165280 | /* (400) with ::= */ yytestcase(yyruleno==400); |
| 165281 | break; |
| 165282 | /********** End reduce actions ************************************************/ |
| 165283 | }; |
| 165284 | assert( yyruleno<sizeof(yyRuleInfoLhs)/sizeof(yyRuleInfoLhs[0]) ); |
| 165285 | yygoto = yyRuleInfoLhs[yyruleno]; |
| @@ -166398,10 +166444,13 @@ | |
| 166398 | case CC_MINUS: { |
| 166399 | if( z[1]=='-' ){ |
| 166400 | for(i=2; (c=z[i])!=0 && c!='\n'; i++){} |
| 166401 | *tokenType = TK_SPACE; /* IMP: R-22934-25134 */ |
| 166402 | return i; |
| 166403 | } |
| 166404 | *tokenType = TK_MINUS; |
| 166405 | return 1; |
| 166406 | } |
| 166407 | case CC_LP: { |
| @@ -167394,13 +167443,10 @@ | |
| 167394 | SQLITE_PRIVATE int sqlite3Fts2Init(sqlite3*); |
| 167395 | #endif |
| 167396 | #ifdef SQLITE_ENABLE_FTS5 |
| 167397 | SQLITE_PRIVATE int sqlite3Fts5Init(sqlite3*); |
| 167398 | #endif |
| 167399 | #ifdef SQLITE_ENABLE_JSON1 |
| 167400 | SQLITE_PRIVATE int sqlite3Json1Init(sqlite3*); |
| 167401 | #endif |
| 167402 | #ifdef SQLITE_ENABLE_STMTVTAB |
| 167403 | SQLITE_PRIVATE int sqlite3StmtVtabInit(sqlite3*); |
| 167404 | #endif |
| 167405 | |
| 167406 | /* |
| @@ -167431,12 +167477,12 @@ | |
| 167431 | #endif |
| 167432 | #ifdef SQLITE_ENABLE_DBSTAT_VTAB |
| 167433 | sqlite3DbstatRegister, |
| 167434 | #endif |
| 167435 | sqlite3TestExtInit, |
| 167436 | #ifdef SQLITE_ENABLE_JSON1 |
| 167437 | sqlite3Json1Init, |
| 167438 | #endif |
| 167439 | #ifdef SQLITE_ENABLE_STMTVTAB |
| 167440 | sqlite3StmtVtabInit, |
| 167441 | #endif |
| 167442 | #ifdef SQLITE_ENABLE_BYTECODE_VTAB |
| @@ -192022,11 +192068,11 @@ | |
| 192022 | } |
| 192023 | #endif /* defined(SQLITE_ENABLE_FTS3) || defined(SQLITE_ENABLE_FTS4) */ |
| 192024 | #endif /* !defined(SQLITE_DISABLE_FTS3_UNICODE) */ |
| 192025 | |
| 192026 | /************** End of fts3_unicode2.c ***************************************/ |
| 192027 | /************** Begin file json1.c *******************************************/ |
| 192028 | /* |
| 192029 | ** 2015-08-12 |
| 192030 | ** |
| 192031 | ** The author disclaims copyright to this source code. In place of |
| 192032 | ** a legal notice, here is a blessing: |
| @@ -192035,72 +192081,23 @@ | |
| 192035 | ** May you find forgiveness for yourself and forgive others. |
| 192036 | ** May you share freely, never taking more than you give. |
| 192037 | ** |
| 192038 | ****************************************************************************** |
| 192039 | ** |
| 192040 | ** This SQLite extension implements JSON functions. The interface is |
| 192041 | ** modeled after MySQL JSON functions: |
| 192042 | ** |
| 192043 | ** https://dev.mysql.com/doc/refman/5.7/en/json.html |
| 192044 | ** |
| 192045 | ** For the time being, all JSON is stored as pure text. (We might add |
| 192046 | ** a JSONB type in the future which stores a binary encoding of JSON in |
| 192047 | ** a BLOB, but there is no support for JSONB in the current implementation. |
| 192048 | ** This implementation parses JSON text at 250 MB/s, so it is hard to see |
| 192049 | ** how JSONB might improve on that.) |
| 192050 | */ |
| 192051 | #if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_JSON1) |
| 192052 | #if !defined(SQLITEINT_H) |
| 192053 | /* #include "sqlite3ext.h" */ |
| 192054 | #endif |
| 192055 | SQLITE_EXTENSION_INIT1 |
| 192056 | |
| 192057 | /* If compiling this extension separately (why would anybody do that when |
| 192058 | ** it is built into the amalgamation?) we must set NDEBUG if SQLITE_DEBUG |
| 192059 | ** is not defined *before* including <assert.h>, in order to disable asserts(). |
| 192060 | */ |
| 192061 | #if !defined(SQLITE_AMALGAMATION) && !defined(SQLITE_DEBUG) |
| 192062 | # define NDEBUG 1 |
| 192063 | #endif |
| 192064 | |
| 192065 | /* #include <assert.h> */ |
| 192066 | /* #include <string.h> */ |
| 192067 | /* #include <stdlib.h> */ |
| 192068 | /* #include <stdarg.h> */ |
| 192069 | |
| 192070 | /* Mark a function parameter as unused, to suppress nuisance compiler |
| 192071 | ** warnings. */ |
| 192072 | #ifndef UNUSED_PARAM |
| 192073 | # define UNUSED_PARAM(X) (void)(X) |
| 192074 | #endif |
| 192075 | |
| 192076 | #ifndef LARGEST_INT64 |
| 192077 | # define LARGEST_INT64 (0xffffffff|(((sqlite3_int64)0x7fffffff)<<32)) |
| 192078 | # define SMALLEST_INT64 (((sqlite3_int64)-1) - LARGEST_INT64) |
| 192079 | #endif |
| 192080 | |
| 192081 | #ifndef deliberate_fall_through |
| 192082 | # define deliberate_fall_through |
| 192083 | #endif |
| 192084 | |
| 192085 | /* |
| 192086 | ** Versions of isspace(), isalnum() and isdigit() to which it is safe |
| 192087 | ** to pass signed char values. |
| 192088 | */ |
| 192089 | #ifdef sqlite3Isdigit |
| 192090 | /* Use the SQLite core versions if this routine is part of the |
| 192091 | ** SQLite amalgamation */ |
| 192092 | # define safe_isdigit(x) sqlite3Isdigit(x) |
| 192093 | # define safe_isalnum(x) sqlite3Isalnum(x) |
| 192094 | # define safe_isxdigit(x) sqlite3Isxdigit(x) |
| 192095 | #else |
| 192096 | /* Use the standard library for separate compilation */ |
| 192097 | #include <ctype.h> /* amalgamator: keep */ |
| 192098 | # define safe_isdigit(x) isdigit((unsigned char)(x)) |
| 192099 | # define safe_isalnum(x) isalnum((unsigned char)(x)) |
| 192100 | # define safe_isxdigit(x) isxdigit((unsigned char)(x)) |
| 192101 | #endif |
| 192102 | |
| 192103 | /* |
| 192104 | ** Growing our own isspace() routine this way is twice as fast as |
| 192105 | ** the library isspace() function, resulting in a 7% overall performance |
| 192106 | ** increase for the parser. (Ubuntu14.10 gcc 4.8.4 x64 with -Os). |
| @@ -192121,48 +192118,18 @@ | |
| 192121 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 192122 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 192123 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 192124 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 192125 | }; |
| 192126 | #define safe_isspace(x) (jsonIsSpace[(unsigned char)x]) |
| 192127 | |
| 192128 | #ifndef SQLITE_AMALGAMATION |
| 192129 | /* Unsigned integer types. These are already defined in the sqliteInt.h, |
| 192130 | ** but the definitions need to be repeated for separate compilation. */ |
| 192131 | typedef sqlite3_uint64 u64; |
| 192132 | typedef unsigned int u32; |
| 192133 | typedef unsigned short int u16; |
| 192134 | typedef unsigned char u8; |
| 192135 | # if defined(SQLITE_COVERAGE_TEST) || defined(SQLITE_MUTATION_TEST) |
| 192136 | # define SQLITE_OMIT_AUXILIARY_SAFETY_CHECKS 1 |
| 192137 | # endif |
| 192138 | # if defined(SQLITE_OMIT_AUXILIARY_SAFETY_CHECKS) |
| 192139 | # define ALWAYS(X) (1) |
| 192140 | # define NEVER(X) (0) |
| 192141 | # elif !defined(NDEBUG) |
| 192142 | # define ALWAYS(X) ((X)?1:(assert(0),0)) |
| 192143 | # define NEVER(X) ((X)?(assert(0),1):0) |
| 192144 | # else |
| 192145 | # define ALWAYS(X) (X) |
| 192146 | # define NEVER(X) (X) |
| 192147 | # endif |
| 192148 | # define testcase(X) |
| 192149 | #endif |
| 192150 | #if !defined(SQLITE_DEBUG) && !defined(SQLITE_COVERAGE_TEST) |
| 192151 | # define VVA(X) |
| 192152 | #else |
| 192153 | # define VVA(X) X |
| 192154 | #endif |
| 192155 | |
| 192156 | /* |
| 192157 | ** Some of the testcase() macros in this file are problematic for gcov |
| 192158 | ** in that they generate false-miss errors randomly. This is a gcov problem, |
| 192159 | ** not a problem in this case. But to work around it, we disable the |
| 192160 | ** problematic test cases for production builds. |
| 192161 | */ |
| 192162 | #define json_testcase(X) |
| 192163 | |
| 192164 | /* Objects */ |
| 192165 | typedef struct JsonString JsonString; |
| 192166 | typedef struct JsonNode JsonNode; |
| 192167 | typedef struct JsonParse JsonParse; |
| 192168 | |
| @@ -192616,14 +192583,14 @@ | |
| 192616 | /* |
| 192617 | ** Convert a 4-byte hex string into an integer |
| 192618 | */ |
| 192619 | static u32 jsonHexToInt4(const char *z){ |
| 192620 | u32 v; |
| 192621 | assert( safe_isxdigit(z[0]) ); |
| 192622 | assert( safe_isxdigit(z[1]) ); |
| 192623 | assert( safe_isxdigit(z[2]) ); |
| 192624 | assert( safe_isxdigit(z[3]) ); |
| 192625 | v = (jsonHexToInt(z[0])<<12) |
| 192626 | + (jsonHexToInt(z[1])<<8) |
| 192627 | + (jsonHexToInt(z[2])<<4) |
| 192628 | + jsonHexToInt(z[3]); |
| 192629 | return v; |
| @@ -192854,11 +192821,11 @@ | |
| 192854 | /* |
| 192855 | ** Return true if z[] begins with 4 (or more) hexadecimal digits |
| 192856 | */ |
| 192857 | static int jsonIs4Hex(const char *z){ |
| 192858 | int i; |
| 192859 | for(i=0; i<4; i++) if( !safe_isxdigit(z[i]) ) return 0; |
| 192860 | return 1; |
| 192861 | } |
| 192862 | |
| 192863 | /* |
| 192864 | ** Parse a single JSON value which begins at pParse->zJson[i]. Return the |
| @@ -192873,17 +192840,17 @@ | |
| 192873 | u32 j; |
| 192874 | int iThis; |
| 192875 | int x; |
| 192876 | JsonNode *pNode; |
| 192877 | const char *z = pParse->zJson; |
| 192878 | while( safe_isspace(z[i]) ){ i++; } |
| 192879 | if( (c = z[i])=='{' ){ |
| 192880 | /* Parse object */ |
| 192881 | iThis = jsonParseAddNode(pParse, JSON_OBJECT, 0, 0); |
| 192882 | if( iThis<0 ) return -1; |
| 192883 | for(j=i+1;;j++){ |
| 192884 | while( safe_isspace(z[j]) ){ j++; } |
| 192885 | if( ++pParse->iDepth > JSON_MAX_DEPTH ) return -1; |
| 192886 | x = jsonParseValue(pParse, j); |
| 192887 | if( x<0 ){ |
| 192888 | pParse->iDepth--; |
| 192889 | if( x==(-2) && pParse->nNode==(u32)iThis+1 ) return j+1; |
| @@ -192892,18 +192859,18 @@ | |
| 192892 | if( pParse->oom ) return -1; |
| 192893 | pNode = &pParse->aNode[pParse->nNode-1]; |
| 192894 | if( pNode->eType!=JSON_STRING ) return -1; |
| 192895 | pNode->jnFlags |= JNODE_LABEL; |
| 192896 | j = x; |
| 192897 | while( safe_isspace(z[j]) ){ j++; } |
| 192898 | if( z[j]!=':' ) return -1; |
| 192899 | j++; |
| 192900 | x = jsonParseValue(pParse, j); |
| 192901 | pParse->iDepth--; |
| 192902 | if( x<0 ) return -1; |
| 192903 | j = x; |
| 192904 | while( safe_isspace(z[j]) ){ j++; } |
| 192905 | c = z[j]; |
| 192906 | if( c==',' ) continue; |
| 192907 | if( c!='}' ) return -1; |
| 192908 | break; |
| 192909 | } |
| @@ -192913,20 +192880,20 @@ | |
| 192913 | /* Parse array */ |
| 192914 | iThis = jsonParseAddNode(pParse, JSON_ARRAY, 0, 0); |
| 192915 | if( iThis<0 ) return -1; |
| 192916 | memset(&pParse->aNode[iThis].u, 0, sizeof(pParse->aNode[iThis].u)); |
| 192917 | for(j=i+1;;j++){ |
| 192918 | while( safe_isspace(z[j]) ){ j++; } |
| 192919 | if( ++pParse->iDepth > JSON_MAX_DEPTH ) return -1; |
| 192920 | x = jsonParseValue(pParse, j); |
| 192921 | pParse->iDepth--; |
| 192922 | if( x<0 ){ |
| 192923 | if( x==(-3) && pParse->nNode==(u32)iThis+1 ) return j+1; |
| 192924 | return -1; |
| 192925 | } |
| 192926 | j = x; |
| 192927 | while( safe_isspace(z[j]) ){ j++; } |
| 192928 | c = z[j]; |
| 192929 | if( c==',' ) continue; |
| 192930 | if( c!=']' ) return -1; |
| 192931 | break; |
| 192932 | } |
| @@ -192959,21 +192926,21 @@ | |
| 192959 | jsonParseAddNode(pParse, JSON_STRING, j+1-i, &z[i]); |
| 192960 | if( !pParse->oom ) pParse->aNode[pParse->nNode-1].jnFlags = jnFlags; |
| 192961 | return j+1; |
| 192962 | }else if( c=='n' |
| 192963 | && strncmp(z+i,"null",4)==0 |
| 192964 | && !safe_isalnum(z[i+4]) ){ |
| 192965 | jsonParseAddNode(pParse, JSON_NULL, 0, 0); |
| 192966 | return i+4; |
| 192967 | }else if( c=='t' |
| 192968 | && strncmp(z+i,"true",4)==0 |
| 192969 | && !safe_isalnum(z[i+4]) ){ |
| 192970 | jsonParseAddNode(pParse, JSON_TRUE, 0, 0); |
| 192971 | return i+4; |
| 192972 | }else if( c=='f' |
| 192973 | && strncmp(z+i,"false",5)==0 |
| 192974 | && !safe_isalnum(z[i+5]) ){ |
| 192975 | jsonParseAddNode(pParse, JSON_FALSE, 0, 0); |
| 192976 | return i+5; |
| 192977 | }else if( c=='-' || (c>='0' && c<='9') ){ |
| 192978 | /* Parse number */ |
| 192979 | u8 seenDP = 0; |
| @@ -193040,11 +193007,11 @@ | |
| 193040 | pParse->zJson = zJson; |
| 193041 | i = jsonParseValue(pParse, 0); |
| 193042 | if( pParse->oom ) i = -1; |
| 193043 | if( i>0 ){ |
| 193044 | assert( pParse->iDepth==0 ); |
| 193045 | while( safe_isspace(zJson[i]) ) i++; |
| 193046 | if( zJson[i] ) i = -1; |
| 193047 | } |
| 193048 | if( i<=0 ){ |
| 193049 | if( pCtx!=0 ){ |
| 193050 | if( pParse->oom ){ |
| @@ -193268,11 +193235,11 @@ | |
| 193268 | return pNode; |
| 193269 | } |
| 193270 | }else if( zPath[0]=='[' ){ |
| 193271 | i = 0; |
| 193272 | j = 1; |
| 193273 | while( safe_isdigit(zPath[j]) ){ |
| 193274 | i = i*10 + zPath[j] - '0'; |
| 193275 | j++; |
| 193276 | } |
| 193277 | if( j<2 || zPath[j]!=']' ){ |
| 193278 | if( zPath[1]=='#' ){ |
| @@ -193289,17 +193256,17 @@ | |
| 193289 | iBase += pBase->u.iAppend; |
| 193290 | pBase = &pParse->aNode[iBase]; |
| 193291 | j = 1; |
| 193292 | } |
| 193293 | j = 2; |
| 193294 | if( zPath[2]=='-' && safe_isdigit(zPath[3]) ){ |
| 193295 | unsigned int x = 0; |
| 193296 | j = 3; |
| 193297 | do{ |
| 193298 | x = x*10 + zPath[j] - '0'; |
| 193299 | j++; |
| 193300 | }while( safe_isdigit(zPath[j]) ); |
| 193301 | if( x>i ) return 0; |
| 193302 | i -= x; |
| 193303 | } |
| 193304 | if( zPath[j]!=']' ){ |
| 193305 | *pzErr = zPath; |
| @@ -193514,11 +193481,11 @@ | |
| 193514 | static void jsonTest1Func( |
| 193515 | sqlite3_context *ctx, |
| 193516 | int argc, |
| 193517 | sqlite3_value **argv |
| 193518 | ){ |
| 193519 | UNUSED_PARAM(argc); |
| 193520 | sqlite3_result_int(ctx, sqlite3_value_subtype(argv[0])==JSON_SUBTYPE); |
| 193521 | } |
| 193522 | #endif /* SQLITE_DEBUG */ |
| 193523 | |
| 193524 | /**************************************************************************** |
| @@ -193535,11 +193502,11 @@ | |
| 193535 | sqlite3_context *ctx, |
| 193536 | int argc, |
| 193537 | sqlite3_value **argv |
| 193538 | ){ |
| 193539 | JsonString jx; |
| 193540 | UNUSED_PARAM(argc); |
| 193541 | |
| 193542 | jsonInit(&jx, ctx); |
| 193543 | jsonAppendValue(&jx, argv[0]); |
| 193544 | jsonResult(&jx); |
| 193545 | sqlite3_result_subtype(ctx, JSON_SUBTYPE); |
| @@ -193606,55 +193573,118 @@ | |
| 193606 | } |
| 193607 | } |
| 193608 | sqlite3_result_int64(ctx, n); |
| 193609 | } |
| 193610 | |
| 193611 | /* |
| 193612 | ** json_extract(JSON, PATH, ...) |
| 193613 | ** |
| 193614 | ** Return the element described by PATH. Return NULL if there is no |
| 193615 | ** PATH element. If there are multiple PATHs, then return a JSON array |
| 193616 | ** with the result from each path. Throw an error if the JSON or any PATH |
| 193617 | ** is malformed. |
| 193618 | */ |
| 193619 | static void jsonExtractFunc( |
| 193620 | sqlite3_context *ctx, |
| 193621 | int argc, |
| 193622 | sqlite3_value **argv |
| 193623 | ){ |
| 193624 | JsonParse *p; /* The parse */ |
| 193625 | JsonNode *pNode; |
| 193626 | const char *zPath; |
| 193627 | JsonString jx; |
| 193628 | int i; |
| 193629 | |
| 193630 | if( argc<2 ) return; |
| 193631 | p = jsonParseCached(ctx, argv, ctx); |
| 193632 | if( p==0 ) return; |
| 193633 | jsonInit(&jx, ctx); |
| 193634 | jsonAppendChar(&jx, '['); |
| 193635 | for(i=1; i<argc; i++){ |
| 193636 | zPath = (const char*)sqlite3_value_text(argv[i]); |
| 193637 | pNode = jsonLookup(p, zPath, 0, ctx); |
| 193638 | if( p->nErr ) break; |
| 193639 | if( argc>2 ){ |
| 193640 | jsonAppendSeparator(&jx); |
| 193641 | if( pNode ){ |
| 193642 | jsonRenderNode(pNode, &jx, 0); |
| 193643 | }else{ |
| 193644 | jsonAppendRaw(&jx, "null", 4); |
| 193645 | } |
| 193646 | }else if( pNode ){ |
| 193647 | jsonReturn(pNode, ctx, 0); |
| 193648 | } |
| 193649 | } |
| 193650 | if( argc>2 && i==argc ){ |
| 193651 | jsonAppendChar(&jx, ']'); |
| 193652 | jsonResult(&jx); |
| 193653 | sqlite3_result_subtype(ctx, JSON_SUBTYPE); |
| 193654 | } |
| 193655 | jsonReset(&jx); |
| 193656 | } |
| 193657 | |
| 193658 | /* This is the RFC 7396 MergePatch algorithm. |
| 193659 | */ |
| 193660 | static JsonNode *jsonMergePatch( |
| @@ -193746,11 +193776,11 @@ | |
| 193746 | ){ |
| 193747 | JsonParse x; /* The JSON that is being patched */ |
| 193748 | JsonParse y; /* The patch */ |
| 193749 | JsonNode *pResult; /* The result of the merge */ |
| 193750 | |
| 193751 | UNUSED_PARAM(argc); |
| 193752 | if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return; |
| 193753 | if( jsonParse(&y, ctx, (const char*)sqlite3_value_text(argv[1])) ){ |
| 193754 | jsonParseReset(&x); |
| 193755 | return; |
| 193756 | } |
| @@ -193867,11 +193897,11 @@ | |
| 193867 | zPath = (const char*)sqlite3_value_text(argv[i]); |
| 193868 | pNode = jsonLookup(&x, zPath, 0, ctx); |
| 193869 | if( x.nErr ) goto replace_err; |
| 193870 | if( pNode ){ |
| 193871 | assert( pNode->eU==0 || pNode->eU==1 || pNode->eU==4 ); |
| 193872 | json_testcase( pNode->eU!=0 && pNode->eU!=1 ); |
| 193873 | pNode->jnFlags |= (u8)JNODE_REPLACE; |
| 193874 | VVA( pNode->eU = 4 ); |
| 193875 | pNode->u.iReplace = i + 1; |
| 193876 | } |
| 193877 | } |
| @@ -193882,10 +193912,11 @@ | |
| 193882 | jsonReturnJson(x.aNode, ctx, argv); |
| 193883 | } |
| 193884 | replace_err: |
| 193885 | jsonParseReset(&x); |
| 193886 | } |
| 193887 | |
| 193888 | /* |
| 193889 | ** json_set(JSON, PATH, VALUE, ...) |
| 193890 | ** |
| 193891 | ** Set the value at PATH to VALUE. Create the PATH if it does not already |
| @@ -193905,11 +193936,11 @@ | |
| 193905 | JsonParse x; /* The parse */ |
| 193906 | JsonNode *pNode; |
| 193907 | const char *zPath; |
| 193908 | u32 i; |
| 193909 | int bApnd; |
| 193910 | int bIsSet = *(int*)sqlite3_user_data(ctx); |
| 193911 | |
| 193912 | if( argc<1 ) return; |
| 193913 | if( (argc&1)==0 ) { |
| 193914 | jsonWrongNumArgs(ctx, bIsSet ? "set" : "insert"); |
| 193915 | return; |
| @@ -193924,11 +193955,11 @@ | |
| 193924 | sqlite3_result_error_nomem(ctx); |
| 193925 | goto jsonSetDone; |
| 193926 | }else if( x.nErr ){ |
| 193927 | goto jsonSetDone; |
| 193928 | }else if( pNode && (bApnd || bIsSet) ){ |
| 193929 | json_testcase( pNode->eU!=0 && pNode->eU!=1 && pNode->eU!=4 ); |
| 193930 | assert( pNode->eU!=3 || pNode->eU!=5 ); |
| 193931 | VVA( pNode->eU = 4 ); |
| 193932 | pNode->jnFlags |= (u8)JNODE_REPLACE; |
| 193933 | pNode->u.iReplace = i + 1; |
| 193934 | } |
| @@ -193945,12 +193976,12 @@ | |
| 193945 | |
| 193946 | /* |
| 193947 | ** json_type(JSON) |
| 193948 | ** json_type(JSON, PATH) |
| 193949 | ** |
| 193950 | ** Return the top-level "type" of a JSON string. Throw an error if |
| 193951 | ** either the JSON or PATH inputs are not well-formed. |
| 193952 | */ |
| 193953 | static void jsonTypeFunc( |
| 193954 | sqlite3_context *ctx, |
| 193955 | int argc, |
| 193956 | sqlite3_value **argv |
| @@ -193982,11 +194013,11 @@ | |
| 193982 | sqlite3_context *ctx, |
| 193983 | int argc, |
| 193984 | sqlite3_value **argv |
| 193985 | ){ |
| 193986 | JsonParse *p; /* The parse */ |
| 193987 | UNUSED_PARAM(argc); |
| 193988 | p = jsonParseCached(ctx, argv, 0); |
| 193989 | sqlite3_result_int(ctx, p!=0); |
| 193990 | } |
| 193991 | |
| 193992 | |
| @@ -194002,11 +194033,11 @@ | |
| 194002 | sqlite3_context *ctx, |
| 194003 | int argc, |
| 194004 | sqlite3_value **argv |
| 194005 | ){ |
| 194006 | JsonString *pStr; |
| 194007 | UNUSED_PARAM(argc); |
| 194008 | pStr = (JsonString*)sqlite3_aggregate_context(ctx, sizeof(*pStr)); |
| 194009 | if( pStr ){ |
| 194010 | if( pStr->zBuf==0 ){ |
| 194011 | jsonInit(pStr, ctx); |
| 194012 | jsonAppendChar(pStr, '['); |
| @@ -194062,12 +194093,12 @@ | |
| 194062 | int inStr = 0; |
| 194063 | int nNest = 0; |
| 194064 | char *z; |
| 194065 | char c; |
| 194066 | JsonString *pStr; |
| 194067 | UNUSED_PARAM(argc); |
| 194068 | UNUSED_PARAM(argv); |
| 194069 | pStr = (JsonString*)sqlite3_aggregate_context(ctx, 0); |
| 194070 | #ifdef NEVER |
| 194071 | /* pStr is always non-NULL since jsonArrayStep() or jsonObjectStep() will |
| 194072 | ** always have been called to initalize it */ |
| 194073 | if( NEVER(!pStr) ) return; |
| @@ -194107,11 +194138,11 @@ | |
| 194107 | sqlite3_value **argv |
| 194108 | ){ |
| 194109 | JsonString *pStr; |
| 194110 | const char *z; |
| 194111 | u32 n; |
| 194112 | UNUSED_PARAM(argc); |
| 194113 | pStr = (JsonString*)sqlite3_aggregate_context(ctx, sizeof(*pStr)); |
| 194114 | if( pStr ){ |
| 194115 | if( pStr->zBuf==0 ){ |
| 194116 | jsonInit(pStr, ctx); |
| 194117 | jsonAppendChar(pStr, '{'); |
| @@ -194198,14 +194229,14 @@ | |
| 194198 | ** the last two columns in the table. Should this ever changes, be |
| 194199 | ** sure to update the xBestIndex method. */ |
| 194200 | #define JEACH_JSON 8 |
| 194201 | #define JEACH_ROOT 9 |
| 194202 | |
| 194203 | UNUSED_PARAM(pzErr); |
| 194204 | UNUSED_PARAM(argv); |
| 194205 | UNUSED_PARAM(argc); |
| 194206 | UNUSED_PARAM(pAux); |
| 194207 | rc = sqlite3_declare_vtab(db, |
| 194208 | "CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path," |
| 194209 | "json HIDDEN,root HIDDEN)"); |
| 194210 | if( rc==SQLITE_OK ){ |
| 194211 | pNew = *ppVtab = sqlite3_malloc( sizeof(*pNew) ); |
| @@ -194224,11 +194255,11 @@ | |
| 194224 | |
| 194225 | /* constructor for a JsonEachCursor object for json_each(). */ |
| 194226 | static int jsonEachOpenEach(sqlite3_vtab *p, sqlite3_vtab_cursor **ppCursor){ |
| 194227 | JsonEachCursor *pCur; |
| 194228 | |
| 194229 | UNUSED_PARAM(p); |
| 194230 | pCur = sqlite3_malloc( sizeof(*pCur) ); |
| 194231 | if( pCur==0 ) return SQLITE_NOMEM; |
| 194232 | memset(pCur, 0, sizeof(*pCur)); |
| 194233 | *ppCursor = &pCur->base; |
| 194234 | return SQLITE_OK; |
| @@ -194284,11 +194315,11 @@ | |
| 194284 | u32 iUp = p->sParse.aUp[p->i]; |
| 194285 | JsonNode *pUp = &p->sParse.aNode[iUp]; |
| 194286 | p->eType = pUp->eType; |
| 194287 | if( pUp->eType==JSON_ARRAY ){ |
| 194288 | assert( pUp->eU==0 || pUp->eU==3 ); |
| 194289 | json_testcase( pUp->eU==3 ); |
| 194290 | VVA( pUp->eU = 3 ); |
| 194291 | if( iUp==p->i-1 ){ |
| 194292 | pUp->u.iKey = 0; |
| 194293 | }else{ |
| 194294 | pUp->u.iKey++; |
| @@ -194471,11 +194502,11 @@ | |
| 194471 | const struct sqlite3_index_constraint *pConstraint; |
| 194472 | |
| 194473 | /* This implementation assumes that JSON and ROOT are the last two |
| 194474 | ** columns in the table */ |
| 194475 | assert( JEACH_ROOT == JEACH_JSON+1 ); |
| 194476 | UNUSED_PARAM(tab); |
| 194477 | aIdx[0] = aIdx[1] = -1; |
| 194478 | pConstraint = pIdxInfo->aConstraint; |
| 194479 | for(i=0; i<pIdxInfo->nConstraint; i++, pConstraint++){ |
| 194480 | int iCol; |
| 194481 | int iMask; |
| @@ -194527,12 +194558,12 @@ | |
| 194527 | JsonEachCursor *p = (JsonEachCursor*)cur; |
| 194528 | const char *z; |
| 194529 | const char *zRoot = 0; |
| 194530 | sqlite3_int64 n; |
| 194531 | |
| 194532 | UNUSED_PARAM(idxStr); |
| 194533 | UNUSED_PARAM(argc); |
| 194534 | jsonEachCursorReset(p); |
| 194535 | if( idxNum==0 ) return SQLITE_OK; |
| 194536 | z = (const char*)sqlite3_value_text(argv[0]); |
| 194537 | if( z==0 ) return SQLITE_OK; |
| 194538 | n = sqlite3_value_bytes(argv[0]); |
| @@ -194653,112 +194684,72 @@ | |
| 194653 | 0, /* xRelease */ |
| 194654 | 0, /* xRollbackTo */ |
| 194655 | 0 /* xShadowName */ |
| 194656 | }; |
| 194657 | #endif /* SQLITE_OMIT_VIRTUALTABLE */ |
| 194658 | |
| 194659 | /**************************************************************************** |
| 194660 | ** The following routines are the only publically visible identifiers in this |
| 194661 | ** file. Call the following routines in order to register the various SQL |
| 194662 | ** functions and the virtual table implemented by this file. |
| 194663 | ****************************************************************************/ |
| 194664 | |
| 194665 | SQLITE_PRIVATE int sqlite3Json1Init(sqlite3 *db){ |
| 194666 | int rc = SQLITE_OK; |
| 194667 | unsigned int i; |
| 194668 | static const struct { |
| 194669 | const char *zName; |
| 194670 | int nArg; |
| 194671 | int flag; |
| 194672 | void (*xFunc)(sqlite3_context*,int,sqlite3_value**); |
| 194673 | } aFunc[] = { |
| 194674 | { "json", 1, 0, jsonRemoveFunc }, |
| 194675 | { "json_array", -1, 0, jsonArrayFunc }, |
| 194676 | { "json_array_length", 1, 0, jsonArrayLengthFunc }, |
| 194677 | { "json_array_length", 2, 0, jsonArrayLengthFunc }, |
| 194678 | { "json_extract", -1, 0, jsonExtractFunc }, |
| 194679 | { "json_insert", -1, 0, jsonSetFunc }, |
| 194680 | { "json_object", -1, 0, jsonObjectFunc }, |
| 194681 | { "json_patch", 2, 0, jsonPatchFunc }, |
| 194682 | { "json_quote", 1, 0, jsonQuoteFunc }, |
| 194683 | { "json_remove", -1, 0, jsonRemoveFunc }, |
| 194684 | { "json_replace", -1, 0, jsonReplaceFunc }, |
| 194685 | { "json_set", -1, 1, jsonSetFunc }, |
| 194686 | { "json_type", 1, 0, jsonTypeFunc }, |
| 194687 | { "json_type", 2, 0, jsonTypeFunc }, |
| 194688 | { "json_valid", 1, 0, jsonValidFunc }, |
| 194689 | |
| 194690 | #if SQLITE_DEBUG |
| 194691 | /* DEBUG and TESTING functions */ |
| 194692 | { "json_parse", 1, 0, jsonParseFunc }, |
| 194693 | { "json_test1", 1, 0, jsonTest1Func }, |
| 194694 | #endif |
| 194695 | }; |
| 194696 | static const struct { |
| 194697 | const char *zName; |
| 194698 | int nArg; |
| 194699 | void (*xStep)(sqlite3_context*,int,sqlite3_value**); |
| 194700 | void (*xFinal)(sqlite3_context*); |
| 194701 | void (*xValue)(sqlite3_context*); |
| 194702 | } aAgg[] = { |
| 194703 | { "json_group_array", 1, |
| 194704 | jsonArrayStep, jsonArrayFinal, jsonArrayValue }, |
| 194705 | { "json_group_object", 2, |
| 194706 | jsonObjectStep, jsonObjectFinal, jsonObjectValue }, |
| 194707 | }; |
| 194708 | #ifndef SQLITE_OMIT_VIRTUALTABLE |
| 194709 | static const struct { |
| 194710 | const char *zName; |
| 194711 | sqlite3_module *pModule; |
| 194712 | } aMod[] = { |
| 194713 | { "json_each", &jsonEachModule }, |
| 194714 | { "json_tree", &jsonTreeModule }, |
| 194715 | }; |
| 194716 | #endif |
| 194717 | static const int enc = |
| 194718 | SQLITE_UTF8 | |
| 194719 | SQLITE_DETERMINISTIC | |
| 194720 | SQLITE_INNOCUOUS; |
| 194721 | for(i=0; i<sizeof(aFunc)/sizeof(aFunc[0]) && rc==SQLITE_OK; i++){ |
| 194722 | rc = sqlite3_create_function(db, aFunc[i].zName, aFunc[i].nArg, enc, |
| 194723 | (void*)&aFunc[i].flag, |
| 194724 | aFunc[i].xFunc, 0, 0); |
| 194725 | } |
| 194726 | #ifndef SQLITE_OMIT_WINDOWFUNC |
| 194727 | for(i=0; i<sizeof(aAgg)/sizeof(aAgg[0]) && rc==SQLITE_OK; i++){ |
| 194728 | rc = sqlite3_create_window_function(db, aAgg[i].zName, aAgg[i].nArg, |
| 194729 | SQLITE_SUBTYPE | enc, 0, |
| 194730 | aAgg[i].xStep, aAgg[i].xFinal, |
| 194731 | aAgg[i].xValue, jsonGroupInverse, 0); |
| 194732 | } |
| 194733 | #endif |
| 194734 | #ifndef SQLITE_OMIT_VIRTUALTABLE |
| 194735 | for(i=0; i<sizeof(aMod)/sizeof(aMod[0]) && rc==SQLITE_OK; i++){ |
| 194736 | rc = sqlite3_create_module(db, aMod[i].zName, aMod[i].pModule, 0); |
| 194737 | } |
| 194738 | #endif |
| 194739 | return rc; |
| 194740 | } |
| 194741 | |
| 194742 | |
| 194743 | #ifndef SQLITE_CORE |
| 194744 | #ifdef _WIN32 |
| 194745 | __declspec(dllexport) |
| 194746 | #endif |
| 194747 | SQLITE_API int sqlite3_json_init( |
| 194748 | sqlite3 *db, |
| 194749 | char **pzErrMsg, |
| 194750 | const sqlite3_api_routines *pApi |
| 194751 | ){ |
| 194752 | SQLITE_EXTENSION_INIT2(pApi); |
| 194753 | (void)pzErrMsg; /* Unused parameter */ |
| 194754 | return sqlite3Json1Init(db); |
| 194755 | } |
| 194756 | #endif |
| 194757 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_JSON1) */ |
| 194758 | |
| 194759 | /************** End of json1.c ***********************************************/ |
| 194760 | /************** Begin file rtree.c *******************************************/ |
| 194761 | /* |
| 194762 | ** 2001 September 15 |
| 194763 | ** |
| 194764 | ** The author disclaims copyright to this source code. In place of |
| @@ -199188,15 +199179,11 @@ | |
| 199188 | # define GEODEBUG(X) if(geo_debug)printf X |
| 199189 | #else |
| 199190 | # define GEODEBUG(X) |
| 199191 | #endif |
| 199192 | |
| 199193 | #ifndef JSON_NULL /* The following stuff repeats things found in json1 */ |
| 199194 | /* |
| 199195 | ** Versions of isspace(), isalnum() and isdigit() to which it is safe |
| 199196 | ** to pass signed char values. |
| 199197 | */ |
| 199198 | #ifdef sqlite3Isdigit |
| 199199 | /* Use the SQLite core versions if this routine is part of the |
| 199200 | ** SQLite amalgamation */ |
| 199201 | # define safe_isdigit(x) sqlite3Isdigit(x) |
| 199202 | # define safe_isalnum(x) sqlite3Isalnum(x) |
| @@ -199207,10 +199194,11 @@ | |
| 199207 | # define safe_isdigit(x) isdigit((unsigned char)(x)) |
| 199208 | # define safe_isalnum(x) isalnum((unsigned char)(x)) |
| 199209 | # define safe_isxdigit(x) isxdigit((unsigned char)(x)) |
| 199210 | #endif |
| 199211 | |
| 199212 | /* |
| 199213 | ** Growing our own isspace() routine this way is twice as fast as |
| 199214 | ** the library isspace() function. |
| 199215 | */ |
| 199216 | static const char geopolyIsSpace[] = { |
| @@ -199229,11 +199217,11 @@ | |
| 199229 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 199230 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 199231 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 199232 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 199233 | }; |
| 199234 | #define safe_isspace(x) (geopolyIsSpace[(unsigned char)x]) |
| 199235 | #endif /* JSON NULL - back to original code */ |
| 199236 | |
| 199237 | /* Compiler and version */ |
| 199238 | #ifndef GCC_VERSION |
| 199239 | #if defined(__GNUC__) && !defined(SQLITE_DISABLE_INTRINSIC) |
| @@ -199318,11 +199306,11 @@ | |
| 199318 | a[2] = t; |
| 199319 | } |
| 199320 | |
| 199321 | /* Skip whitespace. Return the next non-whitespace character. */ |
| 199322 | static char geopolySkipSpace(GeoParse *p){ |
| 199323 | while( safe_isspace(p->z[0]) ) p->z++; |
| 199324 | return p->z[0]; |
| 199325 | } |
| 199326 | |
| 199327 | /* Parse out a number. Write the value into *pVal if pVal!=0. |
| 199328 | ** return non-zero on success and zero if the next token is not a number. |
| @@ -233346,11 +233334,11 @@ | |
| 233346 | int nArg, /* Number of args */ |
| 233347 | sqlite3_value **apUnused /* Function arguments */ |
| 233348 | ){ |
| 233349 | assert( nArg==0 ); |
| 233350 | UNUSED_PARAM2(nArg, apUnused); |
| 233351 | sqlite3_result_text(pCtx, "fts5: 2022-01-06 17:13:56 2d6a16caa7d28ad5c766036b2eb6c2020683fcc9389b3c7df2013739929dd36f", -1, SQLITE_TRANSIENT); |
| 233352 | } |
| 233353 | |
| 233354 | /* |
| 233355 | ** Return true if zName is the extension on one of the shadow tables used |
| 233356 | ** by this module. |
| 233357 |
| --- extsrc/sqlite3.c | |
| +++ extsrc/sqlite3.c | |
| @@ -452,11 +452,11 @@ | |
| 452 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 453 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 454 | */ |
| 455 | #define SQLITE_VERSION "3.38.0" |
| 456 | #define SQLITE_VERSION_NUMBER 3038000 |
| 457 | #define SQLITE_SOURCE_ID "2022-01-12 00:28:12 adebb9d7478d092f16fb0ef7d5246ce152b166479d6f949110b5878b89ea2cec" |
| 458 | |
| 459 | /* |
| 460 | ** CAPI3REF: Run-Time Library Version Numbers |
| 461 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 462 | ** |
| @@ -13593,14 +13593,14 @@ | |
| 13593 | #define TK_DETACH 40 |
| 13594 | #define TK_EACH 41 |
| 13595 | #define TK_FAIL 42 |
| 13596 | #define TK_OR 43 |
| 13597 | #define TK_AND 44 |
| 13598 | #define TK_IS 45 |
| 13599 | #define TK_MATCH 46 |
| 13600 | #define TK_LIKE_KW 47 |
| 13601 | #define TK_BETWEEN 48 |
| 13602 | #define TK_IN 49 |
| 13603 | #define TK_ISNULL 50 |
| 13604 | #define TK_NOTNULL 51 |
| 13605 | #define TK_NE 52 |
| 13606 | #define TK_EQ 53 |
| @@ -13660,82 +13660,83 @@ | |
| 13660 | #define TK_MINUS 107 |
| 13661 | #define TK_STAR 108 |
| 13662 | #define TK_SLASH 109 |
| 13663 | #define TK_REM 110 |
| 13664 | #define TK_CONCAT 111 |
| 13665 | #define TK_PTR 112 |
| 13666 | #define TK_COLLATE 113 |
| 13667 | #define TK_BITNOT 114 |
| 13668 | #define TK_ON 115 |
| 13669 | #define TK_INDEXED 116 |
| 13670 | #define TK_STRING 117 |
| 13671 | #define TK_JOIN_KW 118 |
| 13672 | #define TK_CONSTRAINT 119 |
| 13673 | #define TK_DEFAULT 120 |
| 13674 | #define TK_NULL 121 |
| 13675 | #define TK_PRIMARY 122 |
| 13676 | #define TK_UNIQUE 123 |
| 13677 | #define TK_CHECK 124 |
| 13678 | #define TK_REFERENCES 125 |
| 13679 | #define TK_AUTOINCR 126 |
| 13680 | #define TK_INSERT 127 |
| 13681 | #define TK_DELETE 128 |
| 13682 | #define TK_UPDATE 129 |
| 13683 | #define TK_SET 130 |
| 13684 | #define TK_DEFERRABLE 131 |
| 13685 | #define TK_FOREIGN 132 |
| 13686 | #define TK_DROP 133 |
| 13687 | #define TK_UNION 134 |
| 13688 | #define TK_ALL 135 |
| 13689 | #define TK_EXCEPT 136 |
| 13690 | #define TK_INTERSECT 137 |
| 13691 | #define TK_SELECT 138 |
| 13692 | #define TK_VALUES 139 |
| 13693 | #define TK_DISTINCT 140 |
| 13694 | #define TK_DOT 141 |
| 13695 | #define TK_FROM 142 |
| 13696 | #define TK_JOIN 143 |
| 13697 | #define TK_USING 144 |
| 13698 | #define TK_ORDER 145 |
| 13699 | #define TK_GROUP 146 |
| 13700 | #define TK_HAVING 147 |
| 13701 | #define TK_LIMIT 148 |
| 13702 | #define TK_WHERE 149 |
| 13703 | #define TK_RETURNING 150 |
| 13704 | #define TK_INTO 151 |
| 13705 | #define TK_NOTHING 152 |
| 13706 | #define TK_FLOAT 153 |
| 13707 | #define TK_BLOB 154 |
| 13708 | #define TK_INTEGER 155 |
| 13709 | #define TK_VARIABLE 156 |
| 13710 | #define TK_CASE 157 |
| 13711 | #define TK_WHEN 158 |
| 13712 | #define TK_THEN 159 |
| 13713 | #define TK_ELSE 160 |
| 13714 | #define TK_INDEX 161 |
| 13715 | #define TK_ALTER 162 |
| 13716 | #define TK_ADD 163 |
| 13717 | #define TK_WINDOW 164 |
| 13718 | #define TK_OVER 165 |
| 13719 | #define TK_FILTER 166 |
| 13720 | #define TK_COLUMN 167 |
| 13721 | #define TK_AGG_FUNCTION 168 |
| 13722 | #define TK_AGG_COLUMN 169 |
| 13723 | #define TK_TRUEFALSE 170 |
| 13724 | #define TK_ISNOT 171 |
| 13725 | #define TK_FUNCTION 172 |
| 13726 | #define TK_UMINUS 173 |
| 13727 | #define TK_UPLUS 174 |
| 13728 | #define TK_TRUTH 175 |
| 13729 | #define TK_REGISTER 176 |
| 13730 | #define TK_VECTOR 177 |
| 13731 | #define TK_SELECT_COLUMN 178 |
| 13732 | #define TK_IF_NULL_ROW 179 |
| 13733 | #define TK_ASTERISK 180 |
| 13734 | #define TK_SPAN 181 |
| 13735 | #define TK_ERROR 182 |
| 13736 | #define TK_SPACE 183 |
| 13737 | #define TK_ILLEGAL 184 |
| 13738 | |
| 13739 | /************** End of parse.h ***********************************************/ |
| 13740 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 13741 | #include <stdio.h> |
| 13742 | #include <stdlib.h> |
| @@ -15342,15 +15343,15 @@ | |
| 15343 | #define OP_Multiply 108 /* same as TK_STAR, synopsis: r[P3]=r[P1]*r[P2] */ |
| 15344 | #define OP_Divide 109 /* same as TK_SLASH, synopsis: r[P3]=r[P2]/r[P1] */ |
| 15345 | #define OP_Remainder 110 /* same as TK_REM, synopsis: r[P3]=r[P2]%r[P1] */ |
| 15346 | #define OP_Concat 111 /* same as TK_CONCAT, synopsis: r[P3]=r[P2]+r[P1] */ |
| 15347 | #define OP_OpenWrite 112 /* synopsis: root=P2 iDb=P3 */ |
| 15348 | #define OP_OpenDup 113 |
| 15349 | #define OP_BitNot 114 /* same as TK_BITNOT, synopsis: r[P2]= ~r[P1] */ |
| 15350 | #define OP_OpenAutoindex 115 /* synopsis: nColumn=P2 */ |
| 15351 | #define OP_OpenEphemeral 116 /* synopsis: nColumn=P2 */ |
| 15352 | #define OP_String8 117 /* same as TK_STRING, synopsis: r[P2]='P4' */ |
| 15353 | #define OP_SorterOpen 118 |
| 15354 | #define OP_SequenceTest 119 /* synopsis: if( cursor[P1].ctr++ ) pc = P2 */ |
| 15355 | #define OP_OpenPseudo 120 /* synopsis: P3 columns in r[P2] */ |
| 15356 | #define OP_Close 121 |
| 15357 | #define OP_ColumnsUsed 122 |
| @@ -15381,12 +15382,12 @@ | |
| 15382 | #define OP_SqlExec 147 |
| 15383 | #define OP_ParseSchema 148 |
| 15384 | #define OP_LoadAnalysis 149 |
| 15385 | #define OP_DropTable 150 |
| 15386 | #define OP_DropIndex 151 |
| 15387 | #define OP_DropTrigger 152 |
| 15388 | #define OP_Real 153 /* same as TK_FLOAT, synopsis: r[P2]=P4 */ |
| 15389 | #define OP_IntegrityCk 154 |
| 15390 | #define OP_RowSetAdd 155 /* synopsis: rowset(P1)=r[P2] */ |
| 15391 | #define OP_Param 156 |
| 15392 | #define OP_FkCounter 157 /* synopsis: fkctr[P1]+=P2 */ |
| 15393 | #define OP_MemMax 158 /* synopsis: r[P1]=max(r[P1],r[P2]) */ |
| @@ -15439,16 +15440,16 @@ | |
| 15440 | /* 72 */ 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x00, 0x00,\ |
| 15441 | /* 80 */ 0x10, 0x10, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02,\ |
| 15442 | /* 88 */ 0x00, 0x00, 0x12, 0x1e, 0x20, 0x00, 0x00, 0x00,\ |
| 15443 | /* 96 */ 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x26, 0x26,\ |
| 15444 | /* 104 */ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,\ |
| 15445 | /* 112 */ 0x00, 0x00, 0x12, 0x00, 0x00, 0x10, 0x00, 0x00,\ |
| 15446 | /* 120 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00,\ |
| 15447 | /* 128 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,\ |
| 15448 | /* 136 */ 0x00, 0x04, 0x04, 0x00, 0x00, 0x10, 0x00, 0x10,\ |
| 15449 | /* 144 */ 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,\ |
| 15450 | /* 152 */ 0x00, 0x10, 0x00, 0x06, 0x10, 0x00, 0x04, 0x1a,\ |
| 15451 | /* 160 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ |
| 15452 | /* 168 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,\ |
| 15453 | /* 176 */ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ |
| 15454 | } |
| 15455 | |
| @@ -16928,11 +16929,11 @@ | |
| 16929 | ** Used to create an aggregate function definition implemented by |
| 16930 | ** the C functions xStep and xFinal. The first four parameters |
| 16931 | ** are interpreted in the same way as the first 4 parameters to |
| 16932 | ** FUNCTION(). |
| 16933 | ** |
| 16934 | ** WAGGREGATE(zName, nArg, iArg, xStep, xFinal, xValue, xInverse) |
| 16935 | ** Used to create an aggregate function definition implemented by |
| 16936 | ** the C functions xStep and xFinal. The first four parameters |
| 16937 | ** are interpreted in the same way as the first 4 parameters to |
| 16938 | ** FUNCTION(). |
| 16939 | ** |
| @@ -16955,10 +16956,14 @@ | |
| 16956 | {nArg, SQLITE_FUNC_BUILTIN|SQLITE_UTF8|SQLITE_DIRECTONLY|SQLITE_FUNC_UNSAFE, \ |
| 16957 | SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, 0, #zName, {0} } |
| 16958 | #define MFUNCTION(zName, nArg, xPtr, xFunc) \ |
| 16959 | {nArg, SQLITE_FUNC_BUILTIN|SQLITE_FUNC_CONSTANT|SQLITE_UTF8, \ |
| 16960 | xPtr, 0, xFunc, 0, 0, 0, #zName, {0} } |
| 16961 | #define JFUNCTION(zName, nArg, iArg, xFunc) \ |
| 16962 | {nArg, SQLITE_FUNC_BUILTIN|SQLITE_DETERMINISTIC|SQLITE_INNOCUOUS|\ |
| 16963 | SQLITE_FUNC_CONSTANT|SQLITE_UTF8, \ |
| 16964 | SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, 0, #zName, {0} } |
| 16965 | #define INLINE_FUNC(zName, nArg, iArg, mFlags) \ |
| 16966 | {nArg, SQLITE_FUNC_BUILTIN|\ |
| 16967 | SQLITE_UTF8|SQLITE_FUNC_INLINE|SQLITE_FUNC_CONSTANT|(mFlags), \ |
| 16968 | SQLITE_INT_TO_PTR(iArg), 0, noopFunc, 0, 0, 0, #zName, {0} } |
| 16969 | #define TEST_FUNC(zName, nArg, iArg, mFlags) \ |
| @@ -19679,11 +19684,15 @@ | |
| 19684 | SQLITE_PRIVATE void sqlite3InsertBuiltinFuncs(FuncDef*,int); |
| 19685 | SQLITE_PRIVATE FuncDef *sqlite3FindFunction(sqlite3*,const char*,int,u8,u8); |
| 19686 | SQLITE_PRIVATE void sqlite3QuoteValue(StrAccum*,sqlite3_value*); |
| 19687 | SQLITE_PRIVATE void sqlite3RegisterBuiltinFunctions(void); |
| 19688 | SQLITE_PRIVATE void sqlite3RegisterDateTimeFunctions(void); |
| 19689 | SQLITE_PRIVATE void sqlite3RegisterJsonFunctions(void); |
| 19690 | SQLITE_PRIVATE void sqlite3RegisterPerConnectionBuiltinFunctions(sqlite3*); |
| 19691 | #if !defined(SQLITE_OMIT_VIRTUALTABLE) && !defined(SQLITE_OMIT_JSON) |
| 19692 | SQLITE_PRIVATE int sqlite3JsonTableFunctions(sqlite3*); |
| 19693 | #endif |
| 19694 | SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3*); |
| 19695 | SQLITE_PRIVATE int sqlite3SafetyCheckSickOrOk(sqlite3*); |
| 19696 | SQLITE_PRIVATE void sqlite3ChangeCookie(Parse*, int); |
| 19697 | SQLITE_PRIVATE With *sqlite3WithDup(sqlite3 *db, With *p); |
| 19698 | |
| @@ -20691,10 +20700,13 @@ | |
| 20700 | #ifdef SQLITE_DISABLE_FTS4_DEFERRED |
| 20701 | "DISABLE_FTS4_DEFERRED", |
| 20702 | #endif |
| 20703 | #ifdef SQLITE_DISABLE_INTRINSIC |
| 20704 | "DISABLE_INTRINSIC", |
| 20705 | #endif |
| 20706 | #ifdef SQLITE_DISABLE_JSON |
| 20707 | "DISABLE_JSON", |
| 20708 | #endif |
| 20709 | #ifdef SQLITE_DISABLE_LFS |
| 20710 | "DISABLE_LFS", |
| 20711 | #endif |
| 20712 | #ifdef SQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS |
| @@ -20770,13 +20782,10 @@ | |
| 20782 | "ENABLE_ICU", |
| 20783 | #endif |
| 20784 | #ifdef SQLITE_ENABLE_IOTRACE |
| 20785 | "ENABLE_IOTRACE", |
| 20786 | #endif |
| 20787 | #ifdef SQLITE_ENABLE_LOAD_EXTENSION |
| 20788 | "ENABLE_LOAD_EXTENSION", |
| 20789 | #endif |
| 20790 | #ifdef SQLITE_ENABLE_LOCKING_STYLE |
| 20791 | "ENABLE_LOCKING_STYLE=" CTIMEOPT_VAL(SQLITE_ENABLE_LOCKING_STYLE), |
| @@ -34265,15 +34274,15 @@ | |
| 34274 | /* 108 */ "Multiply" OpHelp("r[P3]=r[P1]*r[P2]"), |
| 34275 | /* 109 */ "Divide" OpHelp("r[P3]=r[P2]/r[P1]"), |
| 34276 | /* 110 */ "Remainder" OpHelp("r[P3]=r[P2]%r[P1]"), |
| 34277 | /* 111 */ "Concat" OpHelp("r[P3]=r[P2]+r[P1]"), |
| 34278 | /* 112 */ "OpenWrite" OpHelp("root=P2 iDb=P3"), |
| 34279 | /* 113 */ "OpenDup" OpHelp(""), |
| 34280 | /* 114 */ "BitNot" OpHelp("r[P2]= ~r[P1]"), |
| 34281 | /* 115 */ "OpenAutoindex" OpHelp("nColumn=P2"), |
| 34282 | /* 116 */ "OpenEphemeral" OpHelp("nColumn=P2"), |
| 34283 | /* 117 */ "String8" OpHelp("r[P2]='P4'"), |
| 34284 | /* 118 */ "SorterOpen" OpHelp(""), |
| 34285 | /* 119 */ "SequenceTest" OpHelp("if( cursor[P1].ctr++ ) pc = P2"), |
| 34286 | /* 120 */ "OpenPseudo" OpHelp("P3 columns in r[P2]"), |
| 34287 | /* 121 */ "Close" OpHelp(""), |
| 34288 | /* 122 */ "ColumnsUsed" OpHelp(""), |
| @@ -34304,12 +34313,12 @@ | |
| 34313 | /* 147 */ "SqlExec" OpHelp(""), |
| 34314 | /* 148 */ "ParseSchema" OpHelp(""), |
| 34315 | /* 149 */ "LoadAnalysis" OpHelp(""), |
| 34316 | /* 150 */ "DropTable" OpHelp(""), |
| 34317 | /* 151 */ "DropIndex" OpHelp(""), |
| 34318 | /* 152 */ "DropTrigger" OpHelp(""), |
| 34319 | /* 153 */ "Real" OpHelp("r[P2]=P4"), |
| 34320 | /* 154 */ "IntegrityCk" OpHelp(""), |
| 34321 | /* 155 */ "RowSetAdd" OpHelp("rowset(P1)=r[P2]"), |
| 34322 | /* 156 */ "Param" OpHelp(""), |
| 34323 | /* 157 */ "FkCounter" OpHelp("fkctr[P1]+=P2"), |
| 34324 | /* 158 */ "MemMax" OpHelp("r[P1]=max(r[P1],r[P2])"), |
| @@ -58435,10 +58444,11 @@ | |
| 58444 | Pager *pPager, /* The pager open on the database file */ |
| 58445 | Pgno pgno, /* Page number to fetch */ |
| 58446 | DbPage **ppPage, /* Write a pointer to the page here */ |
| 58447 | int flags /* PAGER_GET_XXX flags */ |
| 58448 | ){ |
| 58449 | /* printf("PAGE %u\n", pgno); fflush(stdout); */ |
| 58450 | return pPager->xGet(pPager, pgno, ppPage, flags); |
| 58451 | } |
| 58452 | |
| 58453 | /* |
| 58454 | ** Acquire a page if it is already in the in-memory cache. Do |
| @@ -72528,11 +72538,11 @@ | |
| 72538 | assert( sqlite3PagerIswriteable(pPage->pDbPage) ); |
| 72539 | assert( sqlite3_mutex_held(pPage->pBt->mutex) ); |
| 72540 | assert( pPage->nFree>=0 ); |
| 72541 | data = pPage->aData; |
| 72542 | ptr = &pPage->aCellIdx[2*idx]; |
| 72543 | assert( pPage->pBt->usableSize > (u32)(ptr-data) ); |
| 72544 | pc = get2byte(ptr); |
| 72545 | hdr = pPage->hdrOffset; |
| 72546 | testcase( pc==(u32)get2byte(&data[hdr+5]) ); |
| 72547 | testcase( pc+sz==pPage->pBt->usableSize ); |
| 72548 | if( pc+sz > pPage->pBt->usableSize ){ |
| @@ -113443,11 +113453,11 @@ | |
| 113453 | Returning *pReturning = pParse->u1.pReturning; |
| 113454 | int addrRewind; |
| 113455 | int i; |
| 113456 | int reg; |
| 113457 | |
| 113458 | if( NEVER(pReturning->nRetCol==0) ){ |
| 113459 | assert( CORRUPT_DB ); |
| 113460 | }else{ |
| 113461 | sqlite3VdbeAddOp0(v, OP_FkCheck); |
| 113462 | addrRewind = |
| 113463 | sqlite3VdbeAddOp1(v, OP_Rewind, pReturning->iRetCur); |
| @@ -113539,11 +113549,11 @@ | |
| 113549 | } |
| 113550 | } |
| 113551 | |
| 113552 | if( pParse->bReturning ){ |
| 113553 | Returning *pRet = pParse->u1.pReturning; |
| 113554 | if( NEVER(pRet->nRetCol==0) ){ |
| 113555 | assert( CORRUPT_DB ); |
| 113556 | }else{ |
| 113557 | sqlite3VdbeAddOp2(v, OP_OpenEphemeral, pRet->iRetCur, pRet->nRetCol); |
| 113558 | } |
| 113559 | } |
| @@ -119261,11 +119271,10 @@ | |
| 119271 | for(i=0; i<nDef; i++){ |
| 119272 | FuncDef *pOther; |
| 119273 | const char *zName = aDef[i].zName; |
| 119274 | int nName = sqlite3Strlen30(zName); |
| 119275 | int h = SQLITE_FUNC_HASH(zName[0], nName); |
| 119276 | assert( aDef[i].funcFlags & SQLITE_FUNC_BUILTIN ); |
| 119277 | pOther = sqlite3FunctionSearch(h, zName); |
| 119278 | if( pOther ){ |
| 119279 | assert( pOther!=&aDef[i] && pOther->pNext!=&aDef[i] ); |
| 119280 | aDef[i].pNext = pOther->pNext; |
| @@ -120524,10 +120533,21 @@ | |
| 120533 | ** V. The returned value is one of SQLITE_INTEGER, SQLITE_FLOAT, |
| 120534 | ** SQLITE_TEXT, SQLITE_BLOB, or SQLITE_NULL. */ |
| 120535 | sqlite3_result_text(context, azType[i], -1, SQLITE_STATIC); |
| 120536 | } |
| 120537 | |
| 120538 | /* subtype(X) |
| 120539 | ** |
| 120540 | ** Return the subtype of X |
| 120541 | */ |
| 120542 | static void subtypeFunc( |
| 120543 | sqlite3_context *context, |
| 120544 | int argc, |
| 120545 | sqlite3_value **argv |
| 120546 | ){ |
| 120547 | sqlite3_result_int(context, sqlite3_value_subtype(argv[0])); |
| 120548 | } |
| 120549 | |
| 120550 | /* |
| 120551 | ** Implementation of the length() function |
| 120552 | */ |
| 120553 | static void lengthFunc( |
| @@ -120685,11 +120705,11 @@ | |
| 120705 | sqlite3_result_error_nomem(context); |
| 120706 | goto endInstr; |
| 120707 | } |
| 120708 | |
| 120709 | /* |
| 120710 | ** Implementation of the printf() (a.k.a. format()) SQL function. |
| 120711 | */ |
| 120712 | static void printfFunc( |
| 120713 | sqlite3_context *context, |
| 120714 | int argc, |
| 120715 | sqlite3_value **argv |
| @@ -122673,13 +122693,15 @@ | |
| 122693 | FUNCTION(max, -1, 1, 1, minmaxFunc ), |
| 122694 | FUNCTION(max, 0, 1, 1, 0 ), |
| 122695 | WAGGREGATE(max, 1, 1, 1, minmaxStep, minMaxFinalize, minMaxValue, 0, |
| 122696 | SQLITE_FUNC_MINMAX|SQLITE_FUNC_ANYORDER ), |
| 122697 | FUNCTION2(typeof, 1, 0, 0, typeofFunc, SQLITE_FUNC_TYPEOF), |
| 122698 | FUNCTION2(subtype, 1, 0, 0, subtypeFunc, SQLITE_FUNC_TYPEOF), |
| 122699 | FUNCTION2(length, 1, 0, 0, lengthFunc, SQLITE_FUNC_LENGTH), |
| 122700 | FUNCTION(instr, 2, 0, 0, instrFunc ), |
| 122701 | FUNCTION(printf, -1, 0, 0, printfFunc ), |
| 122702 | FUNCTION(format, -1, 0, 0, printfFunc ), |
| 122703 | FUNCTION(unicode, 1, 0, 0, unicodeFunc ), |
| 122704 | FUNCTION(char, -1, 0, 0, charFunc ), |
| 122705 | FUNCTION(abs, 1, 0, 0, absFunc ), |
| 122706 | #ifndef SQLITE_OMIT_FLOATING_POINT |
| 122707 | FUNCTION(round, 1, 0, 0, roundFunc ), |
| @@ -122774,10 +122796,11 @@ | |
| 122796 | #ifndef SQLITE_OMIT_ALTERTABLE |
| 122797 | sqlite3AlterFunctions(); |
| 122798 | #endif |
| 122799 | sqlite3WindowFunctions(); |
| 122800 | sqlite3RegisterDateTimeFunctions(); |
| 122801 | sqlite3RegisterJsonFunctions(); |
| 122802 | sqlite3InsertBuiltinFuncs(aBuiltinFunc, ArraySize(aBuiltinFunc)); |
| 122803 | |
| 122804 | #if 0 /* Enable to print out how the built-in functions are hashed */ |
| 122805 | { |
| 122806 | int i; |
| @@ -160516,14 +160539,14 @@ | |
| 160539 | #define TK_DETACH 40 |
| 160540 | #define TK_EACH 41 |
| 160541 | #define TK_FAIL 42 |
| 160542 | #define TK_OR 43 |
| 160543 | #define TK_AND 44 |
| 160544 | #define TK_IS 45 |
| 160545 | #define TK_MATCH 46 |
| 160546 | #define TK_LIKE_KW 47 |
| 160547 | #define TK_BETWEEN 48 |
| 160548 | #define TK_IN 49 |
| 160549 | #define TK_ISNULL 50 |
| 160550 | #define TK_NOTNULL 51 |
| 160551 | #define TK_NE 52 |
| 160552 | #define TK_EQ 53 |
| @@ -160583,82 +160606,83 @@ | |
| 160606 | #define TK_MINUS 107 |
| 160607 | #define TK_STAR 108 |
| 160608 | #define TK_SLASH 109 |
| 160609 | #define TK_REM 110 |
| 160610 | #define TK_CONCAT 111 |
| 160611 | #define TK_PTR 112 |
| 160612 | #define TK_COLLATE 113 |
| 160613 | #define TK_BITNOT 114 |
| 160614 | #define TK_ON 115 |
| 160615 | #define TK_INDEXED 116 |
| 160616 | #define TK_STRING 117 |
| 160617 | #define TK_JOIN_KW 118 |
| 160618 | #define TK_CONSTRAINT 119 |
| 160619 | #define TK_DEFAULT 120 |
| 160620 | #define TK_NULL 121 |
| 160621 | #define TK_PRIMARY 122 |
| 160622 | #define TK_UNIQUE 123 |
| 160623 | #define TK_CHECK 124 |
| 160624 | #define TK_REFERENCES 125 |
| 160625 | #define TK_AUTOINCR 126 |
| 160626 | #define TK_INSERT 127 |
| 160627 | #define TK_DELETE 128 |
| 160628 | #define TK_UPDATE 129 |
| 160629 | #define TK_SET 130 |
| 160630 | #define TK_DEFERRABLE 131 |
| 160631 | #define TK_FOREIGN 132 |
| 160632 | #define TK_DROP 133 |
| 160633 | #define TK_UNION 134 |
| 160634 | #define TK_ALL 135 |
| 160635 | #define TK_EXCEPT 136 |
| 160636 | #define TK_INTERSECT 137 |
| 160637 | #define TK_SELECT 138 |
| 160638 | #define TK_VALUES 139 |
| 160639 | #define TK_DISTINCT 140 |
| 160640 | #define TK_DOT 141 |
| 160641 | #define TK_FROM 142 |
| 160642 | #define TK_JOIN 143 |
| 160643 | #define TK_USING 144 |
| 160644 | #define TK_ORDER 145 |
| 160645 | #define TK_GROUP 146 |
| 160646 | #define TK_HAVING 147 |
| 160647 | #define TK_LIMIT 148 |
| 160648 | #define TK_WHERE 149 |
| 160649 | #define TK_RETURNING 150 |
| 160650 | #define TK_INTO 151 |
| 160651 | #define TK_NOTHING 152 |
| 160652 | #define TK_FLOAT 153 |
| 160653 | #define TK_BLOB 154 |
| 160654 | #define TK_INTEGER 155 |
| 160655 | #define TK_VARIABLE 156 |
| 160656 | #define TK_CASE 157 |
| 160657 | #define TK_WHEN 158 |
| 160658 | #define TK_THEN 159 |
| 160659 | #define TK_ELSE 160 |
| 160660 | #define TK_INDEX 161 |
| 160661 | #define TK_ALTER 162 |
| 160662 | #define TK_ADD 163 |
| 160663 | #define TK_WINDOW 164 |
| 160664 | #define TK_OVER 165 |
| 160665 | #define TK_FILTER 166 |
| 160666 | #define TK_COLUMN 167 |
| 160667 | #define TK_AGG_FUNCTION 168 |
| 160668 | #define TK_AGG_COLUMN 169 |
| 160669 | #define TK_TRUEFALSE 170 |
| 160670 | #define TK_ISNOT 171 |
| 160671 | #define TK_FUNCTION 172 |
| 160672 | #define TK_UMINUS 173 |
| 160673 | #define TK_UPLUS 174 |
| 160674 | #define TK_TRUTH 175 |
| 160675 | #define TK_REGISTER 176 |
| 160676 | #define TK_VECTOR 177 |
| 160677 | #define TK_SELECT_COLUMN 178 |
| 160678 | #define TK_IF_NULL_ROW 179 |
| 160679 | #define TK_ASTERISK 180 |
| 160680 | #define TK_SPAN 181 |
| 160681 | #define TK_ERROR 182 |
| 160682 | #define TK_SPACE 183 |
| 160683 | #define TK_ILLEGAL 184 |
| 160684 | #endif |
| 160685 | /**************** End token definitions ***************************************/ |
| 160686 | |
| 160687 | /* The next sections is a series of control #defines. |
| 160688 | ** various aspects of the generated parser. |
| @@ -160714,34 +160738,34 @@ | |
| 160738 | #ifndef INTERFACE |
| 160739 | # define INTERFACE 1 |
| 160740 | #endif |
| 160741 | /************* Begin control #defines *****************************************/ |
| 160742 | #define YYCODETYPE unsigned short int |
| 160743 | #define YYNOCODE 319 |
| 160744 | #define YYACTIONTYPE unsigned short int |
| 160745 | #define YYWILDCARD 101 |
| 160746 | #define sqlite3ParserTOKENTYPE Token |
| 160747 | typedef union { |
| 160748 | int yyinit; |
| 160749 | sqlite3ParserTOKENTYPE yy0; |
| 160750 | TriggerStep* yy33; |
| 160751 | Window* yy41; |
| 160752 | Select* yy47; |
| 160753 | SrcList* yy131; |
| 160754 | struct TrigEvent yy180; |
| 160755 | struct {int value; int mask;} yy231; |
| 160756 | IdList* yy254; |
| 160757 | u32 yy285; |
| 160758 | ExprList* yy322; |
| 160759 | Cte* yy385; |
| 160760 | int yy394; |
| 160761 | Upsert* yy444; |
| 160762 | u8 yy516; |
| 160763 | With* yy521; |
| 160764 | const char* yy522; |
| 160765 | Expr* yy528; |
| 160766 | struct FrameBound yy595; |
| 160767 | } YYMINORTYPE; |
| 160768 | #ifndef YYSTACKDEPTH |
| 160769 | #define YYSTACKDEPTH 100 |
| 160770 | #endif |
| 160771 | #define sqlite3ParserARG_SDECL |
| @@ -160753,22 +160777,22 @@ | |
| 160777 | #define sqlite3ParserCTX_PDECL ,Parse *pParse |
| 160778 | #define sqlite3ParserCTX_PARAM ,pParse |
| 160779 | #define sqlite3ParserCTX_FETCH Parse *pParse=yypParser->pParse; |
| 160780 | #define sqlite3ParserCTX_STORE yypParser->pParse=pParse; |
| 160781 | #define YYFALLBACK 1 |
| 160782 | #define YYNSTATE 574 |
| 160783 | #define YYNRULE 402 |
| 160784 | #define YYNRULE_WITH_ACTION 340 |
| 160785 | #define YYNTOKEN 185 |
| 160786 | #define YY_MAX_SHIFT 573 |
| 160787 | #define YY_MIN_SHIFTREDUCE 831 |
| 160788 | #define YY_MAX_SHIFTREDUCE 1232 |
| 160789 | #define YY_ERROR_ACTION 1233 |
| 160790 | #define YY_ACCEPT_ACTION 1234 |
| 160791 | #define YY_NO_ACTION 1235 |
| 160792 | #define YY_MIN_REDUCE 1236 |
| 160793 | #define YY_MAX_REDUCE 1637 |
| 160794 | /************* End control #defines *******************************************/ |
| 160795 | #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) |
| 160796 | |
| 160797 | /* Define the yytestcase() macro to be a no-op if is not already defined |
| 160798 | ** otherwise. |
| @@ -160831,607 +160855,616 @@ | |
| 160855 | ** yy_reduce_ofst[] For each state, the offset into yy_action for |
| 160856 | ** shifting non-terminals after a reduce. |
| 160857 | ** yy_default[] Default action for each state. |
| 160858 | ** |
| 160859 | *********** Begin parsing tables **********************************************/ |
| 160860 | #define YY_ACTTAB_COUNT (2070) |
| 160861 | static const YYACTIONTYPE yy_action[] = { |
| 160862 | /* 0 */ 566, 1307, 566, 1286, 201, 201, 566, 116, 112, 222, |
| 160863 | /* 10 */ 566, 1307, 377, 566, 116, 112, 222, 397, 408, 409, |
| 160864 | /* 20 */ 1260, 378, 1269, 41, 41, 41, 41, 1412, 1517, 71, |
| 160865 | /* 30 */ 71, 967, 1258, 41, 41, 491, 71, 71, 272, 968, |
| 160866 | /* 40 */ 298, 476, 298, 123, 124, 114, 1210, 1210, 1044, 1047, |
| 160867 | /* 50 */ 1036, 1036, 121, 121, 122, 122, 122, 122, 543, 409, |
| 160868 | /* 60 */ 1234, 1, 1, 573, 2, 1238, 548, 116, 112, 222, |
| 160869 | /* 70 */ 309, 480, 142, 548, 1272, 524, 116, 112, 222, 1320, |
| 160870 | /* 80 */ 417, 523, 547, 123, 124, 114, 1210, 1210, 1044, 1047, |
| 160871 | /* 90 */ 1036, 1036, 121, 121, 122, 122, 122, 122, 424, 116, |
| 160872 | /* 100 */ 112, 222, 120, 120, 120, 120, 119, 119, 118, 118, |
| 160873 | /* 110 */ 118, 117, 113, 444, 277, 277, 277, 277, 560, 560, |
| 160874 | /* 120 */ 560, 1558, 376, 1560, 1186, 375, 1157, 563, 1157, 563, |
| 160875 | /* 130 */ 409, 1558, 537, 252, 219, 1553, 99, 141, 449, 6, |
| 160876 | /* 140 */ 365, 233, 120, 120, 120, 120, 119, 119, 118, 118, |
| 160877 | /* 150 */ 118, 117, 113, 444, 123, 124, 114, 1210, 1210, 1044, |
| 160878 | /* 160 */ 1047, 1036, 1036, 121, 121, 122, 122, 122, 122, 138, |
| 160879 | /* 170 */ 289, 1186, 1546, 448, 118, 118, 118, 117, 113, 444, |
| 160880 | /* 180 */ 125, 1186, 1187, 1188, 144, 465, 334, 566, 150, 127, |
| 160881 | /* 190 */ 444, 122, 122, 122, 122, 115, 120, 120, 120, 120, |
| 160882 | /* 200 */ 119, 119, 118, 118, 118, 117, 113, 444, 454, 419, |
| 160883 | /* 210 */ 13, 13, 215, 120, 120, 120, 120, 119, 119, 118, |
| 160884 | /* 220 */ 118, 118, 117, 113, 444, 422, 308, 557, 1186, 1187, |
| 160885 | /* 230 */ 1188, 441, 440, 409, 1271, 122, 122, 122, 122, 120, |
| 160886 | /* 240 */ 120, 120, 120, 119, 119, 118, 118, 118, 117, 113, |
| 160887 | /* 250 */ 444, 1543, 98, 1033, 1033, 1045, 1048, 123, 124, 114, |
| 160888 | /* 260 */ 1210, 1210, 1044, 1047, 1036, 1036, 121, 121, 122, 122, |
| 160889 | /* 270 */ 122, 122, 566, 406, 405, 1186, 566, 409, 1217, 319, |
| 160890 | /* 280 */ 1217, 80, 81, 120, 120, 120, 120, 119, 119, 118, |
| 160891 | /* 290 */ 118, 118, 117, 113, 444, 70, 70, 1186, 1604, 71, |
| 160892 | /* 300 */ 71, 123, 124, 114, 1210, 1210, 1044, 1047, 1036, 1036, |
| 160893 | /* 310 */ 121, 121, 122, 122, 122, 122, 120, 120, 120, 120, |
| 160894 | /* 320 */ 119, 119, 118, 118, 118, 117, 113, 444, 1037, 210, |
| 160895 | /* 330 */ 1186, 365, 1186, 1187, 1188, 245, 548, 399, 504, 501, |
| 160896 | /* 340 */ 500, 108, 558, 138, 4, 516, 933, 433, 499, 217, |
| 160897 | /* 350 */ 514, 522, 352, 879, 1186, 1187, 1188, 383, 561, 566, |
| 160898 | /* 360 */ 120, 120, 120, 120, 119, 119, 118, 118, 118, 117, |
| 160899 | /* 370 */ 113, 444, 277, 277, 16, 16, 1598, 441, 440, 153, |
| 160900 | /* 380 */ 409, 445, 13, 13, 1279, 563, 1214, 1186, 1187, 1188, |
| 160901 | /* 390 */ 1003, 1216, 264, 555, 1574, 186, 566, 427, 138, 1215, |
| 160902 | /* 400 */ 308, 557, 472, 138, 123, 124, 114, 1210, 1210, 1044, |
| 160903 | /* 410 */ 1047, 1036, 1036, 121, 121, 122, 122, 122, 122, 55, |
| 160904 | /* 420 */ 55, 413, 1023, 507, 1217, 1186, 1217, 474, 106, 106, |
| 160905 | /* 430 */ 1312, 1312, 1186, 171, 566, 384, 107, 380, 445, 568, |
| 160906 | /* 440 */ 567, 430, 1543, 1013, 332, 549, 565, 263, 280, 360, |
| 160907 | /* 450 */ 510, 355, 509, 250, 491, 308, 557, 71, 71, 351, |
| 160908 | /* 460 */ 308, 557, 374, 120, 120, 120, 120, 119, 119, 118, |
| 160909 | /* 470 */ 118, 118, 117, 113, 444, 1013, 1013, 1015, 1016, 27, |
| 160910 | /* 480 */ 277, 277, 1186, 1187, 1188, 1152, 566, 528, 409, 1186, |
| 160911 | /* 490 */ 1187, 1188, 348, 563, 548, 1260, 533, 517, 1152, 1516, |
| 160912 | /* 500 */ 317, 1152, 285, 550, 485, 569, 566, 569, 482, 51, |
| 160913 | /* 510 */ 51, 207, 123, 124, 114, 1210, 1210, 1044, 1047, 1036, |
| 160914 | /* 520 */ 1036, 121, 121, 122, 122, 122, 122, 171, 1412, 13, |
| 160915 | /* 530 */ 13, 409, 277, 277, 1186, 505, 119, 119, 118, 118, |
| 160916 | /* 540 */ 118, 117, 113, 444, 429, 563, 518, 220, 515, 1552, |
| 160917 | /* 550 */ 365, 546, 1186, 6, 532, 123, 124, 114, 1210, 1210, |
| 160918 | /* 560 */ 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, 122, |
| 160919 | /* 570 */ 145, 120, 120, 120, 120, 119, 119, 118, 118, 118, |
| 160920 | /* 580 */ 117, 113, 444, 245, 566, 474, 504, 501, 500, 566, |
| 160921 | /* 590 */ 1481, 1186, 1187, 1188, 1310, 1310, 499, 1186, 149, 425, |
| 160922 | /* 600 */ 1186, 480, 409, 274, 365, 952, 872, 56, 56, 1186, |
| 160923 | /* 610 */ 1187, 1188, 71, 71, 120, 120, 120, 120, 119, 119, |
| 160924 | /* 620 */ 118, 118, 118, 117, 113, 444, 123, 124, 114, 1210, |
| 160925 | /* 630 */ 1210, 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, |
| 160926 | /* 640 */ 122, 409, 541, 1552, 83, 865, 98, 6, 928, 529, |
| 160927 | /* 650 */ 848, 543, 151, 927, 1186, 1187, 1188, 1186, 1187, 1188, |
| 160928 | /* 660 */ 290, 1543, 187, 1633, 395, 123, 124, 114, 1210, 1210, |
| 160929 | /* 670 */ 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, 122, |
| 160930 | /* 680 */ 566, 954, 566, 453, 953, 120, 120, 120, 120, 119, |
| 160931 | /* 690 */ 119, 118, 118, 118, 117, 113, 444, 1152, 221, 1186, |
| 160932 | /* 700 */ 331, 453, 452, 13, 13, 13, 13, 1003, 365, 463, |
| 160933 | /* 710 */ 1152, 193, 409, 1152, 382, 1543, 1170, 32, 297, 474, |
| 160934 | /* 720 */ 195, 1527, 5, 952, 120, 120, 120, 120, 119, 119, |
| 160935 | /* 730 */ 118, 118, 118, 117, 113, 444, 123, 124, 114, 1210, |
| 160936 | /* 740 */ 1210, 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, |
| 160937 | /* 750 */ 122, 409, 1067, 419, 1186, 1024, 1186, 1187, 1188, 1186, |
| 160938 | /* 760 */ 419, 332, 460, 320, 544, 1545, 442, 442, 442, 566, |
| 160939 | /* 770 */ 3, 117, 113, 444, 453, 123, 124, 114, 1210, 1210, |
| 160940 | /* 780 */ 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, 122, |
| 160941 | /* 790 */ 1473, 566, 15, 15, 293, 120, 120, 120, 120, 119, |
| 160942 | /* 800 */ 119, 118, 118, 118, 117, 113, 444, 1186, 566, 1486, |
| 160943 | /* 810 */ 1412, 1186, 1187, 1188, 13, 13, 1186, 1187, 1188, 1544, |
| 160944 | /* 820 */ 271, 271, 409, 286, 308, 557, 1008, 1486, 1488, 196, |
| 160945 | /* 830 */ 288, 71, 71, 563, 120, 120, 120, 120, 119, 119, |
| 160946 | /* 840 */ 118, 118, 118, 117, 113, 444, 123, 124, 114, 1210, |
| 160947 | /* 850 */ 1210, 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, |
| 160948 | /* 860 */ 122, 409, 201, 1087, 1186, 1187, 1188, 1324, 304, 1529, |
| 160949 | /* 870 */ 388, 278, 278, 450, 564, 402, 922, 922, 566, 563, |
| 160950 | /* 880 */ 566, 426, 491, 480, 563, 123, 124, 114, 1210, 1210, |
| 160951 | /* 890 */ 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, 122, |
| 160952 | /* 900 */ 1486, 71, 71, 13, 13, 120, 120, 120, 120, 119, |
| 160953 | /* 910 */ 119, 118, 118, 118, 117, 113, 444, 566, 545, 566, |
| 160954 | /* 920 */ 1577, 573, 2, 1238, 1092, 1092, 488, 1480, 309, 1525, |
| 160955 | /* 930 */ 142, 324, 409, 836, 837, 838, 312, 1320, 305, 363, |
| 160956 | /* 940 */ 43, 43, 57, 57, 120, 120, 120, 120, 119, 119, |
| 160957 | /* 950 */ 118, 118, 118, 117, 113, 444, 123, 124, 114, 1210, |
| 160958 | /* 960 */ 1210, 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, |
| 160959 | /* 970 */ 122, 12, 277, 277, 566, 1152, 409, 572, 428, 1238, |
| 160960 | /* 980 */ 465, 334, 296, 474, 309, 563, 142, 249, 1152, 308, |
| 160961 | /* 990 */ 557, 1152, 321, 1320, 323, 491, 455, 71, 71, 233, |
| 160962 | /* 1000 */ 283, 101, 114, 1210, 1210, 1044, 1047, 1036, 1036, 121, |
| 160963 | /* 1010 */ 121, 122, 122, 122, 122, 120, 120, 120, 120, 119, |
| 160964 | /* 1020 */ 119, 118, 118, 118, 117, 113, 444, 1108, 277, 277, |
| 160965 | /* 1030 */ 1412, 448, 394, 1230, 439, 277, 277, 248, 247, 246, |
| 160966 | /* 1040 */ 1319, 563, 1109, 313, 198, 294, 491, 1318, 563, 464, |
| 160967 | /* 1050 */ 566, 1427, 394, 1130, 1023, 233, 414, 1110, 295, 120, |
| 160968 | /* 1060 */ 120, 120, 120, 119, 119, 118, 118, 118, 117, 113, |
| 160969 | /* 1070 */ 444, 1014, 104, 71, 71, 1013, 322, 496, 908, 566, |
| 160970 | /* 1080 */ 277, 277, 277, 277, 1108, 1261, 415, 448, 909, 361, |
| 160971 | /* 1090 */ 1571, 1315, 409, 563, 952, 563, 9, 202, 255, 1109, |
| 160972 | /* 1100 */ 316, 487, 44, 44, 249, 559, 415, 1013, 1013, 1015, |
| 160973 | /* 1110 */ 443, 1231, 409, 1603, 1110, 897, 123, 124, 114, 1210, |
| 160974 | /* 1120 */ 1210, 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, |
| 160975 | /* 1130 */ 122, 1231, 409, 1207, 215, 554, 123, 124, 114, 1210, |
| 160976 | /* 1140 */ 1210, 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, |
| 160977 | /* 1150 */ 122, 1131, 1631, 470, 1631, 255, 123, 111, 114, 1210, |
| 160978 | /* 1160 */ 1210, 1044, 1047, 1036, 1036, 121, 121, 122, 122, 122, |
| 160979 | /* 1170 */ 122, 1131, 1632, 414, 1632, 120, 120, 120, 120, 119, |
| 160980 | /* 1180 */ 119, 118, 118, 118, 117, 113, 444, 221, 209, 351, |
| 160981 | /* 1190 */ 1207, 1207, 147, 1426, 491, 120, 120, 120, 120, 119, |
| 160982 | /* 1200 */ 119, 118, 118, 118, 117, 113, 444, 1256, 539, 519, |
| 160983 | /* 1210 */ 888, 551, 952, 12, 566, 120, 120, 120, 120, 119, |
| 160984 | /* 1220 */ 119, 118, 118, 118, 117, 113, 444, 538, 566, 860, |
| 160985 | /* 1230 */ 1129, 361, 1571, 346, 1356, 409, 1163, 58, 58, 339, |
| 160986 | /* 1240 */ 1355, 508, 277, 277, 277, 277, 277, 277, 1207, 889, |
| 160987 | /* 1250 */ 1129, 59, 59, 459, 363, 563, 566, 563, 96, 563, |
| 160988 | /* 1260 */ 124, 114, 1210, 1210, 1044, 1047, 1036, 1036, 121, 121, |
| 160989 | /* 1270 */ 122, 122, 122, 122, 566, 1412, 566, 281, 1186, 60, |
| 160990 | /* 1280 */ 60, 110, 392, 392, 391, 266, 389, 860, 1163, 845, |
| 160991 | /* 1290 */ 566, 481, 566, 436, 341, 1152, 344, 61, 61, 62, |
| 160992 | /* 1300 */ 62, 967, 227, 1550, 315, 431, 540, 6, 1152, 968, |
| 160993 | /* 1310 */ 566, 1152, 314, 45, 45, 46, 46, 512, 120, 120, |
| 160994 | /* 1320 */ 120, 120, 119, 119, 118, 118, 118, 117, 113, 444, |
| 160995 | /* 1330 */ 416, 173, 1532, 47, 47, 1186, 1187, 1188, 108, 558, |
| 160996 | /* 1340 */ 325, 4, 229, 1551, 928, 566, 437, 6, 566, 927, |
| 160997 | /* 1350 */ 164, 566, 1290, 137, 1190, 561, 566, 1549, 566, 1089, |
| 160998 | /* 1360 */ 566, 6, 566, 1089, 531, 566, 868, 8, 49, 49, |
| 160999 | /* 1370 */ 228, 50, 50, 566, 63, 63, 566, 457, 445, 64, |
| 161000 | /* 1380 */ 64, 65, 65, 14, 14, 66, 66, 407, 129, 129, |
| 161001 | /* 1390 */ 555, 566, 458, 566, 1505, 486, 67, 67, 566, 52, |
| 161002 | /* 1400 */ 52, 546, 407, 467, 535, 410, 226, 1023, 566, 534, |
| 161003 | /* 1410 */ 308, 557, 1190, 407, 68, 68, 69, 69, 566, 1023, |
| 161004 | /* 1420 */ 566, 53, 53, 868, 1014, 106, 106, 525, 1013, 566, |
| 161005 | /* 1430 */ 1504, 159, 159, 107, 451, 445, 568, 567, 471, 307, |
| 161006 | /* 1440 */ 1013, 160, 160, 76, 76, 566, 1548, 466, 407, 407, |
| 161007 | /* 1450 */ 6, 1225, 54, 54, 478, 276, 219, 566, 887, 886, |
| 161008 | /* 1460 */ 1013, 1013, 1015, 84, 206, 1206, 230, 282, 72, 72, |
| 161009 | /* 1470 */ 329, 483, 1013, 1013, 1015, 1016, 27, 1576, 1174, 447, |
| 161010 | /* 1480 */ 130, 130, 281, 148, 105, 38, 103, 392, 392, 391, |
| 161011 | /* 1490 */ 266, 389, 566, 1126, 845, 396, 566, 108, 558, 566, |
| 161012 | /* 1500 */ 4, 311, 566, 30, 17, 566, 279, 227, 566, 315, |
| 161013 | /* 1510 */ 108, 558, 468, 4, 561, 73, 73, 314, 566, 157, |
| 161014 | /* 1520 */ 157, 566, 131, 131, 526, 132, 132, 561, 128, 128, |
| 161015 | /* 1530 */ 566, 158, 158, 566, 31, 291, 566, 445, 330, 521, |
| 161016 | /* 1540 */ 98, 152, 152, 420, 136, 136, 1005, 229, 254, 555, |
| 161017 | /* 1550 */ 445, 479, 336, 135, 135, 164, 133, 133, 137, 134, |
| 161018 | /* 1560 */ 134, 875, 555, 535, 566, 473, 566, 254, 536, 475, |
| 161019 | /* 1570 */ 335, 254, 98, 894, 895, 228, 535, 566, 1023, 566, |
| 161020 | /* 1580 */ 1074, 534, 210, 232, 106, 106, 1352, 75, 75, 77, |
| 161021 | /* 1590 */ 77, 1023, 107, 340, 445, 568, 567, 106, 106, 1013, |
| 161022 | /* 1600 */ 74, 74, 42, 42, 566, 107, 343, 445, 568, 567, |
| 161023 | /* 1610 */ 410, 497, 1013, 251, 359, 308, 557, 1135, 349, 875, |
| 161024 | /* 1620 */ 98, 1070, 345, 251, 358, 1591, 347, 48, 48, 1017, |
| 161025 | /* 1630 */ 1303, 1013, 1013, 1015, 1016, 27, 1289, 1287, 1074, 451, |
| 161026 | /* 1640 */ 961, 925, 254, 110, 1013, 1013, 1015, 1016, 27, 1174, |
| 161027 | /* 1650 */ 447, 970, 971, 281, 108, 558, 1288, 4, 392, 392, |
| 161028 | /* 1660 */ 391, 266, 389, 1343, 1086, 845, 1086, 1085, 858, 1085, |
| 161029 | /* 1670 */ 146, 561, 926, 354, 110, 303, 364, 553, 227, 1364, |
| 161030 | /* 1680 */ 315, 108, 558, 1411, 4, 1339, 492, 1017, 314, 1350, |
| 161031 | /* 1690 */ 1565, 552, 1417, 1268, 445, 204, 1259, 1247, 561, 1246, |
| 161032 | /* 1700 */ 1248, 1584, 269, 1336, 367, 369, 555, 371, 11, 212, |
| 161033 | /* 1710 */ 393, 225, 1393, 284, 1398, 456, 287, 327, 229, 328, |
| 161034 | /* 1720 */ 292, 445, 1386, 216, 333, 1403, 164, 477, 373, 137, |
| 161035 | /* 1730 */ 1402, 400, 502, 555, 1286, 1023, 357, 1477, 199, 1587, |
| 161036 | /* 1740 */ 211, 106, 106, 932, 1476, 1225, 228, 556, 175, 107, |
| 161037 | /* 1750 */ 200, 445, 568, 567, 258, 387, 1013, 1524, 1522, 223, |
| 161038 | /* 1760 */ 1222, 418, 1023, 83, 208, 79, 82, 184, 106, 106, |
| 161039 | /* 1770 */ 1482, 169, 177, 461, 179, 462, 107, 1399, 445, 568, |
| 161040 | /* 1780 */ 567, 410, 180, 1013, 495, 181, 308, 557, 1013, 1013, |
| 161041 | /* 1790 */ 1015, 1016, 27, 182, 35, 235, 100, 558, 398, 4, |
| 161042 | /* 1800 */ 96, 1405, 1404, 36, 484, 469, 1407, 188, 401, 1471, |
| 161043 | /* 1810 */ 451, 89, 1493, 561, 239, 1013, 1013, 1015, 1016, 27, |
| 161044 | /* 1820 */ 490, 338, 270, 241, 192, 342, 493, 242, 403, 1249, |
| 161045 | /* 1830 */ 243, 511, 432, 1297, 1306, 91, 445, 1305, 1304, 879, |
| 161046 | /* 1840 */ 217, 434, 435, 1570, 1276, 1602, 520, 1601, 555, 301, |
| 161047 | /* 1850 */ 527, 404, 1275, 302, 356, 1274, 1600, 95, 1347, 366, |
| 161048 | /* 1860 */ 1296, 362, 1348, 368, 256, 257, 1556, 1555, 438, 1346, |
| 161049 | /* 1870 */ 370, 126, 1345, 10, 1371, 546, 381, 1023, 102, 1457, |
| 161050 | /* 1880 */ 97, 530, 34, 106, 106, 570, 1180, 372, 265, 1329, |
| 161051 | /* 1890 */ 379, 107, 203, 445, 568, 567, 1328, 385, 1013, 1370, |
| 161052 | /* 1900 */ 386, 267, 268, 571, 1244, 161, 1239, 162, 1509, 1510, |
| 161053 | /* 1910 */ 1508, 143, 1507, 299, 832, 213, 214, 78, 446, 205, |
| 161054 | /* 1920 */ 310, 306, 163, 224, 1084, 140, 1082, 318, 165, 176, |
| 161055 | /* 1930 */ 1013, 1013, 1015, 1016, 27, 178, 1206, 231, 911, 234, |
| 161056 | /* 1940 */ 326, 1098, 183, 421, 166, 167, 411, 185, 85, 423, |
| 161057 | /* 1950 */ 412, 86, 174, 87, 168, 88, 1101, 236, 1097, 237, |
| 161058 | /* 1960 */ 154, 18, 238, 254, 337, 1219, 489, 1090, 240, 190, |
| 161059 | /* 1970 */ 37, 847, 189, 494, 358, 244, 350, 506, 191, 877, |
| 161060 | /* 1980 */ 90, 498, 19, 20, 503, 92, 353, 890, 300, 170, |
| 161061 | /* 1990 */ 155, 93, 513, 94, 1168, 156, 1050, 1137, 39, 218, |
| 161062 | /* 2000 */ 273, 275, 1136, 960, 194, 955, 110, 1154, 1158, 253, |
| 161063 | /* 2010 */ 7, 1162, 1156, 21, 22, 1161, 1142, 23, 24, 25, |
| 161064 | /* 2020 */ 33, 542, 26, 260, 197, 98, 1065, 1051, 1049, 1053, |
| 161065 | /* 2030 */ 1107, 1054, 1106, 259, 28, 40, 562, 1018, 859, 109, |
| 161066 | /* 2040 */ 29, 921, 390, 1176, 172, 139, 1175, 1235, 261, 1235, |
| 161067 | /* 2050 */ 1235, 1235, 1235, 1235, 1235, 1235, 1235, 262, 1235, 1235, |
| 161068 | /* 2060 */ 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1593, 1592, |
| 161069 | }; |
| 161070 | static const YYCODETYPE yy_lookahead[] = { |
| 161071 | /* 0 */ 193, 223, 193, 225, 193, 193, 193, 274, 275, 276, |
| 161072 | /* 10 */ 193, 233, 219, 193, 274, 275, 276, 206, 206, 19, |
| 161073 | /* 20 */ 193, 219, 216, 216, 217, 216, 217, 193, 295, 216, |
| 161074 | /* 30 */ 217, 31, 205, 216, 217, 193, 216, 217, 213, 39, |
| 161075 | /* 40 */ 228, 193, 230, 43, 44, 45, 46, 47, 48, 49, |
| 161076 | /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 193, 19, |
| 161077 | /* 60 */ 185, 186, 187, 188, 189, 190, 253, 274, 275, 276, |
| 161078 | /* 70 */ 195, 193, 197, 253, 216, 262, 274, 275, 276, 204, |
| 161079 | /* 80 */ 238, 204, 262, 43, 44, 45, 46, 47, 48, 49, |
| 161080 | /* 90 */ 50, 51, 52, 53, 54, 55, 56, 57, 264, 274, |
| 161081 | /* 100 */ 275, 276, 102, 103, 104, 105, 106, 107, 108, 109, |
| 161082 | /* 110 */ 110, 111, 112, 113, 239, 240, 239, 240, 210, 211, |
| 161083 | /* 120 */ 212, 314, 315, 314, 59, 316, 86, 252, 88, 252, |
| 161084 | /* 130 */ 19, 314, 315, 256, 257, 309, 25, 72, 296, 313, |
| 161085 | /* 140 */ 193, 266, 102, 103, 104, 105, 106, 107, 108, 109, |
| 161086 | /* 150 */ 110, 111, 112, 113, 43, 44, 45, 46, 47, 48, |
| 161087 | /* 160 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 81, |
| 161088 | /* 170 */ 292, 59, 307, 298, 108, 109, 110, 111, 112, 113, |
| 161089 | /* 180 */ 69, 116, 117, 118, 72, 128, 129, 193, 241, 22, |
| 161090 | /* 190 */ 113, 54, 55, 56, 57, 58, 102, 103, 104, 105, |
| 161091 | /* 200 */ 106, 107, 108, 109, 110, 111, 112, 113, 120, 193, |
| 161092 | /* 210 */ 216, 217, 25, 102, 103, 104, 105, 106, 107, 108, |
| 161093 | /* 220 */ 109, 110, 111, 112, 113, 231, 138, 139, 116, 117, |
| 161094 | /* 230 */ 118, 106, 107, 19, 216, 54, 55, 56, 57, 102, |
| 161095 | /* 240 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, |
| 161096 | /* 250 */ 113, 304, 25, 46, 47, 48, 49, 43, 44, 45, |
| 161097 | /* 260 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, |
| 161098 | /* 270 */ 56, 57, 193, 106, 107, 59, 193, 19, 153, 263, |
| 161099 | /* 280 */ 155, 67, 24, 102, 103, 104, 105, 106, 107, 108, |
| 161100 | /* 290 */ 109, 110, 111, 112, 113, 216, 217, 59, 230, 216, |
| 161101 | /* 300 */ 217, 43, 44, 45, 46, 47, 48, 49, 50, 51, |
| 161102 | /* 310 */ 52, 53, 54, 55, 56, 57, 102, 103, 104, 105, |
| 161103 | /* 320 */ 106, 107, 108, 109, 110, 111, 112, 113, 121, 142, |
| 161104 | /* 330 */ 59, 193, 116, 117, 118, 119, 253, 204, 122, 123, |
| 161105 | /* 340 */ 124, 19, 20, 81, 22, 262, 108, 19, 132, 165, |
| 161106 | /* 350 */ 166, 193, 24, 126, 116, 117, 118, 278, 36, 193, |
| 161107 | /* 360 */ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, |
| 161108 | /* 370 */ 112, 113, 239, 240, 216, 217, 215, 106, 107, 241, |
| 161109 | /* 380 */ 19, 59, 216, 217, 223, 252, 115, 116, 117, 118, |
| 161110 | /* 390 */ 73, 120, 26, 71, 193, 22, 193, 231, 81, 128, |
| 161111 | /* 400 */ 138, 139, 269, 81, 43, 44, 45, 46, 47, 48, |
| 161112 | /* 410 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 216, |
| 161113 | /* 420 */ 217, 198, 100, 95, 153, 59, 155, 193, 106, 107, |
| 161114 | /* 430 */ 235, 236, 59, 193, 193, 249, 114, 251, 116, 117, |
| 161115 | /* 440 */ 118, 113, 304, 121, 127, 204, 193, 119, 120, 121, |
| 161116 | /* 450 */ 122, 123, 124, 125, 193, 138, 139, 216, 217, 131, |
| 161117 | /* 460 */ 138, 139, 193, 102, 103, 104, 105, 106, 107, 108, |
| 161118 | /* 470 */ 109, 110, 111, 112, 113, 153, 154, 155, 156, 157, |
| 161119 | /* 480 */ 239, 240, 116, 117, 118, 76, 193, 193, 19, 116, |
| 161120 | /* 490 */ 117, 118, 23, 252, 253, 193, 87, 204, 89, 238, |
| 161121 | /* 500 */ 193, 92, 268, 262, 281, 203, 193, 205, 285, 216, |
| 161122 | /* 510 */ 217, 150, 43, 44, 45, 46, 47, 48, 49, 50, |
| 161123 | /* 520 */ 51, 52, 53, 54, 55, 56, 57, 193, 193, 216, |
| 161124 | /* 530 */ 217, 19, 239, 240, 59, 23, 106, 107, 108, 109, |
| 161125 | /* 540 */ 110, 111, 112, 113, 231, 252, 253, 193, 308, 309, |
| 161126 | /* 550 */ 193, 145, 59, 313, 145, 43, 44, 45, 46, 47, |
| 161127 | /* 560 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, |
| 161128 | /* 570 */ 164, 102, 103, 104, 105, 106, 107, 108, 109, 110, |
| 161129 | /* 580 */ 111, 112, 113, 119, 193, 193, 122, 123, 124, 193, |
| 161130 | /* 590 */ 283, 116, 117, 118, 235, 236, 132, 59, 241, 264, |
| 161131 | /* 600 */ 59, 193, 19, 23, 193, 25, 23, 216, 217, 116, |
| 161132 | /* 610 */ 117, 118, 216, 217, 102, 103, 104, 105, 106, 107, |
| 161133 | /* 620 */ 108, 109, 110, 111, 112, 113, 43, 44, 45, 46, |
| 161134 | /* 630 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, |
| 161135 | /* 640 */ 57, 19, 308, 309, 151, 23, 25, 313, 135, 253, |
| 161136 | /* 650 */ 21, 193, 241, 140, 116, 117, 118, 116, 117, 118, |
| 161137 | /* 660 */ 268, 304, 22, 301, 302, 43, 44, 45, 46, 47, |
| 161138 | /* 670 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, |
| 161139 | /* 680 */ 193, 143, 193, 193, 143, 102, 103, 104, 105, 106, |
| 161140 | /* 690 */ 107, 108, 109, 110, 111, 112, 113, 76, 118, 59, |
| 161141 | /* 700 */ 292, 211, 212, 216, 217, 216, 217, 73, 193, 80, |
| 161142 | /* 710 */ 89, 25, 19, 92, 193, 304, 23, 22, 231, 193, |
| 161143 | /* 720 */ 231, 193, 22, 143, 102, 103, 104, 105, 106, 107, |
| 161144 | /* 730 */ 108, 109, 110, 111, 112, 113, 43, 44, 45, 46, |
| 161145 | /* 740 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, |
| 161146 | /* 750 */ 57, 19, 123, 193, 59, 23, 116, 117, 118, 59, |
| 161147 | /* 760 */ 193, 127, 128, 129, 306, 307, 210, 211, 212, 193, |
| 161148 | /* 770 */ 22, 111, 112, 113, 284, 43, 44, 45, 46, 47, |
| 161149 | /* 780 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, |
| 161150 | /* 790 */ 161, 193, 216, 217, 268, 102, 103, 104, 105, 106, |
| 161151 | /* 800 */ 107, 108, 109, 110, 111, 112, 113, 59, 193, 193, |
| 161152 | /* 810 */ 193, 116, 117, 118, 216, 217, 116, 117, 118, 304, |
| 161153 | /* 820 */ 239, 240, 19, 263, 138, 139, 23, 211, 212, 231, |
| 161154 | /* 830 */ 263, 216, 217, 252, 102, 103, 104, 105, 106, 107, |
| 161155 | /* 840 */ 108, 109, 110, 111, 112, 113, 43, 44, 45, 46, |
| 161156 | /* 850 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, |
| 161157 | /* 860 */ 57, 19, 193, 11, 116, 117, 118, 240, 253, 193, |
| 161158 | /* 870 */ 201, 239, 240, 193, 134, 206, 136, 137, 193, 252, |
| 161159 | /* 880 */ 193, 264, 193, 193, 252, 43, 44, 45, 46, 47, |
| 161160 | /* 890 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, |
| 161161 | /* 900 */ 284, 216, 217, 216, 217, 102, 103, 104, 105, 106, |
| 161162 | /* 910 */ 107, 108, 109, 110, 111, 112, 113, 193, 231, 193, |
| 161163 | /* 920 */ 187, 188, 189, 190, 127, 128, 129, 238, 195, 193, |
| 161164 | /* 930 */ 197, 16, 19, 7, 8, 9, 193, 204, 253, 193, |
| 161165 | /* 940 */ 216, 217, 216, 217, 102, 103, 104, 105, 106, 107, |
| 161166 | /* 950 */ 108, 109, 110, 111, 112, 113, 43, 44, 45, 46, |
| 161167 | /* 960 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, |
| 161168 | /* 970 */ 57, 213, 239, 240, 193, 76, 19, 188, 232, 190, |
| 161169 | /* 980 */ 128, 129, 292, 193, 195, 252, 197, 46, 89, 138, |
| 161170 | /* 990 */ 139, 92, 77, 204, 79, 193, 269, 216, 217, 266, |
| 161171 | /* 1000 */ 204, 159, 45, 46, 47, 48, 49, 50, 51, 52, |
| 161172 | /* 1010 */ 53, 54, 55, 56, 57, 102, 103, 104, 105, 106, |
| 161173 | /* 1020 */ 107, 108, 109, 110, 111, 112, 113, 12, 239, 240, |
| 161174 | /* 1030 */ 193, 298, 22, 23, 253, 239, 240, 127, 128, 129, |
| 161175 | /* 1040 */ 238, 252, 27, 193, 286, 204, 193, 204, 252, 291, |
| 161176 | /* 1050 */ 193, 273, 22, 23, 100, 266, 115, 42, 268, 102, |
| 161177 | /* 1060 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, |
| 161178 | /* 1070 */ 113, 117, 159, 216, 217, 121, 161, 19, 63, 193, |
| 161179 | /* 1080 */ 239, 240, 239, 240, 12, 208, 209, 298, 73, 311, |
| 161180 | /* 1090 */ 312, 238, 19, 252, 25, 252, 22, 24, 24, 27, |
| 161181 | /* 1100 */ 193, 264, 216, 217, 46, 208, 209, 153, 154, 155, |
| 161182 | /* 1110 */ 253, 101, 19, 23, 42, 25, 43, 44, 45, 46, |
| 161183 | /* 1120 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, |
| 161184 | /* 1130 */ 57, 101, 19, 59, 25, 63, 43, 44, 45, 46, |
| 161185 | /* 1140 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, |
| 161186 | /* 1150 */ 57, 22, 23, 115, 25, 24, 43, 44, 45, 46, |
| 161187 | /* 1160 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, |
| 161188 | /* 1170 */ 57, 22, 23, 115, 25, 102, 103, 104, 105, 106, |
| 161189 | /* 1180 */ 107, 108, 109, 110, 111, 112, 113, 118, 150, 131, |
| 161190 | /* 1190 */ 59, 117, 22, 273, 193, 102, 103, 104, 105, 106, |
| 161191 | /* 1200 */ 107, 108, 109, 110, 111, 112, 113, 204, 66, 204, |
| 161192 | /* 1210 */ 35, 204, 143, 213, 193, 102, 103, 104, 105, 106, |
| 161193 | /* 1220 */ 107, 108, 109, 110, 111, 112, 113, 85, 193, 59, |
| 161194 | /* 1230 */ 101, 311, 312, 16, 193, 19, 94, 216, 217, 238, |
| 161195 | /* 1240 */ 193, 66, 239, 240, 239, 240, 239, 240, 117, 74, |
| 161196 | /* 1250 */ 101, 216, 217, 193, 193, 252, 193, 252, 149, 252, |
| 161197 | /* 1260 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, |
| 161198 | /* 1270 */ 54, 55, 56, 57, 193, 193, 193, 5, 59, 216, |
| 161199 | /* 1280 */ 217, 25, 10, 11, 12, 13, 14, 117, 146, 17, |
| 161200 | /* 1290 */ 193, 291, 193, 232, 77, 76, 79, 216, 217, 216, |
| 161201 | /* 1300 */ 217, 31, 30, 309, 32, 130, 87, 313, 89, 39, |
| 161202 | /* 1310 */ 193, 92, 40, 216, 217, 216, 217, 108, 102, 103, |
| 161203 | /* 1320 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, |
| 161204 | /* 1330 */ 299, 300, 193, 216, 217, 116, 117, 118, 19, 20, |
| 161205 | /* 1340 */ 193, 22, 70, 309, 135, 193, 264, 313, 193, 140, |
| 161206 | /* 1350 */ 78, 193, 226, 81, 59, 36, 193, 309, 193, 29, |
| 161207 | /* 1360 */ 193, 313, 193, 33, 145, 193, 59, 48, 216, 217, |
| 161208 | /* 1370 */ 98, 216, 217, 193, 216, 217, 193, 244, 59, 216, |
| 161209 | /* 1380 */ 217, 216, 217, 216, 217, 216, 217, 254, 216, 217, |
| 161210 | /* 1390 */ 71, 193, 244, 193, 193, 65, 216, 217, 193, 216, |
| 161211 | /* 1400 */ 217, 145, 254, 244, 85, 133, 15, 100, 193, 90, |
| 161212 | /* 1410 */ 138, 139, 117, 254, 216, 217, 216, 217, 193, 100, |
| 161213 | /* 1420 */ 193, 216, 217, 116, 117, 106, 107, 19, 121, 193, |
| 161214 | /* 1430 */ 193, 216, 217, 114, 162, 116, 117, 118, 244, 244, |
| 161215 | /* 1440 */ 121, 216, 217, 216, 217, 193, 309, 129, 254, 254, |
| 161216 | /* 1450 */ 313, 60, 216, 217, 19, 256, 257, 193, 120, 121, |
| 161217 | /* 1460 */ 153, 154, 155, 149, 150, 25, 24, 99, 216, 217, |
| 161218 | /* 1470 */ 152, 193, 153, 154, 155, 156, 157, 0, 1, 2, |
| 161219 | /* 1480 */ 216, 217, 5, 22, 158, 24, 160, 10, 11, 12, |
| 161220 | /* 1490 */ 13, 14, 193, 23, 17, 25, 193, 19, 20, 193, |
| 161221 | /* 1500 */ 22, 133, 193, 22, 22, 193, 22, 30, 193, 32, |
| 161222 | /* 1510 */ 19, 20, 129, 22, 36, 216, 217, 40, 193, 216, |
| 161223 | /* 1520 */ 217, 193, 216, 217, 116, 216, 217, 36, 216, 217, |
| 161224 | /* 1530 */ 193, 216, 217, 193, 53, 152, 193, 59, 23, 19, |
| 161225 | /* 1540 */ 25, 216, 217, 61, 216, 217, 23, 70, 25, 71, |
| 161226 | /* 1550 */ 59, 116, 193, 216, 217, 78, 216, 217, 81, 216, |
| 161227 | /* 1560 */ 217, 59, 71, 85, 193, 23, 193, 25, 90, 23, |
| 161228 | /* 1570 */ 23, 25, 25, 7, 8, 98, 85, 193, 100, 193, |
| 161229 | /* 1580 */ 59, 90, 142, 141, 106, 107, 193, 216, 217, 216, |
| 161230 | /* 1590 */ 217, 100, 114, 193, 116, 117, 118, 106, 107, 121, |
| 161231 | /* 1600 */ 216, 217, 216, 217, 193, 114, 193, 116, 117, 118, |
| 161232 | /* 1610 */ 133, 23, 121, 25, 121, 138, 139, 97, 23, 117, |
| 161233 | /* 1620 */ 25, 23, 193, 25, 131, 141, 193, 216, 217, 59, |
| 161234 | /* 1630 */ 193, 153, 154, 155, 156, 157, 226, 193, 117, 162, |
| 161235 | /* 1640 */ 23, 23, 25, 25, 153, 154, 155, 156, 157, 1, |
| 161236 | /* 1650 */ 2, 83, 84, 5, 19, 20, 226, 22, 10, 11, |
| 161237 | /* 1660 */ 12, 13, 14, 258, 153, 17, 155, 153, 23, 155, |
| 161238 | /* 1670 */ 25, 36, 23, 193, 25, 255, 193, 236, 30, 193, |
| 161239 | /* 1680 */ 32, 19, 20, 193, 22, 193, 288, 117, 40, 193, |
| 161240 | /* 1690 */ 318, 193, 193, 193, 59, 242, 193, 193, 36, 193, |
| 161241 | /* 1700 */ 193, 193, 287, 255, 255, 255, 71, 255, 243, 214, |
| 161242 | /* 1710 */ 191, 297, 267, 245, 271, 259, 259, 293, 70, 246, |
| 161243 | /* 1720 */ 246, 59, 267, 229, 245, 271, 78, 293, 259, 81, |
| 161244 | /* 1730 */ 271, 271, 220, 71, 225, 100, 219, 219, 249, 196, |
| 161245 | /* 1740 */ 243, 106, 107, 108, 219, 60, 98, 280, 297, 114, |
| 161246 | /* 1750 */ 249, 116, 117, 118, 141, 245, 121, 200, 200, 297, |
| 161247 | /* 1760 */ 38, 200, 100, 151, 150, 294, 294, 22, 106, 107, |
| 161248 | /* 1770 */ 283, 43, 234, 18, 237, 200, 114, 272, 116, 117, |
| 161249 | /* 1780 */ 118, 133, 237, 121, 18, 237, 138, 139, 153, 154, |
| 161250 | /* 1790 */ 155, 156, 157, 237, 270, 199, 19, 20, 246, 22, |
| 161251 | /* 1800 */ 149, 272, 272, 270, 200, 246, 234, 234, 246, 246, |
| 161252 | /* 1810 */ 162, 158, 290, 36, 199, 153, 154, 155, 156, 157, |
| 161253 | /* 1820 */ 62, 289, 200, 199, 22, 200, 221, 199, 221, 200, |
| 161254 | /* 1830 */ 199, 115, 64, 227, 218, 22, 59, 218, 218, 126, |
| 161255 | /* 1840 */ 165, 24, 113, 312, 218, 224, 305, 224, 71, 282, |
| 161256 | /* 1850 */ 144, 221, 220, 282, 218, 218, 218, 115, 261, 260, |
| 161257 | /* 1860 */ 227, 221, 261, 260, 200, 91, 317, 317, 82, 261, |
| 161258 | /* 1870 */ 260, 148, 261, 22, 265, 145, 200, 100, 158, 277, |
| 161259 | /* 1880 */ 147, 146, 25, 106, 107, 202, 13, 260, 194, 250, |
| 161260 | /* 1890 */ 249, 114, 248, 116, 117, 118, 250, 247, 121, 265, |
| 161261 | /* 1900 */ 246, 194, 6, 192, 192, 207, 192, 207, 213, 213, |
| 161262 | /* 1910 */ 213, 222, 213, 222, 4, 214, 214, 213, 3, 22, |
| 161263 | /* 1920 */ 163, 279, 207, 15, 23, 16, 23, 139, 130, 151, |
| 161264 | /* 1930 */ 153, 154, 155, 156, 157, 142, 25, 24, 20, 144, |
| 161265 | /* 1940 */ 16, 1, 142, 61, 130, 130, 303, 151, 53, 37, |
| 161266 | /* 1950 */ 303, 53, 300, 53, 130, 53, 116, 34, 1, 141, |
| 161267 | /* 1960 */ 5, 22, 115, 25, 161, 75, 41, 68, 141, 115, |
| 161268 | /* 1970 */ 24, 20, 68, 19, 131, 125, 23, 96, 22, 59, |
| 161269 | /* 1980 */ 22, 67, 22, 22, 67, 22, 24, 28, 67, 37, |
| 161270 | /* 1990 */ 23, 149, 22, 25, 23, 23, 23, 23, 22, 141, |
| 161271 | /* 2000 */ 23, 23, 97, 116, 22, 143, 25, 88, 75, 34, |
| 161272 | /* 2010 */ 44, 75, 86, 34, 34, 93, 23, 34, 34, 34, |
| 161273 | /* 2020 */ 22, 24, 34, 22, 25, 25, 23, 23, 23, 23, |
| 161274 | /* 2030 */ 23, 11, 23, 25, 22, 22, 25, 23, 23, 22, |
| 161275 | /* 2040 */ 22, 135, 15, 1, 25, 23, 1, 319, 141, 319, |
| 161276 | /* 2050 */ 319, 319, 319, 319, 319, 319, 319, 141, 319, 319, |
| 161277 | /* 2060 */ 319, 319, 319, 319, 319, 319, 319, 319, 141, 141, |
| 161278 | /* 2070 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, |
| 161279 | /* 2080 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, |
| 161280 | /* 2090 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, |
| 161281 | /* 2100 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, |
| 161282 | /* 2110 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, |
| 161283 | /* 2120 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, |
| 161284 | /* 2130 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, |
| 161285 | /* 2140 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, |
| 161286 | /* 2150 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, |
| 161287 | /* 2160 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, |
| 161288 | /* 2170 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, |
| 161289 | /* 2180 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, |
| 161290 | /* 2190 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, |
| 161291 | /* 2200 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, |
| 161292 | /* 2210 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, |
| 161293 | /* 2220 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, |
| 161294 | /* 2230 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, |
| 161295 | /* 2240 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, |
| 161296 | /* 2250 */ 319, 319, 319, 319, 319, |
| 161297 | }; |
| 161298 | #define YY_SHIFT_COUNT (573) |
| 161299 | #define YY_SHIFT_MIN (0) |
| 161300 | #define YY_SHIFT_MAX (2045) |
| 161301 | static const unsigned short int yy_shift_ofst[] = { |
| 161302 | /* 0 */ 1648, 1477, 1272, 322, 322, 262, 1319, 1478, 1491, 1662, |
| 161303 | /* 10 */ 1662, 1662, 317, 0, 0, 214, 1093, 1662, 1662, 1662, |
| 161304 | /* 20 */ 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, |
| 161305 | /* 30 */ 271, 271, 1219, 1219, 216, 88, 262, 262, 262, 262, |
| 161306 | /* 40 */ 262, 40, 111, 258, 361, 469, 512, 583, 622, 693, |
| 161307 | /* 50 */ 732, 803, 842, 913, 1073, 1093, 1093, 1093, 1093, 1093, |
| 161308 | /* 60 */ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, |
| 161309 | /* 70 */ 1093, 1093, 1093, 1113, 1093, 1216, 957, 957, 1635, 1662, |
| 161310 | /* 80 */ 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, |
| 161311 | /* 90 */ 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, |
| 161312 | /* 100 */ 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, |
| 161313 | /* 110 */ 1662, 1662, 1662, 1662, 1777, 1662, 1662, 1662, 1662, 1662, |
| 161314 | /* 120 */ 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 137, 181, |
| 161315 | /* 130 */ 181, 181, 181, 181, 94, 430, 66, 65, 112, 366, |
| 161316 | /* 140 */ 475, 475, 629, 1058, 475, 475, 125, 125, 475, 686, |
| 161317 | /* 150 */ 686, 686, 660, 686, 57, 184, 184, 77, 77, 2070, |
| 161318 | /* 160 */ 2070, 328, 328, 328, 493, 373, 373, 373, 373, 1015, |
| 161319 | /* 170 */ 1015, 409, 366, 1129, 1149, 475, 475, 475, 475, 475, |
| 161320 | /* 180 */ 475, 475, 475, 475, 475, 475, 475, 475, 475, 475, |
| 161321 | /* 190 */ 475, 475, 475, 475, 475, 621, 621, 475, 852, 899, |
| 161322 | /* 200 */ 899, 1295, 1295, 406, 851, 2070, 2070, 2070, 2070, 2070, |
| 161323 | /* 210 */ 2070, 2070, 1307, 954, 954, 640, 464, 695, 238, 700, |
| 161324 | /* 220 */ 538, 541, 748, 475, 475, 475, 475, 475, 475, 475, |
| 161325 | /* 230 */ 475, 475, 475, 634, 475, 475, 475, 475, 475, 475, |
| 161326 | /* 240 */ 475, 475, 475, 475, 475, 475, 1175, 1175, 1175, 475, |
| 161327 | /* 250 */ 475, 475, 580, 475, 475, 475, 1074, 1142, 475, 475, |
| 161328 | /* 260 */ 1072, 475, 475, 475, 475, 475, 475, 475, 475, 797, |
| 161329 | /* 270 */ 1330, 740, 1131, 1131, 1131, 1131, 1069, 740, 740, 1209, |
| 161330 | /* 280 */ 167, 926, 1391, 1038, 1314, 187, 1408, 1314, 1408, 1435, |
| 161331 | /* 290 */ 1109, 1038, 1038, 1109, 1038, 187, 1435, 227, 1090, 941, |
| 161332 | /* 300 */ 1270, 1270, 1270, 1408, 1256, 1256, 1326, 1440, 513, 1461, |
| 161333 | /* 310 */ 1685, 1685, 1613, 1613, 1722, 1722, 1613, 1612, 1614, 1745, |
| 161334 | /* 320 */ 1728, 1755, 1755, 1755, 1755, 1613, 1766, 1651, 1614, 1614, |
| 161335 | /* 330 */ 1651, 1745, 1728, 1651, 1728, 1651, 1613, 1766, 1653, 1758, |
| 161336 | /* 340 */ 1613, 1766, 1802, 1613, 1766, 1613, 1766, 1802, 1716, 1716, |
| 161337 | /* 350 */ 1716, 1768, 1813, 1813, 1802, 1716, 1713, 1716, 1768, 1716, |
| 161338 | /* 360 */ 1716, 1675, 1817, 1729, 1729, 1802, 1706, 1742, 1706, 1742, |
| 161339 | /* 370 */ 1706, 1742, 1706, 1742, 1613, 1774, 1774, 1786, 1786, 1723, |
| 161340 | /* 380 */ 1730, 1851, 1613, 1720, 1723, 1733, 1735, 1651, 1857, 1873, |
| 161341 | /* 390 */ 1873, 1896, 1896, 1896, 2070, 2070, 2070, 2070, 2070, 2070, |
| 161342 | /* 400 */ 2070, 2070, 2070, 2070, 2070, 2070, 2070, 2070, 2070, 207, |
| 161343 | /* 410 */ 915, 1010, 1030, 1217, 910, 1170, 1470, 1368, 1481, 1442, |
| 161344 | /* 420 */ 1318, 1383, 1515, 1482, 1523, 1542, 1546, 1547, 1588, 1595, |
| 161345 | /* 430 */ 1502, 1338, 1566, 1493, 1520, 1521, 1598, 1617, 1568, 1618, |
| 161346 | /* 440 */ 1511, 1514, 1645, 1649, 1570, 1484, 1910, 1915, 1897, 1757, |
| 161347 | /* 450 */ 1908, 1909, 1901, 1903, 1788, 1778, 1798, 1911, 1911, 1913, |
| 161348 | /* 460 */ 1793, 1918, 1795, 1924, 1940, 1800, 1814, 1911, 1815, 1882, |
| 161349 | /* 470 */ 1912, 1911, 1796, 1895, 1898, 1900, 1902, 1824, 1840, 1923, |
| 161350 | /* 480 */ 1818, 1957, 1955, 1939, 1847, 1803, 1899, 1938, 1904, 1890, |
| 161351 | /* 490 */ 1925, 1827, 1854, 1946, 1951, 1954, 1843, 1850, 1956, 1914, |
| 161352 | /* 500 */ 1958, 1960, 1953, 1961, 1917, 1920, 1962, 1881, 1959, 1963, |
| 161353 | /* 510 */ 1921, 1952, 1967, 1842, 1970, 1971, 1972, 1973, 1968, 1974, |
| 161354 | /* 520 */ 1976, 1905, 1858, 1977, 1978, 1887, 1975, 1982, 1862, 1981, |
| 161355 | /* 530 */ 1979, 1980, 1983, 1984, 1919, 1933, 1926, 1966, 1936, 1922, |
| 161356 | /* 540 */ 1985, 1993, 1998, 1997, 1999, 2000, 1988, 2003, 1981, 2004, |
| 161357 | /* 550 */ 2005, 2006, 2007, 2008, 2009, 2001, 2020, 2012, 2013, 2014, |
| 161358 | /* 560 */ 2015, 2017, 2018, 2011, 1906, 1907, 1916, 1927, 1928, 2019, |
| 161359 | /* 570 */ 2022, 2027, 2042, 2045, |
| 161360 | }; |
| 161361 | #define YY_REDUCE_COUNT (408) |
| 161362 | #define YY_REDUCE_MIN (-267) |
| 161363 | #define YY_REDUCE_MAX (1715) |
| 161364 | static const short yy_reduce_ofst[] = { |
| 161365 | /* 0 */ -125, 733, 789, 241, 293, -123, -193, -191, -183, -187, |
| 161366 | /* 10 */ -180, 83, 133, -207, -198, -267, -175, -6, 166, 313, |
| 161367 | /* 20 */ 487, 396, 489, 598, 615, 685, 687, 79, 781, 857, |
| 161368 | /* 30 */ 490, 616, 240, 334, -188, 796, 841, 843, 1003, 1005, |
| 161369 | /* 40 */ 1007, -260, -260, -260, -260, -260, -260, -260, -260, -260, |
| 161370 | /* 50 */ -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, |
| 161371 | /* 60 */ -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, |
| 161372 | /* 70 */ -260, -260, -260, -260, -260, -260, -260, -260, 158, 203, |
| 161373 | /* 80 */ 391, 576, 724, 726, 886, 1021, 1035, 1063, 1081, 1083, |
| 161374 | /* 90 */ 1097, 1099, 1117, 1152, 1155, 1158, 1163, 1165, 1167, 1169, |
| 161375 | /* 100 */ 1172, 1180, 1183, 1198, 1200, 1205, 1215, 1225, 1227, 1236, |
| 161376 | /* 110 */ 1252, 1264, 1299, 1303, 1306, 1309, 1312, 1315, 1325, 1328, |
| 161377 | /* 120 */ 1337, 1340, 1343, 1371, 1373, 1384, 1386, 1411, -260, -260, |
| 161378 | /* 130 */ -260, -260, -260, -260, -260, -260, -260, -53, 138, 302, |
| 161379 | /* 140 */ -158, 357, 223, -222, 411, 458, -92, 556, 669, 581, |
| 161380 | /* 150 */ 632, 581, -260, 632, 758, 778, 920, -260, -260, -260, |
| 161381 | /* 160 */ -260, 161, 161, 161, 307, 234, 392, 526, 790, 195, |
| 161382 | /* 170 */ 359, -174, -173, 362, 362, -189, 16, 560, 567, 261, |
| 161383 | /* 180 */ 689, 802, 853, -122, -166, 408, 335, 617, 690, 837, |
| 161384 | /* 190 */ 1001, 746, 1061, 515, 1082, 994, 1034, -135, 1000, 1048, |
| 161385 | /* 200 */ 1137, 877, 897, 186, 627, 1031, 1133, 1148, 1159, 1194, |
| 161386 | /* 210 */ 1199, 1195, -194, -142, 18, -152, 68, 201, 253, 269, |
| 161387 | /* 220 */ 294, 354, 521, 528, 676, 680, 736, 743, 850, 907, |
| 161388 | /* 230 */ 1041, 1047, 1060, 727, 1139, 1147, 1201, 1237, 1278, 1359, |
| 161389 | /* 240 */ 1393, 1400, 1413, 1429, 1433, 1437, 1126, 1410, 1430, 1444, |
| 161390 | /* 250 */ 1480, 1483, 1405, 1486, 1490, 1492, 1420, 1372, 1496, 1498, |
| 161391 | /* 260 */ 1441, 1499, 253, 1500, 1503, 1504, 1506, 1507, 1508, 1398, |
| 161392 | /* 270 */ 1415, 1453, 1448, 1449, 1450, 1452, 1405, 1453, 1453, 1465, |
| 161393 | /* 280 */ 1495, 1519, 1414, 1443, 1445, 1468, 1456, 1455, 1457, 1424, |
| 161394 | /* 290 */ 1473, 1454, 1459, 1474, 1460, 1479, 1434, 1512, 1494, 1509, |
| 161395 | /* 300 */ 1517, 1518, 1525, 1469, 1489, 1501, 1467, 1510, 1497, 1543, |
| 161396 | /* 310 */ 1451, 1462, 1557, 1558, 1471, 1472, 1561, 1487, 1505, 1524, |
| 161397 | /* 320 */ 1538, 1537, 1545, 1548, 1556, 1575, 1596, 1552, 1529, 1530, |
| 161398 | /* 330 */ 1559, 1533, 1572, 1562, 1573, 1563, 1604, 1615, 1522, 1532, |
| 161399 | /* 340 */ 1622, 1624, 1605, 1625, 1628, 1629, 1631, 1607, 1616, 1619, |
| 161400 | /* 350 */ 1620, 1606, 1621, 1623, 1630, 1626, 1632, 1636, 1633, 1637, |
| 161401 | /* 360 */ 1638, 1531, 1541, 1567, 1571, 1640, 1597, 1599, 1601, 1603, |
| 161402 | /* 370 */ 1608, 1610, 1611, 1627, 1664, 1549, 1550, 1609, 1634, 1639, |
| 161403 | /* 380 */ 1641, 1602, 1676, 1642, 1646, 1644, 1650, 1654, 1683, 1694, |
| 161404 | /* 390 */ 1707, 1711, 1712, 1714, 1643, 1647, 1652, 1698, 1695, 1696, |
| 161405 | /* 400 */ 1697, 1699, 1700, 1689, 1691, 1701, 1702, 1704, 1715, |
| 161406 | }; |
| 161407 | static const YYACTIONTYPE yy_default[] = { |
| 161408 | /* 0 */ 1637, 1637, 1637, 1466, 1233, 1344, 1233, 1233, 1233, 1466, |
| 161409 | /* 10 */ 1466, 1466, 1233, 1374, 1374, 1519, 1266, 1233, 1233, 1233, |
| 161410 | /* 20 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1465, 1233, 1233, |
| 161411 | /* 30 */ 1233, 1233, 1554, 1554, 1233, 1233, 1233, 1233, 1233, 1233, |
| 161412 | /* 40 */ 1233, 1233, 1383, 1233, 1390, 1233, 1233, 1233, 1233, 1233, |
| 161413 | /* 50 */ 1467, 1468, 1233, 1233, 1233, 1518, 1520, 1483, 1397, 1396, |
| 161414 | /* 60 */ 1395, 1394, 1501, 1361, 1388, 1381, 1385, 1461, 1462, 1460, |
| 161415 | /* 70 */ 1464, 1468, 1467, 1233, 1384, 1431, 1445, 1430, 1233, 1233, |
| 161416 | /* 80 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, |
| 161417 | /* 90 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, |
| 161418 | /* 100 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, |
| 161419 | /* 110 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, |
| 161420 | /* 120 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1439, 1444, |
| 161421 | /* 130 */ 1451, 1443, 1440, 1433, 1432, 1434, 1435, 1233, 1233, 1257, |
| 161422 | /* 140 */ 1233, 1233, 1254, 1308, 1233, 1233, 1233, 1233, 1233, 1538, |
| 161423 | /* 150 */ 1537, 1233, 1436, 1233, 1266, 1425, 1424, 1448, 1437, 1447, |
| 161424 | /* 160 */ 1446, 1526, 1590, 1589, 1484, 1233, 1233, 1233, 1233, 1233, |
| 161425 | /* 170 */ 1233, 1554, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, |
| 161426 | /* 180 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, |
| 161427 | /* 190 */ 1233, 1233, 1233, 1233, 1233, 1554, 1554, 1233, 1266, 1554, |
| 161428 | /* 200 */ 1554, 1262, 1262, 1368, 1233, 1533, 1335, 1335, 1335, 1335, |
| 161429 | /* 210 */ 1344, 1335, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, |
| 161430 | /* 220 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1523, 1521, 1233, |
| 161431 | /* 230 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, |
| 161432 | /* 240 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, |
| 161433 | /* 250 */ 1233, 1233, 1233, 1233, 1233, 1233, 1340, 1233, 1233, 1233, |
| 161434 | /* 260 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1583, 1233, |
| 161435 | /* 270 */ 1496, 1322, 1340, 1340, 1340, 1340, 1342, 1323, 1321, 1334, |
| 161436 | /* 280 */ 1267, 1240, 1629, 1400, 1389, 1341, 1363, 1389, 1363, 1626, |
| 161437 | /* 290 */ 1387, 1400, 1400, 1387, 1400, 1341, 1626, 1283, 1606, 1278, |
| 161438 | /* 300 */ 1374, 1374, 1374, 1363, 1368, 1368, 1463, 1341, 1334, 1233, |
| 161439 | /* 310 */ 1629, 1629, 1349, 1349, 1628, 1628, 1349, 1484, 1613, 1409, |
| 161440 | /* 320 */ 1311, 1317, 1317, 1317, 1317, 1349, 1251, 1387, 1613, 1613, |
| 161441 | /* 330 */ 1387, 1409, 1311, 1387, 1311, 1387, 1349, 1251, 1500, 1623, |
| 161442 | /* 340 */ 1349, 1251, 1474, 1349, 1251, 1349, 1251, 1474, 1309, 1309, |
| 161443 | /* 350 */ 1309, 1298, 1233, 1233, 1474, 1309, 1283, 1309, 1298, 1309, |
| 161444 | /* 360 */ 1309, 1572, 1233, 1478, 1478, 1474, 1367, 1362, 1367, 1362, |
| 161445 | /* 370 */ 1367, 1362, 1367, 1362, 1349, 1564, 1564, 1377, 1377, 1382, |
| 161446 | /* 380 */ 1368, 1469, 1349, 1233, 1382, 1380, 1378, 1387, 1301, 1586, |
| 161447 | /* 390 */ 1586, 1582, 1582, 1582, 1634, 1634, 1533, 1599, 1266, 1266, |
| 161448 | /* 400 */ 1266, 1266, 1599, 1285, 1285, 1267, 1267, 1266, 1599, 1233, |
| 161449 | /* 410 */ 1233, 1233, 1233, 1233, 1233, 1594, 1233, 1528, 1485, 1353, |
| 161450 | /* 420 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, |
| 161451 | /* 430 */ 1233, 1233, 1233, 1233, 1539, 1233, 1233, 1233, 1233, 1233, |
| 161452 | /* 440 */ 1233, 1233, 1233, 1233, 1233, 1414, 1233, 1236, 1530, 1233, |
| 161453 | /* 450 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1391, 1392, 1354, |
| 161454 | /* 460 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1406, 1233, 1233, |
| 161455 | /* 470 */ 1233, 1401, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, |
| 161456 | /* 480 */ 1625, 1233, 1233, 1233, 1233, 1233, 1233, 1499, 1498, 1233, |
| 161457 | /* 490 */ 1233, 1351, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, |
| 161458 | /* 500 */ 1233, 1233, 1233, 1233, 1233, 1281, 1233, 1233, 1233, 1233, |
| 161459 | /* 510 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, |
| 161460 | /* 520 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1379, |
| 161461 | /* 530 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, |
| 161462 | /* 540 */ 1233, 1233, 1233, 1233, 1569, 1369, 1233, 1233, 1616, 1233, |
| 161463 | /* 550 */ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, |
| 161464 | /* 560 */ 1233, 1233, 1233, 1610, 1325, 1416, 1233, 1415, 1419, 1255, |
| 161465 | /* 570 */ 1233, 1245, 1233, 1233, |
| 161466 | }; |
| 161467 | /********** End of lemon-generated parsing tables *****************************/ |
| 161468 | |
| 161469 | /* The next table maps tokens (terminal symbols) into fallback tokens. |
| 161470 | ** If a construct like the following: |
| @@ -161492,14 +161525,14 @@ | |
| 161525 | 59, /* DETACH => ID */ |
| 161526 | 59, /* EACH => ID */ |
| 161527 | 59, /* FAIL => ID */ |
| 161528 | 0, /* OR => nothing */ |
| 161529 | 0, /* AND => nothing */ |
| 161530 | 0, /* IS => nothing */ |
| 161531 | 59, /* MATCH => ID */ |
| 161532 | 59, /* LIKE_KW => ID */ |
| 161533 | 0, /* BETWEEN => nothing */ |
| 161534 | 0, /* IN => nothing */ |
| 161535 | 0, /* ISNULL => nothing */ |
| 161536 | 0, /* NOTNULL => nothing */ |
| 161537 | 0, /* NE => nothing */ |
| 161538 | 0, /* EQ => nothing */ |
| @@ -161559,10 +161592,11 @@ | |
| 161592 | 0, /* MINUS => nothing */ |
| 161593 | 0, /* STAR => nothing */ |
| 161594 | 0, /* SLASH => nothing */ |
| 161595 | 0, /* REM => nothing */ |
| 161596 | 0, /* CONCAT => nothing */ |
| 161597 | 0, /* PTR => nothing */ |
| 161598 | 0, /* COLLATE => nothing */ |
| 161599 | 0, /* BITNOT => nothing */ |
| 161600 | 0, /* ON => nothing */ |
| 161601 | 0, /* INDEXED => nothing */ |
| 161602 | 0, /* STRING => nothing */ |
| @@ -161764,14 +161798,14 @@ | |
| 161798 | /* 40 */ "DETACH", |
| 161799 | /* 41 */ "EACH", |
| 161800 | /* 42 */ "FAIL", |
| 161801 | /* 43 */ "OR", |
| 161802 | /* 44 */ "AND", |
| 161803 | /* 45 */ "IS", |
| 161804 | /* 46 */ "MATCH", |
| 161805 | /* 47 */ "LIKE_KW", |
| 161806 | /* 48 */ "BETWEEN", |
| 161807 | /* 49 */ "IN", |
| 161808 | /* 50 */ "ISNULL", |
| 161809 | /* 51 */ "NOTNULL", |
| 161810 | /* 52 */ "NE", |
| 161811 | /* 53 */ "EQ", |
| @@ -161831,216 +161865,217 @@ | |
| 161865 | /* 107 */ "MINUS", |
| 161866 | /* 108 */ "STAR", |
| 161867 | /* 109 */ "SLASH", |
| 161868 | /* 110 */ "REM", |
| 161869 | /* 111 */ "CONCAT", |
| 161870 | /* 112 */ "PTR", |
| 161871 | /* 113 */ "COLLATE", |
| 161872 | /* 114 */ "BITNOT", |
| 161873 | /* 115 */ "ON", |
| 161874 | /* 116 */ "INDEXED", |
| 161875 | /* 117 */ "STRING", |
| 161876 | /* 118 */ "JOIN_KW", |
| 161877 | /* 119 */ "CONSTRAINT", |
| 161878 | /* 120 */ "DEFAULT", |
| 161879 | /* 121 */ "NULL", |
| 161880 | /* 122 */ "PRIMARY", |
| 161881 | /* 123 */ "UNIQUE", |
| 161882 | /* 124 */ "CHECK", |
| 161883 | /* 125 */ "REFERENCES", |
| 161884 | /* 126 */ "AUTOINCR", |
| 161885 | /* 127 */ "INSERT", |
| 161886 | /* 128 */ "DELETE", |
| 161887 | /* 129 */ "UPDATE", |
| 161888 | /* 130 */ "SET", |
| 161889 | /* 131 */ "DEFERRABLE", |
| 161890 | /* 132 */ "FOREIGN", |
| 161891 | /* 133 */ "DROP", |
| 161892 | /* 134 */ "UNION", |
| 161893 | /* 135 */ "ALL", |
| 161894 | /* 136 */ "EXCEPT", |
| 161895 | /* 137 */ "INTERSECT", |
| 161896 | /* 138 */ "SELECT", |
| 161897 | /* 139 */ "VALUES", |
| 161898 | /* 140 */ "DISTINCT", |
| 161899 | /* 141 */ "DOT", |
| 161900 | /* 142 */ "FROM", |
| 161901 | /* 143 */ "JOIN", |
| 161902 | /* 144 */ "USING", |
| 161903 | /* 145 */ "ORDER", |
| 161904 | /* 146 */ "GROUP", |
| 161905 | /* 147 */ "HAVING", |
| 161906 | /* 148 */ "LIMIT", |
| 161907 | /* 149 */ "WHERE", |
| 161908 | /* 150 */ "RETURNING", |
| 161909 | /* 151 */ "INTO", |
| 161910 | /* 152 */ "NOTHING", |
| 161911 | /* 153 */ "FLOAT", |
| 161912 | /* 154 */ "BLOB", |
| 161913 | /* 155 */ "INTEGER", |
| 161914 | /* 156 */ "VARIABLE", |
| 161915 | /* 157 */ "CASE", |
| 161916 | /* 158 */ "WHEN", |
| 161917 | /* 159 */ "THEN", |
| 161918 | /* 160 */ "ELSE", |
| 161919 | /* 161 */ "INDEX", |
| 161920 | /* 162 */ "ALTER", |
| 161921 | /* 163 */ "ADD", |
| 161922 | /* 164 */ "WINDOW", |
| 161923 | /* 165 */ "OVER", |
| 161924 | /* 166 */ "FILTER", |
| 161925 | /* 167 */ "COLUMN", |
| 161926 | /* 168 */ "AGG_FUNCTION", |
| 161927 | /* 169 */ "AGG_COLUMN", |
| 161928 | /* 170 */ "TRUEFALSE", |
| 161929 | /* 171 */ "ISNOT", |
| 161930 | /* 172 */ "FUNCTION", |
| 161931 | /* 173 */ "UMINUS", |
| 161932 | /* 174 */ "UPLUS", |
| 161933 | /* 175 */ "TRUTH", |
| 161934 | /* 176 */ "REGISTER", |
| 161935 | /* 177 */ "VECTOR", |
| 161936 | /* 178 */ "SELECT_COLUMN", |
| 161937 | /* 179 */ "IF_NULL_ROW", |
| 161938 | /* 180 */ "ASTERISK", |
| 161939 | /* 181 */ "SPAN", |
| 161940 | /* 182 */ "ERROR", |
| 161941 | /* 183 */ "SPACE", |
| 161942 | /* 184 */ "ILLEGAL", |
| 161943 | /* 185 */ "input", |
| 161944 | /* 186 */ "cmdlist", |
| 161945 | /* 187 */ "ecmd", |
| 161946 | /* 188 */ "cmdx", |
| 161947 | /* 189 */ "explain", |
| 161948 | /* 190 */ "cmd", |
| 161949 | /* 191 */ "transtype", |
| 161950 | /* 192 */ "trans_opt", |
| 161951 | /* 193 */ "nm", |
| 161952 | /* 194 */ "savepoint_opt", |
| 161953 | /* 195 */ "create_table", |
| 161954 | /* 196 */ "create_table_args", |
| 161955 | /* 197 */ "createkw", |
| 161956 | /* 198 */ "temp", |
| 161957 | /* 199 */ "ifnotexists", |
| 161958 | /* 200 */ "dbnm", |
| 161959 | /* 201 */ "columnlist", |
| 161960 | /* 202 */ "conslist_opt", |
| 161961 | /* 203 */ "table_option_set", |
| 161962 | /* 204 */ "select", |
| 161963 | /* 205 */ "table_option", |
| 161964 | /* 206 */ "columnname", |
| 161965 | /* 207 */ "carglist", |
| 161966 | /* 208 */ "typetoken", |
| 161967 | /* 209 */ "typename", |
| 161968 | /* 210 */ "signed", |
| 161969 | /* 211 */ "plus_num", |
| 161970 | /* 212 */ "minus_num", |
| 161971 | /* 213 */ "scanpt", |
| 161972 | /* 214 */ "scantok", |
| 161973 | /* 215 */ "ccons", |
| 161974 | /* 216 */ "term", |
| 161975 | /* 217 */ "expr", |
| 161976 | /* 218 */ "onconf", |
| 161977 | /* 219 */ "sortorder", |
| 161978 | /* 220 */ "autoinc", |
| 161979 | /* 221 */ "eidlist_opt", |
| 161980 | /* 222 */ "refargs", |
| 161981 | /* 223 */ "defer_subclause", |
| 161982 | /* 224 */ "generated", |
| 161983 | /* 225 */ "refarg", |
| 161984 | /* 226 */ "refact", |
| 161985 | /* 227 */ "init_deferred_pred_opt", |
| 161986 | /* 228 */ "conslist", |
| 161987 | /* 229 */ "tconscomma", |
| 161988 | /* 230 */ "tcons", |
| 161989 | /* 231 */ "sortlist", |
| 161990 | /* 232 */ "eidlist", |
| 161991 | /* 233 */ "defer_subclause_opt", |
| 161992 | /* 234 */ "orconf", |
| 161993 | /* 235 */ "resolvetype", |
| 161994 | /* 236 */ "raisetype", |
| 161995 | /* 237 */ "ifexists", |
| 161996 | /* 238 */ "fullname", |
| 161997 | /* 239 */ "selectnowith", |
| 161998 | /* 240 */ "oneselect", |
| 161999 | /* 241 */ "wqlist", |
| 162000 | /* 242 */ "multiselect_op", |
| 162001 | /* 243 */ "distinct", |
| 162002 | /* 244 */ "selcollist", |
| 162003 | /* 245 */ "from", |
| 162004 | /* 246 */ "where_opt", |
| 162005 | /* 247 */ "groupby_opt", |
| 162006 | /* 248 */ "having_opt", |
| 162007 | /* 249 */ "orderby_opt", |
| 162008 | /* 250 */ "limit_opt", |
| 162009 | /* 251 */ "window_clause", |
| 162010 | /* 252 */ "values", |
| 162011 | /* 253 */ "nexprlist", |
| 162012 | /* 254 */ "sclp", |
| 162013 | /* 255 */ "as", |
| 162014 | /* 256 */ "seltablist", |
| 162015 | /* 257 */ "stl_prefix", |
| 162016 | /* 258 */ "joinop", |
| 162017 | /* 259 */ "indexed_opt", |
| 162018 | /* 260 */ "on_opt", |
| 162019 | /* 261 */ "using_opt", |
| 162020 | /* 262 */ "exprlist", |
| 162021 | /* 263 */ "xfullname", |
| 162022 | /* 264 */ "idlist", |
| 162023 | /* 265 */ "nulls", |
| 162024 | /* 266 */ "with", |
| 162025 | /* 267 */ "where_opt_ret", |
| 162026 | /* 268 */ "setlist", |
| 162027 | /* 269 */ "insert_cmd", |
| 162028 | /* 270 */ "idlist_opt", |
| 162029 | /* 271 */ "upsert", |
| 162030 | /* 272 */ "returning", |
| 162031 | /* 273 */ "filter_over", |
| 162032 | /* 274 */ "likeop", |
| 162033 | /* 275 */ "between_op", |
| 162034 | /* 276 */ "in_op", |
| 162035 | /* 277 */ "paren_exprlist", |
| 162036 | /* 278 */ "case_operand", |
| 162037 | /* 279 */ "case_exprlist", |
| 162038 | /* 280 */ "case_else", |
| 162039 | /* 281 */ "uniqueflag", |
| 162040 | /* 282 */ "collate", |
| 162041 | /* 283 */ "vinto", |
| 162042 | /* 284 */ "nmnum", |
| 162043 | /* 285 */ "trigger_decl", |
| 162044 | /* 286 */ "trigger_cmd_list", |
| 162045 | /* 287 */ "trigger_time", |
| 162046 | /* 288 */ "trigger_event", |
| 162047 | /* 289 */ "foreach_clause", |
| 162048 | /* 290 */ "when_clause", |
| 162049 | /* 291 */ "trigger_cmd", |
| 162050 | /* 292 */ "trnm", |
| 162051 | /* 293 */ "tridxby", |
| 162052 | /* 294 */ "database_kw_opt", |
| 162053 | /* 295 */ "key_opt", |
| 162054 | /* 296 */ "add_column_fullname", |
| 162055 | /* 297 */ "kwcolumn_opt", |
| 162056 | /* 298 */ "create_vtab", |
| 162057 | /* 299 */ "vtabarglist", |
| 162058 | /* 300 */ "vtabarg", |
| 162059 | /* 301 */ "vtabargtoken", |
| 162060 | /* 302 */ "lp", |
| 162061 | /* 303 */ "anylist", |
| 162062 | /* 304 */ "wqitem", |
| 162063 | /* 305 */ "wqas", |
| 162064 | /* 306 */ "windowdefn_list", |
| 162065 | /* 307 */ "windowdefn", |
| 162066 | /* 308 */ "window", |
| 162067 | /* 309 */ "frame_opt", |
| 162068 | /* 310 */ "part_opt", |
| 162069 | /* 311 */ "filter_clause", |
| 162070 | /* 312 */ "over_clause", |
| 162071 | /* 313 */ "range_or_rows", |
| 162072 | /* 314 */ "frame_bound", |
| 162073 | /* 315 */ "frame_bound_s", |
| 162074 | /* 316 */ "frame_bound_e", |
| 162075 | /* 317 */ "frame_exclude_opt", |
| 162076 | /* 318 */ "frame_exclude", |
| 162077 | }; |
| 162078 | #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */ |
| 162079 | |
| 162080 | #ifndef NDEBUG |
| 162081 | /* For tracing reduce actions, the names of all rules are required. |
| @@ -162256,199 +162291,200 @@ | |
| 162291 | /* 207 */ "expr ::= expr IS expr", |
| 162292 | /* 208 */ "expr ::= expr IS NOT expr", |
| 162293 | /* 209 */ "expr ::= NOT expr", |
| 162294 | /* 210 */ "expr ::= BITNOT expr", |
| 162295 | /* 211 */ "expr ::= PLUS|MINUS expr", |
| 162296 | /* 212 */ "expr ::= expr PTR expr", |
| 162297 | /* 213 */ "between_op ::= BETWEEN", |
| 162298 | /* 214 */ "between_op ::= NOT BETWEEN", |
| 162299 | /* 215 */ "expr ::= expr between_op expr AND expr", |
| 162300 | /* 216 */ "in_op ::= IN", |
| 162301 | /* 217 */ "in_op ::= NOT IN", |
| 162302 | /* 218 */ "expr ::= expr in_op LP exprlist RP", |
| 162303 | /* 219 */ "expr ::= LP select RP", |
| 162304 | /* 220 */ "expr ::= expr in_op LP select RP", |
| 162305 | /* 221 */ "expr ::= expr in_op nm dbnm paren_exprlist", |
| 162306 | /* 222 */ "expr ::= EXISTS LP select RP", |
| 162307 | /* 223 */ "expr ::= CASE case_operand case_exprlist case_else END", |
| 162308 | /* 224 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", |
| 162309 | /* 225 */ "case_exprlist ::= WHEN expr THEN expr", |
| 162310 | /* 226 */ "case_else ::= ELSE expr", |
| 162311 | /* 227 */ "case_else ::=", |
| 162312 | /* 228 */ "case_operand ::= expr", |
| 162313 | /* 229 */ "case_operand ::=", |
| 162314 | /* 230 */ "exprlist ::=", |
| 162315 | /* 231 */ "nexprlist ::= nexprlist COMMA expr", |
| 162316 | /* 232 */ "nexprlist ::= expr", |
| 162317 | /* 233 */ "paren_exprlist ::=", |
| 162318 | /* 234 */ "paren_exprlist ::= LP exprlist RP", |
| 162319 | /* 235 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt", |
| 162320 | /* 236 */ "uniqueflag ::= UNIQUE", |
| 162321 | /* 237 */ "uniqueflag ::=", |
| 162322 | /* 238 */ "eidlist_opt ::=", |
| 162323 | /* 239 */ "eidlist_opt ::= LP eidlist RP", |
| 162324 | /* 240 */ "eidlist ::= eidlist COMMA nm collate sortorder", |
| 162325 | /* 241 */ "eidlist ::= nm collate sortorder", |
| 162326 | /* 242 */ "collate ::=", |
| 162327 | /* 243 */ "collate ::= COLLATE ID|STRING", |
| 162328 | /* 244 */ "cmd ::= DROP INDEX ifexists fullname", |
| 162329 | /* 245 */ "cmd ::= VACUUM vinto", |
| 162330 | /* 246 */ "cmd ::= VACUUM nm vinto", |
| 162331 | /* 247 */ "vinto ::= INTO expr", |
| 162332 | /* 248 */ "vinto ::=", |
| 162333 | /* 249 */ "cmd ::= PRAGMA nm dbnm", |
| 162334 | /* 250 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", |
| 162335 | /* 251 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", |
| 162336 | /* 252 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", |
| 162337 | /* 253 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP", |
| 162338 | /* 254 */ "plus_num ::= PLUS INTEGER|FLOAT", |
| 162339 | /* 255 */ "minus_num ::= MINUS INTEGER|FLOAT", |
| 162340 | /* 256 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END", |
| 162341 | /* 257 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", |
| 162342 | /* 258 */ "trigger_time ::= BEFORE|AFTER", |
| 162343 | /* 259 */ "trigger_time ::= INSTEAD OF", |
| 162344 | /* 260 */ "trigger_time ::=", |
| 162345 | /* 261 */ "trigger_event ::= DELETE|INSERT", |
| 162346 | /* 262 */ "trigger_event ::= UPDATE", |
| 162347 | /* 263 */ "trigger_event ::= UPDATE OF idlist", |
| 162348 | /* 264 */ "when_clause ::=", |
| 162349 | /* 265 */ "when_clause ::= WHEN expr", |
| 162350 | /* 266 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", |
| 162351 | /* 267 */ "trigger_cmd_list ::= trigger_cmd SEMI", |
| 162352 | /* 268 */ "trnm ::= nm DOT nm", |
| 162353 | /* 269 */ "tridxby ::= INDEXED BY nm", |
| 162354 | /* 270 */ "tridxby ::= NOT INDEXED", |
| 162355 | /* 271 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt", |
| 162356 | /* 272 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt", |
| 162357 | /* 273 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt", |
| 162358 | /* 274 */ "trigger_cmd ::= scanpt select scanpt", |
| 162359 | /* 275 */ "expr ::= RAISE LP IGNORE RP", |
| 162360 | /* 276 */ "expr ::= RAISE LP raisetype COMMA nm RP", |
| 162361 | /* 277 */ "raisetype ::= ROLLBACK", |
| 162362 | /* 278 */ "raisetype ::= ABORT", |
| 162363 | /* 279 */ "raisetype ::= FAIL", |
| 162364 | /* 280 */ "cmd ::= DROP TRIGGER ifexists fullname", |
| 162365 | /* 281 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", |
| 162366 | /* 282 */ "cmd ::= DETACH database_kw_opt expr", |
| 162367 | /* 283 */ "key_opt ::=", |
| 162368 | /* 284 */ "key_opt ::= KEY expr", |
| 162369 | /* 285 */ "cmd ::= REINDEX", |
| 162370 | /* 286 */ "cmd ::= REINDEX nm dbnm", |
| 162371 | /* 287 */ "cmd ::= ANALYZE", |
| 162372 | /* 288 */ "cmd ::= ANALYZE nm dbnm", |
| 162373 | /* 289 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", |
| 162374 | /* 290 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist", |
| 162375 | /* 291 */ "cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm", |
| 162376 | /* 292 */ "add_column_fullname ::= fullname", |
| 162377 | /* 293 */ "cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm", |
| 162378 | /* 294 */ "cmd ::= create_vtab", |
| 162379 | /* 295 */ "cmd ::= create_vtab LP vtabarglist RP", |
| 162380 | /* 296 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm", |
| 162381 | /* 297 */ "vtabarg ::=", |
| 162382 | /* 298 */ "vtabargtoken ::= ANY", |
| 162383 | /* 299 */ "vtabargtoken ::= lp anylist RP", |
| 162384 | /* 300 */ "lp ::= LP", |
| 162385 | /* 301 */ "with ::= WITH wqlist", |
| 162386 | /* 302 */ "with ::= WITH RECURSIVE wqlist", |
| 162387 | /* 303 */ "wqas ::= AS", |
| 162388 | /* 304 */ "wqas ::= AS MATERIALIZED", |
| 162389 | /* 305 */ "wqas ::= AS NOT MATERIALIZED", |
| 162390 | /* 306 */ "wqitem ::= nm eidlist_opt wqas LP select RP", |
| 162391 | /* 307 */ "wqlist ::= wqitem", |
| 162392 | /* 308 */ "wqlist ::= wqlist COMMA wqitem", |
| 162393 | /* 309 */ "windowdefn_list ::= windowdefn", |
| 162394 | /* 310 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", |
| 162395 | /* 311 */ "windowdefn ::= nm AS LP window RP", |
| 162396 | /* 312 */ "window ::= PARTITION BY nexprlist orderby_opt frame_opt", |
| 162397 | /* 313 */ "window ::= nm PARTITION BY nexprlist orderby_opt frame_opt", |
| 162398 | /* 314 */ "window ::= ORDER BY sortlist frame_opt", |
| 162399 | /* 315 */ "window ::= nm ORDER BY sortlist frame_opt", |
| 162400 | /* 316 */ "window ::= frame_opt", |
| 162401 | /* 317 */ "window ::= nm frame_opt", |
| 162402 | /* 318 */ "frame_opt ::=", |
| 162403 | /* 319 */ "frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt", |
| 162404 | /* 320 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt", |
| 162405 | /* 321 */ "range_or_rows ::= RANGE|ROWS|GROUPS", |
| 162406 | /* 322 */ "frame_bound_s ::= frame_bound", |
| 162407 | /* 323 */ "frame_bound_s ::= UNBOUNDED PRECEDING", |
| 162408 | /* 324 */ "frame_bound_e ::= frame_bound", |
| 162409 | /* 325 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", |
| 162410 | /* 326 */ "frame_bound ::= expr PRECEDING|FOLLOWING", |
| 162411 | /* 327 */ "frame_bound ::= CURRENT ROW", |
| 162412 | /* 328 */ "frame_exclude_opt ::=", |
| 162413 | /* 329 */ "frame_exclude_opt ::= EXCLUDE frame_exclude", |
| 162414 | /* 330 */ "frame_exclude ::= NO OTHERS", |
| 162415 | /* 331 */ "frame_exclude ::= CURRENT ROW", |
| 162416 | /* 332 */ "frame_exclude ::= GROUP|TIES", |
| 162417 | /* 333 */ "window_clause ::= WINDOW windowdefn_list", |
| 162418 | /* 334 */ "filter_over ::= filter_clause over_clause", |
| 162419 | /* 335 */ "filter_over ::= over_clause", |
| 162420 | /* 336 */ "filter_over ::= filter_clause", |
| 162421 | /* 337 */ "over_clause ::= OVER LP window RP", |
| 162422 | /* 338 */ "over_clause ::= OVER nm", |
| 162423 | /* 339 */ "filter_clause ::= FILTER LP WHERE expr RP", |
| 162424 | /* 340 */ "input ::= cmdlist", |
| 162425 | /* 341 */ "cmdlist ::= cmdlist ecmd", |
| 162426 | /* 342 */ "cmdlist ::= ecmd", |
| 162427 | /* 343 */ "ecmd ::= SEMI", |
| 162428 | /* 344 */ "ecmd ::= cmdx SEMI", |
| 162429 | /* 345 */ "ecmd ::= explain cmdx SEMI", |
| 162430 | /* 346 */ "trans_opt ::=", |
| 162431 | /* 347 */ "trans_opt ::= TRANSACTION", |
| 162432 | /* 348 */ "trans_opt ::= TRANSACTION nm", |
| 162433 | /* 349 */ "savepoint_opt ::= SAVEPOINT", |
| 162434 | /* 350 */ "savepoint_opt ::=", |
| 162435 | /* 351 */ "cmd ::= create_table create_table_args", |
| 162436 | /* 352 */ "table_option_set ::= table_option", |
| 162437 | /* 353 */ "columnlist ::= columnlist COMMA columnname carglist", |
| 162438 | /* 354 */ "columnlist ::= columnname carglist", |
| 162439 | /* 355 */ "nm ::= ID|INDEXED", |
| 162440 | /* 356 */ "nm ::= STRING", |
| 162441 | /* 357 */ "nm ::= JOIN_KW", |
| 162442 | /* 358 */ "typetoken ::= typename", |
| 162443 | /* 359 */ "typename ::= ID|STRING", |
| 162444 | /* 360 */ "signed ::= plus_num", |
| 162445 | /* 361 */ "signed ::= minus_num", |
| 162446 | /* 362 */ "carglist ::= carglist ccons", |
| 162447 | /* 363 */ "carglist ::=", |
| 162448 | /* 364 */ "ccons ::= NULL onconf", |
| 162449 | /* 365 */ "ccons ::= GENERATED ALWAYS AS generated", |
| 162450 | /* 366 */ "ccons ::= AS generated", |
| 162451 | /* 367 */ "conslist_opt ::= COMMA conslist", |
| 162452 | /* 368 */ "conslist ::= conslist tconscomma tcons", |
| 162453 | /* 369 */ "conslist ::= tcons", |
| 162454 | /* 370 */ "tconscomma ::=", |
| 162455 | /* 371 */ "defer_subclause_opt ::= defer_subclause", |
| 162456 | /* 372 */ "resolvetype ::= raisetype", |
| 162457 | /* 373 */ "selectnowith ::= oneselect", |
| 162458 | /* 374 */ "oneselect ::= values", |
| 162459 | /* 375 */ "sclp ::= selcollist COMMA", |
| 162460 | /* 376 */ "as ::= ID|STRING", |
| 162461 | /* 377 */ "returning ::=", |
| 162462 | /* 378 */ "expr ::= term", |
| 162463 | /* 379 */ "likeop ::= LIKE_KW|MATCH", |
| 162464 | /* 380 */ "exprlist ::= nexprlist", |
| 162465 | /* 381 */ "nmnum ::= plus_num", |
| 162466 | /* 382 */ "nmnum ::= nm", |
| 162467 | /* 383 */ "nmnum ::= ON", |
| 162468 | /* 384 */ "nmnum ::= DELETE", |
| 162469 | /* 385 */ "nmnum ::= DEFAULT", |
| 162470 | /* 386 */ "plus_num ::= INTEGER|FLOAT", |
| 162471 | /* 387 */ "foreach_clause ::=", |
| 162472 | /* 388 */ "foreach_clause ::= FOR EACH ROW", |
| 162473 | /* 389 */ "trnm ::= nm", |
| 162474 | /* 390 */ "tridxby ::=", |
| 162475 | /* 391 */ "database_kw_opt ::= DATABASE", |
| 162476 | /* 392 */ "database_kw_opt ::=", |
| 162477 | /* 393 */ "kwcolumn_opt ::=", |
| 162478 | /* 394 */ "kwcolumn_opt ::= COLUMNKW", |
| 162479 | /* 395 */ "vtabarglist ::= vtabarg", |
| 162480 | /* 396 */ "vtabarglist ::= vtabarglist COMMA vtabarg", |
| 162481 | /* 397 */ "vtabarg ::= vtabarg vtabargtoken", |
| 162482 | /* 398 */ "anylist ::=", |
| 162483 | /* 399 */ "anylist ::= anylist LP anylist RP", |
| 162484 | /* 400 */ "anylist ::= anylist ANY", |
| 162485 | /* 401 */ "with ::=", |
| 162486 | }; |
| 162487 | #endif /* NDEBUG */ |
| 162488 | |
| 162489 | |
| 162490 | #if YYSTACKDEPTH<=0 |
| @@ -162570,103 +162606,103 @@ | |
| 162606 | ** Note: during a reduce, the only symbols destroyed are those |
| 162607 | ** which appear on the RHS of the rule, but which are *not* used |
| 162608 | ** inside the C code. |
| 162609 | */ |
| 162610 | /********* Begin destructor definitions ***************************************/ |
| 162611 | case 204: /* select */ |
| 162612 | case 239: /* selectnowith */ |
| 162613 | case 240: /* oneselect */ |
| 162614 | case 252: /* values */ |
| 162615 | { |
| 162616 | sqlite3SelectDelete(pParse->db, (yypminor->yy47)); |
| 162617 | } |
| 162618 | break; |
| 162619 | case 216: /* term */ |
| 162620 | case 217: /* expr */ |
| 162621 | case 246: /* where_opt */ |
| 162622 | case 248: /* having_opt */ |
| 162623 | case 260: /* on_opt */ |
| 162624 | case 267: /* where_opt_ret */ |
| 162625 | case 278: /* case_operand */ |
| 162626 | case 280: /* case_else */ |
| 162627 | case 283: /* vinto */ |
| 162628 | case 290: /* when_clause */ |
| 162629 | case 295: /* key_opt */ |
| 162630 | case 311: /* filter_clause */ |
| 162631 | { |
| 162632 | sqlite3ExprDelete(pParse->db, (yypminor->yy528)); |
| 162633 | } |
| 162634 | break; |
| 162635 | case 221: /* eidlist_opt */ |
| 162636 | case 231: /* sortlist */ |
| 162637 | case 232: /* eidlist */ |
| 162638 | case 244: /* selcollist */ |
| 162639 | case 247: /* groupby_opt */ |
| 162640 | case 249: /* orderby_opt */ |
| 162641 | case 253: /* nexprlist */ |
| 162642 | case 254: /* sclp */ |
| 162643 | case 262: /* exprlist */ |
| 162644 | case 268: /* setlist */ |
| 162645 | case 277: /* paren_exprlist */ |
| 162646 | case 279: /* case_exprlist */ |
| 162647 | case 310: /* part_opt */ |
| 162648 | { |
| 162649 | sqlite3ExprListDelete(pParse->db, (yypminor->yy322)); |
| 162650 | } |
| 162651 | break; |
| 162652 | case 238: /* fullname */ |
| 162653 | case 245: /* from */ |
| 162654 | case 256: /* seltablist */ |
| 162655 | case 257: /* stl_prefix */ |
| 162656 | case 263: /* xfullname */ |
| 162657 | { |
| 162658 | sqlite3SrcListDelete(pParse->db, (yypminor->yy131)); |
| 162659 | } |
| 162660 | break; |
| 162661 | case 241: /* wqlist */ |
| 162662 | { |
| 162663 | sqlite3WithDelete(pParse->db, (yypminor->yy521)); |
| 162664 | } |
| 162665 | break; |
| 162666 | case 251: /* window_clause */ |
| 162667 | case 306: /* windowdefn_list */ |
| 162668 | { |
| 162669 | sqlite3WindowListDelete(pParse->db, (yypminor->yy41)); |
| 162670 | } |
| 162671 | break; |
| 162672 | case 261: /* using_opt */ |
| 162673 | case 264: /* idlist */ |
| 162674 | case 270: /* idlist_opt */ |
| 162675 | { |
| 162676 | sqlite3IdListDelete(pParse->db, (yypminor->yy254)); |
| 162677 | } |
| 162678 | break; |
| 162679 | case 273: /* filter_over */ |
| 162680 | case 307: /* windowdefn */ |
| 162681 | case 308: /* window */ |
| 162682 | case 309: /* frame_opt */ |
| 162683 | case 312: /* over_clause */ |
| 162684 | { |
| 162685 | sqlite3WindowDelete(pParse->db, (yypminor->yy41)); |
| 162686 | } |
| 162687 | break; |
| 162688 | case 286: /* trigger_cmd_list */ |
| 162689 | case 291: /* trigger_cmd */ |
| 162690 | { |
| 162691 | sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy33)); |
| 162692 | } |
| 162693 | break; |
| 162694 | case 288: /* trigger_event */ |
| 162695 | { |
| 162696 | sqlite3IdListDelete(pParse->db, (yypminor->yy180).b); |
| 162697 | } |
| 162698 | break; |
| 162699 | case 314: /* frame_bound */ |
| 162700 | case 315: /* frame_bound_s */ |
| 162701 | case 316: /* frame_bound_e */ |
| 162702 | { |
| 162703 | sqlite3ExprDelete(pParse->db, (yypminor->yy595).pExpr); |
| 162704 | } |
| 162705 | break; |
| 162706 | /********* End destructor definitions *****************************************/ |
| 162707 | default: break; /* If no destructor action specified: do nothing */ |
| 162708 | } |
| @@ -162953,411 +162989,412 @@ | |
| 162989 | } |
| 162990 | |
| 162991 | /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side |
| 162992 | ** of that rule */ |
| 162993 | static const YYCODETYPE yyRuleInfoLhs[] = { |
| 162994 | 189, /* (0) explain ::= EXPLAIN */ |
| 162995 | 189, /* (1) explain ::= EXPLAIN QUERY PLAN */ |
| 162996 | 188, /* (2) cmdx ::= cmd */ |
| 162997 | 190, /* (3) cmd ::= BEGIN transtype trans_opt */ |
| 162998 | 191, /* (4) transtype ::= */ |
| 162999 | 191, /* (5) transtype ::= DEFERRED */ |
| 163000 | 191, /* (6) transtype ::= IMMEDIATE */ |
| 163001 | 191, /* (7) transtype ::= EXCLUSIVE */ |
| 163002 | 190, /* (8) cmd ::= COMMIT|END trans_opt */ |
| 163003 | 190, /* (9) cmd ::= ROLLBACK trans_opt */ |
| 163004 | 190, /* (10) cmd ::= SAVEPOINT nm */ |
| 163005 | 190, /* (11) cmd ::= RELEASE savepoint_opt nm */ |
| 163006 | 190, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ |
| 163007 | 195, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */ |
| 163008 | 197, /* (14) createkw ::= CREATE */ |
| 163009 | 199, /* (15) ifnotexists ::= */ |
| 163010 | 199, /* (16) ifnotexists ::= IF NOT EXISTS */ |
| 163011 | 198, /* (17) temp ::= TEMP */ |
| 163012 | 198, /* (18) temp ::= */ |
| 163013 | 196, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_option_set */ |
| 163014 | 196, /* (20) create_table_args ::= AS select */ |
| 163015 | 203, /* (21) table_option_set ::= */ |
| 163016 | 203, /* (22) table_option_set ::= table_option_set COMMA table_option */ |
| 163017 | 205, /* (23) table_option ::= WITHOUT nm */ |
| 163018 | 205, /* (24) table_option ::= nm */ |
| 163019 | 206, /* (25) columnname ::= nm typetoken */ |
| 163020 | 208, /* (26) typetoken ::= */ |
| 163021 | 208, /* (27) typetoken ::= typename LP signed RP */ |
| 163022 | 208, /* (28) typetoken ::= typename LP signed COMMA signed RP */ |
| 163023 | 209, /* (29) typename ::= typename ID|STRING */ |
| 163024 | 213, /* (30) scanpt ::= */ |
| 163025 | 214, /* (31) scantok ::= */ |
| 163026 | 215, /* (32) ccons ::= CONSTRAINT nm */ |
| 163027 | 215, /* (33) ccons ::= DEFAULT scantok term */ |
| 163028 | 215, /* (34) ccons ::= DEFAULT LP expr RP */ |
| 163029 | 215, /* (35) ccons ::= DEFAULT PLUS scantok term */ |
| 163030 | 215, /* (36) ccons ::= DEFAULT MINUS scantok term */ |
| 163031 | 215, /* (37) ccons ::= DEFAULT scantok ID|INDEXED */ |
| 163032 | 215, /* (38) ccons ::= NOT NULL onconf */ |
| 163033 | 215, /* (39) ccons ::= PRIMARY KEY sortorder onconf autoinc */ |
| 163034 | 215, /* (40) ccons ::= UNIQUE onconf */ |
| 163035 | 215, /* (41) ccons ::= CHECK LP expr RP */ |
| 163036 | 215, /* (42) ccons ::= REFERENCES nm eidlist_opt refargs */ |
| 163037 | 215, /* (43) ccons ::= defer_subclause */ |
| 163038 | 215, /* (44) ccons ::= COLLATE ID|STRING */ |
| 163039 | 224, /* (45) generated ::= LP expr RP */ |
| 163040 | 224, /* (46) generated ::= LP expr RP ID */ |
| 163041 | 220, /* (47) autoinc ::= */ |
| 163042 | 220, /* (48) autoinc ::= AUTOINCR */ |
| 163043 | 222, /* (49) refargs ::= */ |
| 163044 | 222, /* (50) refargs ::= refargs refarg */ |
| 163045 | 225, /* (51) refarg ::= MATCH nm */ |
| 163046 | 225, /* (52) refarg ::= ON INSERT refact */ |
| 163047 | 225, /* (53) refarg ::= ON DELETE refact */ |
| 163048 | 225, /* (54) refarg ::= ON UPDATE refact */ |
| 163049 | 226, /* (55) refact ::= SET NULL */ |
| 163050 | 226, /* (56) refact ::= SET DEFAULT */ |
| 163051 | 226, /* (57) refact ::= CASCADE */ |
| 163052 | 226, /* (58) refact ::= RESTRICT */ |
| 163053 | 226, /* (59) refact ::= NO ACTION */ |
| 163054 | 223, /* (60) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ |
| 163055 | 223, /* (61) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ |
| 163056 | 227, /* (62) init_deferred_pred_opt ::= */ |
| 163057 | 227, /* (63) init_deferred_pred_opt ::= INITIALLY DEFERRED */ |
| 163058 | 227, /* (64) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ |
| 163059 | 202, /* (65) conslist_opt ::= */ |
| 163060 | 229, /* (66) tconscomma ::= COMMA */ |
| 163061 | 230, /* (67) tcons ::= CONSTRAINT nm */ |
| 163062 | 230, /* (68) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ |
| 163063 | 230, /* (69) tcons ::= UNIQUE LP sortlist RP onconf */ |
| 163064 | 230, /* (70) tcons ::= CHECK LP expr RP onconf */ |
| 163065 | 230, /* (71) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ |
| 163066 | 233, /* (72) defer_subclause_opt ::= */ |
| 163067 | 218, /* (73) onconf ::= */ |
| 163068 | 218, /* (74) onconf ::= ON CONFLICT resolvetype */ |
| 163069 | 234, /* (75) orconf ::= */ |
| 163070 | 234, /* (76) orconf ::= OR resolvetype */ |
| 163071 | 235, /* (77) resolvetype ::= IGNORE */ |
| 163072 | 235, /* (78) resolvetype ::= REPLACE */ |
| 163073 | 190, /* (79) cmd ::= DROP TABLE ifexists fullname */ |
| 163074 | 237, /* (80) ifexists ::= IF EXISTS */ |
| 163075 | 237, /* (81) ifexists ::= */ |
| 163076 | 190, /* (82) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ |
| 163077 | 190, /* (83) cmd ::= DROP VIEW ifexists fullname */ |
| 163078 | 190, /* (84) cmd ::= select */ |
| 163079 | 204, /* (85) select ::= WITH wqlist selectnowith */ |
| 163080 | 204, /* (86) select ::= WITH RECURSIVE wqlist selectnowith */ |
| 163081 | 204, /* (87) select ::= selectnowith */ |
| 163082 | 239, /* (88) selectnowith ::= selectnowith multiselect_op oneselect */ |
| 163083 | 242, /* (89) multiselect_op ::= UNION */ |
| 163084 | 242, /* (90) multiselect_op ::= UNION ALL */ |
| 163085 | 242, /* (91) multiselect_op ::= EXCEPT|INTERSECT */ |
| 163086 | 240, /* (92) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ |
| 163087 | 240, /* (93) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ |
| 163088 | 252, /* (94) values ::= VALUES LP nexprlist RP */ |
| 163089 | 252, /* (95) values ::= values COMMA LP nexprlist RP */ |
| 163090 | 243, /* (96) distinct ::= DISTINCT */ |
| 163091 | 243, /* (97) distinct ::= ALL */ |
| 163092 | 243, /* (98) distinct ::= */ |
| 163093 | 254, /* (99) sclp ::= */ |
| 163094 | 244, /* (100) selcollist ::= sclp scanpt expr scanpt as */ |
| 163095 | 244, /* (101) selcollist ::= sclp scanpt STAR */ |
| 163096 | 244, /* (102) selcollist ::= sclp scanpt nm DOT STAR */ |
| 163097 | 255, /* (103) as ::= AS nm */ |
| 163098 | 255, /* (104) as ::= */ |
| 163099 | 245, /* (105) from ::= */ |
| 163100 | 245, /* (106) from ::= FROM seltablist */ |
| 163101 | 257, /* (107) stl_prefix ::= seltablist joinop */ |
| 163102 | 257, /* (108) stl_prefix ::= */ |
| 163103 | 256, /* (109) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ |
| 163104 | 256, /* (110) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */ |
| 163105 | 256, /* (111) seltablist ::= stl_prefix LP select RP as on_opt using_opt */ |
| 163106 | 256, /* (112) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ |
| 163107 | 200, /* (113) dbnm ::= */ |
| 163108 | 200, /* (114) dbnm ::= DOT nm */ |
| 163109 | 238, /* (115) fullname ::= nm */ |
| 163110 | 238, /* (116) fullname ::= nm DOT nm */ |
| 163111 | 263, /* (117) xfullname ::= nm */ |
| 163112 | 263, /* (118) xfullname ::= nm DOT nm */ |
| 163113 | 263, /* (119) xfullname ::= nm DOT nm AS nm */ |
| 163114 | 263, /* (120) xfullname ::= nm AS nm */ |
| 163115 | 258, /* (121) joinop ::= COMMA|JOIN */ |
| 163116 | 258, /* (122) joinop ::= JOIN_KW JOIN */ |
| 163117 | 258, /* (123) joinop ::= JOIN_KW nm JOIN */ |
| 163118 | 258, /* (124) joinop ::= JOIN_KW nm nm JOIN */ |
| 163119 | 260, /* (125) on_opt ::= ON expr */ |
| 163120 | 260, /* (126) on_opt ::= */ |
| 163121 | 259, /* (127) indexed_opt ::= */ |
| 163122 | 259, /* (128) indexed_opt ::= INDEXED BY nm */ |
| 163123 | 259, /* (129) indexed_opt ::= NOT INDEXED */ |
| 163124 | 261, /* (130) using_opt ::= USING LP idlist RP */ |
| 163125 | 261, /* (131) using_opt ::= */ |
| 163126 | 249, /* (132) orderby_opt ::= */ |
| 163127 | 249, /* (133) orderby_opt ::= ORDER BY sortlist */ |
| 163128 | 231, /* (134) sortlist ::= sortlist COMMA expr sortorder nulls */ |
| 163129 | 231, /* (135) sortlist ::= expr sortorder nulls */ |
| 163130 | 219, /* (136) sortorder ::= ASC */ |
| 163131 | 219, /* (137) sortorder ::= DESC */ |
| 163132 | 219, /* (138) sortorder ::= */ |
| 163133 | 265, /* (139) nulls ::= NULLS FIRST */ |
| 163134 | 265, /* (140) nulls ::= NULLS LAST */ |
| 163135 | 265, /* (141) nulls ::= */ |
| 163136 | 247, /* (142) groupby_opt ::= */ |
| 163137 | 247, /* (143) groupby_opt ::= GROUP BY nexprlist */ |
| 163138 | 248, /* (144) having_opt ::= */ |
| 163139 | 248, /* (145) having_opt ::= HAVING expr */ |
| 163140 | 250, /* (146) limit_opt ::= */ |
| 163141 | 250, /* (147) limit_opt ::= LIMIT expr */ |
| 163142 | 250, /* (148) limit_opt ::= LIMIT expr OFFSET expr */ |
| 163143 | 250, /* (149) limit_opt ::= LIMIT expr COMMA expr */ |
| 163144 | 190, /* (150) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ |
| 163145 | 246, /* (151) where_opt ::= */ |
| 163146 | 246, /* (152) where_opt ::= WHERE expr */ |
| 163147 | 267, /* (153) where_opt_ret ::= */ |
| 163148 | 267, /* (154) where_opt_ret ::= WHERE expr */ |
| 163149 | 267, /* (155) where_opt_ret ::= RETURNING selcollist */ |
| 163150 | 267, /* (156) where_opt_ret ::= WHERE expr RETURNING selcollist */ |
| 163151 | 190, /* (157) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ |
| 163152 | 268, /* (158) setlist ::= setlist COMMA nm EQ expr */ |
| 163153 | 268, /* (159) setlist ::= setlist COMMA LP idlist RP EQ expr */ |
| 163154 | 268, /* (160) setlist ::= nm EQ expr */ |
| 163155 | 268, /* (161) setlist ::= LP idlist RP EQ expr */ |
| 163156 | 190, /* (162) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ |
| 163157 | 190, /* (163) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ |
| 163158 | 271, /* (164) upsert ::= */ |
| 163159 | 271, /* (165) upsert ::= RETURNING selcollist */ |
| 163160 | 271, /* (166) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ |
| 163161 | 271, /* (167) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ |
| 163162 | 271, /* (168) upsert ::= ON CONFLICT DO NOTHING returning */ |
| 163163 | 271, /* (169) upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ |
| 163164 | 272, /* (170) returning ::= RETURNING selcollist */ |
| 163165 | 269, /* (171) insert_cmd ::= INSERT orconf */ |
| 163166 | 269, /* (172) insert_cmd ::= REPLACE */ |
| 163167 | 270, /* (173) idlist_opt ::= */ |
| 163168 | 270, /* (174) idlist_opt ::= LP idlist RP */ |
| 163169 | 264, /* (175) idlist ::= idlist COMMA nm */ |
| 163170 | 264, /* (176) idlist ::= nm */ |
| 163171 | 217, /* (177) expr ::= LP expr RP */ |
| 163172 | 217, /* (178) expr ::= ID|INDEXED */ |
| 163173 | 217, /* (179) expr ::= JOIN_KW */ |
| 163174 | 217, /* (180) expr ::= nm DOT nm */ |
| 163175 | 217, /* (181) expr ::= nm DOT nm DOT nm */ |
| 163176 | 216, /* (182) term ::= NULL|FLOAT|BLOB */ |
| 163177 | 216, /* (183) term ::= STRING */ |
| 163178 | 216, /* (184) term ::= INTEGER */ |
| 163179 | 217, /* (185) expr ::= VARIABLE */ |
| 163180 | 217, /* (186) expr ::= expr COLLATE ID|STRING */ |
| 163181 | 217, /* (187) expr ::= CAST LP expr AS typetoken RP */ |
| 163182 | 217, /* (188) expr ::= ID|INDEXED LP distinct exprlist RP */ |
| 163183 | 217, /* (189) expr ::= ID|INDEXED LP STAR RP */ |
| 163184 | 217, /* (190) expr ::= ID|INDEXED LP distinct exprlist RP filter_over */ |
| 163185 | 217, /* (191) expr ::= ID|INDEXED LP STAR RP filter_over */ |
| 163186 | 216, /* (192) term ::= CTIME_KW */ |
| 163187 | 217, /* (193) expr ::= LP nexprlist COMMA expr RP */ |
| 163188 | 217, /* (194) expr ::= expr AND expr */ |
| 163189 | 217, /* (195) expr ::= expr OR expr */ |
| 163190 | 217, /* (196) expr ::= expr LT|GT|GE|LE expr */ |
| 163191 | 217, /* (197) expr ::= expr EQ|NE expr */ |
| 163192 | 217, /* (198) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ |
| 163193 | 217, /* (199) expr ::= expr PLUS|MINUS expr */ |
| 163194 | 217, /* (200) expr ::= expr STAR|SLASH|REM expr */ |
| 163195 | 217, /* (201) expr ::= expr CONCAT expr */ |
| 163196 | 274, /* (202) likeop ::= NOT LIKE_KW|MATCH */ |
| 163197 | 217, /* (203) expr ::= expr likeop expr */ |
| 163198 | 217, /* (204) expr ::= expr likeop expr ESCAPE expr */ |
| 163199 | 217, /* (205) expr ::= expr ISNULL|NOTNULL */ |
| 163200 | 217, /* (206) expr ::= expr NOT NULL */ |
| 163201 | 217, /* (207) expr ::= expr IS expr */ |
| 163202 | 217, /* (208) expr ::= expr IS NOT expr */ |
| 163203 | 217, /* (209) expr ::= NOT expr */ |
| 163204 | 217, /* (210) expr ::= BITNOT expr */ |
| 163205 | 217, /* (211) expr ::= PLUS|MINUS expr */ |
| 163206 | 217, /* (212) expr ::= expr PTR expr */ |
| 163207 | 275, /* (213) between_op ::= BETWEEN */ |
| 163208 | 275, /* (214) between_op ::= NOT BETWEEN */ |
| 163209 | 217, /* (215) expr ::= expr between_op expr AND expr */ |
| 163210 | 276, /* (216) in_op ::= IN */ |
| 163211 | 276, /* (217) in_op ::= NOT IN */ |
| 163212 | 217, /* (218) expr ::= expr in_op LP exprlist RP */ |
| 163213 | 217, /* (219) expr ::= LP select RP */ |
| 163214 | 217, /* (220) expr ::= expr in_op LP select RP */ |
| 163215 | 217, /* (221) expr ::= expr in_op nm dbnm paren_exprlist */ |
| 163216 | 217, /* (222) expr ::= EXISTS LP select RP */ |
| 163217 | 217, /* (223) expr ::= CASE case_operand case_exprlist case_else END */ |
| 163218 | 279, /* (224) case_exprlist ::= case_exprlist WHEN expr THEN expr */ |
| 163219 | 279, /* (225) case_exprlist ::= WHEN expr THEN expr */ |
| 163220 | 280, /* (226) case_else ::= ELSE expr */ |
| 163221 | 280, /* (227) case_else ::= */ |
| 163222 | 278, /* (228) case_operand ::= expr */ |
| 163223 | 278, /* (229) case_operand ::= */ |
| 163224 | 262, /* (230) exprlist ::= */ |
| 163225 | 253, /* (231) nexprlist ::= nexprlist COMMA expr */ |
| 163226 | 253, /* (232) nexprlist ::= expr */ |
| 163227 | 277, /* (233) paren_exprlist ::= */ |
| 163228 | 277, /* (234) paren_exprlist ::= LP exprlist RP */ |
| 163229 | 190, /* (235) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ |
| 163230 | 281, /* (236) uniqueflag ::= UNIQUE */ |
| 163231 | 281, /* (237) uniqueflag ::= */ |
| 163232 | 221, /* (238) eidlist_opt ::= */ |
| 163233 | 221, /* (239) eidlist_opt ::= LP eidlist RP */ |
| 163234 | 232, /* (240) eidlist ::= eidlist COMMA nm collate sortorder */ |
| 163235 | 232, /* (241) eidlist ::= nm collate sortorder */ |
| 163236 | 282, /* (242) collate ::= */ |
| 163237 | 282, /* (243) collate ::= COLLATE ID|STRING */ |
| 163238 | 190, /* (244) cmd ::= DROP INDEX ifexists fullname */ |
| 163239 | 190, /* (245) cmd ::= VACUUM vinto */ |
| 163240 | 190, /* (246) cmd ::= VACUUM nm vinto */ |
| 163241 | 283, /* (247) vinto ::= INTO expr */ |
| 163242 | 283, /* (248) vinto ::= */ |
| 163243 | 190, /* (249) cmd ::= PRAGMA nm dbnm */ |
| 163244 | 190, /* (250) cmd ::= PRAGMA nm dbnm EQ nmnum */ |
| 163245 | 190, /* (251) cmd ::= PRAGMA nm dbnm LP nmnum RP */ |
| 163246 | 190, /* (252) cmd ::= PRAGMA nm dbnm EQ minus_num */ |
| 163247 | 190, /* (253) cmd ::= PRAGMA nm dbnm LP minus_num RP */ |
| 163248 | 211, /* (254) plus_num ::= PLUS INTEGER|FLOAT */ |
| 163249 | 212, /* (255) minus_num ::= MINUS INTEGER|FLOAT */ |
| 163250 | 190, /* (256) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ |
| 163251 | 285, /* (257) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ |
| 163252 | 287, /* (258) trigger_time ::= BEFORE|AFTER */ |
| 163253 | 287, /* (259) trigger_time ::= INSTEAD OF */ |
| 163254 | 287, /* (260) trigger_time ::= */ |
| 163255 | 288, /* (261) trigger_event ::= DELETE|INSERT */ |
| 163256 | 288, /* (262) trigger_event ::= UPDATE */ |
| 163257 | 288, /* (263) trigger_event ::= UPDATE OF idlist */ |
| 163258 | 290, /* (264) when_clause ::= */ |
| 163259 | 290, /* (265) when_clause ::= WHEN expr */ |
| 163260 | 286, /* (266) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ |
| 163261 | 286, /* (267) trigger_cmd_list ::= trigger_cmd SEMI */ |
| 163262 | 292, /* (268) trnm ::= nm DOT nm */ |
| 163263 | 293, /* (269) tridxby ::= INDEXED BY nm */ |
| 163264 | 293, /* (270) tridxby ::= NOT INDEXED */ |
| 163265 | 291, /* (271) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ |
| 163266 | 291, /* (272) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ |
| 163267 | 291, /* (273) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ |
| 163268 | 291, /* (274) trigger_cmd ::= scanpt select scanpt */ |
| 163269 | 217, /* (275) expr ::= RAISE LP IGNORE RP */ |
| 163270 | 217, /* (276) expr ::= RAISE LP raisetype COMMA nm RP */ |
| 163271 | 236, /* (277) raisetype ::= ROLLBACK */ |
| 163272 | 236, /* (278) raisetype ::= ABORT */ |
| 163273 | 236, /* (279) raisetype ::= FAIL */ |
| 163274 | 190, /* (280) cmd ::= DROP TRIGGER ifexists fullname */ |
| 163275 | 190, /* (281) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ |
| 163276 | 190, /* (282) cmd ::= DETACH database_kw_opt expr */ |
| 163277 | 295, /* (283) key_opt ::= */ |
| 163278 | 295, /* (284) key_opt ::= KEY expr */ |
| 163279 | 190, /* (285) cmd ::= REINDEX */ |
| 163280 | 190, /* (286) cmd ::= REINDEX nm dbnm */ |
| 163281 | 190, /* (287) cmd ::= ANALYZE */ |
| 163282 | 190, /* (288) cmd ::= ANALYZE nm dbnm */ |
| 163283 | 190, /* (289) cmd ::= ALTER TABLE fullname RENAME TO nm */ |
| 163284 | 190, /* (290) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ |
| 163285 | 190, /* (291) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ |
| 163286 | 296, /* (292) add_column_fullname ::= fullname */ |
| 163287 | 190, /* (293) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ |
| 163288 | 190, /* (294) cmd ::= create_vtab */ |
| 163289 | 190, /* (295) cmd ::= create_vtab LP vtabarglist RP */ |
| 163290 | 298, /* (296) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ |
| 163291 | 300, /* (297) vtabarg ::= */ |
| 163292 | 301, /* (298) vtabargtoken ::= ANY */ |
| 163293 | 301, /* (299) vtabargtoken ::= lp anylist RP */ |
| 163294 | 302, /* (300) lp ::= LP */ |
| 163295 | 266, /* (301) with ::= WITH wqlist */ |
| 163296 | 266, /* (302) with ::= WITH RECURSIVE wqlist */ |
| 163297 | 305, /* (303) wqas ::= AS */ |
| 163298 | 305, /* (304) wqas ::= AS MATERIALIZED */ |
| 163299 | 305, /* (305) wqas ::= AS NOT MATERIALIZED */ |
| 163300 | 304, /* (306) wqitem ::= nm eidlist_opt wqas LP select RP */ |
| 163301 | 241, /* (307) wqlist ::= wqitem */ |
| 163302 | 241, /* (308) wqlist ::= wqlist COMMA wqitem */ |
| 163303 | 306, /* (309) windowdefn_list ::= windowdefn */ |
| 163304 | 306, /* (310) windowdefn_list ::= windowdefn_list COMMA windowdefn */ |
| 163305 | 307, /* (311) windowdefn ::= nm AS LP window RP */ |
| 163306 | 308, /* (312) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ |
| 163307 | 308, /* (313) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ |
| 163308 | 308, /* (314) window ::= ORDER BY sortlist frame_opt */ |
| 163309 | 308, /* (315) window ::= nm ORDER BY sortlist frame_opt */ |
| 163310 | 308, /* (316) window ::= frame_opt */ |
| 163311 | 308, /* (317) window ::= nm frame_opt */ |
| 163312 | 309, /* (318) frame_opt ::= */ |
| 163313 | 309, /* (319) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ |
| 163314 | 309, /* (320) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ |
| 163315 | 313, /* (321) range_or_rows ::= RANGE|ROWS|GROUPS */ |
| 163316 | 315, /* (322) frame_bound_s ::= frame_bound */ |
| 163317 | 315, /* (323) frame_bound_s ::= UNBOUNDED PRECEDING */ |
| 163318 | 316, /* (324) frame_bound_e ::= frame_bound */ |
| 163319 | 316, /* (325) frame_bound_e ::= UNBOUNDED FOLLOWING */ |
| 163320 | 314, /* (326) frame_bound ::= expr PRECEDING|FOLLOWING */ |
| 163321 | 314, /* (327) frame_bound ::= CURRENT ROW */ |
| 163322 | 317, /* (328) frame_exclude_opt ::= */ |
| 163323 | 317, /* (329) frame_exclude_opt ::= EXCLUDE frame_exclude */ |
| 163324 | 318, /* (330) frame_exclude ::= NO OTHERS */ |
| 163325 | 318, /* (331) frame_exclude ::= CURRENT ROW */ |
| 163326 | 318, /* (332) frame_exclude ::= GROUP|TIES */ |
| 163327 | 251, /* (333) window_clause ::= WINDOW windowdefn_list */ |
| 163328 | 273, /* (334) filter_over ::= filter_clause over_clause */ |
| 163329 | 273, /* (335) filter_over ::= over_clause */ |
| 163330 | 273, /* (336) filter_over ::= filter_clause */ |
| 163331 | 312, /* (337) over_clause ::= OVER LP window RP */ |
| 163332 | 312, /* (338) over_clause ::= OVER nm */ |
| 163333 | 311, /* (339) filter_clause ::= FILTER LP WHERE expr RP */ |
| 163334 | 185, /* (340) input ::= cmdlist */ |
| 163335 | 186, /* (341) cmdlist ::= cmdlist ecmd */ |
| 163336 | 186, /* (342) cmdlist ::= ecmd */ |
| 163337 | 187, /* (343) ecmd ::= SEMI */ |
| 163338 | 187, /* (344) ecmd ::= cmdx SEMI */ |
| 163339 | 187, /* (345) ecmd ::= explain cmdx SEMI */ |
| 163340 | 192, /* (346) trans_opt ::= */ |
| 163341 | 192, /* (347) trans_opt ::= TRANSACTION */ |
| 163342 | 192, /* (348) trans_opt ::= TRANSACTION nm */ |
| 163343 | 194, /* (349) savepoint_opt ::= SAVEPOINT */ |
| 163344 | 194, /* (350) savepoint_opt ::= */ |
| 163345 | 190, /* (351) cmd ::= create_table create_table_args */ |
| 163346 | 203, /* (352) table_option_set ::= table_option */ |
| 163347 | 201, /* (353) columnlist ::= columnlist COMMA columnname carglist */ |
| 163348 | 201, /* (354) columnlist ::= columnname carglist */ |
| 163349 | 193, /* (355) nm ::= ID|INDEXED */ |
| 163350 | 193, /* (356) nm ::= STRING */ |
| 163351 | 193, /* (357) nm ::= JOIN_KW */ |
| 163352 | 208, /* (358) typetoken ::= typename */ |
| 163353 | 209, /* (359) typename ::= ID|STRING */ |
| 163354 | 210, /* (360) signed ::= plus_num */ |
| 163355 | 210, /* (361) signed ::= minus_num */ |
| 163356 | 207, /* (362) carglist ::= carglist ccons */ |
| 163357 | 207, /* (363) carglist ::= */ |
| 163358 | 215, /* (364) ccons ::= NULL onconf */ |
| 163359 | 215, /* (365) ccons ::= GENERATED ALWAYS AS generated */ |
| 163360 | 215, /* (366) ccons ::= AS generated */ |
| 163361 | 202, /* (367) conslist_opt ::= COMMA conslist */ |
| 163362 | 228, /* (368) conslist ::= conslist tconscomma tcons */ |
| 163363 | 228, /* (369) conslist ::= tcons */ |
| 163364 | 229, /* (370) tconscomma ::= */ |
| 163365 | 233, /* (371) defer_subclause_opt ::= defer_subclause */ |
| 163366 | 235, /* (372) resolvetype ::= raisetype */ |
| 163367 | 239, /* (373) selectnowith ::= oneselect */ |
| 163368 | 240, /* (374) oneselect ::= values */ |
| 163369 | 254, /* (375) sclp ::= selcollist COMMA */ |
| 163370 | 255, /* (376) as ::= ID|STRING */ |
| 163371 | 272, /* (377) returning ::= */ |
| 163372 | 217, /* (378) expr ::= term */ |
| 163373 | 274, /* (379) likeop ::= LIKE_KW|MATCH */ |
| 163374 | 262, /* (380) exprlist ::= nexprlist */ |
| 163375 | 284, /* (381) nmnum ::= plus_num */ |
| 163376 | 284, /* (382) nmnum ::= nm */ |
| 163377 | 284, /* (383) nmnum ::= ON */ |
| 163378 | 284, /* (384) nmnum ::= DELETE */ |
| 163379 | 284, /* (385) nmnum ::= DEFAULT */ |
| 163380 | 211, /* (386) plus_num ::= INTEGER|FLOAT */ |
| 163381 | 289, /* (387) foreach_clause ::= */ |
| 163382 | 289, /* (388) foreach_clause ::= FOR EACH ROW */ |
| 163383 | 292, /* (389) trnm ::= nm */ |
| 163384 | 293, /* (390) tridxby ::= */ |
| 163385 | 294, /* (391) database_kw_opt ::= DATABASE */ |
| 163386 | 294, /* (392) database_kw_opt ::= */ |
| 163387 | 297, /* (393) kwcolumn_opt ::= */ |
| 163388 | 297, /* (394) kwcolumn_opt ::= COLUMNKW */ |
| 163389 | 299, /* (395) vtabarglist ::= vtabarg */ |
| 163390 | 299, /* (396) vtabarglist ::= vtabarglist COMMA vtabarg */ |
| 163391 | 300, /* (397) vtabarg ::= vtabarg vtabargtoken */ |
| 163392 | 303, /* (398) anylist ::= */ |
| 163393 | 303, /* (399) anylist ::= anylist LP anylist RP */ |
| 163394 | 303, /* (400) anylist ::= anylist ANY */ |
| 163395 | 266, /* (401) with ::= */ |
| 163396 | }; |
| 163397 | |
| 163398 | /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number |
| 163399 | ** of symbols on the right-hand side of that rule. */ |
| 163400 | static const signed char yyRuleInfoNRhs[] = { |
| @@ -163571,199 +163608,200 @@ | |
| 163608 | -3, /* (207) expr ::= expr IS expr */ |
| 163609 | -4, /* (208) expr ::= expr IS NOT expr */ |
| 163610 | -2, /* (209) expr ::= NOT expr */ |
| 163611 | -2, /* (210) expr ::= BITNOT expr */ |
| 163612 | -2, /* (211) expr ::= PLUS|MINUS expr */ |
| 163613 | -3, /* (212) expr ::= expr PTR expr */ |
| 163614 | -1, /* (213) between_op ::= BETWEEN */ |
| 163615 | -2, /* (214) between_op ::= NOT BETWEEN */ |
| 163616 | -5, /* (215) expr ::= expr between_op expr AND expr */ |
| 163617 | -1, /* (216) in_op ::= IN */ |
| 163618 | -2, /* (217) in_op ::= NOT IN */ |
| 163619 | -5, /* (218) expr ::= expr in_op LP exprlist RP */ |
| 163620 | -3, /* (219) expr ::= LP select RP */ |
| 163621 | -5, /* (220) expr ::= expr in_op LP select RP */ |
| 163622 | -5, /* (221) expr ::= expr in_op nm dbnm paren_exprlist */ |
| 163623 | -4, /* (222) expr ::= EXISTS LP select RP */ |
| 163624 | -5, /* (223) expr ::= CASE case_operand case_exprlist case_else END */ |
| 163625 | -5, /* (224) case_exprlist ::= case_exprlist WHEN expr THEN expr */ |
| 163626 | -4, /* (225) case_exprlist ::= WHEN expr THEN expr */ |
| 163627 | -2, /* (226) case_else ::= ELSE expr */ |
| 163628 | 0, /* (227) case_else ::= */ |
| 163629 | -1, /* (228) case_operand ::= expr */ |
| 163630 | 0, /* (229) case_operand ::= */ |
| 163631 | 0, /* (230) exprlist ::= */ |
| 163632 | -3, /* (231) nexprlist ::= nexprlist COMMA expr */ |
| 163633 | -1, /* (232) nexprlist ::= expr */ |
| 163634 | 0, /* (233) paren_exprlist ::= */ |
| 163635 | -3, /* (234) paren_exprlist ::= LP exprlist RP */ |
| 163636 | -12, /* (235) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ |
| 163637 | -1, /* (236) uniqueflag ::= UNIQUE */ |
| 163638 | 0, /* (237) uniqueflag ::= */ |
| 163639 | 0, /* (238) eidlist_opt ::= */ |
| 163640 | -3, /* (239) eidlist_opt ::= LP eidlist RP */ |
| 163641 | -5, /* (240) eidlist ::= eidlist COMMA nm collate sortorder */ |
| 163642 | -3, /* (241) eidlist ::= nm collate sortorder */ |
| 163643 | 0, /* (242) collate ::= */ |
| 163644 | -2, /* (243) collate ::= COLLATE ID|STRING */ |
| 163645 | -4, /* (244) cmd ::= DROP INDEX ifexists fullname */ |
| 163646 | -2, /* (245) cmd ::= VACUUM vinto */ |
| 163647 | -3, /* (246) cmd ::= VACUUM nm vinto */ |
| 163648 | -2, /* (247) vinto ::= INTO expr */ |
| 163649 | 0, /* (248) vinto ::= */ |
| 163650 | -3, /* (249) cmd ::= PRAGMA nm dbnm */ |
| 163651 | -5, /* (250) cmd ::= PRAGMA nm dbnm EQ nmnum */ |
| 163652 | -6, /* (251) cmd ::= PRAGMA nm dbnm LP nmnum RP */ |
| 163653 | -5, /* (252) cmd ::= PRAGMA nm dbnm EQ minus_num */ |
| 163654 | -6, /* (253) cmd ::= PRAGMA nm dbnm LP minus_num RP */ |
| 163655 | -2, /* (254) plus_num ::= PLUS INTEGER|FLOAT */ |
| 163656 | -2, /* (255) minus_num ::= MINUS INTEGER|FLOAT */ |
| 163657 | -5, /* (256) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ |
| 163658 | -11, /* (257) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ |
| 163659 | -1, /* (258) trigger_time ::= BEFORE|AFTER */ |
| 163660 | -2, /* (259) trigger_time ::= INSTEAD OF */ |
| 163661 | 0, /* (260) trigger_time ::= */ |
| 163662 | -1, /* (261) trigger_event ::= DELETE|INSERT */ |
| 163663 | -1, /* (262) trigger_event ::= UPDATE */ |
| 163664 | -3, /* (263) trigger_event ::= UPDATE OF idlist */ |
| 163665 | 0, /* (264) when_clause ::= */ |
| 163666 | -2, /* (265) when_clause ::= WHEN expr */ |
| 163667 | -3, /* (266) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ |
| 163668 | -2, /* (267) trigger_cmd_list ::= trigger_cmd SEMI */ |
| 163669 | -3, /* (268) trnm ::= nm DOT nm */ |
| 163670 | -3, /* (269) tridxby ::= INDEXED BY nm */ |
| 163671 | -2, /* (270) tridxby ::= NOT INDEXED */ |
| 163672 | -9, /* (271) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ |
| 163673 | -8, /* (272) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ |
| 163674 | -6, /* (273) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ |
| 163675 | -3, /* (274) trigger_cmd ::= scanpt select scanpt */ |
| 163676 | -4, /* (275) expr ::= RAISE LP IGNORE RP */ |
| 163677 | -6, /* (276) expr ::= RAISE LP raisetype COMMA nm RP */ |
| 163678 | -1, /* (277) raisetype ::= ROLLBACK */ |
| 163679 | -1, /* (278) raisetype ::= ABORT */ |
| 163680 | -1, /* (279) raisetype ::= FAIL */ |
| 163681 | -4, /* (280) cmd ::= DROP TRIGGER ifexists fullname */ |
| 163682 | -6, /* (281) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ |
| 163683 | -3, /* (282) cmd ::= DETACH database_kw_opt expr */ |
| 163684 | 0, /* (283) key_opt ::= */ |
| 163685 | -2, /* (284) key_opt ::= KEY expr */ |
| 163686 | -1, /* (285) cmd ::= REINDEX */ |
| 163687 | -3, /* (286) cmd ::= REINDEX nm dbnm */ |
| 163688 | -1, /* (287) cmd ::= ANALYZE */ |
| 163689 | -3, /* (288) cmd ::= ANALYZE nm dbnm */ |
| 163690 | -6, /* (289) cmd ::= ALTER TABLE fullname RENAME TO nm */ |
| 163691 | -7, /* (290) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ |
| 163692 | -6, /* (291) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ |
| 163693 | -1, /* (292) add_column_fullname ::= fullname */ |
| 163694 | -8, /* (293) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ |
| 163695 | -1, /* (294) cmd ::= create_vtab */ |
| 163696 | -4, /* (295) cmd ::= create_vtab LP vtabarglist RP */ |
| 163697 | -8, /* (296) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ |
| 163698 | 0, /* (297) vtabarg ::= */ |
| 163699 | -1, /* (298) vtabargtoken ::= ANY */ |
| 163700 | -3, /* (299) vtabargtoken ::= lp anylist RP */ |
| 163701 | -1, /* (300) lp ::= LP */ |
| 163702 | -2, /* (301) with ::= WITH wqlist */ |
| 163703 | -3, /* (302) with ::= WITH RECURSIVE wqlist */ |
| 163704 | -1, /* (303) wqas ::= AS */ |
| 163705 | -2, /* (304) wqas ::= AS MATERIALIZED */ |
| 163706 | -3, /* (305) wqas ::= AS NOT MATERIALIZED */ |
| 163707 | -6, /* (306) wqitem ::= nm eidlist_opt wqas LP select RP */ |
| 163708 | -1, /* (307) wqlist ::= wqitem */ |
| 163709 | -3, /* (308) wqlist ::= wqlist COMMA wqitem */ |
| 163710 | -1, /* (309) windowdefn_list ::= windowdefn */ |
| 163711 | -3, /* (310) windowdefn_list ::= windowdefn_list COMMA windowdefn */ |
| 163712 | -5, /* (311) windowdefn ::= nm AS LP window RP */ |
| 163713 | -5, /* (312) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ |
| 163714 | -6, /* (313) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ |
| 163715 | -4, /* (314) window ::= ORDER BY sortlist frame_opt */ |
| 163716 | -5, /* (315) window ::= nm ORDER BY sortlist frame_opt */ |
| 163717 | -1, /* (316) window ::= frame_opt */ |
| 163718 | -2, /* (317) window ::= nm frame_opt */ |
| 163719 | 0, /* (318) frame_opt ::= */ |
| 163720 | -3, /* (319) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ |
| 163721 | -6, /* (320) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ |
| 163722 | -1, /* (321) range_or_rows ::= RANGE|ROWS|GROUPS */ |
| 163723 | -1, /* (322) frame_bound_s ::= frame_bound */ |
| 163724 | -2, /* (323) frame_bound_s ::= UNBOUNDED PRECEDING */ |
| 163725 | -1, /* (324) frame_bound_e ::= frame_bound */ |
| 163726 | -2, /* (325) frame_bound_e ::= UNBOUNDED FOLLOWING */ |
| 163727 | -2, /* (326) frame_bound ::= expr PRECEDING|FOLLOWING */ |
| 163728 | -2, /* (327) frame_bound ::= CURRENT ROW */ |
| 163729 | 0, /* (328) frame_exclude_opt ::= */ |
| 163730 | -2, /* (329) frame_exclude_opt ::= EXCLUDE frame_exclude */ |
| 163731 | -2, /* (330) frame_exclude ::= NO OTHERS */ |
| 163732 | -2, /* (331) frame_exclude ::= CURRENT ROW */ |
| 163733 | -1, /* (332) frame_exclude ::= GROUP|TIES */ |
| 163734 | -2, /* (333) window_clause ::= WINDOW windowdefn_list */ |
| 163735 | -2, /* (334) filter_over ::= filter_clause over_clause */ |
| 163736 | -1, /* (335) filter_over ::= over_clause */ |
| 163737 | -1, /* (336) filter_over ::= filter_clause */ |
| 163738 | -4, /* (337) over_clause ::= OVER LP window RP */ |
| 163739 | -2, /* (338) over_clause ::= OVER nm */ |
| 163740 | -5, /* (339) filter_clause ::= FILTER LP WHERE expr RP */ |
| 163741 | -1, /* (340) input ::= cmdlist */ |
| 163742 | -2, /* (341) cmdlist ::= cmdlist ecmd */ |
| 163743 | -1, /* (342) cmdlist ::= ecmd */ |
| 163744 | -1, /* (343) ecmd ::= SEMI */ |
| 163745 | -2, /* (344) ecmd ::= cmdx SEMI */ |
| 163746 | -3, /* (345) ecmd ::= explain cmdx SEMI */ |
| 163747 | 0, /* (346) trans_opt ::= */ |
| 163748 | -1, /* (347) trans_opt ::= TRANSACTION */ |
| 163749 | -2, /* (348) trans_opt ::= TRANSACTION nm */ |
| 163750 | -1, /* (349) savepoint_opt ::= SAVEPOINT */ |
| 163751 | 0, /* (350) savepoint_opt ::= */ |
| 163752 | -2, /* (351) cmd ::= create_table create_table_args */ |
| 163753 | -1, /* (352) table_option_set ::= table_option */ |
| 163754 | -4, /* (353) columnlist ::= columnlist COMMA columnname carglist */ |
| 163755 | -2, /* (354) columnlist ::= columnname carglist */ |
| 163756 | -1, /* (355) nm ::= ID|INDEXED */ |
| 163757 | -1, /* (356) nm ::= STRING */ |
| 163758 | -1, /* (357) nm ::= JOIN_KW */ |
| 163759 | -1, /* (358) typetoken ::= typename */ |
| 163760 | -1, /* (359) typename ::= ID|STRING */ |
| 163761 | -1, /* (360) signed ::= plus_num */ |
| 163762 | -1, /* (361) signed ::= minus_num */ |
| 163763 | -2, /* (362) carglist ::= carglist ccons */ |
| 163764 | 0, /* (363) carglist ::= */ |
| 163765 | -2, /* (364) ccons ::= NULL onconf */ |
| 163766 | -4, /* (365) ccons ::= GENERATED ALWAYS AS generated */ |
| 163767 | -2, /* (366) ccons ::= AS generated */ |
| 163768 | -2, /* (367) conslist_opt ::= COMMA conslist */ |
| 163769 | -3, /* (368) conslist ::= conslist tconscomma tcons */ |
| 163770 | -1, /* (369) conslist ::= tcons */ |
| 163771 | 0, /* (370) tconscomma ::= */ |
| 163772 | -1, /* (371) defer_subclause_opt ::= defer_subclause */ |
| 163773 | -1, /* (372) resolvetype ::= raisetype */ |
| 163774 | -1, /* (373) selectnowith ::= oneselect */ |
| 163775 | -1, /* (374) oneselect ::= values */ |
| 163776 | -2, /* (375) sclp ::= selcollist COMMA */ |
| 163777 | -1, /* (376) as ::= ID|STRING */ |
| 163778 | 0, /* (377) returning ::= */ |
| 163779 | -1, /* (378) expr ::= term */ |
| 163780 | -1, /* (379) likeop ::= LIKE_KW|MATCH */ |
| 163781 | -1, /* (380) exprlist ::= nexprlist */ |
| 163782 | -1, /* (381) nmnum ::= plus_num */ |
| 163783 | -1, /* (382) nmnum ::= nm */ |
| 163784 | -1, /* (383) nmnum ::= ON */ |
| 163785 | -1, /* (384) nmnum ::= DELETE */ |
| 163786 | -1, /* (385) nmnum ::= DEFAULT */ |
| 163787 | -1, /* (386) plus_num ::= INTEGER|FLOAT */ |
| 163788 | 0, /* (387) foreach_clause ::= */ |
| 163789 | -3, /* (388) foreach_clause ::= FOR EACH ROW */ |
| 163790 | -1, /* (389) trnm ::= nm */ |
| 163791 | 0, /* (390) tridxby ::= */ |
| 163792 | -1, /* (391) database_kw_opt ::= DATABASE */ |
| 163793 | 0, /* (392) database_kw_opt ::= */ |
| 163794 | 0, /* (393) kwcolumn_opt ::= */ |
| 163795 | -1, /* (394) kwcolumn_opt ::= COLUMNKW */ |
| 163796 | -1, /* (395) vtabarglist ::= vtabarg */ |
| 163797 | -3, /* (396) vtabarglist ::= vtabarglist COMMA vtabarg */ |
| 163798 | -2, /* (397) vtabarg ::= vtabarg vtabargtoken */ |
| 163799 | 0, /* (398) anylist ::= */ |
| 163800 | -4, /* (399) anylist ::= anylist LP anylist RP */ |
| 163801 | -2, /* (400) anylist ::= anylist ANY */ |
| 163802 | 0, /* (401) with ::= */ |
| 163803 | }; |
| 163804 | |
| 163805 | static void yy_accept(yyParser*); /* Forward Declaration */ |
| 163806 | |
| 163807 | /* |
| @@ -163811,20 +163849,20 @@ | |
| 163849 | break; |
| 163850 | case 2: /* cmdx ::= cmd */ |
| 163851 | { sqlite3FinishCoding(pParse); } |
| 163852 | break; |
| 163853 | case 3: /* cmd ::= BEGIN transtype trans_opt */ |
| 163854 | {sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy394);} |
| 163855 | break; |
| 163856 | case 4: /* transtype ::= */ |
| 163857 | {yymsp[1].minor.yy394 = TK_DEFERRED;} |
| 163858 | break; |
| 163859 | case 5: /* transtype ::= DEFERRED */ |
| 163860 | case 6: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==6); |
| 163861 | case 7: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==7); |
| 163862 | case 321: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==321); |
| 163863 | {yymsp[0].minor.yy394 = yymsp[0].major; /*A-overwrites-X*/} |
| 163864 | break; |
| 163865 | case 8: /* cmd ::= COMMIT|END trans_opt */ |
| 163866 | case 9: /* cmd ::= ROLLBACK trans_opt */ yytestcase(yyruleno==9); |
| 163867 | {sqlite3EndTransaction(pParse,yymsp[-1].major);} |
| 163868 | break; |
| @@ -163843,11 +163881,11 @@ | |
| 163881 | sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0); |
| 163882 | } |
| 163883 | break; |
| 163884 | case 13: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ |
| 163885 | { |
| 163886 | sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy394,0,0,yymsp[-2].minor.yy394); |
| 163887 | } |
| 163888 | break; |
| 163889 | case 14: /* createkw ::= CREATE */ |
| 163890 | {disableLookaside(pParse);} |
| 163891 | break; |
| @@ -163856,57 +163894,57 @@ | |
| 163894 | case 47: /* autoinc ::= */ yytestcase(yyruleno==47); |
| 163895 | case 62: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==62); |
| 163896 | case 72: /* defer_subclause_opt ::= */ yytestcase(yyruleno==72); |
| 163897 | case 81: /* ifexists ::= */ yytestcase(yyruleno==81); |
| 163898 | case 98: /* distinct ::= */ yytestcase(yyruleno==98); |
| 163899 | case 242: /* collate ::= */ yytestcase(yyruleno==242); |
| 163900 | {yymsp[1].minor.yy394 = 0;} |
| 163901 | break; |
| 163902 | case 16: /* ifnotexists ::= IF NOT EXISTS */ |
| 163903 | {yymsp[-2].minor.yy394 = 1;} |
| 163904 | break; |
| 163905 | case 17: /* temp ::= TEMP */ |
| 163906 | {yymsp[0].minor.yy394 = pParse->db->init.busy==0;} |
| 163907 | break; |
| 163908 | case 19: /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */ |
| 163909 | { |
| 163910 | sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy285,0); |
| 163911 | } |
| 163912 | break; |
| 163913 | case 20: /* create_table_args ::= AS select */ |
| 163914 | { |
| 163915 | sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy47); |
| 163916 | sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy47); |
| 163917 | } |
| 163918 | break; |
| 163919 | case 21: /* table_option_set ::= */ |
| 163920 | {yymsp[1].minor.yy285 = 0;} |
| 163921 | break; |
| 163922 | case 22: /* table_option_set ::= table_option_set COMMA table_option */ |
| 163923 | {yylhsminor.yy285 = yymsp[-2].minor.yy285|yymsp[0].minor.yy285;} |
| 163924 | yymsp[-2].minor.yy285 = yylhsminor.yy285; |
| 163925 | break; |
| 163926 | case 23: /* table_option ::= WITHOUT nm */ |
| 163927 | { |
| 163928 | if( yymsp[0].minor.yy0.n==5 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"rowid",5)==0 ){ |
| 163929 | yymsp[-1].minor.yy285 = TF_WithoutRowid | TF_NoVisibleRowid; |
| 163930 | }else{ |
| 163931 | yymsp[-1].minor.yy285 = 0; |
| 163932 | sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z); |
| 163933 | } |
| 163934 | } |
| 163935 | break; |
| 163936 | case 24: /* table_option ::= nm */ |
| 163937 | { |
| 163938 | if( yymsp[0].minor.yy0.n==6 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"strict",6)==0 ){ |
| 163939 | yylhsminor.yy285 = TF_Strict; |
| 163940 | }else{ |
| 163941 | yylhsminor.yy285 = 0; |
| 163942 | sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z); |
| 163943 | } |
| 163944 | } |
| 163945 | yymsp[0].minor.yy285 = yylhsminor.yy285; |
| 163946 | break; |
| 163947 | case 25: /* columnname ::= nm typetoken */ |
| 163948 | {sqlite3AddColumn(pParse,yymsp[-1].minor.yy0,yymsp[0].minor.yy0);} |
| 163949 | break; |
| 163950 | case 26: /* typetoken ::= */ |
| @@ -163928,11 +163966,11 @@ | |
| 163966 | {yymsp[-1].minor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);} |
| 163967 | break; |
| 163968 | case 30: /* scanpt ::= */ |
| 163969 | { |
| 163970 | assert( yyLookahead!=YYNOCODE ); |
| 163971 | yymsp[1].minor.yy522 = yyLookaheadToken.z; |
| 163972 | } |
| 163973 | break; |
| 163974 | case 31: /* scantok ::= */ |
| 163975 | { |
| 163976 | assert( yyLookahead!=YYNOCODE ); |
| @@ -163942,21 +163980,21 @@ | |
| 163980 | case 32: /* ccons ::= CONSTRAINT nm */ |
| 163981 | case 67: /* tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==67); |
| 163982 | {pParse->constraintName = yymsp[0].minor.yy0;} |
| 163983 | break; |
| 163984 | case 33: /* ccons ::= DEFAULT scantok term */ |
| 163985 | {sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy528,yymsp[-1].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} |
| 163986 | break; |
| 163987 | case 34: /* ccons ::= DEFAULT LP expr RP */ |
| 163988 | {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy528,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);} |
| 163989 | break; |
| 163990 | case 35: /* ccons ::= DEFAULT PLUS scantok term */ |
| 163991 | {sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy528,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} |
| 163992 | break; |
| 163993 | case 36: /* ccons ::= DEFAULT MINUS scantok term */ |
| 163994 | { |
| 163995 | Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy528, 0); |
| 163996 | sqlite3AddDefaultValue(pParse,p,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]); |
| 163997 | } |
| 163998 | break; |
| 163999 | case 37: /* ccons ::= DEFAULT scantok ID|INDEXED */ |
| 164000 | { |
| @@ -163967,308 +164005,308 @@ | |
| 164005 | } |
| 164006 | sqlite3AddDefaultValue(pParse,p,yymsp[0].minor.yy0.z,yymsp[0].minor.yy0.z+yymsp[0].minor.yy0.n); |
| 164007 | } |
| 164008 | break; |
| 164009 | case 38: /* ccons ::= NOT NULL onconf */ |
| 164010 | {sqlite3AddNotNull(pParse, yymsp[0].minor.yy394);} |
| 164011 | break; |
| 164012 | case 39: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ |
| 164013 | {sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy394,yymsp[0].minor.yy394,yymsp[-2].minor.yy394);} |
| 164014 | break; |
| 164015 | case 40: /* ccons ::= UNIQUE onconf */ |
| 164016 | {sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy394,0,0,0,0, |
| 164017 | SQLITE_IDXTYPE_UNIQUE);} |
| 164018 | break; |
| 164019 | case 41: /* ccons ::= CHECK LP expr RP */ |
| 164020 | {sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy528,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy0.z);} |
| 164021 | break; |
| 164022 | case 42: /* ccons ::= REFERENCES nm eidlist_opt refargs */ |
| 164023 | {sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy322,yymsp[0].minor.yy394);} |
| 164024 | break; |
| 164025 | case 43: /* ccons ::= defer_subclause */ |
| 164026 | {sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy394);} |
| 164027 | break; |
| 164028 | case 44: /* ccons ::= COLLATE ID|STRING */ |
| 164029 | {sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);} |
| 164030 | break; |
| 164031 | case 45: /* generated ::= LP expr RP */ |
| 164032 | {sqlite3AddGenerated(pParse,yymsp[-1].minor.yy528,0);} |
| 164033 | break; |
| 164034 | case 46: /* generated ::= LP expr RP ID */ |
| 164035 | {sqlite3AddGenerated(pParse,yymsp[-2].minor.yy528,&yymsp[0].minor.yy0);} |
| 164036 | break; |
| 164037 | case 48: /* autoinc ::= AUTOINCR */ |
| 164038 | {yymsp[0].minor.yy394 = 1;} |
| 164039 | break; |
| 164040 | case 49: /* refargs ::= */ |
| 164041 | { yymsp[1].minor.yy394 = OE_None*0x0101; /* EV: R-19803-45884 */} |
| 164042 | break; |
| 164043 | case 50: /* refargs ::= refargs refarg */ |
| 164044 | { yymsp[-1].minor.yy394 = (yymsp[-1].minor.yy394 & ~yymsp[0].minor.yy231.mask) | yymsp[0].minor.yy231.value; } |
| 164045 | break; |
| 164046 | case 51: /* refarg ::= MATCH nm */ |
| 164047 | { yymsp[-1].minor.yy231.value = 0; yymsp[-1].minor.yy231.mask = 0x000000; } |
| 164048 | break; |
| 164049 | case 52: /* refarg ::= ON INSERT refact */ |
| 164050 | { yymsp[-2].minor.yy231.value = 0; yymsp[-2].minor.yy231.mask = 0x000000; } |
| 164051 | break; |
| 164052 | case 53: /* refarg ::= ON DELETE refact */ |
| 164053 | { yymsp[-2].minor.yy231.value = yymsp[0].minor.yy394; yymsp[-2].minor.yy231.mask = 0x0000ff; } |
| 164054 | break; |
| 164055 | case 54: /* refarg ::= ON UPDATE refact */ |
| 164056 | { yymsp[-2].minor.yy231.value = yymsp[0].minor.yy394<<8; yymsp[-2].minor.yy231.mask = 0x00ff00; } |
| 164057 | break; |
| 164058 | case 55: /* refact ::= SET NULL */ |
| 164059 | { yymsp[-1].minor.yy394 = OE_SetNull; /* EV: R-33326-45252 */} |
| 164060 | break; |
| 164061 | case 56: /* refact ::= SET DEFAULT */ |
| 164062 | { yymsp[-1].minor.yy394 = OE_SetDflt; /* EV: R-33326-45252 */} |
| 164063 | break; |
| 164064 | case 57: /* refact ::= CASCADE */ |
| 164065 | { yymsp[0].minor.yy394 = OE_Cascade; /* EV: R-33326-45252 */} |
| 164066 | break; |
| 164067 | case 58: /* refact ::= RESTRICT */ |
| 164068 | { yymsp[0].minor.yy394 = OE_Restrict; /* EV: R-33326-45252 */} |
| 164069 | break; |
| 164070 | case 59: /* refact ::= NO ACTION */ |
| 164071 | { yymsp[-1].minor.yy394 = OE_None; /* EV: R-33326-45252 */} |
| 164072 | break; |
| 164073 | case 60: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ |
| 164074 | {yymsp[-2].minor.yy394 = 0;} |
| 164075 | break; |
| 164076 | case 61: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ |
| 164077 | case 76: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==76); |
| 164078 | case 171: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==171); |
| 164079 | {yymsp[-1].minor.yy394 = yymsp[0].minor.yy394;} |
| 164080 | break; |
| 164081 | case 63: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ |
| 164082 | case 80: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==80); |
| 164083 | case 214: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==214); |
| 164084 | case 217: /* in_op ::= NOT IN */ yytestcase(yyruleno==217); |
| 164085 | case 243: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==243); |
| 164086 | {yymsp[-1].minor.yy394 = 1;} |
| 164087 | break; |
| 164088 | case 64: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ |
| 164089 | {yymsp[-1].minor.yy394 = 0;} |
| 164090 | break; |
| 164091 | case 66: /* tconscomma ::= COMMA */ |
| 164092 | {pParse->constraintName.n = 0;} |
| 164093 | break; |
| 164094 | case 68: /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ |
| 164095 | {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy322,yymsp[0].minor.yy394,yymsp[-2].minor.yy394,0);} |
| 164096 | break; |
| 164097 | case 69: /* tcons ::= UNIQUE LP sortlist RP onconf */ |
| 164098 | {sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy322,yymsp[0].minor.yy394,0,0,0,0, |
| 164099 | SQLITE_IDXTYPE_UNIQUE);} |
| 164100 | break; |
| 164101 | case 70: /* tcons ::= CHECK LP expr RP onconf */ |
| 164102 | {sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy528,yymsp[-3].minor.yy0.z,yymsp[-1].minor.yy0.z);} |
| 164103 | break; |
| 164104 | case 71: /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ |
| 164105 | { |
| 164106 | sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy322, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy322, yymsp[-1].minor.yy394); |
| 164107 | sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy394); |
| 164108 | } |
| 164109 | break; |
| 164110 | case 73: /* onconf ::= */ |
| 164111 | case 75: /* orconf ::= */ yytestcase(yyruleno==75); |
| 164112 | {yymsp[1].minor.yy394 = OE_Default;} |
| 164113 | break; |
| 164114 | case 74: /* onconf ::= ON CONFLICT resolvetype */ |
| 164115 | {yymsp[-2].minor.yy394 = yymsp[0].minor.yy394;} |
| 164116 | break; |
| 164117 | case 77: /* resolvetype ::= IGNORE */ |
| 164118 | {yymsp[0].minor.yy394 = OE_Ignore;} |
| 164119 | break; |
| 164120 | case 78: /* resolvetype ::= REPLACE */ |
| 164121 | case 172: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==172); |
| 164122 | {yymsp[0].minor.yy394 = OE_Replace;} |
| 164123 | break; |
| 164124 | case 79: /* cmd ::= DROP TABLE ifexists fullname */ |
| 164125 | { |
| 164126 | sqlite3DropTable(pParse, yymsp[0].minor.yy131, 0, yymsp[-1].minor.yy394); |
| 164127 | } |
| 164128 | break; |
| 164129 | case 82: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ |
| 164130 | { |
| 164131 | sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy322, yymsp[0].minor.yy47, yymsp[-7].minor.yy394, yymsp[-5].minor.yy394); |
| 164132 | } |
| 164133 | break; |
| 164134 | case 83: /* cmd ::= DROP VIEW ifexists fullname */ |
| 164135 | { |
| 164136 | sqlite3DropTable(pParse, yymsp[0].minor.yy131, 1, yymsp[-1].minor.yy394); |
| 164137 | } |
| 164138 | break; |
| 164139 | case 84: /* cmd ::= select */ |
| 164140 | { |
| 164141 | SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0, 0}; |
| 164142 | sqlite3Select(pParse, yymsp[0].minor.yy47, &dest); |
| 164143 | sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy47); |
| 164144 | } |
| 164145 | break; |
| 164146 | case 85: /* select ::= WITH wqlist selectnowith */ |
| 164147 | {yymsp[-2].minor.yy47 = attachWithToSelect(pParse,yymsp[0].minor.yy47,yymsp[-1].minor.yy521);} |
| 164148 | break; |
| 164149 | case 86: /* select ::= WITH RECURSIVE wqlist selectnowith */ |
| 164150 | {yymsp[-3].minor.yy47 = attachWithToSelect(pParse,yymsp[0].minor.yy47,yymsp[-1].minor.yy521);} |
| 164151 | break; |
| 164152 | case 87: /* select ::= selectnowith */ |
| 164153 | { |
| 164154 | Select *p = yymsp[0].minor.yy47; |
| 164155 | if( p ){ |
| 164156 | parserDoubleLinkSelect(pParse, p); |
| 164157 | } |
| 164158 | yymsp[0].minor.yy47 = p; /*A-overwrites-X*/ |
| 164159 | } |
| 164160 | break; |
| 164161 | case 88: /* selectnowith ::= selectnowith multiselect_op oneselect */ |
| 164162 | { |
| 164163 | Select *pRhs = yymsp[0].minor.yy47; |
| 164164 | Select *pLhs = yymsp[-2].minor.yy47; |
| 164165 | if( pRhs && pRhs->pPrior ){ |
| 164166 | SrcList *pFrom; |
| 164167 | Token x; |
| 164168 | x.n = 0; |
| 164169 | parserDoubleLinkSelect(pParse, pRhs); |
| 164170 | pFrom = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&x,pRhs,0,0); |
| 164171 | pRhs = sqlite3SelectNew(pParse,0,pFrom,0,0,0,0,0,0); |
| 164172 | } |
| 164173 | if( pRhs ){ |
| 164174 | pRhs->op = (u8)yymsp[-1].minor.yy394; |
| 164175 | pRhs->pPrior = pLhs; |
| 164176 | if( ALWAYS(pLhs) ) pLhs->selFlags &= ~SF_MultiValue; |
| 164177 | pRhs->selFlags &= ~SF_MultiValue; |
| 164178 | if( yymsp[-1].minor.yy394!=TK_ALL ) pParse->hasCompound = 1; |
| 164179 | }else{ |
| 164180 | sqlite3SelectDelete(pParse->db, pLhs); |
| 164181 | } |
| 164182 | yymsp[-2].minor.yy47 = pRhs; |
| 164183 | } |
| 164184 | break; |
| 164185 | case 89: /* multiselect_op ::= UNION */ |
| 164186 | case 91: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==91); |
| 164187 | {yymsp[0].minor.yy394 = yymsp[0].major; /*A-overwrites-OP*/} |
| 164188 | break; |
| 164189 | case 90: /* multiselect_op ::= UNION ALL */ |
| 164190 | {yymsp[-1].minor.yy394 = TK_ALL;} |
| 164191 | break; |
| 164192 | case 92: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ |
| 164193 | { |
| 164194 | yymsp[-8].minor.yy47 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy322,yymsp[-5].minor.yy131,yymsp[-4].minor.yy528,yymsp[-3].minor.yy322,yymsp[-2].minor.yy528,yymsp[-1].minor.yy322,yymsp[-7].minor.yy394,yymsp[0].minor.yy528); |
| 164195 | } |
| 164196 | break; |
| 164197 | case 93: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ |
| 164198 | { |
| 164199 | yymsp[-9].minor.yy47 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy322,yymsp[-6].minor.yy131,yymsp[-5].minor.yy528,yymsp[-4].minor.yy322,yymsp[-3].minor.yy528,yymsp[-1].minor.yy322,yymsp[-8].minor.yy394,yymsp[0].minor.yy528); |
| 164200 | if( yymsp[-9].minor.yy47 ){ |
| 164201 | yymsp[-9].minor.yy47->pWinDefn = yymsp[-2].minor.yy41; |
| 164202 | }else{ |
| 164203 | sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy41); |
| 164204 | } |
| 164205 | } |
| 164206 | break; |
| 164207 | case 94: /* values ::= VALUES LP nexprlist RP */ |
| 164208 | { |
| 164209 | yymsp[-3].minor.yy47 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy322,0,0,0,0,0,SF_Values,0); |
| 164210 | } |
| 164211 | break; |
| 164212 | case 95: /* values ::= values COMMA LP nexprlist RP */ |
| 164213 | { |
| 164214 | Select *pRight, *pLeft = yymsp[-4].minor.yy47; |
| 164215 | pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy322,0,0,0,0,0,SF_Values|SF_MultiValue,0); |
| 164216 | if( ALWAYS(pLeft) ) pLeft->selFlags &= ~SF_MultiValue; |
| 164217 | if( pRight ){ |
| 164218 | pRight->op = TK_ALL; |
| 164219 | pRight->pPrior = pLeft; |
| 164220 | yymsp[-4].minor.yy47 = pRight; |
| 164221 | }else{ |
| 164222 | yymsp[-4].minor.yy47 = pLeft; |
| 164223 | } |
| 164224 | } |
| 164225 | break; |
| 164226 | case 96: /* distinct ::= DISTINCT */ |
| 164227 | {yymsp[0].minor.yy394 = SF_Distinct;} |
| 164228 | break; |
| 164229 | case 97: /* distinct ::= ALL */ |
| 164230 | {yymsp[0].minor.yy394 = SF_All;} |
| 164231 | break; |
| 164232 | case 99: /* sclp ::= */ |
| 164233 | case 132: /* orderby_opt ::= */ yytestcase(yyruleno==132); |
| 164234 | case 142: /* groupby_opt ::= */ yytestcase(yyruleno==142); |
| 164235 | case 230: /* exprlist ::= */ yytestcase(yyruleno==230); |
| 164236 | case 233: /* paren_exprlist ::= */ yytestcase(yyruleno==233); |
| 164237 | case 238: /* eidlist_opt ::= */ yytestcase(yyruleno==238); |
| 164238 | {yymsp[1].minor.yy322 = 0;} |
| 164239 | break; |
| 164240 | case 100: /* selcollist ::= sclp scanpt expr scanpt as */ |
| 164241 | { |
| 164242 | yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy322, yymsp[-2].minor.yy528); |
| 164243 | if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy322, &yymsp[0].minor.yy0, 1); |
| 164244 | sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy322,yymsp[-3].minor.yy522,yymsp[-1].minor.yy522); |
| 164245 | } |
| 164246 | break; |
| 164247 | case 101: /* selcollist ::= sclp scanpt STAR */ |
| 164248 | { |
| 164249 | Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0); |
| 164250 | yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy322, p); |
| 164251 | } |
| 164252 | break; |
| 164253 | case 102: /* selcollist ::= sclp scanpt nm DOT STAR */ |
| 164254 | { |
| 164255 | Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0); |
| 164256 | Expr *pLeft = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1); |
| 164257 | Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight); |
| 164258 | yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, pDot); |
| 164259 | } |
| 164260 | break; |
| 164261 | case 103: /* as ::= AS nm */ |
| 164262 | case 114: /* dbnm ::= DOT nm */ yytestcase(yyruleno==114); |
| 164263 | case 254: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==254); |
| 164264 | case 255: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==255); |
| 164265 | {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;} |
| 164266 | break; |
| 164267 | case 105: /* from ::= */ |
| 164268 | case 108: /* stl_prefix ::= */ yytestcase(yyruleno==108); |
| 164269 | {yymsp[1].minor.yy131 = 0;} |
| 164270 | break; |
| 164271 | case 106: /* from ::= FROM seltablist */ |
| 164272 | { |
| 164273 | yymsp[-1].minor.yy131 = yymsp[0].minor.yy131; |
| 164274 | sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy131); |
| 164275 | } |
| 164276 | break; |
| 164277 | case 107: /* stl_prefix ::= seltablist joinop */ |
| 164278 | { |
| 164279 | if( ALWAYS(yymsp[-1].minor.yy131 && yymsp[-1].minor.yy131->nSrc>0) ) yymsp[-1].minor.yy131->a[yymsp[-1].minor.yy131->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy394; |
| 164280 | } |
| 164281 | break; |
| 164282 | case 109: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ |
| 164283 | { |
| 164284 | yymsp[-6].minor.yy131 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy131,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy528,yymsp[0].minor.yy254); |
| 164285 | sqlite3SrcListIndexedBy(pParse, yymsp[-6].minor.yy131, &yymsp[-2].minor.yy0); |
| 164286 | } |
| 164287 | break; |
| 164288 | case 110: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */ |
| 164289 | { |
| 164290 | yymsp[-8].minor.yy131 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-8].minor.yy131,&yymsp[-7].minor.yy0,&yymsp[-6].minor.yy0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy528,yymsp[0].minor.yy254); |
| 164291 | sqlite3SrcListFuncArgs(pParse, yymsp[-8].minor.yy131, yymsp[-4].minor.yy322); |
| 164292 | } |
| 164293 | break; |
| 164294 | case 111: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */ |
| 164295 | { |
| 164296 | yymsp[-6].minor.yy131 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy131,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy47,yymsp[-1].minor.yy528,yymsp[0].minor.yy254); |
| 164297 | } |
| 164298 | break; |
| 164299 | case 112: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ |
| 164300 | { |
| 164301 | if( yymsp[-6].minor.yy131==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy528==0 && yymsp[0].minor.yy254==0 ){ |
| 164302 | yymsp[-6].minor.yy131 = yymsp[-4].minor.yy131; |
| 164303 | }else if( yymsp[-4].minor.yy131->nSrc==1 ){ |
| 164304 | yymsp[-6].minor.yy131 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy131,0,0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy528,yymsp[0].minor.yy254); |
| 164305 | if( yymsp[-6].minor.yy131 ){ |
| 164306 | SrcItem *pNew = &yymsp[-6].minor.yy131->a[yymsp[-6].minor.yy131->nSrc-1]; |
| 164307 | SrcItem *pOld = yymsp[-4].minor.yy131->a; |
| 164308 | pNew->zName = pOld->zName; |
| 164309 | pNew->zDatabase = pOld->zDatabase; |
| 164310 | pNew->pSelect = pOld->pSelect; |
| 164311 | if( pOld->fg.isTabFunc ){ |
| 164312 | pNew->u1.pFuncArg = pOld->u1.pFuncArg; |
| @@ -164277,240 +164315,240 @@ | |
| 164315 | pNew->fg.isTabFunc = 1; |
| 164316 | } |
| 164317 | pOld->zName = pOld->zDatabase = 0; |
| 164318 | pOld->pSelect = 0; |
| 164319 | } |
| 164320 | sqlite3SrcListDelete(pParse->db, yymsp[-4].minor.yy131); |
| 164321 | }else{ |
| 164322 | Select *pSubquery; |
| 164323 | sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy131); |
| 164324 | pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy131,0,0,0,0,SF_NestedFrom,0); |
| 164325 | yymsp[-6].minor.yy131 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy131,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy528,yymsp[0].minor.yy254); |
| 164326 | } |
| 164327 | } |
| 164328 | break; |
| 164329 | case 113: /* dbnm ::= */ |
| 164330 | case 127: /* indexed_opt ::= */ yytestcase(yyruleno==127); |
| 164331 | {yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;} |
| 164332 | break; |
| 164333 | case 115: /* fullname ::= nm */ |
| 164334 | { |
| 164335 | yylhsminor.yy131 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); |
| 164336 | if( IN_RENAME_OBJECT && yylhsminor.yy131 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy131->a[0].zName, &yymsp[0].minor.yy0); |
| 164337 | } |
| 164338 | yymsp[0].minor.yy131 = yylhsminor.yy131; |
| 164339 | break; |
| 164340 | case 116: /* fullname ::= nm DOT nm */ |
| 164341 | { |
| 164342 | yylhsminor.yy131 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); |
| 164343 | if( IN_RENAME_OBJECT && yylhsminor.yy131 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy131->a[0].zName, &yymsp[0].minor.yy0); |
| 164344 | } |
| 164345 | yymsp[-2].minor.yy131 = yylhsminor.yy131; |
| 164346 | break; |
| 164347 | case 117: /* xfullname ::= nm */ |
| 164348 | {yymsp[0].minor.yy131 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/} |
| 164349 | break; |
| 164350 | case 118: /* xfullname ::= nm DOT nm */ |
| 164351 | {yymsp[-2].minor.yy131 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/} |
| 164352 | break; |
| 164353 | case 119: /* xfullname ::= nm DOT nm AS nm */ |
| 164354 | { |
| 164355 | yymsp[-4].minor.yy131 = sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/ |
| 164356 | if( yymsp[-4].minor.yy131 ) yymsp[-4].minor.yy131->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); |
| 164357 | } |
| 164358 | break; |
| 164359 | case 120: /* xfullname ::= nm AS nm */ |
| 164360 | { |
| 164361 | yymsp[-2].minor.yy131 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/ |
| 164362 | if( yymsp[-2].minor.yy131 ) yymsp[-2].minor.yy131->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); |
| 164363 | } |
| 164364 | break; |
| 164365 | case 121: /* joinop ::= COMMA|JOIN */ |
| 164366 | { yymsp[0].minor.yy394 = JT_INNER; } |
| 164367 | break; |
| 164368 | case 122: /* joinop ::= JOIN_KW JOIN */ |
| 164369 | {yymsp[-1].minor.yy394 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/} |
| 164370 | break; |
| 164371 | case 123: /* joinop ::= JOIN_KW nm JOIN */ |
| 164372 | {yymsp[-2].minor.yy394 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/} |
| 164373 | break; |
| 164374 | case 124: /* joinop ::= JOIN_KW nm nm JOIN */ |
| 164375 | {yymsp[-3].minor.yy394 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/} |
| 164376 | break; |
| 164377 | case 125: /* on_opt ::= ON expr */ |
| 164378 | case 145: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==145); |
| 164379 | case 152: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==152); |
| 164380 | case 154: /* where_opt_ret ::= WHERE expr */ yytestcase(yyruleno==154); |
| 164381 | case 226: /* case_else ::= ELSE expr */ yytestcase(yyruleno==226); |
| 164382 | case 247: /* vinto ::= INTO expr */ yytestcase(yyruleno==247); |
| 164383 | {yymsp[-1].minor.yy528 = yymsp[0].minor.yy528;} |
| 164384 | break; |
| 164385 | case 126: /* on_opt ::= */ |
| 164386 | case 144: /* having_opt ::= */ yytestcase(yyruleno==144); |
| 164387 | case 146: /* limit_opt ::= */ yytestcase(yyruleno==146); |
| 164388 | case 151: /* where_opt ::= */ yytestcase(yyruleno==151); |
| 164389 | case 153: /* where_opt_ret ::= */ yytestcase(yyruleno==153); |
| 164390 | case 227: /* case_else ::= */ yytestcase(yyruleno==227); |
| 164391 | case 229: /* case_operand ::= */ yytestcase(yyruleno==229); |
| 164392 | case 248: /* vinto ::= */ yytestcase(yyruleno==248); |
| 164393 | {yymsp[1].minor.yy528 = 0;} |
| 164394 | break; |
| 164395 | case 128: /* indexed_opt ::= INDEXED BY nm */ |
| 164396 | {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;} |
| 164397 | break; |
| 164398 | case 129: /* indexed_opt ::= NOT INDEXED */ |
| 164399 | {yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;} |
| 164400 | break; |
| 164401 | case 130: /* using_opt ::= USING LP idlist RP */ |
| 164402 | {yymsp[-3].minor.yy254 = yymsp[-1].minor.yy254;} |
| 164403 | break; |
| 164404 | case 131: /* using_opt ::= */ |
| 164405 | case 173: /* idlist_opt ::= */ yytestcase(yyruleno==173); |
| 164406 | {yymsp[1].minor.yy254 = 0;} |
| 164407 | break; |
| 164408 | case 133: /* orderby_opt ::= ORDER BY sortlist */ |
| 164409 | case 143: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==143); |
| 164410 | {yymsp[-2].minor.yy322 = yymsp[0].minor.yy322;} |
| 164411 | break; |
| 164412 | case 134: /* sortlist ::= sortlist COMMA expr sortorder nulls */ |
| 164413 | { |
| 164414 | yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322,yymsp[-2].minor.yy528); |
| 164415 | sqlite3ExprListSetSortOrder(yymsp[-4].minor.yy322,yymsp[-1].minor.yy394,yymsp[0].minor.yy394); |
| 164416 | } |
| 164417 | break; |
| 164418 | case 135: /* sortlist ::= expr sortorder nulls */ |
| 164419 | { |
| 164420 | yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[-2].minor.yy528); /*A-overwrites-Y*/ |
| 164421 | sqlite3ExprListSetSortOrder(yymsp[-2].minor.yy322,yymsp[-1].minor.yy394,yymsp[0].minor.yy394); |
| 164422 | } |
| 164423 | break; |
| 164424 | case 136: /* sortorder ::= ASC */ |
| 164425 | {yymsp[0].minor.yy394 = SQLITE_SO_ASC;} |
| 164426 | break; |
| 164427 | case 137: /* sortorder ::= DESC */ |
| 164428 | {yymsp[0].minor.yy394 = SQLITE_SO_DESC;} |
| 164429 | break; |
| 164430 | case 138: /* sortorder ::= */ |
| 164431 | case 141: /* nulls ::= */ yytestcase(yyruleno==141); |
| 164432 | {yymsp[1].minor.yy394 = SQLITE_SO_UNDEFINED;} |
| 164433 | break; |
| 164434 | case 139: /* nulls ::= NULLS FIRST */ |
| 164435 | {yymsp[-1].minor.yy394 = SQLITE_SO_ASC;} |
| 164436 | break; |
| 164437 | case 140: /* nulls ::= NULLS LAST */ |
| 164438 | {yymsp[-1].minor.yy394 = SQLITE_SO_DESC;} |
| 164439 | break; |
| 164440 | case 147: /* limit_opt ::= LIMIT expr */ |
| 164441 | {yymsp[-1].minor.yy528 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy528,0);} |
| 164442 | break; |
| 164443 | case 148: /* limit_opt ::= LIMIT expr OFFSET expr */ |
| 164444 | {yymsp[-3].minor.yy528 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy528,yymsp[0].minor.yy528);} |
| 164445 | break; |
| 164446 | case 149: /* limit_opt ::= LIMIT expr COMMA expr */ |
| 164447 | {yymsp[-3].minor.yy528 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy528,yymsp[-2].minor.yy528);} |
| 164448 | break; |
| 164449 | case 150: /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ |
| 164450 | { |
| 164451 | sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy131, &yymsp[-1].minor.yy0); |
| 164452 | sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy131,yymsp[0].minor.yy528,0,0); |
| 164453 | } |
| 164454 | break; |
| 164455 | case 155: /* where_opt_ret ::= RETURNING selcollist */ |
| 164456 | {sqlite3AddReturning(pParse,yymsp[0].minor.yy322); yymsp[-1].minor.yy528 = 0;} |
| 164457 | break; |
| 164458 | case 156: /* where_opt_ret ::= WHERE expr RETURNING selcollist */ |
| 164459 | {sqlite3AddReturning(pParse,yymsp[0].minor.yy322); yymsp[-3].minor.yy528 = yymsp[-2].minor.yy528;} |
| 164460 | break; |
| 164461 | case 157: /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ |
| 164462 | { |
| 164463 | sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy131, &yymsp[-4].minor.yy0); |
| 164464 | sqlite3ExprListCheckLength(pParse,yymsp[-2].minor.yy322,"set list"); |
| 164465 | yymsp[-5].minor.yy131 = sqlite3SrcListAppendList(pParse, yymsp[-5].minor.yy131, yymsp[-1].minor.yy131); |
| 164466 | sqlite3Update(pParse,yymsp[-5].minor.yy131,yymsp[-2].minor.yy322,yymsp[0].minor.yy528,yymsp[-6].minor.yy394,0,0,0); |
| 164467 | } |
| 164468 | break; |
| 164469 | case 158: /* setlist ::= setlist COMMA nm EQ expr */ |
| 164470 | { |
| 164471 | yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy322, yymsp[0].minor.yy528); |
| 164472 | sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy322, &yymsp[-2].minor.yy0, 1); |
| 164473 | } |
| 164474 | break; |
| 164475 | case 159: /* setlist ::= setlist COMMA LP idlist RP EQ expr */ |
| 164476 | { |
| 164477 | yymsp[-6].minor.yy322 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy322, yymsp[-3].minor.yy254, yymsp[0].minor.yy528); |
| 164478 | } |
| 164479 | break; |
| 164480 | case 160: /* setlist ::= nm EQ expr */ |
| 164481 | { |
| 164482 | yylhsminor.yy322 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy528); |
| 164483 | sqlite3ExprListSetName(pParse, yylhsminor.yy322, &yymsp[-2].minor.yy0, 1); |
| 164484 | } |
| 164485 | yymsp[-2].minor.yy322 = yylhsminor.yy322; |
| 164486 | break; |
| 164487 | case 161: /* setlist ::= LP idlist RP EQ expr */ |
| 164488 | { |
| 164489 | yymsp[-4].minor.yy322 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy254, yymsp[0].minor.yy528); |
| 164490 | } |
| 164491 | break; |
| 164492 | case 162: /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ |
| 164493 | { |
| 164494 | sqlite3Insert(pParse, yymsp[-3].minor.yy131, yymsp[-1].minor.yy47, yymsp[-2].minor.yy254, yymsp[-5].minor.yy394, yymsp[0].minor.yy444); |
| 164495 | } |
| 164496 | break; |
| 164497 | case 163: /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ |
| 164498 | { |
| 164499 | sqlite3Insert(pParse, yymsp[-4].minor.yy131, 0, yymsp[-3].minor.yy254, yymsp[-6].minor.yy394, 0); |
| 164500 | } |
| 164501 | break; |
| 164502 | case 164: /* upsert ::= */ |
| 164503 | { yymsp[1].minor.yy444 = 0; } |
| 164504 | break; |
| 164505 | case 165: /* upsert ::= RETURNING selcollist */ |
| 164506 | { yymsp[-1].minor.yy444 = 0; sqlite3AddReturning(pParse,yymsp[0].minor.yy322); } |
| 164507 | break; |
| 164508 | case 166: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ |
| 164509 | { yymsp[-11].minor.yy444 = sqlite3UpsertNew(pParse->db,yymsp[-8].minor.yy322,yymsp[-6].minor.yy528,yymsp[-2].minor.yy322,yymsp[-1].minor.yy528,yymsp[0].minor.yy444);} |
| 164510 | break; |
| 164511 | case 167: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ |
| 164512 | { yymsp[-8].minor.yy444 = sqlite3UpsertNew(pParse->db,yymsp[-5].minor.yy322,yymsp[-3].minor.yy528,0,0,yymsp[0].minor.yy444); } |
| 164513 | break; |
| 164514 | case 168: /* upsert ::= ON CONFLICT DO NOTHING returning */ |
| 164515 | { yymsp[-4].minor.yy444 = sqlite3UpsertNew(pParse->db,0,0,0,0,0); } |
| 164516 | break; |
| 164517 | case 169: /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ |
| 164518 | { yymsp[-7].minor.yy444 = sqlite3UpsertNew(pParse->db,0,0,yymsp[-2].minor.yy322,yymsp[-1].minor.yy528,0);} |
| 164519 | break; |
| 164520 | case 170: /* returning ::= RETURNING selcollist */ |
| 164521 | {sqlite3AddReturning(pParse,yymsp[0].minor.yy322);} |
| 164522 | break; |
| 164523 | case 174: /* idlist_opt ::= LP idlist RP */ |
| 164524 | {yymsp[-2].minor.yy254 = yymsp[-1].minor.yy254;} |
| 164525 | break; |
| 164526 | case 175: /* idlist ::= idlist COMMA nm */ |
| 164527 | {yymsp[-2].minor.yy254 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy254,&yymsp[0].minor.yy0);} |
| 164528 | break; |
| 164529 | case 176: /* idlist ::= nm */ |
| 164530 | {yymsp[0].minor.yy254 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/} |
| 164531 | break; |
| 164532 | case 177: /* expr ::= LP expr RP */ |
| 164533 | {yymsp[-2].minor.yy528 = yymsp[-1].minor.yy528;} |
| 164534 | break; |
| 164535 | case 178: /* expr ::= ID|INDEXED */ |
| 164536 | case 179: /* expr ::= JOIN_KW */ yytestcase(yyruleno==179); |
| 164537 | {yymsp[0].minor.yy528=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/} |
| 164538 | break; |
| 164539 | case 180: /* expr ::= nm DOT nm */ |
| 164540 | { |
| 164541 | Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1); |
| 164542 | Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1); |
| 164543 | if( IN_RENAME_OBJECT ){ |
| 164544 | sqlite3RenameTokenMap(pParse, (void*)temp2, &yymsp[0].minor.yy0); |
| 164545 | sqlite3RenameTokenMap(pParse, (void*)temp1, &yymsp[-2].minor.yy0); |
| 164546 | } |
| 164547 | yylhsminor.yy528 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2); |
| 164548 | } |
| 164549 | yymsp[-2].minor.yy528 = yylhsminor.yy528; |
| 164550 | break; |
| 164551 | case 181: /* expr ::= nm DOT nm DOT nm */ |
| 164552 | { |
| 164553 | Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-4].minor.yy0, 1); |
| 164554 | Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1); |
| @@ -164518,768 +164556,776 @@ | |
| 164556 | Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3); |
| 164557 | if( IN_RENAME_OBJECT ){ |
| 164558 | sqlite3RenameTokenMap(pParse, (void*)temp3, &yymsp[0].minor.yy0); |
| 164559 | sqlite3RenameTokenMap(pParse, (void*)temp2, &yymsp[-2].minor.yy0); |
| 164560 | } |
| 164561 | yylhsminor.yy528 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4); |
| 164562 | } |
| 164563 | yymsp[-4].minor.yy528 = yylhsminor.yy528; |
| 164564 | break; |
| 164565 | case 182: /* term ::= NULL|FLOAT|BLOB */ |
| 164566 | case 183: /* term ::= STRING */ yytestcase(yyruleno==183); |
| 164567 | {yymsp[0].minor.yy528=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/} |
| 164568 | break; |
| 164569 | case 184: /* term ::= INTEGER */ |
| 164570 | { |
| 164571 | yylhsminor.yy528 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1); |
| 164572 | } |
| 164573 | yymsp[0].minor.yy528 = yylhsminor.yy528; |
| 164574 | break; |
| 164575 | case 185: /* expr ::= VARIABLE */ |
| 164576 | { |
| 164577 | if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){ |
| 164578 | u32 n = yymsp[0].minor.yy0.n; |
| 164579 | yymsp[0].minor.yy528 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0); |
| 164580 | sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy528, n); |
| 164581 | }else{ |
| 164582 | /* When doing a nested parse, one can include terms in an expression |
| 164583 | ** that look like this: #1 #2 ... These terms refer to registers |
| 164584 | ** in the virtual machine. #N is the N-th register. */ |
| 164585 | Token t = yymsp[0].minor.yy0; /*A-overwrites-X*/ |
| 164586 | assert( t.n>=2 ); |
| 164587 | if( pParse->nested==0 ){ |
| 164588 | sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &t); |
| 164589 | yymsp[0].minor.yy528 = 0; |
| 164590 | }else{ |
| 164591 | yymsp[0].minor.yy528 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0); |
| 164592 | if( yymsp[0].minor.yy528 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy528->iTable); |
| 164593 | } |
| 164594 | } |
| 164595 | } |
| 164596 | break; |
| 164597 | case 186: /* expr ::= expr COLLATE ID|STRING */ |
| 164598 | { |
| 164599 | yymsp[-2].minor.yy528 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy528, &yymsp[0].minor.yy0, 1); |
| 164600 | } |
| 164601 | break; |
| 164602 | case 187: /* expr ::= CAST LP expr AS typetoken RP */ |
| 164603 | { |
| 164604 | yymsp[-5].minor.yy528 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1); |
| 164605 | sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy528, yymsp[-3].minor.yy528, 0); |
| 164606 | } |
| 164607 | break; |
| 164608 | case 188: /* expr ::= ID|INDEXED LP distinct exprlist RP */ |
| 164609 | { |
| 164610 | yylhsminor.yy528 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy322, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy394); |
| 164611 | } |
| 164612 | yymsp[-4].minor.yy528 = yylhsminor.yy528; |
| 164613 | break; |
| 164614 | case 189: /* expr ::= ID|INDEXED LP STAR RP */ |
| 164615 | { |
| 164616 | yylhsminor.yy528 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0); |
| 164617 | } |
| 164618 | yymsp[-3].minor.yy528 = yylhsminor.yy528; |
| 164619 | break; |
| 164620 | case 190: /* expr ::= ID|INDEXED LP distinct exprlist RP filter_over */ |
| 164621 | { |
| 164622 | yylhsminor.yy528 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy322, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy394); |
| 164623 | sqlite3WindowAttach(pParse, yylhsminor.yy528, yymsp[0].minor.yy41); |
| 164624 | } |
| 164625 | yymsp[-5].minor.yy528 = yylhsminor.yy528; |
| 164626 | break; |
| 164627 | case 191: /* expr ::= ID|INDEXED LP STAR RP filter_over */ |
| 164628 | { |
| 164629 | yylhsminor.yy528 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0); |
| 164630 | sqlite3WindowAttach(pParse, yylhsminor.yy528, yymsp[0].minor.yy41); |
| 164631 | } |
| 164632 | yymsp[-4].minor.yy528 = yylhsminor.yy528; |
| 164633 | break; |
| 164634 | case 192: /* term ::= CTIME_KW */ |
| 164635 | { |
| 164636 | yylhsminor.yy528 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0); |
| 164637 | } |
| 164638 | yymsp[0].minor.yy528 = yylhsminor.yy528; |
| 164639 | break; |
| 164640 | case 193: /* expr ::= LP nexprlist COMMA expr RP */ |
| 164641 | { |
| 164642 | ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy322, yymsp[-1].minor.yy528); |
| 164643 | yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0); |
| 164644 | if( yymsp[-4].minor.yy528 ){ |
| 164645 | yymsp[-4].minor.yy528->x.pList = pList; |
| 164646 | if( ALWAYS(pList->nExpr) ){ |
| 164647 | yymsp[-4].minor.yy528->flags |= pList->a[0].pExpr->flags & EP_Propagate; |
| 164648 | } |
| 164649 | }else{ |
| 164650 | sqlite3ExprListDelete(pParse->db, pList); |
| 164651 | } |
| 164652 | } |
| 164653 | break; |
| 164654 | case 194: /* expr ::= expr AND expr */ |
| 164655 | {yymsp[-2].minor.yy528=sqlite3ExprAnd(pParse,yymsp[-2].minor.yy528,yymsp[0].minor.yy528);} |
| 164656 | break; |
| 164657 | case 195: /* expr ::= expr OR expr */ |
| 164658 | case 196: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==196); |
| 164659 | case 197: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==197); |
| 164660 | case 198: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==198); |
| 164661 | case 199: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==199); |
| 164662 | case 200: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==200); |
| 164663 | case 201: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==201); |
| 164664 | {yymsp[-2].minor.yy528=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy528,yymsp[0].minor.yy528);} |
| 164665 | break; |
| 164666 | case 202: /* likeop ::= NOT LIKE_KW|MATCH */ |
| 164667 | {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/} |
| 164668 | break; |
| 164669 | case 203: /* expr ::= expr likeop expr */ |
| 164670 | { |
| 164671 | ExprList *pList; |
| 164672 | int bNot = yymsp[-1].minor.yy0.n & 0x80000000; |
| 164673 | yymsp[-1].minor.yy0.n &= 0x7fffffff; |
| 164674 | pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy528); |
| 164675 | pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy528); |
| 164676 | yymsp[-2].minor.yy528 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0); |
| 164677 | if( bNot ) yymsp[-2].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy528, 0); |
| 164678 | if( yymsp[-2].minor.yy528 ) yymsp[-2].minor.yy528->flags |= EP_InfixFunc; |
| 164679 | } |
| 164680 | break; |
| 164681 | case 204: /* expr ::= expr likeop expr ESCAPE expr */ |
| 164682 | { |
| 164683 | ExprList *pList; |
| 164684 | int bNot = yymsp[-3].minor.yy0.n & 0x80000000; |
| 164685 | yymsp[-3].minor.yy0.n &= 0x7fffffff; |
| 164686 | pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy528); |
| 164687 | pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy528); |
| 164688 | pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy528); |
| 164689 | yymsp[-4].minor.yy528 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0); |
| 164690 | if( bNot ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); |
| 164691 | if( yymsp[-4].minor.yy528 ) yymsp[-4].minor.yy528->flags |= EP_InfixFunc; |
| 164692 | } |
| 164693 | break; |
| 164694 | case 205: /* expr ::= expr ISNULL|NOTNULL */ |
| 164695 | {yymsp[-1].minor.yy528 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy528,0);} |
| 164696 | break; |
| 164697 | case 206: /* expr ::= expr NOT NULL */ |
| 164698 | {yymsp[-2].minor.yy528 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy528,0);} |
| 164699 | break; |
| 164700 | case 207: /* expr ::= expr IS expr */ |
| 164701 | { |
| 164702 | yymsp[-2].minor.yy528 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy528,yymsp[0].minor.yy528); |
| 164703 | binaryToUnaryIfNull(pParse, yymsp[0].minor.yy528, yymsp[-2].minor.yy528, TK_ISNULL); |
| 164704 | } |
| 164705 | break; |
| 164706 | case 208: /* expr ::= expr IS NOT expr */ |
| 164707 | { |
| 164708 | yymsp[-3].minor.yy528 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy528,yymsp[0].minor.yy528); |
| 164709 | binaryToUnaryIfNull(pParse, yymsp[0].minor.yy528, yymsp[-3].minor.yy528, TK_NOTNULL); |
| 164710 | } |
| 164711 | break; |
| 164712 | case 209: /* expr ::= NOT expr */ |
| 164713 | case 210: /* expr ::= BITNOT expr */ yytestcase(yyruleno==210); |
| 164714 | {yymsp[-1].minor.yy528 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy528, 0);/*A-overwrites-B*/} |
| 164715 | break; |
| 164716 | case 211: /* expr ::= PLUS|MINUS expr */ |
| 164717 | { |
| 164718 | yymsp[-1].minor.yy528 = sqlite3PExpr(pParse, yymsp[-1].major==TK_PLUS ? TK_UPLUS : TK_UMINUS, yymsp[0].minor.yy528, 0); |
| 164719 | /*A-overwrites-B*/ |
| 164720 | } |
| 164721 | break; |
| 164722 | case 212: /* expr ::= expr PTR expr */ |
| 164723 | { |
| 164724 | ExprList *pList = sqlite3ExprListAppend(pParse, 0, yymsp[-2].minor.yy528); |
| 164725 | pList = sqlite3ExprListAppend(pParse, pList, yymsp[0].minor.yy528); |
| 164726 | yylhsminor.yy528 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0); |
| 164727 | } |
| 164728 | yymsp[-2].minor.yy528 = yylhsminor.yy528; |
| 164729 | break; |
| 164730 | case 213: /* between_op ::= BETWEEN */ |
| 164731 | case 216: /* in_op ::= IN */ yytestcase(yyruleno==216); |
| 164732 | {yymsp[0].minor.yy394 = 0;} |
| 164733 | break; |
| 164734 | case 215: /* expr ::= expr between_op expr AND expr */ |
| 164735 | { |
| 164736 | ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy528); |
| 164737 | pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy528); |
| 164738 | yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy528, 0); |
| 164739 | if( yymsp[-4].minor.yy528 ){ |
| 164740 | yymsp[-4].minor.yy528->x.pList = pList; |
| 164741 | }else{ |
| 164742 | sqlite3ExprListDelete(pParse->db, pList); |
| 164743 | } |
| 164744 | if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); |
| 164745 | } |
| 164746 | break; |
| 164747 | case 218: /* expr ::= expr in_op LP exprlist RP */ |
| 164748 | { |
| 164749 | if( yymsp[-1].minor.yy322==0 ){ |
| 164750 | /* Expressions of the form |
| 164751 | ** |
| 164752 | ** expr1 IN () |
| 164753 | ** expr1 NOT IN () |
| 164754 | ** |
| 164755 | ** simplify to constants 0 (false) and 1 (true), respectively, |
| 164756 | ** regardless of the value of expr1. |
| 164757 | */ |
| 164758 | sqlite3ExprUnmapAndDelete(pParse, yymsp[-4].minor.yy528); |
| 164759 | yymsp[-4].minor.yy528 = sqlite3Expr(pParse->db, TK_INTEGER, yymsp[-3].minor.yy394 ? "1" : "0"); |
| 164760 | }else{ |
| 164761 | Expr *pRHS = yymsp[-1].minor.yy322->a[0].pExpr; |
| 164762 | if( yymsp[-1].minor.yy322->nExpr==1 && sqlite3ExprIsConstant(pRHS) && yymsp[-4].minor.yy528->op!=TK_VECTOR ){ |
| 164763 | yymsp[-1].minor.yy322->a[0].pExpr = 0; |
| 164764 | sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy322); |
| 164765 | pRHS = sqlite3PExpr(pParse, TK_UPLUS, pRHS, 0); |
| 164766 | yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_EQ, yymsp[-4].minor.yy528, pRHS); |
| 164767 | }else{ |
| 164768 | yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy528, 0); |
| 164769 | if( yymsp[-4].minor.yy528==0 ){ |
| 164770 | sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy322); |
| 164771 | }else if( yymsp[-4].minor.yy528->pLeft->op==TK_VECTOR ){ |
| 164772 | int nExpr = yymsp[-4].minor.yy528->pLeft->x.pList->nExpr; |
| 164773 | Select *pSelectRHS = sqlite3ExprListToValues(pParse, nExpr, yymsp[-1].minor.yy322); |
| 164774 | if( pSelectRHS ){ |
| 164775 | parserDoubleLinkSelect(pParse, pSelectRHS); |
| 164776 | sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy528, pSelectRHS); |
| 164777 | } |
| 164778 | }else{ |
| 164779 | yymsp[-4].minor.yy528->x.pList = yymsp[-1].minor.yy322; |
| 164780 | sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy528); |
| 164781 | } |
| 164782 | } |
| 164783 | if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); |
| 164784 | } |
| 164785 | } |
| 164786 | break; |
| 164787 | case 219: /* expr ::= LP select RP */ |
| 164788 | { |
| 164789 | yymsp[-2].minor.yy528 = sqlite3PExpr(pParse, TK_SELECT, 0, 0); |
| 164790 | sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy528, yymsp[-1].minor.yy47); |
| 164791 | } |
| 164792 | break; |
| 164793 | case 220: /* expr ::= expr in_op LP select RP */ |
| 164794 | { |
| 164795 | yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy528, 0); |
| 164796 | sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy528, yymsp[-1].minor.yy47); |
| 164797 | if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); |
| 164798 | } |
| 164799 | break; |
| 164800 | case 221: /* expr ::= expr in_op nm dbnm paren_exprlist */ |
| 164801 | { |
| 164802 | SrcList *pSrc = sqlite3SrcListAppend(pParse, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); |
| 164803 | Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0); |
| 164804 | if( yymsp[0].minor.yy322 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy322); |
| 164805 | yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy528, 0); |
| 164806 | sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy528, pSelect); |
| 164807 | if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); |
| 164808 | } |
| 164809 | break; |
| 164810 | case 222: /* expr ::= EXISTS LP select RP */ |
| 164811 | { |
| 164812 | Expr *p; |
| 164813 | p = yymsp[-3].minor.yy528 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0); |
| 164814 | sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy47); |
| 164815 | } |
| 164816 | break; |
| 164817 | case 223: /* expr ::= CASE case_operand case_exprlist case_else END */ |
| 164818 | { |
| 164819 | yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy528, 0); |
| 164820 | if( yymsp[-4].minor.yy528 ){ |
| 164821 | yymsp[-4].minor.yy528->x.pList = yymsp[-1].minor.yy528 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[-1].minor.yy528) : yymsp[-2].minor.yy322; |
| 164822 | sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy528); |
| 164823 | }else{ |
| 164824 | sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy322); |
| 164825 | sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy528); |
| 164826 | } |
| 164827 | } |
| 164828 | break; |
| 164829 | case 224: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ |
| 164830 | { |
| 164831 | yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[-2].minor.yy528); |
| 164832 | yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[0].minor.yy528); |
| 164833 | } |
| 164834 | break; |
| 164835 | case 225: /* case_exprlist ::= WHEN expr THEN expr */ |
| 164836 | { |
| 164837 | yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy528); |
| 164838 | yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322, yymsp[0].minor.yy528); |
| 164839 | } |
| 164840 | break; |
| 164841 | case 228: /* case_operand ::= expr */ |
| 164842 | {yymsp[0].minor.yy528 = yymsp[0].minor.yy528; /*A-overwrites-X*/} |
| 164843 | break; |
| 164844 | case 231: /* nexprlist ::= nexprlist COMMA expr */ |
| 164845 | {yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[0].minor.yy528);} |
| 164846 | break; |
| 164847 | case 232: /* nexprlist ::= expr */ |
| 164848 | {yymsp[0].minor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy528); /*A-overwrites-Y*/} |
| 164849 | break; |
| 164850 | case 234: /* paren_exprlist ::= LP exprlist RP */ |
| 164851 | case 239: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==239); |
| 164852 | {yymsp[-2].minor.yy322 = yymsp[-1].minor.yy322;} |
| 164853 | break; |
| 164854 | case 235: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ |
| 164855 | { |
| 164856 | sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, |
| 164857 | sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy322, yymsp[-10].minor.yy394, |
| 164858 | &yymsp[-11].minor.yy0, yymsp[0].minor.yy528, SQLITE_SO_ASC, yymsp[-8].minor.yy394, SQLITE_IDXTYPE_APPDEF); |
| 164859 | if( IN_RENAME_OBJECT && pParse->pNewIndex ){ |
| 164860 | sqlite3RenameTokenMap(pParse, pParse->pNewIndex->zName, &yymsp[-4].minor.yy0); |
| 164861 | } |
| 164862 | } |
| 164863 | break; |
| 164864 | case 236: /* uniqueflag ::= UNIQUE */ |
| 164865 | case 278: /* raisetype ::= ABORT */ yytestcase(yyruleno==278); |
| 164866 | {yymsp[0].minor.yy394 = OE_Abort;} |
| 164867 | break; |
| 164868 | case 237: /* uniqueflag ::= */ |
| 164869 | {yymsp[1].minor.yy394 = OE_None;} |
| 164870 | break; |
| 164871 | case 240: /* eidlist ::= eidlist COMMA nm collate sortorder */ |
| 164872 | { |
| 164873 | yymsp[-4].minor.yy322 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy322, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy394, yymsp[0].minor.yy394); |
| 164874 | } |
| 164875 | break; |
| 164876 | case 241: /* eidlist ::= nm collate sortorder */ |
| 164877 | { |
| 164878 | yymsp[-2].minor.yy322 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy394, yymsp[0].minor.yy394); /*A-overwrites-Y*/ |
| 164879 | } |
| 164880 | break; |
| 164881 | case 244: /* cmd ::= DROP INDEX ifexists fullname */ |
| 164882 | {sqlite3DropIndex(pParse, yymsp[0].minor.yy131, yymsp[-1].minor.yy394);} |
| 164883 | break; |
| 164884 | case 245: /* cmd ::= VACUUM vinto */ |
| 164885 | {sqlite3Vacuum(pParse,0,yymsp[0].minor.yy528);} |
| 164886 | break; |
| 164887 | case 246: /* cmd ::= VACUUM nm vinto */ |
| 164888 | {sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy528);} |
| 164889 | break; |
| 164890 | case 249: /* cmd ::= PRAGMA nm dbnm */ |
| 164891 | {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);} |
| 164892 | break; |
| 164893 | case 250: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ |
| 164894 | {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);} |
| 164895 | break; |
| 164896 | case 251: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ |
| 164897 | {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);} |
| 164898 | break; |
| 164899 | case 252: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ |
| 164900 | {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);} |
| 164901 | break; |
| 164902 | case 253: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ |
| 164903 | {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);} |
| 164904 | break; |
| 164905 | case 256: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ |
| 164906 | { |
| 164907 | Token all; |
| 164908 | all.z = yymsp[-3].minor.yy0.z; |
| 164909 | all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n; |
| 164910 | sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy33, &all); |
| 164911 | } |
| 164912 | break; |
| 164913 | case 257: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ |
| 164914 | { |
| 164915 | sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy394, yymsp[-4].minor.yy180.a, yymsp[-4].minor.yy180.b, yymsp[-2].minor.yy131, yymsp[0].minor.yy528, yymsp[-10].minor.yy394, yymsp[-8].minor.yy394); |
| 164916 | yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/ |
| 164917 | } |
| 164918 | break; |
| 164919 | case 258: /* trigger_time ::= BEFORE|AFTER */ |
| 164920 | { yymsp[0].minor.yy394 = yymsp[0].major; /*A-overwrites-X*/ } |
| 164921 | break; |
| 164922 | case 259: /* trigger_time ::= INSTEAD OF */ |
| 164923 | { yymsp[-1].minor.yy394 = TK_INSTEAD;} |
| 164924 | break; |
| 164925 | case 260: /* trigger_time ::= */ |
| 164926 | { yymsp[1].minor.yy394 = TK_BEFORE; } |
| 164927 | break; |
| 164928 | case 261: /* trigger_event ::= DELETE|INSERT */ |
| 164929 | case 262: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==262); |
| 164930 | {yymsp[0].minor.yy180.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy180.b = 0;} |
| 164931 | break; |
| 164932 | case 263: /* trigger_event ::= UPDATE OF idlist */ |
| 164933 | {yymsp[-2].minor.yy180.a = TK_UPDATE; yymsp[-2].minor.yy180.b = yymsp[0].minor.yy254;} |
| 164934 | break; |
| 164935 | case 264: /* when_clause ::= */ |
| 164936 | case 283: /* key_opt ::= */ yytestcase(yyruleno==283); |
| 164937 | { yymsp[1].minor.yy528 = 0; } |
| 164938 | break; |
| 164939 | case 265: /* when_clause ::= WHEN expr */ |
| 164940 | case 284: /* key_opt ::= KEY expr */ yytestcase(yyruleno==284); |
| 164941 | { yymsp[-1].minor.yy528 = yymsp[0].minor.yy528; } |
| 164942 | break; |
| 164943 | case 266: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ |
| 164944 | { |
| 164945 | assert( yymsp[-2].minor.yy33!=0 ); |
| 164946 | yymsp[-2].minor.yy33->pLast->pNext = yymsp[-1].minor.yy33; |
| 164947 | yymsp[-2].minor.yy33->pLast = yymsp[-1].minor.yy33; |
| 164948 | } |
| 164949 | break; |
| 164950 | case 267: /* trigger_cmd_list ::= trigger_cmd SEMI */ |
| 164951 | { |
| 164952 | assert( yymsp[-1].minor.yy33!=0 ); |
| 164953 | yymsp[-1].minor.yy33->pLast = yymsp[-1].minor.yy33; |
| 164954 | } |
| 164955 | break; |
| 164956 | case 268: /* trnm ::= nm DOT nm */ |
| 164957 | { |
| 164958 | yymsp[-2].minor.yy0 = yymsp[0].minor.yy0; |
| 164959 | sqlite3ErrorMsg(pParse, |
| 164960 | "qualified table names are not allowed on INSERT, UPDATE, and DELETE " |
| 164961 | "statements within triggers"); |
| 164962 | } |
| 164963 | break; |
| 164964 | case 269: /* tridxby ::= INDEXED BY nm */ |
| 164965 | { |
| 164966 | sqlite3ErrorMsg(pParse, |
| 164967 | "the INDEXED BY clause is not allowed on UPDATE or DELETE statements " |
| 164968 | "within triggers"); |
| 164969 | } |
| 164970 | break; |
| 164971 | case 270: /* tridxby ::= NOT INDEXED */ |
| 164972 | { |
| 164973 | sqlite3ErrorMsg(pParse, |
| 164974 | "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements " |
| 164975 | "within triggers"); |
| 164976 | } |
| 164977 | break; |
| 164978 | case 271: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ |
| 164979 | {yylhsminor.yy33 = sqlite3TriggerUpdateStep(pParse, &yymsp[-6].minor.yy0, yymsp[-2].minor.yy131, yymsp[-3].minor.yy322, yymsp[-1].minor.yy528, yymsp[-7].minor.yy394, yymsp[-8].minor.yy0.z, yymsp[0].minor.yy522);} |
| 164980 | yymsp[-8].minor.yy33 = yylhsminor.yy33; |
| 164981 | break; |
| 164982 | case 272: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ |
| 164983 | { |
| 164984 | yylhsminor.yy33 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy254,yymsp[-2].minor.yy47,yymsp[-6].minor.yy394,yymsp[-1].minor.yy444,yymsp[-7].minor.yy522,yymsp[0].minor.yy522);/*yylhsminor.yy33-overwrites-yymsp[-6].minor.yy394*/ |
| 164985 | } |
| 164986 | yymsp[-7].minor.yy33 = yylhsminor.yy33; |
| 164987 | break; |
| 164988 | case 273: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ |
| 164989 | {yylhsminor.yy33 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy528, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy522);} |
| 164990 | yymsp[-5].minor.yy33 = yylhsminor.yy33; |
| 164991 | break; |
| 164992 | case 274: /* trigger_cmd ::= scanpt select scanpt */ |
| 164993 | {yylhsminor.yy33 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy47, yymsp[-2].minor.yy522, yymsp[0].minor.yy522); /*yylhsminor.yy33-overwrites-yymsp[-1].minor.yy47*/} |
| 164994 | yymsp[-2].minor.yy33 = yylhsminor.yy33; |
| 164995 | break; |
| 164996 | case 275: /* expr ::= RAISE LP IGNORE RP */ |
| 164997 | { |
| 164998 | yymsp[-3].minor.yy528 = sqlite3PExpr(pParse, TK_RAISE, 0, 0); |
| 164999 | if( yymsp[-3].minor.yy528 ){ |
| 165000 | yymsp[-3].minor.yy528->affExpr = OE_Ignore; |
| 165001 | } |
| 165002 | } |
| 165003 | break; |
| 165004 | case 276: /* expr ::= RAISE LP raisetype COMMA nm RP */ |
| 165005 | { |
| 165006 | yymsp[-5].minor.yy528 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1); |
| 165007 | if( yymsp[-5].minor.yy528 ) { |
| 165008 | yymsp[-5].minor.yy528->affExpr = (char)yymsp[-3].minor.yy394; |
| 165009 | } |
| 165010 | } |
| 165011 | break; |
| 165012 | case 277: /* raisetype ::= ROLLBACK */ |
| 165013 | {yymsp[0].minor.yy394 = OE_Rollback;} |
| 165014 | break; |
| 165015 | case 279: /* raisetype ::= FAIL */ |
| 165016 | {yymsp[0].minor.yy394 = OE_Fail;} |
| 165017 | break; |
| 165018 | case 280: /* cmd ::= DROP TRIGGER ifexists fullname */ |
| 165019 | { |
| 165020 | sqlite3DropTrigger(pParse,yymsp[0].minor.yy131,yymsp[-1].minor.yy394); |
| 165021 | } |
| 165022 | break; |
| 165023 | case 281: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ |
| 165024 | { |
| 165025 | sqlite3Attach(pParse, yymsp[-3].minor.yy528, yymsp[-1].minor.yy528, yymsp[0].minor.yy528); |
| 165026 | } |
| 165027 | break; |
| 165028 | case 282: /* cmd ::= DETACH database_kw_opt expr */ |
| 165029 | { |
| 165030 | sqlite3Detach(pParse, yymsp[0].minor.yy528); |
| 165031 | } |
| 165032 | break; |
| 165033 | case 285: /* cmd ::= REINDEX */ |
| 165034 | {sqlite3Reindex(pParse, 0, 0);} |
| 165035 | break; |
| 165036 | case 286: /* cmd ::= REINDEX nm dbnm */ |
| 165037 | {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} |
| 165038 | break; |
| 165039 | case 287: /* cmd ::= ANALYZE */ |
| 165040 | {sqlite3Analyze(pParse, 0, 0);} |
| 165041 | break; |
| 165042 | case 288: /* cmd ::= ANALYZE nm dbnm */ |
| 165043 | {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} |
| 165044 | break; |
| 165045 | case 289: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ |
| 165046 | { |
| 165047 | sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy131,&yymsp[0].minor.yy0); |
| 165048 | } |
| 165049 | break; |
| 165050 | case 290: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ |
| 165051 | { |
| 165052 | yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n; |
| 165053 | sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0); |
| 165054 | } |
| 165055 | break; |
| 165056 | case 291: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ |
| 165057 | { |
| 165058 | sqlite3AlterDropColumn(pParse, yymsp[-3].minor.yy131, &yymsp[0].minor.yy0); |
| 165059 | } |
| 165060 | break; |
| 165061 | case 292: /* add_column_fullname ::= fullname */ |
| 165062 | { |
| 165063 | disableLookaside(pParse); |
| 165064 | sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy131); |
| 165065 | } |
| 165066 | break; |
| 165067 | case 293: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ |
| 165068 | { |
| 165069 | sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy131, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); |
| 165070 | } |
| 165071 | break; |
| 165072 | case 294: /* cmd ::= create_vtab */ |
| 165073 | {sqlite3VtabFinishParse(pParse,0);} |
| 165074 | break; |
| 165075 | case 295: /* cmd ::= create_vtab LP vtabarglist RP */ |
| 165076 | {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);} |
| 165077 | break; |
| 165078 | case 296: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ |
| 165079 | { |
| 165080 | sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy394); |
| 165081 | } |
| 165082 | break; |
| 165083 | case 297: /* vtabarg ::= */ |
| 165084 | {sqlite3VtabArgInit(pParse);} |
| 165085 | break; |
| 165086 | case 298: /* vtabargtoken ::= ANY */ |
| 165087 | case 299: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==299); |
| 165088 | case 300: /* lp ::= LP */ yytestcase(yyruleno==300); |
| 165089 | {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);} |
| 165090 | break; |
| 165091 | case 301: /* with ::= WITH wqlist */ |
| 165092 | case 302: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==302); |
| 165093 | { sqlite3WithPush(pParse, yymsp[0].minor.yy521, 1); } |
| 165094 | break; |
| 165095 | case 303: /* wqas ::= AS */ |
| 165096 | {yymsp[0].minor.yy516 = M10d_Any;} |
| 165097 | break; |
| 165098 | case 304: /* wqas ::= AS MATERIALIZED */ |
| 165099 | {yymsp[-1].minor.yy516 = M10d_Yes;} |
| 165100 | break; |
| 165101 | case 305: /* wqas ::= AS NOT MATERIALIZED */ |
| 165102 | {yymsp[-2].minor.yy516 = M10d_No;} |
| 165103 | break; |
| 165104 | case 306: /* wqitem ::= nm eidlist_opt wqas LP select RP */ |
| 165105 | { |
| 165106 | yymsp[-5].minor.yy385 = sqlite3CteNew(pParse, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy322, yymsp[-1].minor.yy47, yymsp[-3].minor.yy516); /*A-overwrites-X*/ |
| 165107 | } |
| 165108 | break; |
| 165109 | case 307: /* wqlist ::= wqitem */ |
| 165110 | { |
| 165111 | yymsp[0].minor.yy521 = sqlite3WithAdd(pParse, 0, yymsp[0].minor.yy385); /*A-overwrites-X*/ |
| 165112 | } |
| 165113 | break; |
| 165114 | case 308: /* wqlist ::= wqlist COMMA wqitem */ |
| 165115 | { |
| 165116 | yymsp[-2].minor.yy521 = sqlite3WithAdd(pParse, yymsp[-2].minor.yy521, yymsp[0].minor.yy385); |
| 165117 | } |
| 165118 | break; |
| 165119 | case 309: /* windowdefn_list ::= windowdefn */ |
| 165120 | { yylhsminor.yy41 = yymsp[0].minor.yy41; } |
| 165121 | yymsp[0].minor.yy41 = yylhsminor.yy41; |
| 165122 | break; |
| 165123 | case 310: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ |
| 165124 | { |
| 165125 | assert( yymsp[0].minor.yy41!=0 ); |
| 165126 | sqlite3WindowChain(pParse, yymsp[0].minor.yy41, yymsp[-2].minor.yy41); |
| 165127 | yymsp[0].minor.yy41->pNextWin = yymsp[-2].minor.yy41; |
| 165128 | yylhsminor.yy41 = yymsp[0].minor.yy41; |
| 165129 | } |
| 165130 | yymsp[-2].minor.yy41 = yylhsminor.yy41; |
| 165131 | break; |
| 165132 | case 311: /* windowdefn ::= nm AS LP window RP */ |
| 165133 | { |
| 165134 | if( ALWAYS(yymsp[-1].minor.yy41) ){ |
| 165135 | yymsp[-1].minor.yy41->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n); |
| 165136 | } |
| 165137 | yylhsminor.yy41 = yymsp[-1].minor.yy41; |
| 165138 | } |
| 165139 | yymsp[-4].minor.yy41 = yylhsminor.yy41; |
| 165140 | break; |
| 165141 | case 312: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ |
| 165142 | { |
| 165143 | yymsp[-4].minor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, yymsp[-2].minor.yy322, yymsp[-1].minor.yy322, 0); |
| 165144 | } |
| 165145 | break; |
| 165146 | case 313: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ |
| 165147 | { |
| 165148 | yylhsminor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, yymsp[-2].minor.yy322, yymsp[-1].minor.yy322, &yymsp[-5].minor.yy0); |
| 165149 | } |
| 165150 | yymsp[-5].minor.yy41 = yylhsminor.yy41; |
| 165151 | break; |
| 165152 | case 314: /* window ::= ORDER BY sortlist frame_opt */ |
| 165153 | { |
| 165154 | yymsp[-3].minor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, 0, yymsp[-1].minor.yy322, 0); |
| 165155 | } |
| 165156 | break; |
| 165157 | case 315: /* window ::= nm ORDER BY sortlist frame_opt */ |
| 165158 | { |
| 165159 | yylhsminor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, 0, yymsp[-1].minor.yy322, &yymsp[-4].minor.yy0); |
| 165160 | } |
| 165161 | yymsp[-4].minor.yy41 = yylhsminor.yy41; |
| 165162 | break; |
| 165163 | case 316: /* window ::= frame_opt */ |
| 165164 | case 335: /* filter_over ::= over_clause */ yytestcase(yyruleno==335); |
| 165165 | { |
| 165166 | yylhsminor.yy41 = yymsp[0].minor.yy41; |
| 165167 | } |
| 165168 | yymsp[0].minor.yy41 = yylhsminor.yy41; |
| 165169 | break; |
| 165170 | case 317: /* window ::= nm frame_opt */ |
| 165171 | { |
| 165172 | yylhsminor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, 0, 0, &yymsp[-1].minor.yy0); |
| 165173 | } |
| 165174 | yymsp[-1].minor.yy41 = yylhsminor.yy41; |
| 165175 | break; |
| 165176 | case 318: /* frame_opt ::= */ |
| 165177 | { |
| 165178 | yymsp[1].minor.yy41 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0); |
| 165179 | } |
| 165180 | break; |
| 165181 | case 319: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ |
| 165182 | { |
| 165183 | yylhsminor.yy41 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy394, yymsp[-1].minor.yy595.eType, yymsp[-1].minor.yy595.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy516); |
| 165184 | } |
| 165185 | yymsp[-2].minor.yy41 = yylhsminor.yy41; |
| 165186 | break; |
| 165187 | case 320: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ |
| 165188 | { |
| 165189 | yylhsminor.yy41 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy394, yymsp[-3].minor.yy595.eType, yymsp[-3].minor.yy595.pExpr, yymsp[-1].minor.yy595.eType, yymsp[-1].minor.yy595.pExpr, yymsp[0].minor.yy516); |
| 165190 | } |
| 165191 | yymsp[-5].minor.yy41 = yylhsminor.yy41; |
| 165192 | break; |
| 165193 | case 322: /* frame_bound_s ::= frame_bound */ |
| 165194 | case 324: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==324); |
| 165195 | {yylhsminor.yy595 = yymsp[0].minor.yy595;} |
| 165196 | yymsp[0].minor.yy595 = yylhsminor.yy595; |
| 165197 | break; |
| 165198 | case 323: /* frame_bound_s ::= UNBOUNDED PRECEDING */ |
| 165199 | case 325: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==325); |
| 165200 | case 327: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==327); |
| 165201 | {yylhsminor.yy595.eType = yymsp[-1].major; yylhsminor.yy595.pExpr = 0;} |
| 165202 | yymsp[-1].minor.yy595 = yylhsminor.yy595; |
| 165203 | break; |
| 165204 | case 326: /* frame_bound ::= expr PRECEDING|FOLLOWING */ |
| 165205 | {yylhsminor.yy595.eType = yymsp[0].major; yylhsminor.yy595.pExpr = yymsp[-1].minor.yy528;} |
| 165206 | yymsp[-1].minor.yy595 = yylhsminor.yy595; |
| 165207 | break; |
| 165208 | case 328: /* frame_exclude_opt ::= */ |
| 165209 | {yymsp[1].minor.yy516 = 0;} |
| 165210 | break; |
| 165211 | case 329: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ |
| 165212 | {yymsp[-1].minor.yy516 = yymsp[0].minor.yy516;} |
| 165213 | break; |
| 165214 | case 330: /* frame_exclude ::= NO OTHERS */ |
| 165215 | case 331: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==331); |
| 165216 | {yymsp[-1].minor.yy516 = yymsp[-1].major; /*A-overwrites-X*/} |
| 165217 | break; |
| 165218 | case 332: /* frame_exclude ::= GROUP|TIES */ |
| 165219 | {yymsp[0].minor.yy516 = yymsp[0].major; /*A-overwrites-X*/} |
| 165220 | break; |
| 165221 | case 333: /* window_clause ::= WINDOW windowdefn_list */ |
| 165222 | { yymsp[-1].minor.yy41 = yymsp[0].minor.yy41; } |
| 165223 | break; |
| 165224 | case 334: /* filter_over ::= filter_clause over_clause */ |
| 165225 | { |
| 165226 | if( yymsp[0].minor.yy41 ){ |
| 165227 | yymsp[0].minor.yy41->pFilter = yymsp[-1].minor.yy528; |
| 165228 | }else{ |
| 165229 | sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy528); |
| 165230 | } |
| 165231 | yylhsminor.yy41 = yymsp[0].minor.yy41; |
| 165232 | } |
| 165233 | yymsp[-1].minor.yy41 = yylhsminor.yy41; |
| 165234 | break; |
| 165235 | case 336: /* filter_over ::= filter_clause */ |
| 165236 | { |
| 165237 | yylhsminor.yy41 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); |
| 165238 | if( yylhsminor.yy41 ){ |
| 165239 | yylhsminor.yy41->eFrmType = TK_FILTER; |
| 165240 | yylhsminor.yy41->pFilter = yymsp[0].minor.yy528; |
| 165241 | }else{ |
| 165242 | sqlite3ExprDelete(pParse->db, yymsp[0].minor.yy528); |
| 165243 | } |
| 165244 | } |
| 165245 | yymsp[0].minor.yy41 = yylhsminor.yy41; |
| 165246 | break; |
| 165247 | case 337: /* over_clause ::= OVER LP window RP */ |
| 165248 | { |
| 165249 | yymsp[-3].minor.yy41 = yymsp[-1].minor.yy41; |
| 165250 | assert( yymsp[-3].minor.yy41!=0 ); |
| 165251 | } |
| 165252 | break; |
| 165253 | case 338: /* over_clause ::= OVER nm */ |
| 165254 | { |
| 165255 | yymsp[-1].minor.yy41 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); |
| 165256 | if( yymsp[-1].minor.yy41 ){ |
| 165257 | yymsp[-1].minor.yy41->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n); |
| 165258 | } |
| 165259 | } |
| 165260 | break; |
| 165261 | case 339: /* filter_clause ::= FILTER LP WHERE expr RP */ |
| 165262 | { yymsp[-4].minor.yy528 = yymsp[-1].minor.yy528; } |
| 165263 | break; |
| 165264 | default: |
| 165265 | /* (340) input ::= cmdlist */ yytestcase(yyruleno==340); |
| 165266 | /* (341) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==341); |
| 165267 | /* (342) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=342); |
| 165268 | /* (343) ecmd ::= SEMI */ yytestcase(yyruleno==343); |
| 165269 | /* (344) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==344); |
| 165270 | /* (345) ecmd ::= explain cmdx SEMI (NEVER REDUCES) */ assert(yyruleno!=345); |
| 165271 | /* (346) trans_opt ::= */ yytestcase(yyruleno==346); |
| 165272 | /* (347) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==347); |
| 165273 | /* (348) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==348); |
| 165274 | /* (349) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==349); |
| 165275 | /* (350) savepoint_opt ::= */ yytestcase(yyruleno==350); |
| 165276 | /* (351) cmd ::= create_table create_table_args */ yytestcase(yyruleno==351); |
| 165277 | /* (352) table_option_set ::= table_option (OPTIMIZED OUT) */ assert(yyruleno!=352); |
| 165278 | /* (353) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==353); |
| 165279 | /* (354) columnlist ::= columnname carglist */ yytestcase(yyruleno==354); |
| 165280 | /* (355) nm ::= ID|INDEXED */ yytestcase(yyruleno==355); |
| 165281 | /* (356) nm ::= STRING */ yytestcase(yyruleno==356); |
| 165282 | /* (357) nm ::= JOIN_KW */ yytestcase(yyruleno==357); |
| 165283 | /* (358) typetoken ::= typename */ yytestcase(yyruleno==358); |
| 165284 | /* (359) typename ::= ID|STRING */ yytestcase(yyruleno==359); |
| 165285 | /* (360) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=360); |
| 165286 | /* (361) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=361); |
| 165287 | /* (362) carglist ::= carglist ccons */ yytestcase(yyruleno==362); |
| 165288 | /* (363) carglist ::= */ yytestcase(yyruleno==363); |
| 165289 | /* (364) ccons ::= NULL onconf */ yytestcase(yyruleno==364); |
| 165290 | /* (365) ccons ::= GENERATED ALWAYS AS generated */ yytestcase(yyruleno==365); |
| 165291 | /* (366) ccons ::= AS generated */ yytestcase(yyruleno==366); |
| 165292 | /* (367) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==367); |
| 165293 | /* (368) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==368); |
| 165294 | /* (369) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=369); |
| 165295 | /* (370) tconscomma ::= */ yytestcase(yyruleno==370); |
| 165296 | /* (371) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=371); |
| 165297 | /* (372) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=372); |
| 165298 | /* (373) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=373); |
| 165299 | /* (374) oneselect ::= values */ yytestcase(yyruleno==374); |
| 165300 | /* (375) sclp ::= selcollist COMMA */ yytestcase(yyruleno==375); |
| 165301 | /* (376) as ::= ID|STRING */ yytestcase(yyruleno==376); |
| 165302 | /* (377) returning ::= */ yytestcase(yyruleno==377); |
| 165303 | /* (378) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=378); |
| 165304 | /* (379) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==379); |
| 165305 | /* (380) exprlist ::= nexprlist */ yytestcase(yyruleno==380); |
| 165306 | /* (381) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=381); |
| 165307 | /* (382) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=382); |
| 165308 | /* (383) nmnum ::= ON */ yytestcase(yyruleno==383); |
| 165309 | /* (384) nmnum ::= DELETE */ yytestcase(yyruleno==384); |
| 165310 | /* (385) nmnum ::= DEFAULT */ yytestcase(yyruleno==385); |
| 165311 | /* (386) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==386); |
| 165312 | /* (387) foreach_clause ::= */ yytestcase(yyruleno==387); |
| 165313 | /* (388) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==388); |
| 165314 | /* (389) trnm ::= nm */ yytestcase(yyruleno==389); |
| 165315 | /* (390) tridxby ::= */ yytestcase(yyruleno==390); |
| 165316 | /* (391) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==391); |
| 165317 | /* (392) database_kw_opt ::= */ yytestcase(yyruleno==392); |
| 165318 | /* (393) kwcolumn_opt ::= */ yytestcase(yyruleno==393); |
| 165319 | /* (394) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==394); |
| 165320 | /* (395) vtabarglist ::= vtabarg */ yytestcase(yyruleno==395); |
| 165321 | /* (396) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==396); |
| 165322 | /* (397) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==397); |
| 165323 | /* (398) anylist ::= */ yytestcase(yyruleno==398); |
| 165324 | /* (399) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==399); |
| 165325 | /* (400) anylist ::= anylist ANY */ yytestcase(yyruleno==400); |
| 165326 | /* (401) with ::= */ yytestcase(yyruleno==401); |
| 165327 | break; |
| 165328 | /********** End reduce actions ************************************************/ |
| 165329 | }; |
| 165330 | assert( yyruleno<sizeof(yyRuleInfoLhs)/sizeof(yyRuleInfoLhs[0]) ); |
| 165331 | yygoto = yyRuleInfoLhs[yyruleno]; |
| @@ -166398,10 +166444,13 @@ | |
| 166444 | case CC_MINUS: { |
| 166445 | if( z[1]=='-' ){ |
| 166446 | for(i=2; (c=z[i])!=0 && c!='\n'; i++){} |
| 166447 | *tokenType = TK_SPACE; /* IMP: R-22934-25134 */ |
| 166448 | return i; |
| 166449 | }else if( z[1]=='>' ){ |
| 166450 | *tokenType = TK_PTR; |
| 166451 | return 2 + (z[2]=='>'); |
| 166452 | } |
| 166453 | *tokenType = TK_MINUS; |
| 166454 | return 1; |
| 166455 | } |
| 166456 | case CC_LP: { |
| @@ -167394,13 +167443,10 @@ | |
| 167443 | SQLITE_PRIVATE int sqlite3Fts2Init(sqlite3*); |
| 167444 | #endif |
| 167445 | #ifdef SQLITE_ENABLE_FTS5 |
| 167446 | SQLITE_PRIVATE int sqlite3Fts5Init(sqlite3*); |
| 167447 | #endif |
| 167448 | #ifdef SQLITE_ENABLE_STMTVTAB |
| 167449 | SQLITE_PRIVATE int sqlite3StmtVtabInit(sqlite3*); |
| 167450 | #endif |
| 167451 | |
| 167452 | /* |
| @@ -167431,12 +167477,12 @@ | |
| 167477 | #endif |
| 167478 | #ifdef SQLITE_ENABLE_DBSTAT_VTAB |
| 167479 | sqlite3DbstatRegister, |
| 167480 | #endif |
| 167481 | sqlite3TestExtInit, |
| 167482 | #if !defined(SQLITE_OMIT_VIRTUALTABLE) && !defined(SQLITE_OMIT_JSON) |
| 167483 | sqlite3JsonTableFunctions, |
| 167484 | #endif |
| 167485 | #ifdef SQLITE_ENABLE_STMTVTAB |
| 167486 | sqlite3StmtVtabInit, |
| 167487 | #endif |
| 167488 | #ifdef SQLITE_ENABLE_BYTECODE_VTAB |
| @@ -192022,11 +192068,11 @@ | |
| 192068 | } |
| 192069 | #endif /* defined(SQLITE_ENABLE_FTS3) || defined(SQLITE_ENABLE_FTS4) */ |
| 192070 | #endif /* !defined(SQLITE_DISABLE_FTS3_UNICODE) */ |
| 192071 | |
| 192072 | /************** End of fts3_unicode2.c ***************************************/ |
| 192073 | /************** Begin file json.c ********************************************/ |
| 192074 | /* |
| 192075 | ** 2015-08-12 |
| 192076 | ** |
| 192077 | ** The author disclaims copyright to this source code. In place of |
| 192078 | ** a legal notice, here is a blessing: |
| @@ -192035,72 +192081,23 @@ | |
| 192081 | ** May you find forgiveness for yourself and forgive others. |
| 192082 | ** May you share freely, never taking more than you give. |
| 192083 | ** |
| 192084 | ****************************************************************************** |
| 192085 | ** |
| 192086 | ** This SQLite JSON functions. |
| 192087 | ** |
| 192088 | ** This file began as an extension in ext/misc/json1.c in 2015. That |
| 192089 | ** extension proved so useful that it has now been moved into the core. |
| 192090 | ** |
| 192091 | ** For the time being, all JSON is stored as pure text. (We might add |
| 192092 | ** a JSONB type in the future which stores a binary encoding of JSON in |
| 192093 | ** a BLOB, but there is no support for JSONB in the current implementation. |
| 192094 | ** This implementation parses JSON text at 250 MB/s, so it is hard to see |
| 192095 | ** how JSONB might improve on that.) |
| 192096 | */ |
| 192097 | #ifndef SQLITE_OMIT_JSON |
| 192098 | /* #include "sqliteInt.h" */ |
| 192099 | |
| 192100 | /* |
| 192101 | ** Growing our own isspace() routine this way is twice as fast as |
| 192102 | ** the library isspace() function, resulting in a 7% overall performance |
| 192103 | ** increase for the parser. (Ubuntu14.10 gcc 4.8.4 x64 with -Os). |
| @@ -192121,48 +192118,18 @@ | |
| 192118 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 192119 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 192120 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 192121 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 192122 | }; |
| 192123 | #define fast_isspace(x) (jsonIsSpace[(unsigned char)x]) |
| 192124 | |
| 192125 | #if !defined(SQLITE_DEBUG) && !defined(SQLITE_COVERAGE_TEST) |
| 192126 | # define VVA(X) |
| 192127 | #else |
| 192128 | # define VVA(X) X |
| 192129 | #endif |
| 192130 | |
| 192131 | /* Objects */ |
| 192132 | typedef struct JsonString JsonString; |
| 192133 | typedef struct JsonNode JsonNode; |
| 192134 | typedef struct JsonParse JsonParse; |
| 192135 | |
| @@ -192616,14 +192583,14 @@ | |
| 192583 | /* |
| 192584 | ** Convert a 4-byte hex string into an integer |
| 192585 | */ |
| 192586 | static u32 jsonHexToInt4(const char *z){ |
| 192587 | u32 v; |
| 192588 | assert( sqlite3Isxdigit(z[0]) ); |
| 192589 | assert( sqlite3Isxdigit(z[1]) ); |
| 192590 | assert( sqlite3Isxdigit(z[2]) ); |
| 192591 | assert( sqlite3Isxdigit(z[3]) ); |
| 192592 | v = (jsonHexToInt(z[0])<<12) |
| 192593 | + (jsonHexToInt(z[1])<<8) |
| 192594 | + (jsonHexToInt(z[2])<<4) |
| 192595 | + jsonHexToInt(z[3]); |
| 192596 | return v; |
| @@ -192854,11 +192821,11 @@ | |
| 192821 | /* |
| 192822 | ** Return true if z[] begins with 4 (or more) hexadecimal digits |
| 192823 | */ |
| 192824 | static int jsonIs4Hex(const char *z){ |
| 192825 | int i; |
| 192826 | for(i=0; i<4; i++) if( !sqlite3Isxdigit(z[i]) ) return 0; |
| 192827 | return 1; |
| 192828 | } |
| 192829 | |
| 192830 | /* |
| 192831 | ** Parse a single JSON value which begins at pParse->zJson[i]. Return the |
| @@ -192873,17 +192840,17 @@ | |
| 192840 | u32 j; |
| 192841 | int iThis; |
| 192842 | int x; |
| 192843 | JsonNode *pNode; |
| 192844 | const char *z = pParse->zJson; |
| 192845 | while( fast_isspace(z[i]) ){ i++; } |
| 192846 | if( (c = z[i])=='{' ){ |
| 192847 | /* Parse object */ |
| 192848 | iThis = jsonParseAddNode(pParse, JSON_OBJECT, 0, 0); |
| 192849 | if( iThis<0 ) return -1; |
| 192850 | for(j=i+1;;j++){ |
| 192851 | while( fast_isspace(z[j]) ){ j++; } |
| 192852 | if( ++pParse->iDepth > JSON_MAX_DEPTH ) return -1; |
| 192853 | x = jsonParseValue(pParse, j); |
| 192854 | if( x<0 ){ |
| 192855 | pParse->iDepth--; |
| 192856 | if( x==(-2) && pParse->nNode==(u32)iThis+1 ) return j+1; |
| @@ -192892,18 +192859,18 @@ | |
| 192859 | if( pParse->oom ) return -1; |
| 192860 | pNode = &pParse->aNode[pParse->nNode-1]; |
| 192861 | if( pNode->eType!=JSON_STRING ) return -1; |
| 192862 | pNode->jnFlags |= JNODE_LABEL; |
| 192863 | j = x; |
| 192864 | while( fast_isspace(z[j]) ){ j++; } |
| 192865 | if( z[j]!=':' ) return -1; |
| 192866 | j++; |
| 192867 | x = jsonParseValue(pParse, j); |
| 192868 | pParse->iDepth--; |
| 192869 | if( x<0 ) return -1; |
| 192870 | j = x; |
| 192871 | while( fast_isspace(z[j]) ){ j++; } |
| 192872 | c = z[j]; |
| 192873 | if( c==',' ) continue; |
| 192874 | if( c!='}' ) return -1; |
| 192875 | break; |
| 192876 | } |
| @@ -192913,20 +192880,20 @@ | |
| 192880 | /* Parse array */ |
| 192881 | iThis = jsonParseAddNode(pParse, JSON_ARRAY, 0, 0); |
| 192882 | if( iThis<0 ) return -1; |
| 192883 | memset(&pParse->aNode[iThis].u, 0, sizeof(pParse->aNode[iThis].u)); |
| 192884 | for(j=i+1;;j++){ |
| 192885 | while( fast_isspace(z[j]) ){ j++; } |
| 192886 | if( ++pParse->iDepth > JSON_MAX_DEPTH ) return -1; |
| 192887 | x = jsonParseValue(pParse, j); |
| 192888 | pParse->iDepth--; |
| 192889 | if( x<0 ){ |
| 192890 | if( x==(-3) && pParse->nNode==(u32)iThis+1 ) return j+1; |
| 192891 | return -1; |
| 192892 | } |
| 192893 | j = x; |
| 192894 | while( fast_isspace(z[j]) ){ j++; } |
| 192895 | c = z[j]; |
| 192896 | if( c==',' ) continue; |
| 192897 | if( c!=']' ) return -1; |
| 192898 | break; |
| 192899 | } |
| @@ -192959,21 +192926,21 @@ | |
| 192926 | jsonParseAddNode(pParse, JSON_STRING, j+1-i, &z[i]); |
| 192927 | if( !pParse->oom ) pParse->aNode[pParse->nNode-1].jnFlags = jnFlags; |
| 192928 | return j+1; |
| 192929 | }else if( c=='n' |
| 192930 | && strncmp(z+i,"null",4)==0 |
| 192931 | && !sqlite3Isalnum(z[i+4]) ){ |
| 192932 | jsonParseAddNode(pParse, JSON_NULL, 0, 0); |
| 192933 | return i+4; |
| 192934 | }else if( c=='t' |
| 192935 | && strncmp(z+i,"true",4)==0 |
| 192936 | && !sqlite3Isalnum(z[i+4]) ){ |
| 192937 | jsonParseAddNode(pParse, JSON_TRUE, 0, 0); |
| 192938 | return i+4; |
| 192939 | }else if( c=='f' |
| 192940 | && strncmp(z+i,"false",5)==0 |
| 192941 | && !sqlite3Isalnum(z[i+5]) ){ |
| 192942 | jsonParseAddNode(pParse, JSON_FALSE, 0, 0); |
| 192943 | return i+5; |
| 192944 | }else if( c=='-' || (c>='0' && c<='9') ){ |
| 192945 | /* Parse number */ |
| 192946 | u8 seenDP = 0; |
| @@ -193040,11 +193007,11 @@ | |
| 193007 | pParse->zJson = zJson; |
| 193008 | i = jsonParseValue(pParse, 0); |
| 193009 | if( pParse->oom ) i = -1; |
| 193010 | if( i>0 ){ |
| 193011 | assert( pParse->iDepth==0 ); |
| 193012 | while( fast_isspace(zJson[i]) ) i++; |
| 193013 | if( zJson[i] ) i = -1; |
| 193014 | } |
| 193015 | if( i<=0 ){ |
| 193016 | if( pCtx!=0 ){ |
| 193017 | if( pParse->oom ){ |
| @@ -193268,11 +193235,11 @@ | |
| 193235 | return pNode; |
| 193236 | } |
| 193237 | }else if( zPath[0]=='[' ){ |
| 193238 | i = 0; |
| 193239 | j = 1; |
| 193240 | while( sqlite3Isdigit(zPath[j]) ){ |
| 193241 | i = i*10 + zPath[j] - '0'; |
| 193242 | j++; |
| 193243 | } |
| 193244 | if( j<2 || zPath[j]!=']' ){ |
| 193245 | if( zPath[1]=='#' ){ |
| @@ -193289,17 +193256,17 @@ | |
| 193256 | iBase += pBase->u.iAppend; |
| 193257 | pBase = &pParse->aNode[iBase]; |
| 193258 | j = 1; |
| 193259 | } |
| 193260 | j = 2; |
| 193261 | if( zPath[2]=='-' && sqlite3Isdigit(zPath[3]) ){ |
| 193262 | unsigned int x = 0; |
| 193263 | j = 3; |
| 193264 | do{ |
| 193265 | x = x*10 + zPath[j] - '0'; |
| 193266 | j++; |
| 193267 | }while( sqlite3Isdigit(zPath[j]) ); |
| 193268 | if( x>i ) return 0; |
| 193269 | i -= x; |
| 193270 | } |
| 193271 | if( zPath[j]!=']' ){ |
| 193272 | *pzErr = zPath; |
| @@ -193514,11 +193481,11 @@ | |
| 193481 | static void jsonTest1Func( |
| 193482 | sqlite3_context *ctx, |
| 193483 | int argc, |
| 193484 | sqlite3_value **argv |
| 193485 | ){ |
| 193486 | UNUSED_PARAMETER(argc); |
| 193487 | sqlite3_result_int(ctx, sqlite3_value_subtype(argv[0])==JSON_SUBTYPE); |
| 193488 | } |
| 193489 | #endif /* SQLITE_DEBUG */ |
| 193490 | |
| 193491 | /**************************************************************************** |
| @@ -193535,11 +193502,11 @@ | |
| 193502 | sqlite3_context *ctx, |
| 193503 | int argc, |
| 193504 | sqlite3_value **argv |
| 193505 | ){ |
| 193506 | JsonString jx; |
| 193507 | UNUSED_PARAMETER(argc); |
| 193508 | |
| 193509 | jsonInit(&jx, ctx); |
| 193510 | jsonAppendValue(&jx, argv[0]); |
| 193511 | jsonResult(&jx); |
| 193512 | sqlite3_result_subtype(ctx, JSON_SUBTYPE); |
| @@ -193606,55 +193573,118 @@ | |
| 193573 | } |
| 193574 | } |
| 193575 | sqlite3_result_int64(ctx, n); |
| 193576 | } |
| 193577 | |
| 193578 | /* |
| 193579 | ** Bit values for the flags passed into jsonExtractFunc() or |
| 193580 | ** jsonSetFunc() via the user-data value. |
| 193581 | */ |
| 193582 | #define JSON_JSON 0x01 /* Result is always JSON */ |
| 193583 | #define JSON_SQL 0x02 /* Result is always SQL */ |
| 193584 | #define JSON_ABPATH 0x03 /* Allow abbreviated JSON path specs */ |
| 193585 | #define JSON_ISSET 0x04 /* json_set(), not json_insert() */ |
| 193586 | |
| 193587 | /* |
| 193588 | ** json_extract(JSON, PATH, ...) |
| 193589 | ** "->"(JSON,PATH) |
| 193590 | ** "->>"(JSON,PATH) |
| 193591 | ** |
| 193592 | ** Return the element described by PATH. Return NULL if that PATH element |
| 193593 | ** is not found. |
| 193594 | ** |
| 193595 | ** If JSON_JSON is set or if more that one PATH argument is supplied then |
| 193596 | ** always return a JSON representation of the result. If JSON_SQL is set, |
| 193597 | ** then always return an SQL representation of the result. If neither flag |
| 193598 | ** is present and argc==2, then return JSON for objects and arrays and SQL |
| 193599 | ** for all other values. |
| 193600 | ** |
| 193601 | ** When multiple PATH arguments are supplied, the result is a JSON array |
| 193602 | ** containing the result of each PATH. |
| 193603 | ** |
| 193604 | ** Abbreviated JSON path expressions are allows if JSON_ABPATH, for |
| 193605 | ** compatibility with PG. |
| 193606 | */ |
| 193607 | static void jsonExtractFunc( |
| 193608 | sqlite3_context *ctx, |
| 193609 | int argc, |
| 193610 | sqlite3_value **argv |
| 193611 | ){ |
| 193612 | JsonParse *p; /* The parse */ |
| 193613 | JsonNode *pNode; |
| 193614 | const char *zPath; |
| 193615 | int flags = SQLITE_PTR_TO_INT(sqlite3_user_data(ctx)); |
| 193616 | JsonString jx; |
| 193617 | |
| 193618 | if( argc<2 ) return; |
| 193619 | p = jsonParseCached(ctx, argv, ctx); |
| 193620 | if( p==0 ) return; |
| 193621 | if( argc==2 ){ |
| 193622 | /* With a single PATH argument */ |
| 193623 | zPath = (const char*)sqlite3_value_text(argv[1]); |
| 193624 | if( zPath==0 ) return; |
| 193625 | if( flags & JSON_ABPATH ){ |
| 193626 | if( zPath[0]!='$' ){ |
| 193627 | /* The -> and ->> operators accept abbreviated PATH arguments. This |
| 193628 | ** is mostly for compatibility with PostgreSQL, but also for |
| 193629 | ** convenience. |
| 193630 | ** |
| 193631 | ** NUMBER ==> $[NUMBER] // PG compatible |
| 193632 | ** LABEL ==> $.LABEL // PG compatible |
| 193633 | ** [NUMBER] ==> $[NUMBER] // Not PG. Purely for convenience |
| 193634 | */ |
| 193635 | jsonInit(&jx, ctx); |
| 193636 | if( sqlite3Isdigit(zPath[0]) ){ |
| 193637 | jsonAppendRaw(&jx, "$[", 2); |
| 193638 | jsonAppendRaw(&jx, zPath, (int)strlen(zPath)); |
| 193639 | jsonAppendRaw(&jx, "]", 2); |
| 193640 | }else{ |
| 193641 | jsonAppendRaw(&jx, "$.", 1 + (zPath[0]!='[')); |
| 193642 | jsonAppendRaw(&jx, zPath, (int)strlen(zPath)); |
| 193643 | jsonAppendChar(&jx, 0); |
| 193644 | } |
| 193645 | pNode = jx.bErr ? 0 : jsonLookup(p, jx.zBuf, 0, ctx); |
| 193646 | jsonReset(&jx); |
| 193647 | }else{ |
| 193648 | pNode = jsonLookup(p, zPath, 0, ctx); |
| 193649 | } |
| 193650 | if( pNode ){ |
| 193651 | if( flags & JSON_JSON ){ |
| 193652 | jsonReturnJson(pNode, ctx, 0); |
| 193653 | }else{ |
| 193654 | jsonReturn(pNode, ctx, 0); |
| 193655 | sqlite3_result_subtype(ctx, 0); |
| 193656 | } |
| 193657 | } |
| 193658 | }else{ |
| 193659 | pNode = jsonLookup(p, zPath, 0, ctx); |
| 193660 | if( p->nErr==0 && pNode ) jsonReturn(pNode, ctx, 0); |
| 193661 | } |
| 193662 | }else{ |
| 193663 | /* Two or more PATH arguments results in a JSON array with each |
| 193664 | ** element of the array being the value selected by one of the PATHs */ |
| 193665 | int i; |
| 193666 | jsonInit(&jx, ctx); |
| 193667 | jsonAppendChar(&jx, '['); |
| 193668 | for(i=1; i<argc; i++){ |
| 193669 | zPath = (const char*)sqlite3_value_text(argv[i]); |
| 193670 | pNode = jsonLookup(p, zPath, 0, ctx); |
| 193671 | if( p->nErr ) break; |
| 193672 | jsonAppendSeparator(&jx); |
| 193673 | if( pNode ){ |
| 193674 | jsonRenderNode(pNode, &jx, 0); |
| 193675 | }else{ |
| 193676 | jsonAppendRaw(&jx, "null", 4); |
| 193677 | } |
| 193678 | } |
| 193679 | if( i==argc ){ |
| 193680 | jsonAppendChar(&jx, ']'); |
| 193681 | jsonResult(&jx); |
| 193682 | sqlite3_result_subtype(ctx, JSON_SUBTYPE); |
| 193683 | } |
| 193684 | jsonReset(&jx); |
| 193685 | } |
| 193686 | } |
| 193687 | |
| 193688 | /* This is the RFC 7396 MergePatch algorithm. |
| 193689 | */ |
| 193690 | static JsonNode *jsonMergePatch( |
| @@ -193746,11 +193776,11 @@ | |
| 193776 | ){ |
| 193777 | JsonParse x; /* The JSON that is being patched */ |
| 193778 | JsonParse y; /* The patch */ |
| 193779 | JsonNode *pResult; /* The result of the merge */ |
| 193780 | |
| 193781 | UNUSED_PARAMETER(argc); |
| 193782 | if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return; |
| 193783 | if( jsonParse(&y, ctx, (const char*)sqlite3_value_text(argv[1])) ){ |
| 193784 | jsonParseReset(&x); |
| 193785 | return; |
| 193786 | } |
| @@ -193867,11 +193897,11 @@ | |
| 193897 | zPath = (const char*)sqlite3_value_text(argv[i]); |
| 193898 | pNode = jsonLookup(&x, zPath, 0, ctx); |
| 193899 | if( x.nErr ) goto replace_err; |
| 193900 | if( pNode ){ |
| 193901 | assert( pNode->eU==0 || pNode->eU==1 || pNode->eU==4 ); |
| 193902 | testcase( pNode->eU!=0 && pNode->eU!=1 ); |
| 193903 | pNode->jnFlags |= (u8)JNODE_REPLACE; |
| 193904 | VVA( pNode->eU = 4 ); |
| 193905 | pNode->u.iReplace = i + 1; |
| 193906 | } |
| 193907 | } |
| @@ -193882,10 +193912,11 @@ | |
| 193912 | jsonReturnJson(x.aNode, ctx, argv); |
| 193913 | } |
| 193914 | replace_err: |
| 193915 | jsonParseReset(&x); |
| 193916 | } |
| 193917 | |
| 193918 | |
| 193919 | /* |
| 193920 | ** json_set(JSON, PATH, VALUE, ...) |
| 193921 | ** |
| 193922 | ** Set the value at PATH to VALUE. Create the PATH if it does not already |
| @@ -193905,11 +193936,11 @@ | |
| 193936 | JsonParse x; /* The parse */ |
| 193937 | JsonNode *pNode; |
| 193938 | const char *zPath; |
| 193939 | u32 i; |
| 193940 | int bApnd; |
| 193941 | int bIsSet = sqlite3_user_data(ctx)!=0; |
| 193942 | |
| 193943 | if( argc<1 ) return; |
| 193944 | if( (argc&1)==0 ) { |
| 193945 | jsonWrongNumArgs(ctx, bIsSet ? "set" : "insert"); |
| 193946 | return; |
| @@ -193924,11 +193955,11 @@ | |
| 193955 | sqlite3_result_error_nomem(ctx); |
| 193956 | goto jsonSetDone; |
| 193957 | }else if( x.nErr ){ |
| 193958 | goto jsonSetDone; |
| 193959 | }else if( pNode && (bApnd || bIsSet) ){ |
| 193960 | testcase( pNode->eU!=0 && pNode->eU!=1 && pNode->eU!=4 ); |
| 193961 | assert( pNode->eU!=3 || pNode->eU!=5 ); |
| 193962 | VVA( pNode->eU = 4 ); |
| 193963 | pNode->jnFlags |= (u8)JNODE_REPLACE; |
| 193964 | pNode->u.iReplace = i + 1; |
| 193965 | } |
| @@ -193945,12 +193976,12 @@ | |
| 193976 | |
| 193977 | /* |
| 193978 | ** json_type(JSON) |
| 193979 | ** json_type(JSON, PATH) |
| 193980 | ** |
| 193981 | ** Return the top-level "type" of a JSON string. json_type() raises an |
| 193982 | ** error if either the JSON or PATH inputs are not well-formed. |
| 193983 | */ |
| 193984 | static void jsonTypeFunc( |
| 193985 | sqlite3_context *ctx, |
| 193986 | int argc, |
| 193987 | sqlite3_value **argv |
| @@ -193982,11 +194013,11 @@ | |
| 194013 | sqlite3_context *ctx, |
| 194014 | int argc, |
| 194015 | sqlite3_value **argv |
| 194016 | ){ |
| 194017 | JsonParse *p; /* The parse */ |
| 194018 | UNUSED_PARAMETER(argc); |
| 194019 | p = jsonParseCached(ctx, argv, 0); |
| 194020 | sqlite3_result_int(ctx, p!=0); |
| 194021 | } |
| 194022 | |
| 194023 | |
| @@ -194002,11 +194033,11 @@ | |
| 194033 | sqlite3_context *ctx, |
| 194034 | int argc, |
| 194035 | sqlite3_value **argv |
| 194036 | ){ |
| 194037 | JsonString *pStr; |
| 194038 | UNUSED_PARAMETER(argc); |
| 194039 | pStr = (JsonString*)sqlite3_aggregate_context(ctx, sizeof(*pStr)); |
| 194040 | if( pStr ){ |
| 194041 | if( pStr->zBuf==0 ){ |
| 194042 | jsonInit(pStr, ctx); |
| 194043 | jsonAppendChar(pStr, '['); |
| @@ -194062,12 +194093,12 @@ | |
| 194093 | int inStr = 0; |
| 194094 | int nNest = 0; |
| 194095 | char *z; |
| 194096 | char c; |
| 194097 | JsonString *pStr; |
| 194098 | UNUSED_PARAMETER(argc); |
| 194099 | UNUSED_PARAMETER(argv); |
| 194100 | pStr = (JsonString*)sqlite3_aggregate_context(ctx, 0); |
| 194101 | #ifdef NEVER |
| 194102 | /* pStr is always non-NULL since jsonArrayStep() or jsonObjectStep() will |
| 194103 | ** always have been called to initalize it */ |
| 194104 | if( NEVER(!pStr) ) return; |
| @@ -194107,11 +194138,11 @@ | |
| 194138 | sqlite3_value **argv |
| 194139 | ){ |
| 194140 | JsonString *pStr; |
| 194141 | const char *z; |
| 194142 | u32 n; |
| 194143 | UNUSED_PARAMETER(argc); |
| 194144 | pStr = (JsonString*)sqlite3_aggregate_context(ctx, sizeof(*pStr)); |
| 194145 | if( pStr ){ |
| 194146 | if( pStr->zBuf==0 ){ |
| 194147 | jsonInit(pStr, ctx); |
| 194148 | jsonAppendChar(pStr, '{'); |
| @@ -194198,14 +194229,14 @@ | |
| 194229 | ** the last two columns in the table. Should this ever changes, be |
| 194230 | ** sure to update the xBestIndex method. */ |
| 194231 | #define JEACH_JSON 8 |
| 194232 | #define JEACH_ROOT 9 |
| 194233 | |
| 194234 | UNUSED_PARAMETER(pzErr); |
| 194235 | UNUSED_PARAMETER(argv); |
| 194236 | UNUSED_PARAMETER(argc); |
| 194237 | UNUSED_PARAMETER(pAux); |
| 194238 | rc = sqlite3_declare_vtab(db, |
| 194239 | "CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path," |
| 194240 | "json HIDDEN,root HIDDEN)"); |
| 194241 | if( rc==SQLITE_OK ){ |
| 194242 | pNew = *ppVtab = sqlite3_malloc( sizeof(*pNew) ); |
| @@ -194224,11 +194255,11 @@ | |
| 194255 | |
| 194256 | /* constructor for a JsonEachCursor object for json_each(). */ |
| 194257 | static int jsonEachOpenEach(sqlite3_vtab *p, sqlite3_vtab_cursor **ppCursor){ |
| 194258 | JsonEachCursor *pCur; |
| 194259 | |
| 194260 | UNUSED_PARAMETER(p); |
| 194261 | pCur = sqlite3_malloc( sizeof(*pCur) ); |
| 194262 | if( pCur==0 ) return SQLITE_NOMEM; |
| 194263 | memset(pCur, 0, sizeof(*pCur)); |
| 194264 | *ppCursor = &pCur->base; |
| 194265 | return SQLITE_OK; |
| @@ -194284,11 +194315,11 @@ | |
| 194315 | u32 iUp = p->sParse.aUp[p->i]; |
| 194316 | JsonNode *pUp = &p->sParse.aNode[iUp]; |
| 194317 | p->eType = pUp->eType; |
| 194318 | if( pUp->eType==JSON_ARRAY ){ |
| 194319 | assert( pUp->eU==0 || pUp->eU==3 ); |
| 194320 | testcase( pUp->eU==3 ); |
| 194321 | VVA( pUp->eU = 3 ); |
| 194322 | if( iUp==p->i-1 ){ |
| 194323 | pUp->u.iKey = 0; |
| 194324 | }else{ |
| 194325 | pUp->u.iKey++; |
| @@ -194471,11 +194502,11 @@ | |
| 194502 | const struct sqlite3_index_constraint *pConstraint; |
| 194503 | |
| 194504 | /* This implementation assumes that JSON and ROOT are the last two |
| 194505 | ** columns in the table */ |
| 194506 | assert( JEACH_ROOT == JEACH_JSON+1 ); |
| 194507 | UNUSED_PARAMETER(tab); |
| 194508 | aIdx[0] = aIdx[1] = -1; |
| 194509 | pConstraint = pIdxInfo->aConstraint; |
| 194510 | for(i=0; i<pIdxInfo->nConstraint; i++, pConstraint++){ |
| 194511 | int iCol; |
| 194512 | int iMask; |
| @@ -194527,12 +194558,12 @@ | |
| 194558 | JsonEachCursor *p = (JsonEachCursor*)cur; |
| 194559 | const char *z; |
| 194560 | const char *zRoot = 0; |
| 194561 | sqlite3_int64 n; |
| 194562 | |
| 194563 | UNUSED_PARAMETER(idxStr); |
| 194564 | UNUSED_PARAMETER(argc); |
| 194565 | jsonEachCursorReset(p); |
| 194566 | if( idxNum==0 ) return SQLITE_OK; |
| 194567 | z = (const char*)sqlite3_value_text(argv[0]); |
| 194568 | if( z==0 ) return SQLITE_OK; |
| 194569 | n = sqlite3_value_bytes(argv[0]); |
| @@ -194653,112 +194684,72 @@ | |
| 194684 | 0, /* xRelease */ |
| 194685 | 0, /* xRollbackTo */ |
| 194686 | 0 /* xShadowName */ |
| 194687 | }; |
| 194688 | #endif /* SQLITE_OMIT_VIRTUALTABLE */ |
| 194689 | #endif /* !defined(SQLITE_OMIT_JSON) */ |
| 194690 | |
| 194691 | /* |
| 194692 | ** Register JSON functions. |
| 194693 | */ |
| 194694 | SQLITE_PRIVATE void sqlite3RegisterJsonFunctions(void){ |
| 194695 | #ifndef SQLITE_OMIT_JSON |
| 194696 | static FuncDef aJsonFunc[] = { |
| 194697 | JFUNCTION(json, 1, 0, jsonRemoveFunc), |
| 194698 | JFUNCTION(json_array, -1, 0, jsonArrayFunc), |
| 194699 | JFUNCTION(json_array_length, 1, 0, jsonArrayLengthFunc), |
| 194700 | JFUNCTION(json_array_length, 2, 0, jsonArrayLengthFunc), |
| 194701 | JFUNCTION(json_extract, -1, 0, jsonExtractFunc), |
| 194702 | JFUNCTION(->, 2, JSON_JSON, jsonExtractFunc), |
| 194703 | JFUNCTION(->>, 2, JSON_SQL, jsonExtractFunc), |
| 194704 | JFUNCTION(json_insert, -1, 0, jsonSetFunc), |
| 194705 | JFUNCTION(json_object, -1, 0, jsonObjectFunc), |
| 194706 | JFUNCTION(json_patch, 2, 0, jsonPatchFunc), |
| 194707 | JFUNCTION(json_quote, 1, 0, jsonQuoteFunc), |
| 194708 | JFUNCTION(json_remove, -1, 0, jsonRemoveFunc), |
| 194709 | JFUNCTION(json_replace, -1, 0, jsonReplaceFunc), |
| 194710 | JFUNCTION(json_set, -1, JSON_ISSET, jsonSetFunc), |
| 194711 | JFUNCTION(json_type, 1, 0, jsonTypeFunc), |
| 194712 | JFUNCTION(json_type, 2, 0, jsonTypeFunc), |
| 194713 | JFUNCTION(json_valid, 1, 0, jsonValidFunc), |
| 194714 | #if SQLITE_DEBUG |
| 194715 | JFUNCTION(json_parse, 1, 0, jsonParseFunc), |
| 194716 | JFUNCTION(json_test1, 1, 0, jsonTest1Func), |
| 194717 | #endif |
| 194718 | WAGGREGATE(json_group_array, 1, 0, 0, |
| 194719 | jsonArrayStep, jsonArrayFinal, jsonArrayValue, jsonGroupInverse, |
| 194720 | SQLITE_SUBTYPE|SQLITE_UTF8|SQLITE_DETERMINISTIC|SQLITE_INNOCUOUS), |
| 194721 | WAGGREGATE(json_group_object, 2, 0, 0, |
| 194722 | jsonObjectStep, jsonObjectFinal, jsonObjectValue, jsonGroupInverse, |
| 194723 | SQLITE_SUBTYPE|SQLITE_UTF8|SQLITE_DETERMINISTIC|SQLITE_INNOCUOUS) |
| 194724 | }; |
| 194725 | sqlite3InsertBuiltinFuncs(aJsonFunc, ArraySize(aJsonFunc)); |
| 194726 | #endif |
| 194727 | } |
| 194728 | |
| 194729 | #if !defined(SQLITE_OMIT_VIRTUALTABLE) && !defined(SQLITE_OMIT_JSON) |
| 194730 | /* |
| 194731 | ** Register the JSON table-valued functions |
| 194732 | */ |
| 194733 | SQLITE_PRIVATE int sqlite3JsonTableFunctions(sqlite3 *db){ |
| 194734 | int rc = SQLITE_OK; |
| 194735 | static const struct { |
| 194736 | const char *zName; |
| 194737 | sqlite3_module *pModule; |
| 194738 | } aMod[] = { |
| 194739 | { "json_each", &jsonEachModule }, |
| 194740 | { "json_tree", &jsonTreeModule }, |
| 194741 | }; |
| 194742 | int i; |
| 194743 | for(i=0; i<sizeof(aMod)/sizeof(aMod[0]) && rc==SQLITE_OK; i++){ |
| 194744 | rc = sqlite3_create_module(db, aMod[i].zName, aMod[i].pModule, 0); |
| 194745 | } |
| 194746 | return rc; |
| 194747 | } |
| 194748 | #endif /* !defined(SQLITE_OMIT_VIRTUALTABLE) && !defined(SQLITE_OMIT_JSON) */ |
| 194749 | |
| 194750 | /************** End of json.c ************************************************/ |
| 194751 | /************** Begin file rtree.c *******************************************/ |
| 194752 | /* |
| 194753 | ** 2001 September 15 |
| 194754 | ** |
| 194755 | ** The author disclaims copyright to this source code. In place of |
| @@ -199188,15 +199179,11 @@ | |
| 199179 | # define GEODEBUG(X) if(geo_debug)printf X |
| 199180 | #else |
| 199181 | # define GEODEBUG(X) |
| 199182 | #endif |
| 199183 | |
| 199184 | /* Character class routines */ |
| 199185 | #ifdef sqlite3Isdigit |
| 199186 | /* Use the SQLite core versions if this routine is part of the |
| 199187 | ** SQLite amalgamation */ |
| 199188 | # define safe_isdigit(x) sqlite3Isdigit(x) |
| 199189 | # define safe_isalnum(x) sqlite3Isalnum(x) |
| @@ -199207,10 +199194,11 @@ | |
| 199194 | # define safe_isdigit(x) isdigit((unsigned char)(x)) |
| 199195 | # define safe_isalnum(x) isalnum((unsigned char)(x)) |
| 199196 | # define safe_isxdigit(x) isxdigit((unsigned char)(x)) |
| 199197 | #endif |
| 199198 | |
| 199199 | #ifndef JSON_NULL /* The following stuff repeats things found in json1 */ |
| 199200 | /* |
| 199201 | ** Growing our own isspace() routine this way is twice as fast as |
| 199202 | ** the library isspace() function. |
| 199203 | */ |
| 199204 | static const char geopolyIsSpace[] = { |
| @@ -199229,11 +199217,11 @@ | |
| 199217 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 199218 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 199219 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 199220 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 199221 | }; |
| 199222 | #define fast_isspace(x) (geopolyIsSpace[(unsigned char)x]) |
| 199223 | #endif /* JSON NULL - back to original code */ |
| 199224 | |
| 199225 | /* Compiler and version */ |
| 199226 | #ifndef GCC_VERSION |
| 199227 | #if defined(__GNUC__) && !defined(SQLITE_DISABLE_INTRINSIC) |
| @@ -199318,11 +199306,11 @@ | |
| 199306 | a[2] = t; |
| 199307 | } |
| 199308 | |
| 199309 | /* Skip whitespace. Return the next non-whitespace character. */ |
| 199310 | static char geopolySkipSpace(GeoParse *p){ |
| 199311 | while( fast_isspace(p->z[0]) ) p->z++; |
| 199312 | return p->z[0]; |
| 199313 | } |
| 199314 | |
| 199315 | /* Parse out a number. Write the value into *pVal if pVal!=0. |
| 199316 | ** return non-zero on success and zero if the next token is not a number. |
| @@ -233346,11 +233334,11 @@ | |
| 233334 | int nArg, /* Number of args */ |
| 233335 | sqlite3_value **apUnused /* Function arguments */ |
| 233336 | ){ |
| 233337 | assert( nArg==0 ); |
| 233338 | UNUSED_PARAM2(nArg, apUnused); |
| 233339 | sqlite3_result_text(pCtx, "fts5: 2022-01-12 00:28:12 adebb9d7478d092f16fb0ef7d5246ce152b166479d6f949110b5878b89ea2cec", -1, SQLITE_TRANSIENT); |
| 233340 | } |
| 233341 | |
| 233342 | /* |
| 233343 | ** Return true if zName is the extension on one of the shadow tables used |
| 233344 | ** by this module. |
| 233345 |
+1
-1
| --- extsrc/sqlite3.h | ||
| +++ extsrc/sqlite3.h | ||
| @@ -146,11 +146,11 @@ | ||
| 146 | 146 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 147 | 147 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 148 | 148 | */ |
| 149 | 149 | #define SQLITE_VERSION "3.38.0" |
| 150 | 150 | #define SQLITE_VERSION_NUMBER 3038000 |
| 151 | -#define SQLITE_SOURCE_ID "2022-01-06 17:13:56 2d6a16caa7d28ad5c766036b2eb6c2020683fcc9389b3c7df2013739929dd36f" | |
| 151 | +#define SQLITE_SOURCE_ID "2022-01-12 00:28:12 adebb9d7478d092f16fb0ef7d5246ce152b166479d6f949110b5878b89ea2cec" | |
| 152 | 152 | |
| 153 | 153 | /* |
| 154 | 154 | ** CAPI3REF: Run-Time Library Version Numbers |
| 155 | 155 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 156 | 156 | ** |
| 157 | 157 |
| --- extsrc/sqlite3.h | |
| +++ extsrc/sqlite3.h | |
| @@ -146,11 +146,11 @@ | |
| 146 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 147 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 148 | */ |
| 149 | #define SQLITE_VERSION "3.38.0" |
| 150 | #define SQLITE_VERSION_NUMBER 3038000 |
| 151 | #define SQLITE_SOURCE_ID "2022-01-06 17:13:56 2d6a16caa7d28ad5c766036b2eb6c2020683fcc9389b3c7df2013739929dd36f" |
| 152 | |
| 153 | /* |
| 154 | ** CAPI3REF: Run-Time Library Version Numbers |
| 155 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 156 | ** |
| 157 |
| --- extsrc/sqlite3.h | |
| +++ extsrc/sqlite3.h | |
| @@ -146,11 +146,11 @@ | |
| 146 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 147 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 148 | */ |
| 149 | #define SQLITE_VERSION "3.38.0" |
| 150 | #define SQLITE_VERSION_NUMBER 3038000 |
| 151 | #define SQLITE_SOURCE_ID "2022-01-12 00:28:12 adebb9d7478d092f16fb0ef7d5246ce152b166479d6f949110b5878b89ea2cec" |
| 152 | |
| 153 | /* |
| 154 | ** CAPI3REF: Run-Time Library Version Numbers |
| 155 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 156 | ** |
| 157 |