| | @@ -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.37.0" |
| 456 | 456 | #define SQLITE_VERSION_NUMBER 3037000 |
| 457 | | -#define SQLITE_SOURCE_ID "2021-08-06 20:17:39 087b8b41c6ed76b55c11315e7e95679d67590be20ae21108b593d00bb7d1c57a" |
| 457 | +#define SQLITE_SOURCE_ID "2021-09-06 11:44:19 b3cfe23bec0b95ca673802526704200e2396df715fdded72aa71addd7f47e0e1" |
| 458 | 458 | |
| 459 | 459 | /* |
| 460 | 460 | ** CAPI3REF: Run-Time Library Version Numbers |
| 461 | 461 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 462 | 462 | ** |
| | @@ -865,10 +865,11 @@ |
| 865 | 865 | #define SQLITE_CONSTRAINT_TRIGGER (SQLITE_CONSTRAINT | (7<<8)) |
| 866 | 866 | #define SQLITE_CONSTRAINT_UNIQUE (SQLITE_CONSTRAINT | (8<<8)) |
| 867 | 867 | #define SQLITE_CONSTRAINT_VTAB (SQLITE_CONSTRAINT | (9<<8)) |
| 868 | 868 | #define SQLITE_CONSTRAINT_ROWID (SQLITE_CONSTRAINT |(10<<8)) |
| 869 | 869 | #define SQLITE_CONSTRAINT_PINNED (SQLITE_CONSTRAINT |(11<<8)) |
| 870 | +#define SQLITE_CONSTRAINT_DATATYPE (SQLITE_CONSTRAINT |(12<<8)) |
| 870 | 871 | #define SQLITE_NOTICE_RECOVER_WAL (SQLITE_NOTICE | (1<<8)) |
| 871 | 872 | #define SQLITE_NOTICE_RECOVER_ROLLBACK (SQLITE_NOTICE | (2<<8)) |
| 872 | 873 | #define SQLITE_WARNING_AUTOINDEX (SQLITE_WARNING | (1<<8)) |
| 873 | 874 | #define SQLITE_AUTH_USER (SQLITE_AUTH | (1<<8)) |
| 874 | 875 | #define SQLITE_OK_LOAD_PERMANENTLY (SQLITE_OK | (1<<8)) |
| | @@ -13446,12 +13447,12 @@ |
| 13446 | 13447 | #define TK_EXISTS 20 |
| 13447 | 13448 | #define TK_TEMP 21 |
| 13448 | 13449 | #define TK_LP 22 |
| 13449 | 13450 | #define TK_RP 23 |
| 13450 | 13451 | #define TK_AS 24 |
| 13451 | | -#define TK_WITHOUT 25 |
| 13452 | | -#define TK_COMMA 26 |
| 13452 | +#define TK_COMMA 25 |
| 13453 | +#define TK_WITHOUT 26 |
| 13453 | 13454 | #define TK_ABORT 27 |
| 13454 | 13455 | #define TK_ACTION 28 |
| 13455 | 13456 | #define TK_AFTER 29 |
| 13456 | 13457 | #define TK_ANALYZE 30 |
| 13457 | 13458 | #define TK_ASC 31 |
| | @@ -15109,91 +15110,91 @@ |
| 15109 | 15110 | #define OP_Jump 16 /* jump */ |
| 15110 | 15111 | #define OP_Once 17 /* jump */ |
| 15111 | 15112 | #define OP_If 18 /* jump */ |
| 15112 | 15113 | #define OP_Not 19 /* same as TK_NOT, synopsis: r[P2]= !r[P1] */ |
| 15113 | 15114 | #define OP_IfNot 20 /* jump */ |
| 15114 | | -#define OP_IfNullRow 21 /* jump, synopsis: if P1.nullRow then r[P3]=NULL, goto P2 */ |
| 15115 | | -#define OP_SeekLT 22 /* jump, synopsis: key=r[P3@P4] */ |
| 15116 | | -#define OP_SeekLE 23 /* jump, synopsis: key=r[P3@P4] */ |
| 15117 | | -#define OP_SeekGE 24 /* jump, synopsis: key=r[P3@P4] */ |
| 15118 | | -#define OP_SeekGT 25 /* jump, synopsis: key=r[P3@P4] */ |
| 15119 | | -#define OP_IfNotOpen 26 /* jump, synopsis: if( !csr[P1] ) goto P2 */ |
| 15120 | | -#define OP_IfNoHope 27 /* jump, synopsis: key=r[P3@P4] */ |
| 15121 | | -#define OP_NoConflict 28 /* jump, synopsis: key=r[P3@P4] */ |
| 15122 | | -#define OP_NotFound 29 /* jump, synopsis: key=r[P3@P4] */ |
| 15123 | | -#define OP_Found 30 /* jump, synopsis: key=r[P3@P4] */ |
| 15124 | | -#define OP_SeekRowid 31 /* jump, synopsis: intkey=r[P3] */ |
| 15125 | | -#define OP_NotExists 32 /* jump, synopsis: intkey=r[P3] */ |
| 15126 | | -#define OP_Last 33 /* jump */ |
| 15127 | | -#define OP_IfSmaller 34 /* jump */ |
| 15128 | | -#define OP_SorterSort 35 /* jump */ |
| 15129 | | -#define OP_Sort 36 /* jump */ |
| 15130 | | -#define OP_Rewind 37 /* jump */ |
| 15131 | | -#define OP_IdxLE 38 /* jump, synopsis: key=r[P3@P4] */ |
| 15132 | | -#define OP_IdxGT 39 /* jump, synopsis: key=r[P3@P4] */ |
| 15133 | | -#define OP_IdxLT 40 /* jump, synopsis: key=r[P3@P4] */ |
| 15134 | | -#define OP_IdxGE 41 /* jump, synopsis: key=r[P3@P4] */ |
| 15135 | | -#define OP_RowSetRead 42 /* jump, synopsis: r[P3]=rowset(P1) */ |
| 15115 | +#define OP_IsNullOrType 21 /* jump, synopsis: if typeof(r[P1]) IN (P3,5) goto P2 */ |
| 15116 | +#define OP_IfNullRow 22 /* jump, synopsis: if P1.nullRow then r[P3]=NULL, goto P2 */ |
| 15117 | +#define OP_SeekLT 23 /* jump, synopsis: key=r[P3@P4] */ |
| 15118 | +#define OP_SeekLE 24 /* jump, synopsis: key=r[P3@P4] */ |
| 15119 | +#define OP_SeekGE 25 /* jump, synopsis: key=r[P3@P4] */ |
| 15120 | +#define OP_SeekGT 26 /* jump, synopsis: key=r[P3@P4] */ |
| 15121 | +#define OP_IfNotOpen 27 /* jump, synopsis: if( !csr[P1] ) goto P2 */ |
| 15122 | +#define OP_IfNoHope 28 /* jump, synopsis: key=r[P3@P4] */ |
| 15123 | +#define OP_NoConflict 29 /* jump, synopsis: key=r[P3@P4] */ |
| 15124 | +#define OP_NotFound 30 /* jump, synopsis: key=r[P3@P4] */ |
| 15125 | +#define OP_Found 31 /* jump, synopsis: key=r[P3@P4] */ |
| 15126 | +#define OP_SeekRowid 32 /* jump, synopsis: intkey=r[P3] */ |
| 15127 | +#define OP_NotExists 33 /* jump, synopsis: intkey=r[P3] */ |
| 15128 | +#define OP_Last 34 /* jump */ |
| 15129 | +#define OP_IfSmaller 35 /* jump */ |
| 15130 | +#define OP_SorterSort 36 /* jump */ |
| 15131 | +#define OP_Sort 37 /* jump */ |
| 15132 | +#define OP_Rewind 38 /* jump */ |
| 15133 | +#define OP_IdxLE 39 /* jump, synopsis: key=r[P3@P4] */ |
| 15134 | +#define OP_IdxGT 40 /* jump, synopsis: key=r[P3@P4] */ |
| 15135 | +#define OP_IdxLT 41 /* jump, synopsis: key=r[P3@P4] */ |
| 15136 | +#define OP_IdxGE 42 /* jump, synopsis: key=r[P3@P4] */ |
| 15136 | 15137 | #define OP_Or 43 /* same as TK_OR, synopsis: r[P3]=(r[P1] || r[P2]) */ |
| 15137 | 15138 | #define OP_And 44 /* same as TK_AND, synopsis: r[P3]=(r[P1] && r[P2]) */ |
| 15138 | | -#define OP_RowSetTest 45 /* jump, synopsis: if r[P3] in rowset(P1) goto P2 */ |
| 15139 | | -#define OP_Program 46 /* jump */ |
| 15140 | | -#define OP_FkIfZero 47 /* jump, synopsis: if fkctr[P1]==0 goto P2 */ |
| 15141 | | -#define OP_IfPos 48 /* jump, synopsis: if r[P1]>0 then r[P1]-=P3, goto P2 */ |
| 15142 | | -#define OP_IfNotZero 49 /* jump, synopsis: if r[P1]!=0 then r[P1]--, goto P2 */ |
| 15139 | +#define OP_RowSetRead 45 /* jump, synopsis: r[P3]=rowset(P1) */ |
| 15140 | +#define OP_RowSetTest 46 /* jump, synopsis: if r[P3] in rowset(P1) goto P2 */ |
| 15141 | +#define OP_Program 47 /* jump */ |
| 15142 | +#define OP_FkIfZero 48 /* jump, synopsis: if fkctr[P1]==0 goto P2 */ |
| 15143 | +#define OP_IfPos 49 /* jump, synopsis: if r[P1]>0 then r[P1]-=P3, goto P2 */ |
| 15143 | 15144 | #define OP_IsNull 50 /* jump, same as TK_ISNULL, synopsis: if r[P1]==NULL goto P2 */ |
| 15144 | 15145 | #define OP_NotNull 51 /* jump, same as TK_NOTNULL, synopsis: if r[P1]!=NULL goto P2 */ |
| 15145 | 15146 | #define OP_Ne 52 /* jump, same as TK_NE, synopsis: IF r[P3]!=r[P1] */ |
| 15146 | 15147 | #define OP_Eq 53 /* jump, same as TK_EQ, synopsis: IF r[P3]==r[P1] */ |
| 15147 | 15148 | #define OP_Gt 54 /* jump, same as TK_GT, synopsis: IF r[P3]>r[P1] */ |
| 15148 | 15149 | #define OP_Le 55 /* jump, same as TK_LE, synopsis: IF r[P3]<=r[P1] */ |
| 15149 | 15150 | #define OP_Lt 56 /* jump, same as TK_LT, synopsis: IF r[P3]<r[P1] */ |
| 15150 | 15151 | #define OP_Ge 57 /* jump, same as TK_GE, synopsis: IF r[P3]>=r[P1] */ |
| 15151 | 15152 | #define OP_ElseEq 58 /* jump, same as TK_ESCAPE */ |
| 15152 | | -#define OP_DecrJumpZero 59 /* jump, synopsis: if (--r[P1])==0 goto P2 */ |
| 15153 | | -#define OP_IncrVacuum 60 /* jump */ |
| 15154 | | -#define OP_VNext 61 /* jump */ |
| 15155 | | -#define OP_Init 62 /* jump, synopsis: Start at P2 */ |
| 15156 | | -#define OP_PureFunc 63 /* synopsis: r[P3]=func(r[P2@NP]) */ |
| 15157 | | -#define OP_Function 64 /* synopsis: r[P3]=func(r[P2@NP]) */ |
| 15158 | | -#define OP_Return 65 |
| 15159 | | -#define OP_EndCoroutine 66 |
| 15160 | | -#define OP_HaltIfNull 67 /* synopsis: if r[P3]=null halt */ |
| 15161 | | -#define OP_Halt 68 |
| 15162 | | -#define OP_Integer 69 /* synopsis: r[P2]=P1 */ |
| 15163 | | -#define OP_Int64 70 /* synopsis: r[P2]=P4 */ |
| 15164 | | -#define OP_String 71 /* synopsis: r[P2]='P4' (len=P1) */ |
| 15165 | | -#define OP_Null 72 /* synopsis: r[P2..P3]=NULL */ |
| 15166 | | -#define OP_SoftNull 73 /* synopsis: r[P1]=NULL */ |
| 15167 | | -#define OP_Blob 74 /* synopsis: r[P2]=P4 (len=P1) */ |
| 15168 | | -#define OP_Variable 75 /* synopsis: r[P2]=parameter(P1,P4) */ |
| 15169 | | -#define OP_Move 76 /* synopsis: r[P2@P3]=r[P1@P3] */ |
| 15170 | | -#define OP_Copy 77 /* synopsis: r[P2@P3+1]=r[P1@P3+1] */ |
| 15171 | | -#define OP_SCopy 78 /* synopsis: r[P2]=r[P1] */ |
| 15172 | | -#define OP_IntCopy 79 /* synopsis: r[P2]=r[P1] */ |
| 15173 | | -#define OP_ChngCntRow 80 /* synopsis: output=r[P1] */ |
| 15174 | | -#define OP_ResultRow 81 /* synopsis: output=r[P1@P2] */ |
| 15175 | | -#define OP_CollSeq 82 |
| 15176 | | -#define OP_AddImm 83 /* synopsis: r[P1]=r[P1]+P2 */ |
| 15177 | | -#define OP_RealAffinity 84 |
| 15178 | | -#define OP_Cast 85 /* synopsis: affinity(r[P1]) */ |
| 15179 | | -#define OP_Permutation 86 |
| 15180 | | -#define OP_Compare 87 /* synopsis: r[P1@P3] <-> r[P2@P3] */ |
| 15181 | | -#define OP_IsTrue 88 /* synopsis: r[P2] = coalesce(r[P1]==TRUE,P3) ^ P4 */ |
| 15182 | | -#define OP_ZeroOrNull 89 /* synopsis: r[P2] = 0 OR NULL */ |
| 15183 | | -#define OP_Offset 90 /* synopsis: r[P3] = sqlite_offset(P1) */ |
| 15184 | | -#define OP_Column 91 /* synopsis: r[P3]=PX */ |
| 15185 | | -#define OP_Affinity 92 /* synopsis: affinity(r[P1@P2]) */ |
| 15186 | | -#define OP_MakeRecord 93 /* synopsis: r[P3]=mkrec(r[P1@P2]) */ |
| 15187 | | -#define OP_Count 94 /* synopsis: r[P2]=count() */ |
| 15188 | | -#define OP_ReadCookie 95 |
| 15189 | | -#define OP_SetCookie 96 |
| 15190 | | -#define OP_ReopenIdx 97 /* synopsis: root=P2 iDb=P3 */ |
| 15191 | | -#define OP_OpenRead 98 /* synopsis: root=P2 iDb=P3 */ |
| 15192 | | -#define OP_OpenWrite 99 /* synopsis: root=P2 iDb=P3 */ |
| 15193 | | -#define OP_OpenDup 100 |
| 15194 | | -#define OP_OpenAutoindex 101 /* synopsis: nColumn=P2 */ |
| 15153 | +#define OP_IfNotZero 59 /* jump, synopsis: if r[P1]!=0 then r[P1]--, goto P2 */ |
| 15154 | +#define OP_DecrJumpZero 60 /* jump, synopsis: if (--r[P1])==0 goto P2 */ |
| 15155 | +#define OP_IncrVacuum 61 /* jump */ |
| 15156 | +#define OP_VNext 62 /* jump */ |
| 15157 | +#define OP_Init 63 /* jump, synopsis: Start at P2 */ |
| 15158 | +#define OP_PureFunc 64 /* synopsis: r[P3]=func(r[P2@NP]) */ |
| 15159 | +#define OP_Function 65 /* synopsis: r[P3]=func(r[P2@NP]) */ |
| 15160 | +#define OP_Return 66 |
| 15161 | +#define OP_EndCoroutine 67 |
| 15162 | +#define OP_HaltIfNull 68 /* synopsis: if r[P3]=null halt */ |
| 15163 | +#define OP_Halt 69 |
| 15164 | +#define OP_Integer 70 /* synopsis: r[P2]=P1 */ |
| 15165 | +#define OP_Int64 71 /* synopsis: r[P2]=P4 */ |
| 15166 | +#define OP_String 72 /* synopsis: r[P2]='P4' (len=P1) */ |
| 15167 | +#define OP_Null 73 /* synopsis: r[P2..P3]=NULL */ |
| 15168 | +#define OP_SoftNull 74 /* synopsis: r[P1]=NULL */ |
| 15169 | +#define OP_Blob 75 /* synopsis: r[P2]=P4 (len=P1) */ |
| 15170 | +#define OP_Variable 76 /* synopsis: r[P2]=parameter(P1,P4) */ |
| 15171 | +#define OP_Move 77 /* synopsis: r[P2@P3]=r[P1@P3] */ |
| 15172 | +#define OP_Copy 78 /* synopsis: r[P2@P3+1]=r[P1@P3+1] */ |
| 15173 | +#define OP_SCopy 79 /* synopsis: r[P2]=r[P1] */ |
| 15174 | +#define OP_IntCopy 80 /* synopsis: r[P2]=r[P1] */ |
| 15175 | +#define OP_ChngCntRow 81 /* synopsis: output=r[P1] */ |
| 15176 | +#define OP_ResultRow 82 /* synopsis: output=r[P1@P2] */ |
| 15177 | +#define OP_CollSeq 83 |
| 15178 | +#define OP_AddImm 84 /* synopsis: r[P1]=r[P1]+P2 */ |
| 15179 | +#define OP_RealAffinity 85 |
| 15180 | +#define OP_Cast 86 /* synopsis: affinity(r[P1]) */ |
| 15181 | +#define OP_Permutation 87 |
| 15182 | +#define OP_Compare 88 /* synopsis: r[P1@P3] <-> r[P2@P3] */ |
| 15183 | +#define OP_IsTrue 89 /* synopsis: r[P2] = coalesce(r[P1]==TRUE,P3) ^ P4 */ |
| 15184 | +#define OP_ZeroOrNull 90 /* synopsis: r[P2] = 0 OR NULL */ |
| 15185 | +#define OP_Offset 91 /* synopsis: r[P3] = sqlite_offset(P1) */ |
| 15186 | +#define OP_Column 92 /* synopsis: r[P3]=PX */ |
| 15187 | +#define OP_TypeCheck 93 /* synopsis: typecheck(r[P1@P2]) */ |
| 15188 | +#define OP_Affinity 94 /* synopsis: affinity(r[P1@P2]) */ |
| 15189 | +#define OP_MakeRecord 95 /* synopsis: r[P3]=mkrec(r[P1@P2]) */ |
| 15190 | +#define OP_Count 96 /* synopsis: r[P2]=count() */ |
| 15191 | +#define OP_ReadCookie 97 |
| 15192 | +#define OP_SetCookie 98 |
| 15193 | +#define OP_ReopenIdx 99 /* synopsis: root=P2 iDb=P3 */ |
| 15194 | +#define OP_OpenRead 100 /* synopsis: root=P2 iDb=P3 */ |
| 15195 | +#define OP_OpenWrite 101 /* synopsis: root=P2 iDb=P3 */ |
| 15195 | 15196 | #define OP_BitAnd 102 /* same as TK_BITAND, synopsis: r[P3]=r[P1]&r[P2] */ |
| 15196 | 15197 | #define OP_BitOr 103 /* same as TK_BITOR, synopsis: r[P3]=r[P1]|r[P2] */ |
| 15197 | 15198 | #define OP_ShiftLeft 104 /* same as TK_LSHIFT, synopsis: r[P3]=r[P2]<<r[P1] */ |
| 15198 | 15199 | #define OP_ShiftRight 105 /* same as TK_RSHIFT, synopsis: r[P3]=r[P2]>>r[P1] */ |
| 15199 | 15200 | #define OP_Add 106 /* same as TK_PLUS, synopsis: r[P3]=r[P1]+r[P2] */ |
| | @@ -15200,78 +15201,80 @@ |
| 15200 | 15201 | #define OP_Subtract 107 /* same as TK_MINUS, synopsis: r[P3]=r[P2]-r[P1] */ |
| 15201 | 15202 | #define OP_Multiply 108 /* same as TK_STAR, synopsis: r[P3]=r[P1]*r[P2] */ |
| 15202 | 15203 | #define OP_Divide 109 /* same as TK_SLASH, synopsis: r[P3]=r[P2]/r[P1] */ |
| 15203 | 15204 | #define OP_Remainder 110 /* same as TK_REM, synopsis: r[P3]=r[P2]%r[P1] */ |
| 15204 | 15205 | #define OP_Concat 111 /* same as TK_CONCAT, synopsis: r[P3]=r[P2]+r[P1] */ |
| 15205 | | -#define OP_OpenEphemeral 112 /* synopsis: nColumn=P2 */ |
| 15206 | +#define OP_OpenDup 112 |
| 15206 | 15207 | #define OP_BitNot 113 /* same as TK_BITNOT, synopsis: r[P2]= ~r[P1] */ |
| 15207 | | -#define OP_SorterOpen 114 |
| 15208 | | -#define OP_SequenceTest 115 /* synopsis: if( cursor[P1].ctr++ ) pc = P2 */ |
| 15208 | +#define OP_OpenAutoindex 114 /* synopsis: nColumn=P2 */ |
| 15209 | +#define OP_OpenEphemeral 115 /* synopsis: nColumn=P2 */ |
| 15209 | 15210 | #define OP_String8 116 /* same as TK_STRING, synopsis: r[P2]='P4' */ |
| 15210 | | -#define OP_OpenPseudo 117 /* synopsis: P3 columns in r[P2] */ |
| 15211 | | -#define OP_Close 118 |
| 15212 | | -#define OP_ColumnsUsed 119 |
| 15213 | | -#define OP_SeekScan 120 /* synopsis: Scan-ahead up to P1 rows */ |
| 15214 | | -#define OP_SeekHit 121 /* synopsis: set P2<=seekHit<=P3 */ |
| 15215 | | -#define OP_Sequence 122 /* synopsis: r[P2]=cursor[P1].ctr++ */ |
| 15216 | | -#define OP_NewRowid 123 /* synopsis: r[P2]=rowid */ |
| 15217 | | -#define OP_Insert 124 /* synopsis: intkey=r[P3] data=r[P2] */ |
| 15218 | | -#define OP_RowCell 125 |
| 15219 | | -#define OP_Delete 126 |
| 15220 | | -#define OP_ResetCount 127 |
| 15221 | | -#define OP_SorterCompare 128 /* synopsis: if key(P1)!=trim(r[P3],P4) goto P2 */ |
| 15222 | | -#define OP_SorterData 129 /* synopsis: r[P2]=data */ |
| 15223 | | -#define OP_RowData 130 /* synopsis: r[P2]=data */ |
| 15224 | | -#define OP_Rowid 131 /* synopsis: r[P2]=rowid */ |
| 15225 | | -#define OP_NullRow 132 |
| 15226 | | -#define OP_SeekEnd 133 |
| 15227 | | -#define OP_IdxInsert 134 /* synopsis: key=r[P2] */ |
| 15228 | | -#define OP_SorterInsert 135 /* synopsis: key=r[P2] */ |
| 15229 | | -#define OP_IdxDelete 136 /* synopsis: key=r[P2@P3] */ |
| 15230 | | -#define OP_DeferredSeek 137 /* synopsis: Move P3 to P1.rowid if needed */ |
| 15231 | | -#define OP_IdxRowid 138 /* synopsis: r[P2]=rowid */ |
| 15232 | | -#define OP_FinishSeek 139 |
| 15233 | | -#define OP_Destroy 140 |
| 15234 | | -#define OP_Clear 141 |
| 15235 | | -#define OP_ResetSorter 142 |
| 15236 | | -#define OP_CreateBtree 143 /* synopsis: r[P2]=root iDb=P1 flags=P3 */ |
| 15237 | | -#define OP_SqlExec 144 |
| 15238 | | -#define OP_ParseSchema 145 |
| 15239 | | -#define OP_LoadAnalysis 146 |
| 15240 | | -#define OP_DropTable 147 |
| 15241 | | -#define OP_DropIndex 148 |
| 15242 | | -#define OP_DropTrigger 149 |
| 15243 | | -#define OP_IntegrityCk 150 |
| 15244 | | -#define OP_RowSetAdd 151 /* synopsis: rowset(P1)=r[P2] */ |
| 15211 | +#define OP_SorterOpen 117 |
| 15212 | +#define OP_SequenceTest 118 /* synopsis: if( cursor[P1].ctr++ ) pc = P2 */ |
| 15213 | +#define OP_OpenPseudo 119 /* synopsis: P3 columns in r[P2] */ |
| 15214 | +#define OP_Close 120 |
| 15215 | +#define OP_ColumnsUsed 121 |
| 15216 | +#define OP_SeekScan 122 /* synopsis: Scan-ahead up to P1 rows */ |
| 15217 | +#define OP_SeekHit 123 /* synopsis: set P2<=seekHit<=P3 */ |
| 15218 | +#define OP_Sequence 124 /* synopsis: r[P2]=cursor[P1].ctr++ */ |
| 15219 | +#define OP_NewRowid 125 /* synopsis: r[P2]=rowid */ |
| 15220 | +#define OP_Insert 126 /* synopsis: intkey=r[P3] data=r[P2] */ |
| 15221 | +#define OP_RowCell 127 |
| 15222 | +#define OP_Delete 128 |
| 15223 | +#define OP_ResetCount 129 |
| 15224 | +#define OP_SorterCompare 130 /* synopsis: if key(P1)!=trim(r[P3],P4) goto P2 */ |
| 15225 | +#define OP_SorterData 131 /* synopsis: r[P2]=data */ |
| 15226 | +#define OP_RowData 132 /* synopsis: r[P2]=data */ |
| 15227 | +#define OP_Rowid 133 /* synopsis: r[P2]=rowid */ |
| 15228 | +#define OP_NullRow 134 |
| 15229 | +#define OP_SeekEnd 135 |
| 15230 | +#define OP_IdxInsert 136 /* synopsis: key=r[P2] */ |
| 15231 | +#define OP_SorterInsert 137 /* synopsis: key=r[P2] */ |
| 15232 | +#define OP_IdxDelete 138 /* synopsis: key=r[P2@P3] */ |
| 15233 | +#define OP_DeferredSeek 139 /* synopsis: Move P3 to P1.rowid if needed */ |
| 15234 | +#define OP_IdxRowid 140 /* synopsis: r[P2]=rowid */ |
| 15235 | +#define OP_FinishSeek 141 |
| 15236 | +#define OP_Destroy 142 |
| 15237 | +#define OP_Clear 143 |
| 15238 | +#define OP_ResetSorter 144 |
| 15239 | +#define OP_CreateBtree 145 /* synopsis: r[P2]=root iDb=P1 flags=P3 */ |
| 15240 | +#define OP_SqlExec 146 |
| 15241 | +#define OP_ParseSchema 147 |
| 15242 | +#define OP_LoadAnalysis 148 |
| 15243 | +#define OP_DropTable 149 |
| 15244 | +#define OP_DropIndex 150 |
| 15245 | +#define OP_DropTrigger 151 |
| 15245 | 15246 | #define OP_Real 152 /* same as TK_FLOAT, synopsis: r[P2]=P4 */ |
| 15246 | | -#define OP_Param 153 |
| 15247 | | -#define OP_FkCounter 154 /* synopsis: fkctr[P1]+=P2 */ |
| 15248 | | -#define OP_MemMax 155 /* synopsis: r[P1]=max(r[P1],r[P2]) */ |
| 15249 | | -#define OP_OffsetLimit 156 /* synopsis: if r[P1]>0 then r[P2]=r[P1]+max(0,r[P3]) else r[P2]=(-1) */ |
| 15250 | | -#define OP_AggInverse 157 /* synopsis: accum=r[P3] inverse(r[P2@P5]) */ |
| 15251 | | -#define OP_AggStep 158 /* synopsis: accum=r[P3] step(r[P2@P5]) */ |
| 15252 | | -#define OP_AggStep1 159 /* synopsis: accum=r[P3] step(r[P2@P5]) */ |
| 15253 | | -#define OP_AggValue 160 /* synopsis: r[P3]=value N=P2 */ |
| 15254 | | -#define OP_AggFinal 161 /* synopsis: accum=r[P1] N=P2 */ |
| 15255 | | -#define OP_Expire 162 |
| 15256 | | -#define OP_CursorLock 163 |
| 15257 | | -#define OP_CursorUnlock 164 |
| 15258 | | -#define OP_TableLock 165 /* synopsis: iDb=P1 root=P2 write=P3 */ |
| 15259 | | -#define OP_VBegin 166 |
| 15260 | | -#define OP_VCreate 167 |
| 15261 | | -#define OP_VDestroy 168 |
| 15262 | | -#define OP_VOpen 169 |
| 15263 | | -#define OP_VColumn 170 /* synopsis: r[P3]=vcolumn(P2) */ |
| 15264 | | -#define OP_VRename 171 |
| 15265 | | -#define OP_Pagecount 172 |
| 15266 | | -#define OP_MaxPgcnt 173 |
| 15267 | | -#define OP_Trace 174 |
| 15268 | | -#define OP_CursorHint 175 |
| 15269 | | -#define OP_ReleaseReg 176 /* synopsis: release r[P1@P2] mask P3 */ |
| 15270 | | -#define OP_Noop 177 |
| 15271 | | -#define OP_Explain 178 |
| 15272 | | -#define OP_Abortable 179 |
| 15247 | +#define OP_IntegrityCk 153 |
| 15248 | +#define OP_RowSetAdd 154 /* synopsis: rowset(P1)=r[P2] */ |
| 15249 | +#define OP_Param 155 |
| 15250 | +#define OP_FkCounter 156 /* synopsis: fkctr[P1]+=P2 */ |
| 15251 | +#define OP_MemMax 157 /* synopsis: r[P1]=max(r[P1],r[P2]) */ |
| 15252 | +#define OP_OffsetLimit 158 /* synopsis: if r[P1]>0 then r[P2]=r[P1]+max(0,r[P3]) else r[P2]=(-1) */ |
| 15253 | +#define OP_AggInverse 159 /* synopsis: accum=r[P3] inverse(r[P2@P5]) */ |
| 15254 | +#define OP_AggStep 160 /* synopsis: accum=r[P3] step(r[P2@P5]) */ |
| 15255 | +#define OP_AggStep1 161 /* synopsis: accum=r[P3] step(r[P2@P5]) */ |
| 15256 | +#define OP_AggValue 162 /* synopsis: r[P3]=value N=P2 */ |
| 15257 | +#define OP_AggFinal 163 /* synopsis: accum=r[P1] N=P2 */ |
| 15258 | +#define OP_Expire 164 |
| 15259 | +#define OP_CursorLock 165 |
| 15260 | +#define OP_CursorUnlock 166 |
| 15261 | +#define OP_TableLock 167 /* synopsis: iDb=P1 root=P2 write=P3 */ |
| 15262 | +#define OP_VBegin 168 |
| 15263 | +#define OP_VCreate 169 |
| 15264 | +#define OP_VDestroy 170 |
| 15265 | +#define OP_VOpen 171 |
| 15266 | +#define OP_VColumn 172 /* synopsis: r[P3]=vcolumn(P2) */ |
| 15267 | +#define OP_VRename 173 |
| 15268 | +#define OP_Pagecount 174 |
| 15269 | +#define OP_MaxPgcnt 175 |
| 15270 | +#define OP_Trace 176 |
| 15271 | +#define OP_CursorHint 177 |
| 15272 | +#define OP_ReleaseReg 178 /* synopsis: release r[P1@P2] mask P3 */ |
| 15273 | +#define OP_Noop 179 |
| 15274 | +#define OP_Explain 180 |
| 15275 | +#define OP_Abortable 181 |
| 15273 | 15276 | |
| 15274 | 15277 | /* Properties such as "out2" or "jump" that are specified in |
| 15275 | 15278 | ** comments following the "case" for each opcode in the vdbe.c |
| 15276 | 15279 | ** are encoded into bitvectors as follows: |
| 15277 | 15280 | */ |
| | @@ -15282,39 +15285,39 @@ |
| 15282 | 15285 | #define OPFLG_OUT2 0x10 /* out2: P2 is an output */ |
| 15283 | 15286 | #define OPFLG_OUT3 0x20 /* out3: P3 is an output */ |
| 15284 | 15287 | #define OPFLG_INITIALIZER {\ |
| 15285 | 15288 | /* 0 */ 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x10,\ |
| 15286 | 15289 | /* 8 */ 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03,\ |
| 15287 | | -/* 16 */ 0x01, 0x01, 0x03, 0x12, 0x03, 0x01, 0x09, 0x09,\ |
| 15288 | | -/* 24 */ 0x09, 0x09, 0x01, 0x09, 0x09, 0x09, 0x09, 0x09,\ |
| 15289 | | -/* 32 */ 0x09, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\ |
| 15290 | | -/* 40 */ 0x01, 0x01, 0x23, 0x26, 0x26, 0x0b, 0x01, 0x01,\ |
| 15291 | | -/* 48 */ 0x03, 0x03, 0x03, 0x03, 0x0b, 0x0b, 0x0b, 0x0b,\ |
| 15292 | | -/* 56 */ 0x0b, 0x0b, 0x01, 0x03, 0x01, 0x01, 0x01, 0x00,\ |
| 15293 | | -/* 64 */ 0x00, 0x02, 0x02, 0x08, 0x00, 0x10, 0x10, 0x10,\ |
| 15294 | | -/* 72 */ 0x10, 0x00, 0x10, 0x10, 0x00, 0x00, 0x10, 0x10,\ |
| 15295 | | -/* 80 */ 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00,\ |
| 15296 | | -/* 88 */ 0x12, 0x1e, 0x20, 0x00, 0x00, 0x00, 0x10, 0x10,\ |
| 15297 | | -/* 96 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x26,\ |
| 15290 | +/* 16 */ 0x01, 0x01, 0x03, 0x12, 0x03, 0x03, 0x01, 0x09,\ |
| 15291 | +/* 24 */ 0x09, 0x09, 0x09, 0x01, 0x09, 0x09, 0x09, 0x09,\ |
| 15292 | +/* 32 */ 0x09, 0x09, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\ |
| 15293 | +/* 40 */ 0x01, 0x01, 0x01, 0x26, 0x26, 0x23, 0x0b, 0x01,\ |
| 15294 | +/* 48 */ 0x01, 0x03, 0x03, 0x03, 0x0b, 0x0b, 0x0b, 0x0b,\ |
| 15295 | +/* 56 */ 0x0b, 0x0b, 0x01, 0x03, 0x03, 0x01, 0x01, 0x01,\ |
| 15296 | +/* 64 */ 0x00, 0x00, 0x02, 0x02, 0x08, 0x00, 0x10, 0x10,\ |
| 15297 | +/* 72 */ 0x10, 0x10, 0x00, 0x10, 0x10, 0x00, 0x00, 0x10,\ |
| 15298 | +/* 80 */ 0x10, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x00,\ |
| 15299 | +/* 88 */ 0x00, 0x12, 0x1e, 0x20, 0x00, 0x00, 0x00, 0x00,\ |
| 15300 | +/* 96 */ 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x26, 0x26,\ |
| 15298 | 15301 | /* 104 */ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,\ |
| 15299 | 15302 | /* 112 */ 0x00, 0x12, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,\ |
| 15300 | | -/* 120 */ 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00,\ |
| 15301 | | -/* 128 */ 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x04, 0x04,\ |
| 15302 | | -/* 136 */ 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x10,\ |
| 15303 | | -/* 144 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06,\ |
| 15304 | | -/* 152 */ 0x10, 0x10, 0x00, 0x04, 0x1a, 0x00, 0x00, 0x00,\ |
| 15303 | +/* 120 */ 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00,\ |
| 15304 | +/* 128 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,\ |
| 15305 | +/* 136 */ 0x04, 0x04, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00,\ |
| 15306 | +/* 144 */ 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ |
| 15307 | +/* 152 */ 0x10, 0x00, 0x06, 0x10, 0x00, 0x04, 0x1a, 0x00,\ |
| 15305 | 15308 | /* 160 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ |
| 15306 | | -/* 168 */ 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00,\ |
| 15307 | | -/* 176 */ 0x00, 0x00, 0x00, 0x00,} |
| 15309 | +/* 168 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10,\ |
| 15310 | +/* 176 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,} |
| 15308 | 15311 | |
| 15309 | 15312 | /* The resolve3P2Values() routine is able to run faster if it knows |
| 15310 | 15313 | ** the value of the largest JUMP opcode. The smaller the maximum |
| 15311 | 15314 | ** JUMP opcode the better, so the mkopcodeh.tcl script that |
| 15312 | 15315 | ** generated this include file strives to group all JUMP opcodes |
| 15313 | 15316 | ** together near the beginning of the list. |
| 15314 | 15317 | */ |
| 15315 | | -#define SQLITE_MX_JUMP_OPCODE 62 /* Maximum JUMP opcode */ |
| 15318 | +#define SQLITE_MX_JUMP_OPCODE 63 /* Maximum JUMP opcode */ |
| 15316 | 15319 | |
| 15317 | 15320 | /************** End of opcodes.h *********************************************/ |
| 15318 | 15321 | /************** Continuing where we left off in vdbe.h ***********************/ |
| 15319 | 15322 | |
| 15320 | 15323 | /* |
| | @@ -16387,12 +16390,12 @@ |
| 16387 | 16390 | u8 vtabOnConflict; /* Value to return for s3_vtab_on_conflict() */ |
| 16388 | 16391 | u8 isTransactionSavepoint; /* True if the outermost savepoint is a TS */ |
| 16389 | 16392 | u8 mTrace; /* zero or more SQLITE_TRACE flags */ |
| 16390 | 16393 | u8 noSharedCache; /* True if no shared-cache backends */ |
| 16391 | 16394 | u8 nSqlExec; /* Number of pending OP_SqlExec opcodes */ |
| 16395 | + u8 eOpenState; /* Current condition of the connection */ |
| 16392 | 16396 | int nextPagesize; /* Pagesize after VACUUM if >0 */ |
| 16393 | | - u32 magic; /* Magic number for detect library misuse */ |
| 16394 | 16397 | i64 nChange; /* Value returned by sqlite3_changes() */ |
| 16395 | 16398 | i64 nTotalChange; /* Value returned by sqlite3_total_changes() */ |
| 16396 | 16399 | int aLimit[SQLITE_N_LIMIT]; /* Limits */ |
| 16397 | 16400 | int nMaxSorterMmap; /* Maximum size of regions mapped by sorter */ |
| 16398 | 16401 | struct sqlite3InitInfo { /* Information used during initialization */ |
| | @@ -16615,21 +16618,20 @@ |
| 16615 | 16618 | ** Return true if it OK to factor constant expressions into the initialization |
| 16616 | 16619 | ** code. The argument is a Parse object for the code generator. |
| 16617 | 16620 | */ |
| 16618 | 16621 | #define ConstFactorOk(P) ((P)->okConstFactor) |
| 16619 | 16622 | |
| 16620 | | -/* |
| 16621 | | -** Possible values for the sqlite.magic field. |
| 16622 | | -** The numbers are obtained at random and have no special meaning, other |
| 16623 | | -** than being distinct from one another. |
| 16623 | +/* Possible values for the sqlite3.eOpenState field. |
| 16624 | +** The numbers are randomly selected such that a minimum of three bits must |
| 16625 | +** change to convert any number to another or to zero |
| 16624 | 16626 | */ |
| 16625 | | -#define SQLITE_MAGIC_OPEN 0xa029a697 /* Database is open */ |
| 16626 | | -#define SQLITE_MAGIC_CLOSED 0x9f3c2d33 /* Database is closed */ |
| 16627 | | -#define SQLITE_MAGIC_SICK 0x4b771290 /* Error and awaiting close */ |
| 16628 | | -#define SQLITE_MAGIC_BUSY 0xf03b7906 /* Database currently in use */ |
| 16629 | | -#define SQLITE_MAGIC_ERROR 0xb5357930 /* An SQLITE_MISUSE error occurred */ |
| 16630 | | -#define SQLITE_MAGIC_ZOMBIE 0x64cffc7f /* Close with last statement close */ |
| 16627 | +#define SQLITE_STATE_OPEN 0x76 /* Database is open */ |
| 16628 | +#define SQLITE_STATE_CLOSED 0xce /* Database is closed */ |
| 16629 | +#define SQLITE_STATE_SICK 0xba /* Error and awaiting close */ |
| 16630 | +#define SQLITE_STATE_BUSY 0x6d /* Database currently in use */ |
| 16631 | +#define SQLITE_STATE_ERROR 0xd5 /* An SQLITE_MISUSE error occurred */ |
| 16632 | +#define SQLITE_STATE_ZOMBIE 0xa7 /* Close with last statement close */ |
| 16631 | 16633 | |
| 16632 | 16634 | /* |
| 16633 | 16635 | ** Each SQL function is defined by an instance of the following |
| 16634 | 16636 | ** structure. For global built-in functions (ex: substr(), max(), count()) |
| 16635 | 16637 | ** a pointer to this structure is held in the sqlite3BuiltinFunctions object. |
| | @@ -16894,32 +16896,33 @@ |
| 16894 | 16896 | ** set. |
| 16895 | 16897 | */ |
| 16896 | 16898 | struct Column { |
| 16897 | 16899 | char *zCnName; /* Name of this column */ |
| 16898 | 16900 | unsigned notNull :4; /* An OE_ code for handling a NOT NULL constraint */ |
| 16899 | | - unsigned eType :4; /* One of the standard types */ |
| 16901 | + unsigned eCType :4; /* One of the standard types */ |
| 16900 | 16902 | char affinity; /* One of the SQLITE_AFF_... values */ |
| 16901 | 16903 | u8 szEst; /* Est size of value in this column. sizeof(INT)==1 */ |
| 16902 | 16904 | u8 hName; /* Column name hash for faster lookup */ |
| 16903 | 16905 | u16 iDflt; /* 1-based index of DEFAULT. 0 means "none" */ |
| 16904 | 16906 | u16 colFlags; /* Boolean properties. See COLFLAG_ defines below */ |
| 16905 | 16907 | }; |
| 16906 | 16908 | |
| 16907 | | -/* Allowed values for Column.eType. |
| 16909 | +/* Allowed values for Column.eCType. |
| 16908 | 16910 | ** |
| 16909 | 16911 | ** Values must match entries in the global constant arrays |
| 16910 | 16912 | ** sqlite3StdTypeLen[] and sqlite3StdType[]. Each value is one more |
| 16911 | 16913 | ** than the offset into these arrays for the corresponding name. |
| 16912 | 16914 | ** Adjust the SQLITE_N_STDTYPE value if adding or removing entries. |
| 16913 | 16915 | */ |
| 16914 | 16916 | #define COLTYPE_CUSTOM 0 /* Type appended to zName */ |
| 16915 | | -#define COLTYPE_BLOB 1 |
| 16916 | | -#define COLTYPE_INT 2 |
| 16917 | | -#define COLTYPE_INTEGER 3 |
| 16918 | | -#define COLTYPE_REAL 4 |
| 16919 | | -#define COLTYPE_TEXT 5 |
| 16920 | | -#define SQLITE_N_STDTYPE 5 /* Number of standard types */ |
| 16917 | +#define COLTYPE_ANY 1 |
| 16918 | +#define COLTYPE_BLOB 2 |
| 16919 | +#define COLTYPE_INT 3 |
| 16920 | +#define COLTYPE_INTEGER 4 |
| 16921 | +#define COLTYPE_REAL 5 |
| 16922 | +#define COLTYPE_TEXT 6 |
| 16923 | +#define SQLITE_N_STDTYPE 6 /* Number of standard types */ |
| 16921 | 16924 | |
| 16922 | 16925 | /* Allowed values for Column.colFlags. |
| 16923 | 16926 | ** |
| 16924 | 16927 | ** Constraints: |
| 16925 | 16928 | ** TF_HasVirtual == COLFLAG_VIRTUAL |
| | @@ -17139,10 +17142,11 @@ |
| 17139 | 17142 | #define TF_HasNotNull 0x00000800 /* Contains NOT NULL constraints */ |
| 17140 | 17143 | #define TF_Shadow 0x00001000 /* True for a shadow table */ |
| 17141 | 17144 | #define TF_HasStat4 0x00002000 /* STAT4 info available for this table */ |
| 17142 | 17145 | #define TF_Ephemeral 0x00004000 /* An ephemeral table */ |
| 17143 | 17146 | #define TF_Eponymous 0x00008000 /* An eponymous virtual table */ |
| 17147 | +#define TF_Strict 0x00010000 /* STRICT mode */ |
| 17144 | 17148 | |
| 17145 | 17149 | /* |
| 17146 | 17150 | ** Allowed values for Table.eTabType |
| 17147 | 17151 | */ |
| 17148 | 17152 | #define TABTYP_NORM 0 /* Ordinary table */ |
| | @@ -19290,11 +19294,11 @@ |
| 19290 | 19294 | SQLITE_PRIVATE void sqlite3AddPrimaryKey(Parse*, ExprList*, int, int, int); |
| 19291 | 19295 | SQLITE_PRIVATE void sqlite3AddCheckConstraint(Parse*, Expr*, const char*, const char*); |
| 19292 | 19296 | SQLITE_PRIVATE void sqlite3AddDefaultValue(Parse*,Expr*,const char*,const char*); |
| 19293 | 19297 | SQLITE_PRIVATE void sqlite3AddCollateType(Parse*, Token*); |
| 19294 | 19298 | SQLITE_PRIVATE void sqlite3AddGenerated(Parse*,Expr*,Token*); |
| 19295 | | -SQLITE_PRIVATE void sqlite3EndTable(Parse*,Token*,Token*,u8,Select*); |
| 19299 | +SQLITE_PRIVATE void sqlite3EndTable(Parse*,Token*,Token*,u32,Select*); |
| 19296 | 19300 | SQLITE_PRIVATE void sqlite3AddReturning(Parse*,ExprList*); |
| 19297 | 19301 | SQLITE_PRIVATE int sqlite3ParseUri(const char*,const char*,unsigned int*, |
| 19298 | 19302 | sqlite3_vfs**,char**,char **); |
| 19299 | 19303 | #define sqlite3CodecQueryParameters(A,B,C) 0 |
| 19300 | 19304 | SQLITE_PRIVATE Btree *sqlite3DbNameToBtree(sqlite3*,const char*); |
| | @@ -19695,10 +19699,11 @@ |
| 19695 | 19699 | #ifndef SQLITE_AMALGAMATION |
| 19696 | 19700 | SQLITE_PRIVATE const unsigned char sqlite3OpcodeProperty[]; |
| 19697 | 19701 | SQLITE_PRIVATE const char sqlite3StrBINARY[]; |
| 19698 | 19702 | SQLITE_PRIVATE const unsigned char sqlite3StdTypeLen[]; |
| 19699 | 19703 | SQLITE_PRIVATE const char sqlite3StdTypeAffinity[]; |
| 19704 | +SQLITE_PRIVATE const char sqlite3StdTypeMap[]; |
| 19700 | 19705 | SQLITE_PRIVATE const char *sqlite3StdType[]; |
| 19701 | 19706 | SQLITE_PRIVATE const unsigned char sqlite3UpperToLower[]; |
| 19702 | 19707 | SQLITE_PRIVATE const unsigned char *sqlite3aLTb; |
| 19703 | 19708 | SQLITE_PRIVATE const unsigned char *sqlite3aEQb; |
| 19704 | 19709 | SQLITE_PRIVATE const unsigned char *sqlite3aGTb; |
| | @@ -21464,20 +21469,42 @@ |
| 21464 | 21469 | SQLITE_PRIVATE const char sqlite3StrBINARY[] = "BINARY"; |
| 21465 | 21470 | |
| 21466 | 21471 | /* |
| 21467 | 21472 | ** Standard typenames. These names must match the COLTYPE_* definitions. |
| 21468 | 21473 | ** Adjust the SQLITE_N_STDTYPE value if adding or removing entries. |
| 21474 | +** |
| 21475 | +** sqlite3StdType[] The actual names of the datatypes. |
| 21476 | +** |
| 21477 | +** sqlite3StdTypeLen[] The length (in bytes) of each entry |
| 21478 | +** in sqlite3StdType[]. |
| 21479 | +** |
| 21480 | +** sqlite3StdTypeAffinity[] The affinity associated with each entry |
| 21481 | +** in sqlite3StdType[]. |
| 21482 | +** |
| 21483 | +** sqlite3StdTypeMap[] The type value (as returned from |
| 21484 | +** sqlite3_column_type() or sqlite3_value_type()) |
| 21485 | +** for each entry in sqlite3StdType[]. |
| 21469 | 21486 | */ |
| 21470 | | -SQLITE_PRIVATE const unsigned char sqlite3StdTypeLen[] = { 4, 3, 7, 4, 4 }; |
| 21487 | +SQLITE_PRIVATE const unsigned char sqlite3StdTypeLen[] = { 3, 4, 3, 7, 4, 4 }; |
| 21471 | 21488 | SQLITE_PRIVATE const char sqlite3StdTypeAffinity[] = { |
| 21489 | + SQLITE_AFF_NUMERIC, |
| 21472 | 21490 | SQLITE_AFF_BLOB, |
| 21473 | 21491 | SQLITE_AFF_INTEGER, |
| 21474 | 21492 | SQLITE_AFF_INTEGER, |
| 21475 | 21493 | SQLITE_AFF_REAL, |
| 21476 | 21494 | SQLITE_AFF_TEXT |
| 21495 | +}; |
| 21496 | +SQLITE_PRIVATE const char sqlite3StdTypeMap[] = { |
| 21497 | + 0, |
| 21498 | + SQLITE_BLOB, |
| 21499 | + SQLITE_INTEGER, |
| 21500 | + SQLITE_INTEGER, |
| 21501 | + SQLITE_FLOAT, |
| 21502 | + SQLITE_TEXT |
| 21477 | 21503 | }; |
| 21478 | 21504 | SQLITE_PRIVATE const char *sqlite3StdType[] = { |
| 21505 | + "ANY", |
| 21479 | 21506 | "BLOB", |
| 21480 | 21507 | "INT", |
| 21481 | 21508 | "INTEGER", |
| 21482 | 21509 | "REAL", |
| 21483 | 21510 | "TEXT" |
| | @@ -31896,15 +31923,25 @@ |
| 31896 | 31923 | #endif |
| 31897 | 31924 | |
| 31898 | 31925 | #ifndef SQLITE_OMIT_FLOATING_POINT |
| 31899 | 31926 | /* |
| 31900 | 31927 | ** Return true if the floating point value is Not a Number (NaN). |
| 31928 | +** |
| 31929 | +** Use the math library isnan() function if compiled with SQLITE_HAVE_ISNAN. |
| 31930 | +** Otherwise, we have our own implementation that works on most systems. |
| 31901 | 31931 | */ |
| 31902 | 31932 | SQLITE_PRIVATE int sqlite3IsNaN(double x){ |
| 31933 | + int rc; /* The value return */ |
| 31934 | +#if !SQLITE_HAVE_ISNAN && !HAVE_ISNAN |
| 31903 | 31935 | u64 y; |
| 31904 | 31936 | memcpy(&y,&x,sizeof(y)); |
| 31905 | | - return IsNaN(y); |
| 31937 | + rc = IsNaN(y); |
| 31938 | +#else |
| 31939 | + rc = isnan(x); |
| 31940 | +#endif /* HAVE_ISNAN */ |
| 31941 | + testcase( rc ); |
| 31942 | + return rc; |
| 31906 | 31943 | } |
| 31907 | 31944 | #endif /* SQLITE_OMIT_FLOATING_POINT */ |
| 31908 | 31945 | |
| 31909 | 31946 | /* |
| 31910 | 31947 | ** Compute a string length that is limited to what can be stored in |
| | @@ -31927,13 +31964,13 @@ |
| 31927 | 31964 | ** the column name if and only if the COLFLAG_HASTYPE flag is set. |
| 31928 | 31965 | */ |
| 31929 | 31966 | SQLITE_PRIVATE char *sqlite3ColumnType(Column *pCol, char *zDflt){ |
| 31930 | 31967 | if( pCol->colFlags & COLFLAG_HASTYPE ){ |
| 31931 | 31968 | return pCol->zCnName + strlen(pCol->zCnName) + 1; |
| 31932 | | - }else if( pCol->eType ){ |
| 31933 | | - assert( pCol->eType<=SQLITE_N_STDTYPE ); |
| 31934 | | - return (char*)sqlite3StdType[pCol->eType-1]; |
| 31969 | + }else if( pCol->eCType ){ |
| 31970 | + assert( pCol->eCType<=SQLITE_N_STDTYPE ); |
| 31971 | + return (char*)sqlite3StdType[pCol->eCType-1]; |
| 31935 | 31972 | }else{ |
| 31936 | 31973 | return zDflt; |
| 31937 | 31974 | } |
| 31938 | 31975 | } |
| 31939 | 31976 | |
| | @@ -33235,17 +33272,17 @@ |
| 33235 | 33272 | ** use. sqlite3SafetyCheckSickOrOk() allows a db pointer that failed to |
| 33236 | 33273 | ** open properly and is not fit for general use but which can be |
| 33237 | 33274 | ** used as an argument to sqlite3_errmsg() or sqlite3_close(). |
| 33238 | 33275 | */ |
| 33239 | 33276 | SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *db){ |
| 33240 | | - u32 magic; |
| 33277 | + u8 eOpenState; |
| 33241 | 33278 | if( db==0 ){ |
| 33242 | 33279 | logBadConnection("NULL"); |
| 33243 | 33280 | return 0; |
| 33244 | 33281 | } |
| 33245 | | - magic = db->magic; |
| 33246 | | - if( magic!=SQLITE_MAGIC_OPEN ){ |
| 33282 | + eOpenState = db->eOpenState; |
| 33283 | + if( eOpenState!=SQLITE_STATE_OPEN ){ |
| 33247 | 33284 | if( sqlite3SafetyCheckSickOrOk(db) ){ |
| 33248 | 33285 | testcase( sqlite3GlobalConfig.xLog!=0 ); |
| 33249 | 33286 | logBadConnection("unopened"); |
| 33250 | 33287 | } |
| 33251 | 33288 | return 0; |
| | @@ -33252,15 +33289,15 @@ |
| 33252 | 33289 | }else{ |
| 33253 | 33290 | return 1; |
| 33254 | 33291 | } |
| 33255 | 33292 | } |
| 33256 | 33293 | SQLITE_PRIVATE int sqlite3SafetyCheckSickOrOk(sqlite3 *db){ |
| 33257 | | - u32 magic; |
| 33258 | | - magic = db->magic; |
| 33259 | | - if( magic!=SQLITE_MAGIC_SICK && |
| 33260 | | - magic!=SQLITE_MAGIC_OPEN && |
| 33261 | | - magic!=SQLITE_MAGIC_BUSY ){ |
| 33294 | + u8 eOpenState; |
| 33295 | + eOpenState = db->eOpenState; |
| 33296 | + if( eOpenState!=SQLITE_STATE_SICK && |
| 33297 | + eOpenState!=SQLITE_STATE_OPEN && |
| 33298 | + eOpenState!=SQLITE_STATE_BUSY ){ |
| 33262 | 33299 | testcase( sqlite3GlobalConfig.xLog!=0 ); |
| 33263 | 33300 | logBadConnection("invalid"); |
| 33264 | 33301 | return 0; |
| 33265 | 33302 | }else{ |
| 33266 | 33303 | return 1; |
| | @@ -33875,91 +33912,91 @@ |
| 33875 | 33912 | /* 16 */ "Jump" OpHelp(""), |
| 33876 | 33913 | /* 17 */ "Once" OpHelp(""), |
| 33877 | 33914 | /* 18 */ "If" OpHelp(""), |
| 33878 | 33915 | /* 19 */ "Not" OpHelp("r[P2]= !r[P1]"), |
| 33879 | 33916 | /* 20 */ "IfNot" OpHelp(""), |
| 33880 | | - /* 21 */ "IfNullRow" OpHelp("if P1.nullRow then r[P3]=NULL, goto P2"), |
| 33881 | | - /* 22 */ "SeekLT" OpHelp("key=r[P3@P4]"), |
| 33882 | | - /* 23 */ "SeekLE" OpHelp("key=r[P3@P4]"), |
| 33883 | | - /* 24 */ "SeekGE" OpHelp("key=r[P3@P4]"), |
| 33884 | | - /* 25 */ "SeekGT" OpHelp("key=r[P3@P4]"), |
| 33885 | | - /* 26 */ "IfNotOpen" OpHelp("if( !csr[P1] ) goto P2"), |
| 33886 | | - /* 27 */ "IfNoHope" OpHelp("key=r[P3@P4]"), |
| 33887 | | - /* 28 */ "NoConflict" OpHelp("key=r[P3@P4]"), |
| 33888 | | - /* 29 */ "NotFound" OpHelp("key=r[P3@P4]"), |
| 33889 | | - /* 30 */ "Found" OpHelp("key=r[P3@P4]"), |
| 33890 | | - /* 31 */ "SeekRowid" OpHelp("intkey=r[P3]"), |
| 33891 | | - /* 32 */ "NotExists" OpHelp("intkey=r[P3]"), |
| 33892 | | - /* 33 */ "Last" OpHelp(""), |
| 33893 | | - /* 34 */ "IfSmaller" OpHelp(""), |
| 33894 | | - /* 35 */ "SorterSort" OpHelp(""), |
| 33895 | | - /* 36 */ "Sort" OpHelp(""), |
| 33896 | | - /* 37 */ "Rewind" OpHelp(""), |
| 33897 | | - /* 38 */ "IdxLE" OpHelp("key=r[P3@P4]"), |
| 33898 | | - /* 39 */ "IdxGT" OpHelp("key=r[P3@P4]"), |
| 33899 | | - /* 40 */ "IdxLT" OpHelp("key=r[P3@P4]"), |
| 33900 | | - /* 41 */ "IdxGE" OpHelp("key=r[P3@P4]"), |
| 33901 | | - /* 42 */ "RowSetRead" OpHelp("r[P3]=rowset(P1)"), |
| 33917 | + /* 21 */ "IsNullOrType" OpHelp("if typeof(r[P1]) IN (P3,5) goto P2"), |
| 33918 | + /* 22 */ "IfNullRow" OpHelp("if P1.nullRow then r[P3]=NULL, goto P2"), |
| 33919 | + /* 23 */ "SeekLT" OpHelp("key=r[P3@P4]"), |
| 33920 | + /* 24 */ "SeekLE" OpHelp("key=r[P3@P4]"), |
| 33921 | + /* 25 */ "SeekGE" OpHelp("key=r[P3@P4]"), |
| 33922 | + /* 26 */ "SeekGT" OpHelp("key=r[P3@P4]"), |
| 33923 | + /* 27 */ "IfNotOpen" OpHelp("if( !csr[P1] ) goto P2"), |
| 33924 | + /* 28 */ "IfNoHope" OpHelp("key=r[P3@P4]"), |
| 33925 | + /* 29 */ "NoConflict" OpHelp("key=r[P3@P4]"), |
| 33926 | + /* 30 */ "NotFound" OpHelp("key=r[P3@P4]"), |
| 33927 | + /* 31 */ "Found" OpHelp("key=r[P3@P4]"), |
| 33928 | + /* 32 */ "SeekRowid" OpHelp("intkey=r[P3]"), |
| 33929 | + /* 33 */ "NotExists" OpHelp("intkey=r[P3]"), |
| 33930 | + /* 34 */ "Last" OpHelp(""), |
| 33931 | + /* 35 */ "IfSmaller" OpHelp(""), |
| 33932 | + /* 36 */ "SorterSort" OpHelp(""), |
| 33933 | + /* 37 */ "Sort" OpHelp(""), |
| 33934 | + /* 38 */ "Rewind" OpHelp(""), |
| 33935 | + /* 39 */ "IdxLE" OpHelp("key=r[P3@P4]"), |
| 33936 | + /* 40 */ "IdxGT" OpHelp("key=r[P3@P4]"), |
| 33937 | + /* 41 */ "IdxLT" OpHelp("key=r[P3@P4]"), |
| 33938 | + /* 42 */ "IdxGE" OpHelp("key=r[P3@P4]"), |
| 33902 | 33939 | /* 43 */ "Or" OpHelp("r[P3]=(r[P1] || r[P2])"), |
| 33903 | 33940 | /* 44 */ "And" OpHelp("r[P3]=(r[P1] && r[P2])"), |
| 33904 | | - /* 45 */ "RowSetTest" OpHelp("if r[P3] in rowset(P1) goto P2"), |
| 33905 | | - /* 46 */ "Program" OpHelp(""), |
| 33906 | | - /* 47 */ "FkIfZero" OpHelp("if fkctr[P1]==0 goto P2"), |
| 33907 | | - /* 48 */ "IfPos" OpHelp("if r[P1]>0 then r[P1]-=P3, goto P2"), |
| 33908 | | - /* 49 */ "IfNotZero" OpHelp("if r[P1]!=0 then r[P1]--, goto P2"), |
| 33941 | + /* 45 */ "RowSetRead" OpHelp("r[P3]=rowset(P1)"), |
| 33942 | + /* 46 */ "RowSetTest" OpHelp("if r[P3] in rowset(P1) goto P2"), |
| 33943 | + /* 47 */ "Program" OpHelp(""), |
| 33944 | + /* 48 */ "FkIfZero" OpHelp("if fkctr[P1]==0 goto P2"), |
| 33945 | + /* 49 */ "IfPos" OpHelp("if r[P1]>0 then r[P1]-=P3, goto P2"), |
| 33909 | 33946 | /* 50 */ "IsNull" OpHelp("if r[P1]==NULL goto P2"), |
| 33910 | 33947 | /* 51 */ "NotNull" OpHelp("if r[P1]!=NULL goto P2"), |
| 33911 | 33948 | /* 52 */ "Ne" OpHelp("IF r[P3]!=r[P1]"), |
| 33912 | 33949 | /* 53 */ "Eq" OpHelp("IF r[P3]==r[P1]"), |
| 33913 | 33950 | /* 54 */ "Gt" OpHelp("IF r[P3]>r[P1]"), |
| 33914 | 33951 | /* 55 */ "Le" OpHelp("IF r[P3]<=r[P1]"), |
| 33915 | 33952 | /* 56 */ "Lt" OpHelp("IF r[P3]<r[P1]"), |
| 33916 | 33953 | /* 57 */ "Ge" OpHelp("IF r[P3]>=r[P1]"), |
| 33917 | 33954 | /* 58 */ "ElseEq" OpHelp(""), |
| 33918 | | - /* 59 */ "DecrJumpZero" OpHelp("if (--r[P1])==0 goto P2"), |
| 33919 | | - /* 60 */ "IncrVacuum" OpHelp(""), |
| 33920 | | - /* 61 */ "VNext" OpHelp(""), |
| 33921 | | - /* 62 */ "Init" OpHelp("Start at P2"), |
| 33922 | | - /* 63 */ "PureFunc" OpHelp("r[P3]=func(r[P2@NP])"), |
| 33923 | | - /* 64 */ "Function" OpHelp("r[P3]=func(r[P2@NP])"), |
| 33924 | | - /* 65 */ "Return" OpHelp(""), |
| 33925 | | - /* 66 */ "EndCoroutine" OpHelp(""), |
| 33926 | | - /* 67 */ "HaltIfNull" OpHelp("if r[P3]=null halt"), |
| 33927 | | - /* 68 */ "Halt" OpHelp(""), |
| 33928 | | - /* 69 */ "Integer" OpHelp("r[P2]=P1"), |
| 33929 | | - /* 70 */ "Int64" OpHelp("r[P2]=P4"), |
| 33930 | | - /* 71 */ "String" OpHelp("r[P2]='P4' (len=P1)"), |
| 33931 | | - /* 72 */ "Null" OpHelp("r[P2..P3]=NULL"), |
| 33932 | | - /* 73 */ "SoftNull" OpHelp("r[P1]=NULL"), |
| 33933 | | - /* 74 */ "Blob" OpHelp("r[P2]=P4 (len=P1)"), |
| 33934 | | - /* 75 */ "Variable" OpHelp("r[P2]=parameter(P1,P4)"), |
| 33935 | | - /* 76 */ "Move" OpHelp("r[P2@P3]=r[P1@P3]"), |
| 33936 | | - /* 77 */ "Copy" OpHelp("r[P2@P3+1]=r[P1@P3+1]"), |
| 33937 | | - /* 78 */ "SCopy" OpHelp("r[P2]=r[P1]"), |
| 33938 | | - /* 79 */ "IntCopy" OpHelp("r[P2]=r[P1]"), |
| 33939 | | - /* 80 */ "ChngCntRow" OpHelp("output=r[P1]"), |
| 33940 | | - /* 81 */ "ResultRow" OpHelp("output=r[P1@P2]"), |
| 33941 | | - /* 82 */ "CollSeq" OpHelp(""), |
| 33942 | | - /* 83 */ "AddImm" OpHelp("r[P1]=r[P1]+P2"), |
| 33943 | | - /* 84 */ "RealAffinity" OpHelp(""), |
| 33944 | | - /* 85 */ "Cast" OpHelp("affinity(r[P1])"), |
| 33945 | | - /* 86 */ "Permutation" OpHelp(""), |
| 33946 | | - /* 87 */ "Compare" OpHelp("r[P1@P3] <-> r[P2@P3]"), |
| 33947 | | - /* 88 */ "IsTrue" OpHelp("r[P2] = coalesce(r[P1]==TRUE,P3) ^ P4"), |
| 33948 | | - /* 89 */ "ZeroOrNull" OpHelp("r[P2] = 0 OR NULL"), |
| 33949 | | - /* 90 */ "Offset" OpHelp("r[P3] = sqlite_offset(P1)"), |
| 33950 | | - /* 91 */ "Column" OpHelp("r[P3]=PX"), |
| 33951 | | - /* 92 */ "Affinity" OpHelp("affinity(r[P1@P2])"), |
| 33952 | | - /* 93 */ "MakeRecord" OpHelp("r[P3]=mkrec(r[P1@P2])"), |
| 33953 | | - /* 94 */ "Count" OpHelp("r[P2]=count()"), |
| 33954 | | - /* 95 */ "ReadCookie" OpHelp(""), |
| 33955 | | - /* 96 */ "SetCookie" OpHelp(""), |
| 33956 | | - /* 97 */ "ReopenIdx" OpHelp("root=P2 iDb=P3"), |
| 33957 | | - /* 98 */ "OpenRead" OpHelp("root=P2 iDb=P3"), |
| 33958 | | - /* 99 */ "OpenWrite" OpHelp("root=P2 iDb=P3"), |
| 33959 | | - /* 100 */ "OpenDup" OpHelp(""), |
| 33960 | | - /* 101 */ "OpenAutoindex" OpHelp("nColumn=P2"), |
| 33955 | + /* 59 */ "IfNotZero" OpHelp("if r[P1]!=0 then r[P1]--, goto P2"), |
| 33956 | + /* 60 */ "DecrJumpZero" OpHelp("if (--r[P1])==0 goto P2"), |
| 33957 | + /* 61 */ "IncrVacuum" OpHelp(""), |
| 33958 | + /* 62 */ "VNext" OpHelp(""), |
| 33959 | + /* 63 */ "Init" OpHelp("Start at P2"), |
| 33960 | + /* 64 */ "PureFunc" OpHelp("r[P3]=func(r[P2@NP])"), |
| 33961 | + /* 65 */ "Function" OpHelp("r[P3]=func(r[P2@NP])"), |
| 33962 | + /* 66 */ "Return" OpHelp(""), |
| 33963 | + /* 67 */ "EndCoroutine" OpHelp(""), |
| 33964 | + /* 68 */ "HaltIfNull" OpHelp("if r[P3]=null halt"), |
| 33965 | + /* 69 */ "Halt" OpHelp(""), |
| 33966 | + /* 70 */ "Integer" OpHelp("r[P2]=P1"), |
| 33967 | + /* 71 */ "Int64" OpHelp("r[P2]=P4"), |
| 33968 | + /* 72 */ "String" OpHelp("r[P2]='P4' (len=P1)"), |
| 33969 | + /* 73 */ "Null" OpHelp("r[P2..P3]=NULL"), |
| 33970 | + /* 74 */ "SoftNull" OpHelp("r[P1]=NULL"), |
| 33971 | + /* 75 */ "Blob" OpHelp("r[P2]=P4 (len=P1)"), |
| 33972 | + /* 76 */ "Variable" OpHelp("r[P2]=parameter(P1,P4)"), |
| 33973 | + /* 77 */ "Move" OpHelp("r[P2@P3]=r[P1@P3]"), |
| 33974 | + /* 78 */ "Copy" OpHelp("r[P2@P3+1]=r[P1@P3+1]"), |
| 33975 | + /* 79 */ "SCopy" OpHelp("r[P2]=r[P1]"), |
| 33976 | + /* 80 */ "IntCopy" OpHelp("r[P2]=r[P1]"), |
| 33977 | + /* 81 */ "ChngCntRow" OpHelp("output=r[P1]"), |
| 33978 | + /* 82 */ "ResultRow" OpHelp("output=r[P1@P2]"), |
| 33979 | + /* 83 */ "CollSeq" OpHelp(""), |
| 33980 | + /* 84 */ "AddImm" OpHelp("r[P1]=r[P1]+P2"), |
| 33981 | + /* 85 */ "RealAffinity" OpHelp(""), |
| 33982 | + /* 86 */ "Cast" OpHelp("affinity(r[P1])"), |
| 33983 | + /* 87 */ "Permutation" OpHelp(""), |
| 33984 | + /* 88 */ "Compare" OpHelp("r[P1@P3] <-> r[P2@P3]"), |
| 33985 | + /* 89 */ "IsTrue" OpHelp("r[P2] = coalesce(r[P1]==TRUE,P3) ^ P4"), |
| 33986 | + /* 90 */ "ZeroOrNull" OpHelp("r[P2] = 0 OR NULL"), |
| 33987 | + /* 91 */ "Offset" OpHelp("r[P3] = sqlite_offset(P1)"), |
| 33988 | + /* 92 */ "Column" OpHelp("r[P3]=PX"), |
| 33989 | + /* 93 */ "TypeCheck" OpHelp("typecheck(r[P1@P2])"), |
| 33990 | + /* 94 */ "Affinity" OpHelp("affinity(r[P1@P2])"), |
| 33991 | + /* 95 */ "MakeRecord" OpHelp("r[P3]=mkrec(r[P1@P2])"), |
| 33992 | + /* 96 */ "Count" OpHelp("r[P2]=count()"), |
| 33993 | + /* 97 */ "ReadCookie" OpHelp(""), |
| 33994 | + /* 98 */ "SetCookie" OpHelp(""), |
| 33995 | + /* 99 */ "ReopenIdx" OpHelp("root=P2 iDb=P3"), |
| 33996 | + /* 100 */ "OpenRead" OpHelp("root=P2 iDb=P3"), |
| 33997 | + /* 101 */ "OpenWrite" OpHelp("root=P2 iDb=P3"), |
| 33961 | 33998 | /* 102 */ "BitAnd" OpHelp("r[P3]=r[P1]&r[P2]"), |
| 33962 | 33999 | /* 103 */ "BitOr" OpHelp("r[P3]=r[P1]|r[P2]"), |
| 33963 | 34000 | /* 104 */ "ShiftLeft" OpHelp("r[P3]=r[P2]<<r[P1]"), |
| 33964 | 34001 | /* 105 */ "ShiftRight" OpHelp("r[P3]=r[P2]>>r[P1]"), |
| 33965 | 34002 | /* 106 */ "Add" OpHelp("r[P3]=r[P1]+r[P2]"), |
| | @@ -33966,78 +34003,80 @@ |
| 33966 | 34003 | /* 107 */ "Subtract" OpHelp("r[P3]=r[P2]-r[P1]"), |
| 33967 | 34004 | /* 108 */ "Multiply" OpHelp("r[P3]=r[P1]*r[P2]"), |
| 33968 | 34005 | /* 109 */ "Divide" OpHelp("r[P3]=r[P2]/r[P1]"), |
| 33969 | 34006 | /* 110 */ "Remainder" OpHelp("r[P3]=r[P2]%r[P1]"), |
| 33970 | 34007 | /* 111 */ "Concat" OpHelp("r[P3]=r[P2]+r[P1]"), |
| 33971 | | - /* 112 */ "OpenEphemeral" OpHelp("nColumn=P2"), |
| 34008 | + /* 112 */ "OpenDup" OpHelp(""), |
| 33972 | 34009 | /* 113 */ "BitNot" OpHelp("r[P2]= ~r[P1]"), |
| 33973 | | - /* 114 */ "SorterOpen" OpHelp(""), |
| 33974 | | - /* 115 */ "SequenceTest" OpHelp("if( cursor[P1].ctr++ ) pc = P2"), |
| 34010 | + /* 114 */ "OpenAutoindex" OpHelp("nColumn=P2"), |
| 34011 | + /* 115 */ "OpenEphemeral" OpHelp("nColumn=P2"), |
| 33975 | 34012 | /* 116 */ "String8" OpHelp("r[P2]='P4'"), |
| 33976 | | - /* 117 */ "OpenPseudo" OpHelp("P3 columns in r[P2]"), |
| 33977 | | - /* 118 */ "Close" OpHelp(""), |
| 33978 | | - /* 119 */ "ColumnsUsed" OpHelp(""), |
| 33979 | | - /* 120 */ "SeekScan" OpHelp("Scan-ahead up to P1 rows"), |
| 33980 | | - /* 121 */ "SeekHit" OpHelp("set P2<=seekHit<=P3"), |
| 33981 | | - /* 122 */ "Sequence" OpHelp("r[P2]=cursor[P1].ctr++"), |
| 33982 | | - /* 123 */ "NewRowid" OpHelp("r[P2]=rowid"), |
| 33983 | | - /* 124 */ "Insert" OpHelp("intkey=r[P3] data=r[P2]"), |
| 33984 | | - /* 125 */ "RowCell" OpHelp(""), |
| 33985 | | - /* 126 */ "Delete" OpHelp(""), |
| 33986 | | - /* 127 */ "ResetCount" OpHelp(""), |
| 33987 | | - /* 128 */ "SorterCompare" OpHelp("if key(P1)!=trim(r[P3],P4) goto P2"), |
| 33988 | | - /* 129 */ "SorterData" OpHelp("r[P2]=data"), |
| 33989 | | - /* 130 */ "RowData" OpHelp("r[P2]=data"), |
| 33990 | | - /* 131 */ "Rowid" OpHelp("r[P2]=rowid"), |
| 33991 | | - /* 132 */ "NullRow" OpHelp(""), |
| 33992 | | - /* 133 */ "SeekEnd" OpHelp(""), |
| 33993 | | - /* 134 */ "IdxInsert" OpHelp("key=r[P2]"), |
| 33994 | | - /* 135 */ "SorterInsert" OpHelp("key=r[P2]"), |
| 33995 | | - /* 136 */ "IdxDelete" OpHelp("key=r[P2@P3]"), |
| 33996 | | - /* 137 */ "DeferredSeek" OpHelp("Move P3 to P1.rowid if needed"), |
| 33997 | | - /* 138 */ "IdxRowid" OpHelp("r[P2]=rowid"), |
| 33998 | | - /* 139 */ "FinishSeek" OpHelp(""), |
| 33999 | | - /* 140 */ "Destroy" OpHelp(""), |
| 34000 | | - /* 141 */ "Clear" OpHelp(""), |
| 34001 | | - /* 142 */ "ResetSorter" OpHelp(""), |
| 34002 | | - /* 143 */ "CreateBtree" OpHelp("r[P2]=root iDb=P1 flags=P3"), |
| 34003 | | - /* 144 */ "SqlExec" OpHelp(""), |
| 34004 | | - /* 145 */ "ParseSchema" OpHelp(""), |
| 34005 | | - /* 146 */ "LoadAnalysis" OpHelp(""), |
| 34006 | | - /* 147 */ "DropTable" OpHelp(""), |
| 34007 | | - /* 148 */ "DropIndex" OpHelp(""), |
| 34008 | | - /* 149 */ "DropTrigger" OpHelp(""), |
| 34009 | | - /* 150 */ "IntegrityCk" OpHelp(""), |
| 34010 | | - /* 151 */ "RowSetAdd" OpHelp("rowset(P1)=r[P2]"), |
| 34013 | + /* 117 */ "SorterOpen" OpHelp(""), |
| 34014 | + /* 118 */ "SequenceTest" OpHelp("if( cursor[P1].ctr++ ) pc = P2"), |
| 34015 | + /* 119 */ "OpenPseudo" OpHelp("P3 columns in r[P2]"), |
| 34016 | + /* 120 */ "Close" OpHelp(""), |
| 34017 | + /* 121 */ "ColumnsUsed" OpHelp(""), |
| 34018 | + /* 122 */ "SeekScan" OpHelp("Scan-ahead up to P1 rows"), |
| 34019 | + /* 123 */ "SeekHit" OpHelp("set P2<=seekHit<=P3"), |
| 34020 | + /* 124 */ "Sequence" OpHelp("r[P2]=cursor[P1].ctr++"), |
| 34021 | + /* 125 */ "NewRowid" OpHelp("r[P2]=rowid"), |
| 34022 | + /* 126 */ "Insert" OpHelp("intkey=r[P3] data=r[P2]"), |
| 34023 | + /* 127 */ "RowCell" OpHelp(""), |
| 34024 | + /* 128 */ "Delete" OpHelp(""), |
| 34025 | + /* 129 */ "ResetCount" OpHelp(""), |
| 34026 | + /* 130 */ "SorterCompare" OpHelp("if key(P1)!=trim(r[P3],P4) goto P2"), |
| 34027 | + /* 131 */ "SorterData" OpHelp("r[P2]=data"), |
| 34028 | + /* 132 */ "RowData" OpHelp("r[P2]=data"), |
| 34029 | + /* 133 */ "Rowid" OpHelp("r[P2]=rowid"), |
| 34030 | + /* 134 */ "NullRow" OpHelp(""), |
| 34031 | + /* 135 */ "SeekEnd" OpHelp(""), |
| 34032 | + /* 136 */ "IdxInsert" OpHelp("key=r[P2]"), |
| 34033 | + /* 137 */ "SorterInsert" OpHelp("key=r[P2]"), |
| 34034 | + /* 138 */ "IdxDelete" OpHelp("key=r[P2@P3]"), |
| 34035 | + /* 139 */ "DeferredSeek" OpHelp("Move P3 to P1.rowid if needed"), |
| 34036 | + /* 140 */ "IdxRowid" OpHelp("r[P2]=rowid"), |
| 34037 | + /* 141 */ "FinishSeek" OpHelp(""), |
| 34038 | + /* 142 */ "Destroy" OpHelp(""), |
| 34039 | + /* 143 */ "Clear" OpHelp(""), |
| 34040 | + /* 144 */ "ResetSorter" OpHelp(""), |
| 34041 | + /* 145 */ "CreateBtree" OpHelp("r[P2]=root iDb=P1 flags=P3"), |
| 34042 | + /* 146 */ "SqlExec" OpHelp(""), |
| 34043 | + /* 147 */ "ParseSchema" OpHelp(""), |
| 34044 | + /* 148 */ "LoadAnalysis" OpHelp(""), |
| 34045 | + /* 149 */ "DropTable" OpHelp(""), |
| 34046 | + /* 150 */ "DropIndex" OpHelp(""), |
| 34047 | + /* 151 */ "DropTrigger" OpHelp(""), |
| 34011 | 34048 | /* 152 */ "Real" OpHelp("r[P2]=P4"), |
| 34012 | | - /* 153 */ "Param" OpHelp(""), |
| 34013 | | - /* 154 */ "FkCounter" OpHelp("fkctr[P1]+=P2"), |
| 34014 | | - /* 155 */ "MemMax" OpHelp("r[P1]=max(r[P1],r[P2])"), |
| 34015 | | - /* 156 */ "OffsetLimit" OpHelp("if r[P1]>0 then r[P2]=r[P1]+max(0,r[P3]) else r[P2]=(-1)"), |
| 34016 | | - /* 157 */ "AggInverse" OpHelp("accum=r[P3] inverse(r[P2@P5])"), |
| 34017 | | - /* 158 */ "AggStep" OpHelp("accum=r[P3] step(r[P2@P5])"), |
| 34018 | | - /* 159 */ "AggStep1" OpHelp("accum=r[P3] step(r[P2@P5])"), |
| 34019 | | - /* 160 */ "AggValue" OpHelp("r[P3]=value N=P2"), |
| 34020 | | - /* 161 */ "AggFinal" OpHelp("accum=r[P1] N=P2"), |
| 34021 | | - /* 162 */ "Expire" OpHelp(""), |
| 34022 | | - /* 163 */ "CursorLock" OpHelp(""), |
| 34023 | | - /* 164 */ "CursorUnlock" OpHelp(""), |
| 34024 | | - /* 165 */ "TableLock" OpHelp("iDb=P1 root=P2 write=P3"), |
| 34025 | | - /* 166 */ "VBegin" OpHelp(""), |
| 34026 | | - /* 167 */ "VCreate" OpHelp(""), |
| 34027 | | - /* 168 */ "VDestroy" OpHelp(""), |
| 34028 | | - /* 169 */ "VOpen" OpHelp(""), |
| 34029 | | - /* 170 */ "VColumn" OpHelp("r[P3]=vcolumn(P2)"), |
| 34030 | | - /* 171 */ "VRename" OpHelp(""), |
| 34031 | | - /* 172 */ "Pagecount" OpHelp(""), |
| 34032 | | - /* 173 */ "MaxPgcnt" OpHelp(""), |
| 34033 | | - /* 174 */ "Trace" OpHelp(""), |
| 34034 | | - /* 175 */ "CursorHint" OpHelp(""), |
| 34035 | | - /* 176 */ "ReleaseReg" OpHelp("release r[P1@P2] mask P3"), |
| 34036 | | - /* 177 */ "Noop" OpHelp(""), |
| 34037 | | - /* 178 */ "Explain" OpHelp(""), |
| 34038 | | - /* 179 */ "Abortable" OpHelp(""), |
| 34049 | + /* 153 */ "IntegrityCk" OpHelp(""), |
| 34050 | + /* 154 */ "RowSetAdd" OpHelp("rowset(P1)=r[P2]"), |
| 34051 | + /* 155 */ "Param" OpHelp(""), |
| 34052 | + /* 156 */ "FkCounter" OpHelp("fkctr[P1]+=P2"), |
| 34053 | + /* 157 */ "MemMax" OpHelp("r[P1]=max(r[P1],r[P2])"), |
| 34054 | + /* 158 */ "OffsetLimit" OpHelp("if r[P1]>0 then r[P2]=r[P1]+max(0,r[P3]) else r[P2]=(-1)"), |
| 34055 | + /* 159 */ "AggInverse" OpHelp("accum=r[P3] inverse(r[P2@P5])"), |
| 34056 | + /* 160 */ "AggStep" OpHelp("accum=r[P3] step(r[P2@P5])"), |
| 34057 | + /* 161 */ "AggStep1" OpHelp("accum=r[P3] step(r[P2@P5])"), |
| 34058 | + /* 162 */ "AggValue" OpHelp("r[P3]=value N=P2"), |
| 34059 | + /* 163 */ "AggFinal" OpHelp("accum=r[P1] N=P2"), |
| 34060 | + /* 164 */ "Expire" OpHelp(""), |
| 34061 | + /* 165 */ "CursorLock" OpHelp(""), |
| 34062 | + /* 166 */ "CursorUnlock" OpHelp(""), |
| 34063 | + /* 167 */ "TableLock" OpHelp("iDb=P1 root=P2 write=P3"), |
| 34064 | + /* 168 */ "VBegin" OpHelp(""), |
| 34065 | + /* 169 */ "VCreate" OpHelp(""), |
| 34066 | + /* 170 */ "VDestroy" OpHelp(""), |
| 34067 | + /* 171 */ "VOpen" OpHelp(""), |
| 34068 | + /* 172 */ "VColumn" OpHelp("r[P3]=vcolumn(P2)"), |
| 34069 | + /* 173 */ "VRename" OpHelp(""), |
| 34070 | + /* 174 */ "Pagecount" OpHelp(""), |
| 34071 | + /* 175 */ "MaxPgcnt" OpHelp(""), |
| 34072 | + /* 176 */ "Trace" OpHelp(""), |
| 34073 | + /* 177 */ "CursorHint" OpHelp(""), |
| 34074 | + /* 178 */ "ReleaseReg" OpHelp("release r[P1@P2] mask P3"), |
| 34075 | + /* 179 */ "Noop" OpHelp(""), |
| 34076 | + /* 180 */ "Explain" OpHelp(""), |
| 34077 | + /* 181 */ "Abortable" OpHelp(""), |
| 34039 | 34078 | }; |
| 34040 | 34079 | return azName[i]; |
| 34041 | 34080 | } |
| 34042 | 34081 | #endif |
| 34043 | 34082 | |
| | @@ -49846,15 +49885,18 @@ |
| 49846 | 49885 | if( p->szCache>=0 ){ |
| 49847 | 49886 | /* IMPLEMENTATION-OF: R-42059-47211 If the argument N is positive then the |
| 49848 | 49887 | ** suggested cache size is set to N. */ |
| 49849 | 49888 | return p->szCache; |
| 49850 | 49889 | }else{ |
| 49890 | + i64 n; |
| 49851 | 49891 | /* IMPLEMANTATION-OF: R-59858-46238 If the argument N is negative, then the |
| 49852 | 49892 | ** number of cache pages is adjusted to be a number of pages that would |
| 49853 | 49893 | ** use approximately abs(N*1024) bytes of memory based on the current |
| 49854 | 49894 | ** page size. */ |
| 49855 | | - return (int)((-1024*(i64)p->szCache)/(p->szPage+p->szExtra)); |
| 49895 | + n = ((-1024*(i64)p->szCache)/(p->szPage+p->szExtra)); |
| 49896 | + if( n>1000000000 ) n = 1000000000; |
| 49897 | + return (int)n; |
| 49856 | 49898 | } |
| 49857 | 49899 | } |
| 49858 | 49900 | |
| 49859 | 49901 | /*************************************************** General Interfaces ****** |
| 49860 | 49902 | ** |
| | @@ -51305,16 +51347,22 @@ |
| 51305 | 51347 | ** |
| 51306 | 51348 | ** Configure the cache_size limit for a cache. |
| 51307 | 51349 | */ |
| 51308 | 51350 | static void pcache1Cachesize(sqlite3_pcache *p, int nMax){ |
| 51309 | 51351 | PCache1 *pCache = (PCache1 *)p; |
| 51352 | + u32 n; |
| 51353 | + assert( nMax>=0 ); |
| 51310 | 51354 | if( pCache->bPurgeable ){ |
| 51311 | 51355 | PGroup *pGroup = pCache->pGroup; |
| 51312 | 51356 | pcache1EnterMutex(pGroup); |
| 51313 | | - pGroup->nMaxPage += (nMax - pCache->nMax); |
| 51357 | + n = (u32)nMax; |
| 51358 | + if( n > 0x7fff0000 - pGroup->nMaxPage + pCache->nMax ){ |
| 51359 | + n = 0x7fff0000 - pGroup->nMaxPage + pCache->nMax; |
| 51360 | + } |
| 51361 | + pGroup->nMaxPage += (n - pCache->nMax); |
| 51314 | 51362 | pGroup->mxPinned = pGroup->nMaxPage + 10 - pGroup->nMinPage; |
| 51315 | | - pCache->nMax = nMax; |
| 51363 | + pCache->nMax = n; |
| 51316 | 51364 | pCache->n90pct = pCache->nMax*9/10; |
| 51317 | 51365 | pcache1EnforceMaxPage(pCache); |
| 51318 | 51366 | pcache1LeaveMutex(pGroup); |
| 51319 | 51367 | } |
| 51320 | 51368 | } |
| | @@ -51326,11 +51374,11 @@ |
| 51326 | 51374 | */ |
| 51327 | 51375 | static void pcache1Shrink(sqlite3_pcache *p){ |
| 51328 | 51376 | PCache1 *pCache = (PCache1*)p; |
| 51329 | 51377 | if( pCache->bPurgeable ){ |
| 51330 | 51378 | PGroup *pGroup = pCache->pGroup; |
| 51331 | | - int savedMaxPage; |
| 51379 | + unsigned int savedMaxPage; |
| 51332 | 51380 | pcache1EnterMutex(pGroup); |
| 51333 | 51381 | savedMaxPage = pGroup->nMaxPage; |
| 51334 | 51382 | pGroup->nMaxPage = 0; |
| 51335 | 51383 | pcache1EnforceMaxPage(pCache); |
| 51336 | 51384 | pGroup->nMaxPage = savedMaxPage; |
| | @@ -68480,11 +68528,11 @@ |
| 68480 | 68528 | } |
| 68481 | 68529 | if( page1[19]>2 ){ |
| 68482 | 68530 | goto page1_init_failed; |
| 68483 | 68531 | } |
| 68484 | 68532 | |
| 68485 | | - /* If the write version is set to 2, this database should be accessed |
| 68533 | + /* If the read version is set to 2, this database should be accessed |
| 68486 | 68534 | ** in WAL mode. If the log is not already open, open it now. Then |
| 68487 | 68535 | ** return SQLITE_OK and return without populating BtShared.pPage1. |
| 68488 | 68536 | ** The caller detects this and calls this function again. This is |
| 68489 | 68537 | ** required as the version of page 1 currently in the page1 buffer |
| 68490 | 68538 | ** may not be the latest version - there may be a newer one in the log |
| | @@ -81883,13 +81931,13 @@ |
| 81883 | 81931 | /* |
| 81884 | 81932 | ** This routine is called the when a VDBE tries to halt. If the VDBE |
| 81885 | 81933 | ** has made changes and is in autocommit mode, then commit those |
| 81886 | 81934 | ** changes. If a rollback is needed, then do the rollback. |
| 81887 | 81935 | ** |
| 81888 | | -** This routine is the only way to move the state of a VM from |
| 81889 | | -** SQLITE_MAGIC_RUN to SQLITE_MAGIC_HALT. It is harmless to |
| 81890 | | -** call this on a VM that is in the SQLITE_MAGIC_HALT state. |
| 81936 | +** This routine is the only way to move the sqlite3eOpenState of a VM from |
| 81937 | +** SQLITE_STATE_RUN to SQLITE_STATE_HALT. It is harmless to |
| 81938 | +** call this on a VM that is in the SQLITE_STATE_HALT state. |
| 81891 | 81939 | ** |
| 81892 | 81940 | ** Return an error code. If the commit could not complete because of |
| 81893 | 81941 | ** lock contention, return SQLITE_BUSY. If SQLITE_BUSY is returned, it |
| 81894 | 81942 | ** means the close did not happen and needs to be repeated. |
| 81895 | 81943 | */ |
| | @@ -87051,10 +87099,23 @@ |
| 87051 | 87099 | pOut->flags = MEM_Int; |
| 87052 | 87100 | return pOut; |
| 87053 | 87101 | } |
| 87054 | 87102 | } |
| 87055 | 87103 | |
| 87104 | +/* |
| 87105 | +** Return the symbolic name for the data type of a pMem |
| 87106 | +*/ |
| 87107 | +static const char *vdbeMemTypeName(Mem *pMem){ |
| 87108 | + static const char *azTypes[] = { |
| 87109 | + /* SQLITE_INTEGER */ "INT", |
| 87110 | + /* SQLITE_FLOAT */ "REAL", |
| 87111 | + /* SQLITE_TEXT */ "TEXT", |
| 87112 | + /* SQLITE_BLOB */ "BLOB", |
| 87113 | + /* SQLITE_NULL */ "NULL" |
| 87114 | + }; |
| 87115 | + return azTypes[sqlite3_value_type(pMem)-1]; |
| 87116 | +} |
| 87056 | 87117 | |
| 87057 | 87118 | /* |
| 87058 | 87119 | ** Execute as much of a VDBE program as we can. |
| 87059 | 87120 | ** This is the core of sqlite3_step(). |
| 87060 | 87121 | */ |
| | @@ -88881,10 +88942,26 @@ |
| 88881 | 88942 | if( (pIn1->flags & MEM_Null)!=0 ){ |
| 88882 | 88943 | goto jump_to_p2; |
| 88883 | 88944 | } |
| 88884 | 88945 | break; |
| 88885 | 88946 | } |
| 88947 | + |
| 88948 | +/* Opcode: IsNullOrType P1 P2 P3 * * |
| 88949 | +** Synopsis: if typeof(r[P1]) IN (P3,5) goto P2 |
| 88950 | +** |
| 88951 | +** Jump to P2 if the value in register P1 is NULL or has a datatype P3. |
| 88952 | +** P3 is an integer which should be one of SQLITE_INTEGER, SQLITE_FLOAT, |
| 88953 | +** SQLITE_BLOB, SQLITE_NULL, or SQLITE_TEXT. |
| 88954 | +*/ |
| 88955 | +case OP_IsNullOrType: { /* jump, in1 */ |
| 88956 | + int doTheJump; |
| 88957 | + pIn1 = &aMem[pOp->p1]; |
| 88958 | + doTheJump = (pIn1->flags & MEM_Null)!=0 || sqlite3_value_type(pIn1)==pOp->p3; |
| 88959 | + VdbeBranchTaken( doTheJump, 2); |
| 88960 | + if( doTheJump ) goto jump_to_p2; |
| 88961 | + break; |
| 88962 | +} |
| 88886 | 88963 | |
| 88887 | 88964 | /* Opcode: ZeroOrNull P1 P2 P3 * * |
| 88888 | 88965 | ** Synopsis: r[P2] = 0 OR NULL |
| 88889 | 88966 | ** |
| 88890 | 88967 | ** If all both registers P1 and P3 are NOT NULL, then store a zero in |
| | @@ -89249,10 +89326,104 @@ |
| 89249 | 89326 | }else{ |
| 89250 | 89327 | rc = SQLITE_CORRUPT_BKPT; |
| 89251 | 89328 | goto abort_due_to_error; |
| 89252 | 89329 | } |
| 89253 | 89330 | } |
| 89331 | + |
| 89332 | +/* Opcode: TypeCheck P1 P2 * P4 * |
| 89333 | +** Synopsis: typecheck(r[P1@P2]) |
| 89334 | +** |
| 89335 | +** Apply affinities to the range of P2 registers beginning with P1. |
| 89336 | +** Take the affinities from the Table object in P4. If any value |
| 89337 | +** cannot be coerced into the correct type, then raise an error. |
| 89338 | +** |
| 89339 | +** This opcode is similar to OP_Affinity except that this opcode |
| 89340 | +** forces the register type to the Table column type. This is used |
| 89341 | +** to implement "strict affinity". |
| 89342 | +** |
| 89343 | +** Preconditions: |
| 89344 | +** |
| 89345 | +** <ul> |
| 89346 | +** <li> P2 should be the number of non-virtual columns in the |
| 89347 | +** table of P4. |
| 89348 | +** <li> Table P4 should be a STRICT table. |
| 89349 | +** </ul> |
| 89350 | +** |
| 89351 | +** If any precondition is false, an assertion fault occurs. |
| 89352 | +*/ |
| 89353 | +case OP_TypeCheck: { |
| 89354 | + Table *pTab; |
| 89355 | + Column *aCol; |
| 89356 | + int i; |
| 89357 | + |
| 89358 | + assert( pOp->p4type==P4_TABLE ); |
| 89359 | + pTab = pOp->p4.pTab; |
| 89360 | + assert( pTab->tabFlags & TF_Strict ); |
| 89361 | + assert( pTab->nNVCol==pOp->p2 ); |
| 89362 | + aCol = pTab->aCol; |
| 89363 | + pIn1 = &aMem[pOp->p1]; |
| 89364 | + for(i=0; i<pTab->nCol; i++){ |
| 89365 | + if( aCol[i].colFlags & COLFLAG_VIRTUAL ) continue; |
| 89366 | + assert( pIn1 < &aMem[pOp->p1+pOp->p2] ); |
| 89367 | + applyAffinity(pIn1, aCol[i].affinity, encoding); |
| 89368 | + if( (pIn1->flags & MEM_Null)==0 ){ |
| 89369 | + switch( aCol[i].eCType ){ |
| 89370 | + case COLTYPE_BLOB: { |
| 89371 | + if( (pIn1->flags & MEM_Blob)==0 ) goto vdbe_type_error; |
| 89372 | + break; |
| 89373 | + } |
| 89374 | + case COLTYPE_INTEGER: |
| 89375 | + case COLTYPE_INT: { |
| 89376 | + if( (pIn1->flags & MEM_Int)==0 ) goto vdbe_type_error; |
| 89377 | + break; |
| 89378 | + } |
| 89379 | + case COLTYPE_TEXT: { |
| 89380 | + if( (pIn1->flags & MEM_Str)==0 ) goto vdbe_type_error; |
| 89381 | + break; |
| 89382 | + } |
| 89383 | + case COLTYPE_REAL: { |
| 89384 | + if( pIn1->flags & MEM_Int ){ |
| 89385 | + /* When applying REAL affinity, if the result is still an MEM_Int |
| 89386 | + ** that will fit in 6 bytes, then change the type to MEM_IntReal |
| 89387 | + ** so that we keep the high-resolution integer value but know that |
| 89388 | + ** the type really wants to be REAL. */ |
| 89389 | + testcase( pIn1->u.i==140737488355328LL ); |
| 89390 | + testcase( pIn1->u.i==140737488355327LL ); |
| 89391 | + testcase( pIn1->u.i==-140737488355328LL ); |
| 89392 | + testcase( pIn1->u.i==-140737488355329LL ); |
| 89393 | + if( pIn1->u.i<=140737488355327LL && pIn1->u.i>=-140737488355328LL){ |
| 89394 | + pIn1->flags |= MEM_IntReal; |
| 89395 | + pIn1->flags &= ~MEM_Int; |
| 89396 | + }else{ |
| 89397 | + pIn1->u.r = (double)pIn1->u.i; |
| 89398 | + pIn1->flags |= MEM_Real; |
| 89399 | + pIn1->flags &= ~MEM_Int; |
| 89400 | + } |
| 89401 | + }else if( (pIn1->flags & MEM_Real)==0 ){ |
| 89402 | + goto vdbe_type_error; |
| 89403 | + } |
| 89404 | + break; |
| 89405 | + } |
| 89406 | + default: { |
| 89407 | + /* COLTYPE_ANY. Accept anything. */ |
| 89408 | + break; |
| 89409 | + } |
| 89410 | + } |
| 89411 | + } |
| 89412 | + REGISTER_TRACE((int)(pIn1-aMem), pIn1); |
| 89413 | + pIn1++; |
| 89414 | + } |
| 89415 | + assert( pIn1 == &aMem[pOp->p1+pOp->p2] ); |
| 89416 | + break; |
| 89417 | + |
| 89418 | +vdbe_type_error: |
| 89419 | + sqlite3VdbeError(p, "cannot store %s value in %s column %s.%s", |
| 89420 | + vdbeMemTypeName(pIn1), sqlite3StdType[aCol[i].eCType-1], |
| 89421 | + pTab->zName, aCol[i].zCnName); |
| 89422 | + rc = SQLITE_CONSTRAINT_DATATYPE; |
| 89423 | + goto abort_due_to_error; |
| 89424 | +} |
| 89254 | 89425 | |
| 89255 | 89426 | /* Opcode: Affinity P1 P2 * P4 * |
| 89256 | 89427 | ** Synopsis: affinity(r[P1@P2]) |
| 89257 | 89428 | ** |
| 89258 | 89429 | ** Apply affinities to a range of P2 registers starting with P1. |
| | @@ -92300,11 +92471,12 @@ |
| 92300 | 92471 | ** If P5 is not zero, then raise an SQLITE_CORRUPT_INDEX error |
| 92301 | 92472 | ** if no matching index entry is found. This happens when running |
| 92302 | 92473 | ** an UPDATE or DELETE statement and the index entry to be updated |
| 92303 | 92474 | ** or deleted is not found. For some uses of IdxDelete |
| 92304 | 92475 | ** (example: the EXCEPT operator) it does not matter that no matching |
| 92305 | | -** entry is found. For those cases, P5 is zero. |
| 92476 | +** entry is found. For those cases, P5 is zero. Also, do not raise |
| 92477 | +** this (self-correcting and non-critical) error if in writable_schema mode. |
| 92306 | 92478 | */ |
| 92307 | 92479 | case OP_IdxDelete: { |
| 92308 | 92480 | VdbeCursor *pC; |
| 92309 | 92481 | BtCursor *pCrsr; |
| 92310 | 92482 | int res; |
| | @@ -92326,11 +92498,11 @@ |
| 92326 | 92498 | rc = sqlite3BtreeIndexMoveto(pCrsr, &r, &res); |
| 92327 | 92499 | if( rc ) goto abort_due_to_error; |
| 92328 | 92500 | if( res==0 ){ |
| 92329 | 92501 | rc = sqlite3BtreeDelete(pCrsr, BTREE_AUXDELETE); |
| 92330 | 92502 | if( rc ) goto abort_due_to_error; |
| 92331 | | - }else if( pOp->p5 ){ |
| 92503 | + }else if( pOp->p5 && !sqlite3WritableSchema(db) ){ |
| 92332 | 92504 | rc = sqlite3ReportError(SQLITE_CORRUPT_INDEX, __LINE__, "index corruption"); |
| 92333 | 92505 | goto abort_due_to_error; |
| 92334 | 92506 | } |
| 92335 | 92507 | assert( pC->deferredMoveto==0 ); |
| 92336 | 92508 | pC->cacheStatus = CACHE_STALE; |
| | @@ -113942,11 +114114,11 @@ |
| 113942 | 114114 | |
| 113943 | 114115 | if( sType.n==0 ){ |
| 113944 | 114116 | /* If there is no type specified, columns have the default affinity |
| 113945 | 114117 | ** 'BLOB' with a default size of 4 bytes. */ |
| 113946 | 114118 | pCol->affinity = affinity; |
| 113947 | | - pCol->eType = eType; |
| 114119 | + pCol->eCType = eType; |
| 113948 | 114120 | pCol->szEst = szEst; |
| 113949 | 114121 | #ifdef SQLITE_ENABLE_SORTER_REFERENCES |
| 113950 | 114122 | if( affinity==SQLITE_AFF_BLOB ){ |
| 113951 | 114123 | if( 4>=sqlite3GlobalConfig.szSorterRef ){ |
| 113952 | 114124 | pCol->colFlags |= COLFLAG_SORTERREF; |
| | @@ -114237,11 +114409,11 @@ |
| 114237 | 114409 | } |
| 114238 | 114410 | } |
| 114239 | 114411 | } |
| 114240 | 114412 | if( nTerm==1 |
| 114241 | 114413 | && pCol |
| 114242 | | - && pCol->eType==COLTYPE_INTEGER |
| 114414 | + && pCol->eCType==COLTYPE_INTEGER |
| 114243 | 114415 | && sortOrder!=SQLITE_SO_DESC |
| 114244 | 114416 | ){ |
| 114245 | 114417 | if( IN_RENAME_OBJECT && pList ){ |
| 114246 | 114418 | Expr *pCExpr = sqlite3ExprSkipCollate(pList->a[0].pExpr); |
| 114247 | 114419 | sqlite3RenameTokenRemap(pParse, &pTab->iPKey, pCExpr); |
| | @@ -114709,11 +114881,13 @@ |
| 114709 | 114881 | |
| 114710 | 114882 | /* Mark every PRIMARY KEY column as NOT NULL (except for imposter tables) |
| 114711 | 114883 | */ |
| 114712 | 114884 | if( !db->init.imposterTable ){ |
| 114713 | 114885 | for(i=0; i<pTab->nCol; i++){ |
| 114714 | | - if( (pTab->aCol[i].colFlags & COLFLAG_PRIMKEY)!=0 ){ |
| 114886 | + if( (pTab->aCol[i].colFlags & COLFLAG_PRIMKEY)!=0 |
| 114887 | + && (pTab->aCol[i].notNull==OE_None) |
| 114888 | + ){ |
| 114715 | 114889 | pTab->aCol[i].notNull = OE_Abort; |
| 114716 | 114890 | } |
| 114717 | 114891 | } |
| 114718 | 114892 | pTab->tabFlags |= TF_HasNotNull; |
| 114719 | 114893 | } |
| | @@ -114942,11 +115116,11 @@ |
| 114942 | 115116 | */ |
| 114943 | 115117 | SQLITE_PRIVATE void sqlite3EndTable( |
| 114944 | 115118 | Parse *pParse, /* Parse context */ |
| 114945 | 115119 | Token *pCons, /* The ',' token after the last column defn. */ |
| 114946 | 115120 | Token *pEnd, /* The ')' before options in the CREATE TABLE */ |
| 114947 | | - u8 tabOpts, /* Extra table options. Usually 0. */ |
| 115121 | + u32 tabOpts, /* Extra table options. Usually 0. */ |
| 114948 | 115122 | Select *pSelect /* Select from a "CREATE ... AS SELECT" */ |
| 114949 | 115123 | ){ |
| 114950 | 115124 | Table *p; /* The new table */ |
| 114951 | 115125 | sqlite3 *db = pParse->db; /* The database connection */ |
| 114952 | 115126 | int iDb; /* Database in which the table lives */ |
| | @@ -114977,10 +115151,48 @@ |
| 114977 | 115151 | return; |
| 114978 | 115152 | } |
| 114979 | 115153 | p->tnum = db->init.newTnum; |
| 114980 | 115154 | if( p->tnum==1 ) p->tabFlags |= TF_Readonly; |
| 114981 | 115155 | } |
| 115156 | + |
| 115157 | + /* Special processing for tables that include the STRICT keyword: |
| 115158 | + ** |
| 115159 | + ** * Do not allow custom column datatypes. Every column must have |
| 115160 | + ** a datatype that is one of INT, INTEGER, REAL, TEXT, or BLOB. |
| 115161 | + ** |
| 115162 | + ** * If a PRIMARY KEY is defined, other than the INTEGER PRIMARY KEY, |
| 115163 | + ** then all columns of the PRIMARY KEY must have a NOT NULL |
| 115164 | + ** constraint. |
| 115165 | + */ |
| 115166 | + if( tabOpts & TF_Strict ){ |
| 115167 | + int ii; |
| 115168 | + p->tabFlags |= TF_Strict; |
| 115169 | + for(ii=0; ii<p->nCol; ii++){ |
| 115170 | + Column *pCol = &p->aCol[ii]; |
| 115171 | + if( pCol->eCType==COLTYPE_CUSTOM ){ |
| 115172 | + if( pCol->colFlags & COLFLAG_HASTYPE ){ |
| 115173 | + sqlite3ErrorMsg(pParse, |
| 115174 | + "unknown datatype for %s.%s: \"%s\"", |
| 115175 | + p->zName, pCol->zCnName, sqlite3ColumnType(pCol, "") |
| 115176 | + ); |
| 115177 | + }else{ |
| 115178 | + sqlite3ErrorMsg(pParse, "missing datatype for %s.%s", |
| 115179 | + p->zName, pCol->zCnName); |
| 115180 | + } |
| 115181 | + return; |
| 115182 | + }else if( pCol->eCType==COLTYPE_ANY ){ |
| 115183 | + pCol->affinity = SQLITE_AFF_BLOB; |
| 115184 | + } |
| 115185 | + if( (pCol->colFlags & COLFLAG_PRIMKEY)!=0 |
| 115186 | + && p->iPKey!=ii |
| 115187 | + && pCol->notNull == OE_None |
| 115188 | + ){ |
| 115189 | + pCol->notNull = OE_Abort; |
| 115190 | + p->tabFlags |= TF_HasNotNull; |
| 115191 | + } |
| 115192 | + } |
| 115193 | + } |
| 114982 | 115194 | |
| 114983 | 115195 | assert( (p->tabFlags & TF_HasPrimaryKey)==0 |
| 114984 | 115196 | || p->iPKey>=0 || sqlite3PrimaryKeyIndex(p)!=0 ); |
| 114985 | 115197 | assert( (p->tabFlags & TF_HasPrimaryKey)!=0 |
| 114986 | 115198 | || (p->iPKey<0 && sqlite3PrimaryKeyIndex(p)==0) ); |
| | @@ -123286,32 +123498,72 @@ |
| 123286 | 123498 | |
| 123287 | 123499 | return pIdx->zColAff; |
| 123288 | 123500 | } |
| 123289 | 123501 | |
| 123290 | 123502 | /* |
| 123503 | +** Make changes to the evolving bytecode to do affinity transformations |
| 123504 | +** of values that are about to be gathered into a row for table pTab. |
| 123505 | +** |
| 123506 | +** For ordinary (legacy, non-strict) tables: |
| 123507 | +** ----------------------------------------- |
| 123508 | +** |
| 123291 | 123509 | ** Compute the affinity string for table pTab, if it has not already been |
| 123292 | 123510 | ** computed. As an optimization, omit trailing SQLITE_AFF_BLOB affinities. |
| 123293 | 123511 | ** |
| 123294 | | -** If the affinity exists (if it is not entirely SQLITE_AFF_BLOB values) and |
| 123295 | | -** if iReg>0 then code an OP_Affinity opcode that will set the affinities |
| 123296 | | -** for register iReg and following. Or if affinities exists and iReg==0, |
| 123512 | +** If the affinity string is empty (because it was all SQLITE_AFF_BLOB entries |
| 123513 | +** which were then optimized out) then this routine becomes a no-op. |
| 123514 | +** |
| 123515 | +** Otherwise if iReg>0 then code an OP_Affinity opcode that will set the |
| 123516 | +** affinities for register iReg and following. Or if iReg==0, |
| 123297 | 123517 | ** then just set the P4 operand of the previous opcode (which should be |
| 123298 | 123518 | ** an OP_MakeRecord) to the affinity string. |
| 123299 | 123519 | ** |
| 123300 | 123520 | ** A column affinity string has one character per column: |
| 123301 | 123521 | ** |
| 123302 | | -** Character Column affinity |
| 123303 | | -** ------------------------------ |
| 123304 | | -** 'A' BLOB |
| 123305 | | -** 'B' TEXT |
| 123306 | | -** 'C' NUMERIC |
| 123307 | | -** 'D' INTEGER |
| 123308 | | -** 'E' REAL |
| 123522 | +** Character Column affinity |
| 123523 | +** --------- --------------- |
| 123524 | +** 'A' BLOB |
| 123525 | +** 'B' TEXT |
| 123526 | +** 'C' NUMERIC |
| 123527 | +** 'D' INTEGER |
| 123528 | +** 'E' REAL |
| 123529 | +** |
| 123530 | +** For STRICT tables: |
| 123531 | +** ------------------ |
| 123532 | +** |
| 123533 | +** Generate an appropropriate OP_TypeCheck opcode that will verify the |
| 123534 | +** datatypes against the column definitions in pTab. If iReg==0, that |
| 123535 | +** means an OP_MakeRecord opcode has already been generated and should be |
| 123536 | +** the last opcode generated. The new OP_TypeCheck needs to be inserted |
| 123537 | +** before the OP_MakeRecord. The new OP_TypeCheck should use the same |
| 123538 | +** register set as the OP_MakeRecord. If iReg>0 then register iReg is |
| 123539 | +** the first of a series of registers that will form the new record. |
| 123540 | +** Apply the type checking to that array of registers. |
| 123309 | 123541 | */ |
| 123310 | 123542 | SQLITE_PRIVATE void sqlite3TableAffinity(Vdbe *v, Table *pTab, int iReg){ |
| 123311 | 123543 | int i, j; |
| 123312 | | - char *zColAff = pTab->zColAff; |
| 123544 | + char *zColAff; |
| 123545 | + if( pTab->tabFlags & TF_Strict ){ |
| 123546 | + if( iReg==0 ){ |
| 123547 | + /* Move the previous opcode (which should be OP_MakeRecord) forward |
| 123548 | + ** by one slot and insert a new OP_TypeCheck where the current |
| 123549 | + ** OP_MakeRecord is found */ |
| 123550 | + VdbeOp *pPrev; |
| 123551 | + sqlite3VdbeAppendP4(v, pTab, P4_TABLE); |
| 123552 | + pPrev = sqlite3VdbeGetOp(v, -1); |
| 123553 | + assert( pPrev!=0 ); |
| 123554 | + assert( pPrev->opcode==OP_MakeRecord || sqlite3VdbeDb(v)->mallocFailed ); |
| 123555 | + pPrev->opcode = OP_TypeCheck; |
| 123556 | + sqlite3VdbeAddOp3(v, OP_MakeRecord, pPrev->p1, pPrev->p2, pPrev->p3); |
| 123557 | + }else{ |
| 123558 | + /* Insert an isolated OP_Typecheck */ |
| 123559 | + sqlite3VdbeAddOp2(v, OP_TypeCheck, iReg, pTab->nNVCol); |
| 123560 | + sqlite3VdbeAppendP4(v, pTab, P4_TABLE); |
| 123561 | + } |
| 123562 | + return; |
| 123563 | + } |
| 123564 | + zColAff = pTab->zColAff; |
| 123313 | 123565 | if( zColAff==0 ){ |
| 123314 | 123566 | sqlite3 *db = sqlite3VdbeDb(v); |
| 123315 | 123567 | zColAff = (char *)sqlite3DbMallocRaw(0, pTab->nCol+1); |
| 123316 | 123568 | if( !zColAff ){ |
| 123317 | 123569 | sqlite3OomFault(db); |
| | @@ -123333,10 +123585,12 @@ |
| 123333 | 123585 | i = sqlite3Strlen30NN(zColAff); |
| 123334 | 123586 | if( i ){ |
| 123335 | 123587 | if( iReg ){ |
| 123336 | 123588 | sqlite3VdbeAddOp4(v, OP_Affinity, iReg, i, 0, zColAff, i); |
| 123337 | 123589 | }else{ |
| 123590 | + assert( sqlite3VdbeGetOp(v, -1)->opcode==OP_MakeRecord |
| 123591 | + || sqlite3VdbeDb(v)->mallocFailed ); |
| 123338 | 123592 | sqlite3VdbeChangeP4(v, -1, zColAff, i); |
| 123339 | 123593 | } |
| 123340 | 123594 | } |
| 123341 | 123595 | } |
| 123342 | 123596 | |
| | @@ -125970,10 +126224,13 @@ |
| 125970 | 126224 | if( pDest->nCol!=pSrc->nCol ){ |
| 125971 | 126225 | return 0; /* Number of columns must be the same in tab1 and tab2 */ |
| 125972 | 126226 | } |
| 125973 | 126227 | if( pDest->iPKey!=pSrc->iPKey ){ |
| 125974 | 126228 | return 0; /* Both tables must have the same INTEGER PRIMARY KEY */ |
| 126229 | + } |
| 126230 | + if( (pDest->tabFlags & TF_Strict)!=0 && (pSrc->tabFlags & TF_Strict)==0 ){ |
| 126231 | + return 0; /* Cannot feed from a non-strict into a strict table */ |
| 125975 | 126232 | } |
| 125976 | 126233 | for(i=0; i<pDest->nCol; i++){ |
| 125977 | 126234 | Column *pDestCol = &pDest->aCol[i]; |
| 125978 | 126235 | Column *pSrcCol = &pSrc->aCol[i]; |
| 125979 | 126236 | #ifdef SQLITE_ENABLE_HIDDEN_COLUMNS |
| | @@ -130237,10 +130494,11 @@ |
| 130237 | 130494 | Index *pIdx, *pPk; |
| 130238 | 130495 | Index *pPrior = 0; |
| 130239 | 130496 | int loopTop; |
| 130240 | 130497 | int iDataCur, iIdxCur; |
| 130241 | 130498 | int r1 = -1; |
| 130499 | + int bStrict; |
| 130242 | 130500 | |
| 130243 | 130501 | if( pTab->tnum<1 ) continue; /* Skip VIEWs or VIRTUAL TABLEs */ |
| 130244 | 130502 | if( pObjTab && pObjTab!=pTab ) continue; |
| 130245 | 130503 | pPk = HasRowid(pTab) ? 0 : sqlite3PrimaryKeyIndex(pTab); |
| 130246 | 130504 | sqlite3OpenTableAndIndices(pParse, pTab, OP_OpenRead, 0, |
| | @@ -130258,27 +130516,50 @@ |
| 130258 | 130516 | loopTop = sqlite3VdbeAddOp2(v, OP_AddImm, 7, 1); |
| 130259 | 130517 | if( !isQuick ){ |
| 130260 | 130518 | /* Sanity check on record header decoding */ |
| 130261 | 130519 | sqlite3VdbeAddOp3(v, OP_Column, iDataCur, pTab->nNVCol-1,3); |
| 130262 | 130520 | sqlite3VdbeChangeP5(v, OPFLAG_TYPEOFARG); |
| 130521 | + VdbeComment((v, "(right-most column)")); |
| 130263 | 130522 | } |
| 130264 | | - /* Verify that all NOT NULL columns really are NOT NULL */ |
| 130523 | + /* Verify that all NOT NULL columns really are NOT NULL. At the |
| 130524 | + ** same time verify the type of the content of STRICT tables */ |
| 130525 | + bStrict = (pTab->tabFlags & TF_Strict)!=0; |
| 130265 | 130526 | for(j=0; j<pTab->nCol; j++){ |
| 130266 | 130527 | char *zErr; |
| 130267 | | - int jmp2; |
| 130528 | + Column *pCol = pTab->aCol + j; |
| 130529 | + int doError, jmp2; |
| 130268 | 130530 | if( j==pTab->iPKey ) continue; |
| 130269 | | - if( pTab->aCol[j].notNull==0 ) continue; |
| 130531 | + if( pCol->notNull==0 && !bStrict ) continue; |
| 130532 | + doError = bStrict ? sqlite3VdbeMakeLabel(pParse) : 0; |
| 130270 | 130533 | sqlite3ExprCodeGetColumnOfTable(v, pTab, iDataCur, j, 3); |
| 130271 | 130534 | if( sqlite3VdbeGetOp(v,-1)->opcode==OP_Column ){ |
| 130272 | 130535 | sqlite3VdbeChangeP5(v, OPFLAG_TYPEOFARG); |
| 130273 | 130536 | } |
| 130274 | | - jmp2 = sqlite3VdbeAddOp1(v, OP_NotNull, 3); VdbeCoverage(v); |
| 130275 | | - zErr = sqlite3MPrintf(db, "NULL value in %s.%s", pTab->zName, |
| 130276 | | - pTab->aCol[j].zCnName); |
| 130277 | | - sqlite3VdbeAddOp4(v, OP_String8, 0, 3, 0, zErr, P4_DYNAMIC); |
| 130278 | | - integrityCheckResultRow(v); |
| 130279 | | - sqlite3VdbeJumpHere(v, jmp2); |
| 130537 | + if( pCol->notNull ){ |
| 130538 | + jmp2 = sqlite3VdbeAddOp1(v, OP_NotNull, 3); VdbeCoverage(v); |
| 130539 | + zErr = sqlite3MPrintf(db, "NULL value in %s.%s", pTab->zName, |
| 130540 | + pCol->zCnName); |
| 130541 | + sqlite3VdbeAddOp4(v, OP_String8, 0, 3, 0, zErr, P4_DYNAMIC); |
| 130542 | + if( bStrict ){ |
| 130543 | + sqlite3VdbeGoto(v, doError); |
| 130544 | + }else{ |
| 130545 | + integrityCheckResultRow(v); |
| 130546 | + } |
| 130547 | + sqlite3VdbeJumpHere(v, jmp2); |
| 130548 | + } |
| 130549 | + if( pTab->tabFlags & TF_Strict ){ |
| 130550 | + jmp2 = sqlite3VdbeAddOp3(v, OP_IsNullOrType, 3, 0, |
| 130551 | + sqlite3StdTypeMap[pCol->eCType-1]); |
| 130552 | + VdbeCoverage(v); |
| 130553 | + zErr = sqlite3MPrintf(db, "non-%s value in %s.%s", |
| 130554 | + sqlite3StdType[pCol->eCType-1], |
| 130555 | + pTab->zName, pTab->aCol[j].zCnName); |
| 130556 | + sqlite3VdbeAddOp4(v, OP_String8, 0, 3, 0, zErr, P4_DYNAMIC); |
| 130557 | + sqlite3VdbeResolveLabel(v, doError); |
| 130558 | + integrityCheckResultRow(v); |
| 130559 | + sqlite3VdbeJumpHere(v, jmp2); |
| 130560 | + } |
| 130280 | 130561 | } |
| 130281 | 130562 | /* Verify CHECK constraints */ |
| 130282 | 130563 | if( pTab->pCheck && (db->flags & SQLITE_IgnoreChecks)==0 ){ |
| 130283 | 130564 | ExprList *pCheck = sqlite3ExprListDup(db, pTab->pCheck, 0); |
| 130284 | 130565 | if( db->mallocFailed==0 ){ |
| | @@ -134401,11 +134682,11 @@ |
| 134401 | 134682 | pCol->colFlags |= COLFLAG_HASTYPE; |
| 134402 | 134683 | } |
| 134403 | 134684 | } |
| 134404 | 134685 | if( pCol->affinity<=SQLITE_AFF_NONE ) pCol->affinity = aff; |
| 134405 | 134686 | pColl = sqlite3ExprCollSeq(pParse, p); |
| 134406 | | - if( pColl && (pCol->colFlags & COLFLAG_HASCOLL)==0 ){ |
| 134687 | + if( pColl ){ |
| 134407 | 134688 | assert( pTab->pIndex==0 ); |
| 134408 | 134689 | sqlite3ColumnSetColl(db, pCol, pColl->zName); |
| 134409 | 134690 | } |
| 134410 | 134691 | } |
| 134411 | 134692 | pTab->szTabRow = 1; /* Any non-zero value works */ |
| | @@ -135223,11 +135504,15 @@ |
| 135223 | 135504 | } |
| 135224 | 135505 | |
| 135225 | 135506 | multi_select_end: |
| 135226 | 135507 | pDest->iSdst = dest.iSdst; |
| 135227 | 135508 | pDest->nSdst = dest.nSdst; |
| 135228 | | - sqlite3SelectDelete(db, pDelete); |
| 135509 | + if( pDelete ){ |
| 135510 | + sqlite3ParserAddCleanup(pParse, |
| 135511 | + (void(*)(sqlite3*,void*))sqlite3SelectDelete, |
| 135512 | + pDelete); |
| 135513 | + } |
| 135229 | 135514 | return rc; |
| 135230 | 135515 | } |
| 135231 | 135516 | #endif /* SQLITE_OMIT_COMPOUND_SELECT */ |
| 135232 | 135517 | |
| 135233 | 135518 | /* |
| | @@ -138791,11 +139076,12 @@ |
| 138791 | 139076 | |
| 138792 | 139077 | /* Make copies of constant WHERE-clause terms in the outer query down |
| 138793 | 139078 | ** inside the subquery. This can help the subquery to run more efficiently. |
| 138794 | 139079 | */ |
| 138795 | 139080 | if( OptimizationEnabled(db, SQLITE_PushDown) |
| 138796 | | - && (pItem->fg.isCte==0 || pItem->u2.pCteUse->eM10d!=M10d_Yes) |
| 139081 | + && (pItem->fg.isCte==0 |
| 139082 | + || (pItem->u2.pCteUse->eM10d!=M10d_Yes && pItem->u2.pCteUse->nUse<2)) |
| 138797 | 139083 | && pushDownWhereTerms(pParse, pSub, p->pWhere, pItem->iCursor, |
| 138798 | 139084 | (pItem->fg.jointype & JT_OUTER)!=0) |
| 138799 | 139085 | ){ |
| 138800 | 139086 | #if SELECTTRACE_ENABLED |
| 138801 | 139087 | if( sqlite3SelectTrace & 0x100 ){ |
| | @@ -138852,10 +139138,11 @@ |
| 138852 | 139138 | ** holds the result of the materialization. */ |
| 138853 | 139139 | CteUse *pCteUse = pItem->u2.pCteUse; |
| 138854 | 139140 | sqlite3VdbeAddOp2(v, OP_Gosub, pCteUse->regRtn, pCteUse->addrM9e); |
| 138855 | 139141 | if( pItem->iCursor!=pCteUse->iCur ){ |
| 138856 | 139142 | sqlite3VdbeAddOp2(v, OP_OpenDup, pItem->iCursor, pCteUse->iCur); |
| 139143 | + VdbeComment((v, "%!S", pItem)); |
| 138857 | 139144 | } |
| 138858 | 139145 | pSub->nSelectRow = pCteUse->nRowEst; |
| 138859 | 139146 | }else if( (pPrior = isSelfJoinView(pTabList, pItem))!=0 ){ |
| 138860 | 139147 | /* This view has already been materialized by a prior entry in |
| 138861 | 139148 | ** this same FROM clause. Reuse it. */ |
| | @@ -143567,11 +143854,12 @@ |
| 143567 | 143854 | SQLITE_PRIVATE void sqlite3VtabUnlock(VTable *pVTab){ |
| 143568 | 143855 | sqlite3 *db = pVTab->db; |
| 143569 | 143856 | |
| 143570 | 143857 | assert( db ); |
| 143571 | 143858 | assert( pVTab->nRef>0 ); |
| 143572 | | - assert( db->magic==SQLITE_MAGIC_OPEN || db->magic==SQLITE_MAGIC_ZOMBIE ); |
| 143859 | + assert( db->eOpenState==SQLITE_STATE_OPEN |
| 143860 | + || db->eOpenState==SQLITE_STATE_ZOMBIE ); |
| 143573 | 143861 | |
| 143574 | 143862 | pVTab->nRef--; |
| 143575 | 143863 | if( pVTab->nRef==0 ){ |
| 143576 | 143864 | sqlite3_vtab *p = pVTab->pVtab; |
| 143577 | 143865 | sqlite3VtabModuleUnref(pVTab->db, pVTab->pMod); |
| | @@ -146799,13 +147087,10 @@ |
| 146799 | 147087 | if( iRowidReg!=iReleaseReg ) sqlite3ReleaseTempReg(pParse, iReleaseReg); |
| 146800 | 147088 | addrNxt = pLevel->addrNxt; |
| 146801 | 147089 | sqlite3VdbeAddOp3(v, OP_SeekRowid, iCur, addrNxt, iRowidReg); |
| 146802 | 147090 | VdbeCoverage(v); |
| 146803 | 147091 | pLevel->op = OP_Noop; |
| 146804 | | - if( (pTerm->prereqAll & pLevel->notReady)==0 ){ |
| 146805 | | - pTerm->wtFlags |= TERM_CODED; |
| 146806 | | - } |
| 146807 | 147092 | }else if( (pLoop->wsFlags & WHERE_IPK)!=0 |
| 146808 | 147093 | && (pLoop->wsFlags & WHERE_COLUMN_RANGE)!=0 |
| 146809 | 147094 | ){ |
| 146810 | 147095 | /* Case 3: We have an inequality comparison against the ROWID field. |
| 146811 | 147096 | */ |
| | @@ -151458,11 +151743,12 @@ |
| 151458 | 151743 | } |
| 151459 | 151744 | |
| 151460 | 151745 | /* |
| 151461 | 151746 | ** Return TRUE if all of the following are true: |
| 151462 | 151747 | ** |
| 151463 | | -** (1) X has the same or lower cost that Y |
| 151748 | +** (1) X has the same or lower cost, or returns the same or fewer rows, |
| 151749 | +** than Y. |
| 151464 | 151750 | ** (2) X uses fewer WHERE clause terms than Y |
| 151465 | 151751 | ** (3) Every WHERE clause term used by X is also used by Y |
| 151466 | 151752 | ** (4) X skips at least as many columns as Y |
| 151467 | 151753 | ** (5) If X is a covering index, than Y is too |
| 151468 | 151754 | ** |
| | @@ -151481,15 +151767,12 @@ |
| 151481 | 151767 | ){ |
| 151482 | 151768 | int i, j; |
| 151483 | 151769 | if( pX->nLTerm-pX->nSkip >= pY->nLTerm-pY->nSkip ){ |
| 151484 | 151770 | return 0; /* X is not a subset of Y */ |
| 151485 | 151771 | } |
| 151772 | + if( pX->rRun>pY->rRun && pX->nOut>pY->nOut ) return 0; |
| 151486 | 151773 | if( pY->nSkip > pX->nSkip ) return 0; |
| 151487 | | - if( pX->rRun >= pY->rRun ){ |
| 151488 | | - if( pX->rRun > pY->rRun ) return 0; /* X costs more than Y */ |
| 151489 | | - if( pX->nOut > pY->nOut ) return 0; /* X costs more than Y */ |
| 151490 | | - } |
| 151491 | 151774 | for(i=pX->nLTerm-1; i>=0; i--){ |
| 151492 | 151775 | if( pX->aLTerm[i]==0 ) continue; |
| 151493 | 151776 | for(j=pY->nLTerm-1; j>=0; j--){ |
| 151494 | 151777 | if( pY->aLTerm[j]==pX->aLTerm[i] ) break; |
| 151495 | 151778 | } |
| | @@ -151501,12 +151784,12 @@ |
| 151501 | 151784 | } |
| 151502 | 151785 | return 1; /* All conditions meet */ |
| 151503 | 151786 | } |
| 151504 | 151787 | |
| 151505 | 151788 | /* |
| 151506 | | -** Try to adjust the cost of WhereLoop pTemplate upwards or downwards so |
| 151507 | | -** that: |
| 151789 | +** Try to adjust the cost and number of output rows of WhereLoop pTemplate |
| 151790 | +** upwards or downwards so that: |
| 151508 | 151791 | ** |
| 151509 | 151792 | ** (1) pTemplate costs less than any other WhereLoops that are a proper |
| 151510 | 151793 | ** subset of pTemplate |
| 151511 | 151794 | ** |
| 151512 | 151795 | ** (2) pTemplate costs more than any other WhereLoops for which pTemplate |
| | @@ -151523,20 +151806,24 @@ |
| 151523 | 151806 | if( (p->wsFlags & WHERE_INDEXED)==0 ) continue; |
| 151524 | 151807 | if( whereLoopCheaperProperSubset(p, pTemplate) ){ |
| 151525 | 151808 | /* Adjust pTemplate cost downward so that it is cheaper than its |
| 151526 | 151809 | ** subset p. */ |
| 151527 | 151810 | WHERETRACE(0x80,("subset cost adjustment %d,%d to %d,%d\n", |
| 151528 | | - pTemplate->rRun, pTemplate->nOut, p->rRun, p->nOut-1)); |
| 151529 | | - pTemplate->rRun = p->rRun; |
| 151530 | | - pTemplate->nOut = p->nOut - 1; |
| 151811 | + pTemplate->rRun, pTemplate->nOut, |
| 151812 | + MIN(p->rRun, pTemplate->rRun), |
| 151813 | + MIN(p->nOut - 1, pTemplate->nOut))); |
| 151814 | + pTemplate->rRun = MIN(p->rRun, pTemplate->rRun); |
| 151815 | + pTemplate->nOut = MIN(p->nOut - 1, pTemplate->nOut); |
| 151531 | 151816 | }else if( whereLoopCheaperProperSubset(pTemplate, p) ){ |
| 151532 | 151817 | /* Adjust pTemplate cost upward so that it is costlier than p since |
| 151533 | 151818 | ** pTemplate is a proper subset of p */ |
| 151534 | 151819 | WHERETRACE(0x80,("subset cost adjustment %d,%d to %d,%d\n", |
| 151535 | | - pTemplate->rRun, pTemplate->nOut, p->rRun, p->nOut+1)); |
| 151536 | | - pTemplate->rRun = p->rRun; |
| 151537 | | - pTemplate->nOut = p->nOut + 1; |
| 151820 | + pTemplate->rRun, pTemplate->nOut, |
| 151821 | + MAX(p->rRun, pTemplate->rRun), |
| 151822 | + MAX(p->nOut + 1, pTemplate->nOut))); |
| 151823 | + pTemplate->rRun = MAX(p->rRun, pTemplate->rRun); |
| 151824 | + pTemplate->nOut = MAX(p->nOut + 1, pTemplate->nOut); |
| 151538 | 151825 | } |
| 151539 | 151826 | } |
| 151540 | 151827 | } |
| 151541 | 151828 | |
| 151542 | 151829 | /* |
| | @@ -158474,12 +158761,12 @@ |
| 158474 | 158761 | #define TK_EXISTS 20 |
| 158475 | 158762 | #define TK_TEMP 21 |
| 158476 | 158763 | #define TK_LP 22 |
| 158477 | 158764 | #define TK_RP 23 |
| 158478 | 158765 | #define TK_AS 24 |
| 158479 | | -#define TK_WITHOUT 25 |
| 158480 | | -#define TK_COMMA 26 |
| 158766 | +#define TK_COMMA 25 |
| 158767 | +#define TK_WITHOUT 26 |
| 158481 | 158768 | #define TK_ABORT 27 |
| 158482 | 158769 | #define TK_ACTION 28 |
| 158483 | 158770 | #define TK_AFTER 29 |
| 158484 | 158771 | #define TK_ANALYZE 30 |
| 158485 | 158772 | #define TK_ASC 31 |
| | @@ -158692,33 +158979,34 @@ |
| 158692 | 158979 | #ifndef INTERFACE |
| 158693 | 158980 | # define INTERFACE 1 |
| 158694 | 158981 | #endif |
| 158695 | 158982 | /************* Begin control #defines *****************************************/ |
| 158696 | 158983 | #define YYCODETYPE unsigned short int |
| 158697 | | -#define YYNOCODE 317 |
| 158984 | +#define YYNOCODE 318 |
| 158698 | 158985 | #define YYACTIONTYPE unsigned short int |
| 158699 | 158986 | #define YYWILDCARD 101 |
| 158700 | 158987 | #define sqlite3ParserTOKENTYPE Token |
| 158701 | 158988 | typedef union { |
| 158702 | 158989 | int yyinit; |
| 158703 | 158990 | sqlite3ParserTOKENTYPE yy0; |
| 158704 | | - Window* yy49; |
| 158705 | | - ExprList* yy70; |
| 158706 | | - Select* yy81; |
| 158707 | | - With* yy103; |
| 158708 | | - struct FrameBound yy117; |
| 158709 | | - struct {int value; int mask;} yy139; |
| 158710 | | - SrcList* yy153; |
| 158711 | | - TriggerStep* yy157; |
| 158712 | | - Upsert* yy190; |
| 158713 | | - struct TrigEvent yy262; |
| 158714 | | - Cte* yy329; |
| 158715 | | - int yy376; |
| 158716 | | - Expr* yy404; |
| 158717 | | - IdList* yy436; |
| 158718 | | - const char* yy504; |
| 158719 | | - u8 yy552; |
| 158991 | + With* yy43; |
| 158992 | + u32 yy51; |
| 158993 | + int yy64; |
| 158994 | + struct FrameBound yy81; |
| 158995 | + struct {int value; int mask;} yy83; |
| 158996 | + TriggerStep* yy95; |
| 158997 | + Upsert* yy138; |
| 158998 | + IdList* yy240; |
| 158999 | + Cte* yy255; |
| 159000 | + Select* yy303; |
| 159001 | + Window* yy375; |
| 159002 | + u8 yy534; |
| 159003 | + ExprList* yy562; |
| 159004 | + struct TrigEvent yy570; |
| 159005 | + const char* yy600; |
| 159006 | + SrcList* yy607; |
| 159007 | + Expr* yy626; |
| 158720 | 159008 | } YYMINORTYPE; |
| 158721 | 159009 | #ifndef YYSTACKDEPTH |
| 158722 | 159010 | #define YYSTACKDEPTH 100 |
| 158723 | 159011 | #endif |
| 158724 | 159012 | #define sqlite3ParserARG_SDECL |
| | @@ -158730,22 +159018,22 @@ |
| 158730 | 159018 | #define sqlite3ParserCTX_PDECL ,Parse *pParse |
| 158731 | 159019 | #define sqlite3ParserCTX_PARAM ,pParse |
| 158732 | 159020 | #define sqlite3ParserCTX_FETCH Parse *pParse=yypParser->pParse; |
| 158733 | 159021 | #define sqlite3ParserCTX_STORE yypParser->pParse=pParse; |
| 158734 | 159022 | #define YYFALLBACK 1 |
| 158735 | | -#define YYNSTATE 570 |
| 158736 | | -#define YYNRULE 398 |
| 158737 | | -#define YYNRULE_WITH_ACTION 337 |
| 159023 | +#define YYNSTATE 572 |
| 159024 | +#define YYNRULE 401 |
| 159025 | +#define YYNRULE_WITH_ACTION 339 |
| 158738 | 159026 | #define YYNTOKEN 184 |
| 158739 | | -#define YY_MAX_SHIFT 569 |
| 158740 | | -#define YY_MIN_SHIFTREDUCE 825 |
| 158741 | | -#define YY_MAX_SHIFTREDUCE 1222 |
| 158742 | | -#define YY_ERROR_ACTION 1223 |
| 158743 | | -#define YY_ACCEPT_ACTION 1224 |
| 158744 | | -#define YY_NO_ACTION 1225 |
| 158745 | | -#define YY_MIN_REDUCE 1226 |
| 158746 | | -#define YY_MAX_REDUCE 1623 |
| 159027 | +#define YY_MAX_SHIFT 571 |
| 159028 | +#define YY_MIN_SHIFTREDUCE 829 |
| 159029 | +#define YY_MAX_SHIFTREDUCE 1229 |
| 159030 | +#define YY_ERROR_ACTION 1230 |
| 159031 | +#define YY_ACCEPT_ACTION 1231 |
| 159032 | +#define YY_NO_ACTION 1232 |
| 159033 | +#define YY_MIN_REDUCE 1233 |
| 159034 | +#define YY_MAX_REDUCE 1633 |
| 158747 | 159035 | /************* End control #defines *******************************************/ |
| 158748 | 159036 | #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) |
| 158749 | 159037 | |
| 158750 | 159038 | /* Define the yytestcase() macro to be a no-op if is not already defined |
| 158751 | 159039 | ** otherwise. |
| | @@ -158808,605 +159096,610 @@ |
| 158808 | 159096 | ** yy_reduce_ofst[] For each state, the offset into yy_action for |
| 158809 | 159097 | ** shifting non-terminals after a reduce. |
| 158810 | 159098 | ** yy_default[] Default action for each state. |
| 158811 | 159099 | ** |
| 158812 | 159100 | *********** Begin parsing tables **********************************************/ |
| 158813 | | -#define YY_ACTTAB_COUNT (2023) |
| 159101 | +#define YY_ACTTAB_COUNT (2037) |
| 158814 | 159102 | static const YYACTIONTYPE yy_action[] = { |
| 158815 | | - /* 0 */ 563, 1295, 563, 1274, 168, 1257, 115, 112, 218, 373, |
| 158816 | | - /* 10 */ 563, 1295, 374, 563, 488, 563, 115, 112, 218, 406, |
| 158817 | | - /* 20 */ 1300, 1300, 41, 41, 41, 41, 514, 1504, 520, 1298, |
| 158818 | | - /* 30 */ 1298, 959, 41, 41, 1260, 71, 71, 51, 51, 960, |
| 158819 | | - /* 40 */ 557, 557, 557, 122, 123, 113, 1200, 1200, 1035, 1038, |
| 158820 | | - /* 50 */ 1028, 1028, 120, 120, 121, 121, 121, 121, 414, 406, |
| 158821 | | - /* 60 */ 273, 273, 273, 273, 115, 112, 218, 115, 112, 218, |
| 158822 | | - /* 70 */ 197, 268, 545, 560, 515, 560, 211, 563, 385, 248, |
| 158823 | | - /* 80 */ 215, 521, 399, 122, 123, 113, 1200, 1200, 1035, 1038, |
| 158824 | | - /* 90 */ 1028, 1028, 120, 120, 121, 121, 121, 121, 540, 13, |
| 158825 | | - /* 100 */ 13, 1259, 119, 119, 119, 119, 118, 118, 117, 117, |
| 158826 | | - /* 110 */ 117, 116, 441, 1176, 419, 197, 446, 320, 512, 1539, |
| 158827 | | - /* 120 */ 1545, 372, 1547, 6, 371, 1176, 1148, 394, 1148, 406, |
| 158828 | | - /* 130 */ 1545, 534, 115, 112, 218, 1415, 99, 30, 121, 121, |
| 159103 | + /* 0 */ 564, 115, 112, 220, 169, 199, 115, 112, 220, 564, |
| 159104 | + /* 10 */ 375, 1266, 564, 376, 564, 270, 1309, 1309, 406, 407, |
| 159105 | + /* 20 */ 1084, 199, 1513, 41, 41, 515, 489, 521, 558, 558, |
| 159106 | + /* 30 */ 558, 965, 41, 41, 395, 41, 41, 51, 51, 966, |
| 159107 | + /* 40 */ 296, 1269, 296, 122, 123, 113, 1207, 1207, 1041, 1044, |
| 159108 | + /* 50 */ 1034, 1034, 120, 120, 121, 121, 121, 121, 564, 407, |
| 159109 | + /* 60 */ 275, 275, 275, 275, 1268, 115, 112, 220, 115, 112, |
| 159110 | + /* 70 */ 220, 1512, 846, 561, 516, 561, 115, 112, 220, 250, |
| 159111 | + /* 80 */ 217, 71, 71, 122, 123, 113, 1207, 1207, 1041, 1044, |
| 159112 | + /* 90 */ 1034, 1034, 120, 120, 121, 121, 121, 121, 440, 440, |
| 159113 | + /* 100 */ 440, 1149, 119, 119, 119, 119, 118, 118, 117, 117, |
| 159114 | + /* 110 */ 117, 116, 442, 1183, 1149, 116, 442, 1149, 546, 513, |
| 159115 | + /* 120 */ 1548, 1554, 374, 442, 6, 1183, 1154, 522, 1154, 407, |
| 159116 | + /* 130 */ 1556, 461, 373, 1554, 535, 99, 463, 332, 121, 121, |
| 158829 | 159117 | /* 140 */ 121, 121, 119, 119, 119, 119, 118, 118, 117, 117, |
| 158830 | | - /* 150 */ 117, 116, 441, 122, 123, 113, 1200, 1200, 1035, 1038, |
| 158831 | | - /* 160 */ 1028, 1028, 120, 120, 121, 121, 121, 121, 31, 1176, |
| 158832 | | - /* 170 */ 1177, 1178, 241, 357, 1558, 501, 498, 497, 317, 124, |
| 158833 | | - /* 180 */ 319, 1176, 1177, 1178, 1176, 496, 119, 119, 119, 119, |
| 158834 | | - /* 190 */ 118, 118, 117, 117, 117, 116, 441, 139, 96, 406, |
| 158835 | | - /* 200 */ 121, 121, 121, 121, 114, 117, 117, 117, 116, 441, |
| 158836 | | - /* 210 */ 541, 1532, 119, 119, 119, 119, 118, 118, 117, 117, |
| 158837 | | - /* 220 */ 117, 116, 441, 122, 123, 113, 1200, 1200, 1035, 1038, |
| 158838 | | - /* 230 */ 1028, 1028, 120, 120, 121, 121, 121, 121, 406, 441, |
| 158839 | | - /* 240 */ 1176, 1177, 1178, 81, 439, 439, 439, 80, 119, 119, |
| 158840 | | - /* 250 */ 119, 119, 118, 118, 117, 117, 117, 116, 441, 488, |
| 158841 | | - /* 260 */ 1176, 318, 122, 123, 113, 1200, 1200, 1035, 1038, 1028, |
| 158842 | | - /* 270 */ 1028, 120, 120, 121, 121, 121, 121, 493, 1025, 1025, |
| 158843 | | - /* 280 */ 1036, 1039, 119, 119, 119, 119, 118, 118, 117, 117, |
| 158844 | | - /* 290 */ 117, 116, 441, 1584, 995, 1224, 1, 1, 569, 2, |
| 158845 | | - /* 300 */ 1228, 1267, 137, 1503, 245, 305, 473, 140, 406, 860, |
| 158846 | | - /* 310 */ 561, 1176, 914, 914, 1308, 359, 1176, 1177, 1178, 462, |
| 158847 | | - /* 320 */ 330, 119, 119, 119, 119, 118, 118, 117, 117, 117, |
| 158848 | | - /* 330 */ 116, 441, 122, 123, 113, 1200, 1200, 1035, 1038, 1028, |
| 158849 | | - /* 340 */ 1028, 120, 120, 121, 121, 121, 121, 328, 273, 273, |
| 158850 | | - /* 350 */ 1015, 83, 1029, 425, 1564, 569, 2, 1228, 304, 554, |
| 158851 | | - /* 360 */ 925, 560, 305, 944, 140, 860, 1006, 1176, 1177, 1178, |
| 158852 | | - /* 370 */ 1005, 1308, 411, 213, 511, 229, 119, 119, 119, 119, |
| 158853 | | - /* 380 */ 118, 118, 117, 117, 117, 116, 441, 519, 347, 116, |
| 158854 | | - /* 390 */ 441, 119, 119, 119, 119, 118, 118, 117, 117, 117, |
| 158855 | | - /* 400 */ 116, 441, 1005, 1005, 1007, 273, 273, 445, 563, 16, |
| 158856 | | - /* 410 */ 16, 1590, 563, 1540, 563, 406, 1176, 6, 560, 344, |
| 158857 | | - /* 420 */ 182, 118, 118, 117, 117, 117, 116, 441, 416, 142, |
| 158858 | | - /* 430 */ 71, 71, 229, 563, 71, 71, 55, 55, 203, 122, |
| 158859 | | - /* 440 */ 123, 113, 1200, 1200, 1035, 1038, 1028, 1028, 120, 120, |
| 158860 | | - /* 450 */ 121, 121, 121, 121, 217, 13, 13, 1176, 406, 568, |
| 158861 | | - /* 460 */ 1400, 1228, 502, 137, 445, 168, 305, 545, 140, 1180, |
| 158862 | | - /* 470 */ 424, 545, 1176, 1177, 1178, 1308, 544, 438, 437, 944, |
| 158863 | | - /* 480 */ 513, 452, 122, 123, 113, 1200, 1200, 1035, 1038, 1028, |
| 158864 | | - /* 490 */ 1028, 120, 120, 121, 121, 121, 121, 315, 119, 119, |
| 158865 | | - /* 500 */ 119, 119, 118, 118, 117, 117, 117, 116, 441, 273, |
| 158866 | | - /* 510 */ 273, 1143, 416, 1176, 1177, 1178, 543, 563, 1143, 304, |
| 158867 | | - /* 520 */ 554, 1561, 560, 1207, 1143, 1207, 1180, 1143, 406, 530, |
| 158868 | | - /* 530 */ 421, 1143, 864, 183, 1143, 143, 229, 562, 32, 71, |
| 158869 | | - /* 540 */ 71, 119, 119, 119, 119, 118, 118, 117, 117, 117, |
| 158870 | | - /* 550 */ 116, 441, 122, 123, 113, 1200, 1200, 1035, 1038, 1028, |
| 158871 | | - /* 560 */ 1028, 120, 120, 121, 121, 121, 121, 406, 445, 241, |
| 158872 | | - /* 570 */ 1176, 857, 501, 498, 497, 1176, 526, 189, 245, 538, |
| 158873 | | - /* 580 */ 1539, 282, 496, 370, 6, 563, 529, 477, 5, 279, |
| 158874 | | - /* 590 */ 1015, 122, 123, 113, 1200, 1200, 1035, 1038, 1028, 1028, |
| 158875 | | - /* 600 */ 120, 120, 121, 121, 121, 121, 1006, 13, 13, 1414, |
| 158876 | | - /* 610 */ 1005, 119, 119, 119, 119, 118, 118, 117, 117, 117, |
| 158877 | | - /* 620 */ 116, 441, 426, 273, 273, 1176, 1176, 1177, 1178, 1619, |
| 158878 | | - /* 630 */ 392, 1176, 1177, 1178, 1176, 342, 560, 406, 525, 361, |
| 158879 | | - /* 640 */ 430, 1161, 1005, 1005, 1007, 348, 411, 357, 1558, 488, |
| 159118 | + /* 150 */ 117, 116, 442, 122, 123, 113, 1207, 1207, 1041, 1044, |
| 159119 | + /* 160 */ 1034, 1034, 120, 120, 121, 121, 121, 121, 1257, 1183, |
| 159120 | + /* 170 */ 1184, 1185, 243, 1064, 564, 502, 499, 498, 567, 124, |
| 159121 | + /* 180 */ 567, 1183, 1184, 1185, 474, 497, 119, 119, 119, 119, |
| 159122 | + /* 190 */ 118, 118, 117, 117, 117, 116, 442, 70, 70, 407, |
| 159123 | + /* 200 */ 121, 121, 121, 121, 114, 117, 117, 117, 116, 442, |
| 159124 | + /* 210 */ 1409, 1469, 119, 119, 119, 119, 118, 118, 117, 117, |
| 159125 | + /* 220 */ 117, 116, 442, 122, 123, 113, 1207, 1207, 1041, 1044, |
| 159126 | + /* 230 */ 1034, 1034, 120, 120, 121, 121, 121, 121, 407, 1031, |
| 159127 | + /* 240 */ 1031, 1042, 1045, 81, 382, 541, 378, 80, 119, 119, |
| 159128 | + /* 250 */ 119, 119, 118, 118, 117, 117, 117, 116, 442, 381, |
| 159129 | + /* 260 */ 463, 332, 122, 123, 113, 1207, 1207, 1041, 1044, 1034, |
| 159130 | + /* 270 */ 1034, 120, 120, 121, 121, 121, 121, 262, 215, 512, |
| 159131 | + /* 280 */ 1424, 422, 119, 119, 119, 119, 118, 118, 117, 117, |
| 159132 | + /* 290 */ 117, 116, 442, 1231, 1, 1, 571, 2, 1235, 1573, |
| 159133 | + /* 300 */ 571, 2, 1235, 307, 1149, 141, 1600, 307, 407, 141, |
| 159134 | + /* 310 */ 1183, 361, 1317, 1035, 866, 531, 1317, 1149, 359, 1567, |
| 159135 | + /* 320 */ 1149, 119, 119, 119, 119, 118, 118, 117, 117, 117, |
| 159136 | + /* 330 */ 116, 442, 122, 123, 113, 1207, 1207, 1041, 1044, 1034, |
| 159137 | + /* 340 */ 1034, 120, 120, 121, 121, 121, 121, 275, 275, 1001, |
| 159138 | + /* 350 */ 426, 275, 275, 1128, 1627, 1021, 1627, 137, 542, 1541, |
| 159139 | + /* 360 */ 561, 272, 950, 950, 561, 1423, 1183, 1184, 1185, 1594, |
| 159140 | + /* 370 */ 866, 1012, 530, 315, 231, 1011, 468, 1276, 231, 119, |
| 159141 | + /* 380 */ 119, 119, 119, 118, 118, 117, 117, 117, 116, 442, |
| 159142 | + /* 390 */ 1570, 119, 119, 119, 119, 118, 118, 117, 117, 117, |
| 159143 | + /* 400 */ 116, 442, 330, 359, 1567, 564, 446, 1011, 1011, 1013, |
| 159144 | + /* 410 */ 446, 207, 564, 306, 555, 407, 363, 1021, 363, 346, |
| 159145 | + /* 420 */ 184, 118, 118, 117, 117, 117, 116, 442, 71, 71, |
| 159146 | + /* 430 */ 439, 438, 1126, 1012, 472, 71, 71, 1011, 205, 122, |
| 159147 | + /* 440 */ 123, 113, 1207, 1207, 1041, 1044, 1034, 1034, 120, 120, |
| 159148 | + /* 450 */ 121, 121, 121, 121, 219, 219, 472, 1183, 407, 570, |
| 159149 | + /* 460 */ 1183, 1235, 503, 1477, 149, 546, 307, 489, 141, 1011, |
| 159150 | + /* 470 */ 1011, 1013, 546, 140, 545, 1317, 1214, 191, 1214, 950, |
| 159151 | + /* 480 */ 950, 514, 122, 123, 113, 1207, 1207, 1041, 1044, 1034, |
| 159152 | + /* 490 */ 1034, 120, 120, 121, 121, 121, 121, 563, 119, 119, |
| 159153 | + /* 500 */ 119, 119, 118, 118, 117, 117, 117, 116, 442, 283, |
| 159154 | + /* 510 */ 275, 275, 415, 1183, 1184, 1185, 1183, 1184, 1185, 372, |
| 159155 | + /* 520 */ 1183, 243, 344, 561, 502, 499, 498, 1539, 407, 1540, |
| 159156 | + /* 530 */ 1183, 288, 870, 143, 497, 1549, 185, 231, 9, 6, |
| 159157 | + /* 540 */ 253, 119, 119, 119, 119, 118, 118, 117, 117, 117, |
| 159158 | + /* 550 */ 116, 442, 122, 123, 113, 1207, 1207, 1041, 1044, 1034, |
| 159159 | + /* 560 */ 1034, 120, 120, 121, 121, 121, 121, 407, 137, 446, |
| 159160 | + /* 570 */ 447, 863, 169, 1183, 397, 1204, 1183, 1184, 1185, 931, |
| 159161 | + /* 580 */ 526, 1001, 98, 339, 564, 342, 1183, 1184, 1185, 306, |
| 159162 | + /* 590 */ 555, 122, 123, 113, 1207, 1207, 1041, 1044, 1034, 1034, |
| 159163 | + /* 600 */ 120, 120, 121, 121, 121, 121, 452, 71, 71, 275, |
| 159164 | + /* 610 */ 275, 119, 119, 119, 119, 118, 118, 117, 117, 117, |
| 159165 | + /* 620 */ 116, 442, 561, 417, 306, 555, 1183, 1307, 1307, 1183, |
| 159166 | + /* 630 */ 1184, 1185, 1204, 1149, 330, 458, 318, 407, 363, 470, |
| 159167 | + /* 640 */ 431, 1167, 32, 541, 527, 350, 1149, 1629, 393, 1149, |
| 158880 | 159168 | /* 650 */ 119, 119, 119, 119, 118, 118, 117, 117, 117, 116, |
| 158881 | | - /* 660 */ 441, 122, 123, 113, 1200, 1200, 1035, 1038, 1028, 1028, |
| 158882 | | - /* 670 */ 120, 120, 121, 121, 121, 121, 406, 830, 831, 832, |
| 158883 | | - /* 680 */ 1016, 1176, 1177, 1178, 396, 285, 148, 1312, 304, 554, |
| 158884 | | - /* 690 */ 1176, 1177, 1178, 1467, 216, 3, 337, 137, 340, 560, |
| 158885 | | - /* 700 */ 122, 123, 113, 1200, 1200, 1035, 1038, 1028, 1028, 120, |
| 158886 | | - /* 710 */ 120, 121, 121, 121, 121, 563, 504, 946, 273, 273, |
| 159169 | + /* 660 */ 442, 122, 123, 113, 1207, 1207, 1041, 1044, 1034, 1034, |
| 159170 | + /* 670 */ 120, 120, 121, 121, 121, 121, 407, 199, 472, 1183, |
| 159171 | + /* 680 */ 1022, 472, 1183, 1184, 1185, 386, 151, 539, 1548, 277, |
| 159172 | + /* 690 */ 400, 137, 6, 317, 5, 564, 562, 3, 920, 920, |
| 159173 | + /* 700 */ 122, 123, 113, 1207, 1207, 1041, 1044, 1034, 1034, 120, |
| 159174 | + /* 710 */ 120, 121, 121, 121, 121, 411, 505, 83, 71, 71, |
| 158887 | 159175 | /* 720 */ 119, 119, 119, 119, 118, 118, 117, 117, 117, 116, |
| 158888 | | - /* 730 */ 441, 560, 1176, 427, 563, 451, 98, 13, 13, 259, |
| 158889 | | - /* 740 */ 276, 356, 507, 351, 506, 246, 406, 361, 469, 1530, |
| 158890 | | - /* 750 */ 1000, 347, 293, 304, 554, 1589, 71, 71, 889, 119, |
| 158891 | | - /* 760 */ 119, 119, 119, 118, 118, 117, 117, 117, 116, 441, |
| 158892 | | - /* 770 */ 122, 123, 113, 1200, 1200, 1035, 1038, 1028, 1028, 120, |
| 158893 | | - /* 780 */ 120, 121, 121, 121, 121, 406, 1143, 1078, 1176, 1177, |
| 158894 | | - /* 790 */ 1178, 416, 1080, 300, 150, 995, 1080, 361, 361, 1143, |
| 158895 | | - /* 800 */ 361, 378, 1143, 477, 563, 244, 243, 242, 1278, 122, |
| 158896 | | - /* 810 */ 123, 113, 1200, 1200, 1035, 1038, 1028, 1028, 120, 120, |
| 158897 | | - /* 820 */ 121, 121, 121, 121, 563, 880, 13, 13, 483, 119, |
| 158898 | | - /* 830 */ 119, 119, 119, 118, 118, 117, 117, 117, 116, 441, |
| 158899 | | - /* 840 */ 1176, 191, 540, 563, 147, 149, 13, 13, 328, 457, |
| 158900 | | - /* 850 */ 316, 1083, 1083, 485, 1537, 406, 505, 1530, 6, 1514, |
| 158901 | | - /* 860 */ 284, 192, 1277, 145, 881, 71, 71, 488, 119, 119, |
| 158902 | | - /* 870 */ 119, 119, 118, 118, 117, 117, 117, 116, 441, 122, |
| 158903 | | - /* 880 */ 123, 113, 1200, 1200, 1035, 1038, 1028, 1028, 120, 120, |
| 158904 | | - /* 890 */ 121, 121, 121, 121, 563, 471, 1176, 1177, 1178, 406, |
| 158905 | | - /* 900 */ 852, 327, 301, 462, 330, 1516, 270, 1530, 1530, 944, |
| 158906 | | - /* 910 */ 1531, 1307, 313, 9, 842, 251, 71, 71, 477, 428, |
| 158907 | | - /* 920 */ 146, 488, 38, 945, 101, 113, 1200, 1200, 1035, 1038, |
| 158908 | | - /* 930 */ 1028, 1028, 120, 120, 121, 121, 121, 121, 119, 119, |
| 158909 | | - /* 940 */ 119, 119, 118, 118, 117, 117, 117, 116, 441, 563, |
| 158910 | | - /* 950 */ 1197, 1099, 563, 436, 563, 1533, 563, 852, 1122, 1617, |
| 158911 | | - /* 960 */ 454, 290, 1617, 546, 251, 1303, 1100, 267, 267, 281, |
| 158912 | | - /* 970 */ 404, 70, 70, 460, 71, 71, 71, 71, 13, 13, |
| 158913 | | - /* 980 */ 560, 1101, 119, 119, 119, 119, 118, 118, 117, 117, |
| 158914 | | - /* 990 */ 117, 116, 441, 542, 104, 273, 273, 273, 273, 1197, |
| 158915 | | - /* 1000 */ 217, 1468, 900, 471, 450, 563, 1473, 1197, 560, 447, |
| 158916 | | - /* 1010 */ 560, 545, 901, 440, 406, 1058, 292, 274, 274, 198, |
| 158917 | | - /* 1020 */ 547, 450, 449, 1473, 1475, 944, 455, 56, 56, 410, |
| 158918 | | - /* 1030 */ 560, 1122, 1618, 379, 406, 1618, 404, 1120, 122, 123, |
| 158919 | | - /* 1040 */ 113, 1200, 1200, 1035, 1038, 1028, 1028, 120, 120, 121, |
| 158920 | | - /* 1050 */ 121, 121, 121, 1460, 406, 12, 1197, 1512, 122, 123, |
| 158921 | | - /* 1060 */ 113, 1200, 1200, 1035, 1038, 1028, 1028, 120, 120, 121, |
| 158922 | | - /* 1070 */ 121, 121, 121, 308, 471, 126, 359, 286, 122, 111, |
| 158923 | | - /* 1080 */ 113, 1200, 1200, 1035, 1038, 1028, 1028, 120, 120, 121, |
| 158924 | | - /* 1090 */ 121, 121, 121, 309, 450, 471, 1473, 119, 119, 119, |
| 158925 | | - /* 1100 */ 119, 118, 118, 117, 117, 117, 116, 441, 1176, 563, |
| 158926 | | - /* 1110 */ 1120, 482, 563, 312, 433, 479, 197, 119, 119, 119, |
| 158927 | | - /* 1120 */ 119, 118, 118, 117, 117, 117, 116, 441, 405, 12, |
| 158928 | | - /* 1130 */ 536, 15, 15, 478, 43, 43, 509, 119, 119, 119, |
| 158929 | | - /* 1140 */ 119, 118, 118, 117, 117, 117, 116, 441, 289, 535, |
| 158930 | | - /* 1150 */ 294, 563, 294, 391, 1220, 438, 437, 406, 1154, 403, |
| 158931 | | - /* 1160 */ 402, 1400, 920, 1204, 1176, 1177, 1178, 919, 1206, 291, |
| 158932 | | - /* 1170 */ 1306, 1249, 412, 57, 57, 488, 1205, 563, 556, 412, |
| 158933 | | - /* 1180 */ 1176, 1344, 123, 113, 1200, 1200, 1035, 1038, 1028, 1028, |
| 158934 | | - /* 1190 */ 120, 120, 121, 121, 121, 121, 1400, 1143, 563, 44, |
| 158935 | | - /* 1200 */ 44, 1207, 194, 1207, 273, 273, 1400, 461, 537, 1154, |
| 158936 | | - /* 1210 */ 1143, 108, 555, 1143, 4, 391, 1121, 560, 1538, 335, |
| 158937 | | - /* 1220 */ 58, 58, 6, 1246, 1099, 380, 1400, 376, 558, 1536, |
| 158938 | | - /* 1230 */ 563, 422, 1221, 6, 304, 554, 1176, 1177, 1178, 1100, |
| 159176 | + /* 730 */ 442, 1183, 218, 428, 1183, 1183, 1184, 1185, 363, 261, |
| 159177 | + /* 740 */ 278, 358, 508, 353, 507, 248, 407, 306, 555, 1539, |
| 159178 | + /* 750 */ 1006, 349, 363, 291, 489, 302, 293, 1542, 281, 119, |
| 159179 | + /* 760 */ 119, 119, 119, 118, 118, 117, 117, 117, 116, 442, |
| 159180 | + /* 770 */ 122, 123, 113, 1207, 1207, 1041, 1044, 1034, 1034, 120, |
| 159181 | + /* 780 */ 120, 121, 121, 121, 121, 407, 148, 1183, 1184, 1185, |
| 159182 | + /* 790 */ 1183, 1184, 1185, 275, 275, 1304, 1257, 1283, 483, 1476, |
| 159183 | + /* 800 */ 150, 489, 480, 564, 1187, 1304, 561, 1587, 1255, 122, |
| 159184 | + /* 810 */ 123, 113, 1207, 1207, 1041, 1044, 1034, 1034, 120, 120, |
| 159185 | + /* 820 */ 121, 121, 121, 121, 564, 886, 13, 13, 520, 119, |
| 159186 | + /* 830 */ 119, 119, 119, 118, 118, 117, 117, 117, 116, 442, |
| 159187 | + /* 840 */ 1183, 420, 417, 564, 269, 269, 1316, 13, 13, 1539, |
| 159188 | + /* 850 */ 1546, 16, 16, 322, 6, 407, 506, 561, 1089, 1089, |
| 159189 | + /* 860 */ 486, 1187, 425, 1539, 887, 292, 71, 71, 119, 119, |
| 159190 | + /* 870 */ 119, 119, 118, 118, 117, 117, 117, 116, 442, 122, |
| 159191 | + /* 880 */ 123, 113, 1207, 1207, 1041, 1044, 1034, 1034, 120, 120, |
| 159192 | + /* 890 */ 121, 121, 121, 121, 564, 12, 1183, 1184, 1185, 407, |
| 159193 | + /* 900 */ 275, 275, 451, 303, 834, 835, 836, 417, 489, 276, |
| 159194 | + /* 910 */ 276, 1547, 284, 561, 319, 6, 321, 71, 71, 429, |
| 159195 | + /* 920 */ 451, 450, 561, 952, 101, 113, 1207, 1207, 1041, 1044, |
| 159196 | + /* 930 */ 1034, 1034, 120, 120, 121, 121, 121, 121, 119, 119, |
| 159197 | + /* 940 */ 119, 119, 118, 118, 117, 117, 117, 116, 442, 1105, |
| 159198 | + /* 950 */ 1183, 489, 564, 1312, 437, 455, 478, 564, 246, 245, |
| 159199 | + /* 960 */ 244, 1409, 1545, 547, 1106, 405, 6, 1544, 196, 1258, |
| 159200 | + /* 970 */ 413, 6, 105, 462, 103, 71, 71, 286, 564, 1107, |
| 159201 | + /* 980 */ 13, 13, 119, 119, 119, 119, 118, 118, 117, 117, |
| 159202 | + /* 990 */ 117, 116, 442, 451, 104, 427, 337, 320, 275, 275, |
| 159203 | + /* 1000 */ 906, 13, 13, 564, 1482, 1105, 1183, 1184, 1185, 126, |
| 159204 | + /* 1010 */ 907, 561, 546, 564, 407, 478, 295, 1321, 253, 200, |
| 159205 | + /* 1020 */ 1106, 548, 1482, 1484, 280, 1409, 55, 55, 1287, 561, |
| 159206 | + /* 1030 */ 478, 380, 423, 951, 407, 1107, 71, 71, 122, 123, |
| 159207 | + /* 1040 */ 113, 1207, 1207, 1041, 1044, 1034, 1034, 120, 120, 121, |
| 159208 | + /* 1050 */ 121, 121, 121, 1204, 407, 287, 552, 309, 122, 123, |
| 159209 | + /* 1060 */ 113, 1207, 1207, 1041, 1044, 1034, 1034, 120, 120, 121, |
| 159210 | + /* 1070 */ 121, 121, 121, 441, 1128, 1628, 146, 1628, 122, 111, |
| 159211 | + /* 1080 */ 113, 1207, 1207, 1041, 1044, 1034, 1034, 120, 120, 121, |
| 159212 | + /* 1090 */ 121, 121, 121, 404, 403, 1482, 424, 119, 119, 119, |
| 159213 | + /* 1100 */ 119, 118, 118, 117, 117, 117, 116, 442, 1183, 564, |
| 159214 | + /* 1110 */ 1204, 544, 1086, 858, 329, 361, 1086, 119, 119, 119, |
| 159215 | + /* 1120 */ 119, 118, 118, 117, 117, 117, 116, 442, 564, 294, |
| 159216 | + /* 1130 */ 144, 523, 56, 56, 224, 564, 510, 119, 119, 119, |
| 159217 | + /* 1140 */ 119, 118, 118, 117, 117, 117, 116, 442, 484, 1409, |
| 159218 | + /* 1150 */ 537, 15, 15, 1126, 434, 439, 438, 407, 13, 13, |
| 159219 | + /* 1160 */ 1523, 12, 926, 1211, 1183, 1184, 1185, 925, 1213, 536, |
| 159220 | + /* 1170 */ 858, 557, 413, 193, 1525, 494, 1212, 448, 1160, 1222, |
| 159221 | + /* 1180 */ 1183, 564, 123, 113, 1207, 1207, 1041, 1044, 1034, 1034, |
| 159222 | + /* 1190 */ 120, 120, 121, 121, 121, 121, 1521, 1149, 564, 965, |
| 159223 | + /* 1200 */ 564, 1214, 247, 1214, 13, 13, 1409, 966, 538, 564, |
| 159224 | + /* 1210 */ 1149, 108, 556, 1149, 4, 310, 392, 1227, 17, 194, |
| 159225 | + /* 1220 */ 485, 43, 43, 57, 57, 306, 555, 524, 559, 1160, |
| 159226 | + /* 1230 */ 464, 564, 44, 44, 392, 1127, 1183, 1184, 1185, 479, |
| 158939 | 159227 | /* 1240 */ 119, 119, 119, 119, 118, 118, 117, 117, 117, 116, |
| 158940 | | - /* 1250 */ 441, 442, 59, 59, 1101, 516, 1535, 273, 273, 563, |
| 158941 | | - /* 1260 */ 6, 563, 110, 552, 563, 528, 423, 413, 169, 548, |
| 158942 | | - /* 1270 */ 560, 108, 555, 137, 4, 551, 484, 272, 215, 222, |
| 158943 | | - /* 1280 */ 211, 60, 60, 61, 61, 98, 62, 62, 558, 273, |
| 158944 | | - /* 1290 */ 273, 563, 1015, 467, 1221, 563, 434, 563, 106, 106, |
| 158945 | | - /* 1300 */ 8, 920, 560, 273, 273, 107, 919, 442, 565, 564, |
| 158946 | | - /* 1310 */ 563, 442, 1005, 45, 45, 464, 560, 46, 46, 47, |
| 158947 | | - /* 1320 */ 47, 84, 202, 552, 1215, 404, 468, 563, 205, 304, |
| 158948 | | - /* 1330 */ 554, 563, 49, 49, 563, 522, 404, 532, 563, 867, |
| 158949 | | - /* 1340 */ 563, 105, 531, 103, 1005, 1005, 1007, 1008, 27, 50, |
| 158950 | | - /* 1350 */ 50, 563, 1015, 63, 63, 475, 64, 64, 106, 106, |
| 158951 | | - /* 1360 */ 65, 65, 14, 14, 17, 107, 563, 442, 565, 564, |
| 158952 | | - /* 1370 */ 563, 303, 1005, 66, 66, 563, 226, 563, 959, 563, |
| 158953 | | - /* 1380 */ 543, 404, 1196, 1343, 871, 278, 960, 456, 128, 128, |
| 158954 | | - /* 1390 */ 563, 1065, 67, 67, 563, 206, 867, 52, 52, 68, |
| 158955 | | - /* 1400 */ 68, 69, 69, 417, 1005, 1005, 1007, 1008, 27, 1563, |
| 158956 | | - /* 1410 */ 1165, 444, 53, 53, 277, 1519, 156, 156, 307, 389, |
| 158957 | | - /* 1420 */ 389, 388, 262, 386, 1165, 444, 839, 321, 277, 108, |
| 158958 | | - /* 1430 */ 555, 523, 4, 389, 389, 388, 262, 386, 563, 223, |
| 158959 | | - /* 1440 */ 839, 311, 326, 1492, 1117, 98, 558, 393, 1065, 310, |
| 158960 | | - /* 1450 */ 563, 476, 563, 223, 563, 311, 879, 878, 1009, 277, |
| 158961 | | - /* 1460 */ 157, 157, 463, 310, 389, 389, 388, 262, 386, 442, |
| 158962 | | - /* 1470 */ 518, 839, 76, 76, 54, 54, 72, 72, 355, 225, |
| 158963 | | - /* 1480 */ 563, 552, 275, 563, 223, 325, 311, 161, 354, 465, |
| 158964 | | - /* 1490 */ 135, 563, 228, 225, 310, 532, 563, 206, 886, 887, |
| 158965 | | - /* 1500 */ 533, 161, 129, 129, 135, 73, 73, 224, 962, 963, |
| 158966 | | - /* 1510 */ 1015, 563, 287, 130, 130, 1009, 106, 106, 131, 131, |
| 158967 | | - /* 1520 */ 563, 224, 563, 107, 225, 442, 565, 564, 997, 1276, |
| 158968 | | - /* 1530 */ 1005, 250, 161, 127, 127, 135, 108, 555, 1077, 4, |
| 158969 | | - /* 1540 */ 1077, 407, 155, 155, 154, 154, 304, 554, 1126, 563, |
| 158970 | | - /* 1550 */ 1331, 563, 224, 558, 470, 407, 563, 250, 563, 1491, |
| 158971 | | - /* 1560 */ 304, 554, 1005, 1005, 1007, 1008, 27, 563, 480, 332, |
| 158972 | | - /* 1570 */ 448, 136, 136, 134, 134, 1340, 442, 336, 132, 132, |
| 158973 | | - /* 1580 */ 133, 133, 563, 1076, 448, 1076, 407, 563, 552, 75, |
| 158974 | | - /* 1590 */ 75, 304, 554, 339, 341, 343, 108, 555, 563, 4, |
| 158975 | | - /* 1600 */ 1577, 299, 532, 563, 77, 77, 1291, 531, 472, 74, |
| 158976 | | - /* 1610 */ 74, 250, 1275, 558, 350, 448, 331, 1015, 360, 98, |
| 158977 | | - /* 1620 */ 42, 42, 1352, 106, 106, 48, 48, 1399, 494, 1327, |
| 158978 | | - /* 1630 */ 107, 247, 442, 565, 564, 345, 442, 1005, 98, 1061, |
| 158979 | | - /* 1640 */ 953, 917, 247, 250, 110, 1552, 550, 850, 552, 918, |
| 158980 | | - /* 1650 */ 144, 1338, 110, 549, 1405, 1256, 1248, 1237, 1236, 1238, |
| 158981 | | - /* 1660 */ 1571, 1324, 208, 390, 489, 265, 363, 200, 365, 1005, |
| 158982 | | - /* 1670 */ 1005, 1007, 1008, 27, 11, 280, 221, 1015, 323, 474, |
| 158983 | | - /* 1680 */ 1274, 367, 212, 106, 106, 924, 1386, 324, 288, 1381, |
| 158984 | | - /* 1690 */ 107, 453, 442, 565, 564, 283, 329, 1005, 1391, 499, |
| 158985 | | - /* 1700 */ 353, 1374, 1464, 108, 555, 1463, 4, 1574, 1390, 397, |
| 158986 | | - /* 1710 */ 1215, 171, 254, 369, 383, 207, 195, 196, 1511, 553, |
| 158987 | | - /* 1720 */ 558, 1509, 415, 1212, 100, 555, 83, 4, 204, 1005, |
| 158988 | | - /* 1730 */ 1005, 1007, 1008, 27, 180, 166, 173, 219, 79, 82, |
| 158989 | | - /* 1740 */ 458, 558, 175, 442, 35, 1387, 176, 459, 177, 178, |
| 158990 | | - /* 1750 */ 492, 231, 96, 1469, 395, 552, 1393, 1392, 36, 466, |
| 158991 | | - /* 1760 */ 1395, 184, 398, 481, 442, 1458, 235, 89, 1480, 487, |
| 158992 | | - /* 1770 */ 266, 334, 237, 188, 490, 400, 552, 338, 238, 508, |
| 158993 | | - /* 1780 */ 1239, 239, 1294, 1293, 1015, 1292, 1285, 429, 91, 871, |
| 158994 | | - /* 1790 */ 106, 106, 1588, 213, 401, 1587, 431, 107, 1264, 442, |
| 158995 | | - /* 1800 */ 565, 564, 1263, 352, 1005, 1015, 1262, 1586, 1557, 517, |
| 158996 | | - /* 1810 */ 432, 106, 106, 1284, 297, 298, 358, 524, 107, 1335, |
| 158997 | | - /* 1820 */ 442, 565, 564, 95, 1336, 1005, 252, 253, 435, 125, |
| 158998 | | - /* 1830 */ 543, 1543, 10, 1444, 377, 1542, 1005, 1005, 1007, 1008, |
| 158999 | | - /* 1840 */ 27, 97, 527, 375, 362, 102, 260, 364, 381, 1317, |
| 159000 | | - /* 1850 */ 382, 1334, 366, 1245, 1333, 1316, 368, 1005, 1005, 1007, |
| 159001 | | - /* 1860 */ 1008, 27, 1359, 1358, 34, 199, 1171, 566, 261, 263, |
| 159002 | | - /* 1870 */ 264, 567, 1234, 158, 1229, 141, 295, 159, 1496, 302, |
| 159003 | | - /* 1880 */ 1497, 1495, 1494, 160, 826, 209, 443, 201, 306, 210, |
| 159004 | | - /* 1890 */ 78, 220, 1075, 138, 1073, 314, 162, 172, 1196, 227, |
| 159005 | | - /* 1900 */ 174, 903, 322, 230, 1089, 179, 163, 164, 418, 408, |
| 159006 | | - /* 1910 */ 409, 170, 181, 85, 86, 420, 87, 165, 1092, 88, |
| 159007 | | - /* 1920 */ 233, 232, 1088, 151, 18, 234, 1081, 250, 333, 1209, |
| 159008 | | - /* 1930 */ 185, 486, 236, 186, 37, 841, 491, 354, 240, 346, |
| 159009 | | - /* 1940 */ 495, 187, 90, 869, 19, 20, 500, 503, 349, 92, |
| 159010 | | - /* 1950 */ 167, 152, 296, 882, 93, 510, 94, 1159, 153, 1041, |
| 159011 | | - /* 1960 */ 1128, 39, 214, 269, 1127, 271, 249, 952, 190, 947, |
| 159012 | | - /* 1970 */ 110, 1149, 21, 7, 1153, 22, 1145, 23, 1147, 24, |
| 159013 | | - /* 1980 */ 1133, 25, 1152, 33, 539, 193, 26, 1056, 98, 1042, |
| 159014 | | - /* 1990 */ 1040, 1044, 1098, 1045, 1097, 256, 255, 28, 40, 257, |
| 159015 | | - /* 2000 */ 1010, 851, 109, 29, 913, 559, 384, 387, 258, 1167, |
| 159016 | | - /* 2010 */ 1166, 1225, 1225, 1225, 1579, 1225, 1225, 1225, 1225, 1225, |
| 159017 | | - /* 2020 */ 1225, 1225, 1578, |
| 159228 | + /* 1250 */ 442, 443, 564, 327, 13, 13, 564, 418, 1315, 414, |
| 159229 | + /* 1260 */ 171, 564, 311, 553, 213, 529, 1253, 564, 517, 543, |
| 159230 | + /* 1270 */ 412, 108, 556, 137, 4, 58, 58, 435, 314, 59, |
| 159231 | + /* 1280 */ 59, 274, 217, 549, 60, 60, 349, 476, 559, 1353, |
| 159232 | + /* 1290 */ 61, 61, 1021, 275, 275, 1228, 213, 564, 106, 106, |
| 159233 | + /* 1300 */ 8, 275, 275, 275, 275, 107, 561, 443, 566, 565, |
| 159234 | + /* 1310 */ 564, 443, 1011, 1228, 561, 564, 561, 564, 275, 275, |
| 159235 | + /* 1320 */ 62, 62, 1352, 553, 247, 456, 564, 98, 110, 306, |
| 159236 | + /* 1330 */ 555, 561, 564, 45, 45, 405, 1203, 533, 46, 46, |
| 159237 | + /* 1340 */ 47, 47, 532, 465, 1011, 1011, 1013, 1014, 27, 49, |
| 159238 | + /* 1350 */ 49, 564, 1021, 405, 469, 50, 50, 564, 106, 106, |
| 159239 | + /* 1360 */ 305, 564, 84, 204, 405, 107, 564, 443, 566, 565, |
| 159240 | + /* 1370 */ 405, 564, 1011, 564, 63, 63, 564, 1599, 564, 895, |
| 159241 | + /* 1380 */ 64, 64, 457, 477, 65, 65, 147, 96, 38, 14, |
| 159242 | + /* 1390 */ 14, 1528, 412, 564, 66, 66, 128, 128, 926, 67, |
| 159243 | + /* 1400 */ 67, 52, 52, 925, 1011, 1011, 1013, 1014, 27, 1572, |
| 159244 | + /* 1410 */ 1171, 445, 208, 1123, 279, 394, 68, 68, 228, 390, |
| 159245 | + /* 1420 */ 390, 389, 264, 387, 1171, 445, 843, 877, 279, 108, |
| 159246 | + /* 1430 */ 556, 453, 4, 390, 390, 389, 264, 387, 564, 225, |
| 159247 | + /* 1440 */ 843, 313, 328, 1003, 98, 252, 559, 544, 471, 312, |
| 159248 | + /* 1450 */ 252, 564, 208, 225, 564, 313, 473, 30, 252, 279, |
| 159249 | + /* 1460 */ 466, 69, 69, 312, 390, 390, 389, 264, 387, 443, |
| 159250 | + /* 1470 */ 333, 843, 98, 564, 53, 53, 323, 157, 157, 227, |
| 159251 | + /* 1480 */ 495, 553, 249, 289, 225, 564, 313, 162, 31, 1501, |
| 159252 | + /* 1490 */ 135, 564, 1500, 227, 312, 533, 158, 158, 885, 884, |
| 159253 | + /* 1500 */ 534, 162, 873, 301, 135, 564, 481, 226, 76, 76, |
| 159254 | + /* 1510 */ 1021, 347, 1071, 98, 54, 54, 106, 106, 1067, 564, |
| 159255 | + /* 1520 */ 249, 226, 519, 107, 227, 443, 566, 565, 72, 72, |
| 159256 | + /* 1530 */ 1011, 334, 162, 564, 230, 135, 108, 556, 959, 4, |
| 159257 | + /* 1540 */ 252, 408, 129, 129, 564, 1349, 306, 555, 564, 923, |
| 159258 | + /* 1550 */ 564, 110, 226, 559, 564, 408, 73, 73, 564, 873, |
| 159259 | + /* 1560 */ 306, 555, 1011, 1011, 1013, 1014, 27, 130, 130, 1071, |
| 159260 | + /* 1570 */ 449, 131, 131, 127, 127, 357, 443, 156, 156, 892, |
| 159261 | + /* 1580 */ 893, 155, 155, 338, 449, 356, 408, 564, 553, 968, |
| 159262 | + /* 1590 */ 969, 306, 555, 1015, 341, 564, 108, 556, 564, 4, |
| 159263 | + /* 1600 */ 1132, 1286, 533, 564, 856, 343, 145, 532, 345, 1300, |
| 159264 | + /* 1610 */ 136, 136, 1083, 559, 1083, 449, 564, 1021, 134, 134, |
| 159265 | + /* 1620 */ 1284, 132, 132, 106, 106, 1285, 133, 133, 564, 352, |
| 159266 | + /* 1630 */ 107, 564, 443, 566, 565, 1340, 443, 1011, 362, 75, |
| 159267 | + /* 1640 */ 75, 1082, 564, 1082, 564, 924, 1561, 110, 553, 551, |
| 159268 | + /* 1650 */ 1015, 77, 77, 1361, 74, 74, 1408, 1336, 1347, 550, |
| 159269 | + /* 1660 */ 1414, 1265, 1256, 1244, 1243, 42, 42, 48, 48, 1011, |
| 159270 | + /* 1670 */ 1011, 1013, 1014, 27, 1245, 1580, 490, 1021, 267, 202, |
| 159271 | + /* 1680 */ 1333, 365, 11, 106, 106, 930, 367, 210, 369, 391, |
| 159272 | + /* 1690 */ 107, 1395, 443, 566, 565, 223, 1390, 1011, 500, 454, |
| 159273 | + /* 1700 */ 282, 1400, 285, 108, 556, 214, 4, 325, 1383, 1283, |
| 159274 | + /* 1710 */ 475, 355, 1473, 1583, 1472, 1399, 371, 1222, 326, 398, |
| 159275 | + /* 1720 */ 559, 290, 331, 197, 100, 556, 209, 4, 198, 1011, |
| 159276 | + /* 1730 */ 1011, 1013, 1014, 27, 385, 256, 1520, 1518, 554, 1219, |
| 159277 | + /* 1740 */ 416, 559, 83, 443, 173, 206, 182, 221, 459, 167, |
| 159278 | + /* 1750 */ 177, 460, 175, 493, 233, 553, 79, 178, 1396, 179, |
| 159279 | + /* 1760 */ 35, 180, 96, 1402, 443, 396, 36, 467, 1478, 1401, |
| 159280 | + /* 1770 */ 482, 237, 1404, 399, 82, 186, 553, 1467, 89, 488, |
| 159281 | + /* 1780 */ 190, 268, 239, 491, 1021, 340, 240, 401, 1246, 1489, |
| 159282 | + /* 1790 */ 106, 106, 336, 509, 1294, 241, 1303, 107, 430, 443, |
| 159283 | + /* 1800 */ 566, 565, 1302, 91, 1011, 1021, 1598, 1301, 1273, 215, |
| 159284 | + /* 1810 */ 1597, 106, 106, 402, 877, 432, 354, 1272, 107, 1271, |
| 159285 | + /* 1820 */ 443, 566, 565, 1596, 1566, 1011, 1293, 433, 518, 299, |
| 159286 | + /* 1830 */ 300, 360, 95, 525, 1344, 364, 1011, 1011, 1013, 1014, |
| 159287 | + /* 1840 */ 27, 254, 255, 1552, 436, 1551, 125, 544, 10, 379, |
| 159288 | + /* 1850 */ 1326, 1453, 102, 97, 1345, 528, 304, 1011, 1011, 1013, |
| 159289 | + /* 1860 */ 1014, 27, 366, 377, 1343, 1342, 368, 370, 1325, 384, |
| 159290 | + /* 1870 */ 201, 383, 34, 1368, 1367, 568, 1177, 266, 263, 265, |
| 159291 | + /* 1880 */ 1505, 159, 569, 1241, 1236, 1506, 160, 142, 1504, 1503, |
| 159292 | + /* 1890 */ 297, 211, 830, 161, 212, 78, 444, 203, 308, 222, |
| 159293 | + /* 1900 */ 1081, 139, 1079, 316, 174, 163, 1203, 229, 176, 909, |
| 159294 | + /* 1910 */ 324, 232, 1095, 181, 409, 410, 172, 164, 165, 419, |
| 159295 | + /* 1920 */ 183, 85, 86, 421, 166, 87, 88, 1098, 1094, 234, |
| 159296 | + /* 1930 */ 235, 152, 18, 236, 335, 1087, 1216, 252, 187, 487, |
| 159297 | + /* 1940 */ 238, 188, 37, 845, 492, 356, 242, 496, 351, 501, |
| 159298 | + /* 1950 */ 189, 90, 19, 504, 348, 20, 875, 92, 298, 168, |
| 159299 | + /* 1960 */ 888, 153, 93, 511, 94, 1165, 154, 1047, 1134, 39, |
| 159300 | + /* 1970 */ 216, 1133, 271, 273, 958, 192, 953, 110, 1151, 1155, |
| 159301 | + /* 1980 */ 251, 7, 21, 1159, 1139, 22, 1153, 33, 23, 24, |
| 159302 | + /* 1990 */ 25, 540, 1158, 195, 98, 1062, 26, 1048, 1046, 1050, |
| 159303 | + /* 2000 */ 1104, 1051, 1103, 257, 258, 28, 40, 1173, 1016, 857, |
| 159304 | + /* 2010 */ 109, 29, 560, 388, 138, 1172, 259, 170, 260, 1232, |
| 159305 | + /* 2020 */ 1232, 919, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, |
| 159306 | + /* 2030 */ 1232, 1232, 1589, 1232, 1232, 1232, 1588, |
| 159018 | 159307 | }; |
| 159019 | 159308 | static const YYCODETYPE yy_lookahead[] = { |
| 159020 | | - /* 0 */ 192, 221, 192, 223, 192, 214, 272, 273, 274, 217, |
| 159021 | | - /* 10 */ 192, 231, 217, 192, 192, 192, 272, 273, 274, 19, |
| 159022 | | - /* 20 */ 233, 234, 214, 215, 214, 215, 203, 293, 203, 233, |
| 159023 | | - /* 30 */ 234, 31, 214, 215, 214, 214, 215, 214, 215, 39, |
| 159024 | | - /* 40 */ 208, 209, 210, 43, 44, 45, 46, 47, 48, 49, |
| 159025 | | - /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 236, 19, |
| 159026 | | - /* 60 */ 237, 238, 237, 238, 272, 273, 274, 272, 273, 274, |
| 159027 | | - /* 70 */ 192, 211, 251, 250, 251, 250, 26, 192, 200, 254, |
| 159028 | | - /* 80 */ 255, 260, 204, 43, 44, 45, 46, 47, 48, 49, |
| 159029 | | - /* 90 */ 50, 51, 52, 53, 54, 55, 56, 57, 192, 214, |
| 159030 | | - /* 100 */ 215, 214, 102, 103, 104, 105, 106, 107, 108, 109, |
| 159031 | | - /* 110 */ 110, 111, 112, 59, 229, 192, 294, 16, 306, 307, |
| 159032 | | - /* 120 */ 312, 313, 312, 311, 314, 59, 86, 204, 88, 19, |
| 159033 | | - /* 130 */ 312, 313, 272, 273, 274, 271, 26, 22, 54, 55, |
| 159309 | + /* 0 */ 192, 273, 274, 275, 192, 192, 273, 274, 275, 192, |
| 159310 | + /* 10 */ 218, 215, 192, 218, 192, 212, 234, 235, 205, 19, |
| 159311 | + /* 20 */ 11, 192, 294, 215, 216, 203, 192, 203, 209, 210, |
| 159312 | + /* 30 */ 211, 31, 215, 216, 205, 215, 216, 215, 216, 39, |
| 159313 | + /* 40 */ 227, 215, 229, 43, 44, 45, 46, 47, 48, 49, |
| 159314 | + /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 192, 19, |
| 159315 | + /* 60 */ 238, 239, 238, 239, 215, 273, 274, 275, 273, 274, |
| 159316 | + /* 70 */ 275, 237, 21, 251, 252, 251, 273, 274, 275, 255, |
| 159317 | + /* 80 */ 256, 215, 216, 43, 44, 45, 46, 47, 48, 49, |
| 159318 | + /* 90 */ 50, 51, 52, 53, 54, 55, 56, 57, 209, 210, |
| 159319 | + /* 100 */ 211, 76, 102, 103, 104, 105, 106, 107, 108, 109, |
| 159320 | + /* 110 */ 110, 111, 112, 59, 89, 111, 112, 92, 252, 307, |
| 159321 | + /* 120 */ 308, 313, 314, 112, 312, 59, 86, 261, 88, 19, |
| 159322 | + /* 130 */ 313, 80, 315, 313, 314, 25, 127, 128, 54, 55, |
| 159034 | 159323 | /* 140 */ 56, 57, 102, 103, 104, 105, 106, 107, 108, 109, |
| 159035 | 159324 | /* 150 */ 110, 111, 112, 43, 44, 45, 46, 47, 48, 49, |
| 159036 | | - /* 160 */ 50, 51, 52, 53, 54, 55, 56, 57, 53, 115, |
| 159037 | | - /* 170 */ 116, 117, 118, 309, 310, 121, 122, 123, 77, 69, |
| 159038 | | - /* 180 */ 79, 115, 116, 117, 59, 131, 102, 103, 104, 105, |
| 159039 | | - /* 190 */ 106, 107, 108, 109, 110, 111, 112, 72, 148, 19, |
| 159325 | + /* 160 */ 50, 51, 52, 53, 54, 55, 56, 57, 192, 115, |
| 159326 | + /* 170 */ 116, 117, 118, 122, 192, 121, 122, 123, 202, 69, |
| 159327 | + /* 180 */ 204, 115, 116, 117, 192, 131, 102, 103, 104, 105, |
| 159328 | + /* 190 */ 106, 107, 108, 109, 110, 111, 112, 215, 216, 19, |
| 159040 | 159329 | /* 200 */ 54, 55, 56, 57, 58, 108, 109, 110, 111, 112, |
| 159041 | | - /* 210 */ 304, 305, 102, 103, 104, 105, 106, 107, 108, 109, |
| 159330 | + /* 210 */ 192, 160, 102, 103, 104, 105, 106, 107, 108, 109, |
| 159042 | 159331 | /* 220 */ 110, 111, 112, 43, 44, 45, 46, 47, 48, 49, |
| 159043 | | - /* 230 */ 50, 51, 52, 53, 54, 55, 56, 57, 19, 112, |
| 159044 | | - /* 240 */ 115, 116, 117, 24, 208, 209, 210, 67, 102, 103, |
| 159045 | | - /* 250 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 192, |
| 159046 | | - /* 260 */ 59, 160, 43, 44, 45, 46, 47, 48, 49, 50, |
| 159047 | | - /* 270 */ 51, 52, 53, 54, 55, 56, 57, 19, 46, 47, |
| 159048 | | - /* 280 */ 48, 49, 102, 103, 104, 105, 106, 107, 108, 109, |
| 159049 | | - /* 290 */ 110, 111, 112, 213, 73, 184, 185, 186, 187, 188, |
| 159050 | | - /* 300 */ 189, 221, 81, 236, 46, 194, 192, 196, 19, 59, |
| 159051 | | - /* 310 */ 133, 59, 135, 136, 203, 192, 115, 116, 117, 127, |
| 159052 | | - /* 320 */ 128, 102, 103, 104, 105, 106, 107, 108, 109, 110, |
| 159332 | + /* 230 */ 50, 51, 52, 53, 54, 55, 56, 57, 19, 46, |
| 159333 | + /* 240 */ 47, 48, 49, 24, 248, 192, 250, 67, 102, 103, |
| 159334 | + /* 250 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 277, |
| 159335 | + /* 260 */ 127, 128, 43, 44, 45, 46, 47, 48, 49, 50, |
| 159336 | + /* 270 */ 51, 52, 53, 54, 55, 56, 57, 26, 164, 165, |
| 159337 | + /* 280 */ 272, 263, 102, 103, 104, 105, 106, 107, 108, 109, |
| 159338 | + /* 290 */ 110, 111, 112, 184, 185, 186, 187, 188, 189, 186, |
| 159339 | + /* 300 */ 187, 188, 189, 194, 76, 196, 229, 194, 19, 196, |
| 159340 | + /* 310 */ 59, 192, 203, 120, 59, 87, 203, 89, 310, 311, |
| 159341 | + /* 320 */ 92, 102, 103, 104, 105, 106, 107, 108, 109, 110, |
| 159053 | 159342 | /* 330 */ 111, 112, 43, 44, 45, 46, 47, 48, 49, 50, |
| 159054 | | - /* 340 */ 51, 52, 53, 54, 55, 56, 57, 126, 237, 238, |
| 159055 | | - /* 350 */ 100, 150, 120, 230, 186, 187, 188, 189, 137, 138, |
| 159056 | | - /* 360 */ 108, 250, 194, 26, 196, 115, 116, 115, 116, 117, |
| 159057 | | - /* 370 */ 120, 203, 114, 164, 165, 264, 102, 103, 104, 105, |
| 159058 | | - /* 380 */ 106, 107, 108, 109, 110, 111, 112, 192, 130, 111, |
| 159059 | | - /* 390 */ 112, 102, 103, 104, 105, 106, 107, 108, 109, 110, |
| 159060 | | - /* 400 */ 111, 112, 152, 153, 154, 237, 238, 296, 192, 214, |
| 159061 | | - /* 410 */ 215, 228, 192, 307, 192, 19, 59, 311, 250, 23, |
| 159062 | | - /* 420 */ 22, 106, 107, 108, 109, 110, 111, 112, 192, 72, |
| 159063 | | - /* 430 */ 214, 215, 264, 192, 214, 215, 214, 215, 149, 43, |
| 159343 | + /* 340 */ 51, 52, 53, 54, 55, 56, 57, 238, 239, 73, |
| 159344 | + /* 350 */ 231, 238, 239, 22, 23, 100, 25, 81, 305, 306, |
| 159345 | + /* 360 */ 251, 23, 25, 25, 251, 272, 115, 116, 117, 214, |
| 159346 | + /* 370 */ 115, 116, 144, 192, 265, 120, 114, 222, 265, 102, |
| 159347 | + /* 380 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, |
| 159348 | + /* 390 */ 192, 102, 103, 104, 105, 106, 107, 108, 109, 110, |
| 159349 | + /* 400 */ 111, 112, 126, 310, 311, 192, 297, 152, 153, 154, |
| 159350 | + /* 410 */ 297, 149, 192, 137, 138, 19, 192, 100, 192, 23, |
| 159351 | + /* 420 */ 22, 106, 107, 108, 109, 110, 111, 112, 215, 216, |
| 159352 | + /* 430 */ 106, 107, 101, 116, 192, 215, 216, 120, 149, 43, |
| 159064 | 159353 | /* 440 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, |
| 159065 | | - /* 450 */ 54, 55, 56, 57, 117, 214, 215, 59, 19, 187, |
| 159066 | | - /* 460 */ 192, 189, 23, 81, 296, 192, 194, 251, 196, 59, |
| 159067 | | - /* 470 */ 229, 251, 115, 116, 117, 203, 260, 106, 107, 142, |
| 159068 | | - /* 480 */ 260, 267, 43, 44, 45, 46, 47, 48, 49, 50, |
| 159069 | | - /* 490 */ 51, 52, 53, 54, 55, 56, 57, 261, 102, 103, |
| 159070 | | - /* 500 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 237, |
| 159071 | | - /* 510 */ 238, 76, 192, 115, 116, 117, 144, 192, 76, 137, |
| 159072 | | - /* 520 */ 138, 192, 250, 152, 89, 154, 116, 92, 19, 87, |
| 159073 | | - /* 530 */ 262, 89, 23, 22, 92, 163, 264, 192, 22, 214, |
| 159074 | | - /* 540 */ 215, 102, 103, 104, 105, 106, 107, 108, 109, 110, |
| 159354 | + /* 450 */ 54, 55, 56, 57, 117, 117, 192, 59, 19, 187, |
| 159355 | + /* 460 */ 59, 189, 23, 282, 240, 252, 194, 192, 196, 152, |
| 159356 | + /* 470 */ 153, 154, 252, 72, 261, 203, 152, 25, 154, 142, |
| 159357 | + /* 480 */ 142, 261, 43, 44, 45, 46, 47, 48, 49, 50, |
| 159358 | + /* 490 */ 51, 52, 53, 54, 55, 56, 57, 192, 102, 103, |
| 159359 | + /* 500 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 267, |
| 159360 | + /* 510 */ 238, 239, 237, 115, 116, 117, 115, 116, 117, 192, |
| 159361 | + /* 520 */ 59, 118, 16, 251, 121, 122, 123, 303, 19, 303, |
| 159362 | + /* 530 */ 59, 267, 23, 72, 131, 308, 22, 265, 22, 312, |
| 159363 | + /* 540 */ 24, 102, 103, 104, 105, 106, 107, 108, 109, 110, |
| 159075 | 159364 | /* 550 */ 111, 112, 43, 44, 45, 46, 47, 48, 49, 50, |
| 159076 | | - /* 560 */ 51, 52, 53, 54, 55, 56, 57, 19, 296, 118, |
| 159077 | | - /* 570 */ 59, 23, 121, 122, 123, 59, 251, 26, 46, 306, |
| 159078 | | - /* 580 */ 307, 261, 131, 192, 311, 192, 144, 192, 22, 203, |
| 159079 | | - /* 590 */ 100, 43, 44, 45, 46, 47, 48, 49, 50, 51, |
| 159080 | | - /* 600 */ 52, 53, 54, 55, 56, 57, 116, 214, 215, 271, |
| 159081 | | - /* 610 */ 120, 102, 103, 104, 105, 106, 107, 108, 109, 110, |
| 159082 | | - /* 620 */ 111, 112, 229, 237, 238, 59, 115, 116, 117, 299, |
| 159083 | | - /* 630 */ 300, 115, 116, 117, 59, 16, 250, 19, 192, 192, |
| 159084 | | - /* 640 */ 19, 23, 152, 153, 154, 24, 114, 309, 310, 192, |
| 159365 | + /* 560 */ 51, 52, 53, 54, 55, 56, 57, 19, 81, 297, |
| 159366 | + /* 570 */ 295, 23, 192, 59, 203, 59, 115, 116, 117, 108, |
| 159367 | + /* 580 */ 192, 73, 25, 77, 192, 79, 115, 116, 117, 137, |
| 159368 | + /* 590 */ 138, 43, 44, 45, 46, 47, 48, 49, 50, 51, |
| 159369 | + /* 600 */ 52, 53, 54, 55, 56, 57, 119, 215, 216, 238, |
| 159370 | + /* 610 */ 239, 102, 103, 104, 105, 106, 107, 108, 109, 110, |
| 159371 | + /* 620 */ 111, 112, 251, 192, 137, 138, 59, 234, 235, 115, |
| 159372 | + /* 630 */ 116, 117, 116, 76, 126, 127, 128, 19, 192, 268, |
| 159373 | + /* 640 */ 19, 23, 22, 192, 252, 24, 89, 300, 301, 92, |
| 159085 | 159374 | /* 650 */ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, |
| 159086 | 159375 | /* 660 */ 112, 43, 44, 45, 46, 47, 48, 49, 50, 51, |
| 159087 | | - /* 670 */ 52, 53, 54, 55, 56, 57, 19, 7, 8, 9, |
| 159088 | | - /* 680 */ 23, 115, 116, 117, 203, 290, 239, 238, 137, 138, |
| 159089 | | - /* 690 */ 115, 116, 117, 236, 192, 22, 77, 81, 79, 250, |
| 159376 | + /* 670 */ 52, 53, 54, 55, 56, 57, 19, 192, 192, 59, |
| 159377 | + /* 680 */ 23, 192, 115, 116, 117, 200, 240, 307, 308, 22, |
| 159378 | + /* 690 */ 205, 81, 312, 262, 22, 192, 133, 22, 135, 136, |
| 159090 | 159379 | /* 700 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, |
| 159091 | | - /* 710 */ 53, 54, 55, 56, 57, 192, 95, 142, 237, 238, |
| 159380 | + /* 710 */ 53, 54, 55, 56, 57, 197, 95, 150, 215, 216, |
| 159092 | 159381 | /* 720 */ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, |
| 159093 | | - /* 730 */ 112, 250, 59, 112, 192, 119, 26, 214, 215, 118, |
| 159094 | | - /* 740 */ 119, 120, 121, 122, 123, 124, 19, 192, 267, 302, |
| 159095 | | - /* 750 */ 23, 130, 229, 137, 138, 23, 214, 215, 26, 102, |
| 159382 | + /* 730 */ 112, 59, 192, 112, 59, 115, 116, 117, 192, 118, |
| 159383 | + /* 740 */ 119, 120, 121, 122, 123, 124, 19, 137, 138, 303, |
| 159384 | + /* 750 */ 23, 130, 192, 267, 192, 252, 267, 306, 203, 102, |
| 159096 | 159385 | /* 760 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, |
| 159097 | 159386 | /* 770 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, |
| 159098 | | - /* 780 */ 53, 54, 55, 56, 57, 19, 76, 11, 115, 116, |
| 159099 | | - /* 790 */ 117, 192, 29, 251, 239, 73, 33, 192, 192, 89, |
| 159100 | | - /* 800 */ 192, 192, 92, 192, 192, 126, 127, 128, 224, 43, |
| 159387 | + /* 780 */ 53, 54, 55, 56, 57, 19, 240, 115, 116, 117, |
| 159388 | + /* 790 */ 115, 116, 117, 238, 239, 222, 192, 224, 280, 237, |
| 159389 | + /* 800 */ 240, 192, 284, 192, 59, 232, 251, 140, 204, 43, |
| 159101 | 159390 | /* 810 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, |
| 159102 | | - /* 820 */ 54, 55, 56, 57, 192, 35, 214, 215, 65, 102, |
| 159391 | + /* 820 */ 54, 55, 56, 57, 192, 35, 215, 216, 192, 102, |
| 159103 | 159392 | /* 830 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, |
| 159104 | | - /* 840 */ 59, 229, 192, 192, 239, 239, 214, 215, 126, 127, |
| 159105 | | - /* 850 */ 128, 126, 127, 128, 307, 19, 66, 302, 311, 192, |
| 159106 | | - /* 860 */ 261, 229, 224, 22, 74, 214, 215, 192, 102, 103, |
| 159393 | + /* 840 */ 59, 230, 192, 192, 238, 239, 237, 215, 216, 303, |
| 159394 | + /* 850 */ 308, 215, 216, 16, 312, 19, 66, 251, 126, 127, |
| 159395 | + /* 860 */ 128, 116, 230, 303, 74, 203, 215, 216, 102, 103, |
| 159107 | 159396 | /* 870 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 43, |
| 159108 | 159397 | /* 880 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, |
| 159109 | | - /* 890 */ 54, 55, 56, 57, 192, 192, 115, 116, 117, 19, |
| 159110 | | - /* 900 */ 59, 290, 251, 127, 128, 192, 23, 302, 302, 26, |
| 159111 | | - /* 910 */ 302, 236, 192, 22, 21, 24, 214, 215, 192, 129, |
| 159112 | | - /* 920 */ 22, 192, 24, 142, 158, 45, 46, 47, 48, 49, |
| 159398 | + /* 890 */ 54, 55, 56, 57, 192, 212, 115, 116, 117, 19, |
| 159399 | + /* 900 */ 238, 239, 192, 252, 7, 8, 9, 192, 192, 238, |
| 159400 | + /* 910 */ 239, 308, 262, 251, 77, 312, 79, 215, 216, 129, |
| 159401 | + /* 920 */ 210, 211, 251, 142, 158, 45, 46, 47, 48, 49, |
| 159113 | 159402 | /* 930 */ 50, 51, 52, 53, 54, 55, 56, 57, 102, 103, |
| 159114 | | - /* 940 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 192, |
| 159115 | | - /* 950 */ 59, 12, 192, 251, 192, 305, 192, 116, 22, 23, |
| 159116 | | - /* 960 */ 242, 203, 26, 203, 24, 236, 27, 237, 238, 266, |
| 159117 | | - /* 970 */ 252, 214, 215, 80, 214, 215, 214, 215, 214, 215, |
| 159118 | | - /* 980 */ 250, 42, 102, 103, 104, 105, 106, 107, 108, 109, |
| 159119 | | - /* 990 */ 110, 111, 112, 229, 158, 237, 238, 237, 238, 59, |
| 159120 | | - /* 1000 */ 117, 281, 63, 192, 192, 192, 192, 116, 250, 192, |
| 159121 | | - /* 1010 */ 250, 251, 73, 251, 19, 122, 290, 237, 238, 24, |
| 159122 | | - /* 1020 */ 260, 209, 210, 209, 210, 142, 242, 214, 215, 197, |
| 159123 | | - /* 1030 */ 250, 22, 23, 276, 19, 26, 252, 101, 43, 44, |
| 159403 | + /* 940 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 12, |
| 159404 | + /* 950 */ 59, 192, 192, 237, 252, 243, 192, 192, 126, 127, |
| 159405 | + /* 960 */ 128, 192, 308, 203, 27, 253, 312, 308, 285, 207, |
| 159406 | + /* 970 */ 208, 312, 157, 290, 159, 215, 216, 262, 192, 42, |
| 159407 | + /* 980 */ 215, 216, 102, 103, 104, 105, 106, 107, 108, 109, |
| 159408 | + /* 990 */ 110, 111, 112, 283, 158, 230, 237, 160, 238, 239, |
| 159409 | + /* 1000 */ 63, 215, 216, 192, 192, 12, 115, 116, 117, 22, |
| 159410 | + /* 1010 */ 73, 251, 252, 192, 19, 192, 230, 239, 24, 24, |
| 159411 | + /* 1020 */ 27, 261, 210, 211, 99, 192, 215, 216, 225, 251, |
| 159412 | + /* 1030 */ 192, 192, 263, 142, 19, 42, 215, 216, 43, 44, |
| 159124 | 159413 | /* 1040 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, |
| 159125 | | - /* 1050 */ 55, 56, 57, 160, 19, 211, 116, 192, 43, 44, |
| 159414 | + /* 1050 */ 55, 56, 57, 59, 19, 291, 63, 132, 43, 44, |
| 159126 | 159415 | /* 1060 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, |
| 159127 | | - /* 1070 */ 55, 56, 57, 192, 192, 22, 192, 266, 43, 44, |
| 159416 | + /* 1070 */ 55, 56, 57, 252, 22, 23, 22, 25, 43, 44, |
| 159128 | 159417 | /* 1080 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, |
| 159129 | | - /* 1090 */ 55, 56, 57, 192, 282, 192, 282, 102, 103, 104, |
| 159418 | + /* 1090 */ 55, 56, 57, 106, 107, 283, 263, 102, 103, 104, |
| 159130 | 159419 | /* 1100 */ 105, 106, 107, 108, 109, 110, 111, 112, 59, 192, |
| 159131 | | - /* 1110 */ 101, 279, 192, 192, 230, 283, 192, 102, 103, 104, |
| 159132 | | - /* 1120 */ 105, 106, 107, 108, 109, 110, 111, 112, 204, 211, |
| 159133 | | - /* 1130 */ 66, 214, 215, 289, 214, 215, 108, 102, 103, 104, |
| 159134 | | - /* 1140 */ 105, 106, 107, 108, 109, 110, 111, 112, 266, 85, |
| 159135 | | - /* 1150 */ 226, 192, 228, 22, 23, 106, 107, 19, 94, 106, |
| 159136 | | - /* 1160 */ 107, 192, 134, 114, 115, 116, 117, 139, 119, 266, |
| 159137 | | - /* 1170 */ 203, 206, 207, 214, 215, 192, 127, 192, 206, 207, |
| 159420 | + /* 1110 */ 116, 144, 29, 59, 291, 192, 33, 102, 103, 104, |
| 159421 | + /* 1120 */ 105, 106, 107, 108, 109, 110, 111, 112, 192, 291, |
| 159422 | + /* 1130 */ 163, 19, 215, 216, 15, 192, 108, 102, 103, 104, |
| 159423 | + /* 1140 */ 105, 106, 107, 108, 109, 110, 111, 112, 65, 192, |
| 159424 | + /* 1150 */ 66, 215, 216, 101, 231, 106, 107, 19, 215, 216, |
| 159425 | + /* 1160 */ 192, 212, 134, 114, 115, 116, 117, 139, 119, 85, |
| 159426 | + /* 1170 */ 116, 207, 208, 230, 192, 19, 127, 192, 94, 60, |
| 159138 | 159427 | /* 1180 */ 59, 192, 44, 45, 46, 47, 48, 49, 50, 51, |
| 159139 | | - /* 1190 */ 52, 53, 54, 55, 56, 57, 192, 76, 192, 214, |
| 159140 | | - /* 1200 */ 215, 152, 284, 154, 237, 238, 192, 289, 87, 145, |
| 159141 | | - /* 1210 */ 89, 19, 20, 92, 22, 22, 23, 250, 307, 236, |
| 159142 | | - /* 1220 */ 214, 215, 311, 203, 12, 247, 192, 249, 36, 307, |
| 159143 | | - /* 1230 */ 192, 262, 101, 311, 137, 138, 115, 116, 117, 27, |
| 159428 | + /* 1190 */ 52, 53, 54, 55, 56, 57, 192, 76, 192, 31, |
| 159429 | + /* 1200 */ 192, 152, 46, 154, 215, 216, 192, 39, 87, 192, |
| 159430 | + /* 1210 */ 89, 19, 20, 92, 22, 192, 22, 23, 22, 230, |
| 159431 | + /* 1220 */ 263, 215, 216, 215, 216, 137, 138, 115, 36, 145, |
| 159432 | + /* 1230 */ 128, 192, 215, 216, 22, 23, 115, 116, 117, 290, |
| 159144 | 159433 | /* 1240 */ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, |
| 159145 | | - /* 1250 */ 112, 59, 214, 215, 42, 203, 307, 237, 238, 192, |
| 159146 | | - /* 1260 */ 311, 192, 26, 71, 192, 144, 262, 297, 298, 203, |
| 159147 | | - /* 1270 */ 250, 19, 20, 81, 22, 63, 262, 254, 255, 15, |
| 159148 | | - /* 1280 */ 26, 214, 215, 214, 215, 26, 214, 215, 36, 237, |
| 159149 | | - /* 1290 */ 238, 192, 100, 114, 101, 192, 262, 192, 106, 107, |
| 159150 | | - /* 1300 */ 48, 134, 250, 237, 238, 113, 139, 115, 116, 117, |
| 159151 | | - /* 1310 */ 192, 59, 120, 214, 215, 242, 250, 214, 215, 214, |
| 159152 | | - /* 1320 */ 215, 148, 149, 71, 60, 252, 242, 192, 149, 137, |
| 159153 | | - /* 1330 */ 138, 192, 214, 215, 192, 19, 252, 85, 192, 59, |
| 159154 | | - /* 1340 */ 192, 157, 90, 159, 152, 153, 154, 155, 156, 214, |
| 159155 | | - /* 1350 */ 215, 192, 100, 214, 215, 19, 214, 215, 106, 107, |
| 159156 | | - /* 1360 */ 214, 215, 214, 215, 22, 113, 192, 115, 116, 117, |
| 159157 | | - /* 1370 */ 192, 242, 120, 214, 215, 192, 24, 192, 31, 192, |
| 159158 | | - /* 1380 */ 144, 252, 26, 192, 125, 99, 39, 192, 214, 215, |
| 159159 | | - /* 1390 */ 192, 59, 214, 215, 192, 141, 116, 214, 215, 214, |
| 159160 | | - /* 1400 */ 215, 214, 215, 61, 152, 153, 154, 155, 156, 0, |
| 159161 | | - /* 1410 */ 1, 2, 214, 215, 5, 192, 214, 215, 132, 10, |
| 159162 | | - /* 1420 */ 11, 12, 13, 14, 1, 2, 17, 192, 5, 19, |
| 159163 | | - /* 1430 */ 20, 115, 22, 10, 11, 12, 13, 14, 192, 30, |
| 159164 | | - /* 1440 */ 17, 32, 23, 192, 23, 26, 36, 26, 116, 40, |
| 159165 | | - /* 1450 */ 192, 115, 192, 30, 192, 32, 119, 120, 59, 5, |
| 159166 | | - /* 1460 */ 214, 215, 128, 40, 10, 11, 12, 13, 14, 59, |
| 159167 | | - /* 1470 */ 19, 17, 214, 215, 214, 215, 214, 215, 120, 70, |
| 159168 | | - /* 1480 */ 192, 71, 22, 192, 30, 151, 32, 78, 130, 128, |
| 159169 | | - /* 1490 */ 81, 192, 140, 70, 40, 85, 192, 141, 7, 8, |
| 159170 | | - /* 1500 */ 90, 78, 214, 215, 81, 214, 215, 98, 83, 84, |
| 159171 | | - /* 1510 */ 100, 192, 151, 214, 215, 116, 106, 107, 214, 215, |
| 159172 | | - /* 1520 */ 192, 98, 192, 113, 70, 115, 116, 117, 23, 224, |
| 159173 | | - /* 1530 */ 120, 26, 78, 214, 215, 81, 19, 20, 152, 22, |
| 159174 | | - /* 1540 */ 154, 132, 214, 215, 214, 215, 137, 138, 97, 192, |
| 159175 | | - /* 1550 */ 256, 192, 98, 36, 23, 132, 192, 26, 192, 192, |
| 159176 | | - /* 1560 */ 137, 138, 152, 153, 154, 155, 156, 192, 192, 192, |
| 159177 | | - /* 1570 */ 161, 214, 215, 214, 215, 192, 59, 192, 214, 215, |
| 159178 | | - /* 1580 */ 214, 215, 192, 152, 161, 154, 132, 192, 71, 214, |
| 159179 | | - /* 1590 */ 215, 137, 138, 192, 192, 192, 19, 20, 192, 22, |
| 159180 | | - /* 1600 */ 140, 253, 85, 192, 214, 215, 192, 90, 23, 214, |
| 159181 | | - /* 1610 */ 215, 26, 192, 36, 192, 161, 23, 100, 192, 26, |
| 159182 | | - /* 1620 */ 214, 215, 192, 106, 107, 214, 215, 192, 23, 192, |
| 159183 | | - /* 1630 */ 113, 26, 115, 116, 117, 23, 59, 120, 26, 23, |
| 159184 | | - /* 1640 */ 23, 23, 26, 26, 26, 316, 234, 23, 71, 23, |
| 159185 | | - /* 1650 */ 26, 192, 26, 192, 192, 192, 192, 192, 192, 192, |
| 159186 | | - /* 1660 */ 192, 253, 212, 190, 286, 285, 253, 240, 253, 152, |
| 159187 | | - /* 1670 */ 153, 154, 155, 156, 241, 243, 295, 100, 291, 291, |
| 159188 | | - /* 1680 */ 223, 253, 227, 106, 107, 108, 269, 244, 244, 265, |
| 159189 | | - /* 1690 */ 113, 257, 115, 116, 117, 257, 243, 120, 269, 218, |
| 159190 | | - /* 1700 */ 217, 265, 217, 19, 20, 217, 22, 195, 269, 269, |
| 159191 | | - /* 1710 */ 60, 295, 140, 257, 243, 241, 247, 247, 199, 278, |
| 159192 | | - /* 1720 */ 36, 199, 199, 38, 19, 20, 150, 22, 149, 152, |
| 159193 | | - /* 1730 */ 153, 154, 155, 156, 22, 43, 232, 295, 292, 292, |
| 159194 | | - /* 1740 */ 18, 36, 235, 59, 268, 270, 235, 199, 235, 235, |
| 159195 | | - /* 1750 */ 18, 198, 148, 281, 244, 71, 270, 270, 268, 244, |
| 159196 | | - /* 1760 */ 232, 232, 244, 199, 59, 244, 198, 157, 288, 62, |
| 159197 | | - /* 1770 */ 199, 287, 198, 22, 219, 219, 71, 199, 198, 114, |
| 159198 | | - /* 1780 */ 199, 198, 216, 216, 100, 216, 225, 64, 22, 125, |
| 159199 | | - /* 1790 */ 106, 107, 222, 164, 219, 222, 24, 113, 216, 115, |
| 159200 | | - /* 1800 */ 116, 117, 218, 216, 120, 100, 216, 216, 310, 303, |
| 159201 | | - /* 1810 */ 112, 106, 107, 225, 280, 280, 219, 143, 113, 259, |
| 159202 | | - /* 1820 */ 115, 116, 117, 114, 259, 120, 199, 91, 82, 147, |
| 159203 | | - /* 1830 */ 144, 315, 22, 275, 199, 315, 152, 153, 154, 155, |
| 159204 | | - /* 1840 */ 156, 146, 145, 247, 258, 157, 25, 258, 245, 248, |
| 159205 | | - /* 1850 */ 244, 259, 258, 202, 259, 248, 258, 152, 153, 154, |
| 159206 | | - /* 1860 */ 155, 156, 263, 263, 26, 246, 13, 201, 193, 193, |
| 159207 | | - /* 1870 */ 6, 191, 191, 205, 191, 220, 220, 205, 211, 277, |
| 159208 | | - /* 1880 */ 211, 211, 211, 205, 4, 212, 3, 22, 162, 212, |
| 159209 | | - /* 1890 */ 211, 15, 23, 16, 23, 138, 129, 150, 26, 24, |
| 159210 | | - /* 1900 */ 141, 20, 16, 143, 1, 141, 129, 129, 61, 301, |
| 159211 | | - /* 1910 */ 301, 298, 150, 53, 53, 37, 53, 129, 115, 53, |
| 159212 | | - /* 1920 */ 140, 34, 1, 5, 22, 114, 68, 26, 160, 75, |
| 159213 | | - /* 1930 */ 68, 41, 140, 114, 24, 20, 19, 130, 124, 23, |
| 159214 | | - /* 1940 */ 67, 22, 22, 59, 22, 22, 67, 96, 24, 22, |
| 159215 | | - /* 1950 */ 37, 23, 67, 28, 148, 22, 26, 23, 23, 23, |
| 159216 | | - /* 1960 */ 23, 22, 140, 23, 97, 23, 34, 115, 22, 142, |
| 159217 | | - /* 1970 */ 26, 75, 34, 44, 75, 34, 88, 34, 86, 34, |
| 159218 | | - /* 1980 */ 23, 34, 93, 22, 24, 26, 34, 23, 26, 23, |
| 159219 | | - /* 1990 */ 23, 23, 23, 11, 23, 22, 26, 22, 22, 140, |
| 159220 | | - /* 2000 */ 23, 23, 22, 22, 134, 26, 23, 15, 140, 1, |
| 159221 | | - /* 2010 */ 1, 317, 317, 317, 140, 317, 317, 317, 317, 317, |
| 159222 | | - /* 2020 */ 317, 317, 140, 317, 317, 317, 317, 317, 317, 317, |
| 159223 | | - /* 2030 */ 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, |
| 159224 | | - /* 2040 */ 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, |
| 159225 | | - /* 2050 */ 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, |
| 159226 | | - /* 2060 */ 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, |
| 159227 | | - /* 2070 */ 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, |
| 159228 | | - /* 2080 */ 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, |
| 159229 | | - /* 2090 */ 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, |
| 159230 | | - /* 2100 */ 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, |
| 159231 | | - /* 2110 */ 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, |
| 159232 | | - /* 2120 */ 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, |
| 159233 | | - /* 2130 */ 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, |
| 159234 | | - /* 2140 */ 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, |
| 159235 | | - /* 2150 */ 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, |
| 159236 | | - /* 2160 */ 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, |
| 159237 | | - /* 2170 */ 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, |
| 159238 | | - /* 2180 */ 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, |
| 159239 | | - /* 2190 */ 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, |
| 159240 | | - /* 2200 */ 317, 317, 317, 317, 317, 317, 317, |
| 159241 | | -}; |
| 159242 | | -#define YY_SHIFT_COUNT (569) |
| 159434 | + /* 1250 */ 112, 59, 192, 151, 215, 216, 192, 61, 203, 298, |
| 159435 | + /* 1260 */ 299, 192, 192, 71, 25, 144, 203, 192, 203, 230, |
| 159436 | + /* 1270 */ 114, 19, 20, 81, 22, 215, 216, 263, 192, 215, |
| 159437 | + /* 1280 */ 216, 255, 256, 203, 215, 216, 130, 19, 36, 192, |
| 159438 | + /* 1290 */ 215, 216, 100, 238, 239, 101, 25, 192, 106, 107, |
| 159439 | + /* 1300 */ 48, 238, 239, 238, 239, 113, 251, 115, 116, 117, |
| 159440 | + /* 1310 */ 192, 59, 120, 101, 251, 192, 251, 192, 238, 239, |
| 159441 | + /* 1320 */ 215, 216, 192, 71, 46, 243, 192, 25, 25, 137, |
| 159442 | + /* 1330 */ 138, 251, 192, 215, 216, 253, 25, 85, 215, 216, |
| 159443 | + /* 1340 */ 215, 216, 90, 243, 152, 153, 154, 155, 156, 215, |
| 159444 | + /* 1350 */ 216, 192, 100, 253, 243, 215, 216, 192, 106, 107, |
| 159445 | + /* 1360 */ 243, 192, 148, 149, 253, 113, 192, 115, 116, 117, |
| 159446 | + /* 1370 */ 253, 192, 120, 192, 215, 216, 192, 23, 192, 25, |
| 159447 | + /* 1380 */ 215, 216, 192, 115, 215, 216, 22, 148, 24, 215, |
| 159448 | + /* 1390 */ 216, 192, 114, 192, 215, 216, 215, 216, 134, 215, |
| 159449 | + /* 1400 */ 216, 215, 216, 139, 152, 153, 154, 155, 156, 0, |
| 159450 | + /* 1410 */ 1, 2, 141, 23, 5, 25, 215, 216, 24, 10, |
| 159451 | + /* 1420 */ 11, 12, 13, 14, 1, 2, 17, 125, 5, 19, |
| 159452 | + /* 1430 */ 20, 268, 22, 10, 11, 12, 13, 14, 192, 30, |
| 159453 | + /* 1440 */ 17, 32, 23, 23, 25, 25, 36, 144, 23, 40, |
| 159454 | + /* 1450 */ 25, 192, 141, 30, 192, 32, 23, 22, 25, 5, |
| 159455 | + /* 1460 */ 128, 215, 216, 40, 10, 11, 12, 13, 14, 59, |
| 159456 | + /* 1470 */ 23, 17, 25, 192, 215, 216, 192, 215, 216, 70, |
| 159457 | + /* 1480 */ 23, 71, 25, 151, 30, 192, 32, 78, 53, 192, |
| 159458 | + /* 1490 */ 81, 192, 192, 70, 40, 85, 215, 216, 119, 120, |
| 159459 | + /* 1500 */ 90, 78, 59, 254, 81, 192, 192, 98, 215, 216, |
| 159460 | + /* 1510 */ 100, 23, 59, 25, 215, 216, 106, 107, 23, 192, |
| 159461 | + /* 1520 */ 25, 98, 19, 113, 70, 115, 116, 117, 215, 216, |
| 159462 | + /* 1530 */ 120, 192, 78, 192, 140, 81, 19, 20, 23, 22, |
| 159463 | + /* 1540 */ 25, 132, 215, 216, 192, 192, 137, 138, 192, 23, |
| 159464 | + /* 1550 */ 192, 25, 98, 36, 192, 132, 215, 216, 192, 116, |
| 159465 | + /* 1560 */ 137, 138, 152, 153, 154, 155, 156, 215, 216, 116, |
| 159466 | + /* 1570 */ 161, 215, 216, 215, 216, 120, 59, 215, 216, 7, |
| 159467 | + /* 1580 */ 8, 215, 216, 192, 161, 130, 132, 192, 71, 83, |
| 159468 | + /* 1590 */ 84, 137, 138, 59, 192, 192, 19, 20, 192, 22, |
| 159469 | + /* 1600 */ 97, 225, 85, 192, 23, 192, 25, 90, 192, 192, |
| 159470 | + /* 1610 */ 215, 216, 152, 36, 154, 161, 192, 100, 215, 216, |
| 159471 | + /* 1620 */ 192, 215, 216, 106, 107, 225, 215, 216, 192, 192, |
| 159472 | + /* 1630 */ 113, 192, 115, 116, 117, 257, 59, 120, 192, 215, |
| 159473 | + /* 1640 */ 216, 152, 192, 154, 192, 23, 317, 25, 71, 235, |
| 159474 | + /* 1650 */ 116, 215, 216, 192, 215, 216, 192, 192, 192, 192, |
| 159475 | + /* 1660 */ 192, 192, 192, 192, 192, 215, 216, 215, 216, 152, |
| 159476 | + /* 1670 */ 153, 154, 155, 156, 192, 192, 287, 100, 286, 241, |
| 159477 | + /* 1680 */ 254, 254, 242, 106, 107, 108, 254, 213, 254, 190, |
| 159478 | + /* 1690 */ 113, 270, 115, 116, 117, 296, 266, 120, 219, 258, |
| 159479 | + /* 1700 */ 244, 270, 258, 19, 20, 228, 22, 292, 266, 224, |
| 159480 | + /* 1710 */ 292, 218, 218, 195, 218, 270, 258, 60, 245, 270, |
| 159481 | + /* 1720 */ 36, 245, 244, 248, 19, 20, 242, 22, 248, 152, |
| 159482 | + /* 1730 */ 153, 154, 155, 156, 244, 140, 199, 199, 279, 38, |
| 159483 | + /* 1740 */ 199, 36, 150, 59, 296, 149, 22, 296, 18, 43, |
| 159484 | + /* 1750 */ 236, 199, 233, 18, 198, 71, 293, 236, 271, 236, |
| 159485 | + /* 1760 */ 269, 236, 148, 271, 59, 245, 269, 245, 282, 271, |
| 159486 | + /* 1770 */ 199, 198, 233, 245, 293, 233, 71, 245, 157, 62, |
| 159487 | + /* 1780 */ 22, 199, 198, 220, 100, 199, 198, 220, 199, 289, |
| 159488 | + /* 1790 */ 106, 107, 288, 114, 226, 198, 217, 113, 64, 115, |
| 159489 | + /* 1800 */ 116, 117, 217, 22, 120, 100, 223, 217, 217, 164, |
| 159490 | + /* 1810 */ 223, 106, 107, 220, 125, 24, 217, 219, 113, 217, |
| 159491 | + /* 1820 */ 115, 116, 117, 217, 311, 120, 226, 112, 304, 281, |
| 159492 | + /* 1830 */ 281, 220, 114, 143, 260, 259, 152, 153, 154, 155, |
| 159493 | + /* 1840 */ 156, 199, 91, 316, 82, 316, 147, 144, 22, 199, |
| 159494 | + /* 1850 */ 249, 276, 157, 146, 260, 145, 278, 152, 153, 154, |
| 159495 | + /* 1860 */ 155, 156, 259, 248, 260, 260, 259, 259, 249, 245, |
| 159496 | + /* 1870 */ 247, 246, 25, 264, 264, 201, 13, 6, 193, 193, |
| 159497 | + /* 1880 */ 212, 206, 191, 191, 191, 212, 206, 221, 212, 212, |
| 159498 | + /* 1890 */ 221, 213, 4, 206, 213, 212, 3, 22, 162, 15, |
| 159499 | + /* 1900 */ 23, 16, 23, 138, 150, 129, 25, 24, 141, 20, |
| 159500 | + /* 1910 */ 16, 143, 1, 141, 302, 302, 299, 129, 129, 61, |
| 159501 | + /* 1920 */ 150, 53, 53, 37, 129, 53, 53, 115, 1, 34, |
| 159502 | + /* 1930 */ 140, 5, 22, 114, 160, 68, 75, 25, 68, 41, |
| 159503 | + /* 1940 */ 140, 114, 24, 20, 19, 130, 124, 67, 24, 67, |
| 159504 | + /* 1950 */ 22, 22, 22, 96, 23, 22, 59, 22, 67, 37, |
| 159505 | + /* 1960 */ 28, 23, 148, 22, 25, 23, 23, 23, 23, 22, |
| 159506 | + /* 1970 */ 140, 97, 23, 23, 115, 22, 142, 25, 88, 75, |
| 159507 | + /* 1980 */ 34, 44, 34, 75, 23, 34, 86, 22, 34, 34, |
| 159508 | + /* 1990 */ 34, 24, 93, 25, 25, 23, 34, 23, 23, 23, |
| 159509 | + /* 2000 */ 23, 11, 23, 25, 22, 22, 22, 1, 23, 23, |
| 159510 | + /* 2010 */ 22, 22, 25, 15, 23, 1, 140, 25, 140, 318, |
| 159511 | + /* 2020 */ 318, 134, 318, 318, 318, 318, 318, 318, 318, 318, |
| 159512 | + /* 2030 */ 318, 318, 140, 318, 318, 318, 140, 318, 318, 318, |
| 159513 | + /* 2040 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 159514 | + /* 2050 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 159515 | + /* 2060 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 159516 | + /* 2070 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 159517 | + /* 2080 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 159518 | + /* 2090 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 159519 | + /* 2100 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 159520 | + /* 2110 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 159521 | + /* 2120 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 159522 | + /* 2130 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 159523 | + /* 2140 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 159524 | + /* 2150 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 159525 | + /* 2160 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 159526 | + /* 2170 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 159527 | + /* 2180 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 159528 | + /* 2190 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 159529 | + /* 2200 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 159530 | + /* 2210 */ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, |
| 159531 | + /* 2220 */ 318, |
| 159532 | +}; |
| 159533 | +#define YY_SHIFT_COUNT (571) |
| 159243 | 159534 | #define YY_SHIFT_MIN (0) |
| 159244 | | -#define YY_SHIFT_MAX (2009) |
| 159535 | +#define YY_SHIFT_MAX (2014) |
| 159245 | 159536 | static const unsigned short int yy_shift_ofst[] = { |
| 159246 | | - /* 0 */ 1423, 1409, 1454, 1192, 1192, 382, 1252, 1410, 1517, 1684, |
| 159247 | | - /* 10 */ 1684, 1684, 221, 0, 0, 180, 1015, 1684, 1684, 1684, |
| 159537 | + /* 0 */ 1423, 1409, 1454, 1192, 1192, 610, 1252, 1410, 1517, 1684, |
| 159538 | + /* 10 */ 1684, 1684, 276, 0, 0, 180, 1015, 1684, 1684, 1684, |
| 159248 | 159539 | /* 20 */ 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, |
| 159249 | | - /* 30 */ 1049, 1049, 1121, 1121, 54, 616, 382, 382, 382, 382, |
| 159250 | | - /* 40 */ 382, 40, 110, 219, 289, 396, 439, 509, 548, 618, |
| 159540 | + /* 30 */ 1049, 1049, 1121, 1121, 54, 487, 610, 610, 610, 610, |
| 159541 | + /* 40 */ 610, 40, 110, 219, 289, 396, 439, 509, 548, 618, |
| 159251 | 159542 | /* 50 */ 657, 727, 766, 836, 995, 1015, 1015, 1015, 1015, 1015, |
| 159252 | 159543 | /* 60 */ 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, |
| 159253 | 159544 | /* 70 */ 1015, 1015, 1015, 1035, 1015, 1138, 880, 880, 1577, 1684, |
| 159254 | 159545 | /* 80 */ 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, |
| 159255 | 159546 | /* 90 */ 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, |
| 159256 | 159547 | /* 100 */ 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, |
| 159257 | 159548 | /* 110 */ 1684, 1684, 1684, 1705, 1684, 1684, 1684, 1684, 1684, 1684, |
| 159258 | 159549 | /* 120 */ 1684, 1684, 1684, 1684, 1684, 1684, 1684, 146, 84, 84, |
| 159259 | | - /* 130 */ 84, 84, 84, 274, 315, 125, 97, 357, 66, 66, |
| 159260 | | - /* 140 */ 893, 258, 66, 66, 371, 371, 66, 551, 551, 551, |
| 159261 | | - /* 150 */ 551, 192, 209, 209, 278, 127, 2023, 2023, 621, 621, |
| 159262 | | - /* 160 */ 621, 201, 398, 398, 398, 398, 939, 939, 442, 936, |
| 159263 | | - /* 170 */ 1009, 66, 66, 66, 66, 66, 66, 66, 66, 66, |
| 159550 | + /* 130 */ 84, 84, 84, 277, 315, 401, 97, 461, 251, 66, |
| 159551 | + /* 140 */ 66, 51, 1156, 66, 66, 324, 324, 66, 452, 452, |
| 159552 | + /* 150 */ 452, 452, 133, 114, 114, 4, 11, 2037, 2037, 621, |
| 159553 | + /* 160 */ 621, 621, 567, 398, 398, 398, 398, 937, 937, 228, |
| 159554 | + /* 170 */ 251, 331, 1052, 66, 66, 66, 66, 66, 66, 66, |
| 159264 | 159555 | /* 180 */ 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, |
| 159265 | | - /* 190 */ 66, 710, 710, 66, 776, 435, 435, 410, 410, 372, |
| 159266 | | - /* 200 */ 1097, 2023, 2023, 2023, 2023, 2023, 2023, 2023, 250, 490, |
| 159267 | | - /* 210 */ 490, 511, 451, 516, 252, 566, 575, 781, 673, 66, |
| 159268 | | - /* 220 */ 66, 66, 66, 66, 66, 66, 66, 66, 66, 722, |
| 159269 | | - /* 230 */ 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, |
| 159270 | | - /* 240 */ 66, 66, 790, 790, 790, 66, 66, 66, 883, 66, |
| 159271 | | - /* 250 */ 66, 66, 891, 1064, 66, 66, 1212, 66, 66, 66, |
| 159272 | | - /* 260 */ 66, 66, 66, 66, 66, 725, 763, 177, 940, 940, |
| 159273 | | - /* 270 */ 940, 940, 337, 177, 177, 1028, 1053, 670, 1264, 1179, |
| 159274 | | - /* 280 */ 1173, 1254, 1316, 1173, 1316, 1336, 50, 1179, 1179, 50, |
| 159275 | | - /* 290 */ 1179, 1254, 1336, 1259, 732, 532, 1347, 1347, 1347, 1316, |
| 159276 | | - /* 300 */ 1236, 1236, 1184, 1356, 1167, 898, 1650, 1650, 1572, 1572, |
| 159277 | | - /* 310 */ 1685, 1685, 1572, 1576, 1579, 1712, 1692, 1722, 1722, 1722, |
| 159278 | | - /* 320 */ 1722, 1572, 1732, 1604, 1579, 1579, 1604, 1712, 1692, 1604, |
| 159279 | | - /* 330 */ 1692, 1604, 1572, 1732, 1610, 1707, 1572, 1732, 1751, 1572, |
| 159280 | | - /* 340 */ 1732, 1572, 1732, 1751, 1665, 1665, 1665, 1723, 1766, 1766, |
| 159281 | | - /* 350 */ 1751, 1665, 1664, 1665, 1723, 1665, 1665, 1629, 1772, 1698, |
| 159282 | | - /* 360 */ 1698, 1751, 1674, 1709, 1674, 1709, 1674, 1709, 1674, 1709, |
| 159283 | | - /* 370 */ 1572, 1736, 1736, 1746, 1746, 1682, 1686, 1810, 1572, 1688, |
| 159284 | | - /* 380 */ 1682, 1695, 1697, 1604, 1821, 1838, 1853, 1853, 1864, 1864, |
| 159285 | | - /* 390 */ 1864, 2023, 2023, 2023, 2023, 2023, 2023, 2023, 2023, 2023, |
| 159286 | | - /* 400 */ 2023, 2023, 2023, 2023, 2023, 2023, 232, 101, 1131, 1193, |
| 159287 | | - /* 410 */ 619, 679, 841, 1421, 1286, 115, 1352, 1334, 1361, 1419, |
| 159288 | | - /* 420 */ 1342, 1505, 1531, 1585, 1593, 1605, 1612, 1280, 1337, 1491, |
| 159289 | | - /* 430 */ 1358, 1451, 1332, 1616, 1617, 1425, 1618, 1386, 1431, 1624, |
| 159290 | | - /* 440 */ 1626, 1399, 1460, 1880, 1883, 1865, 1726, 1876, 1877, 1869, |
| 159291 | | - /* 450 */ 1871, 1757, 1747, 1767, 1872, 1872, 1875, 1759, 1881, 1760, |
| 159292 | | - /* 460 */ 1886, 1903, 1764, 1777, 1872, 1778, 1847, 1878, 1872, 1762, |
| 159293 | | - /* 470 */ 1860, 1861, 1863, 1866, 1788, 1803, 1887, 1780, 1921, 1918, |
| 159294 | | - /* 480 */ 1902, 1811, 1768, 1858, 1901, 1862, 1854, 1890, 1792, 1819, |
| 159295 | | - /* 490 */ 1910, 1915, 1917, 1807, 1814, 1919, 1873, 1920, 1922, 1916, |
| 159296 | | - /* 500 */ 1923, 1879, 1884, 1924, 1851, 1925, 1927, 1885, 1913, 1928, |
| 159297 | | - /* 510 */ 1806, 1933, 1934, 1935, 1936, 1930, 1937, 1939, 1867, 1822, |
| 159298 | | - /* 520 */ 1940, 1942, 1852, 1932, 1946, 1827, 1944, 1938, 1941, 1943, |
| 159299 | | - /* 530 */ 1945, 1888, 1896, 1892, 1929, 1899, 1889, 1947, 1957, 1961, |
| 159300 | | - /* 540 */ 1960, 1959, 1962, 1952, 1964, 1944, 1966, 1967, 1968, 1969, |
| 159301 | | - /* 550 */ 1970, 1971, 1973, 1982, 1975, 1976, 1977, 1978, 1980, 1981, |
| 159302 | | - /* 560 */ 1979, 1870, 1859, 1868, 1874, 1882, 1983, 1992, 2008, 2009, |
| 159556 | + /* 190 */ 66, 66, 66, 557, 557, 66, 9, 25, 25, 745, |
| 159557 | + /* 200 */ 745, 967, 1088, 2037, 2037, 2037, 2037, 2037, 2037, 2037, |
| 159558 | + /* 210 */ 255, 317, 317, 514, 403, 620, 471, 672, 781, 891, |
| 159559 | + /* 220 */ 675, 66, 66, 66, 66, 66, 66, 66, 66, 66, |
| 159560 | + /* 230 */ 66, 508, 66, 66, 66, 66, 66, 66, 66, 66, |
| 159561 | + /* 240 */ 66, 66, 66, 66, 790, 790, 790, 66, 66, 66, |
| 159562 | + /* 250 */ 338, 66, 66, 66, 516, 1084, 66, 66, 993, 66, |
| 159563 | + /* 260 */ 66, 66, 66, 66, 66, 66, 66, 732, 1083, 563, |
| 159564 | + /* 270 */ 994, 994, 994, 994, 337, 563, 563, 1028, 987, 897, |
| 159565 | + /* 280 */ 1119, 262, 1214, 1271, 1112, 1214, 1112, 1268, 1239, 262, |
| 159566 | + /* 290 */ 262, 1239, 262, 1271, 1268, 1302, 1354, 1278, 1168, 1168, |
| 159567 | + /* 300 */ 1168, 1112, 1303, 1303, 815, 1311, 1264, 1364, 1657, 1657, |
| 159568 | + /* 310 */ 1595, 1595, 1701, 1701, 1595, 1592, 1596, 1724, 1706, 1730, |
| 159569 | + /* 320 */ 1730, 1730, 1730, 1595, 1735, 1614, 1596, 1596, 1614, 1724, |
| 159570 | + /* 330 */ 1706, 1614, 1706, 1614, 1595, 1735, 1621, 1717, 1595, 1735, |
| 159571 | + /* 340 */ 1758, 1595, 1735, 1595, 1735, 1758, 1679, 1679, 1679, 1734, |
| 159572 | + /* 350 */ 1781, 1781, 1758, 1679, 1689, 1679, 1734, 1679, 1679, 1645, |
| 159573 | + /* 360 */ 1791, 1715, 1715, 1758, 1690, 1718, 1690, 1718, 1690, 1718, |
| 159574 | + /* 370 */ 1690, 1718, 1595, 1751, 1751, 1762, 1762, 1699, 1703, 1826, |
| 159575 | + /* 380 */ 1595, 1695, 1699, 1707, 1710, 1614, 1847, 1863, 1863, 1871, |
| 159576 | + /* 390 */ 1871, 1871, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, |
| 159577 | + /* 400 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 193, 837, 1194, |
| 159578 | + /* 410 */ 1212, 506, 832, 1054, 1390, 925, 1435, 1394, 1102, 1332, |
| 159579 | + /* 420 */ 1419, 1196, 1420, 1425, 1433, 1447, 1457, 1488, 1443, 1379, |
| 159580 | + /* 430 */ 1572, 1455, 1503, 1453, 1495, 1515, 1506, 1526, 1460, 1489, |
| 159581 | + /* 440 */ 1581, 1622, 1534, 667, 1888, 1893, 1875, 1736, 1884, 1885, |
| 159582 | + /* 450 */ 1877, 1879, 1765, 1754, 1776, 1881, 1881, 1883, 1767, 1889, |
| 159583 | + /* 460 */ 1768, 1894, 1911, 1772, 1788, 1881, 1789, 1858, 1886, 1881, |
| 159584 | + /* 470 */ 1770, 1868, 1869, 1872, 1873, 1795, 1812, 1895, 1790, 1927, |
| 159585 | + /* 480 */ 1926, 1910, 1819, 1774, 1867, 1912, 1870, 1861, 1898, 1800, |
| 159586 | + /* 490 */ 1827, 1918, 1923, 1925, 1815, 1822, 1928, 1880, 1929, 1930, |
| 159587 | + /* 500 */ 1931, 1933, 1882, 1897, 1924, 1857, 1932, 1935, 1891, 1922, |
| 159588 | + /* 510 */ 1938, 1814, 1941, 1942, 1943, 1944, 1939, 1945, 1947, 1874, |
| 159589 | + /* 520 */ 1830, 1949, 1950, 1859, 1946, 1953, 1834, 1952, 1948, 1951, |
| 159590 | + /* 530 */ 1954, 1955, 1890, 1904, 1900, 1937, 1908, 1899, 1956, 1961, |
| 159591 | + /* 540 */ 1965, 1967, 1968, 1969, 1962, 1972, 1952, 1974, 1975, 1976, |
| 159592 | + /* 550 */ 1977, 1978, 1979, 1982, 1990, 1983, 1984, 1985, 1986, 1988, |
| 159593 | + /* 560 */ 1989, 1987, 1887, 1876, 1878, 1892, 1896, 1992, 1991, 1998, |
| 159594 | + /* 570 */ 2006, 2014, |
| 159303 | 159595 | }; |
| 159304 | | -#define YY_REDUCE_COUNT (405) |
| 159305 | | -#define YY_REDUCE_MIN (-266) |
| 159306 | | -#define YY_REDUCE_MAX (1683) |
| 159596 | +#define YY_REDUCE_COUNT (406) |
| 159597 | +#define YY_REDUCE_MIN (-272) |
| 159598 | +#define YY_REDUCE_MAX (1693) |
| 159307 | 159599 | static const short yy_reduce_ofst[] = { |
| 159308 | | - /* 0 */ 111, 168, 272, 760, -177, -175, -192, -190, -182, -179, |
| 159309 | | - /* 10 */ 216, 220, 481, -208, -205, -266, -140, -115, 241, 393, |
| 159310 | | - /* 20 */ 523, 325, 612, 632, 542, 651, 764, 757, 702, 762, |
| 159311 | | - /* 30 */ 812, 814, -188, 273, 924, 386, 758, 967, 1020, 1052, |
| 159312 | | - /* 40 */ 1066, -256, -256, -256, -256, -256, -256, -256, -256, -256, |
| 159313 | | - /* 50 */ -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, |
| 159314 | | - /* 60 */ -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, |
| 159315 | | - /* 70 */ -256, -256, -256, -256, -256, -256, -256, -256, 195, 222, |
| 159316 | | - /* 80 */ 813, 917, 920, 959, 985, 1006, 1038, 1067, 1069, 1072, |
| 159317 | | - /* 90 */ 1099, 1103, 1105, 1118, 1135, 1139, 1142, 1146, 1148, 1159, |
| 159318 | | - /* 100 */ 1174, 1178, 1183, 1185, 1187, 1198, 1202, 1246, 1258, 1260, |
| 159319 | | - /* 110 */ 1262, 1288, 1291, 1299, 1304, 1319, 1328, 1330, 1357, 1359, |
| 159320 | | - /* 120 */ 1364, 1366, 1375, 1390, 1395, 1406, 1411, -256, -256, -256, |
| 159321 | | - /* 130 */ -256, -256, -256, -256, -256, 447, -256, 555, -178, 605, |
| 159322 | | - /* 140 */ 832, -220, 606, -94, -168, 36, -122, 730, 780, 730, |
| 159323 | | - /* 150 */ 780, 918, -136, 338, -256, -256, -256, -256, 80, 80, |
| 159324 | | - /* 160 */ 80, 720, 703, 811, 882, 903, -213, -204, 106, 330, |
| 159325 | | - /* 170 */ 330, -77, 236, 320, 599, 67, 457, 675, 729, 395, |
| 159326 | | - /* 180 */ 268, 611, 969, 1004, 726, 1014, 983, 123, 884, 608, |
| 159327 | | - /* 190 */ 1034, 547, 911, 650, 844, 922, 949, 965, 972, 978, |
| 159328 | | - /* 200 */ 449, 970, 718, 784, 1073, 1084, 1023, 1129, -209, -180, |
| 159329 | | - /* 210 */ -113, 114, 183, 329, 345, 391, 446, 502, 609, 667, |
| 159330 | | - /* 220 */ 713, 817, 865, 881, 901, 921, 989, 1191, 1195, 214, |
| 159331 | | - /* 230 */ 1223, 1235, 1251, 1367, 1376, 1377, 1383, 1385, 1401, 1402, |
| 159332 | | - /* 240 */ 1403, 1414, 584, 638, 1305, 1420, 1422, 1426, 1294, 1430, |
| 159333 | | - /* 250 */ 1435, 1437, 1348, 1329, 1459, 1461, 1412, 1462, 345, 1463, |
| 159334 | | - /* 260 */ 1464, 1465, 1466, 1467, 1468, 1378, 1380, 1427, 1408, 1413, |
| 159335 | | - /* 270 */ 1415, 1428, 1294, 1427, 1427, 1433, 1450, 1473, 1381, 1417, |
| 159336 | | - /* 280 */ 1424, 1432, 1434, 1436, 1438, 1387, 1443, 1429, 1439, 1444, |
| 159337 | | - /* 290 */ 1440, 1453, 1388, 1481, 1455, 1457, 1483, 1485, 1488, 1456, |
| 159338 | | - /* 300 */ 1469, 1470, 1441, 1471, 1474, 1512, 1416, 1442, 1519, 1522, |
| 159339 | | - /* 310 */ 1446, 1447, 1523, 1472, 1475, 1476, 1504, 1507, 1511, 1513, |
| 159340 | | - /* 320 */ 1514, 1548, 1553, 1510, 1486, 1487, 1515, 1490, 1528, 1518, |
| 159341 | | - /* 330 */ 1529, 1521, 1564, 1568, 1480, 1484, 1571, 1574, 1555, 1578, |
| 159342 | | - /* 340 */ 1580, 1581, 1583, 1556, 1566, 1567, 1569, 1561, 1570, 1573, |
| 159343 | | - /* 350 */ 1575, 1582, 1584, 1587, 1588, 1590, 1591, 1498, 1506, 1534, |
| 159344 | | - /* 360 */ 1535, 1597, 1560, 1586, 1565, 1589, 1592, 1594, 1595, 1598, |
| 159345 | | - /* 370 */ 1627, 1516, 1520, 1599, 1600, 1601, 1596, 1558, 1635, 1602, |
| 159346 | | - /* 380 */ 1607, 1619, 1603, 1606, 1651, 1666, 1675, 1676, 1680, 1681, |
| 159347 | | - /* 390 */ 1683, 1608, 1609, 1613, 1668, 1667, 1669, 1670, 1671, 1672, |
| 159348 | | - /* 400 */ 1655, 1656, 1673, 1677, 1679, 1678, |
| 159600 | + /* 0 */ 109, 113, 272, 760, -178, -176, -192, -183, -180, -134, |
| 159601 | + /* 10 */ 213, 220, 371, -208, -205, -272, -197, 611, 632, 765, |
| 159602 | + /* 20 */ 786, 392, 943, 989, 503, 651, 1039, -18, 702, 821, |
| 159603 | + /* 30 */ 710, 812, -188, 380, -187, 555, 662, 1055, 1063, 1065, |
| 159604 | + /* 40 */ 1080, -267, -267, -267, -267, -267, -267, -267, -267, -267, |
| 159605 | + /* 50 */ -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, |
| 159606 | + /* 60 */ -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, |
| 159607 | + /* 70 */ -267, -267, -267, -267, -267, -267, -267, -267, 636, 811, |
| 159608 | + /* 80 */ 917, 936, 1006, 1008, 1017, 1060, 1064, 1069, 1075, 1105, |
| 159609 | + /* 90 */ 1118, 1123, 1125, 1134, 1140, 1159, 1165, 1169, 1174, 1179, |
| 159610 | + /* 100 */ 1181, 1184, 1186, 1201, 1246, 1259, 1262, 1281, 1293, 1299, |
| 159611 | + /* 110 */ 1313, 1327, 1341, 1352, 1356, 1358, 1362, 1366, 1395, 1403, |
| 159612 | + /* 120 */ 1406, 1411, 1424, 1436, 1439, 1450, 1452, -267, -267, -267, |
| 159613 | + /* 130 */ -267, -267, -267, -267, -267, 224, -267, 446, -24, 275, |
| 159614 | + /* 140 */ 546, 518, 573, 560, 53, -181, -111, 485, 606, 671, |
| 159615 | + /* 150 */ 606, 671, 683, 8, 93, -267, -267, -267, -267, 155, |
| 159616 | + /* 160 */ 155, 155, 181, 242, 264, 486, 489, -218, 393, 227, |
| 159617 | + /* 170 */ 604, 347, 347, -171, 431, 650, 715, -166, 562, 609, |
| 159618 | + /* 180 */ 716, 764, 18, 823, 769, 833, 838, 957, 759, 119, |
| 159619 | + /* 190 */ 923, 226, 1014, 542, 603, 451, 949, 654, 659, 762, |
| 159620 | + /* 200 */ 964, -4, 778, 961, 712, 1082, 1100, 1111, 1026, 1117, |
| 159621 | + /* 210 */ -204, -174, -151, -8, 77, 198, 305, 327, 388, 540, |
| 159622 | + /* 220 */ 839, 968, 982, 985, 1004, 1023, 1070, 1086, 1097, 1130, |
| 159623 | + /* 230 */ 1190, 1163, 1199, 1284, 1297, 1300, 1314, 1339, 1353, 1391, |
| 159624 | + /* 240 */ 1402, 1413, 1416, 1417, 803, 1376, 1400, 1428, 1437, 1446, |
| 159625 | + /* 250 */ 1378, 1461, 1464, 1465, 1249, 1329, 1466, 1467, 1414, 1468, |
| 159626 | + /* 260 */ 305, 1469, 1470, 1471, 1472, 1482, 1483, 1389, 1392, 1438, |
| 159627 | + /* 270 */ 1426, 1427, 1432, 1434, 1378, 1438, 1438, 1440, 1474, 1499, |
| 159628 | + /* 280 */ 1399, 1421, 1430, 1456, 1441, 1442, 1444, 1415, 1473, 1431, |
| 159629 | + /* 290 */ 1445, 1476, 1449, 1478, 1418, 1479, 1477, 1485, 1493, 1494, |
| 159630 | + /* 300 */ 1496, 1458, 1475, 1480, 1459, 1490, 1484, 1518, 1448, 1451, |
| 159631 | + /* 310 */ 1537, 1538, 1463, 1481, 1541, 1486, 1487, 1491, 1519, 1514, |
| 159632 | + /* 320 */ 1521, 1523, 1525, 1552, 1556, 1520, 1492, 1498, 1522, 1497, |
| 159633 | + /* 330 */ 1539, 1528, 1542, 1532, 1571, 1573, 1500, 1504, 1582, 1584, |
| 159634 | + /* 340 */ 1563, 1586, 1588, 1589, 1597, 1567, 1579, 1585, 1590, 1568, |
| 159635 | + /* 350 */ 1583, 1587, 1593, 1591, 1598, 1599, 1600, 1602, 1606, 1513, |
| 159636 | + /* 360 */ 1524, 1548, 1549, 1611, 1574, 1576, 1594, 1603, 1604, 1607, |
| 159637 | + /* 370 */ 1605, 1608, 1642, 1527, 1529, 1609, 1610, 1601, 1615, 1575, |
| 159638 | + /* 380 */ 1650, 1578, 1619, 1623, 1625, 1624, 1674, 1685, 1686, 1691, |
| 159639 | + /* 390 */ 1692, 1693, 1612, 1613, 1617, 1675, 1668, 1673, 1676, 1677, |
| 159640 | + /* 400 */ 1680, 1666, 1669, 1678, 1681, 1683, 1687, |
| 159349 | 159641 | }; |
| 159350 | 159642 | static const YYACTIONTYPE yy_default[] = { |
| 159351 | | - /* 0 */ 1623, 1623, 1623, 1453, 1223, 1332, 1223, 1223, 1223, 1453, |
| 159352 | | - /* 10 */ 1453, 1453, 1223, 1362, 1362, 1506, 1254, 1223, 1223, 1223, |
| 159353 | | - /* 20 */ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1452, 1223, 1223, |
| 159354 | | - /* 30 */ 1223, 1223, 1541, 1541, 1223, 1223, 1223, 1223, 1223, 1223, |
| 159355 | | - /* 40 */ 1223, 1223, 1371, 1223, 1378, 1223, 1223, 1223, 1223, 1223, |
| 159356 | | - /* 50 */ 1454, 1455, 1223, 1223, 1223, 1505, 1507, 1470, 1385, 1384, |
| 159357 | | - /* 60 */ 1383, 1382, 1488, 1349, 1376, 1369, 1373, 1448, 1449, 1447, |
| 159358 | | - /* 70 */ 1451, 1455, 1454, 1223, 1372, 1419, 1433, 1418, 1223, 1223, |
| 159359 | | - /* 80 */ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, |
| 159360 | | - /* 90 */ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, |
| 159361 | | - /* 100 */ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, |
| 159362 | | - /* 110 */ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, |
| 159363 | | - /* 120 */ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1427, 1432, 1438, |
| 159364 | | - /* 130 */ 1431, 1428, 1421, 1420, 1422, 1223, 1423, 1223, 1223, 1223, |
| 159365 | | - /* 140 */ 1244, 1296, 1223, 1223, 1223, 1223, 1223, 1525, 1524, 1223, |
| 159366 | | - /* 150 */ 1223, 1254, 1413, 1412, 1424, 1425, 1435, 1434, 1513, 1576, |
| 159367 | | - /* 160 */ 1575, 1471, 1223, 1223, 1223, 1223, 1223, 1223, 1541, 1223, |
| 159368 | | - /* 170 */ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, |
| 159369 | | - /* 180 */ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, |
| 159370 | | - /* 190 */ 1223, 1541, 1541, 1223, 1254, 1541, 1541, 1250, 1250, 1356, |
| 159371 | | - /* 200 */ 1223, 1520, 1323, 1323, 1323, 1323, 1332, 1323, 1223, 1223, |
| 159372 | | - /* 210 */ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, |
| 159373 | | - /* 220 */ 1223, 1223, 1223, 1510, 1508, 1223, 1223, 1223, 1223, 1223, |
| 159374 | | - /* 230 */ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, |
| 159375 | | - /* 240 */ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, |
| 159376 | | - /* 250 */ 1223, 1223, 1328, 1223, 1223, 1223, 1223, 1223, 1223, 1223, |
| 159377 | | - /* 260 */ 1223, 1223, 1223, 1223, 1570, 1223, 1483, 1310, 1328, 1328, |
| 159378 | | - /* 270 */ 1328, 1328, 1330, 1311, 1309, 1322, 1255, 1230, 1615, 1388, |
| 159379 | | - /* 280 */ 1377, 1329, 1351, 1377, 1351, 1612, 1375, 1388, 1388, 1375, |
| 159380 | | - /* 290 */ 1388, 1329, 1612, 1271, 1592, 1266, 1362, 1362, 1362, 1351, |
| 159381 | | - /* 300 */ 1356, 1356, 1450, 1329, 1322, 1223, 1615, 1615, 1337, 1337, |
| 159382 | | - /* 310 */ 1614, 1614, 1337, 1471, 1599, 1397, 1299, 1305, 1305, 1305, |
| 159383 | | - /* 320 */ 1305, 1337, 1241, 1375, 1599, 1599, 1375, 1397, 1299, 1375, |
| 159384 | | - /* 330 */ 1299, 1375, 1337, 1241, 1487, 1609, 1337, 1241, 1461, 1337, |
| 159385 | | - /* 340 */ 1241, 1337, 1241, 1461, 1297, 1297, 1297, 1286, 1223, 1223, |
| 159386 | | - /* 350 */ 1461, 1297, 1271, 1297, 1286, 1297, 1297, 1559, 1223, 1465, |
| 159387 | | - /* 360 */ 1465, 1461, 1355, 1350, 1355, 1350, 1355, 1350, 1355, 1350, |
| 159388 | | - /* 370 */ 1337, 1551, 1551, 1365, 1365, 1370, 1356, 1456, 1337, 1223, |
| 159389 | | - /* 380 */ 1370, 1368, 1366, 1375, 1247, 1289, 1573, 1573, 1569, 1569, |
| 159390 | | - /* 390 */ 1569, 1620, 1620, 1520, 1585, 1254, 1254, 1254, 1254, 1585, |
| 159391 | | - /* 400 */ 1273, 1273, 1255, 1255, 1254, 1585, 1223, 1223, 1223, 1223, |
| 159392 | | - /* 410 */ 1223, 1223, 1580, 1223, 1515, 1472, 1341, 1223, 1223, 1223, |
| 159393 | | - /* 420 */ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, |
| 159394 | | - /* 430 */ 1223, 1526, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, |
| 159395 | | - /* 440 */ 1223, 1223, 1402, 1223, 1226, 1517, 1223, 1223, 1223, 1223, |
| 159396 | | - /* 450 */ 1223, 1223, 1223, 1223, 1379, 1380, 1342, 1223, 1223, 1223, |
| 159397 | | - /* 460 */ 1223, 1223, 1223, 1223, 1394, 1223, 1223, 1223, 1389, 1223, |
| 159398 | | - /* 470 */ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1611, 1223, 1223, |
| 159399 | | - /* 480 */ 1223, 1223, 1223, 1223, 1486, 1485, 1223, 1223, 1339, 1223, |
| 159400 | | - /* 490 */ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, |
| 159401 | | - /* 500 */ 1223, 1223, 1269, 1223, 1223, 1223, 1223, 1223, 1223, 1223, |
| 159402 | | - /* 510 */ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, |
| 159403 | | - /* 520 */ 1223, 1223, 1223, 1223, 1223, 1223, 1367, 1223, 1223, 1223, |
| 159404 | | - /* 530 */ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, |
| 159405 | | - /* 540 */ 1223, 1556, 1357, 1223, 1223, 1602, 1223, 1223, 1223, 1223, |
| 159406 | | - /* 550 */ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, |
| 159407 | | - /* 560 */ 1596, 1313, 1404, 1223, 1403, 1407, 1223, 1235, 1223, 1223, |
| 159643 | + /* 0 */ 1633, 1633, 1633, 1462, 1230, 1341, 1230, 1230, 1230, 1462, |
| 159644 | + /* 10 */ 1462, 1462, 1230, 1371, 1371, 1515, 1263, 1230, 1230, 1230, |
| 159645 | + /* 20 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1461, 1230, 1230, |
| 159646 | + /* 30 */ 1230, 1230, 1550, 1550, 1230, 1230, 1230, 1230, 1230, 1230, |
| 159647 | + /* 40 */ 1230, 1230, 1380, 1230, 1387, 1230, 1230, 1230, 1230, 1230, |
| 159648 | + /* 50 */ 1463, 1464, 1230, 1230, 1230, 1514, 1516, 1479, 1394, 1393, |
| 159649 | + /* 60 */ 1392, 1391, 1497, 1358, 1385, 1378, 1382, 1457, 1458, 1456, |
| 159650 | + /* 70 */ 1460, 1464, 1463, 1230, 1381, 1428, 1442, 1427, 1230, 1230, |
| 159651 | + /* 80 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 159652 | + /* 90 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 159653 | + /* 100 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 159654 | + /* 110 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 159655 | + /* 120 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1436, 1441, 1447, |
| 159656 | + /* 130 */ 1440, 1437, 1430, 1429, 1431, 1230, 1432, 1230, 1254, 1230, |
| 159657 | + /* 140 */ 1230, 1251, 1305, 1230, 1230, 1230, 1230, 1230, 1534, 1533, |
| 159658 | + /* 150 */ 1230, 1230, 1263, 1422, 1421, 1433, 1434, 1444, 1443, 1522, |
| 159659 | + /* 160 */ 1586, 1585, 1480, 1230, 1230, 1230, 1230, 1230, 1230, 1550, |
| 159660 | + /* 170 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 159661 | + /* 180 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 159662 | + /* 190 */ 1230, 1230, 1230, 1550, 1550, 1230, 1263, 1550, 1550, 1259, |
| 159663 | + /* 200 */ 1259, 1365, 1230, 1529, 1332, 1332, 1332, 1332, 1341, 1332, |
| 159664 | + /* 210 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 159665 | + /* 220 */ 1230, 1230, 1230, 1230, 1230, 1519, 1517, 1230, 1230, 1230, |
| 159666 | + /* 230 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 159667 | + /* 240 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 159668 | + /* 250 */ 1230, 1230, 1230, 1230, 1337, 1230, 1230, 1230, 1230, 1230, |
| 159669 | + /* 260 */ 1230, 1230, 1230, 1230, 1230, 1230, 1579, 1230, 1492, 1319, |
| 159670 | + /* 270 */ 1337, 1337, 1337, 1337, 1339, 1320, 1318, 1331, 1264, 1237, |
| 159671 | + /* 280 */ 1625, 1397, 1386, 1338, 1360, 1386, 1360, 1622, 1384, 1397, |
| 159672 | + /* 290 */ 1397, 1384, 1397, 1338, 1622, 1280, 1602, 1275, 1371, 1371, |
| 159673 | + /* 300 */ 1371, 1360, 1365, 1365, 1459, 1338, 1331, 1230, 1625, 1625, |
| 159674 | + /* 310 */ 1346, 1346, 1624, 1624, 1346, 1480, 1609, 1406, 1308, 1314, |
| 159675 | + /* 320 */ 1314, 1314, 1314, 1346, 1248, 1384, 1609, 1609, 1384, 1406, |
| 159676 | + /* 330 */ 1308, 1384, 1308, 1384, 1346, 1248, 1496, 1619, 1346, 1248, |
| 159677 | + /* 340 */ 1470, 1346, 1248, 1346, 1248, 1470, 1306, 1306, 1306, 1295, |
| 159678 | + /* 350 */ 1230, 1230, 1470, 1306, 1280, 1306, 1295, 1306, 1306, 1568, |
| 159679 | + /* 360 */ 1230, 1474, 1474, 1470, 1364, 1359, 1364, 1359, 1364, 1359, |
| 159680 | + /* 370 */ 1364, 1359, 1346, 1560, 1560, 1374, 1374, 1379, 1365, 1465, |
| 159681 | + /* 380 */ 1346, 1230, 1379, 1377, 1375, 1384, 1298, 1582, 1582, 1578, |
| 159682 | + /* 390 */ 1578, 1578, 1630, 1630, 1529, 1595, 1263, 1263, 1263, 1263, |
| 159683 | + /* 400 */ 1595, 1282, 1282, 1264, 1264, 1263, 1595, 1230, 1230, 1230, |
| 159684 | + /* 410 */ 1230, 1230, 1230, 1590, 1230, 1524, 1481, 1350, 1230, 1230, |
| 159685 | + /* 420 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 159686 | + /* 430 */ 1230, 1230, 1535, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 159687 | + /* 440 */ 1230, 1230, 1230, 1411, 1230, 1233, 1526, 1230, 1230, 1230, |
| 159688 | + /* 450 */ 1230, 1230, 1230, 1230, 1230, 1388, 1389, 1351, 1230, 1230, |
| 159689 | + /* 460 */ 1230, 1230, 1230, 1230, 1230, 1403, 1230, 1230, 1230, 1398, |
| 159690 | + /* 470 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1621, 1230, |
| 159691 | + /* 480 */ 1230, 1230, 1230, 1230, 1230, 1495, 1494, 1230, 1230, 1348, |
| 159692 | + /* 490 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 159693 | + /* 500 */ 1230, 1230, 1230, 1278, 1230, 1230, 1230, 1230, 1230, 1230, |
| 159694 | + /* 510 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 159695 | + /* 520 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1376, 1230, 1230, |
| 159696 | + /* 530 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 159697 | + /* 540 */ 1230, 1230, 1565, 1366, 1230, 1230, 1612, 1230, 1230, 1230, |
| 159698 | + /* 550 */ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, |
| 159699 | + /* 560 */ 1230, 1606, 1322, 1413, 1230, 1412, 1416, 1252, 1230, 1242, |
| 159700 | + /* 570 */ 1230, 1230, |
| 159408 | 159701 | }; |
| 159409 | 159702 | /********** End of lemon-generated parsing tables *****************************/ |
| 159410 | 159703 | |
| 159411 | 159704 | /* The next table maps tokens (terminal symbols) into fallback tokens. |
| 159412 | 159705 | ** If a construct like the following: |
| | @@ -159447,12 +159740,12 @@ |
| 159447 | 159740 | 0, /* EXISTS => nothing */ |
| 159448 | 159741 | 59, /* TEMP => ID */ |
| 159449 | 159742 | 0, /* LP => nothing */ |
| 159450 | 159743 | 0, /* RP => nothing */ |
| 159451 | 159744 | 0, /* AS => nothing */ |
| 159452 | | - 59, /* WITHOUT => ID */ |
| 159453 | 159745 | 0, /* COMMA => nothing */ |
| 159746 | + 59, /* WITHOUT => ID */ |
| 159454 | 159747 | 59, /* ABORT => ID */ |
| 159455 | 159748 | 59, /* ACTION => ID */ |
| 159456 | 159749 | 59, /* AFTER => ID */ |
| 159457 | 159750 | 59, /* ANALYZE => ID */ |
| 159458 | 159751 | 59, /* ASC => ID */ |
| | @@ -159719,12 +160012,12 @@ |
| 159719 | 160012 | /* 20 */ "EXISTS", |
| 159720 | 160013 | /* 21 */ "TEMP", |
| 159721 | 160014 | /* 22 */ "LP", |
| 159722 | 160015 | /* 23 */ "RP", |
| 159723 | 160016 | /* 24 */ "AS", |
| 159724 | | - /* 25 */ "WITHOUT", |
| 159725 | | - /* 26 */ "COMMA", |
| 160017 | + /* 25 */ "COMMA", |
| 160018 | + /* 26 */ "WITHOUT", |
| 159726 | 160019 | /* 27 */ "ABORT", |
| 159727 | 160020 | /* 28 */ "ACTION", |
| 159728 | 160021 | /* 29 */ "AFTER", |
| 159729 | 160022 | /* 30 */ "ANALYZE", |
| 159730 | 160023 | /* 31 */ "ASC", |
| | @@ -159896,125 +160189,126 @@ |
| 159896 | 160189 | /* 197 */ "temp", |
| 159897 | 160190 | /* 198 */ "ifnotexists", |
| 159898 | 160191 | /* 199 */ "dbnm", |
| 159899 | 160192 | /* 200 */ "columnlist", |
| 159900 | 160193 | /* 201 */ "conslist_opt", |
| 159901 | | - /* 202 */ "table_options", |
| 160194 | + /* 202 */ "table_option_set", |
| 159902 | 160195 | /* 203 */ "select", |
| 159903 | | - /* 204 */ "columnname", |
| 159904 | | - /* 205 */ "carglist", |
| 159905 | | - /* 206 */ "typetoken", |
| 159906 | | - /* 207 */ "typename", |
| 159907 | | - /* 208 */ "signed", |
| 159908 | | - /* 209 */ "plus_num", |
| 159909 | | - /* 210 */ "minus_num", |
| 159910 | | - /* 211 */ "scanpt", |
| 159911 | | - /* 212 */ "scantok", |
| 159912 | | - /* 213 */ "ccons", |
| 159913 | | - /* 214 */ "term", |
| 159914 | | - /* 215 */ "expr", |
| 159915 | | - /* 216 */ "onconf", |
| 159916 | | - /* 217 */ "sortorder", |
| 159917 | | - /* 218 */ "autoinc", |
| 159918 | | - /* 219 */ "eidlist_opt", |
| 159919 | | - /* 220 */ "refargs", |
| 159920 | | - /* 221 */ "defer_subclause", |
| 159921 | | - /* 222 */ "generated", |
| 159922 | | - /* 223 */ "refarg", |
| 159923 | | - /* 224 */ "refact", |
| 159924 | | - /* 225 */ "init_deferred_pred_opt", |
| 159925 | | - /* 226 */ "conslist", |
| 159926 | | - /* 227 */ "tconscomma", |
| 159927 | | - /* 228 */ "tcons", |
| 159928 | | - /* 229 */ "sortlist", |
| 159929 | | - /* 230 */ "eidlist", |
| 159930 | | - /* 231 */ "defer_subclause_opt", |
| 159931 | | - /* 232 */ "orconf", |
| 159932 | | - /* 233 */ "resolvetype", |
| 159933 | | - /* 234 */ "raisetype", |
| 159934 | | - /* 235 */ "ifexists", |
| 159935 | | - /* 236 */ "fullname", |
| 159936 | | - /* 237 */ "selectnowith", |
| 159937 | | - /* 238 */ "oneselect", |
| 159938 | | - /* 239 */ "wqlist", |
| 159939 | | - /* 240 */ "multiselect_op", |
| 159940 | | - /* 241 */ "distinct", |
| 159941 | | - /* 242 */ "selcollist", |
| 159942 | | - /* 243 */ "from", |
| 159943 | | - /* 244 */ "where_opt", |
| 159944 | | - /* 245 */ "groupby_opt", |
| 159945 | | - /* 246 */ "having_opt", |
| 159946 | | - /* 247 */ "orderby_opt", |
| 159947 | | - /* 248 */ "limit_opt", |
| 159948 | | - /* 249 */ "window_clause", |
| 159949 | | - /* 250 */ "values", |
| 159950 | | - /* 251 */ "nexprlist", |
| 159951 | | - /* 252 */ "sclp", |
| 159952 | | - /* 253 */ "as", |
| 159953 | | - /* 254 */ "seltablist", |
| 159954 | | - /* 255 */ "stl_prefix", |
| 159955 | | - /* 256 */ "joinop", |
| 159956 | | - /* 257 */ "indexed_opt", |
| 159957 | | - /* 258 */ "on_opt", |
| 159958 | | - /* 259 */ "using_opt", |
| 159959 | | - /* 260 */ "exprlist", |
| 159960 | | - /* 261 */ "xfullname", |
| 159961 | | - /* 262 */ "idlist", |
| 159962 | | - /* 263 */ "nulls", |
| 159963 | | - /* 264 */ "with", |
| 159964 | | - /* 265 */ "where_opt_ret", |
| 159965 | | - /* 266 */ "setlist", |
| 159966 | | - /* 267 */ "insert_cmd", |
| 159967 | | - /* 268 */ "idlist_opt", |
| 159968 | | - /* 269 */ "upsert", |
| 159969 | | - /* 270 */ "returning", |
| 159970 | | - /* 271 */ "filter_over", |
| 159971 | | - /* 272 */ "likeop", |
| 159972 | | - /* 273 */ "between_op", |
| 159973 | | - /* 274 */ "in_op", |
| 159974 | | - /* 275 */ "paren_exprlist", |
| 159975 | | - /* 276 */ "case_operand", |
| 159976 | | - /* 277 */ "case_exprlist", |
| 159977 | | - /* 278 */ "case_else", |
| 159978 | | - /* 279 */ "uniqueflag", |
| 159979 | | - /* 280 */ "collate", |
| 159980 | | - /* 281 */ "vinto", |
| 159981 | | - /* 282 */ "nmnum", |
| 159982 | | - /* 283 */ "trigger_decl", |
| 159983 | | - /* 284 */ "trigger_cmd_list", |
| 159984 | | - /* 285 */ "trigger_time", |
| 159985 | | - /* 286 */ "trigger_event", |
| 159986 | | - /* 287 */ "foreach_clause", |
| 159987 | | - /* 288 */ "when_clause", |
| 159988 | | - /* 289 */ "trigger_cmd", |
| 159989 | | - /* 290 */ "trnm", |
| 159990 | | - /* 291 */ "tridxby", |
| 159991 | | - /* 292 */ "database_kw_opt", |
| 159992 | | - /* 293 */ "key_opt", |
| 159993 | | - /* 294 */ "add_column_fullname", |
| 159994 | | - /* 295 */ "kwcolumn_opt", |
| 159995 | | - /* 296 */ "create_vtab", |
| 159996 | | - /* 297 */ "vtabarglist", |
| 159997 | | - /* 298 */ "vtabarg", |
| 159998 | | - /* 299 */ "vtabargtoken", |
| 159999 | | - /* 300 */ "lp", |
| 160000 | | - /* 301 */ "anylist", |
| 160001 | | - /* 302 */ "wqitem", |
| 160002 | | - /* 303 */ "wqas", |
| 160003 | | - /* 304 */ "windowdefn_list", |
| 160004 | | - /* 305 */ "windowdefn", |
| 160005 | | - /* 306 */ "window", |
| 160006 | | - /* 307 */ "frame_opt", |
| 160007 | | - /* 308 */ "part_opt", |
| 160008 | | - /* 309 */ "filter_clause", |
| 160009 | | - /* 310 */ "over_clause", |
| 160010 | | - /* 311 */ "range_or_rows", |
| 160011 | | - /* 312 */ "frame_bound", |
| 160012 | | - /* 313 */ "frame_bound_s", |
| 160013 | | - /* 314 */ "frame_bound_e", |
| 160014 | | - /* 315 */ "frame_exclude_opt", |
| 160015 | | - /* 316 */ "frame_exclude", |
| 160196 | + /* 204 */ "table_option", |
| 160197 | + /* 205 */ "columnname", |
| 160198 | + /* 206 */ "carglist", |
| 160199 | + /* 207 */ "typetoken", |
| 160200 | + /* 208 */ "typename", |
| 160201 | + /* 209 */ "signed", |
| 160202 | + /* 210 */ "plus_num", |
| 160203 | + /* 211 */ "minus_num", |
| 160204 | + /* 212 */ "scanpt", |
| 160205 | + /* 213 */ "scantok", |
| 160206 | + /* 214 */ "ccons", |
| 160207 | + /* 215 */ "term", |
| 160208 | + /* 216 */ "expr", |
| 160209 | + /* 217 */ "onconf", |
| 160210 | + /* 218 */ "sortorder", |
| 160211 | + /* 219 */ "autoinc", |
| 160212 | + /* 220 */ "eidlist_opt", |
| 160213 | + /* 221 */ "refargs", |
| 160214 | + /* 222 */ "defer_subclause", |
| 160215 | + /* 223 */ "generated", |
| 160216 | + /* 224 */ "refarg", |
| 160217 | + /* 225 */ "refact", |
| 160218 | + /* 226 */ "init_deferred_pred_opt", |
| 160219 | + /* 227 */ "conslist", |
| 160220 | + /* 228 */ "tconscomma", |
| 160221 | + /* 229 */ "tcons", |
| 160222 | + /* 230 */ "sortlist", |
| 160223 | + /* 231 */ "eidlist", |
| 160224 | + /* 232 */ "defer_subclause_opt", |
| 160225 | + /* 233 */ "orconf", |
| 160226 | + /* 234 */ "resolvetype", |
| 160227 | + /* 235 */ "raisetype", |
| 160228 | + /* 236 */ "ifexists", |
| 160229 | + /* 237 */ "fullname", |
| 160230 | + /* 238 */ "selectnowith", |
| 160231 | + /* 239 */ "oneselect", |
| 160232 | + /* 240 */ "wqlist", |
| 160233 | + /* 241 */ "multiselect_op", |
| 160234 | + /* 242 */ "distinct", |
| 160235 | + /* 243 */ "selcollist", |
| 160236 | + /* 244 */ "from", |
| 160237 | + /* 245 */ "where_opt", |
| 160238 | + /* 246 */ "groupby_opt", |
| 160239 | + /* 247 */ "having_opt", |
| 160240 | + /* 248 */ "orderby_opt", |
| 160241 | + /* 249 */ "limit_opt", |
| 160242 | + /* 250 */ "window_clause", |
| 160243 | + /* 251 */ "values", |
| 160244 | + /* 252 */ "nexprlist", |
| 160245 | + /* 253 */ "sclp", |
| 160246 | + /* 254 */ "as", |
| 160247 | + /* 255 */ "seltablist", |
| 160248 | + /* 256 */ "stl_prefix", |
| 160249 | + /* 257 */ "joinop", |
| 160250 | + /* 258 */ "indexed_opt", |
| 160251 | + /* 259 */ "on_opt", |
| 160252 | + /* 260 */ "using_opt", |
| 160253 | + /* 261 */ "exprlist", |
| 160254 | + /* 262 */ "xfullname", |
| 160255 | + /* 263 */ "idlist", |
| 160256 | + /* 264 */ "nulls", |
| 160257 | + /* 265 */ "with", |
| 160258 | + /* 266 */ "where_opt_ret", |
| 160259 | + /* 267 */ "setlist", |
| 160260 | + /* 268 */ "insert_cmd", |
| 160261 | + /* 269 */ "idlist_opt", |
| 160262 | + /* 270 */ "upsert", |
| 160263 | + /* 271 */ "returning", |
| 160264 | + /* 272 */ "filter_over", |
| 160265 | + /* 273 */ "likeop", |
| 160266 | + /* 274 */ "between_op", |
| 160267 | + /* 275 */ "in_op", |
| 160268 | + /* 276 */ "paren_exprlist", |
| 160269 | + /* 277 */ "case_operand", |
| 160270 | + /* 278 */ "case_exprlist", |
| 160271 | + /* 279 */ "case_else", |
| 160272 | + /* 280 */ "uniqueflag", |
| 160273 | + /* 281 */ "collate", |
| 160274 | + /* 282 */ "vinto", |
| 160275 | + /* 283 */ "nmnum", |
| 160276 | + /* 284 */ "trigger_decl", |
| 160277 | + /* 285 */ "trigger_cmd_list", |
| 160278 | + /* 286 */ "trigger_time", |
| 160279 | + /* 287 */ "trigger_event", |
| 160280 | + /* 288 */ "foreach_clause", |
| 160281 | + /* 289 */ "when_clause", |
| 160282 | + /* 290 */ "trigger_cmd", |
| 160283 | + /* 291 */ "trnm", |
| 160284 | + /* 292 */ "tridxby", |
| 160285 | + /* 293 */ "database_kw_opt", |
| 160286 | + /* 294 */ "key_opt", |
| 160287 | + /* 295 */ "add_column_fullname", |
| 160288 | + /* 296 */ "kwcolumn_opt", |
| 160289 | + /* 297 */ "create_vtab", |
| 160290 | + /* 298 */ "vtabarglist", |
| 160291 | + /* 299 */ "vtabarg", |
| 160292 | + /* 300 */ "vtabargtoken", |
| 160293 | + /* 301 */ "lp", |
| 160294 | + /* 302 */ "anylist", |
| 160295 | + /* 303 */ "wqitem", |
| 160296 | + /* 304 */ "wqas", |
| 160297 | + /* 305 */ "windowdefn_list", |
| 160298 | + /* 306 */ "windowdefn", |
| 160299 | + /* 307 */ "window", |
| 160300 | + /* 308 */ "frame_opt", |
| 160301 | + /* 309 */ "part_opt", |
| 160302 | + /* 310 */ "filter_clause", |
| 160303 | + /* 311 */ "over_clause", |
| 160304 | + /* 312 */ "range_or_rows", |
| 160305 | + /* 313 */ "frame_bound", |
| 160306 | + /* 314 */ "frame_bound_s", |
| 160307 | + /* 315 */ "frame_bound_e", |
| 160308 | + /* 316 */ "frame_exclude_opt", |
| 160309 | + /* 317 */ "frame_exclude", |
| 160016 | 160310 | }; |
| 160017 | 160311 | #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */ |
| 160018 | 160312 | |
| 160019 | 160313 | #ifndef NDEBUG |
| 160020 | 160314 | /* For tracing reduce actions, the names of all rules are required. |
| | @@ -160037,389 +160331,392 @@ |
| 160037 | 160331 | /* 14 */ "createkw ::= CREATE", |
| 160038 | 160332 | /* 15 */ "ifnotexists ::=", |
| 160039 | 160333 | /* 16 */ "ifnotexists ::= IF NOT EXISTS", |
| 160040 | 160334 | /* 17 */ "temp ::= TEMP", |
| 160041 | 160335 | /* 18 */ "temp ::=", |
| 160042 | | - /* 19 */ "create_table_args ::= LP columnlist conslist_opt RP table_options", |
| 160336 | + /* 19 */ "create_table_args ::= LP columnlist conslist_opt RP table_option_set", |
| 160043 | 160337 | /* 20 */ "create_table_args ::= AS select", |
| 160044 | | - /* 21 */ "table_options ::=", |
| 160045 | | - /* 22 */ "table_options ::= WITHOUT nm", |
| 160046 | | - /* 23 */ "columnname ::= nm typetoken", |
| 160047 | | - /* 24 */ "typetoken ::=", |
| 160048 | | - /* 25 */ "typetoken ::= typename LP signed RP", |
| 160049 | | - /* 26 */ "typetoken ::= typename LP signed COMMA signed RP", |
| 160050 | | - /* 27 */ "typename ::= typename ID|STRING", |
| 160051 | | - /* 28 */ "scanpt ::=", |
| 160052 | | - /* 29 */ "scantok ::=", |
| 160053 | | - /* 30 */ "ccons ::= CONSTRAINT nm", |
| 160054 | | - /* 31 */ "ccons ::= DEFAULT scantok term", |
| 160055 | | - /* 32 */ "ccons ::= DEFAULT LP expr RP", |
| 160056 | | - /* 33 */ "ccons ::= DEFAULT PLUS scantok term", |
| 160057 | | - /* 34 */ "ccons ::= DEFAULT MINUS scantok term", |
| 160058 | | - /* 35 */ "ccons ::= DEFAULT scantok ID|INDEXED", |
| 160059 | | - /* 36 */ "ccons ::= NOT NULL onconf", |
| 160060 | | - /* 37 */ "ccons ::= PRIMARY KEY sortorder onconf autoinc", |
| 160061 | | - /* 38 */ "ccons ::= UNIQUE onconf", |
| 160062 | | - /* 39 */ "ccons ::= CHECK LP expr RP", |
| 160063 | | - /* 40 */ "ccons ::= REFERENCES nm eidlist_opt refargs", |
| 160064 | | - /* 41 */ "ccons ::= defer_subclause", |
| 160065 | | - /* 42 */ "ccons ::= COLLATE ID|STRING", |
| 160066 | | - /* 43 */ "generated ::= LP expr RP", |
| 160067 | | - /* 44 */ "generated ::= LP expr RP ID", |
| 160068 | | - /* 45 */ "autoinc ::=", |
| 160069 | | - /* 46 */ "autoinc ::= AUTOINCR", |
| 160070 | | - /* 47 */ "refargs ::=", |
| 160071 | | - /* 48 */ "refargs ::= refargs refarg", |
| 160072 | | - /* 49 */ "refarg ::= MATCH nm", |
| 160073 | | - /* 50 */ "refarg ::= ON INSERT refact", |
| 160074 | | - /* 51 */ "refarg ::= ON DELETE refact", |
| 160075 | | - /* 52 */ "refarg ::= ON UPDATE refact", |
| 160076 | | - /* 53 */ "refact ::= SET NULL", |
| 160077 | | - /* 54 */ "refact ::= SET DEFAULT", |
| 160078 | | - /* 55 */ "refact ::= CASCADE", |
| 160079 | | - /* 56 */ "refact ::= RESTRICT", |
| 160080 | | - /* 57 */ "refact ::= NO ACTION", |
| 160081 | | - /* 58 */ "defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt", |
| 160082 | | - /* 59 */ "defer_subclause ::= DEFERRABLE init_deferred_pred_opt", |
| 160083 | | - /* 60 */ "init_deferred_pred_opt ::=", |
| 160084 | | - /* 61 */ "init_deferred_pred_opt ::= INITIALLY DEFERRED", |
| 160085 | | - /* 62 */ "init_deferred_pred_opt ::= INITIALLY IMMEDIATE", |
| 160086 | | - /* 63 */ "conslist_opt ::=", |
| 160087 | | - /* 64 */ "tconscomma ::= COMMA", |
| 160088 | | - /* 65 */ "tcons ::= CONSTRAINT nm", |
| 160089 | | - /* 66 */ "tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf", |
| 160090 | | - /* 67 */ "tcons ::= UNIQUE LP sortlist RP onconf", |
| 160091 | | - /* 68 */ "tcons ::= CHECK LP expr RP onconf", |
| 160092 | | - /* 69 */ "tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt", |
| 160093 | | - /* 70 */ "defer_subclause_opt ::=", |
| 160094 | | - /* 71 */ "onconf ::=", |
| 160095 | | - /* 72 */ "onconf ::= ON CONFLICT resolvetype", |
| 160096 | | - /* 73 */ "orconf ::=", |
| 160097 | | - /* 74 */ "orconf ::= OR resolvetype", |
| 160098 | | - /* 75 */ "resolvetype ::= IGNORE", |
| 160099 | | - /* 76 */ "resolvetype ::= REPLACE", |
| 160100 | | - /* 77 */ "cmd ::= DROP TABLE ifexists fullname", |
| 160101 | | - /* 78 */ "ifexists ::= IF EXISTS", |
| 160102 | | - /* 79 */ "ifexists ::=", |
| 160103 | | - /* 80 */ "cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select", |
| 160104 | | - /* 81 */ "cmd ::= DROP VIEW ifexists fullname", |
| 160105 | | - /* 82 */ "cmd ::= select", |
| 160106 | | - /* 83 */ "select ::= WITH wqlist selectnowith", |
| 160107 | | - /* 84 */ "select ::= WITH RECURSIVE wqlist selectnowith", |
| 160108 | | - /* 85 */ "select ::= selectnowith", |
| 160109 | | - /* 86 */ "selectnowith ::= selectnowith multiselect_op oneselect", |
| 160110 | | - /* 87 */ "multiselect_op ::= UNION", |
| 160111 | | - /* 88 */ "multiselect_op ::= UNION ALL", |
| 160112 | | - /* 89 */ "multiselect_op ::= EXCEPT|INTERSECT", |
| 160113 | | - /* 90 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt", |
| 160114 | | - /* 91 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt", |
| 160115 | | - /* 92 */ "values ::= VALUES LP nexprlist RP", |
| 160116 | | - /* 93 */ "values ::= values COMMA LP nexprlist RP", |
| 160117 | | - /* 94 */ "distinct ::= DISTINCT", |
| 160118 | | - /* 95 */ "distinct ::= ALL", |
| 160119 | | - /* 96 */ "distinct ::=", |
| 160120 | | - /* 97 */ "sclp ::=", |
| 160121 | | - /* 98 */ "selcollist ::= sclp scanpt expr scanpt as", |
| 160122 | | - /* 99 */ "selcollist ::= sclp scanpt STAR", |
| 160123 | | - /* 100 */ "selcollist ::= sclp scanpt nm DOT STAR", |
| 160124 | | - /* 101 */ "as ::= AS nm", |
| 160125 | | - /* 102 */ "as ::=", |
| 160126 | | - /* 103 */ "from ::=", |
| 160127 | | - /* 104 */ "from ::= FROM seltablist", |
| 160128 | | - /* 105 */ "stl_prefix ::= seltablist joinop", |
| 160129 | | - /* 106 */ "stl_prefix ::=", |
| 160130 | | - /* 107 */ "seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt", |
| 160131 | | - /* 108 */ "seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt", |
| 160132 | | - /* 109 */ "seltablist ::= stl_prefix LP select RP as on_opt using_opt", |
| 160133 | | - /* 110 */ "seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt", |
| 160134 | | - /* 111 */ "dbnm ::=", |
| 160135 | | - /* 112 */ "dbnm ::= DOT nm", |
| 160136 | | - /* 113 */ "fullname ::= nm", |
| 160137 | | - /* 114 */ "fullname ::= nm DOT nm", |
| 160138 | | - /* 115 */ "xfullname ::= nm", |
| 160139 | | - /* 116 */ "xfullname ::= nm DOT nm", |
| 160140 | | - /* 117 */ "xfullname ::= nm DOT nm AS nm", |
| 160141 | | - /* 118 */ "xfullname ::= nm AS nm", |
| 160142 | | - /* 119 */ "joinop ::= COMMA|JOIN", |
| 160143 | | - /* 120 */ "joinop ::= JOIN_KW JOIN", |
| 160144 | | - /* 121 */ "joinop ::= JOIN_KW nm JOIN", |
| 160145 | | - /* 122 */ "joinop ::= JOIN_KW nm nm JOIN", |
| 160146 | | - /* 123 */ "on_opt ::= ON expr", |
| 160147 | | - /* 124 */ "on_opt ::=", |
| 160148 | | - /* 125 */ "indexed_opt ::=", |
| 160149 | | - /* 126 */ "indexed_opt ::= INDEXED BY nm", |
| 160150 | | - /* 127 */ "indexed_opt ::= NOT INDEXED", |
| 160151 | | - /* 128 */ "using_opt ::= USING LP idlist RP", |
| 160152 | | - /* 129 */ "using_opt ::=", |
| 160153 | | - /* 130 */ "orderby_opt ::=", |
| 160154 | | - /* 131 */ "orderby_opt ::= ORDER BY sortlist", |
| 160155 | | - /* 132 */ "sortlist ::= sortlist COMMA expr sortorder nulls", |
| 160156 | | - /* 133 */ "sortlist ::= expr sortorder nulls", |
| 160157 | | - /* 134 */ "sortorder ::= ASC", |
| 160158 | | - /* 135 */ "sortorder ::= DESC", |
| 160159 | | - /* 136 */ "sortorder ::=", |
| 160160 | | - /* 137 */ "nulls ::= NULLS FIRST", |
| 160161 | | - /* 138 */ "nulls ::= NULLS LAST", |
| 160162 | | - /* 139 */ "nulls ::=", |
| 160163 | | - /* 140 */ "groupby_opt ::=", |
| 160164 | | - /* 141 */ "groupby_opt ::= GROUP BY nexprlist", |
| 160165 | | - /* 142 */ "having_opt ::=", |
| 160166 | | - /* 143 */ "having_opt ::= HAVING expr", |
| 160167 | | - /* 144 */ "limit_opt ::=", |
| 160168 | | - /* 145 */ "limit_opt ::= LIMIT expr", |
| 160169 | | - /* 146 */ "limit_opt ::= LIMIT expr OFFSET expr", |
| 160170 | | - /* 147 */ "limit_opt ::= LIMIT expr COMMA expr", |
| 160171 | | - /* 148 */ "cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret", |
| 160172 | | - /* 149 */ "where_opt ::=", |
| 160173 | | - /* 150 */ "where_opt ::= WHERE expr", |
| 160174 | | - /* 151 */ "where_opt_ret ::=", |
| 160175 | | - /* 152 */ "where_opt_ret ::= WHERE expr", |
| 160176 | | - /* 153 */ "where_opt_ret ::= RETURNING selcollist", |
| 160177 | | - /* 154 */ "where_opt_ret ::= WHERE expr RETURNING selcollist", |
| 160178 | | - /* 155 */ "cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret", |
| 160179 | | - /* 156 */ "setlist ::= setlist COMMA nm EQ expr", |
| 160180 | | - /* 157 */ "setlist ::= setlist COMMA LP idlist RP EQ expr", |
| 160181 | | - /* 158 */ "setlist ::= nm EQ expr", |
| 160182 | | - /* 159 */ "setlist ::= LP idlist RP EQ expr", |
| 160183 | | - /* 160 */ "cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert", |
| 160184 | | - /* 161 */ "cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning", |
| 160185 | | - /* 162 */ "upsert ::=", |
| 160186 | | - /* 163 */ "upsert ::= RETURNING selcollist", |
| 160187 | | - /* 164 */ "upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert", |
| 160188 | | - /* 165 */ "upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert", |
| 160189 | | - /* 166 */ "upsert ::= ON CONFLICT DO NOTHING returning", |
| 160190 | | - /* 167 */ "upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning", |
| 160191 | | - /* 168 */ "returning ::= RETURNING selcollist", |
| 160192 | | - /* 169 */ "insert_cmd ::= INSERT orconf", |
| 160193 | | - /* 170 */ "insert_cmd ::= REPLACE", |
| 160194 | | - /* 171 */ "idlist_opt ::=", |
| 160195 | | - /* 172 */ "idlist_opt ::= LP idlist RP", |
| 160196 | | - /* 173 */ "idlist ::= idlist COMMA nm", |
| 160197 | | - /* 174 */ "idlist ::= nm", |
| 160198 | | - /* 175 */ "expr ::= LP expr RP", |
| 160199 | | - /* 176 */ "expr ::= ID|INDEXED", |
| 160200 | | - /* 177 */ "expr ::= JOIN_KW", |
| 160201 | | - /* 178 */ "expr ::= nm DOT nm", |
| 160202 | | - /* 179 */ "expr ::= nm DOT nm DOT nm", |
| 160203 | | - /* 180 */ "term ::= NULL|FLOAT|BLOB", |
| 160204 | | - /* 181 */ "term ::= STRING", |
| 160205 | | - /* 182 */ "term ::= INTEGER", |
| 160206 | | - /* 183 */ "expr ::= VARIABLE", |
| 160207 | | - /* 184 */ "expr ::= expr COLLATE ID|STRING", |
| 160208 | | - /* 185 */ "expr ::= CAST LP expr AS typetoken RP", |
| 160209 | | - /* 186 */ "expr ::= ID|INDEXED LP distinct exprlist RP", |
| 160210 | | - /* 187 */ "expr ::= ID|INDEXED LP STAR RP", |
| 160211 | | - /* 188 */ "expr ::= ID|INDEXED LP distinct exprlist RP filter_over", |
| 160212 | | - /* 189 */ "expr ::= ID|INDEXED LP STAR RP filter_over", |
| 160213 | | - /* 190 */ "term ::= CTIME_KW", |
| 160214 | | - /* 191 */ "expr ::= LP nexprlist COMMA expr RP", |
| 160215 | | - /* 192 */ "expr ::= expr AND expr", |
| 160216 | | - /* 193 */ "expr ::= expr OR expr", |
| 160217 | | - /* 194 */ "expr ::= expr LT|GT|GE|LE expr", |
| 160218 | | - /* 195 */ "expr ::= expr EQ|NE expr", |
| 160219 | | - /* 196 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", |
| 160220 | | - /* 197 */ "expr ::= expr PLUS|MINUS expr", |
| 160221 | | - /* 198 */ "expr ::= expr STAR|SLASH|REM expr", |
| 160222 | | - /* 199 */ "expr ::= expr CONCAT expr", |
| 160223 | | - /* 200 */ "likeop ::= NOT LIKE_KW|MATCH", |
| 160224 | | - /* 201 */ "expr ::= expr likeop expr", |
| 160225 | | - /* 202 */ "expr ::= expr likeop expr ESCAPE expr", |
| 160226 | | - /* 203 */ "expr ::= expr ISNULL|NOTNULL", |
| 160227 | | - /* 204 */ "expr ::= expr NOT NULL", |
| 160228 | | - /* 205 */ "expr ::= expr IS expr", |
| 160229 | | - /* 206 */ "expr ::= expr IS NOT expr", |
| 160230 | | - /* 207 */ "expr ::= NOT expr", |
| 160231 | | - /* 208 */ "expr ::= BITNOT expr", |
| 160232 | | - /* 209 */ "expr ::= PLUS|MINUS expr", |
| 160233 | | - /* 210 */ "between_op ::= BETWEEN", |
| 160234 | | - /* 211 */ "between_op ::= NOT BETWEEN", |
| 160235 | | - /* 212 */ "expr ::= expr between_op expr AND expr", |
| 160236 | | - /* 213 */ "in_op ::= IN", |
| 160237 | | - /* 214 */ "in_op ::= NOT IN", |
| 160238 | | - /* 215 */ "expr ::= expr in_op LP exprlist RP", |
| 160239 | | - /* 216 */ "expr ::= LP select RP", |
| 160240 | | - /* 217 */ "expr ::= expr in_op LP select RP", |
| 160241 | | - /* 218 */ "expr ::= expr in_op nm dbnm paren_exprlist", |
| 160242 | | - /* 219 */ "expr ::= EXISTS LP select RP", |
| 160243 | | - /* 220 */ "expr ::= CASE case_operand case_exprlist case_else END", |
| 160244 | | - /* 221 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", |
| 160245 | | - /* 222 */ "case_exprlist ::= WHEN expr THEN expr", |
| 160246 | | - /* 223 */ "case_else ::= ELSE expr", |
| 160247 | | - /* 224 */ "case_else ::=", |
| 160248 | | - /* 225 */ "case_operand ::= expr", |
| 160249 | | - /* 226 */ "case_operand ::=", |
| 160250 | | - /* 227 */ "exprlist ::=", |
| 160251 | | - /* 228 */ "nexprlist ::= nexprlist COMMA expr", |
| 160252 | | - /* 229 */ "nexprlist ::= expr", |
| 160253 | | - /* 230 */ "paren_exprlist ::=", |
| 160254 | | - /* 231 */ "paren_exprlist ::= LP exprlist RP", |
| 160255 | | - /* 232 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt", |
| 160256 | | - /* 233 */ "uniqueflag ::= UNIQUE", |
| 160257 | | - /* 234 */ "uniqueflag ::=", |
| 160258 | | - /* 235 */ "eidlist_opt ::=", |
| 160259 | | - /* 236 */ "eidlist_opt ::= LP eidlist RP", |
| 160260 | | - /* 237 */ "eidlist ::= eidlist COMMA nm collate sortorder", |
| 160261 | | - /* 238 */ "eidlist ::= nm collate sortorder", |
| 160262 | | - /* 239 */ "collate ::=", |
| 160263 | | - /* 240 */ "collate ::= COLLATE ID|STRING", |
| 160264 | | - /* 241 */ "cmd ::= DROP INDEX ifexists fullname", |
| 160265 | | - /* 242 */ "cmd ::= VACUUM vinto", |
| 160266 | | - /* 243 */ "cmd ::= VACUUM nm vinto", |
| 160267 | | - /* 244 */ "vinto ::= INTO expr", |
| 160268 | | - /* 245 */ "vinto ::=", |
| 160269 | | - /* 246 */ "cmd ::= PRAGMA nm dbnm", |
| 160270 | | - /* 247 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", |
| 160271 | | - /* 248 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", |
| 160272 | | - /* 249 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", |
| 160273 | | - /* 250 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP", |
| 160274 | | - /* 251 */ "plus_num ::= PLUS INTEGER|FLOAT", |
| 160275 | | - /* 252 */ "minus_num ::= MINUS INTEGER|FLOAT", |
| 160276 | | - /* 253 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END", |
| 160277 | | - /* 254 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", |
| 160278 | | - /* 255 */ "trigger_time ::= BEFORE|AFTER", |
| 160279 | | - /* 256 */ "trigger_time ::= INSTEAD OF", |
| 160280 | | - /* 257 */ "trigger_time ::=", |
| 160281 | | - /* 258 */ "trigger_event ::= DELETE|INSERT", |
| 160282 | | - /* 259 */ "trigger_event ::= UPDATE", |
| 160283 | | - /* 260 */ "trigger_event ::= UPDATE OF idlist", |
| 160284 | | - /* 261 */ "when_clause ::=", |
| 160285 | | - /* 262 */ "when_clause ::= WHEN expr", |
| 160286 | | - /* 263 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", |
| 160287 | | - /* 264 */ "trigger_cmd_list ::= trigger_cmd SEMI", |
| 160288 | | - /* 265 */ "trnm ::= nm DOT nm", |
| 160289 | | - /* 266 */ "tridxby ::= INDEXED BY nm", |
| 160290 | | - /* 267 */ "tridxby ::= NOT INDEXED", |
| 160291 | | - /* 268 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt", |
| 160292 | | - /* 269 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt", |
| 160293 | | - /* 270 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt", |
| 160294 | | - /* 271 */ "trigger_cmd ::= scanpt select scanpt", |
| 160295 | | - /* 272 */ "expr ::= RAISE LP IGNORE RP", |
| 160296 | | - /* 273 */ "expr ::= RAISE LP raisetype COMMA nm RP", |
| 160297 | | - /* 274 */ "raisetype ::= ROLLBACK", |
| 160298 | | - /* 275 */ "raisetype ::= ABORT", |
| 160299 | | - /* 276 */ "raisetype ::= FAIL", |
| 160300 | | - /* 277 */ "cmd ::= DROP TRIGGER ifexists fullname", |
| 160301 | | - /* 278 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", |
| 160302 | | - /* 279 */ "cmd ::= DETACH database_kw_opt expr", |
| 160303 | | - /* 280 */ "key_opt ::=", |
| 160304 | | - /* 281 */ "key_opt ::= KEY expr", |
| 160305 | | - /* 282 */ "cmd ::= REINDEX", |
| 160306 | | - /* 283 */ "cmd ::= REINDEX nm dbnm", |
| 160307 | | - /* 284 */ "cmd ::= ANALYZE", |
| 160308 | | - /* 285 */ "cmd ::= ANALYZE nm dbnm", |
| 160309 | | - /* 286 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", |
| 160310 | | - /* 287 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist", |
| 160311 | | - /* 288 */ "cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm", |
| 160312 | | - /* 289 */ "add_column_fullname ::= fullname", |
| 160313 | | - /* 290 */ "cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm", |
| 160314 | | - /* 291 */ "cmd ::= create_vtab", |
| 160315 | | - /* 292 */ "cmd ::= create_vtab LP vtabarglist RP", |
| 160316 | | - /* 293 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm", |
| 160317 | | - /* 294 */ "vtabarg ::=", |
| 160318 | | - /* 295 */ "vtabargtoken ::= ANY", |
| 160319 | | - /* 296 */ "vtabargtoken ::= lp anylist RP", |
| 160320 | | - /* 297 */ "lp ::= LP", |
| 160321 | | - /* 298 */ "with ::= WITH wqlist", |
| 160322 | | - /* 299 */ "with ::= WITH RECURSIVE wqlist", |
| 160323 | | - /* 300 */ "wqas ::= AS", |
| 160324 | | - /* 301 */ "wqas ::= AS MATERIALIZED", |
| 160325 | | - /* 302 */ "wqas ::= AS NOT MATERIALIZED", |
| 160326 | | - /* 303 */ "wqitem ::= nm eidlist_opt wqas LP select RP", |
| 160327 | | - /* 304 */ "wqlist ::= wqitem", |
| 160328 | | - /* 305 */ "wqlist ::= wqlist COMMA wqitem", |
| 160329 | | - /* 306 */ "windowdefn_list ::= windowdefn", |
| 160330 | | - /* 307 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", |
| 160331 | | - /* 308 */ "windowdefn ::= nm AS LP window RP", |
| 160332 | | - /* 309 */ "window ::= PARTITION BY nexprlist orderby_opt frame_opt", |
| 160333 | | - /* 310 */ "window ::= nm PARTITION BY nexprlist orderby_opt frame_opt", |
| 160334 | | - /* 311 */ "window ::= ORDER BY sortlist frame_opt", |
| 160335 | | - /* 312 */ "window ::= nm ORDER BY sortlist frame_opt", |
| 160336 | | - /* 313 */ "window ::= frame_opt", |
| 160337 | | - /* 314 */ "window ::= nm frame_opt", |
| 160338 | | - /* 315 */ "frame_opt ::=", |
| 160339 | | - /* 316 */ "frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt", |
| 160340 | | - /* 317 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt", |
| 160341 | | - /* 318 */ "range_or_rows ::= RANGE|ROWS|GROUPS", |
| 160342 | | - /* 319 */ "frame_bound_s ::= frame_bound", |
| 160343 | | - /* 320 */ "frame_bound_s ::= UNBOUNDED PRECEDING", |
| 160344 | | - /* 321 */ "frame_bound_e ::= frame_bound", |
| 160345 | | - /* 322 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", |
| 160346 | | - /* 323 */ "frame_bound ::= expr PRECEDING|FOLLOWING", |
| 160347 | | - /* 324 */ "frame_bound ::= CURRENT ROW", |
| 160348 | | - /* 325 */ "frame_exclude_opt ::=", |
| 160349 | | - /* 326 */ "frame_exclude_opt ::= EXCLUDE frame_exclude", |
| 160350 | | - /* 327 */ "frame_exclude ::= NO OTHERS", |
| 160351 | | - /* 328 */ "frame_exclude ::= CURRENT ROW", |
| 160352 | | - /* 329 */ "frame_exclude ::= GROUP|TIES", |
| 160353 | | - /* 330 */ "window_clause ::= WINDOW windowdefn_list", |
| 160354 | | - /* 331 */ "filter_over ::= filter_clause over_clause", |
| 160355 | | - /* 332 */ "filter_over ::= over_clause", |
| 160356 | | - /* 333 */ "filter_over ::= filter_clause", |
| 160357 | | - /* 334 */ "over_clause ::= OVER LP window RP", |
| 160358 | | - /* 335 */ "over_clause ::= OVER nm", |
| 160359 | | - /* 336 */ "filter_clause ::= FILTER LP WHERE expr RP", |
| 160360 | | - /* 337 */ "input ::= cmdlist", |
| 160361 | | - /* 338 */ "cmdlist ::= cmdlist ecmd", |
| 160362 | | - /* 339 */ "cmdlist ::= ecmd", |
| 160363 | | - /* 340 */ "ecmd ::= SEMI", |
| 160364 | | - /* 341 */ "ecmd ::= cmdx SEMI", |
| 160365 | | - /* 342 */ "ecmd ::= explain cmdx SEMI", |
| 160366 | | - /* 343 */ "trans_opt ::=", |
| 160367 | | - /* 344 */ "trans_opt ::= TRANSACTION", |
| 160368 | | - /* 345 */ "trans_opt ::= TRANSACTION nm", |
| 160369 | | - /* 346 */ "savepoint_opt ::= SAVEPOINT", |
| 160370 | | - /* 347 */ "savepoint_opt ::=", |
| 160371 | | - /* 348 */ "cmd ::= create_table create_table_args", |
| 160372 | | - /* 349 */ "columnlist ::= columnlist COMMA columnname carglist", |
| 160373 | | - /* 350 */ "columnlist ::= columnname carglist", |
| 160374 | | - /* 351 */ "nm ::= ID|INDEXED", |
| 160375 | | - /* 352 */ "nm ::= STRING", |
| 160376 | | - /* 353 */ "nm ::= JOIN_KW", |
| 160377 | | - /* 354 */ "typetoken ::= typename", |
| 160378 | | - /* 355 */ "typename ::= ID|STRING", |
| 160379 | | - /* 356 */ "signed ::= plus_num", |
| 160380 | | - /* 357 */ "signed ::= minus_num", |
| 160381 | | - /* 358 */ "carglist ::= carglist ccons", |
| 160382 | | - /* 359 */ "carglist ::=", |
| 160383 | | - /* 360 */ "ccons ::= NULL onconf", |
| 160384 | | - /* 361 */ "ccons ::= GENERATED ALWAYS AS generated", |
| 160385 | | - /* 362 */ "ccons ::= AS generated", |
| 160386 | | - /* 363 */ "conslist_opt ::= COMMA conslist", |
| 160387 | | - /* 364 */ "conslist ::= conslist tconscomma tcons", |
| 160388 | | - /* 365 */ "conslist ::= tcons", |
| 160389 | | - /* 366 */ "tconscomma ::=", |
| 160390 | | - /* 367 */ "defer_subclause_opt ::= defer_subclause", |
| 160391 | | - /* 368 */ "resolvetype ::= raisetype", |
| 160392 | | - /* 369 */ "selectnowith ::= oneselect", |
| 160393 | | - /* 370 */ "oneselect ::= values", |
| 160394 | | - /* 371 */ "sclp ::= selcollist COMMA", |
| 160395 | | - /* 372 */ "as ::= ID|STRING", |
| 160396 | | - /* 373 */ "returning ::=", |
| 160397 | | - /* 374 */ "expr ::= term", |
| 160398 | | - /* 375 */ "likeop ::= LIKE_KW|MATCH", |
| 160399 | | - /* 376 */ "exprlist ::= nexprlist", |
| 160400 | | - /* 377 */ "nmnum ::= plus_num", |
| 160401 | | - /* 378 */ "nmnum ::= nm", |
| 160402 | | - /* 379 */ "nmnum ::= ON", |
| 160403 | | - /* 380 */ "nmnum ::= DELETE", |
| 160404 | | - /* 381 */ "nmnum ::= DEFAULT", |
| 160405 | | - /* 382 */ "plus_num ::= INTEGER|FLOAT", |
| 160406 | | - /* 383 */ "foreach_clause ::=", |
| 160407 | | - /* 384 */ "foreach_clause ::= FOR EACH ROW", |
| 160408 | | - /* 385 */ "trnm ::= nm", |
| 160409 | | - /* 386 */ "tridxby ::=", |
| 160410 | | - /* 387 */ "database_kw_opt ::= DATABASE", |
| 160411 | | - /* 388 */ "database_kw_opt ::=", |
| 160412 | | - /* 389 */ "kwcolumn_opt ::=", |
| 160413 | | - /* 390 */ "kwcolumn_opt ::= COLUMNKW", |
| 160414 | | - /* 391 */ "vtabarglist ::= vtabarg", |
| 160415 | | - /* 392 */ "vtabarglist ::= vtabarglist COMMA vtabarg", |
| 160416 | | - /* 393 */ "vtabarg ::= vtabarg vtabargtoken", |
| 160417 | | - /* 394 */ "anylist ::=", |
| 160418 | | - /* 395 */ "anylist ::= anylist LP anylist RP", |
| 160419 | | - /* 396 */ "anylist ::= anylist ANY", |
| 160420 | | - /* 397 */ "with ::=", |
| 160338 | + /* 21 */ "table_option_set ::=", |
| 160339 | + /* 22 */ "table_option_set ::= table_option_set COMMA table_option", |
| 160340 | + /* 23 */ "table_option ::= WITHOUT nm", |
| 160341 | + /* 24 */ "table_option ::= nm", |
| 160342 | + /* 25 */ "columnname ::= nm typetoken", |
| 160343 | + /* 26 */ "typetoken ::=", |
| 160344 | + /* 27 */ "typetoken ::= typename LP signed RP", |
| 160345 | + /* 28 */ "typetoken ::= typename LP signed COMMA signed RP", |
| 160346 | + /* 29 */ "typename ::= typename ID|STRING", |
| 160347 | + /* 30 */ "scanpt ::=", |
| 160348 | + /* 31 */ "scantok ::=", |
| 160349 | + /* 32 */ "ccons ::= CONSTRAINT nm", |
| 160350 | + /* 33 */ "ccons ::= DEFAULT scantok term", |
| 160351 | + /* 34 */ "ccons ::= DEFAULT LP expr RP", |
| 160352 | + /* 35 */ "ccons ::= DEFAULT PLUS scantok term", |
| 160353 | + /* 36 */ "ccons ::= DEFAULT MINUS scantok term", |
| 160354 | + /* 37 */ "ccons ::= DEFAULT scantok ID|INDEXED", |
| 160355 | + /* 38 */ "ccons ::= NOT NULL onconf", |
| 160356 | + /* 39 */ "ccons ::= PRIMARY KEY sortorder onconf autoinc", |
| 160357 | + /* 40 */ "ccons ::= UNIQUE onconf", |
| 160358 | + /* 41 */ "ccons ::= CHECK LP expr RP", |
| 160359 | + /* 42 */ "ccons ::= REFERENCES nm eidlist_opt refargs", |
| 160360 | + /* 43 */ "ccons ::= defer_subclause", |
| 160361 | + /* 44 */ "ccons ::= COLLATE ID|STRING", |
| 160362 | + /* 45 */ "generated ::= LP expr RP", |
| 160363 | + /* 46 */ "generated ::= LP expr RP ID", |
| 160364 | + /* 47 */ "autoinc ::=", |
| 160365 | + /* 48 */ "autoinc ::= AUTOINCR", |
| 160366 | + /* 49 */ "refargs ::=", |
| 160367 | + /* 50 */ "refargs ::= refargs refarg", |
| 160368 | + /* 51 */ "refarg ::= MATCH nm", |
| 160369 | + /* 52 */ "refarg ::= ON INSERT refact", |
| 160370 | + /* 53 */ "refarg ::= ON DELETE refact", |
| 160371 | + /* 54 */ "refarg ::= ON UPDATE refact", |
| 160372 | + /* 55 */ "refact ::= SET NULL", |
| 160373 | + /* 56 */ "refact ::= SET DEFAULT", |
| 160374 | + /* 57 */ "refact ::= CASCADE", |
| 160375 | + /* 58 */ "refact ::= RESTRICT", |
| 160376 | + /* 59 */ "refact ::= NO ACTION", |
| 160377 | + /* 60 */ "defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt", |
| 160378 | + /* 61 */ "defer_subclause ::= DEFERRABLE init_deferred_pred_opt", |
| 160379 | + /* 62 */ "init_deferred_pred_opt ::=", |
| 160380 | + /* 63 */ "init_deferred_pred_opt ::= INITIALLY DEFERRED", |
| 160381 | + /* 64 */ "init_deferred_pred_opt ::= INITIALLY IMMEDIATE", |
| 160382 | + /* 65 */ "conslist_opt ::=", |
| 160383 | + /* 66 */ "tconscomma ::= COMMA", |
| 160384 | + /* 67 */ "tcons ::= CONSTRAINT nm", |
| 160385 | + /* 68 */ "tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf", |
| 160386 | + /* 69 */ "tcons ::= UNIQUE LP sortlist RP onconf", |
| 160387 | + /* 70 */ "tcons ::= CHECK LP expr RP onconf", |
| 160388 | + /* 71 */ "tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt", |
| 160389 | + /* 72 */ "defer_subclause_opt ::=", |
| 160390 | + /* 73 */ "onconf ::=", |
| 160391 | + /* 74 */ "onconf ::= ON CONFLICT resolvetype", |
| 160392 | + /* 75 */ "orconf ::=", |
| 160393 | + /* 76 */ "orconf ::= OR resolvetype", |
| 160394 | + /* 77 */ "resolvetype ::= IGNORE", |
| 160395 | + /* 78 */ "resolvetype ::= REPLACE", |
| 160396 | + /* 79 */ "cmd ::= DROP TABLE ifexists fullname", |
| 160397 | + /* 80 */ "ifexists ::= IF EXISTS", |
| 160398 | + /* 81 */ "ifexists ::=", |
| 160399 | + /* 82 */ "cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select", |
| 160400 | + /* 83 */ "cmd ::= DROP VIEW ifexists fullname", |
| 160401 | + /* 84 */ "cmd ::= select", |
| 160402 | + /* 85 */ "select ::= WITH wqlist selectnowith", |
| 160403 | + /* 86 */ "select ::= WITH RECURSIVE wqlist selectnowith", |
| 160404 | + /* 87 */ "select ::= selectnowith", |
| 160405 | + /* 88 */ "selectnowith ::= selectnowith multiselect_op oneselect", |
| 160406 | + /* 89 */ "multiselect_op ::= UNION", |
| 160407 | + /* 90 */ "multiselect_op ::= UNION ALL", |
| 160408 | + /* 91 */ "multiselect_op ::= EXCEPT|INTERSECT", |
| 160409 | + /* 92 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt", |
| 160410 | + /* 93 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt", |
| 160411 | + /* 94 */ "values ::= VALUES LP nexprlist RP", |
| 160412 | + /* 95 */ "values ::= values COMMA LP nexprlist RP", |
| 160413 | + /* 96 */ "distinct ::= DISTINCT", |
| 160414 | + /* 97 */ "distinct ::= ALL", |
| 160415 | + /* 98 */ "distinct ::=", |
| 160416 | + /* 99 */ "sclp ::=", |
| 160417 | + /* 100 */ "selcollist ::= sclp scanpt expr scanpt as", |
| 160418 | + /* 101 */ "selcollist ::= sclp scanpt STAR", |
| 160419 | + /* 102 */ "selcollist ::= sclp scanpt nm DOT STAR", |
| 160420 | + /* 103 */ "as ::= AS nm", |
| 160421 | + /* 104 */ "as ::=", |
| 160422 | + /* 105 */ "from ::=", |
| 160423 | + /* 106 */ "from ::= FROM seltablist", |
| 160424 | + /* 107 */ "stl_prefix ::= seltablist joinop", |
| 160425 | + /* 108 */ "stl_prefix ::=", |
| 160426 | + /* 109 */ "seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt", |
| 160427 | + /* 110 */ "seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt", |
| 160428 | + /* 111 */ "seltablist ::= stl_prefix LP select RP as on_opt using_opt", |
| 160429 | + /* 112 */ "seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt", |
| 160430 | + /* 113 */ "dbnm ::=", |
| 160431 | + /* 114 */ "dbnm ::= DOT nm", |
| 160432 | + /* 115 */ "fullname ::= nm", |
| 160433 | + /* 116 */ "fullname ::= nm DOT nm", |
| 160434 | + /* 117 */ "xfullname ::= nm", |
| 160435 | + /* 118 */ "xfullname ::= nm DOT nm", |
| 160436 | + /* 119 */ "xfullname ::= nm DOT nm AS nm", |
| 160437 | + /* 120 */ "xfullname ::= nm AS nm", |
| 160438 | + /* 121 */ "joinop ::= COMMA|JOIN", |
| 160439 | + /* 122 */ "joinop ::= JOIN_KW JOIN", |
| 160440 | + /* 123 */ "joinop ::= JOIN_KW nm JOIN", |
| 160441 | + /* 124 */ "joinop ::= JOIN_KW nm nm JOIN", |
| 160442 | + /* 125 */ "on_opt ::= ON expr", |
| 160443 | + /* 126 */ "on_opt ::=", |
| 160444 | + /* 127 */ "indexed_opt ::=", |
| 160445 | + /* 128 */ "indexed_opt ::= INDEXED BY nm", |
| 160446 | + /* 129 */ "indexed_opt ::= NOT INDEXED", |
| 160447 | + /* 130 */ "using_opt ::= USING LP idlist RP", |
| 160448 | + /* 131 */ "using_opt ::=", |
| 160449 | + /* 132 */ "orderby_opt ::=", |
| 160450 | + /* 133 */ "orderby_opt ::= ORDER BY sortlist", |
| 160451 | + /* 134 */ "sortlist ::= sortlist COMMA expr sortorder nulls", |
| 160452 | + /* 135 */ "sortlist ::= expr sortorder nulls", |
| 160453 | + /* 136 */ "sortorder ::= ASC", |
| 160454 | + /* 137 */ "sortorder ::= DESC", |
| 160455 | + /* 138 */ "sortorder ::=", |
| 160456 | + /* 139 */ "nulls ::= NULLS FIRST", |
| 160457 | + /* 140 */ "nulls ::= NULLS LAST", |
| 160458 | + /* 141 */ "nulls ::=", |
| 160459 | + /* 142 */ "groupby_opt ::=", |
| 160460 | + /* 143 */ "groupby_opt ::= GROUP BY nexprlist", |
| 160461 | + /* 144 */ "having_opt ::=", |
| 160462 | + /* 145 */ "having_opt ::= HAVING expr", |
| 160463 | + /* 146 */ "limit_opt ::=", |
| 160464 | + /* 147 */ "limit_opt ::= LIMIT expr", |
| 160465 | + /* 148 */ "limit_opt ::= LIMIT expr OFFSET expr", |
| 160466 | + /* 149 */ "limit_opt ::= LIMIT expr COMMA expr", |
| 160467 | + /* 150 */ "cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret", |
| 160468 | + /* 151 */ "where_opt ::=", |
| 160469 | + /* 152 */ "where_opt ::= WHERE expr", |
| 160470 | + /* 153 */ "where_opt_ret ::=", |
| 160471 | + /* 154 */ "where_opt_ret ::= WHERE expr", |
| 160472 | + /* 155 */ "where_opt_ret ::= RETURNING selcollist", |
| 160473 | + /* 156 */ "where_opt_ret ::= WHERE expr RETURNING selcollist", |
| 160474 | + /* 157 */ "cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret", |
| 160475 | + /* 158 */ "setlist ::= setlist COMMA nm EQ expr", |
| 160476 | + /* 159 */ "setlist ::= setlist COMMA LP idlist RP EQ expr", |
| 160477 | + /* 160 */ "setlist ::= nm EQ expr", |
| 160478 | + /* 161 */ "setlist ::= LP idlist RP EQ expr", |
| 160479 | + /* 162 */ "cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert", |
| 160480 | + /* 163 */ "cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning", |
| 160481 | + /* 164 */ "upsert ::=", |
| 160482 | + /* 165 */ "upsert ::= RETURNING selcollist", |
| 160483 | + /* 166 */ "upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert", |
| 160484 | + /* 167 */ "upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert", |
| 160485 | + /* 168 */ "upsert ::= ON CONFLICT DO NOTHING returning", |
| 160486 | + /* 169 */ "upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning", |
| 160487 | + /* 170 */ "returning ::= RETURNING selcollist", |
| 160488 | + /* 171 */ "insert_cmd ::= INSERT orconf", |
| 160489 | + /* 172 */ "insert_cmd ::= REPLACE", |
| 160490 | + /* 173 */ "idlist_opt ::=", |
| 160491 | + /* 174 */ "idlist_opt ::= LP idlist RP", |
| 160492 | + /* 175 */ "idlist ::= idlist COMMA nm", |
| 160493 | + /* 176 */ "idlist ::= nm", |
| 160494 | + /* 177 */ "expr ::= LP expr RP", |
| 160495 | + /* 178 */ "expr ::= ID|INDEXED", |
| 160496 | + /* 179 */ "expr ::= JOIN_KW", |
| 160497 | + /* 180 */ "expr ::= nm DOT nm", |
| 160498 | + /* 181 */ "expr ::= nm DOT nm DOT nm", |
| 160499 | + /* 182 */ "term ::= NULL|FLOAT|BLOB", |
| 160500 | + /* 183 */ "term ::= STRING", |
| 160501 | + /* 184 */ "term ::= INTEGER", |
| 160502 | + /* 185 */ "expr ::= VARIABLE", |
| 160503 | + /* 186 */ "expr ::= expr COLLATE ID|STRING", |
| 160504 | + /* 187 */ "expr ::= CAST LP expr AS typetoken RP", |
| 160505 | + /* 188 */ "expr ::= ID|INDEXED LP distinct exprlist RP", |
| 160506 | + /* 189 */ "expr ::= ID|INDEXED LP STAR RP", |
| 160507 | + /* 190 */ "expr ::= ID|INDEXED LP distinct exprlist RP filter_over", |
| 160508 | + /* 191 */ "expr ::= ID|INDEXED LP STAR RP filter_over", |
| 160509 | + /* 192 */ "term ::= CTIME_KW", |
| 160510 | + /* 193 */ "expr ::= LP nexprlist COMMA expr RP", |
| 160511 | + /* 194 */ "expr ::= expr AND expr", |
| 160512 | + /* 195 */ "expr ::= expr OR expr", |
| 160513 | + /* 196 */ "expr ::= expr LT|GT|GE|LE expr", |
| 160514 | + /* 197 */ "expr ::= expr EQ|NE expr", |
| 160515 | + /* 198 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", |
| 160516 | + /* 199 */ "expr ::= expr PLUS|MINUS expr", |
| 160517 | + /* 200 */ "expr ::= expr STAR|SLASH|REM expr", |
| 160518 | + /* 201 */ "expr ::= expr CONCAT expr", |
| 160519 | + /* 202 */ "likeop ::= NOT LIKE_KW|MATCH", |
| 160520 | + /* 203 */ "expr ::= expr likeop expr", |
| 160521 | + /* 204 */ "expr ::= expr likeop expr ESCAPE expr", |
| 160522 | + /* 205 */ "expr ::= expr ISNULL|NOTNULL", |
| 160523 | + /* 206 */ "expr ::= expr NOT NULL", |
| 160524 | + /* 207 */ "expr ::= expr IS expr", |
| 160525 | + /* 208 */ "expr ::= expr IS NOT expr", |
| 160526 | + /* 209 */ "expr ::= NOT expr", |
| 160527 | + /* 210 */ "expr ::= BITNOT expr", |
| 160528 | + /* 211 */ "expr ::= PLUS|MINUS expr", |
| 160529 | + /* 212 */ "between_op ::= BETWEEN", |
| 160530 | + /* 213 */ "between_op ::= NOT BETWEEN", |
| 160531 | + /* 214 */ "expr ::= expr between_op expr AND expr", |
| 160532 | + /* 215 */ "in_op ::= IN", |
| 160533 | + /* 216 */ "in_op ::= NOT IN", |
| 160534 | + /* 217 */ "expr ::= expr in_op LP exprlist RP", |
| 160535 | + /* 218 */ "expr ::= LP select RP", |
| 160536 | + /* 219 */ "expr ::= expr in_op LP select RP", |
| 160537 | + /* 220 */ "expr ::= expr in_op nm dbnm paren_exprlist", |
| 160538 | + /* 221 */ "expr ::= EXISTS LP select RP", |
| 160539 | + /* 222 */ "expr ::= CASE case_operand case_exprlist case_else END", |
| 160540 | + /* 223 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", |
| 160541 | + /* 224 */ "case_exprlist ::= WHEN expr THEN expr", |
| 160542 | + /* 225 */ "case_else ::= ELSE expr", |
| 160543 | + /* 226 */ "case_else ::=", |
| 160544 | + /* 227 */ "case_operand ::= expr", |
| 160545 | + /* 228 */ "case_operand ::=", |
| 160546 | + /* 229 */ "exprlist ::=", |
| 160547 | + /* 230 */ "nexprlist ::= nexprlist COMMA expr", |
| 160548 | + /* 231 */ "nexprlist ::= expr", |
| 160549 | + /* 232 */ "paren_exprlist ::=", |
| 160550 | + /* 233 */ "paren_exprlist ::= LP exprlist RP", |
| 160551 | + /* 234 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt", |
| 160552 | + /* 235 */ "uniqueflag ::= UNIQUE", |
| 160553 | + /* 236 */ "uniqueflag ::=", |
| 160554 | + /* 237 */ "eidlist_opt ::=", |
| 160555 | + /* 238 */ "eidlist_opt ::= LP eidlist RP", |
| 160556 | + /* 239 */ "eidlist ::= eidlist COMMA nm collate sortorder", |
| 160557 | + /* 240 */ "eidlist ::= nm collate sortorder", |
| 160558 | + /* 241 */ "collate ::=", |
| 160559 | + /* 242 */ "collate ::= COLLATE ID|STRING", |
| 160560 | + /* 243 */ "cmd ::= DROP INDEX ifexists fullname", |
| 160561 | + /* 244 */ "cmd ::= VACUUM vinto", |
| 160562 | + /* 245 */ "cmd ::= VACUUM nm vinto", |
| 160563 | + /* 246 */ "vinto ::= INTO expr", |
| 160564 | + /* 247 */ "vinto ::=", |
| 160565 | + /* 248 */ "cmd ::= PRAGMA nm dbnm", |
| 160566 | + /* 249 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", |
| 160567 | + /* 250 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", |
| 160568 | + /* 251 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", |
| 160569 | + /* 252 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP", |
| 160570 | + /* 253 */ "plus_num ::= PLUS INTEGER|FLOAT", |
| 160571 | + /* 254 */ "minus_num ::= MINUS INTEGER|FLOAT", |
| 160572 | + /* 255 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END", |
| 160573 | + /* 256 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", |
| 160574 | + /* 257 */ "trigger_time ::= BEFORE|AFTER", |
| 160575 | + /* 258 */ "trigger_time ::= INSTEAD OF", |
| 160576 | + /* 259 */ "trigger_time ::=", |
| 160577 | + /* 260 */ "trigger_event ::= DELETE|INSERT", |
| 160578 | + /* 261 */ "trigger_event ::= UPDATE", |
| 160579 | + /* 262 */ "trigger_event ::= UPDATE OF idlist", |
| 160580 | + /* 263 */ "when_clause ::=", |
| 160581 | + /* 264 */ "when_clause ::= WHEN expr", |
| 160582 | + /* 265 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", |
| 160583 | + /* 266 */ "trigger_cmd_list ::= trigger_cmd SEMI", |
| 160584 | + /* 267 */ "trnm ::= nm DOT nm", |
| 160585 | + /* 268 */ "tridxby ::= INDEXED BY nm", |
| 160586 | + /* 269 */ "tridxby ::= NOT INDEXED", |
| 160587 | + /* 270 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt", |
| 160588 | + /* 271 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt", |
| 160589 | + /* 272 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt", |
| 160590 | + /* 273 */ "trigger_cmd ::= scanpt select scanpt", |
| 160591 | + /* 274 */ "expr ::= RAISE LP IGNORE RP", |
| 160592 | + /* 275 */ "expr ::= RAISE LP raisetype COMMA nm RP", |
| 160593 | + /* 276 */ "raisetype ::= ROLLBACK", |
| 160594 | + /* 277 */ "raisetype ::= ABORT", |
| 160595 | + /* 278 */ "raisetype ::= FAIL", |
| 160596 | + /* 279 */ "cmd ::= DROP TRIGGER ifexists fullname", |
| 160597 | + /* 280 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", |
| 160598 | + /* 281 */ "cmd ::= DETACH database_kw_opt expr", |
| 160599 | + /* 282 */ "key_opt ::=", |
| 160600 | + /* 283 */ "key_opt ::= KEY expr", |
| 160601 | + /* 284 */ "cmd ::= REINDEX", |
| 160602 | + /* 285 */ "cmd ::= REINDEX nm dbnm", |
| 160603 | + /* 286 */ "cmd ::= ANALYZE", |
| 160604 | + /* 287 */ "cmd ::= ANALYZE nm dbnm", |
| 160605 | + /* 288 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", |
| 160606 | + /* 289 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist", |
| 160607 | + /* 290 */ "cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm", |
| 160608 | + /* 291 */ "add_column_fullname ::= fullname", |
| 160609 | + /* 292 */ "cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm", |
| 160610 | + /* 293 */ "cmd ::= create_vtab", |
| 160611 | + /* 294 */ "cmd ::= create_vtab LP vtabarglist RP", |
| 160612 | + /* 295 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm", |
| 160613 | + /* 296 */ "vtabarg ::=", |
| 160614 | + /* 297 */ "vtabargtoken ::= ANY", |
| 160615 | + /* 298 */ "vtabargtoken ::= lp anylist RP", |
| 160616 | + /* 299 */ "lp ::= LP", |
| 160617 | + /* 300 */ "with ::= WITH wqlist", |
| 160618 | + /* 301 */ "with ::= WITH RECURSIVE wqlist", |
| 160619 | + /* 302 */ "wqas ::= AS", |
| 160620 | + /* 303 */ "wqas ::= AS MATERIALIZED", |
| 160621 | + /* 304 */ "wqas ::= AS NOT MATERIALIZED", |
| 160622 | + /* 305 */ "wqitem ::= nm eidlist_opt wqas LP select RP", |
| 160623 | + /* 306 */ "wqlist ::= wqitem", |
| 160624 | + /* 307 */ "wqlist ::= wqlist COMMA wqitem", |
| 160625 | + /* 308 */ "windowdefn_list ::= windowdefn", |
| 160626 | + /* 309 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", |
| 160627 | + /* 310 */ "windowdefn ::= nm AS LP window RP", |
| 160628 | + /* 311 */ "window ::= PARTITION BY nexprlist orderby_opt frame_opt", |
| 160629 | + /* 312 */ "window ::= nm PARTITION BY nexprlist orderby_opt frame_opt", |
| 160630 | + /* 313 */ "window ::= ORDER BY sortlist frame_opt", |
| 160631 | + /* 314 */ "window ::= nm ORDER BY sortlist frame_opt", |
| 160632 | + /* 315 */ "window ::= frame_opt", |
| 160633 | + /* 316 */ "window ::= nm frame_opt", |
| 160634 | + /* 317 */ "frame_opt ::=", |
| 160635 | + /* 318 */ "frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt", |
| 160636 | + /* 319 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt", |
| 160637 | + /* 320 */ "range_or_rows ::= RANGE|ROWS|GROUPS", |
| 160638 | + /* 321 */ "frame_bound_s ::= frame_bound", |
| 160639 | + /* 322 */ "frame_bound_s ::= UNBOUNDED PRECEDING", |
| 160640 | + /* 323 */ "frame_bound_e ::= frame_bound", |
| 160641 | + /* 324 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", |
| 160642 | + /* 325 */ "frame_bound ::= expr PRECEDING|FOLLOWING", |
| 160643 | + /* 326 */ "frame_bound ::= CURRENT ROW", |
| 160644 | + /* 327 */ "frame_exclude_opt ::=", |
| 160645 | + /* 328 */ "frame_exclude_opt ::= EXCLUDE frame_exclude", |
| 160646 | + /* 329 */ "frame_exclude ::= NO OTHERS", |
| 160647 | + /* 330 */ "frame_exclude ::= CURRENT ROW", |
| 160648 | + /* 331 */ "frame_exclude ::= GROUP|TIES", |
| 160649 | + /* 332 */ "window_clause ::= WINDOW windowdefn_list", |
| 160650 | + /* 333 */ "filter_over ::= filter_clause over_clause", |
| 160651 | + /* 334 */ "filter_over ::= over_clause", |
| 160652 | + /* 335 */ "filter_over ::= filter_clause", |
| 160653 | + /* 336 */ "over_clause ::= OVER LP window RP", |
| 160654 | + /* 337 */ "over_clause ::= OVER nm", |
| 160655 | + /* 338 */ "filter_clause ::= FILTER LP WHERE expr RP", |
| 160656 | + /* 339 */ "input ::= cmdlist", |
| 160657 | + /* 340 */ "cmdlist ::= cmdlist ecmd", |
| 160658 | + /* 341 */ "cmdlist ::= ecmd", |
| 160659 | + /* 342 */ "ecmd ::= SEMI", |
| 160660 | + /* 343 */ "ecmd ::= cmdx SEMI", |
| 160661 | + /* 344 */ "ecmd ::= explain cmdx SEMI", |
| 160662 | + /* 345 */ "trans_opt ::=", |
| 160663 | + /* 346 */ "trans_opt ::= TRANSACTION", |
| 160664 | + /* 347 */ "trans_opt ::= TRANSACTION nm", |
| 160665 | + /* 348 */ "savepoint_opt ::= SAVEPOINT", |
| 160666 | + /* 349 */ "savepoint_opt ::=", |
| 160667 | + /* 350 */ "cmd ::= create_table create_table_args", |
| 160668 | + /* 351 */ "table_option_set ::= table_option", |
| 160669 | + /* 352 */ "columnlist ::= columnlist COMMA columnname carglist", |
| 160670 | + /* 353 */ "columnlist ::= columnname carglist", |
| 160671 | + /* 354 */ "nm ::= ID|INDEXED", |
| 160672 | + /* 355 */ "nm ::= STRING", |
| 160673 | + /* 356 */ "nm ::= JOIN_KW", |
| 160674 | + /* 357 */ "typetoken ::= typename", |
| 160675 | + /* 358 */ "typename ::= ID|STRING", |
| 160676 | + /* 359 */ "signed ::= plus_num", |
| 160677 | + /* 360 */ "signed ::= minus_num", |
| 160678 | + /* 361 */ "carglist ::= carglist ccons", |
| 160679 | + /* 362 */ "carglist ::=", |
| 160680 | + /* 363 */ "ccons ::= NULL onconf", |
| 160681 | + /* 364 */ "ccons ::= GENERATED ALWAYS AS generated", |
| 160682 | + /* 365 */ "ccons ::= AS generated", |
| 160683 | + /* 366 */ "conslist_opt ::= COMMA conslist", |
| 160684 | + /* 367 */ "conslist ::= conslist tconscomma tcons", |
| 160685 | + /* 368 */ "conslist ::= tcons", |
| 160686 | + /* 369 */ "tconscomma ::=", |
| 160687 | + /* 370 */ "defer_subclause_opt ::= defer_subclause", |
| 160688 | + /* 371 */ "resolvetype ::= raisetype", |
| 160689 | + /* 372 */ "selectnowith ::= oneselect", |
| 160690 | + /* 373 */ "oneselect ::= values", |
| 160691 | + /* 374 */ "sclp ::= selcollist COMMA", |
| 160692 | + /* 375 */ "as ::= ID|STRING", |
| 160693 | + /* 376 */ "returning ::=", |
| 160694 | + /* 377 */ "expr ::= term", |
| 160695 | + /* 378 */ "likeop ::= LIKE_KW|MATCH", |
| 160696 | + /* 379 */ "exprlist ::= nexprlist", |
| 160697 | + /* 380 */ "nmnum ::= plus_num", |
| 160698 | + /* 381 */ "nmnum ::= nm", |
| 160699 | + /* 382 */ "nmnum ::= ON", |
| 160700 | + /* 383 */ "nmnum ::= DELETE", |
| 160701 | + /* 384 */ "nmnum ::= DEFAULT", |
| 160702 | + /* 385 */ "plus_num ::= INTEGER|FLOAT", |
| 160703 | + /* 386 */ "foreach_clause ::=", |
| 160704 | + /* 387 */ "foreach_clause ::= FOR EACH ROW", |
| 160705 | + /* 388 */ "trnm ::= nm", |
| 160706 | + /* 389 */ "tridxby ::=", |
| 160707 | + /* 390 */ "database_kw_opt ::= DATABASE", |
| 160708 | + /* 391 */ "database_kw_opt ::=", |
| 160709 | + /* 392 */ "kwcolumn_opt ::=", |
| 160710 | + /* 393 */ "kwcolumn_opt ::= COLUMNKW", |
| 160711 | + /* 394 */ "vtabarglist ::= vtabarg", |
| 160712 | + /* 395 */ "vtabarglist ::= vtabarglist COMMA vtabarg", |
| 160713 | + /* 396 */ "vtabarg ::= vtabarg vtabargtoken", |
| 160714 | + /* 397 */ "anylist ::=", |
| 160715 | + /* 398 */ "anylist ::= anylist LP anylist RP", |
| 160716 | + /* 399 */ "anylist ::= anylist ANY", |
| 160717 | + /* 400 */ "with ::=", |
| 160421 | 160718 | }; |
| 160422 | 160719 | #endif /* NDEBUG */ |
| 160423 | 160720 | |
| 160424 | 160721 | |
| 160425 | 160722 | #if YYSTACKDEPTH<=0 |
| | @@ -160542,102 +160839,102 @@ |
| 160542 | 160839 | ** which appear on the RHS of the rule, but which are *not* used |
| 160543 | 160840 | ** inside the C code. |
| 160544 | 160841 | */ |
| 160545 | 160842 | /********* Begin destructor definitions ***************************************/ |
| 160546 | 160843 | case 203: /* select */ |
| 160547 | | - case 237: /* selectnowith */ |
| 160548 | | - case 238: /* oneselect */ |
| 160549 | | - case 250: /* values */ |
| 160550 | | -{ |
| 160551 | | -sqlite3SelectDelete(pParse->db, (yypminor->yy81)); |
| 160552 | | -} |
| 160553 | | - break; |
| 160554 | | - case 214: /* term */ |
| 160555 | | - case 215: /* expr */ |
| 160556 | | - case 244: /* where_opt */ |
| 160557 | | - case 246: /* having_opt */ |
| 160558 | | - case 258: /* on_opt */ |
| 160559 | | - case 265: /* where_opt_ret */ |
| 160560 | | - case 276: /* case_operand */ |
| 160561 | | - case 278: /* case_else */ |
| 160562 | | - case 281: /* vinto */ |
| 160563 | | - case 288: /* when_clause */ |
| 160564 | | - case 293: /* key_opt */ |
| 160565 | | - case 309: /* filter_clause */ |
| 160566 | | -{ |
| 160567 | | -sqlite3ExprDelete(pParse->db, (yypminor->yy404)); |
| 160568 | | -} |
| 160569 | | - break; |
| 160570 | | - case 219: /* eidlist_opt */ |
| 160571 | | - case 229: /* sortlist */ |
| 160572 | | - case 230: /* eidlist */ |
| 160573 | | - case 242: /* selcollist */ |
| 160574 | | - case 245: /* groupby_opt */ |
| 160575 | | - case 247: /* orderby_opt */ |
| 160576 | | - case 251: /* nexprlist */ |
| 160577 | | - case 252: /* sclp */ |
| 160578 | | - case 260: /* exprlist */ |
| 160579 | | - case 266: /* setlist */ |
| 160580 | | - case 275: /* paren_exprlist */ |
| 160581 | | - case 277: /* case_exprlist */ |
| 160582 | | - case 308: /* part_opt */ |
| 160583 | | -{ |
| 160584 | | -sqlite3ExprListDelete(pParse->db, (yypminor->yy70)); |
| 160585 | | -} |
| 160586 | | - break; |
| 160587 | | - case 236: /* fullname */ |
| 160588 | | - case 243: /* from */ |
| 160589 | | - case 254: /* seltablist */ |
| 160590 | | - case 255: /* stl_prefix */ |
| 160591 | | - case 261: /* xfullname */ |
| 160592 | | -{ |
| 160593 | | -sqlite3SrcListDelete(pParse->db, (yypminor->yy153)); |
| 160594 | | -} |
| 160595 | | - break; |
| 160596 | | - case 239: /* wqlist */ |
| 160597 | | -{ |
| 160598 | | -sqlite3WithDelete(pParse->db, (yypminor->yy103)); |
| 160599 | | -} |
| 160600 | | - break; |
| 160601 | | - case 249: /* window_clause */ |
| 160602 | | - case 304: /* windowdefn_list */ |
| 160603 | | -{ |
| 160604 | | -sqlite3WindowListDelete(pParse->db, (yypminor->yy49)); |
| 160605 | | -} |
| 160606 | | - break; |
| 160607 | | - case 259: /* using_opt */ |
| 160608 | | - case 262: /* idlist */ |
| 160609 | | - case 268: /* idlist_opt */ |
| 160610 | | -{ |
| 160611 | | -sqlite3IdListDelete(pParse->db, (yypminor->yy436)); |
| 160612 | | -} |
| 160613 | | - break; |
| 160614 | | - case 271: /* filter_over */ |
| 160615 | | - case 305: /* windowdefn */ |
| 160616 | | - case 306: /* window */ |
| 160617 | | - case 307: /* frame_opt */ |
| 160618 | | - case 310: /* over_clause */ |
| 160619 | | -{ |
| 160620 | | -sqlite3WindowDelete(pParse->db, (yypminor->yy49)); |
| 160621 | | -} |
| 160622 | | - break; |
| 160623 | | - case 284: /* trigger_cmd_list */ |
| 160624 | | - case 289: /* trigger_cmd */ |
| 160625 | | -{ |
| 160626 | | -sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy157)); |
| 160627 | | -} |
| 160628 | | - break; |
| 160629 | | - case 286: /* trigger_event */ |
| 160630 | | -{ |
| 160631 | | -sqlite3IdListDelete(pParse->db, (yypminor->yy262).b); |
| 160632 | | -} |
| 160633 | | - break; |
| 160634 | | - case 312: /* frame_bound */ |
| 160635 | | - case 313: /* frame_bound_s */ |
| 160636 | | - case 314: /* frame_bound_e */ |
| 160637 | | -{ |
| 160638 | | -sqlite3ExprDelete(pParse->db, (yypminor->yy117).pExpr); |
| 160844 | + case 238: /* selectnowith */ |
| 160845 | + case 239: /* oneselect */ |
| 160846 | + case 251: /* values */ |
| 160847 | +{ |
| 160848 | +sqlite3SelectDelete(pParse->db, (yypminor->yy303)); |
| 160849 | +} |
| 160850 | + break; |
| 160851 | + case 215: /* term */ |
| 160852 | + case 216: /* expr */ |
| 160853 | + case 245: /* where_opt */ |
| 160854 | + case 247: /* having_opt */ |
| 160855 | + case 259: /* on_opt */ |
| 160856 | + case 266: /* where_opt_ret */ |
| 160857 | + case 277: /* case_operand */ |
| 160858 | + case 279: /* case_else */ |
| 160859 | + case 282: /* vinto */ |
| 160860 | + case 289: /* when_clause */ |
| 160861 | + case 294: /* key_opt */ |
| 160862 | + case 310: /* filter_clause */ |
| 160863 | +{ |
| 160864 | +sqlite3ExprDelete(pParse->db, (yypminor->yy626)); |
| 160865 | +} |
| 160866 | + break; |
| 160867 | + case 220: /* eidlist_opt */ |
| 160868 | + case 230: /* sortlist */ |
| 160869 | + case 231: /* eidlist */ |
| 160870 | + case 243: /* selcollist */ |
| 160871 | + case 246: /* groupby_opt */ |
| 160872 | + case 248: /* orderby_opt */ |
| 160873 | + case 252: /* nexprlist */ |
| 160874 | + case 253: /* sclp */ |
| 160875 | + case 261: /* exprlist */ |
| 160876 | + case 267: /* setlist */ |
| 160877 | + case 276: /* paren_exprlist */ |
| 160878 | + case 278: /* case_exprlist */ |
| 160879 | + case 309: /* part_opt */ |
| 160880 | +{ |
| 160881 | +sqlite3ExprListDelete(pParse->db, (yypminor->yy562)); |
| 160882 | +} |
| 160883 | + break; |
| 160884 | + case 237: /* fullname */ |
| 160885 | + case 244: /* from */ |
| 160886 | + case 255: /* seltablist */ |
| 160887 | + case 256: /* stl_prefix */ |
| 160888 | + case 262: /* xfullname */ |
| 160889 | +{ |
| 160890 | +sqlite3SrcListDelete(pParse->db, (yypminor->yy607)); |
| 160891 | +} |
| 160892 | + break; |
| 160893 | + case 240: /* wqlist */ |
| 160894 | +{ |
| 160895 | +sqlite3WithDelete(pParse->db, (yypminor->yy43)); |
| 160896 | +} |
| 160897 | + break; |
| 160898 | + case 250: /* window_clause */ |
| 160899 | + case 305: /* windowdefn_list */ |
| 160900 | +{ |
| 160901 | +sqlite3WindowListDelete(pParse->db, (yypminor->yy375)); |
| 160902 | +} |
| 160903 | + break; |
| 160904 | + case 260: /* using_opt */ |
| 160905 | + case 263: /* idlist */ |
| 160906 | + case 269: /* idlist_opt */ |
| 160907 | +{ |
| 160908 | +sqlite3IdListDelete(pParse->db, (yypminor->yy240)); |
| 160909 | +} |
| 160910 | + break; |
| 160911 | + case 272: /* filter_over */ |
| 160912 | + case 306: /* windowdefn */ |
| 160913 | + case 307: /* window */ |
| 160914 | + case 308: /* frame_opt */ |
| 160915 | + case 311: /* over_clause */ |
| 160916 | +{ |
| 160917 | +sqlite3WindowDelete(pParse->db, (yypminor->yy375)); |
| 160918 | +} |
| 160919 | + break; |
| 160920 | + case 285: /* trigger_cmd_list */ |
| 160921 | + case 290: /* trigger_cmd */ |
| 160922 | +{ |
| 160923 | +sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy95)); |
| 160924 | +} |
| 160925 | + break; |
| 160926 | + case 287: /* trigger_event */ |
| 160927 | +{ |
| 160928 | +sqlite3IdListDelete(pParse->db, (yypminor->yy570).b); |
| 160929 | +} |
| 160930 | + break; |
| 160931 | + case 313: /* frame_bound */ |
| 160932 | + case 314: /* frame_bound_s */ |
| 160933 | + case 315: /* frame_bound_e */ |
| 160934 | +{ |
| 160935 | +sqlite3ExprDelete(pParse->db, (yypminor->yy81).pExpr); |
| 160639 | 160936 | } |
| 160640 | 160937 | break; |
| 160641 | 160938 | /********* End destructor definitions *****************************************/ |
| 160642 | 160939 | default: break; /* If no destructor action specified: do nothing */ |
| 160643 | 160940 | } |
| | @@ -160943,389 +161240,392 @@ |
| 160943 | 161240 | 196, /* (14) createkw ::= CREATE */ |
| 160944 | 161241 | 198, /* (15) ifnotexists ::= */ |
| 160945 | 161242 | 198, /* (16) ifnotexists ::= IF NOT EXISTS */ |
| 160946 | 161243 | 197, /* (17) temp ::= TEMP */ |
| 160947 | 161244 | 197, /* (18) temp ::= */ |
| 160948 | | - 195, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_options */ |
| 161245 | + 195, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_option_set */ |
| 160949 | 161246 | 195, /* (20) create_table_args ::= AS select */ |
| 160950 | | - 202, /* (21) table_options ::= */ |
| 160951 | | - 202, /* (22) table_options ::= WITHOUT nm */ |
| 160952 | | - 204, /* (23) columnname ::= nm typetoken */ |
| 160953 | | - 206, /* (24) typetoken ::= */ |
| 160954 | | - 206, /* (25) typetoken ::= typename LP signed RP */ |
| 160955 | | - 206, /* (26) typetoken ::= typename LP signed COMMA signed RP */ |
| 160956 | | - 207, /* (27) typename ::= typename ID|STRING */ |
| 160957 | | - 211, /* (28) scanpt ::= */ |
| 160958 | | - 212, /* (29) scantok ::= */ |
| 160959 | | - 213, /* (30) ccons ::= CONSTRAINT nm */ |
| 160960 | | - 213, /* (31) ccons ::= DEFAULT scantok term */ |
| 160961 | | - 213, /* (32) ccons ::= DEFAULT LP expr RP */ |
| 160962 | | - 213, /* (33) ccons ::= DEFAULT PLUS scantok term */ |
| 160963 | | - 213, /* (34) ccons ::= DEFAULT MINUS scantok term */ |
| 160964 | | - 213, /* (35) ccons ::= DEFAULT scantok ID|INDEXED */ |
| 160965 | | - 213, /* (36) ccons ::= NOT NULL onconf */ |
| 160966 | | - 213, /* (37) ccons ::= PRIMARY KEY sortorder onconf autoinc */ |
| 160967 | | - 213, /* (38) ccons ::= UNIQUE onconf */ |
| 160968 | | - 213, /* (39) ccons ::= CHECK LP expr RP */ |
| 160969 | | - 213, /* (40) ccons ::= REFERENCES nm eidlist_opt refargs */ |
| 160970 | | - 213, /* (41) ccons ::= defer_subclause */ |
| 160971 | | - 213, /* (42) ccons ::= COLLATE ID|STRING */ |
| 160972 | | - 222, /* (43) generated ::= LP expr RP */ |
| 160973 | | - 222, /* (44) generated ::= LP expr RP ID */ |
| 160974 | | - 218, /* (45) autoinc ::= */ |
| 160975 | | - 218, /* (46) autoinc ::= AUTOINCR */ |
| 160976 | | - 220, /* (47) refargs ::= */ |
| 160977 | | - 220, /* (48) refargs ::= refargs refarg */ |
| 160978 | | - 223, /* (49) refarg ::= MATCH nm */ |
| 160979 | | - 223, /* (50) refarg ::= ON INSERT refact */ |
| 160980 | | - 223, /* (51) refarg ::= ON DELETE refact */ |
| 160981 | | - 223, /* (52) refarg ::= ON UPDATE refact */ |
| 160982 | | - 224, /* (53) refact ::= SET NULL */ |
| 160983 | | - 224, /* (54) refact ::= SET DEFAULT */ |
| 160984 | | - 224, /* (55) refact ::= CASCADE */ |
| 160985 | | - 224, /* (56) refact ::= RESTRICT */ |
| 160986 | | - 224, /* (57) refact ::= NO ACTION */ |
| 160987 | | - 221, /* (58) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ |
| 160988 | | - 221, /* (59) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ |
| 160989 | | - 225, /* (60) init_deferred_pred_opt ::= */ |
| 160990 | | - 225, /* (61) init_deferred_pred_opt ::= INITIALLY DEFERRED */ |
| 160991 | | - 225, /* (62) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ |
| 160992 | | - 201, /* (63) conslist_opt ::= */ |
| 160993 | | - 227, /* (64) tconscomma ::= COMMA */ |
| 160994 | | - 228, /* (65) tcons ::= CONSTRAINT nm */ |
| 160995 | | - 228, /* (66) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ |
| 160996 | | - 228, /* (67) tcons ::= UNIQUE LP sortlist RP onconf */ |
| 160997 | | - 228, /* (68) tcons ::= CHECK LP expr RP onconf */ |
| 160998 | | - 228, /* (69) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ |
| 160999 | | - 231, /* (70) defer_subclause_opt ::= */ |
| 161000 | | - 216, /* (71) onconf ::= */ |
| 161001 | | - 216, /* (72) onconf ::= ON CONFLICT resolvetype */ |
| 161002 | | - 232, /* (73) orconf ::= */ |
| 161003 | | - 232, /* (74) orconf ::= OR resolvetype */ |
| 161004 | | - 233, /* (75) resolvetype ::= IGNORE */ |
| 161005 | | - 233, /* (76) resolvetype ::= REPLACE */ |
| 161006 | | - 189, /* (77) cmd ::= DROP TABLE ifexists fullname */ |
| 161007 | | - 235, /* (78) ifexists ::= IF EXISTS */ |
| 161008 | | - 235, /* (79) ifexists ::= */ |
| 161009 | | - 189, /* (80) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ |
| 161010 | | - 189, /* (81) cmd ::= DROP VIEW ifexists fullname */ |
| 161011 | | - 189, /* (82) cmd ::= select */ |
| 161012 | | - 203, /* (83) select ::= WITH wqlist selectnowith */ |
| 161013 | | - 203, /* (84) select ::= WITH RECURSIVE wqlist selectnowith */ |
| 161014 | | - 203, /* (85) select ::= selectnowith */ |
| 161015 | | - 237, /* (86) selectnowith ::= selectnowith multiselect_op oneselect */ |
| 161016 | | - 240, /* (87) multiselect_op ::= UNION */ |
| 161017 | | - 240, /* (88) multiselect_op ::= UNION ALL */ |
| 161018 | | - 240, /* (89) multiselect_op ::= EXCEPT|INTERSECT */ |
| 161019 | | - 238, /* (90) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ |
| 161020 | | - 238, /* (91) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ |
| 161021 | | - 250, /* (92) values ::= VALUES LP nexprlist RP */ |
| 161022 | | - 250, /* (93) values ::= values COMMA LP nexprlist RP */ |
| 161023 | | - 241, /* (94) distinct ::= DISTINCT */ |
| 161024 | | - 241, /* (95) distinct ::= ALL */ |
| 161025 | | - 241, /* (96) distinct ::= */ |
| 161026 | | - 252, /* (97) sclp ::= */ |
| 161027 | | - 242, /* (98) selcollist ::= sclp scanpt expr scanpt as */ |
| 161028 | | - 242, /* (99) selcollist ::= sclp scanpt STAR */ |
| 161029 | | - 242, /* (100) selcollist ::= sclp scanpt nm DOT STAR */ |
| 161030 | | - 253, /* (101) as ::= AS nm */ |
| 161031 | | - 253, /* (102) as ::= */ |
| 161032 | | - 243, /* (103) from ::= */ |
| 161033 | | - 243, /* (104) from ::= FROM seltablist */ |
| 161034 | | - 255, /* (105) stl_prefix ::= seltablist joinop */ |
| 161035 | | - 255, /* (106) stl_prefix ::= */ |
| 161036 | | - 254, /* (107) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ |
| 161037 | | - 254, /* (108) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */ |
| 161038 | | - 254, /* (109) seltablist ::= stl_prefix LP select RP as on_opt using_opt */ |
| 161039 | | - 254, /* (110) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ |
| 161040 | | - 199, /* (111) dbnm ::= */ |
| 161041 | | - 199, /* (112) dbnm ::= DOT nm */ |
| 161042 | | - 236, /* (113) fullname ::= nm */ |
| 161043 | | - 236, /* (114) fullname ::= nm DOT nm */ |
| 161044 | | - 261, /* (115) xfullname ::= nm */ |
| 161045 | | - 261, /* (116) xfullname ::= nm DOT nm */ |
| 161046 | | - 261, /* (117) xfullname ::= nm DOT nm AS nm */ |
| 161047 | | - 261, /* (118) xfullname ::= nm AS nm */ |
| 161048 | | - 256, /* (119) joinop ::= COMMA|JOIN */ |
| 161049 | | - 256, /* (120) joinop ::= JOIN_KW JOIN */ |
| 161050 | | - 256, /* (121) joinop ::= JOIN_KW nm JOIN */ |
| 161051 | | - 256, /* (122) joinop ::= JOIN_KW nm nm JOIN */ |
| 161052 | | - 258, /* (123) on_opt ::= ON expr */ |
| 161053 | | - 258, /* (124) on_opt ::= */ |
| 161054 | | - 257, /* (125) indexed_opt ::= */ |
| 161055 | | - 257, /* (126) indexed_opt ::= INDEXED BY nm */ |
| 161056 | | - 257, /* (127) indexed_opt ::= NOT INDEXED */ |
| 161057 | | - 259, /* (128) using_opt ::= USING LP idlist RP */ |
| 161058 | | - 259, /* (129) using_opt ::= */ |
| 161059 | | - 247, /* (130) orderby_opt ::= */ |
| 161060 | | - 247, /* (131) orderby_opt ::= ORDER BY sortlist */ |
| 161061 | | - 229, /* (132) sortlist ::= sortlist COMMA expr sortorder nulls */ |
| 161062 | | - 229, /* (133) sortlist ::= expr sortorder nulls */ |
| 161063 | | - 217, /* (134) sortorder ::= ASC */ |
| 161064 | | - 217, /* (135) sortorder ::= DESC */ |
| 161065 | | - 217, /* (136) sortorder ::= */ |
| 161066 | | - 263, /* (137) nulls ::= NULLS FIRST */ |
| 161067 | | - 263, /* (138) nulls ::= NULLS LAST */ |
| 161068 | | - 263, /* (139) nulls ::= */ |
| 161069 | | - 245, /* (140) groupby_opt ::= */ |
| 161070 | | - 245, /* (141) groupby_opt ::= GROUP BY nexprlist */ |
| 161071 | | - 246, /* (142) having_opt ::= */ |
| 161072 | | - 246, /* (143) having_opt ::= HAVING expr */ |
| 161073 | | - 248, /* (144) limit_opt ::= */ |
| 161074 | | - 248, /* (145) limit_opt ::= LIMIT expr */ |
| 161075 | | - 248, /* (146) limit_opt ::= LIMIT expr OFFSET expr */ |
| 161076 | | - 248, /* (147) limit_opt ::= LIMIT expr COMMA expr */ |
| 161077 | | - 189, /* (148) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ |
| 161078 | | - 244, /* (149) where_opt ::= */ |
| 161079 | | - 244, /* (150) where_opt ::= WHERE expr */ |
| 161080 | | - 265, /* (151) where_opt_ret ::= */ |
| 161081 | | - 265, /* (152) where_opt_ret ::= WHERE expr */ |
| 161082 | | - 265, /* (153) where_opt_ret ::= RETURNING selcollist */ |
| 161083 | | - 265, /* (154) where_opt_ret ::= WHERE expr RETURNING selcollist */ |
| 161084 | | - 189, /* (155) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ |
| 161085 | | - 266, /* (156) setlist ::= setlist COMMA nm EQ expr */ |
| 161086 | | - 266, /* (157) setlist ::= setlist COMMA LP idlist RP EQ expr */ |
| 161087 | | - 266, /* (158) setlist ::= nm EQ expr */ |
| 161088 | | - 266, /* (159) setlist ::= LP idlist RP EQ expr */ |
| 161089 | | - 189, /* (160) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ |
| 161090 | | - 189, /* (161) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ |
| 161091 | | - 269, /* (162) upsert ::= */ |
| 161092 | | - 269, /* (163) upsert ::= RETURNING selcollist */ |
| 161093 | | - 269, /* (164) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ |
| 161094 | | - 269, /* (165) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ |
| 161095 | | - 269, /* (166) upsert ::= ON CONFLICT DO NOTHING returning */ |
| 161096 | | - 269, /* (167) upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ |
| 161097 | | - 270, /* (168) returning ::= RETURNING selcollist */ |
| 161098 | | - 267, /* (169) insert_cmd ::= INSERT orconf */ |
| 161099 | | - 267, /* (170) insert_cmd ::= REPLACE */ |
| 161100 | | - 268, /* (171) idlist_opt ::= */ |
| 161101 | | - 268, /* (172) idlist_opt ::= LP idlist RP */ |
| 161102 | | - 262, /* (173) idlist ::= idlist COMMA nm */ |
| 161103 | | - 262, /* (174) idlist ::= nm */ |
| 161104 | | - 215, /* (175) expr ::= LP expr RP */ |
| 161105 | | - 215, /* (176) expr ::= ID|INDEXED */ |
| 161106 | | - 215, /* (177) expr ::= JOIN_KW */ |
| 161107 | | - 215, /* (178) expr ::= nm DOT nm */ |
| 161108 | | - 215, /* (179) expr ::= nm DOT nm DOT nm */ |
| 161109 | | - 214, /* (180) term ::= NULL|FLOAT|BLOB */ |
| 161110 | | - 214, /* (181) term ::= STRING */ |
| 161111 | | - 214, /* (182) term ::= INTEGER */ |
| 161112 | | - 215, /* (183) expr ::= VARIABLE */ |
| 161113 | | - 215, /* (184) expr ::= expr COLLATE ID|STRING */ |
| 161114 | | - 215, /* (185) expr ::= CAST LP expr AS typetoken RP */ |
| 161115 | | - 215, /* (186) expr ::= ID|INDEXED LP distinct exprlist RP */ |
| 161116 | | - 215, /* (187) expr ::= ID|INDEXED LP STAR RP */ |
| 161117 | | - 215, /* (188) expr ::= ID|INDEXED LP distinct exprlist RP filter_over */ |
| 161118 | | - 215, /* (189) expr ::= ID|INDEXED LP STAR RP filter_over */ |
| 161119 | | - 214, /* (190) term ::= CTIME_KW */ |
| 161120 | | - 215, /* (191) expr ::= LP nexprlist COMMA expr RP */ |
| 161121 | | - 215, /* (192) expr ::= expr AND expr */ |
| 161122 | | - 215, /* (193) expr ::= expr OR expr */ |
| 161123 | | - 215, /* (194) expr ::= expr LT|GT|GE|LE expr */ |
| 161124 | | - 215, /* (195) expr ::= expr EQ|NE expr */ |
| 161125 | | - 215, /* (196) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ |
| 161126 | | - 215, /* (197) expr ::= expr PLUS|MINUS expr */ |
| 161127 | | - 215, /* (198) expr ::= expr STAR|SLASH|REM expr */ |
| 161128 | | - 215, /* (199) expr ::= expr CONCAT expr */ |
| 161129 | | - 272, /* (200) likeop ::= NOT LIKE_KW|MATCH */ |
| 161130 | | - 215, /* (201) expr ::= expr likeop expr */ |
| 161131 | | - 215, /* (202) expr ::= expr likeop expr ESCAPE expr */ |
| 161132 | | - 215, /* (203) expr ::= expr ISNULL|NOTNULL */ |
| 161133 | | - 215, /* (204) expr ::= expr NOT NULL */ |
| 161134 | | - 215, /* (205) expr ::= expr IS expr */ |
| 161135 | | - 215, /* (206) expr ::= expr IS NOT expr */ |
| 161136 | | - 215, /* (207) expr ::= NOT expr */ |
| 161137 | | - 215, /* (208) expr ::= BITNOT expr */ |
| 161138 | | - 215, /* (209) expr ::= PLUS|MINUS expr */ |
| 161139 | | - 273, /* (210) between_op ::= BETWEEN */ |
| 161140 | | - 273, /* (211) between_op ::= NOT BETWEEN */ |
| 161141 | | - 215, /* (212) expr ::= expr between_op expr AND expr */ |
| 161142 | | - 274, /* (213) in_op ::= IN */ |
| 161143 | | - 274, /* (214) in_op ::= NOT IN */ |
| 161144 | | - 215, /* (215) expr ::= expr in_op LP exprlist RP */ |
| 161145 | | - 215, /* (216) expr ::= LP select RP */ |
| 161146 | | - 215, /* (217) expr ::= expr in_op LP select RP */ |
| 161147 | | - 215, /* (218) expr ::= expr in_op nm dbnm paren_exprlist */ |
| 161148 | | - 215, /* (219) expr ::= EXISTS LP select RP */ |
| 161149 | | - 215, /* (220) expr ::= CASE case_operand case_exprlist case_else END */ |
| 161150 | | - 277, /* (221) case_exprlist ::= case_exprlist WHEN expr THEN expr */ |
| 161151 | | - 277, /* (222) case_exprlist ::= WHEN expr THEN expr */ |
| 161152 | | - 278, /* (223) case_else ::= ELSE expr */ |
| 161153 | | - 278, /* (224) case_else ::= */ |
| 161154 | | - 276, /* (225) case_operand ::= expr */ |
| 161155 | | - 276, /* (226) case_operand ::= */ |
| 161156 | | - 260, /* (227) exprlist ::= */ |
| 161157 | | - 251, /* (228) nexprlist ::= nexprlist COMMA expr */ |
| 161158 | | - 251, /* (229) nexprlist ::= expr */ |
| 161159 | | - 275, /* (230) paren_exprlist ::= */ |
| 161160 | | - 275, /* (231) paren_exprlist ::= LP exprlist RP */ |
| 161161 | | - 189, /* (232) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ |
| 161162 | | - 279, /* (233) uniqueflag ::= UNIQUE */ |
| 161163 | | - 279, /* (234) uniqueflag ::= */ |
| 161164 | | - 219, /* (235) eidlist_opt ::= */ |
| 161165 | | - 219, /* (236) eidlist_opt ::= LP eidlist RP */ |
| 161166 | | - 230, /* (237) eidlist ::= eidlist COMMA nm collate sortorder */ |
| 161167 | | - 230, /* (238) eidlist ::= nm collate sortorder */ |
| 161168 | | - 280, /* (239) collate ::= */ |
| 161169 | | - 280, /* (240) collate ::= COLLATE ID|STRING */ |
| 161170 | | - 189, /* (241) cmd ::= DROP INDEX ifexists fullname */ |
| 161171 | | - 189, /* (242) cmd ::= VACUUM vinto */ |
| 161172 | | - 189, /* (243) cmd ::= VACUUM nm vinto */ |
| 161173 | | - 281, /* (244) vinto ::= INTO expr */ |
| 161174 | | - 281, /* (245) vinto ::= */ |
| 161175 | | - 189, /* (246) cmd ::= PRAGMA nm dbnm */ |
| 161176 | | - 189, /* (247) cmd ::= PRAGMA nm dbnm EQ nmnum */ |
| 161177 | | - 189, /* (248) cmd ::= PRAGMA nm dbnm LP nmnum RP */ |
| 161178 | | - 189, /* (249) cmd ::= PRAGMA nm dbnm EQ minus_num */ |
| 161179 | | - 189, /* (250) cmd ::= PRAGMA nm dbnm LP minus_num RP */ |
| 161180 | | - 209, /* (251) plus_num ::= PLUS INTEGER|FLOAT */ |
| 161181 | | - 210, /* (252) minus_num ::= MINUS INTEGER|FLOAT */ |
| 161182 | | - 189, /* (253) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ |
| 161183 | | - 283, /* (254) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ |
| 161184 | | - 285, /* (255) trigger_time ::= BEFORE|AFTER */ |
| 161185 | | - 285, /* (256) trigger_time ::= INSTEAD OF */ |
| 161186 | | - 285, /* (257) trigger_time ::= */ |
| 161187 | | - 286, /* (258) trigger_event ::= DELETE|INSERT */ |
| 161188 | | - 286, /* (259) trigger_event ::= UPDATE */ |
| 161189 | | - 286, /* (260) trigger_event ::= UPDATE OF idlist */ |
| 161190 | | - 288, /* (261) when_clause ::= */ |
| 161191 | | - 288, /* (262) when_clause ::= WHEN expr */ |
| 161192 | | - 284, /* (263) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ |
| 161193 | | - 284, /* (264) trigger_cmd_list ::= trigger_cmd SEMI */ |
| 161194 | | - 290, /* (265) trnm ::= nm DOT nm */ |
| 161195 | | - 291, /* (266) tridxby ::= INDEXED BY nm */ |
| 161196 | | - 291, /* (267) tridxby ::= NOT INDEXED */ |
| 161197 | | - 289, /* (268) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ |
| 161198 | | - 289, /* (269) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ |
| 161199 | | - 289, /* (270) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ |
| 161200 | | - 289, /* (271) trigger_cmd ::= scanpt select scanpt */ |
| 161201 | | - 215, /* (272) expr ::= RAISE LP IGNORE RP */ |
| 161202 | | - 215, /* (273) expr ::= RAISE LP raisetype COMMA nm RP */ |
| 161203 | | - 234, /* (274) raisetype ::= ROLLBACK */ |
| 161204 | | - 234, /* (275) raisetype ::= ABORT */ |
| 161205 | | - 234, /* (276) raisetype ::= FAIL */ |
| 161206 | | - 189, /* (277) cmd ::= DROP TRIGGER ifexists fullname */ |
| 161207 | | - 189, /* (278) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ |
| 161208 | | - 189, /* (279) cmd ::= DETACH database_kw_opt expr */ |
| 161209 | | - 293, /* (280) key_opt ::= */ |
| 161210 | | - 293, /* (281) key_opt ::= KEY expr */ |
| 161211 | | - 189, /* (282) cmd ::= REINDEX */ |
| 161212 | | - 189, /* (283) cmd ::= REINDEX nm dbnm */ |
| 161213 | | - 189, /* (284) cmd ::= ANALYZE */ |
| 161214 | | - 189, /* (285) cmd ::= ANALYZE nm dbnm */ |
| 161215 | | - 189, /* (286) cmd ::= ALTER TABLE fullname RENAME TO nm */ |
| 161216 | | - 189, /* (287) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ |
| 161217 | | - 189, /* (288) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ |
| 161218 | | - 294, /* (289) add_column_fullname ::= fullname */ |
| 161219 | | - 189, /* (290) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ |
| 161220 | | - 189, /* (291) cmd ::= create_vtab */ |
| 161221 | | - 189, /* (292) cmd ::= create_vtab LP vtabarglist RP */ |
| 161222 | | - 296, /* (293) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ |
| 161223 | | - 298, /* (294) vtabarg ::= */ |
| 161224 | | - 299, /* (295) vtabargtoken ::= ANY */ |
| 161225 | | - 299, /* (296) vtabargtoken ::= lp anylist RP */ |
| 161226 | | - 300, /* (297) lp ::= LP */ |
| 161227 | | - 264, /* (298) with ::= WITH wqlist */ |
| 161228 | | - 264, /* (299) with ::= WITH RECURSIVE wqlist */ |
| 161229 | | - 303, /* (300) wqas ::= AS */ |
| 161230 | | - 303, /* (301) wqas ::= AS MATERIALIZED */ |
| 161231 | | - 303, /* (302) wqas ::= AS NOT MATERIALIZED */ |
| 161232 | | - 302, /* (303) wqitem ::= nm eidlist_opt wqas LP select RP */ |
| 161233 | | - 239, /* (304) wqlist ::= wqitem */ |
| 161234 | | - 239, /* (305) wqlist ::= wqlist COMMA wqitem */ |
| 161235 | | - 304, /* (306) windowdefn_list ::= windowdefn */ |
| 161236 | | - 304, /* (307) windowdefn_list ::= windowdefn_list COMMA windowdefn */ |
| 161237 | | - 305, /* (308) windowdefn ::= nm AS LP window RP */ |
| 161238 | | - 306, /* (309) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ |
| 161239 | | - 306, /* (310) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ |
| 161240 | | - 306, /* (311) window ::= ORDER BY sortlist frame_opt */ |
| 161241 | | - 306, /* (312) window ::= nm ORDER BY sortlist frame_opt */ |
| 161242 | | - 306, /* (313) window ::= frame_opt */ |
| 161243 | | - 306, /* (314) window ::= nm frame_opt */ |
| 161244 | | - 307, /* (315) frame_opt ::= */ |
| 161245 | | - 307, /* (316) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ |
| 161246 | | - 307, /* (317) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ |
| 161247 | | - 311, /* (318) range_or_rows ::= RANGE|ROWS|GROUPS */ |
| 161248 | | - 313, /* (319) frame_bound_s ::= frame_bound */ |
| 161249 | | - 313, /* (320) frame_bound_s ::= UNBOUNDED PRECEDING */ |
| 161250 | | - 314, /* (321) frame_bound_e ::= frame_bound */ |
| 161251 | | - 314, /* (322) frame_bound_e ::= UNBOUNDED FOLLOWING */ |
| 161252 | | - 312, /* (323) frame_bound ::= expr PRECEDING|FOLLOWING */ |
| 161253 | | - 312, /* (324) frame_bound ::= CURRENT ROW */ |
| 161254 | | - 315, /* (325) frame_exclude_opt ::= */ |
| 161255 | | - 315, /* (326) frame_exclude_opt ::= EXCLUDE frame_exclude */ |
| 161256 | | - 316, /* (327) frame_exclude ::= NO OTHERS */ |
| 161257 | | - 316, /* (328) frame_exclude ::= CURRENT ROW */ |
| 161258 | | - 316, /* (329) frame_exclude ::= GROUP|TIES */ |
| 161259 | | - 249, /* (330) window_clause ::= WINDOW windowdefn_list */ |
| 161260 | | - 271, /* (331) filter_over ::= filter_clause over_clause */ |
| 161261 | | - 271, /* (332) filter_over ::= over_clause */ |
| 161262 | | - 271, /* (333) filter_over ::= filter_clause */ |
| 161263 | | - 310, /* (334) over_clause ::= OVER LP window RP */ |
| 161264 | | - 310, /* (335) over_clause ::= OVER nm */ |
| 161265 | | - 309, /* (336) filter_clause ::= FILTER LP WHERE expr RP */ |
| 161266 | | - 184, /* (337) input ::= cmdlist */ |
| 161267 | | - 185, /* (338) cmdlist ::= cmdlist ecmd */ |
| 161268 | | - 185, /* (339) cmdlist ::= ecmd */ |
| 161269 | | - 186, /* (340) ecmd ::= SEMI */ |
| 161270 | | - 186, /* (341) ecmd ::= cmdx SEMI */ |
| 161271 | | - 186, /* (342) ecmd ::= explain cmdx SEMI */ |
| 161272 | | - 191, /* (343) trans_opt ::= */ |
| 161273 | | - 191, /* (344) trans_opt ::= TRANSACTION */ |
| 161274 | | - 191, /* (345) trans_opt ::= TRANSACTION nm */ |
| 161275 | | - 193, /* (346) savepoint_opt ::= SAVEPOINT */ |
| 161276 | | - 193, /* (347) savepoint_opt ::= */ |
| 161277 | | - 189, /* (348) cmd ::= create_table create_table_args */ |
| 161278 | | - 200, /* (349) columnlist ::= columnlist COMMA columnname carglist */ |
| 161279 | | - 200, /* (350) columnlist ::= columnname carglist */ |
| 161280 | | - 192, /* (351) nm ::= ID|INDEXED */ |
| 161281 | | - 192, /* (352) nm ::= STRING */ |
| 161282 | | - 192, /* (353) nm ::= JOIN_KW */ |
| 161283 | | - 206, /* (354) typetoken ::= typename */ |
| 161284 | | - 207, /* (355) typename ::= ID|STRING */ |
| 161285 | | - 208, /* (356) signed ::= plus_num */ |
| 161286 | | - 208, /* (357) signed ::= minus_num */ |
| 161287 | | - 205, /* (358) carglist ::= carglist ccons */ |
| 161288 | | - 205, /* (359) carglist ::= */ |
| 161289 | | - 213, /* (360) ccons ::= NULL onconf */ |
| 161290 | | - 213, /* (361) ccons ::= GENERATED ALWAYS AS generated */ |
| 161291 | | - 213, /* (362) ccons ::= AS generated */ |
| 161292 | | - 201, /* (363) conslist_opt ::= COMMA conslist */ |
| 161293 | | - 226, /* (364) conslist ::= conslist tconscomma tcons */ |
| 161294 | | - 226, /* (365) conslist ::= tcons */ |
| 161295 | | - 227, /* (366) tconscomma ::= */ |
| 161296 | | - 231, /* (367) defer_subclause_opt ::= defer_subclause */ |
| 161297 | | - 233, /* (368) resolvetype ::= raisetype */ |
| 161298 | | - 237, /* (369) selectnowith ::= oneselect */ |
| 161299 | | - 238, /* (370) oneselect ::= values */ |
| 161300 | | - 252, /* (371) sclp ::= selcollist COMMA */ |
| 161301 | | - 253, /* (372) as ::= ID|STRING */ |
| 161302 | | - 270, /* (373) returning ::= */ |
| 161303 | | - 215, /* (374) expr ::= term */ |
| 161304 | | - 272, /* (375) likeop ::= LIKE_KW|MATCH */ |
| 161305 | | - 260, /* (376) exprlist ::= nexprlist */ |
| 161306 | | - 282, /* (377) nmnum ::= plus_num */ |
| 161307 | | - 282, /* (378) nmnum ::= nm */ |
| 161308 | | - 282, /* (379) nmnum ::= ON */ |
| 161309 | | - 282, /* (380) nmnum ::= DELETE */ |
| 161310 | | - 282, /* (381) nmnum ::= DEFAULT */ |
| 161311 | | - 209, /* (382) plus_num ::= INTEGER|FLOAT */ |
| 161312 | | - 287, /* (383) foreach_clause ::= */ |
| 161313 | | - 287, /* (384) foreach_clause ::= FOR EACH ROW */ |
| 161314 | | - 290, /* (385) trnm ::= nm */ |
| 161315 | | - 291, /* (386) tridxby ::= */ |
| 161316 | | - 292, /* (387) database_kw_opt ::= DATABASE */ |
| 161317 | | - 292, /* (388) database_kw_opt ::= */ |
| 161318 | | - 295, /* (389) kwcolumn_opt ::= */ |
| 161319 | | - 295, /* (390) kwcolumn_opt ::= COLUMNKW */ |
| 161320 | | - 297, /* (391) vtabarglist ::= vtabarg */ |
| 161321 | | - 297, /* (392) vtabarglist ::= vtabarglist COMMA vtabarg */ |
| 161322 | | - 298, /* (393) vtabarg ::= vtabarg vtabargtoken */ |
| 161323 | | - 301, /* (394) anylist ::= */ |
| 161324 | | - 301, /* (395) anylist ::= anylist LP anylist RP */ |
| 161325 | | - 301, /* (396) anylist ::= anylist ANY */ |
| 161326 | | - 264, /* (397) with ::= */ |
| 161247 | + 202, /* (21) table_option_set ::= */ |
| 161248 | + 202, /* (22) table_option_set ::= table_option_set COMMA table_option */ |
| 161249 | + 204, /* (23) table_option ::= WITHOUT nm */ |
| 161250 | + 204, /* (24) table_option ::= nm */ |
| 161251 | + 205, /* (25) columnname ::= nm typetoken */ |
| 161252 | + 207, /* (26) typetoken ::= */ |
| 161253 | + 207, /* (27) typetoken ::= typename LP signed RP */ |
| 161254 | + 207, /* (28) typetoken ::= typename LP signed COMMA signed RP */ |
| 161255 | + 208, /* (29) typename ::= typename ID|STRING */ |
| 161256 | + 212, /* (30) scanpt ::= */ |
| 161257 | + 213, /* (31) scantok ::= */ |
| 161258 | + 214, /* (32) ccons ::= CONSTRAINT nm */ |
| 161259 | + 214, /* (33) ccons ::= DEFAULT scantok term */ |
| 161260 | + 214, /* (34) ccons ::= DEFAULT LP expr RP */ |
| 161261 | + 214, /* (35) ccons ::= DEFAULT PLUS scantok term */ |
| 161262 | + 214, /* (36) ccons ::= DEFAULT MINUS scantok term */ |
| 161263 | + 214, /* (37) ccons ::= DEFAULT scantok ID|INDEXED */ |
| 161264 | + 214, /* (38) ccons ::= NOT NULL onconf */ |
| 161265 | + 214, /* (39) ccons ::= PRIMARY KEY sortorder onconf autoinc */ |
| 161266 | + 214, /* (40) ccons ::= UNIQUE onconf */ |
| 161267 | + 214, /* (41) ccons ::= CHECK LP expr RP */ |
| 161268 | + 214, /* (42) ccons ::= REFERENCES nm eidlist_opt refargs */ |
| 161269 | + 214, /* (43) ccons ::= defer_subclause */ |
| 161270 | + 214, /* (44) ccons ::= COLLATE ID|STRING */ |
| 161271 | + 223, /* (45) generated ::= LP expr RP */ |
| 161272 | + 223, /* (46) generated ::= LP expr RP ID */ |
| 161273 | + 219, /* (47) autoinc ::= */ |
| 161274 | + 219, /* (48) autoinc ::= AUTOINCR */ |
| 161275 | + 221, /* (49) refargs ::= */ |
| 161276 | + 221, /* (50) refargs ::= refargs refarg */ |
| 161277 | + 224, /* (51) refarg ::= MATCH nm */ |
| 161278 | + 224, /* (52) refarg ::= ON INSERT refact */ |
| 161279 | + 224, /* (53) refarg ::= ON DELETE refact */ |
| 161280 | + 224, /* (54) refarg ::= ON UPDATE refact */ |
| 161281 | + 225, /* (55) refact ::= SET NULL */ |
| 161282 | + 225, /* (56) refact ::= SET DEFAULT */ |
| 161283 | + 225, /* (57) refact ::= CASCADE */ |
| 161284 | + 225, /* (58) refact ::= RESTRICT */ |
| 161285 | + 225, /* (59) refact ::= NO ACTION */ |
| 161286 | + 222, /* (60) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ |
| 161287 | + 222, /* (61) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ |
| 161288 | + 226, /* (62) init_deferred_pred_opt ::= */ |
| 161289 | + 226, /* (63) init_deferred_pred_opt ::= INITIALLY DEFERRED */ |
| 161290 | + 226, /* (64) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ |
| 161291 | + 201, /* (65) conslist_opt ::= */ |
| 161292 | + 228, /* (66) tconscomma ::= COMMA */ |
| 161293 | + 229, /* (67) tcons ::= CONSTRAINT nm */ |
| 161294 | + 229, /* (68) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ |
| 161295 | + 229, /* (69) tcons ::= UNIQUE LP sortlist RP onconf */ |
| 161296 | + 229, /* (70) tcons ::= CHECK LP expr RP onconf */ |
| 161297 | + 229, /* (71) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ |
| 161298 | + 232, /* (72) defer_subclause_opt ::= */ |
| 161299 | + 217, /* (73) onconf ::= */ |
| 161300 | + 217, /* (74) onconf ::= ON CONFLICT resolvetype */ |
| 161301 | + 233, /* (75) orconf ::= */ |
| 161302 | + 233, /* (76) orconf ::= OR resolvetype */ |
| 161303 | + 234, /* (77) resolvetype ::= IGNORE */ |
| 161304 | + 234, /* (78) resolvetype ::= REPLACE */ |
| 161305 | + 189, /* (79) cmd ::= DROP TABLE ifexists fullname */ |
| 161306 | + 236, /* (80) ifexists ::= IF EXISTS */ |
| 161307 | + 236, /* (81) ifexists ::= */ |
| 161308 | + 189, /* (82) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ |
| 161309 | + 189, /* (83) cmd ::= DROP VIEW ifexists fullname */ |
| 161310 | + 189, /* (84) cmd ::= select */ |
| 161311 | + 203, /* (85) select ::= WITH wqlist selectnowith */ |
| 161312 | + 203, /* (86) select ::= WITH RECURSIVE wqlist selectnowith */ |
| 161313 | + 203, /* (87) select ::= selectnowith */ |
| 161314 | + 238, /* (88) selectnowith ::= selectnowith multiselect_op oneselect */ |
| 161315 | + 241, /* (89) multiselect_op ::= UNION */ |
| 161316 | + 241, /* (90) multiselect_op ::= UNION ALL */ |
| 161317 | + 241, /* (91) multiselect_op ::= EXCEPT|INTERSECT */ |
| 161318 | + 239, /* (92) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ |
| 161319 | + 239, /* (93) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ |
| 161320 | + 251, /* (94) values ::= VALUES LP nexprlist RP */ |
| 161321 | + 251, /* (95) values ::= values COMMA LP nexprlist RP */ |
| 161322 | + 242, /* (96) distinct ::= DISTINCT */ |
| 161323 | + 242, /* (97) distinct ::= ALL */ |
| 161324 | + 242, /* (98) distinct ::= */ |
| 161325 | + 253, /* (99) sclp ::= */ |
| 161326 | + 243, /* (100) selcollist ::= sclp scanpt expr scanpt as */ |
| 161327 | + 243, /* (101) selcollist ::= sclp scanpt STAR */ |
| 161328 | + 243, /* (102) selcollist ::= sclp scanpt nm DOT STAR */ |
| 161329 | + 254, /* (103) as ::= AS nm */ |
| 161330 | + 254, /* (104) as ::= */ |
| 161331 | + 244, /* (105) from ::= */ |
| 161332 | + 244, /* (106) from ::= FROM seltablist */ |
| 161333 | + 256, /* (107) stl_prefix ::= seltablist joinop */ |
| 161334 | + 256, /* (108) stl_prefix ::= */ |
| 161335 | + 255, /* (109) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ |
| 161336 | + 255, /* (110) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */ |
| 161337 | + 255, /* (111) seltablist ::= stl_prefix LP select RP as on_opt using_opt */ |
| 161338 | + 255, /* (112) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ |
| 161339 | + 199, /* (113) dbnm ::= */ |
| 161340 | + 199, /* (114) dbnm ::= DOT nm */ |
| 161341 | + 237, /* (115) fullname ::= nm */ |
| 161342 | + 237, /* (116) fullname ::= nm DOT nm */ |
| 161343 | + 262, /* (117) xfullname ::= nm */ |
| 161344 | + 262, /* (118) xfullname ::= nm DOT nm */ |
| 161345 | + 262, /* (119) xfullname ::= nm DOT nm AS nm */ |
| 161346 | + 262, /* (120) xfullname ::= nm AS nm */ |
| 161347 | + 257, /* (121) joinop ::= COMMA|JOIN */ |
| 161348 | + 257, /* (122) joinop ::= JOIN_KW JOIN */ |
| 161349 | + 257, /* (123) joinop ::= JOIN_KW nm JOIN */ |
| 161350 | + 257, /* (124) joinop ::= JOIN_KW nm nm JOIN */ |
| 161351 | + 259, /* (125) on_opt ::= ON expr */ |
| 161352 | + 259, /* (126) on_opt ::= */ |
| 161353 | + 258, /* (127) indexed_opt ::= */ |
| 161354 | + 258, /* (128) indexed_opt ::= INDEXED BY nm */ |
| 161355 | + 258, /* (129) indexed_opt ::= NOT INDEXED */ |
| 161356 | + 260, /* (130) using_opt ::= USING LP idlist RP */ |
| 161357 | + 260, /* (131) using_opt ::= */ |
| 161358 | + 248, /* (132) orderby_opt ::= */ |
| 161359 | + 248, /* (133) orderby_opt ::= ORDER BY sortlist */ |
| 161360 | + 230, /* (134) sortlist ::= sortlist COMMA expr sortorder nulls */ |
| 161361 | + 230, /* (135) sortlist ::= expr sortorder nulls */ |
| 161362 | + 218, /* (136) sortorder ::= ASC */ |
| 161363 | + 218, /* (137) sortorder ::= DESC */ |
| 161364 | + 218, /* (138) sortorder ::= */ |
| 161365 | + 264, /* (139) nulls ::= NULLS FIRST */ |
| 161366 | + 264, /* (140) nulls ::= NULLS LAST */ |
| 161367 | + 264, /* (141) nulls ::= */ |
| 161368 | + 246, /* (142) groupby_opt ::= */ |
| 161369 | + 246, /* (143) groupby_opt ::= GROUP BY nexprlist */ |
| 161370 | + 247, /* (144) having_opt ::= */ |
| 161371 | + 247, /* (145) having_opt ::= HAVING expr */ |
| 161372 | + 249, /* (146) limit_opt ::= */ |
| 161373 | + 249, /* (147) limit_opt ::= LIMIT expr */ |
| 161374 | + 249, /* (148) limit_opt ::= LIMIT expr OFFSET expr */ |
| 161375 | + 249, /* (149) limit_opt ::= LIMIT expr COMMA expr */ |
| 161376 | + 189, /* (150) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ |
| 161377 | + 245, /* (151) where_opt ::= */ |
| 161378 | + 245, /* (152) where_opt ::= WHERE expr */ |
| 161379 | + 266, /* (153) where_opt_ret ::= */ |
| 161380 | + 266, /* (154) where_opt_ret ::= WHERE expr */ |
| 161381 | + 266, /* (155) where_opt_ret ::= RETURNING selcollist */ |
| 161382 | + 266, /* (156) where_opt_ret ::= WHERE expr RETURNING selcollist */ |
| 161383 | + 189, /* (157) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ |
| 161384 | + 267, /* (158) setlist ::= setlist COMMA nm EQ expr */ |
| 161385 | + 267, /* (159) setlist ::= setlist COMMA LP idlist RP EQ expr */ |
| 161386 | + 267, /* (160) setlist ::= nm EQ expr */ |
| 161387 | + 267, /* (161) setlist ::= LP idlist RP EQ expr */ |
| 161388 | + 189, /* (162) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ |
| 161389 | + 189, /* (163) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ |
| 161390 | + 270, /* (164) upsert ::= */ |
| 161391 | + 270, /* (165) upsert ::= RETURNING selcollist */ |
| 161392 | + 270, /* (166) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ |
| 161393 | + 270, /* (167) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ |
| 161394 | + 270, /* (168) upsert ::= ON CONFLICT DO NOTHING returning */ |
| 161395 | + 270, /* (169) upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ |
| 161396 | + 271, /* (170) returning ::= RETURNING selcollist */ |
| 161397 | + 268, /* (171) insert_cmd ::= INSERT orconf */ |
| 161398 | + 268, /* (172) insert_cmd ::= REPLACE */ |
| 161399 | + 269, /* (173) idlist_opt ::= */ |
| 161400 | + 269, /* (174) idlist_opt ::= LP idlist RP */ |
| 161401 | + 263, /* (175) idlist ::= idlist COMMA nm */ |
| 161402 | + 263, /* (176) idlist ::= nm */ |
| 161403 | + 216, /* (177) expr ::= LP expr RP */ |
| 161404 | + 216, /* (178) expr ::= ID|INDEXED */ |
| 161405 | + 216, /* (179) expr ::= JOIN_KW */ |
| 161406 | + 216, /* (180) expr ::= nm DOT nm */ |
| 161407 | + 216, /* (181) expr ::= nm DOT nm DOT nm */ |
| 161408 | + 215, /* (182) term ::= NULL|FLOAT|BLOB */ |
| 161409 | + 215, /* (183) term ::= STRING */ |
| 161410 | + 215, /* (184) term ::= INTEGER */ |
| 161411 | + 216, /* (185) expr ::= VARIABLE */ |
| 161412 | + 216, /* (186) expr ::= expr COLLATE ID|STRING */ |
| 161413 | + 216, /* (187) expr ::= CAST LP expr AS typetoken RP */ |
| 161414 | + 216, /* (188) expr ::= ID|INDEXED LP distinct exprlist RP */ |
| 161415 | + 216, /* (189) expr ::= ID|INDEXED LP STAR RP */ |
| 161416 | + 216, /* (190) expr ::= ID|INDEXED LP distinct exprlist RP filter_over */ |
| 161417 | + 216, /* (191) expr ::= ID|INDEXED LP STAR RP filter_over */ |
| 161418 | + 215, /* (192) term ::= CTIME_KW */ |
| 161419 | + 216, /* (193) expr ::= LP nexprlist COMMA expr RP */ |
| 161420 | + 216, /* (194) expr ::= expr AND expr */ |
| 161421 | + 216, /* (195) expr ::= expr OR expr */ |
| 161422 | + 216, /* (196) expr ::= expr LT|GT|GE|LE expr */ |
| 161423 | + 216, /* (197) expr ::= expr EQ|NE expr */ |
| 161424 | + 216, /* (198) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ |
| 161425 | + 216, /* (199) expr ::= expr PLUS|MINUS expr */ |
| 161426 | + 216, /* (200) expr ::= expr STAR|SLASH|REM expr */ |
| 161427 | + 216, /* (201) expr ::= expr CONCAT expr */ |
| 161428 | + 273, /* (202) likeop ::= NOT LIKE_KW|MATCH */ |
| 161429 | + 216, /* (203) expr ::= expr likeop expr */ |
| 161430 | + 216, /* (204) expr ::= expr likeop expr ESCAPE expr */ |
| 161431 | + 216, /* (205) expr ::= expr ISNULL|NOTNULL */ |
| 161432 | + 216, /* (206) expr ::= expr NOT NULL */ |
| 161433 | + 216, /* (207) expr ::= expr IS expr */ |
| 161434 | + 216, /* (208) expr ::= expr IS NOT expr */ |
| 161435 | + 216, /* (209) expr ::= NOT expr */ |
| 161436 | + 216, /* (210) expr ::= BITNOT expr */ |
| 161437 | + 216, /* (211) expr ::= PLUS|MINUS expr */ |
| 161438 | + 274, /* (212) between_op ::= BETWEEN */ |
| 161439 | + 274, /* (213) between_op ::= NOT BETWEEN */ |
| 161440 | + 216, /* (214) expr ::= expr between_op expr AND expr */ |
| 161441 | + 275, /* (215) in_op ::= IN */ |
| 161442 | + 275, /* (216) in_op ::= NOT IN */ |
| 161443 | + 216, /* (217) expr ::= expr in_op LP exprlist RP */ |
| 161444 | + 216, /* (218) expr ::= LP select RP */ |
| 161445 | + 216, /* (219) expr ::= expr in_op LP select RP */ |
| 161446 | + 216, /* (220) expr ::= expr in_op nm dbnm paren_exprlist */ |
| 161447 | + 216, /* (221) expr ::= EXISTS LP select RP */ |
| 161448 | + 216, /* (222) expr ::= CASE case_operand case_exprlist case_else END */ |
| 161449 | + 278, /* (223) case_exprlist ::= case_exprlist WHEN expr THEN expr */ |
| 161450 | + 278, /* (224) case_exprlist ::= WHEN expr THEN expr */ |
| 161451 | + 279, /* (225) case_else ::= ELSE expr */ |
| 161452 | + 279, /* (226) case_else ::= */ |
| 161453 | + 277, /* (227) case_operand ::= expr */ |
| 161454 | + 277, /* (228) case_operand ::= */ |
| 161455 | + 261, /* (229) exprlist ::= */ |
| 161456 | + 252, /* (230) nexprlist ::= nexprlist COMMA expr */ |
| 161457 | + 252, /* (231) nexprlist ::= expr */ |
| 161458 | + 276, /* (232) paren_exprlist ::= */ |
| 161459 | + 276, /* (233) paren_exprlist ::= LP exprlist RP */ |
| 161460 | + 189, /* (234) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ |
| 161461 | + 280, /* (235) uniqueflag ::= UNIQUE */ |
| 161462 | + 280, /* (236) uniqueflag ::= */ |
| 161463 | + 220, /* (237) eidlist_opt ::= */ |
| 161464 | + 220, /* (238) eidlist_opt ::= LP eidlist RP */ |
| 161465 | + 231, /* (239) eidlist ::= eidlist COMMA nm collate sortorder */ |
| 161466 | + 231, /* (240) eidlist ::= nm collate sortorder */ |
| 161467 | + 281, /* (241) collate ::= */ |
| 161468 | + 281, /* (242) collate ::= COLLATE ID|STRING */ |
| 161469 | + 189, /* (243) cmd ::= DROP INDEX ifexists fullname */ |
| 161470 | + 189, /* (244) cmd ::= VACUUM vinto */ |
| 161471 | + 189, /* (245) cmd ::= VACUUM nm vinto */ |
| 161472 | + 282, /* (246) vinto ::= INTO expr */ |
| 161473 | + 282, /* (247) vinto ::= */ |
| 161474 | + 189, /* (248) cmd ::= PRAGMA nm dbnm */ |
| 161475 | + 189, /* (249) cmd ::= PRAGMA nm dbnm EQ nmnum */ |
| 161476 | + 189, /* (250) cmd ::= PRAGMA nm dbnm LP nmnum RP */ |
| 161477 | + 189, /* (251) cmd ::= PRAGMA nm dbnm EQ minus_num */ |
| 161478 | + 189, /* (252) cmd ::= PRAGMA nm dbnm LP minus_num RP */ |
| 161479 | + 210, /* (253) plus_num ::= PLUS INTEGER|FLOAT */ |
| 161480 | + 211, /* (254) minus_num ::= MINUS INTEGER|FLOAT */ |
| 161481 | + 189, /* (255) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ |
| 161482 | + 284, /* (256) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ |
| 161483 | + 286, /* (257) trigger_time ::= BEFORE|AFTER */ |
| 161484 | + 286, /* (258) trigger_time ::= INSTEAD OF */ |
| 161485 | + 286, /* (259) trigger_time ::= */ |
| 161486 | + 287, /* (260) trigger_event ::= DELETE|INSERT */ |
| 161487 | + 287, /* (261) trigger_event ::= UPDATE */ |
| 161488 | + 287, /* (262) trigger_event ::= UPDATE OF idlist */ |
| 161489 | + 289, /* (263) when_clause ::= */ |
| 161490 | + 289, /* (264) when_clause ::= WHEN expr */ |
| 161491 | + 285, /* (265) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ |
| 161492 | + 285, /* (266) trigger_cmd_list ::= trigger_cmd SEMI */ |
| 161493 | + 291, /* (267) trnm ::= nm DOT nm */ |
| 161494 | + 292, /* (268) tridxby ::= INDEXED BY nm */ |
| 161495 | + 292, /* (269) tridxby ::= NOT INDEXED */ |
| 161496 | + 290, /* (270) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ |
| 161497 | + 290, /* (271) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ |
| 161498 | + 290, /* (272) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ |
| 161499 | + 290, /* (273) trigger_cmd ::= scanpt select scanpt */ |
| 161500 | + 216, /* (274) expr ::= RAISE LP IGNORE RP */ |
| 161501 | + 216, /* (275) expr ::= RAISE LP raisetype COMMA nm RP */ |
| 161502 | + 235, /* (276) raisetype ::= ROLLBACK */ |
| 161503 | + 235, /* (277) raisetype ::= ABORT */ |
| 161504 | + 235, /* (278) raisetype ::= FAIL */ |
| 161505 | + 189, /* (279) cmd ::= DROP TRIGGER ifexists fullname */ |
| 161506 | + 189, /* (280) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ |
| 161507 | + 189, /* (281) cmd ::= DETACH database_kw_opt expr */ |
| 161508 | + 294, /* (282) key_opt ::= */ |
| 161509 | + 294, /* (283) key_opt ::= KEY expr */ |
| 161510 | + 189, /* (284) cmd ::= REINDEX */ |
| 161511 | + 189, /* (285) cmd ::= REINDEX nm dbnm */ |
| 161512 | + 189, /* (286) cmd ::= ANALYZE */ |
| 161513 | + 189, /* (287) cmd ::= ANALYZE nm dbnm */ |
| 161514 | + 189, /* (288) cmd ::= ALTER TABLE fullname RENAME TO nm */ |
| 161515 | + 189, /* (289) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ |
| 161516 | + 189, /* (290) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ |
| 161517 | + 295, /* (291) add_column_fullname ::= fullname */ |
| 161518 | + 189, /* (292) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ |
| 161519 | + 189, /* (293) cmd ::= create_vtab */ |
| 161520 | + 189, /* (294) cmd ::= create_vtab LP vtabarglist RP */ |
| 161521 | + 297, /* (295) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ |
| 161522 | + 299, /* (296) vtabarg ::= */ |
| 161523 | + 300, /* (297) vtabargtoken ::= ANY */ |
| 161524 | + 300, /* (298) vtabargtoken ::= lp anylist RP */ |
| 161525 | + 301, /* (299) lp ::= LP */ |
| 161526 | + 265, /* (300) with ::= WITH wqlist */ |
| 161527 | + 265, /* (301) with ::= WITH RECURSIVE wqlist */ |
| 161528 | + 304, /* (302) wqas ::= AS */ |
| 161529 | + 304, /* (303) wqas ::= AS MATERIALIZED */ |
| 161530 | + 304, /* (304) wqas ::= AS NOT MATERIALIZED */ |
| 161531 | + 303, /* (305) wqitem ::= nm eidlist_opt wqas LP select RP */ |
| 161532 | + 240, /* (306) wqlist ::= wqitem */ |
| 161533 | + 240, /* (307) wqlist ::= wqlist COMMA wqitem */ |
| 161534 | + 305, /* (308) windowdefn_list ::= windowdefn */ |
| 161535 | + 305, /* (309) windowdefn_list ::= windowdefn_list COMMA windowdefn */ |
| 161536 | + 306, /* (310) windowdefn ::= nm AS LP window RP */ |
| 161537 | + 307, /* (311) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ |
| 161538 | + 307, /* (312) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ |
| 161539 | + 307, /* (313) window ::= ORDER BY sortlist frame_opt */ |
| 161540 | + 307, /* (314) window ::= nm ORDER BY sortlist frame_opt */ |
| 161541 | + 307, /* (315) window ::= frame_opt */ |
| 161542 | + 307, /* (316) window ::= nm frame_opt */ |
| 161543 | + 308, /* (317) frame_opt ::= */ |
| 161544 | + 308, /* (318) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ |
| 161545 | + 308, /* (319) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ |
| 161546 | + 312, /* (320) range_or_rows ::= RANGE|ROWS|GROUPS */ |
| 161547 | + 314, /* (321) frame_bound_s ::= frame_bound */ |
| 161548 | + 314, /* (322) frame_bound_s ::= UNBOUNDED PRECEDING */ |
| 161549 | + 315, /* (323) frame_bound_e ::= frame_bound */ |
| 161550 | + 315, /* (324) frame_bound_e ::= UNBOUNDED FOLLOWING */ |
| 161551 | + 313, /* (325) frame_bound ::= expr PRECEDING|FOLLOWING */ |
| 161552 | + 313, /* (326) frame_bound ::= CURRENT ROW */ |
| 161553 | + 316, /* (327) frame_exclude_opt ::= */ |
| 161554 | + 316, /* (328) frame_exclude_opt ::= EXCLUDE frame_exclude */ |
| 161555 | + 317, /* (329) frame_exclude ::= NO OTHERS */ |
| 161556 | + 317, /* (330) frame_exclude ::= CURRENT ROW */ |
| 161557 | + 317, /* (331) frame_exclude ::= GROUP|TIES */ |
| 161558 | + 250, /* (332) window_clause ::= WINDOW windowdefn_list */ |
| 161559 | + 272, /* (333) filter_over ::= filter_clause over_clause */ |
| 161560 | + 272, /* (334) filter_over ::= over_clause */ |
| 161561 | + 272, /* (335) filter_over ::= filter_clause */ |
| 161562 | + 311, /* (336) over_clause ::= OVER LP window RP */ |
| 161563 | + 311, /* (337) over_clause ::= OVER nm */ |
| 161564 | + 310, /* (338) filter_clause ::= FILTER LP WHERE expr RP */ |
| 161565 | + 184, /* (339) input ::= cmdlist */ |
| 161566 | + 185, /* (340) cmdlist ::= cmdlist ecmd */ |
| 161567 | + 185, /* (341) cmdlist ::= ecmd */ |
| 161568 | + 186, /* (342) ecmd ::= SEMI */ |
| 161569 | + 186, /* (343) ecmd ::= cmdx SEMI */ |
| 161570 | + 186, /* (344) ecmd ::= explain cmdx SEMI */ |
| 161571 | + 191, /* (345) trans_opt ::= */ |
| 161572 | + 191, /* (346) trans_opt ::= TRANSACTION */ |
| 161573 | + 191, /* (347) trans_opt ::= TRANSACTION nm */ |
| 161574 | + 193, /* (348) savepoint_opt ::= SAVEPOINT */ |
| 161575 | + 193, /* (349) savepoint_opt ::= */ |
| 161576 | + 189, /* (350) cmd ::= create_table create_table_args */ |
| 161577 | + 202, /* (351) table_option_set ::= table_option */ |
| 161578 | + 200, /* (352) columnlist ::= columnlist COMMA columnname carglist */ |
| 161579 | + 200, /* (353) columnlist ::= columnname carglist */ |
| 161580 | + 192, /* (354) nm ::= ID|INDEXED */ |
| 161581 | + 192, /* (355) nm ::= STRING */ |
| 161582 | + 192, /* (356) nm ::= JOIN_KW */ |
| 161583 | + 207, /* (357) typetoken ::= typename */ |
| 161584 | + 208, /* (358) typename ::= ID|STRING */ |
| 161585 | + 209, /* (359) signed ::= plus_num */ |
| 161586 | + 209, /* (360) signed ::= minus_num */ |
| 161587 | + 206, /* (361) carglist ::= carglist ccons */ |
| 161588 | + 206, /* (362) carglist ::= */ |
| 161589 | + 214, /* (363) ccons ::= NULL onconf */ |
| 161590 | + 214, /* (364) ccons ::= GENERATED ALWAYS AS generated */ |
| 161591 | + 214, /* (365) ccons ::= AS generated */ |
| 161592 | + 201, /* (366) conslist_opt ::= COMMA conslist */ |
| 161593 | + 227, /* (367) conslist ::= conslist tconscomma tcons */ |
| 161594 | + 227, /* (368) conslist ::= tcons */ |
| 161595 | + 228, /* (369) tconscomma ::= */ |
| 161596 | + 232, /* (370) defer_subclause_opt ::= defer_subclause */ |
| 161597 | + 234, /* (371) resolvetype ::= raisetype */ |
| 161598 | + 238, /* (372) selectnowith ::= oneselect */ |
| 161599 | + 239, /* (373) oneselect ::= values */ |
| 161600 | + 253, /* (374) sclp ::= selcollist COMMA */ |
| 161601 | + 254, /* (375) as ::= ID|STRING */ |
| 161602 | + 271, /* (376) returning ::= */ |
| 161603 | + 216, /* (377) expr ::= term */ |
| 161604 | + 273, /* (378) likeop ::= LIKE_KW|MATCH */ |
| 161605 | + 261, /* (379) exprlist ::= nexprlist */ |
| 161606 | + 283, /* (380) nmnum ::= plus_num */ |
| 161607 | + 283, /* (381) nmnum ::= nm */ |
| 161608 | + 283, /* (382) nmnum ::= ON */ |
| 161609 | + 283, /* (383) nmnum ::= DELETE */ |
| 161610 | + 283, /* (384) nmnum ::= DEFAULT */ |
| 161611 | + 210, /* (385) plus_num ::= INTEGER|FLOAT */ |
| 161612 | + 288, /* (386) foreach_clause ::= */ |
| 161613 | + 288, /* (387) foreach_clause ::= FOR EACH ROW */ |
| 161614 | + 291, /* (388) trnm ::= nm */ |
| 161615 | + 292, /* (389) tridxby ::= */ |
| 161616 | + 293, /* (390) database_kw_opt ::= DATABASE */ |
| 161617 | + 293, /* (391) database_kw_opt ::= */ |
| 161618 | + 296, /* (392) kwcolumn_opt ::= */ |
| 161619 | + 296, /* (393) kwcolumn_opt ::= COLUMNKW */ |
| 161620 | + 298, /* (394) vtabarglist ::= vtabarg */ |
| 161621 | + 298, /* (395) vtabarglist ::= vtabarglist COMMA vtabarg */ |
| 161622 | + 299, /* (396) vtabarg ::= vtabarg vtabargtoken */ |
| 161623 | + 302, /* (397) anylist ::= */ |
| 161624 | + 302, /* (398) anylist ::= anylist LP anylist RP */ |
| 161625 | + 302, /* (399) anylist ::= anylist ANY */ |
| 161626 | + 265, /* (400) with ::= */ |
| 161327 | 161627 | }; |
| 161328 | 161628 | |
| 161329 | 161629 | /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number |
| 161330 | 161630 | ** of symbols on the right-hand side of that rule. */ |
| 161331 | 161631 | static const signed char yyRuleInfoNRhs[] = { |
| | @@ -161346,389 +161646,392 @@ |
| 161346 | 161646 | -1, /* (14) createkw ::= CREATE */ |
| 161347 | 161647 | 0, /* (15) ifnotexists ::= */ |
| 161348 | 161648 | -3, /* (16) ifnotexists ::= IF NOT EXISTS */ |
| 161349 | 161649 | -1, /* (17) temp ::= TEMP */ |
| 161350 | 161650 | 0, /* (18) temp ::= */ |
| 161351 | | - -5, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_options */ |
| 161651 | + -5, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_option_set */ |
| 161352 | 161652 | -2, /* (20) create_table_args ::= AS select */ |
| 161353 | | - 0, /* (21) table_options ::= */ |
| 161354 | | - -2, /* (22) table_options ::= WITHOUT nm */ |
| 161355 | | - -2, /* (23) columnname ::= nm typetoken */ |
| 161356 | | - 0, /* (24) typetoken ::= */ |
| 161357 | | - -4, /* (25) typetoken ::= typename LP signed RP */ |
| 161358 | | - -6, /* (26) typetoken ::= typename LP signed COMMA signed RP */ |
| 161359 | | - -2, /* (27) typename ::= typename ID|STRING */ |
| 161360 | | - 0, /* (28) scanpt ::= */ |
| 161361 | | - 0, /* (29) scantok ::= */ |
| 161362 | | - -2, /* (30) ccons ::= CONSTRAINT nm */ |
| 161363 | | - -3, /* (31) ccons ::= DEFAULT scantok term */ |
| 161364 | | - -4, /* (32) ccons ::= DEFAULT LP expr RP */ |
| 161365 | | - -4, /* (33) ccons ::= DEFAULT PLUS scantok term */ |
| 161366 | | - -4, /* (34) ccons ::= DEFAULT MINUS scantok term */ |
| 161367 | | - -3, /* (35) ccons ::= DEFAULT scantok ID|INDEXED */ |
| 161368 | | - -3, /* (36) ccons ::= NOT NULL onconf */ |
| 161369 | | - -5, /* (37) ccons ::= PRIMARY KEY sortorder onconf autoinc */ |
| 161370 | | - -2, /* (38) ccons ::= UNIQUE onconf */ |
| 161371 | | - -4, /* (39) ccons ::= CHECK LP expr RP */ |
| 161372 | | - -4, /* (40) ccons ::= REFERENCES nm eidlist_opt refargs */ |
| 161373 | | - -1, /* (41) ccons ::= defer_subclause */ |
| 161374 | | - -2, /* (42) ccons ::= COLLATE ID|STRING */ |
| 161375 | | - -3, /* (43) generated ::= LP expr RP */ |
| 161376 | | - -4, /* (44) generated ::= LP expr RP ID */ |
| 161377 | | - 0, /* (45) autoinc ::= */ |
| 161378 | | - -1, /* (46) autoinc ::= AUTOINCR */ |
| 161379 | | - 0, /* (47) refargs ::= */ |
| 161380 | | - -2, /* (48) refargs ::= refargs refarg */ |
| 161381 | | - -2, /* (49) refarg ::= MATCH nm */ |
| 161382 | | - -3, /* (50) refarg ::= ON INSERT refact */ |
| 161383 | | - -3, /* (51) refarg ::= ON DELETE refact */ |
| 161384 | | - -3, /* (52) refarg ::= ON UPDATE refact */ |
| 161385 | | - -2, /* (53) refact ::= SET NULL */ |
| 161386 | | - -2, /* (54) refact ::= SET DEFAULT */ |
| 161387 | | - -1, /* (55) refact ::= CASCADE */ |
| 161388 | | - -1, /* (56) refact ::= RESTRICT */ |
| 161389 | | - -2, /* (57) refact ::= NO ACTION */ |
| 161390 | | - -3, /* (58) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ |
| 161391 | | - -2, /* (59) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ |
| 161392 | | - 0, /* (60) init_deferred_pred_opt ::= */ |
| 161393 | | - -2, /* (61) init_deferred_pred_opt ::= INITIALLY DEFERRED */ |
| 161394 | | - -2, /* (62) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ |
| 161395 | | - 0, /* (63) conslist_opt ::= */ |
| 161396 | | - -1, /* (64) tconscomma ::= COMMA */ |
| 161397 | | - -2, /* (65) tcons ::= CONSTRAINT nm */ |
| 161398 | | - -7, /* (66) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ |
| 161399 | | - -5, /* (67) tcons ::= UNIQUE LP sortlist RP onconf */ |
| 161400 | | - -5, /* (68) tcons ::= CHECK LP expr RP onconf */ |
| 161401 | | - -10, /* (69) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ |
| 161402 | | - 0, /* (70) defer_subclause_opt ::= */ |
| 161403 | | - 0, /* (71) onconf ::= */ |
| 161404 | | - -3, /* (72) onconf ::= ON CONFLICT resolvetype */ |
| 161405 | | - 0, /* (73) orconf ::= */ |
| 161406 | | - -2, /* (74) orconf ::= OR resolvetype */ |
| 161407 | | - -1, /* (75) resolvetype ::= IGNORE */ |
| 161408 | | - -1, /* (76) resolvetype ::= REPLACE */ |
| 161409 | | - -4, /* (77) cmd ::= DROP TABLE ifexists fullname */ |
| 161410 | | - -2, /* (78) ifexists ::= IF EXISTS */ |
| 161411 | | - 0, /* (79) ifexists ::= */ |
| 161412 | | - -9, /* (80) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ |
| 161413 | | - -4, /* (81) cmd ::= DROP VIEW ifexists fullname */ |
| 161414 | | - -1, /* (82) cmd ::= select */ |
| 161415 | | - -3, /* (83) select ::= WITH wqlist selectnowith */ |
| 161416 | | - -4, /* (84) select ::= WITH RECURSIVE wqlist selectnowith */ |
| 161417 | | - -1, /* (85) select ::= selectnowith */ |
| 161418 | | - -3, /* (86) selectnowith ::= selectnowith multiselect_op oneselect */ |
| 161419 | | - -1, /* (87) multiselect_op ::= UNION */ |
| 161420 | | - -2, /* (88) multiselect_op ::= UNION ALL */ |
| 161421 | | - -1, /* (89) multiselect_op ::= EXCEPT|INTERSECT */ |
| 161422 | | - -9, /* (90) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ |
| 161423 | | - -10, /* (91) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ |
| 161424 | | - -4, /* (92) values ::= VALUES LP nexprlist RP */ |
| 161425 | | - -5, /* (93) values ::= values COMMA LP nexprlist RP */ |
| 161426 | | - -1, /* (94) distinct ::= DISTINCT */ |
| 161427 | | - -1, /* (95) distinct ::= ALL */ |
| 161428 | | - 0, /* (96) distinct ::= */ |
| 161429 | | - 0, /* (97) sclp ::= */ |
| 161430 | | - -5, /* (98) selcollist ::= sclp scanpt expr scanpt as */ |
| 161431 | | - -3, /* (99) selcollist ::= sclp scanpt STAR */ |
| 161432 | | - -5, /* (100) selcollist ::= sclp scanpt nm DOT STAR */ |
| 161433 | | - -2, /* (101) as ::= AS nm */ |
| 161434 | | - 0, /* (102) as ::= */ |
| 161435 | | - 0, /* (103) from ::= */ |
| 161436 | | - -2, /* (104) from ::= FROM seltablist */ |
| 161437 | | - -2, /* (105) stl_prefix ::= seltablist joinop */ |
| 161438 | | - 0, /* (106) stl_prefix ::= */ |
| 161439 | | - -7, /* (107) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ |
| 161440 | | - -9, /* (108) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */ |
| 161441 | | - -7, /* (109) seltablist ::= stl_prefix LP select RP as on_opt using_opt */ |
| 161442 | | - -7, /* (110) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ |
| 161443 | | - 0, /* (111) dbnm ::= */ |
| 161444 | | - -2, /* (112) dbnm ::= DOT nm */ |
| 161445 | | - -1, /* (113) fullname ::= nm */ |
| 161446 | | - -3, /* (114) fullname ::= nm DOT nm */ |
| 161447 | | - -1, /* (115) xfullname ::= nm */ |
| 161448 | | - -3, /* (116) xfullname ::= nm DOT nm */ |
| 161449 | | - -5, /* (117) xfullname ::= nm DOT nm AS nm */ |
| 161450 | | - -3, /* (118) xfullname ::= nm AS nm */ |
| 161451 | | - -1, /* (119) joinop ::= COMMA|JOIN */ |
| 161452 | | - -2, /* (120) joinop ::= JOIN_KW JOIN */ |
| 161453 | | - -3, /* (121) joinop ::= JOIN_KW nm JOIN */ |
| 161454 | | - -4, /* (122) joinop ::= JOIN_KW nm nm JOIN */ |
| 161455 | | - -2, /* (123) on_opt ::= ON expr */ |
| 161456 | | - 0, /* (124) on_opt ::= */ |
| 161457 | | - 0, /* (125) indexed_opt ::= */ |
| 161458 | | - -3, /* (126) indexed_opt ::= INDEXED BY nm */ |
| 161459 | | - -2, /* (127) indexed_opt ::= NOT INDEXED */ |
| 161460 | | - -4, /* (128) using_opt ::= USING LP idlist RP */ |
| 161461 | | - 0, /* (129) using_opt ::= */ |
| 161462 | | - 0, /* (130) orderby_opt ::= */ |
| 161463 | | - -3, /* (131) orderby_opt ::= ORDER BY sortlist */ |
| 161464 | | - -5, /* (132) sortlist ::= sortlist COMMA expr sortorder nulls */ |
| 161465 | | - -3, /* (133) sortlist ::= expr sortorder nulls */ |
| 161466 | | - -1, /* (134) sortorder ::= ASC */ |
| 161467 | | - -1, /* (135) sortorder ::= DESC */ |
| 161468 | | - 0, /* (136) sortorder ::= */ |
| 161469 | | - -2, /* (137) nulls ::= NULLS FIRST */ |
| 161470 | | - -2, /* (138) nulls ::= NULLS LAST */ |
| 161471 | | - 0, /* (139) nulls ::= */ |
| 161472 | | - 0, /* (140) groupby_opt ::= */ |
| 161473 | | - -3, /* (141) groupby_opt ::= GROUP BY nexprlist */ |
| 161474 | | - 0, /* (142) having_opt ::= */ |
| 161475 | | - -2, /* (143) having_opt ::= HAVING expr */ |
| 161476 | | - 0, /* (144) limit_opt ::= */ |
| 161477 | | - -2, /* (145) limit_opt ::= LIMIT expr */ |
| 161478 | | - -4, /* (146) limit_opt ::= LIMIT expr OFFSET expr */ |
| 161479 | | - -4, /* (147) limit_opt ::= LIMIT expr COMMA expr */ |
| 161480 | | - -6, /* (148) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ |
| 161481 | | - 0, /* (149) where_opt ::= */ |
| 161482 | | - -2, /* (150) where_opt ::= WHERE expr */ |
| 161483 | | - 0, /* (151) where_opt_ret ::= */ |
| 161484 | | - -2, /* (152) where_opt_ret ::= WHERE expr */ |
| 161485 | | - -2, /* (153) where_opt_ret ::= RETURNING selcollist */ |
| 161486 | | - -4, /* (154) where_opt_ret ::= WHERE expr RETURNING selcollist */ |
| 161487 | | - -9, /* (155) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ |
| 161488 | | - -5, /* (156) setlist ::= setlist COMMA nm EQ expr */ |
| 161489 | | - -7, /* (157) setlist ::= setlist COMMA LP idlist RP EQ expr */ |
| 161490 | | - -3, /* (158) setlist ::= nm EQ expr */ |
| 161491 | | - -5, /* (159) setlist ::= LP idlist RP EQ expr */ |
| 161492 | | - -7, /* (160) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ |
| 161493 | | - -8, /* (161) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ |
| 161494 | | - 0, /* (162) upsert ::= */ |
| 161495 | | - -2, /* (163) upsert ::= RETURNING selcollist */ |
| 161496 | | - -12, /* (164) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ |
| 161497 | | - -9, /* (165) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ |
| 161498 | | - -5, /* (166) upsert ::= ON CONFLICT DO NOTHING returning */ |
| 161499 | | - -8, /* (167) upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ |
| 161500 | | - -2, /* (168) returning ::= RETURNING selcollist */ |
| 161501 | | - -2, /* (169) insert_cmd ::= INSERT orconf */ |
| 161502 | | - -1, /* (170) insert_cmd ::= REPLACE */ |
| 161503 | | - 0, /* (171) idlist_opt ::= */ |
| 161504 | | - -3, /* (172) idlist_opt ::= LP idlist RP */ |
| 161505 | | - -3, /* (173) idlist ::= idlist COMMA nm */ |
| 161506 | | - -1, /* (174) idlist ::= nm */ |
| 161507 | | - -3, /* (175) expr ::= LP expr RP */ |
| 161508 | | - -1, /* (176) expr ::= ID|INDEXED */ |
| 161509 | | - -1, /* (177) expr ::= JOIN_KW */ |
| 161510 | | - -3, /* (178) expr ::= nm DOT nm */ |
| 161511 | | - -5, /* (179) expr ::= nm DOT nm DOT nm */ |
| 161512 | | - -1, /* (180) term ::= NULL|FLOAT|BLOB */ |
| 161513 | | - -1, /* (181) term ::= STRING */ |
| 161514 | | - -1, /* (182) term ::= INTEGER */ |
| 161515 | | - -1, /* (183) expr ::= VARIABLE */ |
| 161516 | | - -3, /* (184) expr ::= expr COLLATE ID|STRING */ |
| 161517 | | - -6, /* (185) expr ::= CAST LP expr AS typetoken RP */ |
| 161518 | | - -5, /* (186) expr ::= ID|INDEXED LP distinct exprlist RP */ |
| 161519 | | - -4, /* (187) expr ::= ID|INDEXED LP STAR RP */ |
| 161520 | | - -6, /* (188) expr ::= ID|INDEXED LP distinct exprlist RP filter_over */ |
| 161521 | | - -5, /* (189) expr ::= ID|INDEXED LP STAR RP filter_over */ |
| 161522 | | - -1, /* (190) term ::= CTIME_KW */ |
| 161523 | | - -5, /* (191) expr ::= LP nexprlist COMMA expr RP */ |
| 161524 | | - -3, /* (192) expr ::= expr AND expr */ |
| 161525 | | - -3, /* (193) expr ::= expr OR expr */ |
| 161526 | | - -3, /* (194) expr ::= expr LT|GT|GE|LE expr */ |
| 161527 | | - -3, /* (195) expr ::= expr EQ|NE expr */ |
| 161528 | | - -3, /* (196) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ |
| 161529 | | - -3, /* (197) expr ::= expr PLUS|MINUS expr */ |
| 161530 | | - -3, /* (198) expr ::= expr STAR|SLASH|REM expr */ |
| 161531 | | - -3, /* (199) expr ::= expr CONCAT expr */ |
| 161532 | | - -2, /* (200) likeop ::= NOT LIKE_KW|MATCH */ |
| 161533 | | - -3, /* (201) expr ::= expr likeop expr */ |
| 161534 | | - -5, /* (202) expr ::= expr likeop expr ESCAPE expr */ |
| 161535 | | - -2, /* (203) expr ::= expr ISNULL|NOTNULL */ |
| 161536 | | - -3, /* (204) expr ::= expr NOT NULL */ |
| 161537 | | - -3, /* (205) expr ::= expr IS expr */ |
| 161538 | | - -4, /* (206) expr ::= expr IS NOT expr */ |
| 161539 | | - -2, /* (207) expr ::= NOT expr */ |
| 161540 | | - -2, /* (208) expr ::= BITNOT expr */ |
| 161541 | | - -2, /* (209) expr ::= PLUS|MINUS expr */ |
| 161542 | | - -1, /* (210) between_op ::= BETWEEN */ |
| 161543 | | - -2, /* (211) between_op ::= NOT BETWEEN */ |
| 161544 | | - -5, /* (212) expr ::= expr between_op expr AND expr */ |
| 161545 | | - -1, /* (213) in_op ::= IN */ |
| 161546 | | - -2, /* (214) in_op ::= NOT IN */ |
| 161547 | | - -5, /* (215) expr ::= expr in_op LP exprlist RP */ |
| 161548 | | - -3, /* (216) expr ::= LP select RP */ |
| 161549 | | - -5, /* (217) expr ::= expr in_op LP select RP */ |
| 161550 | | - -5, /* (218) expr ::= expr in_op nm dbnm paren_exprlist */ |
| 161551 | | - -4, /* (219) expr ::= EXISTS LP select RP */ |
| 161552 | | - -5, /* (220) expr ::= CASE case_operand case_exprlist case_else END */ |
| 161553 | | - -5, /* (221) case_exprlist ::= case_exprlist WHEN expr THEN expr */ |
| 161554 | | - -4, /* (222) case_exprlist ::= WHEN expr THEN expr */ |
| 161555 | | - -2, /* (223) case_else ::= ELSE expr */ |
| 161556 | | - 0, /* (224) case_else ::= */ |
| 161557 | | - -1, /* (225) case_operand ::= expr */ |
| 161558 | | - 0, /* (226) case_operand ::= */ |
| 161559 | | - 0, /* (227) exprlist ::= */ |
| 161560 | | - -3, /* (228) nexprlist ::= nexprlist COMMA expr */ |
| 161561 | | - -1, /* (229) nexprlist ::= expr */ |
| 161562 | | - 0, /* (230) paren_exprlist ::= */ |
| 161563 | | - -3, /* (231) paren_exprlist ::= LP exprlist RP */ |
| 161564 | | - -12, /* (232) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ |
| 161565 | | - -1, /* (233) uniqueflag ::= UNIQUE */ |
| 161566 | | - 0, /* (234) uniqueflag ::= */ |
| 161567 | | - 0, /* (235) eidlist_opt ::= */ |
| 161568 | | - -3, /* (236) eidlist_opt ::= LP eidlist RP */ |
| 161569 | | - -5, /* (237) eidlist ::= eidlist COMMA nm collate sortorder */ |
| 161570 | | - -3, /* (238) eidlist ::= nm collate sortorder */ |
| 161571 | | - 0, /* (239) collate ::= */ |
| 161572 | | - -2, /* (240) collate ::= COLLATE ID|STRING */ |
| 161573 | | - -4, /* (241) cmd ::= DROP INDEX ifexists fullname */ |
| 161574 | | - -2, /* (242) cmd ::= VACUUM vinto */ |
| 161575 | | - -3, /* (243) cmd ::= VACUUM nm vinto */ |
| 161576 | | - -2, /* (244) vinto ::= INTO expr */ |
| 161577 | | - 0, /* (245) vinto ::= */ |
| 161578 | | - -3, /* (246) cmd ::= PRAGMA nm dbnm */ |
| 161579 | | - -5, /* (247) cmd ::= PRAGMA nm dbnm EQ nmnum */ |
| 161580 | | - -6, /* (248) cmd ::= PRAGMA nm dbnm LP nmnum RP */ |
| 161581 | | - -5, /* (249) cmd ::= PRAGMA nm dbnm EQ minus_num */ |
| 161582 | | - -6, /* (250) cmd ::= PRAGMA nm dbnm LP minus_num RP */ |
| 161583 | | - -2, /* (251) plus_num ::= PLUS INTEGER|FLOAT */ |
| 161584 | | - -2, /* (252) minus_num ::= MINUS INTEGER|FLOAT */ |
| 161585 | | - -5, /* (253) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ |
| 161586 | | - -11, /* (254) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ |
| 161587 | | - -1, /* (255) trigger_time ::= BEFORE|AFTER */ |
| 161588 | | - -2, /* (256) trigger_time ::= INSTEAD OF */ |
| 161589 | | - 0, /* (257) trigger_time ::= */ |
| 161590 | | - -1, /* (258) trigger_event ::= DELETE|INSERT */ |
| 161591 | | - -1, /* (259) trigger_event ::= UPDATE */ |
| 161592 | | - -3, /* (260) trigger_event ::= UPDATE OF idlist */ |
| 161593 | | - 0, /* (261) when_clause ::= */ |
| 161594 | | - -2, /* (262) when_clause ::= WHEN expr */ |
| 161595 | | - -3, /* (263) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ |
| 161596 | | - -2, /* (264) trigger_cmd_list ::= trigger_cmd SEMI */ |
| 161597 | | - -3, /* (265) trnm ::= nm DOT nm */ |
| 161598 | | - -3, /* (266) tridxby ::= INDEXED BY nm */ |
| 161599 | | - -2, /* (267) tridxby ::= NOT INDEXED */ |
| 161600 | | - -9, /* (268) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ |
| 161601 | | - -8, /* (269) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ |
| 161602 | | - -6, /* (270) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ |
| 161603 | | - -3, /* (271) trigger_cmd ::= scanpt select scanpt */ |
| 161604 | | - -4, /* (272) expr ::= RAISE LP IGNORE RP */ |
| 161605 | | - -6, /* (273) expr ::= RAISE LP raisetype COMMA nm RP */ |
| 161606 | | - -1, /* (274) raisetype ::= ROLLBACK */ |
| 161607 | | - -1, /* (275) raisetype ::= ABORT */ |
| 161608 | | - -1, /* (276) raisetype ::= FAIL */ |
| 161609 | | - -4, /* (277) cmd ::= DROP TRIGGER ifexists fullname */ |
| 161610 | | - -6, /* (278) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ |
| 161611 | | - -3, /* (279) cmd ::= DETACH database_kw_opt expr */ |
| 161612 | | - 0, /* (280) key_opt ::= */ |
| 161613 | | - -2, /* (281) key_opt ::= KEY expr */ |
| 161614 | | - -1, /* (282) cmd ::= REINDEX */ |
| 161615 | | - -3, /* (283) cmd ::= REINDEX nm dbnm */ |
| 161616 | | - -1, /* (284) cmd ::= ANALYZE */ |
| 161617 | | - -3, /* (285) cmd ::= ANALYZE nm dbnm */ |
| 161618 | | - -6, /* (286) cmd ::= ALTER TABLE fullname RENAME TO nm */ |
| 161619 | | - -7, /* (287) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ |
| 161620 | | - -6, /* (288) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ |
| 161621 | | - -1, /* (289) add_column_fullname ::= fullname */ |
| 161622 | | - -8, /* (290) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ |
| 161623 | | - -1, /* (291) cmd ::= create_vtab */ |
| 161624 | | - -4, /* (292) cmd ::= create_vtab LP vtabarglist RP */ |
| 161625 | | - -8, /* (293) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ |
| 161626 | | - 0, /* (294) vtabarg ::= */ |
| 161627 | | - -1, /* (295) vtabargtoken ::= ANY */ |
| 161628 | | - -3, /* (296) vtabargtoken ::= lp anylist RP */ |
| 161629 | | - -1, /* (297) lp ::= LP */ |
| 161630 | | - -2, /* (298) with ::= WITH wqlist */ |
| 161631 | | - -3, /* (299) with ::= WITH RECURSIVE wqlist */ |
| 161632 | | - -1, /* (300) wqas ::= AS */ |
| 161633 | | - -2, /* (301) wqas ::= AS MATERIALIZED */ |
| 161634 | | - -3, /* (302) wqas ::= AS NOT MATERIALIZED */ |
| 161635 | | - -6, /* (303) wqitem ::= nm eidlist_opt wqas LP select RP */ |
| 161636 | | - -1, /* (304) wqlist ::= wqitem */ |
| 161637 | | - -3, /* (305) wqlist ::= wqlist COMMA wqitem */ |
| 161638 | | - -1, /* (306) windowdefn_list ::= windowdefn */ |
| 161639 | | - -3, /* (307) windowdefn_list ::= windowdefn_list COMMA windowdefn */ |
| 161640 | | - -5, /* (308) windowdefn ::= nm AS LP window RP */ |
| 161641 | | - -5, /* (309) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ |
| 161642 | | - -6, /* (310) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ |
| 161643 | | - -4, /* (311) window ::= ORDER BY sortlist frame_opt */ |
| 161644 | | - -5, /* (312) window ::= nm ORDER BY sortlist frame_opt */ |
| 161645 | | - -1, /* (313) window ::= frame_opt */ |
| 161646 | | - -2, /* (314) window ::= nm frame_opt */ |
| 161647 | | - 0, /* (315) frame_opt ::= */ |
| 161648 | | - -3, /* (316) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ |
| 161649 | | - -6, /* (317) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ |
| 161650 | | - -1, /* (318) range_or_rows ::= RANGE|ROWS|GROUPS */ |
| 161651 | | - -1, /* (319) frame_bound_s ::= frame_bound */ |
| 161652 | | - -2, /* (320) frame_bound_s ::= UNBOUNDED PRECEDING */ |
| 161653 | | - -1, /* (321) frame_bound_e ::= frame_bound */ |
| 161654 | | - -2, /* (322) frame_bound_e ::= UNBOUNDED FOLLOWING */ |
| 161655 | | - -2, /* (323) frame_bound ::= expr PRECEDING|FOLLOWING */ |
| 161656 | | - -2, /* (324) frame_bound ::= CURRENT ROW */ |
| 161657 | | - 0, /* (325) frame_exclude_opt ::= */ |
| 161658 | | - -2, /* (326) frame_exclude_opt ::= EXCLUDE frame_exclude */ |
| 161659 | | - -2, /* (327) frame_exclude ::= NO OTHERS */ |
| 161660 | | - -2, /* (328) frame_exclude ::= CURRENT ROW */ |
| 161661 | | - -1, /* (329) frame_exclude ::= GROUP|TIES */ |
| 161662 | | - -2, /* (330) window_clause ::= WINDOW windowdefn_list */ |
| 161663 | | - -2, /* (331) filter_over ::= filter_clause over_clause */ |
| 161664 | | - -1, /* (332) filter_over ::= over_clause */ |
| 161665 | | - -1, /* (333) filter_over ::= filter_clause */ |
| 161666 | | - -4, /* (334) over_clause ::= OVER LP window RP */ |
| 161667 | | - -2, /* (335) over_clause ::= OVER nm */ |
| 161668 | | - -5, /* (336) filter_clause ::= FILTER LP WHERE expr RP */ |
| 161669 | | - -1, /* (337) input ::= cmdlist */ |
| 161670 | | - -2, /* (338) cmdlist ::= cmdlist ecmd */ |
| 161671 | | - -1, /* (339) cmdlist ::= ecmd */ |
| 161672 | | - -1, /* (340) ecmd ::= SEMI */ |
| 161673 | | - -2, /* (341) ecmd ::= cmdx SEMI */ |
| 161674 | | - -3, /* (342) ecmd ::= explain cmdx SEMI */ |
| 161675 | | - 0, /* (343) trans_opt ::= */ |
| 161676 | | - -1, /* (344) trans_opt ::= TRANSACTION */ |
| 161677 | | - -2, /* (345) trans_opt ::= TRANSACTION nm */ |
| 161678 | | - -1, /* (346) savepoint_opt ::= SAVEPOINT */ |
| 161679 | | - 0, /* (347) savepoint_opt ::= */ |
| 161680 | | - -2, /* (348) cmd ::= create_table create_table_args */ |
| 161681 | | - -4, /* (349) columnlist ::= columnlist COMMA columnname carglist */ |
| 161682 | | - -2, /* (350) columnlist ::= columnname carglist */ |
| 161683 | | - -1, /* (351) nm ::= ID|INDEXED */ |
| 161684 | | - -1, /* (352) nm ::= STRING */ |
| 161685 | | - -1, /* (353) nm ::= JOIN_KW */ |
| 161686 | | - -1, /* (354) typetoken ::= typename */ |
| 161687 | | - -1, /* (355) typename ::= ID|STRING */ |
| 161688 | | - -1, /* (356) signed ::= plus_num */ |
| 161689 | | - -1, /* (357) signed ::= minus_num */ |
| 161690 | | - -2, /* (358) carglist ::= carglist ccons */ |
| 161691 | | - 0, /* (359) carglist ::= */ |
| 161692 | | - -2, /* (360) ccons ::= NULL onconf */ |
| 161693 | | - -4, /* (361) ccons ::= GENERATED ALWAYS AS generated */ |
| 161694 | | - -2, /* (362) ccons ::= AS generated */ |
| 161695 | | - -2, /* (363) conslist_opt ::= COMMA conslist */ |
| 161696 | | - -3, /* (364) conslist ::= conslist tconscomma tcons */ |
| 161697 | | - -1, /* (365) conslist ::= tcons */ |
| 161698 | | - 0, /* (366) tconscomma ::= */ |
| 161699 | | - -1, /* (367) defer_subclause_opt ::= defer_subclause */ |
| 161700 | | - -1, /* (368) resolvetype ::= raisetype */ |
| 161701 | | - -1, /* (369) selectnowith ::= oneselect */ |
| 161702 | | - -1, /* (370) oneselect ::= values */ |
| 161703 | | - -2, /* (371) sclp ::= selcollist COMMA */ |
| 161704 | | - -1, /* (372) as ::= ID|STRING */ |
| 161705 | | - 0, /* (373) returning ::= */ |
| 161706 | | - -1, /* (374) expr ::= term */ |
| 161707 | | - -1, /* (375) likeop ::= LIKE_KW|MATCH */ |
| 161708 | | - -1, /* (376) exprlist ::= nexprlist */ |
| 161709 | | - -1, /* (377) nmnum ::= plus_num */ |
| 161710 | | - -1, /* (378) nmnum ::= nm */ |
| 161711 | | - -1, /* (379) nmnum ::= ON */ |
| 161712 | | - -1, /* (380) nmnum ::= DELETE */ |
| 161713 | | - -1, /* (381) nmnum ::= DEFAULT */ |
| 161714 | | - -1, /* (382) plus_num ::= INTEGER|FLOAT */ |
| 161715 | | - 0, /* (383) foreach_clause ::= */ |
| 161716 | | - -3, /* (384) foreach_clause ::= FOR EACH ROW */ |
| 161717 | | - -1, /* (385) trnm ::= nm */ |
| 161718 | | - 0, /* (386) tridxby ::= */ |
| 161719 | | - -1, /* (387) database_kw_opt ::= DATABASE */ |
| 161720 | | - 0, /* (388) database_kw_opt ::= */ |
| 161721 | | - 0, /* (389) kwcolumn_opt ::= */ |
| 161722 | | - -1, /* (390) kwcolumn_opt ::= COLUMNKW */ |
| 161723 | | - -1, /* (391) vtabarglist ::= vtabarg */ |
| 161724 | | - -3, /* (392) vtabarglist ::= vtabarglist COMMA vtabarg */ |
| 161725 | | - -2, /* (393) vtabarg ::= vtabarg vtabargtoken */ |
| 161726 | | - 0, /* (394) anylist ::= */ |
| 161727 | | - -4, /* (395) anylist ::= anylist LP anylist RP */ |
| 161728 | | - -2, /* (396) anylist ::= anylist ANY */ |
| 161729 | | - 0, /* (397) with ::= */ |
| 161653 | + 0, /* (21) table_option_set ::= */ |
| 161654 | + -3, /* (22) table_option_set ::= table_option_set COMMA table_option */ |
| 161655 | + -2, /* (23) table_option ::= WITHOUT nm */ |
| 161656 | + -1, /* (24) table_option ::= nm */ |
| 161657 | + -2, /* (25) columnname ::= nm typetoken */ |
| 161658 | + 0, /* (26) typetoken ::= */ |
| 161659 | + -4, /* (27) typetoken ::= typename LP signed RP */ |
| 161660 | + -6, /* (28) typetoken ::= typename LP signed COMMA signed RP */ |
| 161661 | + -2, /* (29) typename ::= typename ID|STRING */ |
| 161662 | + 0, /* (30) scanpt ::= */ |
| 161663 | + 0, /* (31) scantok ::= */ |
| 161664 | + -2, /* (32) ccons ::= CONSTRAINT nm */ |
| 161665 | + -3, /* (33) ccons ::= DEFAULT scantok term */ |
| 161666 | + -4, /* (34) ccons ::= DEFAULT LP expr RP */ |
| 161667 | + -4, /* (35) ccons ::= DEFAULT PLUS scantok term */ |
| 161668 | + -4, /* (36) ccons ::= DEFAULT MINUS scantok term */ |
| 161669 | + -3, /* (37) ccons ::= DEFAULT scantok ID|INDEXED */ |
| 161670 | + -3, /* (38) ccons ::= NOT NULL onconf */ |
| 161671 | + -5, /* (39) ccons ::= PRIMARY KEY sortorder onconf autoinc */ |
| 161672 | + -2, /* (40) ccons ::= UNIQUE onconf */ |
| 161673 | + -4, /* (41) ccons ::= CHECK LP expr RP */ |
| 161674 | + -4, /* (42) ccons ::= REFERENCES nm eidlist_opt refargs */ |
| 161675 | + -1, /* (43) ccons ::= defer_subclause */ |
| 161676 | + -2, /* (44) ccons ::= COLLATE ID|STRING */ |
| 161677 | + -3, /* (45) generated ::= LP expr RP */ |
| 161678 | + -4, /* (46) generated ::= LP expr RP ID */ |
| 161679 | + 0, /* (47) autoinc ::= */ |
| 161680 | + -1, /* (48) autoinc ::= AUTOINCR */ |
| 161681 | + 0, /* (49) refargs ::= */ |
| 161682 | + -2, /* (50) refargs ::= refargs refarg */ |
| 161683 | + -2, /* (51) refarg ::= MATCH nm */ |
| 161684 | + -3, /* (52) refarg ::= ON INSERT refact */ |
| 161685 | + -3, /* (53) refarg ::= ON DELETE refact */ |
| 161686 | + -3, /* (54) refarg ::= ON UPDATE refact */ |
| 161687 | + -2, /* (55) refact ::= SET NULL */ |
| 161688 | + -2, /* (56) refact ::= SET DEFAULT */ |
| 161689 | + -1, /* (57) refact ::= CASCADE */ |
| 161690 | + -1, /* (58) refact ::= RESTRICT */ |
| 161691 | + -2, /* (59) refact ::= NO ACTION */ |
| 161692 | + -3, /* (60) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ |
| 161693 | + -2, /* (61) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ |
| 161694 | + 0, /* (62) init_deferred_pred_opt ::= */ |
| 161695 | + -2, /* (63) init_deferred_pred_opt ::= INITIALLY DEFERRED */ |
| 161696 | + -2, /* (64) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ |
| 161697 | + 0, /* (65) conslist_opt ::= */ |
| 161698 | + -1, /* (66) tconscomma ::= COMMA */ |
| 161699 | + -2, /* (67) tcons ::= CONSTRAINT nm */ |
| 161700 | + -7, /* (68) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ |
| 161701 | + -5, /* (69) tcons ::= UNIQUE LP sortlist RP onconf */ |
| 161702 | + -5, /* (70) tcons ::= CHECK LP expr RP onconf */ |
| 161703 | + -10, /* (71) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ |
| 161704 | + 0, /* (72) defer_subclause_opt ::= */ |
| 161705 | + 0, /* (73) onconf ::= */ |
| 161706 | + -3, /* (74) onconf ::= ON CONFLICT resolvetype */ |
| 161707 | + 0, /* (75) orconf ::= */ |
| 161708 | + -2, /* (76) orconf ::= OR resolvetype */ |
| 161709 | + -1, /* (77) resolvetype ::= IGNORE */ |
| 161710 | + -1, /* (78) resolvetype ::= REPLACE */ |
| 161711 | + -4, /* (79) cmd ::= DROP TABLE ifexists fullname */ |
| 161712 | + -2, /* (80) ifexists ::= IF EXISTS */ |
| 161713 | + 0, /* (81) ifexists ::= */ |
| 161714 | + -9, /* (82) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ |
| 161715 | + -4, /* (83) cmd ::= DROP VIEW ifexists fullname */ |
| 161716 | + -1, /* (84) cmd ::= select */ |
| 161717 | + -3, /* (85) select ::= WITH wqlist selectnowith */ |
| 161718 | + -4, /* (86) select ::= WITH RECURSIVE wqlist selectnowith */ |
| 161719 | + -1, /* (87) select ::= selectnowith */ |
| 161720 | + -3, /* (88) selectnowith ::= selectnowith multiselect_op oneselect */ |
| 161721 | + -1, /* (89) multiselect_op ::= UNION */ |
| 161722 | + -2, /* (90) multiselect_op ::= UNION ALL */ |
| 161723 | + -1, /* (91) multiselect_op ::= EXCEPT|INTERSECT */ |
| 161724 | + -9, /* (92) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ |
| 161725 | + -10, /* (93) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ |
| 161726 | + -4, /* (94) values ::= VALUES LP nexprlist RP */ |
| 161727 | + -5, /* (95) values ::= values COMMA LP nexprlist RP */ |
| 161728 | + -1, /* (96) distinct ::= DISTINCT */ |
| 161729 | + -1, /* (97) distinct ::= ALL */ |
| 161730 | + 0, /* (98) distinct ::= */ |
| 161731 | + 0, /* (99) sclp ::= */ |
| 161732 | + -5, /* (100) selcollist ::= sclp scanpt expr scanpt as */ |
| 161733 | + -3, /* (101) selcollist ::= sclp scanpt STAR */ |
| 161734 | + -5, /* (102) selcollist ::= sclp scanpt nm DOT STAR */ |
| 161735 | + -2, /* (103) as ::= AS nm */ |
| 161736 | + 0, /* (104) as ::= */ |
| 161737 | + 0, /* (105) from ::= */ |
| 161738 | + -2, /* (106) from ::= FROM seltablist */ |
| 161739 | + -2, /* (107) stl_prefix ::= seltablist joinop */ |
| 161740 | + 0, /* (108) stl_prefix ::= */ |
| 161741 | + -7, /* (109) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ |
| 161742 | + -9, /* (110) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */ |
| 161743 | + -7, /* (111) seltablist ::= stl_prefix LP select RP as on_opt using_opt */ |
| 161744 | + -7, /* (112) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ |
| 161745 | + 0, /* (113) dbnm ::= */ |
| 161746 | + -2, /* (114) dbnm ::= DOT nm */ |
| 161747 | + -1, /* (115) fullname ::= nm */ |
| 161748 | + -3, /* (116) fullname ::= nm DOT nm */ |
| 161749 | + -1, /* (117) xfullname ::= nm */ |
| 161750 | + -3, /* (118) xfullname ::= nm DOT nm */ |
| 161751 | + -5, /* (119) xfullname ::= nm DOT nm AS nm */ |
| 161752 | + -3, /* (120) xfullname ::= nm AS nm */ |
| 161753 | + -1, /* (121) joinop ::= COMMA|JOIN */ |
| 161754 | + -2, /* (122) joinop ::= JOIN_KW JOIN */ |
| 161755 | + -3, /* (123) joinop ::= JOIN_KW nm JOIN */ |
| 161756 | + -4, /* (124) joinop ::= JOIN_KW nm nm JOIN */ |
| 161757 | + -2, /* (125) on_opt ::= ON expr */ |
| 161758 | + 0, /* (126) on_opt ::= */ |
| 161759 | + 0, /* (127) indexed_opt ::= */ |
| 161760 | + -3, /* (128) indexed_opt ::= INDEXED BY nm */ |
| 161761 | + -2, /* (129) indexed_opt ::= NOT INDEXED */ |
| 161762 | + -4, /* (130) using_opt ::= USING LP idlist RP */ |
| 161763 | + 0, /* (131) using_opt ::= */ |
| 161764 | + 0, /* (132) orderby_opt ::= */ |
| 161765 | + -3, /* (133) orderby_opt ::= ORDER BY sortlist */ |
| 161766 | + -5, /* (134) sortlist ::= sortlist COMMA expr sortorder nulls */ |
| 161767 | + -3, /* (135) sortlist ::= expr sortorder nulls */ |
| 161768 | + -1, /* (136) sortorder ::= ASC */ |
| 161769 | + -1, /* (137) sortorder ::= DESC */ |
| 161770 | + 0, /* (138) sortorder ::= */ |
| 161771 | + -2, /* (139) nulls ::= NULLS FIRST */ |
| 161772 | + -2, /* (140) nulls ::= NULLS LAST */ |
| 161773 | + 0, /* (141) nulls ::= */ |
| 161774 | + 0, /* (142) groupby_opt ::= */ |
| 161775 | + -3, /* (143) groupby_opt ::= GROUP BY nexprlist */ |
| 161776 | + 0, /* (144) having_opt ::= */ |
| 161777 | + -2, /* (145) having_opt ::= HAVING expr */ |
| 161778 | + 0, /* (146) limit_opt ::= */ |
| 161779 | + -2, /* (147) limit_opt ::= LIMIT expr */ |
| 161780 | + -4, /* (148) limit_opt ::= LIMIT expr OFFSET expr */ |
| 161781 | + -4, /* (149) limit_opt ::= LIMIT expr COMMA expr */ |
| 161782 | + -6, /* (150) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ |
| 161783 | + 0, /* (151) where_opt ::= */ |
| 161784 | + -2, /* (152) where_opt ::= WHERE expr */ |
| 161785 | + 0, /* (153) where_opt_ret ::= */ |
| 161786 | + -2, /* (154) where_opt_ret ::= WHERE expr */ |
| 161787 | + -2, /* (155) where_opt_ret ::= RETURNING selcollist */ |
| 161788 | + -4, /* (156) where_opt_ret ::= WHERE expr RETURNING selcollist */ |
| 161789 | + -9, /* (157) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ |
| 161790 | + -5, /* (158) setlist ::= setlist COMMA nm EQ expr */ |
| 161791 | + -7, /* (159) setlist ::= setlist COMMA LP idlist RP EQ expr */ |
| 161792 | + -3, /* (160) setlist ::= nm EQ expr */ |
| 161793 | + -5, /* (161) setlist ::= LP idlist RP EQ expr */ |
| 161794 | + -7, /* (162) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ |
| 161795 | + -8, /* (163) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ |
| 161796 | + 0, /* (164) upsert ::= */ |
| 161797 | + -2, /* (165) upsert ::= RETURNING selcollist */ |
| 161798 | + -12, /* (166) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ |
| 161799 | + -9, /* (167) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ |
| 161800 | + -5, /* (168) upsert ::= ON CONFLICT DO NOTHING returning */ |
| 161801 | + -8, /* (169) upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ |
| 161802 | + -2, /* (170) returning ::= RETURNING selcollist */ |
| 161803 | + -2, /* (171) insert_cmd ::= INSERT orconf */ |
| 161804 | + -1, /* (172) insert_cmd ::= REPLACE */ |
| 161805 | + 0, /* (173) idlist_opt ::= */ |
| 161806 | + -3, /* (174) idlist_opt ::= LP idlist RP */ |
| 161807 | + -3, /* (175) idlist ::= idlist COMMA nm */ |
| 161808 | + -1, /* (176) idlist ::= nm */ |
| 161809 | + -3, /* (177) expr ::= LP expr RP */ |
| 161810 | + -1, /* (178) expr ::= ID|INDEXED */ |
| 161811 | + -1, /* (179) expr ::= JOIN_KW */ |
| 161812 | + -3, /* (180) expr ::= nm DOT nm */ |
| 161813 | + -5, /* (181) expr ::= nm DOT nm DOT nm */ |
| 161814 | + -1, /* (182) term ::= NULL|FLOAT|BLOB */ |
| 161815 | + -1, /* (183) term ::= STRING */ |
| 161816 | + -1, /* (184) term ::= INTEGER */ |
| 161817 | + -1, /* (185) expr ::= VARIABLE */ |
| 161818 | + -3, /* (186) expr ::= expr COLLATE ID|STRING */ |
| 161819 | + -6, /* (187) expr ::= CAST LP expr AS typetoken RP */ |
| 161820 | + -5, /* (188) expr ::= ID|INDEXED LP distinct exprlist RP */ |
| 161821 | + -4, /* (189) expr ::= ID|INDEXED LP STAR RP */ |
| 161822 | + -6, /* (190) expr ::= ID|INDEXED LP distinct exprlist RP filter_over */ |
| 161823 | + -5, /* (191) expr ::= ID|INDEXED LP STAR RP filter_over */ |
| 161824 | + -1, /* (192) term ::= CTIME_KW */ |
| 161825 | + -5, /* (193) expr ::= LP nexprlist COMMA expr RP */ |
| 161826 | + -3, /* (194) expr ::= expr AND expr */ |
| 161827 | + -3, /* (195) expr ::= expr OR expr */ |
| 161828 | + -3, /* (196) expr ::= expr LT|GT|GE|LE expr */ |
| 161829 | + -3, /* (197) expr ::= expr EQ|NE expr */ |
| 161830 | + -3, /* (198) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ |
| 161831 | + -3, /* (199) expr ::= expr PLUS|MINUS expr */ |
| 161832 | + -3, /* (200) expr ::= expr STAR|SLASH|REM expr */ |
| 161833 | + -3, /* (201) expr ::= expr CONCAT expr */ |
| 161834 | + -2, /* (202) likeop ::= NOT LIKE_KW|MATCH */ |
| 161835 | + -3, /* (203) expr ::= expr likeop expr */ |
| 161836 | + -5, /* (204) expr ::= expr likeop expr ESCAPE expr */ |
| 161837 | + -2, /* (205) expr ::= expr ISNULL|NOTNULL */ |
| 161838 | + -3, /* (206) expr ::= expr NOT NULL */ |
| 161839 | + -3, /* (207) expr ::= expr IS expr */ |
| 161840 | + -4, /* (208) expr ::= expr IS NOT expr */ |
| 161841 | + -2, /* (209) expr ::= NOT expr */ |
| 161842 | + -2, /* (210) expr ::= BITNOT expr */ |
| 161843 | + -2, /* (211) expr ::= PLUS|MINUS expr */ |
| 161844 | + -1, /* (212) between_op ::= BETWEEN */ |
| 161845 | + -2, /* (213) between_op ::= NOT BETWEEN */ |
| 161846 | + -5, /* (214) expr ::= expr between_op expr AND expr */ |
| 161847 | + -1, /* (215) in_op ::= IN */ |
| 161848 | + -2, /* (216) in_op ::= NOT IN */ |
| 161849 | + -5, /* (217) expr ::= expr in_op LP exprlist RP */ |
| 161850 | + -3, /* (218) expr ::= LP select RP */ |
| 161851 | + -5, /* (219) expr ::= expr in_op LP select RP */ |
| 161852 | + -5, /* (220) expr ::= expr in_op nm dbnm paren_exprlist */ |
| 161853 | + -4, /* (221) expr ::= EXISTS LP select RP */ |
| 161854 | + -5, /* (222) expr ::= CASE case_operand case_exprlist case_else END */ |
| 161855 | + -5, /* (223) case_exprlist ::= case_exprlist WHEN expr THEN expr */ |
| 161856 | + -4, /* (224) case_exprlist ::= WHEN expr THEN expr */ |
| 161857 | + -2, /* (225) case_else ::= ELSE expr */ |
| 161858 | + 0, /* (226) case_else ::= */ |
| 161859 | + -1, /* (227) case_operand ::= expr */ |
| 161860 | + 0, /* (228) case_operand ::= */ |
| 161861 | + 0, /* (229) exprlist ::= */ |
| 161862 | + -3, /* (230) nexprlist ::= nexprlist COMMA expr */ |
| 161863 | + -1, /* (231) nexprlist ::= expr */ |
| 161864 | + 0, /* (232) paren_exprlist ::= */ |
| 161865 | + -3, /* (233) paren_exprlist ::= LP exprlist RP */ |
| 161866 | + -12, /* (234) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ |
| 161867 | + -1, /* (235) uniqueflag ::= UNIQUE */ |
| 161868 | + 0, /* (236) uniqueflag ::= */ |
| 161869 | + 0, /* (237) eidlist_opt ::= */ |
| 161870 | + -3, /* (238) eidlist_opt ::= LP eidlist RP */ |
| 161871 | + -5, /* (239) eidlist ::= eidlist COMMA nm collate sortorder */ |
| 161872 | + -3, /* (240) eidlist ::= nm collate sortorder */ |
| 161873 | + 0, /* (241) collate ::= */ |
| 161874 | + -2, /* (242) collate ::= COLLATE ID|STRING */ |
| 161875 | + -4, /* (243) cmd ::= DROP INDEX ifexists fullname */ |
| 161876 | + -2, /* (244) cmd ::= VACUUM vinto */ |
| 161877 | + -3, /* (245) cmd ::= VACUUM nm vinto */ |
| 161878 | + -2, /* (246) vinto ::= INTO expr */ |
| 161879 | + 0, /* (247) vinto ::= */ |
| 161880 | + -3, /* (248) cmd ::= PRAGMA nm dbnm */ |
| 161881 | + -5, /* (249) cmd ::= PRAGMA nm dbnm EQ nmnum */ |
| 161882 | + -6, /* (250) cmd ::= PRAGMA nm dbnm LP nmnum RP */ |
| 161883 | + -5, /* (251) cmd ::= PRAGMA nm dbnm EQ minus_num */ |
| 161884 | + -6, /* (252) cmd ::= PRAGMA nm dbnm LP minus_num RP */ |
| 161885 | + -2, /* (253) plus_num ::= PLUS INTEGER|FLOAT */ |
| 161886 | + -2, /* (254) minus_num ::= MINUS INTEGER|FLOAT */ |
| 161887 | + -5, /* (255) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ |
| 161888 | + -11, /* (256) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ |
| 161889 | + -1, /* (257) trigger_time ::= BEFORE|AFTER */ |
| 161890 | + -2, /* (258) trigger_time ::= INSTEAD OF */ |
| 161891 | + 0, /* (259) trigger_time ::= */ |
| 161892 | + -1, /* (260) trigger_event ::= DELETE|INSERT */ |
| 161893 | + -1, /* (261) trigger_event ::= UPDATE */ |
| 161894 | + -3, /* (262) trigger_event ::= UPDATE OF idlist */ |
| 161895 | + 0, /* (263) when_clause ::= */ |
| 161896 | + -2, /* (264) when_clause ::= WHEN expr */ |
| 161897 | + -3, /* (265) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ |
| 161898 | + -2, /* (266) trigger_cmd_list ::= trigger_cmd SEMI */ |
| 161899 | + -3, /* (267) trnm ::= nm DOT nm */ |
| 161900 | + -3, /* (268) tridxby ::= INDEXED BY nm */ |
| 161901 | + -2, /* (269) tridxby ::= NOT INDEXED */ |
| 161902 | + -9, /* (270) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ |
| 161903 | + -8, /* (271) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ |
| 161904 | + -6, /* (272) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ |
| 161905 | + -3, /* (273) trigger_cmd ::= scanpt select scanpt */ |
| 161906 | + -4, /* (274) expr ::= RAISE LP IGNORE RP */ |
| 161907 | + -6, /* (275) expr ::= RAISE LP raisetype COMMA nm RP */ |
| 161908 | + -1, /* (276) raisetype ::= ROLLBACK */ |
| 161909 | + -1, /* (277) raisetype ::= ABORT */ |
| 161910 | + -1, /* (278) raisetype ::= FAIL */ |
| 161911 | + -4, /* (279) cmd ::= DROP TRIGGER ifexists fullname */ |
| 161912 | + -6, /* (280) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ |
| 161913 | + -3, /* (281) cmd ::= DETACH database_kw_opt expr */ |
| 161914 | + 0, /* (282) key_opt ::= */ |
| 161915 | + -2, /* (283) key_opt ::= KEY expr */ |
| 161916 | + -1, /* (284) cmd ::= REINDEX */ |
| 161917 | + -3, /* (285) cmd ::= REINDEX nm dbnm */ |
| 161918 | + -1, /* (286) cmd ::= ANALYZE */ |
| 161919 | + -3, /* (287) cmd ::= ANALYZE nm dbnm */ |
| 161920 | + -6, /* (288) cmd ::= ALTER TABLE fullname RENAME TO nm */ |
| 161921 | + -7, /* (289) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ |
| 161922 | + -6, /* (290) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ |
| 161923 | + -1, /* (291) add_column_fullname ::= fullname */ |
| 161924 | + -8, /* (292) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ |
| 161925 | + -1, /* (293) cmd ::= create_vtab */ |
| 161926 | + -4, /* (294) cmd ::= create_vtab LP vtabarglist RP */ |
| 161927 | + -8, /* (295) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ |
| 161928 | + 0, /* (296) vtabarg ::= */ |
| 161929 | + -1, /* (297) vtabargtoken ::= ANY */ |
| 161930 | + -3, /* (298) vtabargtoken ::= lp anylist RP */ |
| 161931 | + -1, /* (299) lp ::= LP */ |
| 161932 | + -2, /* (300) with ::= WITH wqlist */ |
| 161933 | + -3, /* (301) with ::= WITH RECURSIVE wqlist */ |
| 161934 | + -1, /* (302) wqas ::= AS */ |
| 161935 | + -2, /* (303) wqas ::= AS MATERIALIZED */ |
| 161936 | + -3, /* (304) wqas ::= AS NOT MATERIALIZED */ |
| 161937 | + -6, /* (305) wqitem ::= nm eidlist_opt wqas LP select RP */ |
| 161938 | + -1, /* (306) wqlist ::= wqitem */ |
| 161939 | + -3, /* (307) wqlist ::= wqlist COMMA wqitem */ |
| 161940 | + -1, /* (308) windowdefn_list ::= windowdefn */ |
| 161941 | + -3, /* (309) windowdefn_list ::= windowdefn_list COMMA windowdefn */ |
| 161942 | + -5, /* (310) windowdefn ::= nm AS LP window RP */ |
| 161943 | + -5, /* (311) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ |
| 161944 | + -6, /* (312) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ |
| 161945 | + -4, /* (313) window ::= ORDER BY sortlist frame_opt */ |
| 161946 | + -5, /* (314) window ::= nm ORDER BY sortlist frame_opt */ |
| 161947 | + -1, /* (315) window ::= frame_opt */ |
| 161948 | + -2, /* (316) window ::= nm frame_opt */ |
| 161949 | + 0, /* (317) frame_opt ::= */ |
| 161950 | + -3, /* (318) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ |
| 161951 | + -6, /* (319) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ |
| 161952 | + -1, /* (320) range_or_rows ::= RANGE|ROWS|GROUPS */ |
| 161953 | + -1, /* (321) frame_bound_s ::= frame_bound */ |
| 161954 | + -2, /* (322) frame_bound_s ::= UNBOUNDED PRECEDING */ |
| 161955 | + -1, /* (323) frame_bound_e ::= frame_bound */ |
| 161956 | + -2, /* (324) frame_bound_e ::= UNBOUNDED FOLLOWING */ |
| 161957 | + -2, /* (325) frame_bound ::= expr PRECEDING|FOLLOWING */ |
| 161958 | + -2, /* (326) frame_bound ::= CURRENT ROW */ |
| 161959 | + 0, /* (327) frame_exclude_opt ::= */ |
| 161960 | + -2, /* (328) frame_exclude_opt ::= EXCLUDE frame_exclude */ |
| 161961 | + -2, /* (329) frame_exclude ::= NO OTHERS */ |
| 161962 | + -2, /* (330) frame_exclude ::= CURRENT ROW */ |
| 161963 | + -1, /* (331) frame_exclude ::= GROUP|TIES */ |
| 161964 | + -2, /* (332) window_clause ::= WINDOW windowdefn_list */ |
| 161965 | + -2, /* (333) filter_over ::= filter_clause over_clause */ |
| 161966 | + -1, /* (334) filter_over ::= over_clause */ |
| 161967 | + -1, /* (335) filter_over ::= filter_clause */ |
| 161968 | + -4, /* (336) over_clause ::= OVER LP window RP */ |
| 161969 | + -2, /* (337) over_clause ::= OVER nm */ |
| 161970 | + -5, /* (338) filter_clause ::= FILTER LP WHERE expr RP */ |
| 161971 | + -1, /* (339) input ::= cmdlist */ |
| 161972 | + -2, /* (340) cmdlist ::= cmdlist ecmd */ |
| 161973 | + -1, /* (341) cmdlist ::= ecmd */ |
| 161974 | + -1, /* (342) ecmd ::= SEMI */ |
| 161975 | + -2, /* (343) ecmd ::= cmdx SEMI */ |
| 161976 | + -3, /* (344) ecmd ::= explain cmdx SEMI */ |
| 161977 | + 0, /* (345) trans_opt ::= */ |
| 161978 | + -1, /* (346) trans_opt ::= TRANSACTION */ |
| 161979 | + -2, /* (347) trans_opt ::= TRANSACTION nm */ |
| 161980 | + -1, /* (348) savepoint_opt ::= SAVEPOINT */ |
| 161981 | + 0, /* (349) savepoint_opt ::= */ |
| 161982 | + -2, /* (350) cmd ::= create_table create_table_args */ |
| 161983 | + -1, /* (351) table_option_set ::= table_option */ |
| 161984 | + -4, /* (352) columnlist ::= columnlist COMMA columnname carglist */ |
| 161985 | + -2, /* (353) columnlist ::= columnname carglist */ |
| 161986 | + -1, /* (354) nm ::= ID|INDEXED */ |
| 161987 | + -1, /* (355) nm ::= STRING */ |
| 161988 | + -1, /* (356) nm ::= JOIN_KW */ |
| 161989 | + -1, /* (357) typetoken ::= typename */ |
| 161990 | + -1, /* (358) typename ::= ID|STRING */ |
| 161991 | + -1, /* (359) signed ::= plus_num */ |
| 161992 | + -1, /* (360) signed ::= minus_num */ |
| 161993 | + -2, /* (361) carglist ::= carglist ccons */ |
| 161994 | + 0, /* (362) carglist ::= */ |
| 161995 | + -2, /* (363) ccons ::= NULL onconf */ |
| 161996 | + -4, /* (364) ccons ::= GENERATED ALWAYS AS generated */ |
| 161997 | + -2, /* (365) ccons ::= AS generated */ |
| 161998 | + -2, /* (366) conslist_opt ::= COMMA conslist */ |
| 161999 | + -3, /* (367) conslist ::= conslist tconscomma tcons */ |
| 162000 | + -1, /* (368) conslist ::= tcons */ |
| 162001 | + 0, /* (369) tconscomma ::= */ |
| 162002 | + -1, /* (370) defer_subclause_opt ::= defer_subclause */ |
| 162003 | + -1, /* (371) resolvetype ::= raisetype */ |
| 162004 | + -1, /* (372) selectnowith ::= oneselect */ |
| 162005 | + -1, /* (373) oneselect ::= values */ |
| 162006 | + -2, /* (374) sclp ::= selcollist COMMA */ |
| 162007 | + -1, /* (375) as ::= ID|STRING */ |
| 162008 | + 0, /* (376) returning ::= */ |
| 162009 | + -1, /* (377) expr ::= term */ |
| 162010 | + -1, /* (378) likeop ::= LIKE_KW|MATCH */ |
| 162011 | + -1, /* (379) exprlist ::= nexprlist */ |
| 162012 | + -1, /* (380) nmnum ::= plus_num */ |
| 162013 | + -1, /* (381) nmnum ::= nm */ |
| 162014 | + -1, /* (382) nmnum ::= ON */ |
| 162015 | + -1, /* (383) nmnum ::= DELETE */ |
| 162016 | + -1, /* (384) nmnum ::= DEFAULT */ |
| 162017 | + -1, /* (385) plus_num ::= INTEGER|FLOAT */ |
| 162018 | + 0, /* (386) foreach_clause ::= */ |
| 162019 | + -3, /* (387) foreach_clause ::= FOR EACH ROW */ |
| 162020 | + -1, /* (388) trnm ::= nm */ |
| 162021 | + 0, /* (389) tridxby ::= */ |
| 162022 | + -1, /* (390) database_kw_opt ::= DATABASE */ |
| 162023 | + 0, /* (391) database_kw_opt ::= */ |
| 162024 | + 0, /* (392) kwcolumn_opt ::= */ |
| 162025 | + -1, /* (393) kwcolumn_opt ::= COLUMNKW */ |
| 162026 | + -1, /* (394) vtabarglist ::= vtabarg */ |
| 162027 | + -3, /* (395) vtabarglist ::= vtabarglist COMMA vtabarg */ |
| 162028 | + -2, /* (396) vtabarg ::= vtabarg vtabargtoken */ |
| 162029 | + 0, /* (397) anylist ::= */ |
| 162030 | + -4, /* (398) anylist ::= anylist LP anylist RP */ |
| 162031 | + -2, /* (399) anylist ::= anylist ANY */ |
| 162032 | + 0, /* (400) with ::= */ |
| 161730 | 162033 | }; |
| 161731 | 162034 | |
| 161732 | 162035 | static void yy_accept(yyParser*); /* Forward Declaration */ |
| 161733 | 162036 | |
| 161734 | 162037 | /* |
| | @@ -161776,20 +162079,20 @@ |
| 161776 | 162079 | break; |
| 161777 | 162080 | case 2: /* cmdx ::= cmd */ |
| 161778 | 162081 | { sqlite3FinishCoding(pParse); } |
| 161779 | 162082 | break; |
| 161780 | 162083 | case 3: /* cmd ::= BEGIN transtype trans_opt */ |
| 161781 | | -{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy376);} |
| 162084 | +{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy64);} |
| 161782 | 162085 | break; |
| 161783 | 162086 | case 4: /* transtype ::= */ |
| 161784 | | -{yymsp[1].minor.yy376 = TK_DEFERRED;} |
| 162087 | +{yymsp[1].minor.yy64 = TK_DEFERRED;} |
| 161785 | 162088 | break; |
| 161786 | 162089 | case 5: /* transtype ::= DEFERRED */ |
| 161787 | 162090 | case 6: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==6); |
| 161788 | 162091 | case 7: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==7); |
| 161789 | | - case 318: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==318); |
| 161790 | | -{yymsp[0].minor.yy376 = yymsp[0].major; /*A-overwrites-X*/} |
| 162092 | + case 320: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==320); |
| 162093 | +{yymsp[0].minor.yy64 = yymsp[0].major; /*A-overwrites-X*/} |
| 161791 | 162094 | break; |
| 161792 | 162095 | case 8: /* cmd ::= COMMIT|END trans_opt */ |
| 161793 | 162096 | case 9: /* cmd ::= ROLLBACK trans_opt */ yytestcase(yyruleno==9); |
| 161794 | 162097 | {sqlite3EndTransaction(pParse,yymsp[-1].major);} |
| 161795 | 162098 | break; |
| | @@ -161808,415 +162111,432 @@ |
| 161808 | 162111 | sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0); |
| 161809 | 162112 | } |
| 161810 | 162113 | break; |
| 161811 | 162114 | case 13: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ |
| 161812 | 162115 | { |
| 161813 | | - sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy376,0,0,yymsp[-2].minor.yy376); |
| 162116 | + sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy64,0,0,yymsp[-2].minor.yy64); |
| 161814 | 162117 | } |
| 161815 | 162118 | break; |
| 161816 | 162119 | case 14: /* createkw ::= CREATE */ |
| 161817 | 162120 | {disableLookaside(pParse);} |
| 161818 | 162121 | break; |
| 161819 | 162122 | case 15: /* ifnotexists ::= */ |
| 161820 | 162123 | case 18: /* temp ::= */ yytestcase(yyruleno==18); |
| 161821 | | - case 21: /* table_options ::= */ yytestcase(yyruleno==21); |
| 161822 | | - case 45: /* autoinc ::= */ yytestcase(yyruleno==45); |
| 161823 | | - case 60: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==60); |
| 161824 | | - case 70: /* defer_subclause_opt ::= */ yytestcase(yyruleno==70); |
| 161825 | | - case 79: /* ifexists ::= */ yytestcase(yyruleno==79); |
| 161826 | | - case 96: /* distinct ::= */ yytestcase(yyruleno==96); |
| 161827 | | - case 239: /* collate ::= */ yytestcase(yyruleno==239); |
| 161828 | | -{yymsp[1].minor.yy376 = 0;} |
| 162124 | + case 47: /* autoinc ::= */ yytestcase(yyruleno==47); |
| 162125 | + case 62: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==62); |
| 162126 | + case 72: /* defer_subclause_opt ::= */ yytestcase(yyruleno==72); |
| 162127 | + case 81: /* ifexists ::= */ yytestcase(yyruleno==81); |
| 162128 | + case 98: /* distinct ::= */ yytestcase(yyruleno==98); |
| 162129 | + case 241: /* collate ::= */ yytestcase(yyruleno==241); |
| 162130 | +{yymsp[1].minor.yy64 = 0;} |
| 161829 | 162131 | break; |
| 161830 | 162132 | case 16: /* ifnotexists ::= IF NOT EXISTS */ |
| 161831 | | -{yymsp[-2].minor.yy376 = 1;} |
| 162133 | +{yymsp[-2].minor.yy64 = 1;} |
| 161832 | 162134 | break; |
| 161833 | 162135 | case 17: /* temp ::= TEMP */ |
| 161834 | | -{yymsp[0].minor.yy376 = pParse->db->init.busy==0;} |
| 162136 | +{yymsp[0].minor.yy64 = pParse->db->init.busy==0;} |
| 161835 | 162137 | break; |
| 161836 | | - case 19: /* create_table_args ::= LP columnlist conslist_opt RP table_options */ |
| 162138 | + case 19: /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */ |
| 161837 | 162139 | { |
| 161838 | | - sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy376,0); |
| 162140 | + sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy51,0); |
| 161839 | 162141 | } |
| 161840 | 162142 | break; |
| 161841 | 162143 | case 20: /* create_table_args ::= AS select */ |
| 161842 | 162144 | { |
| 161843 | | - sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy81); |
| 161844 | | - sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy81); |
| 162145 | + sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy303); |
| 162146 | + sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy303); |
| 161845 | 162147 | } |
| 161846 | 162148 | break; |
| 161847 | | - case 22: /* table_options ::= WITHOUT nm */ |
| 162149 | + case 21: /* table_option_set ::= */ |
| 162150 | +{yymsp[1].minor.yy51 = 0;} |
| 162151 | + break; |
| 162152 | + case 22: /* table_option_set ::= table_option_set COMMA table_option */ |
| 162153 | +{yylhsminor.yy51 = yymsp[-2].minor.yy51|yymsp[0].minor.yy51;} |
| 162154 | + yymsp[-2].minor.yy51 = yylhsminor.yy51; |
| 162155 | + break; |
| 162156 | + case 23: /* table_option ::= WITHOUT nm */ |
| 161848 | 162157 | { |
| 161849 | 162158 | if( yymsp[0].minor.yy0.n==5 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"rowid",5)==0 ){ |
| 161850 | | - yymsp[-1].minor.yy376 = TF_WithoutRowid | TF_NoVisibleRowid; |
| 162159 | + yymsp[-1].minor.yy51 = TF_WithoutRowid | TF_NoVisibleRowid; |
| 161851 | 162160 | }else{ |
| 161852 | | - yymsp[-1].minor.yy376 = 0; |
| 162161 | + yymsp[-1].minor.yy51 = 0; |
| 162162 | + sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z); |
| 162163 | + } |
| 162164 | +} |
| 162165 | + break; |
| 162166 | + case 24: /* table_option ::= nm */ |
| 162167 | +{ |
| 162168 | + if( yymsp[0].minor.yy0.n==6 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"strict",6)==0 ){ |
| 162169 | + yylhsminor.yy51 = TF_Strict; |
| 162170 | + }else{ |
| 162171 | + yylhsminor.yy51 = 0; |
| 161853 | 162172 | sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z); |
| 161854 | 162173 | } |
| 161855 | 162174 | } |
| 162175 | + yymsp[0].minor.yy51 = yylhsminor.yy51; |
| 161856 | 162176 | break; |
| 161857 | | - case 23: /* columnname ::= nm typetoken */ |
| 162177 | + case 25: /* columnname ::= nm typetoken */ |
| 161858 | 162178 | {sqlite3AddColumn(pParse,yymsp[-1].minor.yy0,yymsp[0].minor.yy0);} |
| 161859 | 162179 | break; |
| 161860 | | - case 24: /* typetoken ::= */ |
| 161861 | | - case 63: /* conslist_opt ::= */ yytestcase(yyruleno==63); |
| 161862 | | - case 102: /* as ::= */ yytestcase(yyruleno==102); |
| 162180 | + case 26: /* typetoken ::= */ |
| 162181 | + case 65: /* conslist_opt ::= */ yytestcase(yyruleno==65); |
| 162182 | + case 104: /* as ::= */ yytestcase(yyruleno==104); |
| 161863 | 162183 | {yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.z = 0;} |
| 161864 | 162184 | break; |
| 161865 | | - case 25: /* typetoken ::= typename LP signed RP */ |
| 162185 | + case 27: /* typetoken ::= typename LP signed RP */ |
| 161866 | 162186 | { |
| 161867 | 162187 | yymsp[-3].minor.yy0.n = (int)(&yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-3].minor.yy0.z); |
| 161868 | 162188 | } |
| 161869 | 162189 | break; |
| 161870 | | - case 26: /* typetoken ::= typename LP signed COMMA signed RP */ |
| 162190 | + case 28: /* typetoken ::= typename LP signed COMMA signed RP */ |
| 161871 | 162191 | { |
| 161872 | 162192 | yymsp[-5].minor.yy0.n = (int)(&yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-5].minor.yy0.z); |
| 161873 | 162193 | } |
| 161874 | 162194 | break; |
| 161875 | | - case 27: /* typename ::= typename ID|STRING */ |
| 162195 | + case 29: /* typename ::= typename ID|STRING */ |
| 161876 | 162196 | {yymsp[-1].minor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);} |
| 161877 | 162197 | break; |
| 161878 | | - case 28: /* scanpt ::= */ |
| 162198 | + case 30: /* scanpt ::= */ |
| 161879 | 162199 | { |
| 161880 | 162200 | assert( yyLookahead!=YYNOCODE ); |
| 161881 | | - yymsp[1].minor.yy504 = yyLookaheadToken.z; |
| 162201 | + yymsp[1].minor.yy600 = yyLookaheadToken.z; |
| 161882 | 162202 | } |
| 161883 | 162203 | break; |
| 161884 | | - case 29: /* scantok ::= */ |
| 162204 | + case 31: /* scantok ::= */ |
| 161885 | 162205 | { |
| 161886 | 162206 | assert( yyLookahead!=YYNOCODE ); |
| 161887 | 162207 | yymsp[1].minor.yy0 = yyLookaheadToken; |
| 161888 | 162208 | } |
| 161889 | 162209 | break; |
| 161890 | | - case 30: /* ccons ::= CONSTRAINT nm */ |
| 161891 | | - case 65: /* tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==65); |
| 162210 | + case 32: /* ccons ::= CONSTRAINT nm */ |
| 162211 | + case 67: /* tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==67); |
| 161892 | 162212 | {pParse->constraintName = yymsp[0].minor.yy0;} |
| 161893 | 162213 | break; |
| 161894 | | - case 31: /* ccons ::= DEFAULT scantok term */ |
| 161895 | | -{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy404,yymsp[-1].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} |
| 161896 | | - break; |
| 161897 | | - case 32: /* ccons ::= DEFAULT LP expr RP */ |
| 161898 | | -{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy404,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);} |
| 161899 | | - break; |
| 161900 | | - case 33: /* ccons ::= DEFAULT PLUS scantok term */ |
| 161901 | | -{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy404,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} |
| 161902 | | - break; |
| 161903 | | - case 34: /* ccons ::= DEFAULT MINUS scantok term */ |
| 161904 | | -{ |
| 161905 | | - Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy404, 0); |
| 162214 | + case 33: /* ccons ::= DEFAULT scantok term */ |
| 162215 | +{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy626,yymsp[-1].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} |
| 162216 | + break; |
| 162217 | + case 34: /* ccons ::= DEFAULT LP expr RP */ |
| 162218 | +{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy626,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);} |
| 162219 | + break; |
| 162220 | + case 35: /* ccons ::= DEFAULT PLUS scantok term */ |
| 162221 | +{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy626,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} |
| 162222 | + break; |
| 162223 | + case 36: /* ccons ::= DEFAULT MINUS scantok term */ |
| 162224 | +{ |
| 162225 | + Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy626, 0); |
| 161906 | 162226 | sqlite3AddDefaultValue(pParse,p,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]); |
| 161907 | 162227 | } |
| 161908 | 162228 | break; |
| 161909 | | - case 35: /* ccons ::= DEFAULT scantok ID|INDEXED */ |
| 162229 | + case 37: /* ccons ::= DEFAULT scantok ID|INDEXED */ |
| 161910 | 162230 | { |
| 161911 | 162231 | Expr *p = tokenExpr(pParse, TK_STRING, yymsp[0].minor.yy0); |
| 161912 | 162232 | if( p ){ |
| 161913 | 162233 | sqlite3ExprIdToTrueFalse(p); |
| 161914 | 162234 | testcase( p->op==TK_TRUEFALSE && sqlite3ExprTruthValue(p) ); |
| 161915 | 162235 | } |
| 161916 | 162236 | sqlite3AddDefaultValue(pParse,p,yymsp[0].minor.yy0.z,yymsp[0].minor.yy0.z+yymsp[0].minor.yy0.n); |
| 161917 | 162237 | } |
| 161918 | 162238 | break; |
| 161919 | | - case 36: /* ccons ::= NOT NULL onconf */ |
| 161920 | | -{sqlite3AddNotNull(pParse, yymsp[0].minor.yy376);} |
| 161921 | | - break; |
| 161922 | | - case 37: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ |
| 161923 | | -{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy376,yymsp[0].minor.yy376,yymsp[-2].minor.yy376);} |
| 161924 | | - break; |
| 161925 | | - case 38: /* ccons ::= UNIQUE onconf */ |
| 161926 | | -{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy376,0,0,0,0, |
| 162239 | + case 38: /* ccons ::= NOT NULL onconf */ |
| 162240 | +{sqlite3AddNotNull(pParse, yymsp[0].minor.yy64);} |
| 162241 | + break; |
| 162242 | + case 39: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ |
| 162243 | +{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy64,yymsp[0].minor.yy64,yymsp[-2].minor.yy64);} |
| 162244 | + break; |
| 162245 | + case 40: /* ccons ::= UNIQUE onconf */ |
| 162246 | +{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy64,0,0,0,0, |
| 161927 | 162247 | SQLITE_IDXTYPE_UNIQUE);} |
| 161928 | 162248 | break; |
| 161929 | | - case 39: /* ccons ::= CHECK LP expr RP */ |
| 161930 | | -{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy404,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy0.z);} |
| 161931 | | - break; |
| 161932 | | - case 40: /* ccons ::= REFERENCES nm eidlist_opt refargs */ |
| 161933 | | -{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy70,yymsp[0].minor.yy376);} |
| 161934 | | - break; |
| 161935 | | - case 41: /* ccons ::= defer_subclause */ |
| 161936 | | -{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy376);} |
| 161937 | | - break; |
| 161938 | | - case 42: /* ccons ::= COLLATE ID|STRING */ |
| 162249 | + case 41: /* ccons ::= CHECK LP expr RP */ |
| 162250 | +{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy626,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy0.z);} |
| 162251 | + break; |
| 162252 | + case 42: /* ccons ::= REFERENCES nm eidlist_opt refargs */ |
| 162253 | +{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy562,yymsp[0].minor.yy64);} |
| 162254 | + break; |
| 162255 | + case 43: /* ccons ::= defer_subclause */ |
| 162256 | +{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy64);} |
| 162257 | + break; |
| 162258 | + case 44: /* ccons ::= COLLATE ID|STRING */ |
| 161939 | 162259 | {sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);} |
| 161940 | 162260 | break; |
| 161941 | | - case 43: /* generated ::= LP expr RP */ |
| 161942 | | -{sqlite3AddGenerated(pParse,yymsp[-1].minor.yy404,0);} |
| 161943 | | - break; |
| 161944 | | - case 44: /* generated ::= LP expr RP ID */ |
| 161945 | | -{sqlite3AddGenerated(pParse,yymsp[-2].minor.yy404,&yymsp[0].minor.yy0);} |
| 161946 | | - break; |
| 161947 | | - case 46: /* autoinc ::= AUTOINCR */ |
| 161948 | | -{yymsp[0].minor.yy376 = 1;} |
| 161949 | | - break; |
| 161950 | | - case 47: /* refargs ::= */ |
| 161951 | | -{ yymsp[1].minor.yy376 = OE_None*0x0101; /* EV: R-19803-45884 */} |
| 161952 | | - break; |
| 161953 | | - case 48: /* refargs ::= refargs refarg */ |
| 161954 | | -{ yymsp[-1].minor.yy376 = (yymsp[-1].minor.yy376 & ~yymsp[0].minor.yy139.mask) | yymsp[0].minor.yy139.value; } |
| 161955 | | - break; |
| 161956 | | - case 49: /* refarg ::= MATCH nm */ |
| 161957 | | -{ yymsp[-1].minor.yy139.value = 0; yymsp[-1].minor.yy139.mask = 0x000000; } |
| 161958 | | - break; |
| 161959 | | - case 50: /* refarg ::= ON INSERT refact */ |
| 161960 | | -{ yymsp[-2].minor.yy139.value = 0; yymsp[-2].minor.yy139.mask = 0x000000; } |
| 161961 | | - break; |
| 161962 | | - case 51: /* refarg ::= ON DELETE refact */ |
| 161963 | | -{ yymsp[-2].minor.yy139.value = yymsp[0].minor.yy376; yymsp[-2].minor.yy139.mask = 0x0000ff; } |
| 161964 | | - break; |
| 161965 | | - case 52: /* refarg ::= ON UPDATE refact */ |
| 161966 | | -{ yymsp[-2].minor.yy139.value = yymsp[0].minor.yy376<<8; yymsp[-2].minor.yy139.mask = 0x00ff00; } |
| 161967 | | - break; |
| 161968 | | - case 53: /* refact ::= SET NULL */ |
| 161969 | | -{ yymsp[-1].minor.yy376 = OE_SetNull; /* EV: R-33326-45252 */} |
| 161970 | | - break; |
| 161971 | | - case 54: /* refact ::= SET DEFAULT */ |
| 161972 | | -{ yymsp[-1].minor.yy376 = OE_SetDflt; /* EV: R-33326-45252 */} |
| 161973 | | - break; |
| 161974 | | - case 55: /* refact ::= CASCADE */ |
| 161975 | | -{ yymsp[0].minor.yy376 = OE_Cascade; /* EV: R-33326-45252 */} |
| 161976 | | - break; |
| 161977 | | - case 56: /* refact ::= RESTRICT */ |
| 161978 | | -{ yymsp[0].minor.yy376 = OE_Restrict; /* EV: R-33326-45252 */} |
| 161979 | | - break; |
| 161980 | | - case 57: /* refact ::= NO ACTION */ |
| 161981 | | -{ yymsp[-1].minor.yy376 = OE_None; /* EV: R-33326-45252 */} |
| 161982 | | - break; |
| 161983 | | - case 58: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ |
| 161984 | | -{yymsp[-2].minor.yy376 = 0;} |
| 161985 | | - break; |
| 161986 | | - case 59: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ |
| 161987 | | - case 74: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==74); |
| 161988 | | - case 169: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==169); |
| 161989 | | -{yymsp[-1].minor.yy376 = yymsp[0].minor.yy376;} |
| 161990 | | - break; |
| 161991 | | - case 61: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ |
| 161992 | | - case 78: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==78); |
| 161993 | | - case 211: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==211); |
| 161994 | | - case 214: /* in_op ::= NOT IN */ yytestcase(yyruleno==214); |
| 161995 | | - case 240: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==240); |
| 161996 | | -{yymsp[-1].minor.yy376 = 1;} |
| 161997 | | - break; |
| 161998 | | - case 62: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ |
| 161999 | | -{yymsp[-1].minor.yy376 = 0;} |
| 162000 | | - break; |
| 162001 | | - case 64: /* tconscomma ::= COMMA */ |
| 162261 | + case 45: /* generated ::= LP expr RP */ |
| 162262 | +{sqlite3AddGenerated(pParse,yymsp[-1].minor.yy626,0);} |
| 162263 | + break; |
| 162264 | + case 46: /* generated ::= LP expr RP ID */ |
| 162265 | +{sqlite3AddGenerated(pParse,yymsp[-2].minor.yy626,&yymsp[0].minor.yy0);} |
| 162266 | + break; |
| 162267 | + case 48: /* autoinc ::= AUTOINCR */ |
| 162268 | +{yymsp[0].minor.yy64 = 1;} |
| 162269 | + break; |
| 162270 | + case 49: /* refargs ::= */ |
| 162271 | +{ yymsp[1].minor.yy64 = OE_None*0x0101; /* EV: R-19803-45884 */} |
| 162272 | + break; |
| 162273 | + case 50: /* refargs ::= refargs refarg */ |
| 162274 | +{ yymsp[-1].minor.yy64 = (yymsp[-1].minor.yy64 & ~yymsp[0].minor.yy83.mask) | yymsp[0].minor.yy83.value; } |
| 162275 | + break; |
| 162276 | + case 51: /* refarg ::= MATCH nm */ |
| 162277 | +{ yymsp[-1].minor.yy83.value = 0; yymsp[-1].minor.yy83.mask = 0x000000; } |
| 162278 | + break; |
| 162279 | + case 52: /* refarg ::= ON INSERT refact */ |
| 162280 | +{ yymsp[-2].minor.yy83.value = 0; yymsp[-2].minor.yy83.mask = 0x000000; } |
| 162281 | + break; |
| 162282 | + case 53: /* refarg ::= ON DELETE refact */ |
| 162283 | +{ yymsp[-2].minor.yy83.value = yymsp[0].minor.yy64; yymsp[-2].minor.yy83.mask = 0x0000ff; } |
| 162284 | + break; |
| 162285 | + case 54: /* refarg ::= ON UPDATE refact */ |
| 162286 | +{ yymsp[-2].minor.yy83.value = yymsp[0].minor.yy64<<8; yymsp[-2].minor.yy83.mask = 0x00ff00; } |
| 162287 | + break; |
| 162288 | + case 55: /* refact ::= SET NULL */ |
| 162289 | +{ yymsp[-1].minor.yy64 = OE_SetNull; /* EV: R-33326-45252 */} |
| 162290 | + break; |
| 162291 | + case 56: /* refact ::= SET DEFAULT */ |
| 162292 | +{ yymsp[-1].minor.yy64 = OE_SetDflt; /* EV: R-33326-45252 */} |
| 162293 | + break; |
| 162294 | + case 57: /* refact ::= CASCADE */ |
| 162295 | +{ yymsp[0].minor.yy64 = OE_Cascade; /* EV: R-33326-45252 */} |
| 162296 | + break; |
| 162297 | + case 58: /* refact ::= RESTRICT */ |
| 162298 | +{ yymsp[0].minor.yy64 = OE_Restrict; /* EV: R-33326-45252 */} |
| 162299 | + break; |
| 162300 | + case 59: /* refact ::= NO ACTION */ |
| 162301 | +{ yymsp[-1].minor.yy64 = OE_None; /* EV: R-33326-45252 */} |
| 162302 | + break; |
| 162303 | + case 60: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ |
| 162304 | +{yymsp[-2].minor.yy64 = 0;} |
| 162305 | + break; |
| 162306 | + case 61: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ |
| 162307 | + case 76: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==76); |
| 162308 | + case 171: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==171); |
| 162309 | +{yymsp[-1].minor.yy64 = yymsp[0].minor.yy64;} |
| 162310 | + break; |
| 162311 | + case 63: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ |
| 162312 | + case 80: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==80); |
| 162313 | + case 213: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==213); |
| 162314 | + case 216: /* in_op ::= NOT IN */ yytestcase(yyruleno==216); |
| 162315 | + case 242: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==242); |
| 162316 | +{yymsp[-1].minor.yy64 = 1;} |
| 162317 | + break; |
| 162318 | + case 64: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ |
| 162319 | +{yymsp[-1].minor.yy64 = 0;} |
| 162320 | + break; |
| 162321 | + case 66: /* tconscomma ::= COMMA */ |
| 162002 | 162322 | {pParse->constraintName.n = 0;} |
| 162003 | 162323 | break; |
| 162004 | | - case 66: /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ |
| 162005 | | -{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy70,yymsp[0].minor.yy376,yymsp[-2].minor.yy376,0);} |
| 162324 | + case 68: /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ |
| 162325 | +{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy562,yymsp[0].minor.yy64,yymsp[-2].minor.yy64,0);} |
| 162006 | 162326 | break; |
| 162007 | | - case 67: /* tcons ::= UNIQUE LP sortlist RP onconf */ |
| 162008 | | -{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy70,yymsp[0].minor.yy376,0,0,0,0, |
| 162327 | + case 69: /* tcons ::= UNIQUE LP sortlist RP onconf */ |
| 162328 | +{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy562,yymsp[0].minor.yy64,0,0,0,0, |
| 162009 | 162329 | SQLITE_IDXTYPE_UNIQUE);} |
| 162010 | 162330 | break; |
| 162011 | | - case 68: /* tcons ::= CHECK LP expr RP onconf */ |
| 162012 | | -{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy404,yymsp[-3].minor.yy0.z,yymsp[-1].minor.yy0.z);} |
| 162013 | | - break; |
| 162014 | | - case 69: /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ |
| 162015 | | -{ |
| 162016 | | - sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy70, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy70, yymsp[-1].minor.yy376); |
| 162017 | | - sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy376); |
| 162018 | | -} |
| 162019 | | - break; |
| 162020 | | - case 71: /* onconf ::= */ |
| 162021 | | - case 73: /* orconf ::= */ yytestcase(yyruleno==73); |
| 162022 | | -{yymsp[1].minor.yy376 = OE_Default;} |
| 162023 | | - break; |
| 162024 | | - case 72: /* onconf ::= ON CONFLICT resolvetype */ |
| 162025 | | -{yymsp[-2].minor.yy376 = yymsp[0].minor.yy376;} |
| 162026 | | - break; |
| 162027 | | - case 75: /* resolvetype ::= IGNORE */ |
| 162028 | | -{yymsp[0].minor.yy376 = OE_Ignore;} |
| 162029 | | - break; |
| 162030 | | - case 76: /* resolvetype ::= REPLACE */ |
| 162031 | | - case 170: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==170); |
| 162032 | | -{yymsp[0].minor.yy376 = OE_Replace;} |
| 162033 | | - break; |
| 162034 | | - case 77: /* cmd ::= DROP TABLE ifexists fullname */ |
| 162035 | | -{ |
| 162036 | | - sqlite3DropTable(pParse, yymsp[0].minor.yy153, 0, yymsp[-1].minor.yy376); |
| 162037 | | -} |
| 162038 | | - break; |
| 162039 | | - case 80: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ |
| 162040 | | -{ |
| 162041 | | - sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy70, yymsp[0].minor.yy81, yymsp[-7].minor.yy376, yymsp[-5].minor.yy376); |
| 162042 | | -} |
| 162043 | | - break; |
| 162044 | | - case 81: /* cmd ::= DROP VIEW ifexists fullname */ |
| 162045 | | -{ |
| 162046 | | - sqlite3DropTable(pParse, yymsp[0].minor.yy153, 1, yymsp[-1].minor.yy376); |
| 162047 | | -} |
| 162048 | | - break; |
| 162049 | | - case 82: /* cmd ::= select */ |
| 162331 | + case 70: /* tcons ::= CHECK LP expr RP onconf */ |
| 162332 | +{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy626,yymsp[-3].minor.yy0.z,yymsp[-1].minor.yy0.z);} |
| 162333 | + break; |
| 162334 | + case 71: /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ |
| 162335 | +{ |
| 162336 | + sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy562, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy562, yymsp[-1].minor.yy64); |
| 162337 | + sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy64); |
| 162338 | +} |
| 162339 | + break; |
| 162340 | + case 73: /* onconf ::= */ |
| 162341 | + case 75: /* orconf ::= */ yytestcase(yyruleno==75); |
| 162342 | +{yymsp[1].minor.yy64 = OE_Default;} |
| 162343 | + break; |
| 162344 | + case 74: /* onconf ::= ON CONFLICT resolvetype */ |
| 162345 | +{yymsp[-2].minor.yy64 = yymsp[0].minor.yy64;} |
| 162346 | + break; |
| 162347 | + case 77: /* resolvetype ::= IGNORE */ |
| 162348 | +{yymsp[0].minor.yy64 = OE_Ignore;} |
| 162349 | + break; |
| 162350 | + case 78: /* resolvetype ::= REPLACE */ |
| 162351 | + case 172: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==172); |
| 162352 | +{yymsp[0].minor.yy64 = OE_Replace;} |
| 162353 | + break; |
| 162354 | + case 79: /* cmd ::= DROP TABLE ifexists fullname */ |
| 162355 | +{ |
| 162356 | + sqlite3DropTable(pParse, yymsp[0].minor.yy607, 0, yymsp[-1].minor.yy64); |
| 162357 | +} |
| 162358 | + break; |
| 162359 | + case 82: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ |
| 162360 | +{ |
| 162361 | + 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); |
| 162362 | +} |
| 162363 | + break; |
| 162364 | + case 83: /* cmd ::= DROP VIEW ifexists fullname */ |
| 162365 | +{ |
| 162366 | + sqlite3DropTable(pParse, yymsp[0].minor.yy607, 1, yymsp[-1].minor.yy64); |
| 162367 | +} |
| 162368 | + break; |
| 162369 | + case 84: /* cmd ::= select */ |
| 162050 | 162370 | { |
| 162051 | 162371 | SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0, 0}; |
| 162052 | | - sqlite3Select(pParse, yymsp[0].minor.yy81, &dest); |
| 162053 | | - sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy81); |
| 162372 | + sqlite3Select(pParse, yymsp[0].minor.yy303, &dest); |
| 162373 | + sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy303); |
| 162054 | 162374 | } |
| 162055 | 162375 | break; |
| 162056 | | - case 83: /* select ::= WITH wqlist selectnowith */ |
| 162057 | | -{yymsp[-2].minor.yy81 = attachWithToSelect(pParse,yymsp[0].minor.yy81,yymsp[-1].minor.yy103);} |
| 162058 | | - break; |
| 162059 | | - case 84: /* select ::= WITH RECURSIVE wqlist selectnowith */ |
| 162060 | | -{yymsp[-3].minor.yy81 = attachWithToSelect(pParse,yymsp[0].minor.yy81,yymsp[-1].minor.yy103);} |
| 162061 | | - break; |
| 162062 | | - case 85: /* select ::= selectnowith */ |
| 162063 | | -{ |
| 162064 | | - Select *p = yymsp[0].minor.yy81; |
| 162376 | + case 85: /* select ::= WITH wqlist selectnowith */ |
| 162377 | +{yymsp[-2].minor.yy303 = attachWithToSelect(pParse,yymsp[0].minor.yy303,yymsp[-1].minor.yy43);} |
| 162378 | + break; |
| 162379 | + case 86: /* select ::= WITH RECURSIVE wqlist selectnowith */ |
| 162380 | +{yymsp[-3].minor.yy303 = attachWithToSelect(pParse,yymsp[0].minor.yy303,yymsp[-1].minor.yy43);} |
| 162381 | + break; |
| 162382 | + case 87: /* select ::= selectnowith */ |
| 162383 | +{ |
| 162384 | + Select *p = yymsp[0].minor.yy303; |
| 162065 | 162385 | if( p ){ |
| 162066 | 162386 | parserDoubleLinkSelect(pParse, p); |
| 162067 | 162387 | } |
| 162068 | | - yymsp[0].minor.yy81 = p; /*A-overwrites-X*/ |
| 162388 | + yymsp[0].minor.yy303 = p; /*A-overwrites-X*/ |
| 162069 | 162389 | } |
| 162070 | 162390 | break; |
| 162071 | | - case 86: /* selectnowith ::= selectnowith multiselect_op oneselect */ |
| 162391 | + case 88: /* selectnowith ::= selectnowith multiselect_op oneselect */ |
| 162072 | 162392 | { |
| 162073 | | - Select *pRhs = yymsp[0].minor.yy81; |
| 162074 | | - Select *pLhs = yymsp[-2].minor.yy81; |
| 162393 | + Select *pRhs = yymsp[0].minor.yy303; |
| 162394 | + Select *pLhs = yymsp[-2].minor.yy303; |
| 162075 | 162395 | if( pRhs && pRhs->pPrior ){ |
| 162076 | 162396 | SrcList *pFrom; |
| 162077 | 162397 | Token x; |
| 162078 | 162398 | x.n = 0; |
| 162079 | 162399 | parserDoubleLinkSelect(pParse, pRhs); |
| 162080 | 162400 | pFrom = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&x,pRhs,0,0); |
| 162081 | 162401 | pRhs = sqlite3SelectNew(pParse,0,pFrom,0,0,0,0,0,0); |
| 162082 | 162402 | } |
| 162083 | 162403 | if( pRhs ){ |
| 162084 | | - pRhs->op = (u8)yymsp[-1].minor.yy376; |
| 162404 | + pRhs->op = (u8)yymsp[-1].minor.yy64; |
| 162085 | 162405 | pRhs->pPrior = pLhs; |
| 162086 | 162406 | if( ALWAYS(pLhs) ) pLhs->selFlags &= ~SF_MultiValue; |
| 162087 | 162407 | pRhs->selFlags &= ~SF_MultiValue; |
| 162088 | | - if( yymsp[-1].minor.yy376!=TK_ALL ) pParse->hasCompound = 1; |
| 162408 | + if( yymsp[-1].minor.yy64!=TK_ALL ) pParse->hasCompound = 1; |
| 162089 | 162409 | }else{ |
| 162090 | 162410 | sqlite3SelectDelete(pParse->db, pLhs); |
| 162091 | 162411 | } |
| 162092 | | - yymsp[-2].minor.yy81 = pRhs; |
| 162093 | | -} |
| 162094 | | - break; |
| 162095 | | - case 87: /* multiselect_op ::= UNION */ |
| 162096 | | - case 89: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==89); |
| 162097 | | -{yymsp[0].minor.yy376 = yymsp[0].major; /*A-overwrites-OP*/} |
| 162098 | | - break; |
| 162099 | | - case 88: /* multiselect_op ::= UNION ALL */ |
| 162100 | | -{yymsp[-1].minor.yy376 = TK_ALL;} |
| 162101 | | - break; |
| 162102 | | - case 90: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ |
| 162103 | | -{ |
| 162104 | | - yymsp[-8].minor.yy81 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy70,yymsp[-5].minor.yy153,yymsp[-4].minor.yy404,yymsp[-3].minor.yy70,yymsp[-2].minor.yy404,yymsp[-1].minor.yy70,yymsp[-7].minor.yy376,yymsp[0].minor.yy404); |
| 162105 | | -} |
| 162106 | | - break; |
| 162107 | | - case 91: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ |
| 162108 | | -{ |
| 162109 | | - yymsp[-9].minor.yy81 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy70,yymsp[-6].minor.yy153,yymsp[-5].minor.yy404,yymsp[-4].minor.yy70,yymsp[-3].minor.yy404,yymsp[-1].minor.yy70,yymsp[-8].minor.yy376,yymsp[0].minor.yy404); |
| 162110 | | - if( yymsp[-9].minor.yy81 ){ |
| 162111 | | - yymsp[-9].minor.yy81->pWinDefn = yymsp[-2].minor.yy49; |
| 162112 | | - }else{ |
| 162113 | | - sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy49); |
| 162114 | | - } |
| 162115 | | -} |
| 162116 | | - break; |
| 162117 | | - case 92: /* values ::= VALUES LP nexprlist RP */ |
| 162118 | | -{ |
| 162119 | | - yymsp[-3].minor.yy81 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy70,0,0,0,0,0,SF_Values,0); |
| 162120 | | -} |
| 162121 | | - break; |
| 162122 | | - case 93: /* values ::= values COMMA LP nexprlist RP */ |
| 162123 | | -{ |
| 162124 | | - Select *pRight, *pLeft = yymsp[-4].minor.yy81; |
| 162125 | | - pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy70,0,0,0,0,0,SF_Values|SF_MultiValue,0); |
| 162412 | + yymsp[-2].minor.yy303 = pRhs; |
| 162413 | +} |
| 162414 | + break; |
| 162415 | + case 89: /* multiselect_op ::= UNION */ |
| 162416 | + case 91: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==91); |
| 162417 | +{yymsp[0].minor.yy64 = yymsp[0].major; /*A-overwrites-OP*/} |
| 162418 | + break; |
| 162419 | + case 90: /* multiselect_op ::= UNION ALL */ |
| 162420 | +{yymsp[-1].minor.yy64 = TK_ALL;} |
| 162421 | + break; |
| 162422 | + case 92: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ |
| 162423 | +{ |
| 162424 | + 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); |
| 162425 | +} |
| 162426 | + break; |
| 162427 | + case 93: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ |
| 162428 | +{ |
| 162429 | + 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); |
| 162430 | + if( yymsp[-9].minor.yy303 ){ |
| 162431 | + yymsp[-9].minor.yy303->pWinDefn = yymsp[-2].minor.yy375; |
| 162432 | + }else{ |
| 162433 | + sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy375); |
| 162434 | + } |
| 162435 | +} |
| 162436 | + break; |
| 162437 | + case 94: /* values ::= VALUES LP nexprlist RP */ |
| 162438 | +{ |
| 162439 | + yymsp[-3].minor.yy303 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy562,0,0,0,0,0,SF_Values,0); |
| 162440 | +} |
| 162441 | + break; |
| 162442 | + case 95: /* values ::= values COMMA LP nexprlist RP */ |
| 162443 | +{ |
| 162444 | + Select *pRight, *pLeft = yymsp[-4].minor.yy303; |
| 162445 | + pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy562,0,0,0,0,0,SF_Values|SF_MultiValue,0); |
| 162126 | 162446 | if( ALWAYS(pLeft) ) pLeft->selFlags &= ~SF_MultiValue; |
| 162127 | 162447 | if( pRight ){ |
| 162128 | 162448 | pRight->op = TK_ALL; |
| 162129 | 162449 | pRight->pPrior = pLeft; |
| 162130 | | - yymsp[-4].minor.yy81 = pRight; |
| 162131 | | - }else{ |
| 162132 | | - yymsp[-4].minor.yy81 = pLeft; |
| 162133 | | - } |
| 162134 | | -} |
| 162135 | | - break; |
| 162136 | | - case 94: /* distinct ::= DISTINCT */ |
| 162137 | | -{yymsp[0].minor.yy376 = SF_Distinct;} |
| 162138 | | - break; |
| 162139 | | - case 95: /* distinct ::= ALL */ |
| 162140 | | -{yymsp[0].minor.yy376 = SF_All;} |
| 162141 | | - break; |
| 162142 | | - case 97: /* sclp ::= */ |
| 162143 | | - case 130: /* orderby_opt ::= */ yytestcase(yyruleno==130); |
| 162144 | | - case 140: /* groupby_opt ::= */ yytestcase(yyruleno==140); |
| 162145 | | - case 227: /* exprlist ::= */ yytestcase(yyruleno==227); |
| 162146 | | - case 230: /* paren_exprlist ::= */ yytestcase(yyruleno==230); |
| 162147 | | - case 235: /* eidlist_opt ::= */ yytestcase(yyruleno==235); |
| 162148 | | -{yymsp[1].minor.yy70 = 0;} |
| 162149 | | - break; |
| 162150 | | - case 98: /* selcollist ::= sclp scanpt expr scanpt as */ |
| 162151 | | -{ |
| 162152 | | - yymsp[-4].minor.yy70 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy70, yymsp[-2].minor.yy404); |
| 162153 | | - if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy70, &yymsp[0].minor.yy0, 1); |
| 162154 | | - sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy70,yymsp[-3].minor.yy504,yymsp[-1].minor.yy504); |
| 162155 | | -} |
| 162156 | | - break; |
| 162157 | | - case 99: /* selcollist ::= sclp scanpt STAR */ |
| 162450 | + yymsp[-4].minor.yy303 = pRight; |
| 162451 | + }else{ |
| 162452 | + yymsp[-4].minor.yy303 = pLeft; |
| 162453 | + } |
| 162454 | +} |
| 162455 | + break; |
| 162456 | + case 96: /* distinct ::= DISTINCT */ |
| 162457 | +{yymsp[0].minor.yy64 = SF_Distinct;} |
| 162458 | + break; |
| 162459 | + case 97: /* distinct ::= ALL */ |
| 162460 | +{yymsp[0].minor.yy64 = SF_All;} |
| 162461 | + break; |
| 162462 | + case 99: /* sclp ::= */ |
| 162463 | + case 132: /* orderby_opt ::= */ yytestcase(yyruleno==132); |
| 162464 | + case 142: /* groupby_opt ::= */ yytestcase(yyruleno==142); |
| 162465 | + case 229: /* exprlist ::= */ yytestcase(yyruleno==229); |
| 162466 | + case 232: /* paren_exprlist ::= */ yytestcase(yyruleno==232); |
| 162467 | + case 237: /* eidlist_opt ::= */ yytestcase(yyruleno==237); |
| 162468 | +{yymsp[1].minor.yy562 = 0;} |
| 162469 | + break; |
| 162470 | + case 100: /* selcollist ::= sclp scanpt expr scanpt as */ |
| 162471 | +{ |
| 162472 | + yymsp[-4].minor.yy562 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy562, yymsp[-2].minor.yy626); |
| 162473 | + if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy562, &yymsp[0].minor.yy0, 1); |
| 162474 | + sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy562,yymsp[-3].minor.yy600,yymsp[-1].minor.yy600); |
| 162475 | +} |
| 162476 | + break; |
| 162477 | + case 101: /* selcollist ::= sclp scanpt STAR */ |
| 162158 | 162478 | { |
| 162159 | 162479 | Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0); |
| 162160 | | - yymsp[-2].minor.yy70 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy70, p); |
| 162480 | + yymsp[-2].minor.yy562 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy562, p); |
| 162161 | 162481 | } |
| 162162 | 162482 | break; |
| 162163 | | - case 100: /* selcollist ::= sclp scanpt nm DOT STAR */ |
| 162483 | + case 102: /* selcollist ::= sclp scanpt nm DOT STAR */ |
| 162164 | 162484 | { |
| 162165 | 162485 | Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0); |
| 162166 | 162486 | Expr *pLeft = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1); |
| 162167 | 162487 | Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight); |
| 162168 | | - yymsp[-4].minor.yy70 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy70, pDot); |
| 162488 | + yymsp[-4].minor.yy562 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy562, pDot); |
| 162169 | 162489 | } |
| 162170 | 162490 | break; |
| 162171 | | - case 101: /* as ::= AS nm */ |
| 162172 | | - case 112: /* dbnm ::= DOT nm */ yytestcase(yyruleno==112); |
| 162173 | | - case 251: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==251); |
| 162174 | | - case 252: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==252); |
| 162491 | + case 103: /* as ::= AS nm */ |
| 162492 | + case 114: /* dbnm ::= DOT nm */ yytestcase(yyruleno==114); |
| 162493 | + case 253: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==253); |
| 162494 | + case 254: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==254); |
| 162175 | 162495 | {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;} |
| 162176 | 162496 | break; |
| 162177 | | - case 103: /* from ::= */ |
| 162178 | | - case 106: /* stl_prefix ::= */ yytestcase(yyruleno==106); |
| 162179 | | -{yymsp[1].minor.yy153 = 0;} |
| 162180 | | - break; |
| 162181 | | - case 104: /* from ::= FROM seltablist */ |
| 162182 | | -{ |
| 162183 | | - yymsp[-1].minor.yy153 = yymsp[0].minor.yy153; |
| 162184 | | - sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy153); |
| 162185 | | -} |
| 162186 | | - break; |
| 162187 | | - case 105: /* stl_prefix ::= seltablist joinop */ |
| 162188 | | -{ |
| 162189 | | - if( ALWAYS(yymsp[-1].minor.yy153 && yymsp[-1].minor.yy153->nSrc>0) ) yymsp[-1].minor.yy153->a[yymsp[-1].minor.yy153->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy376; |
| 162190 | | -} |
| 162191 | | - break; |
| 162192 | | - case 107: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ |
| 162193 | | -{ |
| 162194 | | - yymsp[-6].minor.yy153 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy153,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy404,yymsp[0].minor.yy436); |
| 162195 | | - sqlite3SrcListIndexedBy(pParse, yymsp[-6].minor.yy153, &yymsp[-2].minor.yy0); |
| 162196 | | -} |
| 162197 | | - break; |
| 162198 | | - case 108: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */ |
| 162199 | | -{ |
| 162200 | | - yymsp[-8].minor.yy153 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-8].minor.yy153,&yymsp[-7].minor.yy0,&yymsp[-6].minor.yy0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy404,yymsp[0].minor.yy436); |
| 162201 | | - sqlite3SrcListFuncArgs(pParse, yymsp[-8].minor.yy153, yymsp[-4].minor.yy70); |
| 162202 | | -} |
| 162203 | | - break; |
| 162204 | | - case 109: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */ |
| 162205 | | -{ |
| 162206 | | - yymsp[-6].minor.yy153 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy153,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy81,yymsp[-1].minor.yy404,yymsp[0].minor.yy436); |
| 162207 | | - } |
| 162208 | | - break; |
| 162209 | | - case 110: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ |
| 162210 | | -{ |
| 162211 | | - if( yymsp[-6].minor.yy153==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy404==0 && yymsp[0].minor.yy436==0 ){ |
| 162212 | | - yymsp[-6].minor.yy153 = yymsp[-4].minor.yy153; |
| 162213 | | - }else if( yymsp[-4].minor.yy153->nSrc==1 ){ |
| 162214 | | - yymsp[-6].minor.yy153 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy153,0,0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy404,yymsp[0].minor.yy436); |
| 162215 | | - if( yymsp[-6].minor.yy153 ){ |
| 162216 | | - SrcItem *pNew = &yymsp[-6].minor.yy153->a[yymsp[-6].minor.yy153->nSrc-1]; |
| 162217 | | - SrcItem *pOld = yymsp[-4].minor.yy153->a; |
| 162497 | + case 105: /* from ::= */ |
| 162498 | + case 108: /* stl_prefix ::= */ yytestcase(yyruleno==108); |
| 162499 | +{yymsp[1].minor.yy607 = 0;} |
| 162500 | + break; |
| 162501 | + case 106: /* from ::= FROM seltablist */ |
| 162502 | +{ |
| 162503 | + yymsp[-1].minor.yy607 = yymsp[0].minor.yy607; |
| 162504 | + sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy607); |
| 162505 | +} |
| 162506 | + break; |
| 162507 | + case 107: /* stl_prefix ::= seltablist joinop */ |
| 162508 | +{ |
| 162509 | + 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; |
| 162510 | +} |
| 162511 | + break; |
| 162512 | + case 109: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ |
| 162513 | +{ |
| 162514 | + 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); |
| 162515 | + sqlite3SrcListIndexedBy(pParse, yymsp[-6].minor.yy607, &yymsp[-2].minor.yy0); |
| 162516 | +} |
| 162517 | + break; |
| 162518 | + case 110: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */ |
| 162519 | +{ |
| 162520 | + 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); |
| 162521 | + sqlite3SrcListFuncArgs(pParse, yymsp[-8].minor.yy607, yymsp[-4].minor.yy562); |
| 162522 | +} |
| 162523 | + break; |
| 162524 | + case 111: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */ |
| 162525 | +{ |
| 162526 | + 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); |
| 162527 | + } |
| 162528 | + break; |
| 162529 | + case 112: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ |
| 162530 | +{ |
| 162531 | + if( yymsp[-6].minor.yy607==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy626==0 && yymsp[0].minor.yy240==0 ){ |
| 162532 | + yymsp[-6].minor.yy607 = yymsp[-4].minor.yy607; |
| 162533 | + }else if( yymsp[-4].minor.yy607->nSrc==1 ){ |
| 162534 | + 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); |
| 162535 | + if( yymsp[-6].minor.yy607 ){ |
| 162536 | + SrcItem *pNew = &yymsp[-6].minor.yy607->a[yymsp[-6].minor.yy607->nSrc-1]; |
| 162537 | + SrcItem *pOld = yymsp[-4].minor.yy607->a; |
| 162218 | 162538 | pNew->zName = pOld->zName; |
| 162219 | 162539 | pNew->zDatabase = pOld->zDatabase; |
| 162220 | 162540 | pNew->pSelect = pOld->pSelect; |
| 162221 | 162541 | if( pOld->fg.isTabFunc ){ |
| 162222 | 162542 | pNew->u1.pFuncArg = pOld->u1.pFuncArg; |
| | @@ -162225,1008 +162545,1009 @@ |
| 162225 | 162545 | pNew->fg.isTabFunc = 1; |
| 162226 | 162546 | } |
| 162227 | 162547 | pOld->zName = pOld->zDatabase = 0; |
| 162228 | 162548 | pOld->pSelect = 0; |
| 162229 | 162549 | } |
| 162230 | | - sqlite3SrcListDelete(pParse->db, yymsp[-4].minor.yy153); |
| 162550 | + sqlite3SrcListDelete(pParse->db, yymsp[-4].minor.yy607); |
| 162231 | 162551 | }else{ |
| 162232 | 162552 | Select *pSubquery; |
| 162233 | | - sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy153); |
| 162234 | | - pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy153,0,0,0,0,SF_NestedFrom,0); |
| 162235 | | - yymsp[-6].minor.yy153 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy153,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy404,yymsp[0].minor.yy436); |
| 162553 | + sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy607); |
| 162554 | + pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy607,0,0,0,0,SF_NestedFrom,0); |
| 162555 | + 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); |
| 162236 | 162556 | } |
| 162237 | 162557 | } |
| 162238 | 162558 | break; |
| 162239 | | - case 111: /* dbnm ::= */ |
| 162240 | | - case 125: /* indexed_opt ::= */ yytestcase(yyruleno==125); |
| 162559 | + case 113: /* dbnm ::= */ |
| 162560 | + case 127: /* indexed_opt ::= */ yytestcase(yyruleno==127); |
| 162241 | 162561 | {yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;} |
| 162242 | 162562 | break; |
| 162243 | | - case 113: /* fullname ::= nm */ |
| 162244 | | -{ |
| 162245 | | - yylhsminor.yy153 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); |
| 162246 | | - if( IN_RENAME_OBJECT && yylhsminor.yy153 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy153->a[0].zName, &yymsp[0].minor.yy0); |
| 162247 | | -} |
| 162248 | | - yymsp[0].minor.yy153 = yylhsminor.yy153; |
| 162249 | | - break; |
| 162250 | | - case 114: /* fullname ::= nm DOT nm */ |
| 162251 | | -{ |
| 162252 | | - yylhsminor.yy153 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); |
| 162253 | | - if( IN_RENAME_OBJECT && yylhsminor.yy153 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy153->a[0].zName, &yymsp[0].minor.yy0); |
| 162254 | | -} |
| 162255 | | - yymsp[-2].minor.yy153 = yylhsminor.yy153; |
| 162256 | | - break; |
| 162257 | | - case 115: /* xfullname ::= nm */ |
| 162258 | | -{yymsp[0].minor.yy153 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/} |
| 162259 | | - break; |
| 162260 | | - case 116: /* xfullname ::= nm DOT nm */ |
| 162261 | | -{yymsp[-2].minor.yy153 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/} |
| 162262 | | - break; |
| 162263 | | - case 117: /* xfullname ::= nm DOT nm AS nm */ |
| 162264 | | -{ |
| 162265 | | - yymsp[-4].minor.yy153 = sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/ |
| 162266 | | - if( yymsp[-4].minor.yy153 ) yymsp[-4].minor.yy153->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); |
| 162267 | | -} |
| 162268 | | - break; |
| 162269 | | - case 118: /* xfullname ::= nm AS nm */ |
| 162270 | | -{ |
| 162271 | | - yymsp[-2].minor.yy153 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/ |
| 162272 | | - if( yymsp[-2].minor.yy153 ) yymsp[-2].minor.yy153->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); |
| 162273 | | -} |
| 162274 | | - break; |
| 162275 | | - case 119: /* joinop ::= COMMA|JOIN */ |
| 162276 | | -{ yymsp[0].minor.yy376 = JT_INNER; } |
| 162277 | | - break; |
| 162278 | | - case 120: /* joinop ::= JOIN_KW JOIN */ |
| 162279 | | -{yymsp[-1].minor.yy376 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/} |
| 162280 | | - break; |
| 162281 | | - case 121: /* joinop ::= JOIN_KW nm JOIN */ |
| 162282 | | -{yymsp[-2].minor.yy376 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/} |
| 162283 | | - break; |
| 162284 | | - case 122: /* joinop ::= JOIN_KW nm nm JOIN */ |
| 162285 | | -{yymsp[-3].minor.yy376 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/} |
| 162286 | | - break; |
| 162287 | | - case 123: /* on_opt ::= ON expr */ |
| 162288 | | - case 143: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==143); |
| 162289 | | - case 150: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==150); |
| 162290 | | - case 152: /* where_opt_ret ::= WHERE expr */ yytestcase(yyruleno==152); |
| 162291 | | - case 223: /* case_else ::= ELSE expr */ yytestcase(yyruleno==223); |
| 162292 | | - case 244: /* vinto ::= INTO expr */ yytestcase(yyruleno==244); |
| 162293 | | -{yymsp[-1].minor.yy404 = yymsp[0].minor.yy404;} |
| 162294 | | - break; |
| 162295 | | - case 124: /* on_opt ::= */ |
| 162296 | | - case 142: /* having_opt ::= */ yytestcase(yyruleno==142); |
| 162297 | | - case 144: /* limit_opt ::= */ yytestcase(yyruleno==144); |
| 162298 | | - case 149: /* where_opt ::= */ yytestcase(yyruleno==149); |
| 162299 | | - case 151: /* where_opt_ret ::= */ yytestcase(yyruleno==151); |
| 162300 | | - case 224: /* case_else ::= */ yytestcase(yyruleno==224); |
| 162301 | | - case 226: /* case_operand ::= */ yytestcase(yyruleno==226); |
| 162302 | | - case 245: /* vinto ::= */ yytestcase(yyruleno==245); |
| 162303 | | -{yymsp[1].minor.yy404 = 0;} |
| 162304 | | - break; |
| 162305 | | - case 126: /* indexed_opt ::= INDEXED BY nm */ |
| 162563 | + case 115: /* fullname ::= nm */ |
| 162564 | +{ |
| 162565 | + yylhsminor.yy607 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); |
| 162566 | + if( IN_RENAME_OBJECT && yylhsminor.yy607 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy607->a[0].zName, &yymsp[0].minor.yy0); |
| 162567 | +} |
| 162568 | + yymsp[0].minor.yy607 = yylhsminor.yy607; |
| 162569 | + break; |
| 162570 | + case 116: /* fullname ::= nm DOT nm */ |
| 162571 | +{ |
| 162572 | + yylhsminor.yy607 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); |
| 162573 | + if( IN_RENAME_OBJECT && yylhsminor.yy607 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy607->a[0].zName, &yymsp[0].minor.yy0); |
| 162574 | +} |
| 162575 | + yymsp[-2].minor.yy607 = yylhsminor.yy607; |
| 162576 | + break; |
| 162577 | + case 117: /* xfullname ::= nm */ |
| 162578 | +{yymsp[0].minor.yy607 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/} |
| 162579 | + break; |
| 162580 | + case 118: /* xfullname ::= nm DOT nm */ |
| 162581 | +{yymsp[-2].minor.yy607 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/} |
| 162582 | + break; |
| 162583 | + case 119: /* xfullname ::= nm DOT nm AS nm */ |
| 162584 | +{ |
| 162585 | + yymsp[-4].minor.yy607 = sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/ |
| 162586 | + if( yymsp[-4].minor.yy607 ) yymsp[-4].minor.yy607->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); |
| 162587 | +} |
| 162588 | + break; |
| 162589 | + case 120: /* xfullname ::= nm AS nm */ |
| 162590 | +{ |
| 162591 | + yymsp[-2].minor.yy607 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/ |
| 162592 | + if( yymsp[-2].minor.yy607 ) yymsp[-2].minor.yy607->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); |
| 162593 | +} |
| 162594 | + break; |
| 162595 | + case 121: /* joinop ::= COMMA|JOIN */ |
| 162596 | +{ yymsp[0].minor.yy64 = JT_INNER; } |
| 162597 | + break; |
| 162598 | + case 122: /* joinop ::= JOIN_KW JOIN */ |
| 162599 | +{yymsp[-1].minor.yy64 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/} |
| 162600 | + break; |
| 162601 | + case 123: /* joinop ::= JOIN_KW nm JOIN */ |
| 162602 | +{yymsp[-2].minor.yy64 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/} |
| 162603 | + break; |
| 162604 | + case 124: /* joinop ::= JOIN_KW nm nm JOIN */ |
| 162605 | +{yymsp[-3].minor.yy64 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/} |
| 162606 | + break; |
| 162607 | + case 125: /* on_opt ::= ON expr */ |
| 162608 | + case 145: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==145); |
| 162609 | + case 152: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==152); |
| 162610 | + case 154: /* where_opt_ret ::= WHERE expr */ yytestcase(yyruleno==154); |
| 162611 | + case 225: /* case_else ::= ELSE expr */ yytestcase(yyruleno==225); |
| 162612 | + case 246: /* vinto ::= INTO expr */ yytestcase(yyruleno==246); |
| 162613 | +{yymsp[-1].minor.yy626 = yymsp[0].minor.yy626;} |
| 162614 | + break; |
| 162615 | + case 126: /* on_opt ::= */ |
| 162616 | + case 144: /* having_opt ::= */ yytestcase(yyruleno==144); |
| 162617 | + case 146: /* limit_opt ::= */ yytestcase(yyruleno==146); |
| 162618 | + case 151: /* where_opt ::= */ yytestcase(yyruleno==151); |
| 162619 | + case 153: /* where_opt_ret ::= */ yytestcase(yyruleno==153); |
| 162620 | + case 226: /* case_else ::= */ yytestcase(yyruleno==226); |
| 162621 | + case 228: /* case_operand ::= */ yytestcase(yyruleno==228); |
| 162622 | + case 247: /* vinto ::= */ yytestcase(yyruleno==247); |
| 162623 | +{yymsp[1].minor.yy626 = 0;} |
| 162624 | + break; |
| 162625 | + case 128: /* indexed_opt ::= INDEXED BY nm */ |
| 162306 | 162626 | {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;} |
| 162307 | 162627 | break; |
| 162308 | | - case 127: /* indexed_opt ::= NOT INDEXED */ |
| 162628 | + case 129: /* indexed_opt ::= NOT INDEXED */ |
| 162309 | 162629 | {yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;} |
| 162310 | 162630 | break; |
| 162311 | | - case 128: /* using_opt ::= USING LP idlist RP */ |
| 162312 | | -{yymsp[-3].minor.yy436 = yymsp[-1].minor.yy436;} |
| 162313 | | - break; |
| 162314 | | - case 129: /* using_opt ::= */ |
| 162315 | | - case 171: /* idlist_opt ::= */ yytestcase(yyruleno==171); |
| 162316 | | -{yymsp[1].minor.yy436 = 0;} |
| 162317 | | - break; |
| 162318 | | - case 131: /* orderby_opt ::= ORDER BY sortlist */ |
| 162319 | | - case 141: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==141); |
| 162320 | | -{yymsp[-2].minor.yy70 = yymsp[0].minor.yy70;} |
| 162321 | | - break; |
| 162322 | | - case 132: /* sortlist ::= sortlist COMMA expr sortorder nulls */ |
| 162323 | | -{ |
| 162324 | | - yymsp[-4].minor.yy70 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy70,yymsp[-2].minor.yy404); |
| 162325 | | - sqlite3ExprListSetSortOrder(yymsp[-4].minor.yy70,yymsp[-1].minor.yy376,yymsp[0].minor.yy376); |
| 162326 | | -} |
| 162327 | | - break; |
| 162328 | | - case 133: /* sortlist ::= expr sortorder nulls */ |
| 162329 | | -{ |
| 162330 | | - yymsp[-2].minor.yy70 = sqlite3ExprListAppend(pParse,0,yymsp[-2].minor.yy404); /*A-overwrites-Y*/ |
| 162331 | | - sqlite3ExprListSetSortOrder(yymsp[-2].minor.yy70,yymsp[-1].minor.yy376,yymsp[0].minor.yy376); |
| 162332 | | -} |
| 162333 | | - break; |
| 162334 | | - case 134: /* sortorder ::= ASC */ |
| 162335 | | -{yymsp[0].minor.yy376 = SQLITE_SO_ASC;} |
| 162336 | | - break; |
| 162337 | | - case 135: /* sortorder ::= DESC */ |
| 162338 | | -{yymsp[0].minor.yy376 = SQLITE_SO_DESC;} |
| 162339 | | - break; |
| 162340 | | - case 136: /* sortorder ::= */ |
| 162341 | | - case 139: /* nulls ::= */ yytestcase(yyruleno==139); |
| 162342 | | -{yymsp[1].minor.yy376 = SQLITE_SO_UNDEFINED;} |
| 162343 | | - break; |
| 162344 | | - case 137: /* nulls ::= NULLS FIRST */ |
| 162345 | | -{yymsp[-1].minor.yy376 = SQLITE_SO_ASC;} |
| 162346 | | - break; |
| 162347 | | - case 138: /* nulls ::= NULLS LAST */ |
| 162348 | | -{yymsp[-1].minor.yy376 = SQLITE_SO_DESC;} |
| 162349 | | - break; |
| 162350 | | - case 145: /* limit_opt ::= LIMIT expr */ |
| 162351 | | -{yymsp[-1].minor.yy404 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy404,0);} |
| 162352 | | - break; |
| 162353 | | - case 146: /* limit_opt ::= LIMIT expr OFFSET expr */ |
| 162354 | | -{yymsp[-3].minor.yy404 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy404,yymsp[0].minor.yy404);} |
| 162355 | | - break; |
| 162356 | | - case 147: /* limit_opt ::= LIMIT expr COMMA expr */ |
| 162357 | | -{yymsp[-3].minor.yy404 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy404,yymsp[-2].minor.yy404);} |
| 162358 | | - break; |
| 162359 | | - case 148: /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ |
| 162360 | | -{ |
| 162361 | | - sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy153, &yymsp[-1].minor.yy0); |
| 162362 | | - sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy153,yymsp[0].minor.yy404,0,0); |
| 162363 | | -} |
| 162364 | | - break; |
| 162365 | | - case 153: /* where_opt_ret ::= RETURNING selcollist */ |
| 162366 | | -{sqlite3AddReturning(pParse,yymsp[0].minor.yy70); yymsp[-1].minor.yy404 = 0;} |
| 162367 | | - break; |
| 162368 | | - case 154: /* where_opt_ret ::= WHERE expr RETURNING selcollist */ |
| 162369 | | -{sqlite3AddReturning(pParse,yymsp[0].minor.yy70); yymsp[-3].minor.yy404 = yymsp[-2].minor.yy404;} |
| 162370 | | - break; |
| 162371 | | - case 155: /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ |
| 162372 | | -{ |
| 162373 | | - sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy153, &yymsp[-4].minor.yy0); |
| 162374 | | - sqlite3ExprListCheckLength(pParse,yymsp[-2].minor.yy70,"set list"); |
| 162375 | | - yymsp[-5].minor.yy153 = sqlite3SrcListAppendList(pParse, yymsp[-5].minor.yy153, yymsp[-1].minor.yy153); |
| 162376 | | - sqlite3Update(pParse,yymsp[-5].minor.yy153,yymsp[-2].minor.yy70,yymsp[0].minor.yy404,yymsp[-6].minor.yy376,0,0,0); |
| 162377 | | -} |
| 162378 | | - break; |
| 162379 | | - case 156: /* setlist ::= setlist COMMA nm EQ expr */ |
| 162380 | | -{ |
| 162381 | | - yymsp[-4].minor.yy70 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy70, yymsp[0].minor.yy404); |
| 162382 | | - sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy70, &yymsp[-2].minor.yy0, 1); |
| 162383 | | -} |
| 162384 | | - break; |
| 162385 | | - case 157: /* setlist ::= setlist COMMA LP idlist RP EQ expr */ |
| 162386 | | -{ |
| 162387 | | - yymsp[-6].minor.yy70 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy70, yymsp[-3].minor.yy436, yymsp[0].minor.yy404); |
| 162388 | | -} |
| 162389 | | - break; |
| 162390 | | - case 158: /* setlist ::= nm EQ expr */ |
| 162391 | | -{ |
| 162392 | | - yylhsminor.yy70 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy404); |
| 162393 | | - sqlite3ExprListSetName(pParse, yylhsminor.yy70, &yymsp[-2].minor.yy0, 1); |
| 162394 | | -} |
| 162395 | | - yymsp[-2].minor.yy70 = yylhsminor.yy70; |
| 162396 | | - break; |
| 162397 | | - case 159: /* setlist ::= LP idlist RP EQ expr */ |
| 162398 | | -{ |
| 162399 | | - yymsp[-4].minor.yy70 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy436, yymsp[0].minor.yy404); |
| 162400 | | -} |
| 162401 | | - break; |
| 162402 | | - case 160: /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ |
| 162403 | | -{ |
| 162404 | | - sqlite3Insert(pParse, yymsp[-3].minor.yy153, yymsp[-1].minor.yy81, yymsp[-2].minor.yy436, yymsp[-5].minor.yy376, yymsp[0].minor.yy190); |
| 162405 | | -} |
| 162406 | | - break; |
| 162407 | | - case 161: /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ |
| 162408 | | -{ |
| 162409 | | - sqlite3Insert(pParse, yymsp[-4].minor.yy153, 0, yymsp[-3].minor.yy436, yymsp[-6].minor.yy376, 0); |
| 162410 | | -} |
| 162411 | | - break; |
| 162412 | | - case 162: /* upsert ::= */ |
| 162413 | | -{ yymsp[1].minor.yy190 = 0; } |
| 162414 | | - break; |
| 162415 | | - case 163: /* upsert ::= RETURNING selcollist */ |
| 162416 | | -{ yymsp[-1].minor.yy190 = 0; sqlite3AddReturning(pParse,yymsp[0].minor.yy70); } |
| 162417 | | - break; |
| 162418 | | - case 164: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ |
| 162419 | | -{ yymsp[-11].minor.yy190 = sqlite3UpsertNew(pParse->db,yymsp[-8].minor.yy70,yymsp[-6].minor.yy404,yymsp[-2].minor.yy70,yymsp[-1].minor.yy404,yymsp[0].minor.yy190);} |
| 162420 | | - break; |
| 162421 | | - case 165: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ |
| 162422 | | -{ yymsp[-8].minor.yy190 = sqlite3UpsertNew(pParse->db,yymsp[-5].minor.yy70,yymsp[-3].minor.yy404,0,0,yymsp[0].minor.yy190); } |
| 162423 | | - break; |
| 162424 | | - case 166: /* upsert ::= ON CONFLICT DO NOTHING returning */ |
| 162425 | | -{ yymsp[-4].minor.yy190 = sqlite3UpsertNew(pParse->db,0,0,0,0,0); } |
| 162426 | | - break; |
| 162427 | | - case 167: /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ |
| 162428 | | -{ yymsp[-7].minor.yy190 = sqlite3UpsertNew(pParse->db,0,0,yymsp[-2].minor.yy70,yymsp[-1].minor.yy404,0);} |
| 162429 | | - break; |
| 162430 | | - case 168: /* returning ::= RETURNING selcollist */ |
| 162431 | | -{sqlite3AddReturning(pParse,yymsp[0].minor.yy70);} |
| 162432 | | - break; |
| 162433 | | - case 172: /* idlist_opt ::= LP idlist RP */ |
| 162434 | | -{yymsp[-2].minor.yy436 = yymsp[-1].minor.yy436;} |
| 162435 | | - break; |
| 162436 | | - case 173: /* idlist ::= idlist COMMA nm */ |
| 162437 | | -{yymsp[-2].minor.yy436 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy436,&yymsp[0].minor.yy0);} |
| 162438 | | - break; |
| 162439 | | - case 174: /* idlist ::= nm */ |
| 162440 | | -{yymsp[0].minor.yy436 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/} |
| 162441 | | - break; |
| 162442 | | - case 175: /* expr ::= LP expr RP */ |
| 162443 | | -{yymsp[-2].minor.yy404 = yymsp[-1].minor.yy404;} |
| 162444 | | - break; |
| 162445 | | - case 176: /* expr ::= ID|INDEXED */ |
| 162446 | | - case 177: /* expr ::= JOIN_KW */ yytestcase(yyruleno==177); |
| 162447 | | -{yymsp[0].minor.yy404=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/} |
| 162448 | | - break; |
| 162449 | | - case 178: /* expr ::= nm DOT nm */ |
| 162631 | + case 130: /* using_opt ::= USING LP idlist RP */ |
| 162632 | +{yymsp[-3].minor.yy240 = yymsp[-1].minor.yy240;} |
| 162633 | + break; |
| 162634 | + case 131: /* using_opt ::= */ |
| 162635 | + case 173: /* idlist_opt ::= */ yytestcase(yyruleno==173); |
| 162636 | +{yymsp[1].minor.yy240 = 0;} |
| 162637 | + break; |
| 162638 | + case 133: /* orderby_opt ::= ORDER BY sortlist */ |
| 162639 | + case 143: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==143); |
| 162640 | +{yymsp[-2].minor.yy562 = yymsp[0].minor.yy562;} |
| 162641 | + break; |
| 162642 | + case 134: /* sortlist ::= sortlist COMMA expr sortorder nulls */ |
| 162643 | +{ |
| 162644 | + yymsp[-4].minor.yy562 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy562,yymsp[-2].minor.yy626); |
| 162645 | + sqlite3ExprListSetSortOrder(yymsp[-4].minor.yy562,yymsp[-1].minor.yy64,yymsp[0].minor.yy64); |
| 162646 | +} |
| 162647 | + break; |
| 162648 | + case 135: /* sortlist ::= expr sortorder nulls */ |
| 162649 | +{ |
| 162650 | + yymsp[-2].minor.yy562 = sqlite3ExprListAppend(pParse,0,yymsp[-2].minor.yy626); /*A-overwrites-Y*/ |
| 162651 | + sqlite3ExprListSetSortOrder(yymsp[-2].minor.yy562,yymsp[-1].minor.yy64,yymsp[0].minor.yy64); |
| 162652 | +} |
| 162653 | + break; |
| 162654 | + case 136: /* sortorder ::= ASC */ |
| 162655 | +{yymsp[0].minor.yy64 = SQLITE_SO_ASC;} |
| 162656 | + break; |
| 162657 | + case 137: /* sortorder ::= DESC */ |
| 162658 | +{yymsp[0].minor.yy64 = SQLITE_SO_DESC;} |
| 162659 | + break; |
| 162660 | + case 138: /* sortorder ::= */ |
| 162661 | + case 141: /* nulls ::= */ yytestcase(yyruleno==141); |
| 162662 | +{yymsp[1].minor.yy64 = SQLITE_SO_UNDEFINED;} |
| 162663 | + break; |
| 162664 | + case 139: /* nulls ::= NULLS FIRST */ |
| 162665 | +{yymsp[-1].minor.yy64 = SQLITE_SO_ASC;} |
| 162666 | + break; |
| 162667 | + case 140: /* nulls ::= NULLS LAST */ |
| 162668 | +{yymsp[-1].minor.yy64 = SQLITE_SO_DESC;} |
| 162669 | + break; |
| 162670 | + case 147: /* limit_opt ::= LIMIT expr */ |
| 162671 | +{yymsp[-1].minor.yy626 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy626,0);} |
| 162672 | + break; |
| 162673 | + case 148: /* limit_opt ::= LIMIT expr OFFSET expr */ |
| 162674 | +{yymsp[-3].minor.yy626 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy626,yymsp[0].minor.yy626);} |
| 162675 | + break; |
| 162676 | + case 149: /* limit_opt ::= LIMIT expr COMMA expr */ |
| 162677 | +{yymsp[-3].minor.yy626 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy626,yymsp[-2].minor.yy626);} |
| 162678 | + break; |
| 162679 | + case 150: /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ |
| 162680 | +{ |
| 162681 | + sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy607, &yymsp[-1].minor.yy0); |
| 162682 | + sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy607,yymsp[0].minor.yy626,0,0); |
| 162683 | +} |
| 162684 | + break; |
| 162685 | + case 155: /* where_opt_ret ::= RETURNING selcollist */ |
| 162686 | +{sqlite3AddReturning(pParse,yymsp[0].minor.yy562); yymsp[-1].minor.yy626 = 0;} |
| 162687 | + break; |
| 162688 | + case 156: /* where_opt_ret ::= WHERE expr RETURNING selcollist */ |
| 162689 | +{sqlite3AddReturning(pParse,yymsp[0].minor.yy562); yymsp[-3].minor.yy626 = yymsp[-2].minor.yy626;} |
| 162690 | + break; |
| 162691 | + case 157: /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ |
| 162692 | +{ |
| 162693 | + sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy607, &yymsp[-4].minor.yy0); |
| 162694 | + sqlite3ExprListCheckLength(pParse,yymsp[-2].minor.yy562,"set list"); |
| 162695 | + yymsp[-5].minor.yy607 = sqlite3SrcListAppendList(pParse, yymsp[-5].minor.yy607, yymsp[-1].minor.yy607); |
| 162696 | + sqlite3Update(pParse,yymsp[-5].minor.yy607,yymsp[-2].minor.yy562,yymsp[0].minor.yy626,yymsp[-6].minor.yy64,0,0,0); |
| 162697 | +} |
| 162698 | + break; |
| 162699 | + case 158: /* setlist ::= setlist COMMA nm EQ expr */ |
| 162700 | +{ |
| 162701 | + yymsp[-4].minor.yy562 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy562, yymsp[0].minor.yy626); |
| 162702 | + sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy562, &yymsp[-2].minor.yy0, 1); |
| 162703 | +} |
| 162704 | + break; |
| 162705 | + case 159: /* setlist ::= setlist COMMA LP idlist RP EQ expr */ |
| 162706 | +{ |
| 162707 | + yymsp[-6].minor.yy562 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy562, yymsp[-3].minor.yy240, yymsp[0].minor.yy626); |
| 162708 | +} |
| 162709 | + break; |
| 162710 | + case 160: /* setlist ::= nm EQ expr */ |
| 162711 | +{ |
| 162712 | + yylhsminor.yy562 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy626); |
| 162713 | + sqlite3ExprListSetName(pParse, yylhsminor.yy562, &yymsp[-2].minor.yy0, 1); |
| 162714 | +} |
| 162715 | + yymsp[-2].minor.yy562 = yylhsminor.yy562; |
| 162716 | + break; |
| 162717 | + case 161: /* setlist ::= LP idlist RP EQ expr */ |
| 162718 | +{ |
| 162719 | + yymsp[-4].minor.yy562 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy240, yymsp[0].minor.yy626); |
| 162720 | +} |
| 162721 | + break; |
| 162722 | + case 162: /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ |
| 162723 | +{ |
| 162724 | + sqlite3Insert(pParse, yymsp[-3].minor.yy607, yymsp[-1].minor.yy303, yymsp[-2].minor.yy240, yymsp[-5].minor.yy64, yymsp[0].minor.yy138); |
| 162725 | +} |
| 162726 | + break; |
| 162727 | + case 163: /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ |
| 162728 | +{ |
| 162729 | + sqlite3Insert(pParse, yymsp[-4].minor.yy607, 0, yymsp[-3].minor.yy240, yymsp[-6].minor.yy64, 0); |
| 162730 | +} |
| 162731 | + break; |
| 162732 | + case 164: /* upsert ::= */ |
| 162733 | +{ yymsp[1].minor.yy138 = 0; } |
| 162734 | + break; |
| 162735 | + case 165: /* upsert ::= RETURNING selcollist */ |
| 162736 | +{ yymsp[-1].minor.yy138 = 0; sqlite3AddReturning(pParse,yymsp[0].minor.yy562); } |
| 162737 | + break; |
| 162738 | + case 166: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ |
| 162739 | +{ 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);} |
| 162740 | + break; |
| 162741 | + case 167: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ |
| 162742 | +{ yymsp[-8].minor.yy138 = sqlite3UpsertNew(pParse->db,yymsp[-5].minor.yy562,yymsp[-3].minor.yy626,0,0,yymsp[0].minor.yy138); } |
| 162743 | + break; |
| 162744 | + case 168: /* upsert ::= ON CONFLICT DO NOTHING returning */ |
| 162745 | +{ yymsp[-4].minor.yy138 = sqlite3UpsertNew(pParse->db,0,0,0,0,0); } |
| 162746 | + break; |
| 162747 | + case 169: /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ |
| 162748 | +{ yymsp[-7].minor.yy138 = sqlite3UpsertNew(pParse->db,0,0,yymsp[-2].minor.yy562,yymsp[-1].minor.yy626,0);} |
| 162749 | + break; |
| 162750 | + case 170: /* returning ::= RETURNING selcollist */ |
| 162751 | +{sqlite3AddReturning(pParse,yymsp[0].minor.yy562);} |
| 162752 | + break; |
| 162753 | + case 174: /* idlist_opt ::= LP idlist RP */ |
| 162754 | +{yymsp[-2].minor.yy240 = yymsp[-1].minor.yy240;} |
| 162755 | + break; |
| 162756 | + case 175: /* idlist ::= idlist COMMA nm */ |
| 162757 | +{yymsp[-2].minor.yy240 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy240,&yymsp[0].minor.yy0);} |
| 162758 | + break; |
| 162759 | + case 176: /* idlist ::= nm */ |
| 162760 | +{yymsp[0].minor.yy240 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/} |
| 162761 | + break; |
| 162762 | + case 177: /* expr ::= LP expr RP */ |
| 162763 | +{yymsp[-2].minor.yy626 = yymsp[-1].minor.yy626;} |
| 162764 | + break; |
| 162765 | + case 178: /* expr ::= ID|INDEXED */ |
| 162766 | + case 179: /* expr ::= JOIN_KW */ yytestcase(yyruleno==179); |
| 162767 | +{yymsp[0].minor.yy626=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/} |
| 162768 | + break; |
| 162769 | + case 180: /* expr ::= nm DOT nm */ |
| 162450 | 162770 | { |
| 162451 | 162771 | Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1); |
| 162452 | 162772 | Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1); |
| 162453 | 162773 | if( IN_RENAME_OBJECT ){ |
| 162454 | 162774 | sqlite3RenameTokenMap(pParse, (void*)temp2, &yymsp[0].minor.yy0); |
| 162455 | 162775 | sqlite3RenameTokenMap(pParse, (void*)temp1, &yymsp[-2].minor.yy0); |
| 162456 | 162776 | } |
| 162457 | | - yylhsminor.yy404 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2); |
| 162777 | + yylhsminor.yy626 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2); |
| 162458 | 162778 | } |
| 162459 | | - yymsp[-2].minor.yy404 = yylhsminor.yy404; |
| 162779 | + yymsp[-2].minor.yy626 = yylhsminor.yy626; |
| 162460 | 162780 | break; |
| 162461 | | - case 179: /* expr ::= nm DOT nm DOT nm */ |
| 162781 | + case 181: /* expr ::= nm DOT nm DOT nm */ |
| 162462 | 162782 | { |
| 162463 | 162783 | Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-4].minor.yy0, 1); |
| 162464 | 162784 | Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1); |
| 162465 | 162785 | Expr *temp3 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1); |
| 162466 | 162786 | Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3); |
| 162467 | 162787 | if( IN_RENAME_OBJECT ){ |
| 162468 | 162788 | sqlite3RenameTokenMap(pParse, (void*)temp3, &yymsp[0].minor.yy0); |
| 162469 | 162789 | sqlite3RenameTokenMap(pParse, (void*)temp2, &yymsp[-2].minor.yy0); |
| 162470 | 162790 | } |
| 162471 | | - yylhsminor.yy404 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4); |
| 162472 | | -} |
| 162473 | | - yymsp[-4].minor.yy404 = yylhsminor.yy404; |
| 162474 | | - break; |
| 162475 | | - case 180: /* term ::= NULL|FLOAT|BLOB */ |
| 162476 | | - case 181: /* term ::= STRING */ yytestcase(yyruleno==181); |
| 162477 | | -{yymsp[0].minor.yy404=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/} |
| 162478 | | - break; |
| 162479 | | - case 182: /* term ::= INTEGER */ |
| 162480 | | -{ |
| 162481 | | - yylhsminor.yy404 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1); |
| 162482 | | -} |
| 162483 | | - yymsp[0].minor.yy404 = yylhsminor.yy404; |
| 162484 | | - break; |
| 162485 | | - case 183: /* expr ::= VARIABLE */ |
| 162791 | + yylhsminor.yy626 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4); |
| 162792 | +} |
| 162793 | + yymsp[-4].minor.yy626 = yylhsminor.yy626; |
| 162794 | + break; |
| 162795 | + case 182: /* term ::= NULL|FLOAT|BLOB */ |
| 162796 | + case 183: /* term ::= STRING */ yytestcase(yyruleno==183); |
| 162797 | +{yymsp[0].minor.yy626=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/} |
| 162798 | + break; |
| 162799 | + case 184: /* term ::= INTEGER */ |
| 162800 | +{ |
| 162801 | + yylhsminor.yy626 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1); |
| 162802 | +} |
| 162803 | + yymsp[0].minor.yy626 = yylhsminor.yy626; |
| 162804 | + break; |
| 162805 | + case 185: /* expr ::= VARIABLE */ |
| 162486 | 162806 | { |
| 162487 | 162807 | if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){ |
| 162488 | 162808 | u32 n = yymsp[0].minor.yy0.n; |
| 162489 | | - yymsp[0].minor.yy404 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0); |
| 162490 | | - sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy404, n); |
| 162809 | + yymsp[0].minor.yy626 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0); |
| 162810 | + sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy626, n); |
| 162491 | 162811 | }else{ |
| 162492 | 162812 | /* When doing a nested parse, one can include terms in an expression |
| 162493 | 162813 | ** that look like this: #1 #2 ... These terms refer to registers |
| 162494 | 162814 | ** in the virtual machine. #N is the N-th register. */ |
| 162495 | 162815 | Token t = yymsp[0].minor.yy0; /*A-overwrites-X*/ |
| 162496 | 162816 | assert( t.n>=2 ); |
| 162497 | 162817 | if( pParse->nested==0 ){ |
| 162498 | 162818 | sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &t); |
| 162499 | | - yymsp[0].minor.yy404 = 0; |
| 162500 | | - }else{ |
| 162501 | | - yymsp[0].minor.yy404 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0); |
| 162502 | | - if( yymsp[0].minor.yy404 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy404->iTable); |
| 162503 | | - } |
| 162504 | | - } |
| 162505 | | -} |
| 162506 | | - break; |
| 162507 | | - case 184: /* expr ::= expr COLLATE ID|STRING */ |
| 162508 | | -{ |
| 162509 | | - yymsp[-2].minor.yy404 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy404, &yymsp[0].minor.yy0, 1); |
| 162510 | | -} |
| 162511 | | - break; |
| 162512 | | - case 185: /* expr ::= CAST LP expr AS typetoken RP */ |
| 162513 | | -{ |
| 162514 | | - yymsp[-5].minor.yy404 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1); |
| 162515 | | - sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy404, yymsp[-3].minor.yy404, 0); |
| 162516 | | -} |
| 162517 | | - break; |
| 162518 | | - case 186: /* expr ::= ID|INDEXED LP distinct exprlist RP */ |
| 162519 | | -{ |
| 162520 | | - yylhsminor.yy404 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy70, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy376); |
| 162521 | | -} |
| 162522 | | - yymsp[-4].minor.yy404 = yylhsminor.yy404; |
| 162523 | | - break; |
| 162524 | | - case 187: /* expr ::= ID|INDEXED LP STAR RP */ |
| 162525 | | -{ |
| 162526 | | - yylhsminor.yy404 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0); |
| 162527 | | -} |
| 162528 | | - yymsp[-3].minor.yy404 = yylhsminor.yy404; |
| 162529 | | - break; |
| 162530 | | - case 188: /* expr ::= ID|INDEXED LP distinct exprlist RP filter_over */ |
| 162531 | | -{ |
| 162532 | | - yylhsminor.yy404 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy70, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy376); |
| 162533 | | - sqlite3WindowAttach(pParse, yylhsminor.yy404, yymsp[0].minor.yy49); |
| 162534 | | -} |
| 162535 | | - yymsp[-5].minor.yy404 = yylhsminor.yy404; |
| 162536 | | - break; |
| 162537 | | - case 189: /* expr ::= ID|INDEXED LP STAR RP filter_over */ |
| 162538 | | -{ |
| 162539 | | - yylhsminor.yy404 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0); |
| 162540 | | - sqlite3WindowAttach(pParse, yylhsminor.yy404, yymsp[0].minor.yy49); |
| 162541 | | -} |
| 162542 | | - yymsp[-4].minor.yy404 = yylhsminor.yy404; |
| 162543 | | - break; |
| 162544 | | - case 190: /* term ::= CTIME_KW */ |
| 162545 | | -{ |
| 162546 | | - yylhsminor.yy404 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0); |
| 162547 | | -} |
| 162548 | | - yymsp[0].minor.yy404 = yylhsminor.yy404; |
| 162549 | | - break; |
| 162550 | | - case 191: /* expr ::= LP nexprlist COMMA expr RP */ |
| 162551 | | -{ |
| 162552 | | - ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy70, yymsp[-1].minor.yy404); |
| 162553 | | - yymsp[-4].minor.yy404 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0); |
| 162554 | | - if( yymsp[-4].minor.yy404 ){ |
| 162555 | | - yymsp[-4].minor.yy404->x.pList = pList; |
| 162819 | + yymsp[0].minor.yy626 = 0; |
| 162820 | + }else{ |
| 162821 | + yymsp[0].minor.yy626 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0); |
| 162822 | + if( yymsp[0].minor.yy626 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy626->iTable); |
| 162823 | + } |
| 162824 | + } |
| 162825 | +} |
| 162826 | + break; |
| 162827 | + case 186: /* expr ::= expr COLLATE ID|STRING */ |
| 162828 | +{ |
| 162829 | + yymsp[-2].minor.yy626 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy626, &yymsp[0].minor.yy0, 1); |
| 162830 | +} |
| 162831 | + break; |
| 162832 | + case 187: /* expr ::= CAST LP expr AS typetoken RP */ |
| 162833 | +{ |
| 162834 | + yymsp[-5].minor.yy626 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1); |
| 162835 | + sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy626, yymsp[-3].minor.yy626, 0); |
| 162836 | +} |
| 162837 | + break; |
| 162838 | + case 188: /* expr ::= ID|INDEXED LP distinct exprlist RP */ |
| 162839 | +{ |
| 162840 | + yylhsminor.yy626 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy562, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy64); |
| 162841 | +} |
| 162842 | + yymsp[-4].minor.yy626 = yylhsminor.yy626; |
| 162843 | + break; |
| 162844 | + case 189: /* expr ::= ID|INDEXED LP STAR RP */ |
| 162845 | +{ |
| 162846 | + yylhsminor.yy626 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0); |
| 162847 | +} |
| 162848 | + yymsp[-3].minor.yy626 = yylhsminor.yy626; |
| 162849 | + break; |
| 162850 | + case 190: /* expr ::= ID|INDEXED LP distinct exprlist RP filter_over */ |
| 162851 | +{ |
| 162852 | + yylhsminor.yy626 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy562, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy64); |
| 162853 | + sqlite3WindowAttach(pParse, yylhsminor.yy626, yymsp[0].minor.yy375); |
| 162854 | +} |
| 162855 | + yymsp[-5].minor.yy626 = yylhsminor.yy626; |
| 162856 | + break; |
| 162857 | + case 191: /* expr ::= ID|INDEXED LP STAR RP filter_over */ |
| 162858 | +{ |
| 162859 | + yylhsminor.yy626 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0); |
| 162860 | + sqlite3WindowAttach(pParse, yylhsminor.yy626, yymsp[0].minor.yy375); |
| 162861 | +} |
| 162862 | + yymsp[-4].minor.yy626 = yylhsminor.yy626; |
| 162863 | + break; |
| 162864 | + case 192: /* term ::= CTIME_KW */ |
| 162865 | +{ |
| 162866 | + yylhsminor.yy626 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0); |
| 162867 | +} |
| 162868 | + yymsp[0].minor.yy626 = yylhsminor.yy626; |
| 162869 | + break; |
| 162870 | + case 193: /* expr ::= LP nexprlist COMMA expr RP */ |
| 162871 | +{ |
| 162872 | + ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy562, yymsp[-1].minor.yy626); |
| 162873 | + yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0); |
| 162874 | + if( yymsp[-4].minor.yy626 ){ |
| 162875 | + yymsp[-4].minor.yy626->x.pList = pList; |
| 162556 | 162876 | if( ALWAYS(pList->nExpr) ){ |
| 162557 | | - yymsp[-4].minor.yy404->flags |= pList->a[0].pExpr->flags & EP_Propagate; |
| 162877 | + yymsp[-4].minor.yy626->flags |= pList->a[0].pExpr->flags & EP_Propagate; |
| 162558 | 162878 | } |
| 162559 | 162879 | }else{ |
| 162560 | 162880 | sqlite3ExprListDelete(pParse->db, pList); |
| 162561 | 162881 | } |
| 162562 | 162882 | } |
| 162563 | 162883 | break; |
| 162564 | | - case 192: /* expr ::= expr AND expr */ |
| 162565 | | -{yymsp[-2].minor.yy404=sqlite3ExprAnd(pParse,yymsp[-2].minor.yy404,yymsp[0].minor.yy404);} |
| 162566 | | - break; |
| 162567 | | - case 193: /* expr ::= expr OR expr */ |
| 162568 | | - case 194: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==194); |
| 162569 | | - case 195: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==195); |
| 162570 | | - case 196: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==196); |
| 162571 | | - case 197: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==197); |
| 162572 | | - case 198: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==198); |
| 162573 | | - case 199: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==199); |
| 162574 | | -{yymsp[-2].minor.yy404=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy404,yymsp[0].minor.yy404);} |
| 162575 | | - break; |
| 162576 | | - case 200: /* likeop ::= NOT LIKE_KW|MATCH */ |
| 162884 | + case 194: /* expr ::= expr AND expr */ |
| 162885 | +{yymsp[-2].minor.yy626=sqlite3ExprAnd(pParse,yymsp[-2].minor.yy626,yymsp[0].minor.yy626);} |
| 162886 | + break; |
| 162887 | + case 195: /* expr ::= expr OR expr */ |
| 162888 | + case 196: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==196); |
| 162889 | + case 197: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==197); |
| 162890 | + case 198: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==198); |
| 162891 | + case 199: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==199); |
| 162892 | + case 200: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==200); |
| 162893 | + case 201: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==201); |
| 162894 | +{yymsp[-2].minor.yy626=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy626,yymsp[0].minor.yy626);} |
| 162895 | + break; |
| 162896 | + case 202: /* likeop ::= NOT LIKE_KW|MATCH */ |
| 162577 | 162897 | {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/} |
| 162578 | 162898 | break; |
| 162579 | | - case 201: /* expr ::= expr likeop expr */ |
| 162899 | + case 203: /* expr ::= expr likeop expr */ |
| 162580 | 162900 | { |
| 162581 | 162901 | ExprList *pList; |
| 162582 | 162902 | int bNot = yymsp[-1].minor.yy0.n & 0x80000000; |
| 162583 | 162903 | yymsp[-1].minor.yy0.n &= 0x7fffffff; |
| 162584 | | - pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy404); |
| 162585 | | - pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy404); |
| 162586 | | - yymsp[-2].minor.yy404 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0); |
| 162587 | | - if( bNot ) yymsp[-2].minor.yy404 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy404, 0); |
| 162588 | | - if( yymsp[-2].minor.yy404 ) yymsp[-2].minor.yy404->flags |= EP_InfixFunc; |
| 162904 | + pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy626); |
| 162905 | + pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy626); |
| 162906 | + yymsp[-2].minor.yy626 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0); |
| 162907 | + if( bNot ) yymsp[-2].minor.yy626 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy626, 0); |
| 162908 | + if( yymsp[-2].minor.yy626 ) yymsp[-2].minor.yy626->flags |= EP_InfixFunc; |
| 162589 | 162909 | } |
| 162590 | 162910 | break; |
| 162591 | | - case 202: /* expr ::= expr likeop expr ESCAPE expr */ |
| 162911 | + case 204: /* expr ::= expr likeop expr ESCAPE expr */ |
| 162592 | 162912 | { |
| 162593 | 162913 | ExprList *pList; |
| 162594 | 162914 | int bNot = yymsp[-3].minor.yy0.n & 0x80000000; |
| 162595 | 162915 | yymsp[-3].minor.yy0.n &= 0x7fffffff; |
| 162596 | | - pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy404); |
| 162597 | | - pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy404); |
| 162598 | | - pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy404); |
| 162599 | | - yymsp[-4].minor.yy404 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0); |
| 162600 | | - if( bNot ) yymsp[-4].minor.yy404 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy404, 0); |
| 162601 | | - if( yymsp[-4].minor.yy404 ) yymsp[-4].minor.yy404->flags |= EP_InfixFunc; |
| 162602 | | -} |
| 162603 | | - break; |
| 162604 | | - case 203: /* expr ::= expr ISNULL|NOTNULL */ |
| 162605 | | -{yymsp[-1].minor.yy404 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy404,0);} |
| 162606 | | - break; |
| 162607 | | - case 204: /* expr ::= expr NOT NULL */ |
| 162608 | | -{yymsp[-2].minor.yy404 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy404,0);} |
| 162609 | | - break; |
| 162610 | | - case 205: /* expr ::= expr IS expr */ |
| 162611 | | -{ |
| 162612 | | - yymsp[-2].minor.yy404 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy404,yymsp[0].minor.yy404); |
| 162613 | | - binaryToUnaryIfNull(pParse, yymsp[0].minor.yy404, yymsp[-2].minor.yy404, TK_ISNULL); |
| 162614 | | -} |
| 162615 | | - break; |
| 162616 | | - case 206: /* expr ::= expr IS NOT expr */ |
| 162617 | | -{ |
| 162618 | | - yymsp[-3].minor.yy404 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy404,yymsp[0].minor.yy404); |
| 162619 | | - binaryToUnaryIfNull(pParse, yymsp[0].minor.yy404, yymsp[-3].minor.yy404, TK_NOTNULL); |
| 162620 | | -} |
| 162621 | | - break; |
| 162622 | | - case 207: /* expr ::= NOT expr */ |
| 162623 | | - case 208: /* expr ::= BITNOT expr */ yytestcase(yyruleno==208); |
| 162624 | | -{yymsp[-1].minor.yy404 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy404, 0);/*A-overwrites-B*/} |
| 162625 | | - break; |
| 162626 | | - case 209: /* expr ::= PLUS|MINUS expr */ |
| 162627 | | -{ |
| 162628 | | - yymsp[-1].minor.yy404 = sqlite3PExpr(pParse, yymsp[-1].major==TK_PLUS ? TK_UPLUS : TK_UMINUS, yymsp[0].minor.yy404, 0); |
| 162916 | + pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy626); |
| 162917 | + pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy626); |
| 162918 | + pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy626); |
| 162919 | + yymsp[-4].minor.yy626 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0); |
| 162920 | + if( bNot ) yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy626, 0); |
| 162921 | + if( yymsp[-4].minor.yy626 ) yymsp[-4].minor.yy626->flags |= EP_InfixFunc; |
| 162922 | +} |
| 162923 | + break; |
| 162924 | + case 205: /* expr ::= expr ISNULL|NOTNULL */ |
| 162925 | +{yymsp[-1].minor.yy626 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy626,0);} |
| 162926 | + break; |
| 162927 | + case 206: /* expr ::= expr NOT NULL */ |
| 162928 | +{yymsp[-2].minor.yy626 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy626,0);} |
| 162929 | + break; |
| 162930 | + case 207: /* expr ::= expr IS expr */ |
| 162931 | +{ |
| 162932 | + yymsp[-2].minor.yy626 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy626,yymsp[0].minor.yy626); |
| 162933 | + binaryToUnaryIfNull(pParse, yymsp[0].minor.yy626, yymsp[-2].minor.yy626, TK_ISNULL); |
| 162934 | +} |
| 162935 | + break; |
| 162936 | + case 208: /* expr ::= expr IS NOT expr */ |
| 162937 | +{ |
| 162938 | + yymsp[-3].minor.yy626 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy626,yymsp[0].minor.yy626); |
| 162939 | + binaryToUnaryIfNull(pParse, yymsp[0].minor.yy626, yymsp[-3].minor.yy626, TK_NOTNULL); |
| 162940 | +} |
| 162941 | + break; |
| 162942 | + case 209: /* expr ::= NOT expr */ |
| 162943 | + case 210: /* expr ::= BITNOT expr */ yytestcase(yyruleno==210); |
| 162944 | +{yymsp[-1].minor.yy626 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy626, 0);/*A-overwrites-B*/} |
| 162945 | + break; |
| 162946 | + case 211: /* expr ::= PLUS|MINUS expr */ |
| 162947 | +{ |
| 162948 | + yymsp[-1].minor.yy626 = sqlite3PExpr(pParse, yymsp[-1].major==TK_PLUS ? TK_UPLUS : TK_UMINUS, yymsp[0].minor.yy626, 0); |
| 162629 | 162949 | /*A-overwrites-B*/ |
| 162630 | 162950 | } |
| 162631 | 162951 | break; |
| 162632 | | - case 210: /* between_op ::= BETWEEN */ |
| 162633 | | - case 213: /* in_op ::= IN */ yytestcase(yyruleno==213); |
| 162634 | | -{yymsp[0].minor.yy376 = 0;} |
| 162952 | + case 212: /* between_op ::= BETWEEN */ |
| 162953 | + case 215: /* in_op ::= IN */ yytestcase(yyruleno==215); |
| 162954 | +{yymsp[0].minor.yy64 = 0;} |
| 162635 | 162955 | break; |
| 162636 | | - case 212: /* expr ::= expr between_op expr AND expr */ |
| 162956 | + case 214: /* expr ::= expr between_op expr AND expr */ |
| 162637 | 162957 | { |
| 162638 | | - ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy404); |
| 162639 | | - pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy404); |
| 162640 | | - yymsp[-4].minor.yy404 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy404, 0); |
| 162641 | | - if( yymsp[-4].minor.yy404 ){ |
| 162642 | | - yymsp[-4].minor.yy404->x.pList = pList; |
| 162958 | + ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy626); |
| 162959 | + pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy626); |
| 162960 | + yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy626, 0); |
| 162961 | + if( yymsp[-4].minor.yy626 ){ |
| 162962 | + yymsp[-4].minor.yy626->x.pList = pList; |
| 162643 | 162963 | }else{ |
| 162644 | 162964 | sqlite3ExprListDelete(pParse->db, pList); |
| 162645 | 162965 | } |
| 162646 | | - if( yymsp[-3].minor.yy376 ) yymsp[-4].minor.yy404 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy404, 0); |
| 162966 | + if( yymsp[-3].minor.yy64 ) yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy626, 0); |
| 162647 | 162967 | } |
| 162648 | 162968 | break; |
| 162649 | | - case 215: /* expr ::= expr in_op LP exprlist RP */ |
| 162969 | + case 217: /* expr ::= expr in_op LP exprlist RP */ |
| 162650 | 162970 | { |
| 162651 | | - if( yymsp[-1].minor.yy70==0 ){ |
| 162971 | + if( yymsp[-1].minor.yy562==0 ){ |
| 162652 | 162972 | /* Expressions of the form |
| 162653 | 162973 | ** |
| 162654 | 162974 | ** expr1 IN () |
| 162655 | 162975 | ** expr1 NOT IN () |
| 162656 | 162976 | ** |
| 162657 | 162977 | ** simplify to constants 0 (false) and 1 (true), respectively, |
| 162658 | 162978 | ** regardless of the value of expr1. |
| 162659 | 162979 | */ |
| 162660 | | - sqlite3ExprUnmapAndDelete(pParse, yymsp[-4].minor.yy404); |
| 162661 | | - yymsp[-4].minor.yy404 = sqlite3Expr(pParse->db, TK_INTEGER, yymsp[-3].minor.yy376 ? "1" : "0"); |
| 162980 | + sqlite3ExprUnmapAndDelete(pParse, yymsp[-4].minor.yy626); |
| 162981 | + yymsp[-4].minor.yy626 = sqlite3Expr(pParse->db, TK_INTEGER, yymsp[-3].minor.yy64 ? "1" : "0"); |
| 162662 | 162982 | }else{ |
| 162663 | | - Expr *pRHS = yymsp[-1].minor.yy70->a[0].pExpr; |
| 162664 | | - if( yymsp[-1].minor.yy70->nExpr==1 && sqlite3ExprIsConstant(pRHS) && yymsp[-4].minor.yy404->op!=TK_VECTOR ){ |
| 162665 | | - yymsp[-1].minor.yy70->a[0].pExpr = 0; |
| 162666 | | - sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy70); |
| 162983 | + Expr *pRHS = yymsp[-1].minor.yy562->a[0].pExpr; |
| 162984 | + if( yymsp[-1].minor.yy562->nExpr==1 && sqlite3ExprIsConstant(pRHS) && yymsp[-4].minor.yy626->op!=TK_VECTOR ){ |
| 162985 | + yymsp[-1].minor.yy562->a[0].pExpr = 0; |
| 162986 | + sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy562); |
| 162667 | 162987 | pRHS = sqlite3PExpr(pParse, TK_UPLUS, pRHS, 0); |
| 162668 | | - yymsp[-4].minor.yy404 = sqlite3PExpr(pParse, TK_EQ, yymsp[-4].minor.yy404, pRHS); |
| 162988 | + yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_EQ, yymsp[-4].minor.yy626, pRHS); |
| 162669 | 162989 | }else{ |
| 162670 | | - yymsp[-4].minor.yy404 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy404, 0); |
| 162671 | | - if( yymsp[-4].minor.yy404==0 ){ |
| 162672 | | - sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy70); |
| 162673 | | - }else if( yymsp[-4].minor.yy404->pLeft->op==TK_VECTOR ){ |
| 162674 | | - int nExpr = yymsp[-4].minor.yy404->pLeft->x.pList->nExpr; |
| 162675 | | - Select *pSelectRHS = sqlite3ExprListToValues(pParse, nExpr, yymsp[-1].minor.yy70); |
| 162990 | + yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy626, 0); |
| 162991 | + if( yymsp[-4].minor.yy626==0 ){ |
| 162992 | + sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy562); |
| 162993 | + }else if( yymsp[-4].minor.yy626->pLeft->op==TK_VECTOR ){ |
| 162994 | + int nExpr = yymsp[-4].minor.yy626->pLeft->x.pList->nExpr; |
| 162995 | + Select *pSelectRHS = sqlite3ExprListToValues(pParse, nExpr, yymsp[-1].minor.yy562); |
| 162676 | 162996 | if( pSelectRHS ){ |
| 162677 | 162997 | parserDoubleLinkSelect(pParse, pSelectRHS); |
| 162678 | | - sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy404, pSelectRHS); |
| 162679 | | - } |
| 162680 | | - }else{ |
| 162681 | | - yymsp[-4].minor.yy404->x.pList = yymsp[-1].minor.yy70; |
| 162682 | | - sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy404); |
| 162683 | | - } |
| 162684 | | - } |
| 162685 | | - if( yymsp[-3].minor.yy376 ) yymsp[-4].minor.yy404 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy404, 0); |
| 162686 | | - } |
| 162687 | | - } |
| 162688 | | - break; |
| 162689 | | - case 216: /* expr ::= LP select RP */ |
| 162690 | | -{ |
| 162691 | | - yymsp[-2].minor.yy404 = sqlite3PExpr(pParse, TK_SELECT, 0, 0); |
| 162692 | | - sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy404, yymsp[-1].minor.yy81); |
| 162693 | | - } |
| 162694 | | - break; |
| 162695 | | - case 217: /* expr ::= expr in_op LP select RP */ |
| 162696 | | -{ |
| 162697 | | - yymsp[-4].minor.yy404 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy404, 0); |
| 162698 | | - sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy404, yymsp[-1].minor.yy81); |
| 162699 | | - if( yymsp[-3].minor.yy376 ) yymsp[-4].minor.yy404 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy404, 0); |
| 162700 | | - } |
| 162701 | | - break; |
| 162702 | | - case 218: /* expr ::= expr in_op nm dbnm paren_exprlist */ |
| 162998 | + sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy626, pSelectRHS); |
| 162999 | + } |
| 163000 | + }else{ |
| 163001 | + yymsp[-4].minor.yy626->x.pList = yymsp[-1].minor.yy562; |
| 163002 | + sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy626); |
| 163003 | + } |
| 163004 | + } |
| 163005 | + if( yymsp[-3].minor.yy64 ) yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy626, 0); |
| 163006 | + } |
| 163007 | + } |
| 163008 | + break; |
| 163009 | + case 218: /* expr ::= LP select RP */ |
| 163010 | +{ |
| 163011 | + yymsp[-2].minor.yy626 = sqlite3PExpr(pParse, TK_SELECT, 0, 0); |
| 163012 | + sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy626, yymsp[-1].minor.yy303); |
| 163013 | + } |
| 163014 | + break; |
| 163015 | + case 219: /* expr ::= expr in_op LP select RP */ |
| 163016 | +{ |
| 163017 | + yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy626, 0); |
| 163018 | + sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy626, yymsp[-1].minor.yy303); |
| 163019 | + if( yymsp[-3].minor.yy64 ) yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy626, 0); |
| 163020 | + } |
| 163021 | + break; |
| 163022 | + case 220: /* expr ::= expr in_op nm dbnm paren_exprlist */ |
| 162703 | 163023 | { |
| 162704 | 163024 | SrcList *pSrc = sqlite3SrcListAppend(pParse, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); |
| 162705 | 163025 | Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0); |
| 162706 | | - if( yymsp[0].minor.yy70 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy70); |
| 162707 | | - yymsp[-4].minor.yy404 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy404, 0); |
| 162708 | | - sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy404, pSelect); |
| 162709 | | - if( yymsp[-3].minor.yy376 ) yymsp[-4].minor.yy404 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy404, 0); |
| 163026 | + if( yymsp[0].minor.yy562 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy562); |
| 163027 | + yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy626, 0); |
| 163028 | + sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy626, pSelect); |
| 163029 | + if( yymsp[-3].minor.yy64 ) yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy626, 0); |
| 162710 | 163030 | } |
| 162711 | 163031 | break; |
| 162712 | | - case 219: /* expr ::= EXISTS LP select RP */ |
| 163032 | + case 221: /* expr ::= EXISTS LP select RP */ |
| 162713 | 163033 | { |
| 162714 | 163034 | Expr *p; |
| 162715 | | - p = yymsp[-3].minor.yy404 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0); |
| 162716 | | - sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy81); |
| 162717 | | - } |
| 162718 | | - break; |
| 162719 | | - case 220: /* expr ::= CASE case_operand case_exprlist case_else END */ |
| 162720 | | -{ |
| 162721 | | - yymsp[-4].minor.yy404 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy404, 0); |
| 162722 | | - if( yymsp[-4].minor.yy404 ){ |
| 162723 | | - yymsp[-4].minor.yy404->x.pList = yymsp[-1].minor.yy404 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy70,yymsp[-1].minor.yy404) : yymsp[-2].minor.yy70; |
| 162724 | | - sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy404); |
| 162725 | | - }else{ |
| 162726 | | - sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy70); |
| 162727 | | - sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy404); |
| 162728 | | - } |
| 162729 | | -} |
| 162730 | | - break; |
| 162731 | | - case 221: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ |
| 162732 | | -{ |
| 162733 | | - yymsp[-4].minor.yy70 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy70, yymsp[-2].minor.yy404); |
| 162734 | | - yymsp[-4].minor.yy70 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy70, yymsp[0].minor.yy404); |
| 162735 | | -} |
| 162736 | | - break; |
| 162737 | | - case 222: /* case_exprlist ::= WHEN expr THEN expr */ |
| 162738 | | -{ |
| 162739 | | - yymsp[-3].minor.yy70 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy404); |
| 162740 | | - yymsp[-3].minor.yy70 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy70, yymsp[0].minor.yy404); |
| 162741 | | -} |
| 162742 | | - break; |
| 162743 | | - case 225: /* case_operand ::= expr */ |
| 162744 | | -{yymsp[0].minor.yy404 = yymsp[0].minor.yy404; /*A-overwrites-X*/} |
| 162745 | | - break; |
| 162746 | | - case 228: /* nexprlist ::= nexprlist COMMA expr */ |
| 162747 | | -{yymsp[-2].minor.yy70 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy70,yymsp[0].minor.yy404);} |
| 162748 | | - break; |
| 162749 | | - case 229: /* nexprlist ::= expr */ |
| 162750 | | -{yymsp[0].minor.yy70 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy404); /*A-overwrites-Y*/} |
| 162751 | | - break; |
| 162752 | | - case 231: /* paren_exprlist ::= LP exprlist RP */ |
| 162753 | | - case 236: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==236); |
| 162754 | | -{yymsp[-2].minor.yy70 = yymsp[-1].minor.yy70;} |
| 162755 | | - break; |
| 162756 | | - case 232: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ |
| 163035 | + p = yymsp[-3].minor.yy626 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0); |
| 163036 | + sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy303); |
| 163037 | + } |
| 163038 | + break; |
| 163039 | + case 222: /* expr ::= CASE case_operand case_exprlist case_else END */ |
| 163040 | +{ |
| 163041 | + yymsp[-4].minor.yy626 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy626, 0); |
| 163042 | + if( yymsp[-4].minor.yy626 ){ |
| 163043 | + yymsp[-4].minor.yy626->x.pList = yymsp[-1].minor.yy626 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy562,yymsp[-1].minor.yy626) : yymsp[-2].minor.yy562; |
| 163044 | + sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy626); |
| 163045 | + }else{ |
| 163046 | + sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy562); |
| 163047 | + sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy626); |
| 163048 | + } |
| 163049 | +} |
| 163050 | + break; |
| 163051 | + case 223: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ |
| 163052 | +{ |
| 163053 | + yymsp[-4].minor.yy562 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy562, yymsp[-2].minor.yy626); |
| 163054 | + yymsp[-4].minor.yy562 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy562, yymsp[0].minor.yy626); |
| 163055 | +} |
| 163056 | + break; |
| 163057 | + case 224: /* case_exprlist ::= WHEN expr THEN expr */ |
| 163058 | +{ |
| 163059 | + yymsp[-3].minor.yy562 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy626); |
| 163060 | + yymsp[-3].minor.yy562 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy562, yymsp[0].minor.yy626); |
| 163061 | +} |
| 163062 | + break; |
| 163063 | + case 227: /* case_operand ::= expr */ |
| 163064 | +{yymsp[0].minor.yy626 = yymsp[0].minor.yy626; /*A-overwrites-X*/} |
| 163065 | + break; |
| 163066 | + case 230: /* nexprlist ::= nexprlist COMMA expr */ |
| 163067 | +{yymsp[-2].minor.yy562 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy562,yymsp[0].minor.yy626);} |
| 163068 | + break; |
| 163069 | + case 231: /* nexprlist ::= expr */ |
| 163070 | +{yymsp[0].minor.yy562 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy626); /*A-overwrites-Y*/} |
| 163071 | + break; |
| 163072 | + case 233: /* paren_exprlist ::= LP exprlist RP */ |
| 163073 | + case 238: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==238); |
| 163074 | +{yymsp[-2].minor.yy562 = yymsp[-1].minor.yy562;} |
| 163075 | + break; |
| 163076 | + case 234: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ |
| 162757 | 163077 | { |
| 162758 | 163078 | sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, |
| 162759 | | - sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy70, yymsp[-10].minor.yy376, |
| 162760 | | - &yymsp[-11].minor.yy0, yymsp[0].minor.yy404, SQLITE_SO_ASC, yymsp[-8].minor.yy376, SQLITE_IDXTYPE_APPDEF); |
| 163079 | + sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy562, yymsp[-10].minor.yy64, |
| 163080 | + &yymsp[-11].minor.yy0, yymsp[0].minor.yy626, SQLITE_SO_ASC, yymsp[-8].minor.yy64, SQLITE_IDXTYPE_APPDEF); |
| 162761 | 163081 | if( IN_RENAME_OBJECT && pParse->pNewIndex ){ |
| 162762 | 163082 | sqlite3RenameTokenMap(pParse, pParse->pNewIndex->zName, &yymsp[-4].minor.yy0); |
| 162763 | 163083 | } |
| 162764 | 163084 | } |
| 162765 | 163085 | break; |
| 162766 | | - case 233: /* uniqueflag ::= UNIQUE */ |
| 162767 | | - case 275: /* raisetype ::= ABORT */ yytestcase(yyruleno==275); |
| 162768 | | -{yymsp[0].minor.yy376 = OE_Abort;} |
| 162769 | | - break; |
| 162770 | | - case 234: /* uniqueflag ::= */ |
| 162771 | | -{yymsp[1].minor.yy376 = OE_None;} |
| 162772 | | - break; |
| 162773 | | - case 237: /* eidlist ::= eidlist COMMA nm collate sortorder */ |
| 162774 | | -{ |
| 162775 | | - yymsp[-4].minor.yy70 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy70, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy376, yymsp[0].minor.yy376); |
| 162776 | | -} |
| 162777 | | - break; |
| 162778 | | - case 238: /* eidlist ::= nm collate sortorder */ |
| 162779 | | -{ |
| 162780 | | - yymsp[-2].minor.yy70 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy376, yymsp[0].minor.yy376); /*A-overwrites-Y*/ |
| 162781 | | -} |
| 162782 | | - break; |
| 162783 | | - case 241: /* cmd ::= DROP INDEX ifexists fullname */ |
| 162784 | | -{sqlite3DropIndex(pParse, yymsp[0].minor.yy153, yymsp[-1].minor.yy376);} |
| 162785 | | - break; |
| 162786 | | - case 242: /* cmd ::= VACUUM vinto */ |
| 162787 | | -{sqlite3Vacuum(pParse,0,yymsp[0].minor.yy404);} |
| 162788 | | - break; |
| 162789 | | - case 243: /* cmd ::= VACUUM nm vinto */ |
| 162790 | | -{sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy404);} |
| 162791 | | - break; |
| 162792 | | - case 246: /* cmd ::= PRAGMA nm dbnm */ |
| 163086 | + case 235: /* uniqueflag ::= UNIQUE */ |
| 163087 | + case 277: /* raisetype ::= ABORT */ yytestcase(yyruleno==277); |
| 163088 | +{yymsp[0].minor.yy64 = OE_Abort;} |
| 163089 | + break; |
| 163090 | + case 236: /* uniqueflag ::= */ |
| 163091 | +{yymsp[1].minor.yy64 = OE_None;} |
| 163092 | + break; |
| 163093 | + case 239: /* eidlist ::= eidlist COMMA nm collate sortorder */ |
| 163094 | +{ |
| 163095 | + yymsp[-4].minor.yy562 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy562, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy64, yymsp[0].minor.yy64); |
| 163096 | +} |
| 163097 | + break; |
| 163098 | + case 240: /* eidlist ::= nm collate sortorder */ |
| 163099 | +{ |
| 163100 | + yymsp[-2].minor.yy562 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy64, yymsp[0].minor.yy64); /*A-overwrites-Y*/ |
| 163101 | +} |
| 163102 | + break; |
| 163103 | + case 243: /* cmd ::= DROP INDEX ifexists fullname */ |
| 163104 | +{sqlite3DropIndex(pParse, yymsp[0].minor.yy607, yymsp[-1].minor.yy64);} |
| 163105 | + break; |
| 163106 | + case 244: /* cmd ::= VACUUM vinto */ |
| 163107 | +{sqlite3Vacuum(pParse,0,yymsp[0].minor.yy626);} |
| 163108 | + break; |
| 163109 | + case 245: /* cmd ::= VACUUM nm vinto */ |
| 163110 | +{sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy626);} |
| 163111 | + break; |
| 163112 | + case 248: /* cmd ::= PRAGMA nm dbnm */ |
| 162793 | 163113 | {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);} |
| 162794 | 163114 | break; |
| 162795 | | - case 247: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ |
| 163115 | + case 249: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ |
| 162796 | 163116 | {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);} |
| 162797 | 163117 | break; |
| 162798 | | - case 248: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ |
| 163118 | + case 250: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ |
| 162799 | 163119 | {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);} |
| 162800 | 163120 | break; |
| 162801 | | - case 249: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ |
| 163121 | + case 251: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ |
| 162802 | 163122 | {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);} |
| 162803 | 163123 | break; |
| 162804 | | - case 250: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ |
| 163124 | + case 252: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ |
| 162805 | 163125 | {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);} |
| 162806 | 163126 | break; |
| 162807 | | - case 253: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ |
| 163127 | + case 255: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ |
| 162808 | 163128 | { |
| 162809 | 163129 | Token all; |
| 162810 | 163130 | all.z = yymsp[-3].minor.yy0.z; |
| 162811 | 163131 | all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n; |
| 162812 | | - sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy157, &all); |
| 163132 | + sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy95, &all); |
| 162813 | 163133 | } |
| 162814 | 163134 | break; |
| 162815 | | - case 254: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ |
| 163135 | + case 256: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ |
| 162816 | 163136 | { |
| 162817 | | - sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy376, yymsp[-4].minor.yy262.a, yymsp[-4].minor.yy262.b, yymsp[-2].minor.yy153, yymsp[0].minor.yy404, yymsp[-10].minor.yy376, yymsp[-8].minor.yy376); |
| 163137 | + 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); |
| 162818 | 163138 | yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/ |
| 162819 | 163139 | } |
| 162820 | 163140 | break; |
| 162821 | | - case 255: /* trigger_time ::= BEFORE|AFTER */ |
| 162822 | | -{ yymsp[0].minor.yy376 = yymsp[0].major; /*A-overwrites-X*/ } |
| 162823 | | - break; |
| 162824 | | - case 256: /* trigger_time ::= INSTEAD OF */ |
| 162825 | | -{ yymsp[-1].minor.yy376 = TK_INSTEAD;} |
| 162826 | | - break; |
| 162827 | | - case 257: /* trigger_time ::= */ |
| 162828 | | -{ yymsp[1].minor.yy376 = TK_BEFORE; } |
| 162829 | | - break; |
| 162830 | | - case 258: /* trigger_event ::= DELETE|INSERT */ |
| 162831 | | - case 259: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==259); |
| 162832 | | -{yymsp[0].minor.yy262.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy262.b = 0;} |
| 162833 | | - break; |
| 162834 | | - case 260: /* trigger_event ::= UPDATE OF idlist */ |
| 162835 | | -{yymsp[-2].minor.yy262.a = TK_UPDATE; yymsp[-2].minor.yy262.b = yymsp[0].minor.yy436;} |
| 162836 | | - break; |
| 162837 | | - case 261: /* when_clause ::= */ |
| 162838 | | - case 280: /* key_opt ::= */ yytestcase(yyruleno==280); |
| 162839 | | -{ yymsp[1].minor.yy404 = 0; } |
| 162840 | | - break; |
| 162841 | | - case 262: /* when_clause ::= WHEN expr */ |
| 162842 | | - case 281: /* key_opt ::= KEY expr */ yytestcase(yyruleno==281); |
| 162843 | | -{ yymsp[-1].minor.yy404 = yymsp[0].minor.yy404; } |
| 162844 | | - break; |
| 162845 | | - case 263: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ |
| 162846 | | -{ |
| 162847 | | - assert( yymsp[-2].minor.yy157!=0 ); |
| 162848 | | - yymsp[-2].minor.yy157->pLast->pNext = yymsp[-1].minor.yy157; |
| 162849 | | - yymsp[-2].minor.yy157->pLast = yymsp[-1].minor.yy157; |
| 162850 | | -} |
| 162851 | | - break; |
| 162852 | | - case 264: /* trigger_cmd_list ::= trigger_cmd SEMI */ |
| 162853 | | -{ |
| 162854 | | - assert( yymsp[-1].minor.yy157!=0 ); |
| 162855 | | - yymsp[-1].minor.yy157->pLast = yymsp[-1].minor.yy157; |
| 162856 | | -} |
| 162857 | | - break; |
| 162858 | | - case 265: /* trnm ::= nm DOT nm */ |
| 163141 | + case 257: /* trigger_time ::= BEFORE|AFTER */ |
| 163142 | +{ yymsp[0].minor.yy64 = yymsp[0].major; /*A-overwrites-X*/ } |
| 163143 | + break; |
| 163144 | + case 258: /* trigger_time ::= INSTEAD OF */ |
| 163145 | +{ yymsp[-1].minor.yy64 = TK_INSTEAD;} |
| 163146 | + break; |
| 163147 | + case 259: /* trigger_time ::= */ |
| 163148 | +{ yymsp[1].minor.yy64 = TK_BEFORE; } |
| 163149 | + break; |
| 163150 | + case 260: /* trigger_event ::= DELETE|INSERT */ |
| 163151 | + case 261: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==261); |
| 163152 | +{yymsp[0].minor.yy570.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy570.b = 0;} |
| 163153 | + break; |
| 163154 | + case 262: /* trigger_event ::= UPDATE OF idlist */ |
| 163155 | +{yymsp[-2].minor.yy570.a = TK_UPDATE; yymsp[-2].minor.yy570.b = yymsp[0].minor.yy240;} |
| 163156 | + break; |
| 163157 | + case 263: /* when_clause ::= */ |
| 163158 | + case 282: /* key_opt ::= */ yytestcase(yyruleno==282); |
| 163159 | +{ yymsp[1].minor.yy626 = 0; } |
| 163160 | + break; |
| 163161 | + case 264: /* when_clause ::= WHEN expr */ |
| 163162 | + case 283: /* key_opt ::= KEY expr */ yytestcase(yyruleno==283); |
| 163163 | +{ yymsp[-1].minor.yy626 = yymsp[0].minor.yy626; } |
| 163164 | + break; |
| 163165 | + case 265: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ |
| 163166 | +{ |
| 163167 | + assert( yymsp[-2].minor.yy95!=0 ); |
| 163168 | + yymsp[-2].minor.yy95->pLast->pNext = yymsp[-1].minor.yy95; |
| 163169 | + yymsp[-2].minor.yy95->pLast = yymsp[-1].minor.yy95; |
| 163170 | +} |
| 163171 | + break; |
| 163172 | + case 266: /* trigger_cmd_list ::= trigger_cmd SEMI */ |
| 163173 | +{ |
| 163174 | + assert( yymsp[-1].minor.yy95!=0 ); |
| 163175 | + yymsp[-1].minor.yy95->pLast = yymsp[-1].minor.yy95; |
| 163176 | +} |
| 163177 | + break; |
| 163178 | + case 267: /* trnm ::= nm DOT nm */ |
| 162859 | 163179 | { |
| 162860 | 163180 | yymsp[-2].minor.yy0 = yymsp[0].minor.yy0; |
| 162861 | 163181 | sqlite3ErrorMsg(pParse, |
| 162862 | 163182 | "qualified table names are not allowed on INSERT, UPDATE, and DELETE " |
| 162863 | 163183 | "statements within triggers"); |
| 162864 | 163184 | } |
| 162865 | 163185 | break; |
| 162866 | | - case 266: /* tridxby ::= INDEXED BY nm */ |
| 163186 | + case 268: /* tridxby ::= INDEXED BY nm */ |
| 162867 | 163187 | { |
| 162868 | 163188 | sqlite3ErrorMsg(pParse, |
| 162869 | 163189 | "the INDEXED BY clause is not allowed on UPDATE or DELETE statements " |
| 162870 | 163190 | "within triggers"); |
| 162871 | 163191 | } |
| 162872 | 163192 | break; |
| 162873 | | - case 267: /* tridxby ::= NOT INDEXED */ |
| 163193 | + case 269: /* tridxby ::= NOT INDEXED */ |
| 162874 | 163194 | { |
| 162875 | 163195 | sqlite3ErrorMsg(pParse, |
| 162876 | 163196 | "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements " |
| 162877 | 163197 | "within triggers"); |
| 162878 | 163198 | } |
| 162879 | 163199 | break; |
| 162880 | | - case 268: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ |
| 162881 | | -{yylhsminor.yy157 = sqlite3TriggerUpdateStep(pParse, &yymsp[-6].minor.yy0, yymsp[-2].minor.yy153, yymsp[-3].minor.yy70, yymsp[-1].minor.yy404, yymsp[-7].minor.yy376, yymsp[-8].minor.yy0.z, yymsp[0].minor.yy504);} |
| 162882 | | - yymsp[-8].minor.yy157 = yylhsminor.yy157; |
| 162883 | | - break; |
| 162884 | | - case 269: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ |
| 162885 | | -{ |
| 162886 | | - yylhsminor.yy157 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy436,yymsp[-2].minor.yy81,yymsp[-6].minor.yy376,yymsp[-1].minor.yy190,yymsp[-7].minor.yy504,yymsp[0].minor.yy504);/*yylhsminor.yy157-overwrites-yymsp[-6].minor.yy376*/ |
| 162887 | | -} |
| 162888 | | - yymsp[-7].minor.yy157 = yylhsminor.yy157; |
| 162889 | | - break; |
| 162890 | | - case 270: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ |
| 162891 | | -{yylhsminor.yy157 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy404, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy504);} |
| 162892 | | - yymsp[-5].minor.yy157 = yylhsminor.yy157; |
| 162893 | | - break; |
| 162894 | | - case 271: /* trigger_cmd ::= scanpt select scanpt */ |
| 162895 | | -{yylhsminor.yy157 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy81, yymsp[-2].minor.yy504, yymsp[0].minor.yy504); /*yylhsminor.yy157-overwrites-yymsp[-1].minor.yy81*/} |
| 162896 | | - yymsp[-2].minor.yy157 = yylhsminor.yy157; |
| 162897 | | - break; |
| 162898 | | - case 272: /* expr ::= RAISE LP IGNORE RP */ |
| 162899 | | -{ |
| 162900 | | - yymsp[-3].minor.yy404 = sqlite3PExpr(pParse, TK_RAISE, 0, 0); |
| 162901 | | - if( yymsp[-3].minor.yy404 ){ |
| 162902 | | - yymsp[-3].minor.yy404->affExpr = OE_Ignore; |
| 162903 | | - } |
| 162904 | | -} |
| 162905 | | - break; |
| 162906 | | - case 273: /* expr ::= RAISE LP raisetype COMMA nm RP */ |
| 162907 | | -{ |
| 162908 | | - yymsp[-5].minor.yy404 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1); |
| 162909 | | - if( yymsp[-5].minor.yy404 ) { |
| 162910 | | - yymsp[-5].minor.yy404->affExpr = (char)yymsp[-3].minor.yy376; |
| 162911 | | - } |
| 162912 | | -} |
| 162913 | | - break; |
| 162914 | | - case 274: /* raisetype ::= ROLLBACK */ |
| 162915 | | -{yymsp[0].minor.yy376 = OE_Rollback;} |
| 162916 | | - break; |
| 162917 | | - case 276: /* raisetype ::= FAIL */ |
| 162918 | | -{yymsp[0].minor.yy376 = OE_Fail;} |
| 162919 | | - break; |
| 162920 | | - case 277: /* cmd ::= DROP TRIGGER ifexists fullname */ |
| 162921 | | -{ |
| 162922 | | - sqlite3DropTrigger(pParse,yymsp[0].minor.yy153,yymsp[-1].minor.yy376); |
| 162923 | | -} |
| 162924 | | - break; |
| 162925 | | - case 278: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ |
| 162926 | | -{ |
| 162927 | | - sqlite3Attach(pParse, yymsp[-3].minor.yy404, yymsp[-1].minor.yy404, yymsp[0].minor.yy404); |
| 162928 | | -} |
| 162929 | | - break; |
| 162930 | | - case 279: /* cmd ::= DETACH database_kw_opt expr */ |
| 162931 | | -{ |
| 162932 | | - sqlite3Detach(pParse, yymsp[0].minor.yy404); |
| 162933 | | -} |
| 162934 | | - break; |
| 162935 | | - case 282: /* cmd ::= REINDEX */ |
| 163200 | + case 270: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ |
| 163201 | +{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);} |
| 163202 | + yymsp[-8].minor.yy95 = yylhsminor.yy95; |
| 163203 | + break; |
| 163204 | + case 271: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ |
| 163205 | +{ |
| 163206 | + 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*/ |
| 163207 | +} |
| 163208 | + yymsp[-7].minor.yy95 = yylhsminor.yy95; |
| 163209 | + break; |
| 163210 | + case 272: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ |
| 163211 | +{yylhsminor.yy95 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy626, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy600);} |
| 163212 | + yymsp[-5].minor.yy95 = yylhsminor.yy95; |
| 163213 | + break; |
| 163214 | + case 273: /* trigger_cmd ::= scanpt select scanpt */ |
| 163215 | +{yylhsminor.yy95 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy303, yymsp[-2].minor.yy600, yymsp[0].minor.yy600); /*yylhsminor.yy95-overwrites-yymsp[-1].minor.yy303*/} |
| 163216 | + yymsp[-2].minor.yy95 = yylhsminor.yy95; |
| 163217 | + break; |
| 163218 | + case 274: /* expr ::= RAISE LP IGNORE RP */ |
| 163219 | +{ |
| 163220 | + yymsp[-3].minor.yy626 = sqlite3PExpr(pParse, TK_RAISE, 0, 0); |
| 163221 | + if( yymsp[-3].minor.yy626 ){ |
| 163222 | + yymsp[-3].minor.yy626->affExpr = OE_Ignore; |
| 163223 | + } |
| 163224 | +} |
| 163225 | + break; |
| 163226 | + case 275: /* expr ::= RAISE LP raisetype COMMA nm RP */ |
| 163227 | +{ |
| 163228 | + yymsp[-5].minor.yy626 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1); |
| 163229 | + if( yymsp[-5].minor.yy626 ) { |
| 163230 | + yymsp[-5].minor.yy626->affExpr = (char)yymsp[-3].minor.yy64; |
| 163231 | + } |
| 163232 | +} |
| 163233 | + break; |
| 163234 | + case 276: /* raisetype ::= ROLLBACK */ |
| 163235 | +{yymsp[0].minor.yy64 = OE_Rollback;} |
| 163236 | + break; |
| 163237 | + case 278: /* raisetype ::= FAIL */ |
| 163238 | +{yymsp[0].minor.yy64 = OE_Fail;} |
| 163239 | + break; |
| 163240 | + case 279: /* cmd ::= DROP TRIGGER ifexists fullname */ |
| 163241 | +{ |
| 163242 | + sqlite3DropTrigger(pParse,yymsp[0].minor.yy607,yymsp[-1].minor.yy64); |
| 163243 | +} |
| 163244 | + break; |
| 163245 | + case 280: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ |
| 163246 | +{ |
| 163247 | + sqlite3Attach(pParse, yymsp[-3].minor.yy626, yymsp[-1].minor.yy626, yymsp[0].minor.yy626); |
| 163248 | +} |
| 163249 | + break; |
| 163250 | + case 281: /* cmd ::= DETACH database_kw_opt expr */ |
| 163251 | +{ |
| 163252 | + sqlite3Detach(pParse, yymsp[0].minor.yy626); |
| 163253 | +} |
| 163254 | + break; |
| 163255 | + case 284: /* cmd ::= REINDEX */ |
| 162936 | 163256 | {sqlite3Reindex(pParse, 0, 0);} |
| 162937 | 163257 | break; |
| 162938 | | - case 283: /* cmd ::= REINDEX nm dbnm */ |
| 163258 | + case 285: /* cmd ::= REINDEX nm dbnm */ |
| 162939 | 163259 | {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} |
| 162940 | 163260 | break; |
| 162941 | | - case 284: /* cmd ::= ANALYZE */ |
| 163261 | + case 286: /* cmd ::= ANALYZE */ |
| 162942 | 163262 | {sqlite3Analyze(pParse, 0, 0);} |
| 162943 | 163263 | break; |
| 162944 | | - case 285: /* cmd ::= ANALYZE nm dbnm */ |
| 163264 | + case 287: /* cmd ::= ANALYZE nm dbnm */ |
| 162945 | 163265 | {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} |
| 162946 | 163266 | break; |
| 162947 | | - case 286: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ |
| 163267 | + case 288: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ |
| 162948 | 163268 | { |
| 162949 | | - sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy153,&yymsp[0].minor.yy0); |
| 163269 | + sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy607,&yymsp[0].minor.yy0); |
| 162950 | 163270 | } |
| 162951 | 163271 | break; |
| 162952 | | - case 287: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ |
| 163272 | + case 289: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ |
| 162953 | 163273 | { |
| 162954 | 163274 | yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n; |
| 162955 | 163275 | sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0); |
| 162956 | 163276 | } |
| 162957 | 163277 | break; |
| 162958 | | - case 288: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ |
| 163278 | + case 290: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ |
| 162959 | 163279 | { |
| 162960 | | - sqlite3AlterDropColumn(pParse, yymsp[-3].minor.yy153, &yymsp[0].minor.yy0); |
| 163280 | + sqlite3AlterDropColumn(pParse, yymsp[-3].minor.yy607, &yymsp[0].minor.yy0); |
| 162961 | 163281 | } |
| 162962 | 163282 | break; |
| 162963 | | - case 289: /* add_column_fullname ::= fullname */ |
| 163283 | + case 291: /* add_column_fullname ::= fullname */ |
| 162964 | 163284 | { |
| 162965 | 163285 | disableLookaside(pParse); |
| 162966 | | - sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy153); |
| 162967 | | -} |
| 162968 | | - break; |
| 162969 | | - case 290: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ |
| 162970 | | -{ |
| 162971 | | - sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy153, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); |
| 162972 | | -} |
| 162973 | | - break; |
| 162974 | | - case 291: /* cmd ::= create_vtab */ |
| 163286 | + sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy607); |
| 163287 | +} |
| 163288 | + break; |
| 163289 | + case 292: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ |
| 163290 | +{ |
| 163291 | + sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy607, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); |
| 163292 | +} |
| 163293 | + break; |
| 163294 | + case 293: /* cmd ::= create_vtab */ |
| 162975 | 163295 | {sqlite3VtabFinishParse(pParse,0);} |
| 162976 | 163296 | break; |
| 162977 | | - case 292: /* cmd ::= create_vtab LP vtabarglist RP */ |
| 163297 | + case 294: /* cmd ::= create_vtab LP vtabarglist RP */ |
| 162978 | 163298 | {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);} |
| 162979 | 163299 | break; |
| 162980 | | - case 293: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ |
| 163300 | + case 295: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ |
| 162981 | 163301 | { |
| 162982 | | - sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy376); |
| 163302 | + sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy64); |
| 162983 | 163303 | } |
| 162984 | 163304 | break; |
| 162985 | | - case 294: /* vtabarg ::= */ |
| 163305 | + case 296: /* vtabarg ::= */ |
| 162986 | 163306 | {sqlite3VtabArgInit(pParse);} |
| 162987 | 163307 | break; |
| 162988 | | - case 295: /* vtabargtoken ::= ANY */ |
| 162989 | | - case 296: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==296); |
| 162990 | | - case 297: /* lp ::= LP */ yytestcase(yyruleno==297); |
| 163308 | + case 297: /* vtabargtoken ::= ANY */ |
| 163309 | + case 298: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==298); |
| 163310 | + case 299: /* lp ::= LP */ yytestcase(yyruleno==299); |
| 162991 | 163311 | {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);} |
| 162992 | 163312 | break; |
| 162993 | | - case 298: /* with ::= WITH wqlist */ |
| 162994 | | - case 299: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==299); |
| 162995 | | -{ sqlite3WithPush(pParse, yymsp[0].minor.yy103, 1); } |
| 162996 | | - break; |
| 162997 | | - case 300: /* wqas ::= AS */ |
| 162998 | | -{yymsp[0].minor.yy552 = M10d_Any;} |
| 162999 | | - break; |
| 163000 | | - case 301: /* wqas ::= AS MATERIALIZED */ |
| 163001 | | -{yymsp[-1].minor.yy552 = M10d_Yes;} |
| 163002 | | - break; |
| 163003 | | - case 302: /* wqas ::= AS NOT MATERIALIZED */ |
| 163004 | | -{yymsp[-2].minor.yy552 = M10d_No;} |
| 163005 | | - break; |
| 163006 | | - case 303: /* wqitem ::= nm eidlist_opt wqas LP select RP */ |
| 163007 | | -{ |
| 163008 | | - yymsp[-5].minor.yy329 = sqlite3CteNew(pParse, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy70, yymsp[-1].minor.yy81, yymsp[-3].minor.yy552); /*A-overwrites-X*/ |
| 163009 | | -} |
| 163010 | | - break; |
| 163011 | | - case 304: /* wqlist ::= wqitem */ |
| 163012 | | -{ |
| 163013 | | - yymsp[0].minor.yy103 = sqlite3WithAdd(pParse, 0, yymsp[0].minor.yy329); /*A-overwrites-X*/ |
| 163014 | | -} |
| 163015 | | - break; |
| 163016 | | - case 305: /* wqlist ::= wqlist COMMA wqitem */ |
| 163017 | | -{ |
| 163018 | | - yymsp[-2].minor.yy103 = sqlite3WithAdd(pParse, yymsp[-2].minor.yy103, yymsp[0].minor.yy329); |
| 163019 | | -} |
| 163020 | | - break; |
| 163021 | | - case 306: /* windowdefn_list ::= windowdefn */ |
| 163022 | | -{ yylhsminor.yy49 = yymsp[0].minor.yy49; } |
| 163023 | | - yymsp[0].minor.yy49 = yylhsminor.yy49; |
| 163024 | | - break; |
| 163025 | | - case 307: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ |
| 163026 | | -{ |
| 163027 | | - assert( yymsp[0].minor.yy49!=0 ); |
| 163028 | | - sqlite3WindowChain(pParse, yymsp[0].minor.yy49, yymsp[-2].minor.yy49); |
| 163029 | | - yymsp[0].minor.yy49->pNextWin = yymsp[-2].minor.yy49; |
| 163030 | | - yylhsminor.yy49 = yymsp[0].minor.yy49; |
| 163031 | | -} |
| 163032 | | - yymsp[-2].minor.yy49 = yylhsminor.yy49; |
| 163033 | | - break; |
| 163034 | | - case 308: /* windowdefn ::= nm AS LP window RP */ |
| 163035 | | -{ |
| 163036 | | - if( ALWAYS(yymsp[-1].minor.yy49) ){ |
| 163037 | | - yymsp[-1].minor.yy49->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n); |
| 163038 | | - } |
| 163039 | | - yylhsminor.yy49 = yymsp[-1].minor.yy49; |
| 163040 | | -} |
| 163041 | | - yymsp[-4].minor.yy49 = yylhsminor.yy49; |
| 163042 | | - break; |
| 163043 | | - case 309: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ |
| 163044 | | -{ |
| 163045 | | - yymsp[-4].minor.yy49 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy49, yymsp[-2].minor.yy70, yymsp[-1].minor.yy70, 0); |
| 163046 | | -} |
| 163047 | | - break; |
| 163048 | | - case 310: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ |
| 163049 | | -{ |
| 163050 | | - yylhsminor.yy49 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy49, yymsp[-2].minor.yy70, yymsp[-1].minor.yy70, &yymsp[-5].minor.yy0); |
| 163051 | | -} |
| 163052 | | - yymsp[-5].minor.yy49 = yylhsminor.yy49; |
| 163053 | | - break; |
| 163054 | | - case 311: /* window ::= ORDER BY sortlist frame_opt */ |
| 163055 | | -{ |
| 163056 | | - yymsp[-3].minor.yy49 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy49, 0, yymsp[-1].minor.yy70, 0); |
| 163057 | | -} |
| 163058 | | - break; |
| 163059 | | - case 312: /* window ::= nm ORDER BY sortlist frame_opt */ |
| 163060 | | -{ |
| 163061 | | - yylhsminor.yy49 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy49, 0, yymsp[-1].minor.yy70, &yymsp[-4].minor.yy0); |
| 163062 | | -} |
| 163063 | | - yymsp[-4].minor.yy49 = yylhsminor.yy49; |
| 163064 | | - break; |
| 163065 | | - case 313: /* window ::= frame_opt */ |
| 163066 | | - case 332: /* filter_over ::= over_clause */ yytestcase(yyruleno==332); |
| 163067 | | -{ |
| 163068 | | - yylhsminor.yy49 = yymsp[0].minor.yy49; |
| 163069 | | -} |
| 163070 | | - yymsp[0].minor.yy49 = yylhsminor.yy49; |
| 163071 | | - break; |
| 163072 | | - case 314: /* window ::= nm frame_opt */ |
| 163073 | | -{ |
| 163074 | | - yylhsminor.yy49 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy49, 0, 0, &yymsp[-1].minor.yy0); |
| 163075 | | -} |
| 163076 | | - yymsp[-1].minor.yy49 = yylhsminor.yy49; |
| 163077 | | - break; |
| 163078 | | - case 315: /* frame_opt ::= */ |
| 163079 | | -{ |
| 163080 | | - yymsp[1].minor.yy49 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0); |
| 163081 | | -} |
| 163082 | | - break; |
| 163083 | | - case 316: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ |
| 163084 | | -{ |
| 163085 | | - yylhsminor.yy49 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy376, yymsp[-1].minor.yy117.eType, yymsp[-1].minor.yy117.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy552); |
| 163086 | | -} |
| 163087 | | - yymsp[-2].minor.yy49 = yylhsminor.yy49; |
| 163088 | | - break; |
| 163089 | | - case 317: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ |
| 163090 | | -{ |
| 163091 | | - yylhsminor.yy49 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy376, yymsp[-3].minor.yy117.eType, yymsp[-3].minor.yy117.pExpr, yymsp[-1].minor.yy117.eType, yymsp[-1].minor.yy117.pExpr, yymsp[0].minor.yy552); |
| 163092 | | -} |
| 163093 | | - yymsp[-5].minor.yy49 = yylhsminor.yy49; |
| 163094 | | - break; |
| 163095 | | - case 319: /* frame_bound_s ::= frame_bound */ |
| 163096 | | - case 321: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==321); |
| 163097 | | -{yylhsminor.yy117 = yymsp[0].minor.yy117;} |
| 163098 | | - yymsp[0].minor.yy117 = yylhsminor.yy117; |
| 163099 | | - break; |
| 163100 | | - case 320: /* frame_bound_s ::= UNBOUNDED PRECEDING */ |
| 163101 | | - case 322: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==322); |
| 163102 | | - case 324: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==324); |
| 163103 | | -{yylhsminor.yy117.eType = yymsp[-1].major; yylhsminor.yy117.pExpr = 0;} |
| 163104 | | - yymsp[-1].minor.yy117 = yylhsminor.yy117; |
| 163105 | | - break; |
| 163106 | | - case 323: /* frame_bound ::= expr PRECEDING|FOLLOWING */ |
| 163107 | | -{yylhsminor.yy117.eType = yymsp[0].major; yylhsminor.yy117.pExpr = yymsp[-1].minor.yy404;} |
| 163108 | | - yymsp[-1].minor.yy117 = yylhsminor.yy117; |
| 163109 | | - break; |
| 163110 | | - case 325: /* frame_exclude_opt ::= */ |
| 163111 | | -{yymsp[1].minor.yy552 = 0;} |
| 163112 | | - break; |
| 163113 | | - case 326: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ |
| 163114 | | -{yymsp[-1].minor.yy552 = yymsp[0].minor.yy552;} |
| 163115 | | - break; |
| 163116 | | - case 327: /* frame_exclude ::= NO OTHERS */ |
| 163117 | | - case 328: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==328); |
| 163118 | | -{yymsp[-1].minor.yy552 = yymsp[-1].major; /*A-overwrites-X*/} |
| 163119 | | - break; |
| 163120 | | - case 329: /* frame_exclude ::= GROUP|TIES */ |
| 163121 | | -{yymsp[0].minor.yy552 = yymsp[0].major; /*A-overwrites-X*/} |
| 163122 | | - break; |
| 163123 | | - case 330: /* window_clause ::= WINDOW windowdefn_list */ |
| 163124 | | -{ yymsp[-1].minor.yy49 = yymsp[0].minor.yy49; } |
| 163125 | | - break; |
| 163126 | | - case 331: /* filter_over ::= filter_clause over_clause */ |
| 163127 | | -{ |
| 163128 | | - if( yymsp[0].minor.yy49 ){ |
| 163129 | | - yymsp[0].minor.yy49->pFilter = yymsp[-1].minor.yy404; |
| 163130 | | - }else{ |
| 163131 | | - sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy404); |
| 163132 | | - } |
| 163133 | | - yylhsminor.yy49 = yymsp[0].minor.yy49; |
| 163134 | | -} |
| 163135 | | - yymsp[-1].minor.yy49 = yylhsminor.yy49; |
| 163136 | | - break; |
| 163137 | | - case 333: /* filter_over ::= filter_clause */ |
| 163138 | | -{ |
| 163139 | | - yylhsminor.yy49 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); |
| 163140 | | - if( yylhsminor.yy49 ){ |
| 163141 | | - yylhsminor.yy49->eFrmType = TK_FILTER; |
| 163142 | | - yylhsminor.yy49->pFilter = yymsp[0].minor.yy404; |
| 163143 | | - }else{ |
| 163144 | | - sqlite3ExprDelete(pParse->db, yymsp[0].minor.yy404); |
| 163145 | | - } |
| 163146 | | -} |
| 163147 | | - yymsp[0].minor.yy49 = yylhsminor.yy49; |
| 163148 | | - break; |
| 163149 | | - case 334: /* over_clause ::= OVER LP window RP */ |
| 163150 | | -{ |
| 163151 | | - yymsp[-3].minor.yy49 = yymsp[-1].minor.yy49; |
| 163152 | | - assert( yymsp[-3].minor.yy49!=0 ); |
| 163153 | | -} |
| 163154 | | - break; |
| 163155 | | - case 335: /* over_clause ::= OVER nm */ |
| 163156 | | -{ |
| 163157 | | - yymsp[-1].minor.yy49 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); |
| 163158 | | - if( yymsp[-1].minor.yy49 ){ |
| 163159 | | - yymsp[-1].minor.yy49->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n); |
| 163160 | | - } |
| 163161 | | -} |
| 163162 | | - break; |
| 163163 | | - case 336: /* filter_clause ::= FILTER LP WHERE expr RP */ |
| 163164 | | -{ yymsp[-4].minor.yy404 = yymsp[-1].minor.yy404; } |
| 163313 | + case 300: /* with ::= WITH wqlist */ |
| 163314 | + case 301: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==301); |
| 163315 | +{ sqlite3WithPush(pParse, yymsp[0].minor.yy43, 1); } |
| 163316 | + break; |
| 163317 | + case 302: /* wqas ::= AS */ |
| 163318 | +{yymsp[0].minor.yy534 = M10d_Any;} |
| 163319 | + break; |
| 163320 | + case 303: /* wqas ::= AS MATERIALIZED */ |
| 163321 | +{yymsp[-1].minor.yy534 = M10d_Yes;} |
| 163322 | + break; |
| 163323 | + case 304: /* wqas ::= AS NOT MATERIALIZED */ |
| 163324 | +{yymsp[-2].minor.yy534 = M10d_No;} |
| 163325 | + break; |
| 163326 | + case 305: /* wqitem ::= nm eidlist_opt wqas LP select RP */ |
| 163327 | +{ |
| 163328 | + 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*/ |
| 163329 | +} |
| 163330 | + break; |
| 163331 | + case 306: /* wqlist ::= wqitem */ |
| 163332 | +{ |
| 163333 | + yymsp[0].minor.yy43 = sqlite3WithAdd(pParse, 0, yymsp[0].minor.yy255); /*A-overwrites-X*/ |
| 163334 | +} |
| 163335 | + break; |
| 163336 | + case 307: /* wqlist ::= wqlist COMMA wqitem */ |
| 163337 | +{ |
| 163338 | + yymsp[-2].minor.yy43 = sqlite3WithAdd(pParse, yymsp[-2].minor.yy43, yymsp[0].minor.yy255); |
| 163339 | +} |
| 163340 | + break; |
| 163341 | + case 308: /* windowdefn_list ::= windowdefn */ |
| 163342 | +{ yylhsminor.yy375 = yymsp[0].minor.yy375; } |
| 163343 | + yymsp[0].minor.yy375 = yylhsminor.yy375; |
| 163344 | + break; |
| 163345 | + case 309: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ |
| 163346 | +{ |
| 163347 | + assert( yymsp[0].minor.yy375!=0 ); |
| 163348 | + sqlite3WindowChain(pParse, yymsp[0].minor.yy375, yymsp[-2].minor.yy375); |
| 163349 | + yymsp[0].minor.yy375->pNextWin = yymsp[-2].minor.yy375; |
| 163350 | + yylhsminor.yy375 = yymsp[0].minor.yy375; |
| 163351 | +} |
| 163352 | + yymsp[-2].minor.yy375 = yylhsminor.yy375; |
| 163353 | + break; |
| 163354 | + case 310: /* windowdefn ::= nm AS LP window RP */ |
| 163355 | +{ |
| 163356 | + if( ALWAYS(yymsp[-1].minor.yy375) ){ |
| 163357 | + yymsp[-1].minor.yy375->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n); |
| 163358 | + } |
| 163359 | + yylhsminor.yy375 = yymsp[-1].minor.yy375; |
| 163360 | +} |
| 163361 | + yymsp[-4].minor.yy375 = yylhsminor.yy375; |
| 163362 | + break; |
| 163363 | + case 311: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ |
| 163364 | +{ |
| 163365 | + yymsp[-4].minor.yy375 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy375, yymsp[-2].minor.yy562, yymsp[-1].minor.yy562, 0); |
| 163366 | +} |
| 163367 | + break; |
| 163368 | + case 312: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ |
| 163369 | +{ |
| 163370 | + yylhsminor.yy375 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy375, yymsp[-2].minor.yy562, yymsp[-1].minor.yy562, &yymsp[-5].minor.yy0); |
| 163371 | +} |
| 163372 | + yymsp[-5].minor.yy375 = yylhsminor.yy375; |
| 163373 | + break; |
| 163374 | + case 313: /* window ::= ORDER BY sortlist frame_opt */ |
| 163375 | +{ |
| 163376 | + yymsp[-3].minor.yy375 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy375, 0, yymsp[-1].minor.yy562, 0); |
| 163377 | +} |
| 163378 | + break; |
| 163379 | + case 314: /* window ::= nm ORDER BY sortlist frame_opt */ |
| 163380 | +{ |
| 163381 | + yylhsminor.yy375 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy375, 0, yymsp[-1].minor.yy562, &yymsp[-4].minor.yy0); |
| 163382 | +} |
| 163383 | + yymsp[-4].minor.yy375 = yylhsminor.yy375; |
| 163384 | + break; |
| 163385 | + case 315: /* window ::= frame_opt */ |
| 163386 | + case 334: /* filter_over ::= over_clause */ yytestcase(yyruleno==334); |
| 163387 | +{ |
| 163388 | + yylhsminor.yy375 = yymsp[0].minor.yy375; |
| 163389 | +} |
| 163390 | + yymsp[0].minor.yy375 = yylhsminor.yy375; |
| 163391 | + break; |
| 163392 | + case 316: /* window ::= nm frame_opt */ |
| 163393 | +{ |
| 163394 | + yylhsminor.yy375 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy375, 0, 0, &yymsp[-1].minor.yy0); |
| 163395 | +} |
| 163396 | + yymsp[-1].minor.yy375 = yylhsminor.yy375; |
| 163397 | + break; |
| 163398 | + case 317: /* frame_opt ::= */ |
| 163399 | +{ |
| 163400 | + yymsp[1].minor.yy375 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0); |
| 163401 | +} |
| 163402 | + break; |
| 163403 | + case 318: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ |
| 163404 | +{ |
| 163405 | + 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); |
| 163406 | +} |
| 163407 | + yymsp[-2].minor.yy375 = yylhsminor.yy375; |
| 163408 | + break; |
| 163409 | + case 319: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ |
| 163410 | +{ |
| 163411 | + 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); |
| 163412 | +} |
| 163413 | + yymsp[-5].minor.yy375 = yylhsminor.yy375; |
| 163414 | + break; |
| 163415 | + case 321: /* frame_bound_s ::= frame_bound */ |
| 163416 | + case 323: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==323); |
| 163417 | +{yylhsminor.yy81 = yymsp[0].minor.yy81;} |
| 163418 | + yymsp[0].minor.yy81 = yylhsminor.yy81; |
| 163419 | + break; |
| 163420 | + case 322: /* frame_bound_s ::= UNBOUNDED PRECEDING */ |
| 163421 | + case 324: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==324); |
| 163422 | + case 326: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==326); |
| 163423 | +{yylhsminor.yy81.eType = yymsp[-1].major; yylhsminor.yy81.pExpr = 0;} |
| 163424 | + yymsp[-1].minor.yy81 = yylhsminor.yy81; |
| 163425 | + break; |
| 163426 | + case 325: /* frame_bound ::= expr PRECEDING|FOLLOWING */ |
| 163427 | +{yylhsminor.yy81.eType = yymsp[0].major; yylhsminor.yy81.pExpr = yymsp[-1].minor.yy626;} |
| 163428 | + yymsp[-1].minor.yy81 = yylhsminor.yy81; |
| 163429 | + break; |
| 163430 | + case 327: /* frame_exclude_opt ::= */ |
| 163431 | +{yymsp[1].minor.yy534 = 0;} |
| 163432 | + break; |
| 163433 | + case 328: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ |
| 163434 | +{yymsp[-1].minor.yy534 = yymsp[0].minor.yy534;} |
| 163435 | + break; |
| 163436 | + case 329: /* frame_exclude ::= NO OTHERS */ |
| 163437 | + case 330: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==330); |
| 163438 | +{yymsp[-1].minor.yy534 = yymsp[-1].major; /*A-overwrites-X*/} |
| 163439 | + break; |
| 163440 | + case 331: /* frame_exclude ::= GROUP|TIES */ |
| 163441 | +{yymsp[0].minor.yy534 = yymsp[0].major; /*A-overwrites-X*/} |
| 163442 | + break; |
| 163443 | + case 332: /* window_clause ::= WINDOW windowdefn_list */ |
| 163444 | +{ yymsp[-1].minor.yy375 = yymsp[0].minor.yy375; } |
| 163445 | + break; |
| 163446 | + case 333: /* filter_over ::= filter_clause over_clause */ |
| 163447 | +{ |
| 163448 | + if( yymsp[0].minor.yy375 ){ |
| 163449 | + yymsp[0].minor.yy375->pFilter = yymsp[-1].minor.yy626; |
| 163450 | + }else{ |
| 163451 | + sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy626); |
| 163452 | + } |
| 163453 | + yylhsminor.yy375 = yymsp[0].minor.yy375; |
| 163454 | +} |
| 163455 | + yymsp[-1].minor.yy375 = yylhsminor.yy375; |
| 163456 | + break; |
| 163457 | + case 335: /* filter_over ::= filter_clause */ |
| 163458 | +{ |
| 163459 | + yylhsminor.yy375 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); |
| 163460 | + if( yylhsminor.yy375 ){ |
| 163461 | + yylhsminor.yy375->eFrmType = TK_FILTER; |
| 163462 | + yylhsminor.yy375->pFilter = yymsp[0].minor.yy626; |
| 163463 | + }else{ |
| 163464 | + sqlite3ExprDelete(pParse->db, yymsp[0].minor.yy626); |
| 163465 | + } |
| 163466 | +} |
| 163467 | + yymsp[0].minor.yy375 = yylhsminor.yy375; |
| 163468 | + break; |
| 163469 | + case 336: /* over_clause ::= OVER LP window RP */ |
| 163470 | +{ |
| 163471 | + yymsp[-3].minor.yy375 = yymsp[-1].minor.yy375; |
| 163472 | + assert( yymsp[-3].minor.yy375!=0 ); |
| 163473 | +} |
| 163474 | + break; |
| 163475 | + case 337: /* over_clause ::= OVER nm */ |
| 163476 | +{ |
| 163477 | + yymsp[-1].minor.yy375 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); |
| 163478 | + if( yymsp[-1].minor.yy375 ){ |
| 163479 | + yymsp[-1].minor.yy375->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n); |
| 163480 | + } |
| 163481 | +} |
| 163482 | + break; |
| 163483 | + case 338: /* filter_clause ::= FILTER LP WHERE expr RP */ |
| 163484 | +{ yymsp[-4].minor.yy626 = yymsp[-1].minor.yy626; } |
| 163165 | 163485 | break; |
| 163166 | 163486 | default: |
| 163167 | | - /* (337) input ::= cmdlist */ yytestcase(yyruleno==337); |
| 163168 | | - /* (338) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==338); |
| 163169 | | - /* (339) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=339); |
| 163170 | | - /* (340) ecmd ::= SEMI */ yytestcase(yyruleno==340); |
| 163171 | | - /* (341) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==341); |
| 163172 | | - /* (342) ecmd ::= explain cmdx SEMI (NEVER REDUCES) */ assert(yyruleno!=342); |
| 163173 | | - /* (343) trans_opt ::= */ yytestcase(yyruleno==343); |
| 163174 | | - /* (344) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==344); |
| 163175 | | - /* (345) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==345); |
| 163176 | | - /* (346) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==346); |
| 163177 | | - /* (347) savepoint_opt ::= */ yytestcase(yyruleno==347); |
| 163178 | | - /* (348) cmd ::= create_table create_table_args */ yytestcase(yyruleno==348); |
| 163179 | | - /* (349) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==349); |
| 163180 | | - /* (350) columnlist ::= columnname carglist */ yytestcase(yyruleno==350); |
| 163181 | | - /* (351) nm ::= ID|INDEXED */ yytestcase(yyruleno==351); |
| 163182 | | - /* (352) nm ::= STRING */ yytestcase(yyruleno==352); |
| 163183 | | - /* (353) nm ::= JOIN_KW */ yytestcase(yyruleno==353); |
| 163184 | | - /* (354) typetoken ::= typename */ yytestcase(yyruleno==354); |
| 163185 | | - /* (355) typename ::= ID|STRING */ yytestcase(yyruleno==355); |
| 163186 | | - /* (356) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=356); |
| 163187 | | - /* (357) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=357); |
| 163188 | | - /* (358) carglist ::= carglist ccons */ yytestcase(yyruleno==358); |
| 163189 | | - /* (359) carglist ::= */ yytestcase(yyruleno==359); |
| 163190 | | - /* (360) ccons ::= NULL onconf */ yytestcase(yyruleno==360); |
| 163191 | | - /* (361) ccons ::= GENERATED ALWAYS AS generated */ yytestcase(yyruleno==361); |
| 163192 | | - /* (362) ccons ::= AS generated */ yytestcase(yyruleno==362); |
| 163193 | | - /* (363) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==363); |
| 163194 | | - /* (364) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==364); |
| 163195 | | - /* (365) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=365); |
| 163196 | | - /* (366) tconscomma ::= */ yytestcase(yyruleno==366); |
| 163197 | | - /* (367) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=367); |
| 163198 | | - /* (368) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=368); |
| 163199 | | - /* (369) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=369); |
| 163200 | | - /* (370) oneselect ::= values */ yytestcase(yyruleno==370); |
| 163201 | | - /* (371) sclp ::= selcollist COMMA */ yytestcase(yyruleno==371); |
| 163202 | | - /* (372) as ::= ID|STRING */ yytestcase(yyruleno==372); |
| 163203 | | - /* (373) returning ::= */ yytestcase(yyruleno==373); |
| 163204 | | - /* (374) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=374); |
| 163205 | | - /* (375) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==375); |
| 163206 | | - /* (376) exprlist ::= nexprlist */ yytestcase(yyruleno==376); |
| 163207 | | - /* (377) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=377); |
| 163208 | | - /* (378) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=378); |
| 163209 | | - /* (379) nmnum ::= ON */ yytestcase(yyruleno==379); |
| 163210 | | - /* (380) nmnum ::= DELETE */ yytestcase(yyruleno==380); |
| 163211 | | - /* (381) nmnum ::= DEFAULT */ yytestcase(yyruleno==381); |
| 163212 | | - /* (382) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==382); |
| 163213 | | - /* (383) foreach_clause ::= */ yytestcase(yyruleno==383); |
| 163214 | | - /* (384) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==384); |
| 163215 | | - /* (385) trnm ::= nm */ yytestcase(yyruleno==385); |
| 163216 | | - /* (386) tridxby ::= */ yytestcase(yyruleno==386); |
| 163217 | | - /* (387) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==387); |
| 163218 | | - /* (388) database_kw_opt ::= */ yytestcase(yyruleno==388); |
| 163219 | | - /* (389) kwcolumn_opt ::= */ yytestcase(yyruleno==389); |
| 163220 | | - /* (390) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==390); |
| 163221 | | - /* (391) vtabarglist ::= vtabarg */ yytestcase(yyruleno==391); |
| 163222 | | - /* (392) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==392); |
| 163223 | | - /* (393) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==393); |
| 163224 | | - /* (394) anylist ::= */ yytestcase(yyruleno==394); |
| 163225 | | - /* (395) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==395); |
| 163226 | | - /* (396) anylist ::= anylist ANY */ yytestcase(yyruleno==396); |
| 163227 | | - /* (397) with ::= */ yytestcase(yyruleno==397); |
| 163487 | + /* (339) input ::= cmdlist */ yytestcase(yyruleno==339); |
| 163488 | + /* (340) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==340); |
| 163489 | + /* (341) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=341); |
| 163490 | + /* (342) ecmd ::= SEMI */ yytestcase(yyruleno==342); |
| 163491 | + /* (343) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==343); |
| 163492 | + /* (344) ecmd ::= explain cmdx SEMI (NEVER REDUCES) */ assert(yyruleno!=344); |
| 163493 | + /* (345) trans_opt ::= */ yytestcase(yyruleno==345); |
| 163494 | + /* (346) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==346); |
| 163495 | + /* (347) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==347); |
| 163496 | + /* (348) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==348); |
| 163497 | + /* (349) savepoint_opt ::= */ yytestcase(yyruleno==349); |
| 163498 | + /* (350) cmd ::= create_table create_table_args */ yytestcase(yyruleno==350); |
| 163499 | + /* (351) table_option_set ::= table_option (OPTIMIZED OUT) */ assert(yyruleno!=351); |
| 163500 | + /* (352) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==352); |
| 163501 | + /* (353) columnlist ::= columnname carglist */ yytestcase(yyruleno==353); |
| 163502 | + /* (354) nm ::= ID|INDEXED */ yytestcase(yyruleno==354); |
| 163503 | + /* (355) nm ::= STRING */ yytestcase(yyruleno==355); |
| 163504 | + /* (356) nm ::= JOIN_KW */ yytestcase(yyruleno==356); |
| 163505 | + /* (357) typetoken ::= typename */ yytestcase(yyruleno==357); |
| 163506 | + /* (358) typename ::= ID|STRING */ yytestcase(yyruleno==358); |
| 163507 | + /* (359) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=359); |
| 163508 | + /* (360) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=360); |
| 163509 | + /* (361) carglist ::= carglist ccons */ yytestcase(yyruleno==361); |
| 163510 | + /* (362) carglist ::= */ yytestcase(yyruleno==362); |
| 163511 | + /* (363) ccons ::= NULL onconf */ yytestcase(yyruleno==363); |
| 163512 | + /* (364) ccons ::= GENERATED ALWAYS AS generated */ yytestcase(yyruleno==364); |
| 163513 | + /* (365) ccons ::= AS generated */ yytestcase(yyruleno==365); |
| 163514 | + /* (366) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==366); |
| 163515 | + /* (367) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==367); |
| 163516 | + /* (368) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=368); |
| 163517 | + /* (369) tconscomma ::= */ yytestcase(yyruleno==369); |
| 163518 | + /* (370) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=370); |
| 163519 | + /* (371) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=371); |
| 163520 | + /* (372) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=372); |
| 163521 | + /* (373) oneselect ::= values */ yytestcase(yyruleno==373); |
| 163522 | + /* (374) sclp ::= selcollist COMMA */ yytestcase(yyruleno==374); |
| 163523 | + /* (375) as ::= ID|STRING */ yytestcase(yyruleno==375); |
| 163524 | + /* (376) returning ::= */ yytestcase(yyruleno==376); |
| 163525 | + /* (377) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=377); |
| 163526 | + /* (378) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==378); |
| 163527 | + /* (379) exprlist ::= nexprlist */ yytestcase(yyruleno==379); |
| 163528 | + /* (380) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=380); |
| 163529 | + /* (381) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=381); |
| 163530 | + /* (382) nmnum ::= ON */ yytestcase(yyruleno==382); |
| 163531 | + /* (383) nmnum ::= DELETE */ yytestcase(yyruleno==383); |
| 163532 | + /* (384) nmnum ::= DEFAULT */ yytestcase(yyruleno==384); |
| 163533 | + /* (385) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==385); |
| 163534 | + /* (386) foreach_clause ::= */ yytestcase(yyruleno==386); |
| 163535 | + /* (387) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==387); |
| 163536 | + /* (388) trnm ::= nm */ yytestcase(yyruleno==388); |
| 163537 | + /* (389) tridxby ::= */ yytestcase(yyruleno==389); |
| 163538 | + /* (390) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==390); |
| 163539 | + /* (391) database_kw_opt ::= */ yytestcase(yyruleno==391); |
| 163540 | + /* (392) kwcolumn_opt ::= */ yytestcase(yyruleno==392); |
| 163541 | + /* (393) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==393); |
| 163542 | + /* (394) vtabarglist ::= vtabarg */ yytestcase(yyruleno==394); |
| 163543 | + /* (395) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==395); |
| 163544 | + /* (396) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==396); |
| 163545 | + /* (397) anylist ::= */ yytestcase(yyruleno==397); |
| 163546 | + /* (398) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==398); |
| 163547 | + /* (399) anylist ::= anylist ANY */ yytestcase(yyruleno==399); |
| 163548 | + /* (400) with ::= */ yytestcase(yyruleno==400); |
| 163228 | 163549 | break; |
| 163229 | 163550 | /********** End reduce actions ************************************************/ |
| 163230 | 163551 | }; |
| 163231 | 163552 | assert( yyruleno<sizeof(yyRuleInfoLhs)/sizeof(yyRuleInfoLhs[0]) ); |
| 163232 | 163553 | yygoto = yyRuleInfoLhs[yyruleno]; |
| | @@ -163479,18 +163800,17 @@ |
| 163479 | 163800 | } |
| 163480 | 163801 | #endif |
| 163481 | 163802 | yy_destructor(yypParser, (YYCODETYPE)yymajor, &yyminorunion); |
| 163482 | 163803 | yymajor = YYNOCODE; |
| 163483 | 163804 | }else{ |
| 163484 | | - while( yypParser->yytos >= yypParser->yystack |
| 163485 | | - && (yyact = yy_find_reduce_action( |
| 163486 | | - yypParser->yytos->stateno, |
| 163487 | | - YYERRORSYMBOL)) > YY_MAX_SHIFTREDUCE |
| 163488 | | - ){ |
| 163805 | + while( yypParser->yytos > yypParser->yystack ){ |
| 163806 | + yyact = yy_find_reduce_action(yypParser->yytos->stateno, |
| 163807 | + YYERRORSYMBOL); |
| 163808 | + if( yyact<=YY_MAX_SHIFTREDUCE ) break; |
| 163489 | 163809 | yy_pop_parser_stack(yypParser); |
| 163490 | 163810 | } |
| 163491 | | - if( yypParser->yytos < yypParser->yystack || yymajor==0 ){ |
| 163811 | + if( yypParser->yytos <= yypParser->yystack || yymajor==0 ){ |
| 163492 | 163812 | yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); |
| 163493 | 163813 | yy_parse_failed(yypParser); |
| 163494 | 163814 | #ifndef YYNOERRORRECOVERY |
| 163495 | 163815 | yypParser->yyerrcnt = -1; |
| 163496 | 163816 | #endif |
| | @@ -166553,11 +166873,11 @@ |
| 166553 | 166873 | } |
| 166554 | 166874 | #endif |
| 166555 | 166875 | |
| 166556 | 166876 | /* Convert the connection into a zombie and then close it. |
| 166557 | 166877 | */ |
| 166558 | | - db->magic = SQLITE_MAGIC_ZOMBIE; |
| 166878 | + db->eOpenState = SQLITE_STATE_ZOMBIE; |
| 166559 | 166879 | sqlite3LeaveMutexAndCloseZombie(db); |
| 166560 | 166880 | return SQLITE_OK; |
| 166561 | 166881 | } |
| 166562 | 166882 | |
| 166563 | 166883 | /* |
| | @@ -166617,11 +166937,11 @@ |
| 166617 | 166937 | |
| 166618 | 166938 | /* If there are outstanding sqlite3_stmt or sqlite3_backup objects |
| 166619 | 166939 | ** or if the connection has not yet been closed by sqlite3_close_v2(), |
| 166620 | 166940 | ** then just leave the mutex and return. |
| 166621 | 166941 | */ |
| 166622 | | - if( db->magic!=SQLITE_MAGIC_ZOMBIE || connectionIsBusy(db) ){ |
| 166942 | + if( db->eOpenState!=SQLITE_STATE_ZOMBIE || connectionIsBusy(db) ){ |
| 166623 | 166943 | sqlite3_mutex_leave(db->mutex); |
| 166624 | 166944 | return; |
| 166625 | 166945 | } |
| 166626 | 166946 | |
| 166627 | 166947 | /* If we reach this point, it means that the database connection has |
| | @@ -166703,21 +167023,21 @@ |
| 166703 | 167023 | #if SQLITE_USER_AUTHENTICATION |
| 166704 | 167024 | sqlite3_free(db->auth.zAuthUser); |
| 166705 | 167025 | sqlite3_free(db->auth.zAuthPW); |
| 166706 | 167026 | #endif |
| 166707 | 167027 | |
| 166708 | | - db->magic = SQLITE_MAGIC_ERROR; |
| 167028 | + db->eOpenState = SQLITE_STATE_ERROR; |
| 166709 | 167029 | |
| 166710 | 167030 | /* The temp-database schema is allocated differently from the other schema |
| 166711 | 167031 | ** objects (using sqliteMalloc() directly, instead of sqlite3BtreeSchema()). |
| 166712 | 167032 | ** So it needs to be freed here. Todo: Why not roll the temp schema into |
| 166713 | 167033 | ** the same sqliteMalloc() as the one that allocates the database |
| 166714 | 167034 | ** structure? |
| 166715 | 167035 | */ |
| 166716 | 167036 | sqlite3DbFree(db, db->aDb[1].pSchema); |
| 166717 | 167037 | sqlite3_mutex_leave(db->mutex); |
| 166718 | | - db->magic = SQLITE_MAGIC_CLOSED; |
| 167038 | + db->eOpenState = SQLITE_STATE_CLOSED; |
| 166719 | 167039 | sqlite3_mutex_free(db->mutex); |
| 166720 | 167040 | assert( sqlite3LookasideUsed(db,0)==0 ); |
| 166721 | 167041 | if( db->lookaside.bMalloced ){ |
| 166722 | 167042 | sqlite3_free(db->lookaside.pStart); |
| 166723 | 167043 | } |
| | @@ -167101,11 +167421,11 @@ |
| 167101 | 167421 | /* |
| 167102 | 167422 | ** Cause any pending operation to stop at its earliest opportunity. |
| 167103 | 167423 | */ |
| 167104 | 167424 | SQLITE_API void sqlite3_interrupt(sqlite3 *db){ |
| 167105 | 167425 | #ifdef SQLITE_ENABLE_API_ARMOR |
| 167106 | | - if( !sqlite3SafetyCheckOk(db) && (db==0 || db->magic!=SQLITE_MAGIC_ZOMBIE) ){ |
| 167426 | + if( !sqlite3SafetyCheckOk(db) && (db==0 || db->eOpenState!=SQLITE_STATE_ZOMBIE) ){ |
| 167107 | 167427 | (void)SQLITE_MISUSE_BKPT; |
| 167108 | 167428 | return; |
| 167109 | 167429 | } |
| 167110 | 167430 | #endif |
| 167111 | 167431 | AtomicStore(&db->u1.isInterrupted, 1); |
| | @@ -168504,11 +168824,11 @@ |
| 168504 | 168824 | } |
| 168505 | 168825 | } |
| 168506 | 168826 | sqlite3_mutex_enter(db->mutex); |
| 168507 | 168827 | db->errMask = 0xff; |
| 168508 | 168828 | db->nDb = 2; |
| 168509 | | - db->magic = SQLITE_MAGIC_BUSY; |
| 168829 | + db->eOpenState = SQLITE_STATE_BUSY; |
| 168510 | 168830 | db->aDb = db->aDbStatic; |
| 168511 | 168831 | db->lookaside.bDisable = 1; |
| 168512 | 168832 | db->lookaside.sz = 0; |
| 168513 | 168833 | |
| 168514 | 168834 | assert( sizeof(db->aLimit)==sizeof(aHardLimit) ); |
| | @@ -168516,11 +168836,18 @@ |
| 168516 | 168836 | db->aLimit[SQLITE_LIMIT_WORKER_THREADS] = SQLITE_DEFAULT_WORKER_THREADS; |
| 168517 | 168837 | db->autoCommit = 1; |
| 168518 | 168838 | db->nextAutovac = -1; |
| 168519 | 168839 | db->szMmap = sqlite3GlobalConfig.szMmap; |
| 168520 | 168840 | db->nextPagesize = 0; |
| 168841 | +#ifdef SQLITE_ENABLE_SORTER_MMAP |
| 168842 | + /* Beginning with version 3.37.0, using the VFS xFetch() API to memory-map |
| 168843 | + ** the temporary files used to do external sorts (see code in vdbesort.c) |
| 168844 | + ** is disabled. It can still be used either by defining |
| 168845 | + ** SQLITE_ENABLE_SORTER_MMAP at compile time or by using the |
| 168846 | + ** SQLITE_TESTCTRL_SORTER_MMAP test-control at runtime. */ |
| 168521 | 168847 | db->nMaxSorterMmap = 0x7FFFFFFF; |
| 168848 | +#endif |
| 168522 | 168849 | db->flags |= SQLITE_ShortColNames |
| 168523 | 168850 | | SQLITE_EnableTrigger |
| 168524 | 168851 | | SQLITE_EnableView |
| 168525 | 168852 | | SQLITE_CacheSpill |
| 168526 | 168853 | #if !defined(SQLITE_TRUSTED_SCHEMA) || SQLITE_TRUSTED_SCHEMA+0!=0 |
| | @@ -168664,11 +168991,11 @@ |
| 168664 | 168991 | db->aDb[0].zDbSName = "main"; |
| 168665 | 168992 | db->aDb[0].safety_level = SQLITE_DEFAULT_SYNCHRONOUS+1; |
| 168666 | 168993 | db->aDb[1].zDbSName = "temp"; |
| 168667 | 168994 | db->aDb[1].safety_level = PAGER_SYNCHRONOUS_OFF; |
| 168668 | 168995 | |
| 168669 | | - db->magic = SQLITE_MAGIC_OPEN; |
| 168996 | + db->eOpenState = SQLITE_STATE_OPEN; |
| 168670 | 168997 | if( db->mallocFailed ){ |
| 168671 | 168998 | goto opendb_out; |
| 168672 | 168999 | } |
| 168673 | 169000 | |
| 168674 | 169001 | /* Register all built-in functions, but do not attempt to read the |
| | @@ -168731,11 +169058,11 @@ |
| 168731 | 169058 | assert( db!=0 || rc==SQLITE_NOMEM ); |
| 168732 | 169059 | if( rc==SQLITE_NOMEM ){ |
| 168733 | 169060 | sqlite3_close(db); |
| 168734 | 169061 | db = 0; |
| 168735 | 169062 | }else if( rc!=SQLITE_OK ){ |
| 168736 | | - db->magic = SQLITE_MAGIC_SICK; |
| 169063 | + db->eOpenState = SQLITE_STATE_SICK; |
| 168737 | 169064 | } |
| 168738 | 169065 | *ppDb = db; |
| 168739 | 169066 | #ifdef SQLITE_ENABLE_SQLLOG |
| 168740 | 169067 | if( sqlite3GlobalConfig.xSqllog ){ |
| 168741 | 169068 | /* Opening a db handle. Fourth parameter is passed 0. */ |
| | @@ -215510,18 +215837,17 @@ |
| 215510 | 215837 | } |
| 215511 | 215838 | #endif |
| 215512 | 215839 | fts5yy_destructor(fts5yypParser, (fts5YYCODETYPE)fts5yymajor, &fts5yyminorunion); |
| 215513 | 215840 | fts5yymajor = fts5YYNOCODE; |
| 215514 | 215841 | }else{ |
| 215515 | | - while( fts5yypParser->fts5yytos >= fts5yypParser->fts5yystack |
| 215516 | | - && (fts5yyact = fts5yy_find_reduce_action( |
| 215517 | | - fts5yypParser->fts5yytos->stateno, |
| 215518 | | - fts5YYERRORSYMBOL)) > fts5YY_MAX_SHIFTREDUCE |
| 215519 | | - ){ |
| 215842 | + while( fts5yypParser->fts5yytos > fts5yypParser->fts5yystack ){ |
| 215843 | + fts5yyact = fts5yy_find_reduce_action(fts5yypParser->fts5yytos->stateno, |
| 215844 | + fts5YYERRORSYMBOL); |
| 215845 | + if( fts5yyact<=fts5YY_MAX_SHIFTREDUCE ) break; |
| 215520 | 215846 | fts5yy_pop_parser_stack(fts5yypParser); |
| 215521 | 215847 | } |
| 215522 | | - if( fts5yypParser->fts5yytos < fts5yypParser->fts5yystack || fts5yymajor==0 ){ |
| 215848 | + if( fts5yypParser->fts5yytos <= fts5yypParser->fts5yystack || fts5yymajor==0 ){ |
| 215523 | 215849 | fts5yy_destructor(fts5yypParser,(fts5YYCODETYPE)fts5yymajor,&fts5yyminorunion); |
| 215524 | 215850 | fts5yy_parse_failed(fts5yypParser); |
| 215525 | 215851 | #ifndef fts5YYNOERRORRECOVERY |
| 215526 | 215852 | fts5yypParser->fts5yyerrcnt = -1; |
| 215527 | 215853 | #endif |
| | @@ -230849,11 +231175,11 @@ |
| 230849 | 231175 | int nArg, /* Number of args */ |
| 230850 | 231176 | sqlite3_value **apUnused /* Function arguments */ |
| 230851 | 231177 | ){ |
| 230852 | 231178 | assert( nArg==0 ); |
| 230853 | 231179 | UNUSED_PARAM2(nArg, apUnused); |
| 230854 | | - sqlite3_result_text(pCtx, "fts5: 2021-08-06 20:17:39 087b8b41c6ed76b55c11315e7e95679d67590be20ae21108b593d00bb7d1c57a", -1, SQLITE_TRANSIENT); |
| 231180 | + sqlite3_result_text(pCtx, "fts5: 2021-09-06 11:44:19 b3cfe23bec0b95ca673802526704200e2396df715fdded72aa71addd7f47e0e1", -1, SQLITE_TRANSIENT); |
| 230855 | 231181 | } |
| 230856 | 231182 | |
| 230857 | 231183 | /* |
| 230858 | 231184 | ** Return true if zName is the extension on one of the shadow tables used |
| 230859 | 231185 | ** by this module. |
| 230860 | 231186 | |