From 08f512f4367806108a38bb698de68b7f721f721b Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Thu, 22 Feb 2007 23:13:56 +0000 Subject: [PATCH] update windows build to use sqlite 3.3.13 git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4353 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- libs/win32/sqlite/keywordhash.h | 196 +- libs/win32/sqlite/opcodes.c | 222 +-- libs/win32/sqlite/opcodes.h | 284 +-- libs/win32/sqlite/parse.c | 3014 ++++++++++++++++--------------- libs/win32/sqlite/parse.h | 26 +- libs/win32/sqlite/sqlite.vcproj | 24 +- libs/win32/sqlite/sqlite3.h | 64 +- 7 files changed, 1944 insertions(+), 1886 deletions(-) diff --git a/libs/win32/sqlite/keywordhash.h b/libs/win32/sqlite/keywordhash.h index 0a7187d1a5..bc0898f3be 100644 --- a/libs/win32/sqlite/keywordhash.h +++ b/libs/win32/sqlite/keywordhash.h @@ -1,98 +1,98 @@ -/* Hash score: 167 */ -static int keywordCode(const char *z, int n){ - static const char zText[544] = - "ABORTABLEFTEMPORARYADDATABASELECTHENDEFAULTRANSACTIONATURALTER" - "AISEACHECKEYAFTEREFERENCESCAPELSEXCEPTRIGGEREGEXPLAINITIALLYANALYZE" - "XCLUSIVEXISTSTATEMENTANDEFERRABLEATTACHAVINGLOBEFOREIGNOREINDEX" - "AUTOINCREMENTBEGINNERENAMEBETWEENOTNULLIKEBYCASCADEFERREDELETE" - "CASECASTCOLLATECOLUMNCOMMITCONFLICTCONSTRAINTERSECTCREATECROSS" - "CURRENT_DATECURRENT_TIMESTAMPLANDESCDETACHDISTINCTDROPRAGMATCH" - "FAILIMITFROMFULLGROUPDATEIFIMMEDIATEINSERTINSTEADINTOFFSETISNULL" - "JOINORDEREPLACEOUTERESTRICTPRIMARYQUERYRIGHTROLLBACKROWHENUNION" - "UNIQUEUSINGVACUUMVALUESVIEWHEREVIRTUAL"; - static const unsigned char aHash[127] = { - 92, 80, 107, 91, 0, 4, 0, 0, 114, 0, 83, 0, 0, - 96, 44, 76, 93, 0, 106, 109, 97, 90, 0, 10, 0, 0, - 113, 0, 117, 103, 0, 28, 48, 0, 41, 0, 0, 65, 71, - 0, 63, 19, 0, 105, 36, 104, 0, 108, 75, 0, 0, 33, - 0, 61, 37, 0, 8, 0, 115, 38, 12, 0, 77, 40, 25, - 66, 0, 0, 31, 81, 53, 30, 50, 20, 88, 0, 34, 0, - 74, 26, 0, 72, 0, 0, 0, 64, 47, 67, 22, 87, 29, - 69, 86, 0, 1, 0, 9, 101, 58, 18, 0, 112, 82, 99, - 55, 6, 85, 0, 0, 49, 94, 0, 102, 0, 70, 0, 0, - 15, 0, 116, 51, 56, 0, 2, 54, 0, 111, - }; - static const unsigned char aNext[117] = { - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, - 0, 11, 0, 0, 0, 0, 5, 13, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, - 0, 16, 0, 0, 23, 52, 0, 0, 0, 0, 45, 0, 59, - 0, 0, 0, 0, 0, 0, 0, 0, 43, 73, 0, 24, 60, - 21, 0, 79, 0, 0, 68, 0, 0, 84, 46, 0, 0, 0, - 0, 0, 0, 0, 0, 39, 95, 98, 0, 0, 100, 0, 32, - 0, 14, 27, 78, 0, 57, 89, 0, 35, 0, 62, 0, 110, - }; - static const unsigned char aLen[117] = { - 5, 5, 4, 4, 9, 2, 3, 8, 2, 6, 4, 3, 7, - 11, 2, 7, 5, 5, 4, 5, 3, 5, 10, 6, 4, 6, - 7, 6, 7, 9, 3, 7, 9, 6, 9, 3, 10, 6, 6, - 4, 6, 7, 3, 6, 7, 5, 13, 2, 2, 5, 5, 6, - 7, 7, 3, 4, 4, 2, 7, 3, 8, 6, 4, 4, 7, - 6, 6, 8, 10, 9, 6, 5, 12, 17, 12, 4, 4, 6, - 8, 2, 4, 6, 5, 4, 5, 4, 4, 5, 6, 2, 9, - 6, 7, 4, 6, 2, 3, 6, 4, 5, 7, 5, 8, 7, - 5, 5, 8, 3, 4, 5, 6, 5, 6, 6, 4, 5, 7, - }; - static const unsigned short int aOffset[117] = { - 0, 4, 7, 10, 10, 14, 19, 21, 26, 27, 32, 34, 36, - 42, 51, 52, 57, 61, 65, 67, 71, 74, 78, 86, 91, 94, - 99, 105, 108, 113, 118, 122, 128, 136, 141, 150, 152, 162, 167, - 172, 175, 177, 177, 181, 185, 187, 192, 194, 196, 205, 208, 212, - 218, 224, 224, 227, 230, 234, 236, 237, 241, 248, 254, 258, 262, - 269, 275, 281, 289, 296, 305, 311, 316, 328, 328, 344, 348, 352, - 358, 359, 366, 369, 373, 378, 381, 386, 390, 394, 397, 403, 405, - 414, 420, 427, 430, 430, 433, 436, 442, 446, 450, 457, 461, 469, - 476, 481, 486, 494, 496, 500, 505, 511, 516, 522, 528, 531, 536, - }; - static const unsigned char aCode[117] = { - TK_ABORT, TK_TABLE, TK_JOIN_KW, TK_TEMP, TK_TEMP, - TK_OR, TK_ADD, TK_DATABASE, TK_AS, TK_SELECT, - TK_THEN, TK_END, TK_DEFAULT, TK_TRANSACTION,TK_ON, - TK_JOIN_KW, TK_ALTER, TK_RAISE, TK_EACH, TK_CHECK, - TK_KEY, TK_AFTER, TK_REFERENCES, TK_ESCAPE, TK_ELSE, - TK_EXCEPT, TK_TRIGGER, TK_LIKE_KW, TK_EXPLAIN, TK_INITIALLY, - TK_ALL, TK_ANALYZE, TK_EXCLUSIVE, TK_EXISTS, TK_STATEMENT, - TK_AND, TK_DEFERRABLE, TK_ATTACH, TK_HAVING, TK_LIKE_KW, - TK_BEFORE, TK_FOREIGN, TK_FOR, TK_IGNORE, TK_REINDEX, - TK_INDEX, TK_AUTOINCR, TK_TO, TK_IN, TK_BEGIN, - TK_JOIN_KW, TK_RENAME, TK_BETWEEN, TK_NOTNULL, TK_NOT, - TK_NULL, TK_LIKE_KW, TK_BY, TK_CASCADE, TK_ASC, - TK_DEFERRED, TK_DELETE, TK_CASE, TK_CAST, TK_COLLATE, - TK_COLUMNKW, TK_COMMIT, TK_CONFLICT, TK_CONSTRAINT, TK_INTERSECT, - TK_CREATE, TK_JOIN_KW, TK_CTIME_KW, TK_CTIME_KW, TK_CTIME_KW, - TK_PLAN, TK_DESC, TK_DETACH, TK_DISTINCT, TK_IS, - TK_DROP, TK_PRAGMA, TK_MATCH, TK_FAIL, TK_LIMIT, - TK_FROM, TK_JOIN_KW, TK_GROUP, TK_UPDATE, TK_IF, - TK_IMMEDIATE, TK_INSERT, TK_INSTEAD, TK_INTO, TK_OFFSET, - TK_OF, TK_SET, TK_ISNULL, TK_JOIN, TK_ORDER, - TK_REPLACE, TK_JOIN_KW, TK_RESTRICT, TK_PRIMARY, TK_QUERY, - TK_JOIN_KW, TK_ROLLBACK, TK_ROW, TK_WHEN, TK_UNION, - TK_UNIQUE, TK_USING, TK_VACUUM, TK_VALUES, TK_VIEW, - TK_WHERE, TK_VIRTUAL, - }; - int h, i; - if( n<2 ) return TK_ID; - h = ((charMap(z[0])*4) ^ - (charMap(z[n-1])*3) ^ - n) % 127; - for(i=((int)aHash[h])-1; i>=0; i=((int)aNext[i])-1){ - if( aLen[i]==n && sqlite3StrNICmp(&zText[aOffset[i]],z,n)==0 ){ - return aCode[i]; - } - } - return TK_ID; -} -int sqlite3KeywordCode(const unsigned char *z, int n){ - return keywordCode((char*)z, n); -} +/* Hash score: 167 */ +static int keywordCode(const char *z, int n){ + static const char zText[544] = + "ABORTABLEFTEMPORARYADDATABASELECTHENDEFAULTRANSACTIONATURALTER" + "AISEACHECKEYAFTEREFERENCESCAPELSEXCEPTRIGGEREGEXPLAINITIALLYANALYZE" + "XCLUSIVEXISTSTATEMENTANDEFERRABLEATTACHAVINGLOBEFOREIGNOREINDEX" + "AUTOINCREMENTBEGINNERENAMEBETWEENOTNULLIKEBYCASCADEFERREDELETE" + "CASECASTCOLLATECOLUMNCOMMITCONFLICTCONSTRAINTERSECTCREATECROSS" + "CURRENT_DATECURRENT_TIMESTAMPLANDESCDETACHDISTINCTDROPRAGMATCH" + "FAILIMITFROMFULLGROUPDATEIFIMMEDIATEINSERTINSTEADINTOFFSETISNULL" + "JOINORDEREPLACEOUTERESTRICTPRIMARYQUERYRIGHTROLLBACKROWHENUNION" + "UNIQUEUSINGVACUUMVALUESVIEWHEREVIRTUAL"; + static const unsigned char aHash[127] = { + 92, 80, 107, 91, 0, 4, 0, 0, 114, 0, 83, 0, 0, + 95, 44, 76, 93, 0, 106, 109, 97, 90, 0, 10, 0, 0, + 113, 0, 117, 103, 0, 28, 48, 0, 41, 0, 0, 65, 71, + 0, 63, 19, 0, 105, 36, 104, 0, 108, 74, 0, 0, 33, + 0, 61, 37, 0, 8, 0, 115, 38, 12, 0, 77, 40, 25, + 66, 0, 0, 31, 81, 53, 30, 50, 20, 88, 0, 34, 0, + 75, 26, 0, 72, 0, 0, 0, 64, 47, 67, 22, 87, 29, + 69, 86, 0, 1, 0, 9, 101, 58, 18, 0, 112, 82, 99, + 54, 6, 85, 0, 0, 49, 94, 0, 102, 0, 70, 0, 0, + 15, 0, 116, 51, 56, 0, 2, 55, 0, 111, + }; + static const unsigned char aNext[117] = { + 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, + 0, 11, 0, 0, 0, 0, 5, 13, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 23, 52, 0, 0, 0, 0, 45, 0, 59, + 0, 0, 0, 0, 0, 0, 0, 0, 73, 42, 0, 24, 60, + 21, 0, 79, 0, 0, 68, 0, 0, 84, 46, 0, 0, 0, + 0, 0, 0, 0, 0, 39, 96, 98, 0, 0, 100, 0, 32, + 0, 14, 27, 78, 0, 57, 89, 0, 35, 0, 62, 0, 110, + }; + static const unsigned char aLen[117] = { + 5, 5, 4, 4, 9, 2, 3, 8, 2, 6, 4, 3, 7, + 11, 2, 7, 5, 5, 4, 5, 3, 5, 10, 6, 4, 6, + 7, 6, 7, 9, 3, 7, 9, 6, 9, 3, 10, 6, 6, + 4, 6, 3, 7, 6, 7, 5, 13, 2, 2, 5, 5, 6, + 7, 3, 7, 4, 4, 2, 7, 3, 8, 6, 4, 4, 7, + 6, 6, 8, 10, 9, 6, 5, 12, 12, 17, 4, 4, 6, + 8, 2, 4, 6, 5, 4, 5, 4, 4, 5, 6, 2, 9, + 6, 7, 4, 2, 6, 3, 6, 4, 5, 7, 5, 8, 7, + 5, 5, 8, 3, 4, 5, 6, 5, 6, 6, 4, 5, 7, + }; + static const unsigned short int aOffset[117] = { + 0, 4, 7, 10, 10, 14, 19, 21, 26, 27, 32, 34, 36, + 42, 51, 52, 57, 61, 65, 67, 71, 74, 78, 86, 91, 94, + 99, 105, 108, 113, 118, 122, 128, 136, 141, 150, 152, 162, 167, + 172, 175, 177, 177, 181, 185, 187, 192, 194, 196, 205, 208, 212, + 218, 224, 224, 227, 230, 234, 236, 237, 241, 248, 254, 258, 262, + 269, 275, 281, 289, 296, 305, 311, 316, 328, 328, 344, 348, 352, + 358, 359, 366, 369, 373, 378, 381, 386, 390, 394, 397, 403, 405, + 414, 420, 427, 430, 430, 433, 436, 442, 446, 450, 457, 461, 469, + 476, 481, 486, 494, 496, 500, 505, 511, 516, 522, 528, 531, 536, + }; + static const unsigned char aCode[117] = { + TK_ABORT, TK_TABLE, TK_JOIN_KW, TK_TEMP, TK_TEMP, + TK_OR, TK_ADD, TK_DATABASE, TK_AS, TK_SELECT, + TK_THEN, TK_END, TK_DEFAULT, TK_TRANSACTION,TK_ON, + TK_JOIN_KW, TK_ALTER, TK_RAISE, TK_EACH, TK_CHECK, + TK_KEY, TK_AFTER, TK_REFERENCES, TK_ESCAPE, TK_ELSE, + TK_EXCEPT, TK_TRIGGER, TK_LIKE_KW, TK_EXPLAIN, TK_INITIALLY, + TK_ALL, TK_ANALYZE, TK_EXCLUSIVE, TK_EXISTS, TK_STATEMENT, + TK_AND, TK_DEFERRABLE, TK_ATTACH, TK_HAVING, TK_LIKE_KW, + TK_BEFORE, TK_FOR, TK_FOREIGN, TK_IGNORE, TK_REINDEX, + TK_INDEX, TK_AUTOINCR, TK_TO, TK_IN, TK_BEGIN, + TK_JOIN_KW, TK_RENAME, TK_BETWEEN, TK_NOT, TK_NOTNULL, + TK_NULL, TK_LIKE_KW, TK_BY, TK_CASCADE, TK_ASC, + TK_DEFERRED, TK_DELETE, TK_CASE, TK_CAST, TK_COLLATE, + TK_COLUMNKW, TK_COMMIT, TK_CONFLICT, TK_CONSTRAINT, TK_INTERSECT, + TK_CREATE, TK_JOIN_KW, TK_CTIME_KW, TK_CTIME_KW, TK_CTIME_KW, + TK_PLAN, TK_DESC, TK_DETACH, TK_DISTINCT, TK_IS, + TK_DROP, TK_PRAGMA, TK_MATCH, TK_FAIL, TK_LIMIT, + TK_FROM, TK_JOIN_KW, TK_GROUP, TK_UPDATE, TK_IF, + TK_IMMEDIATE, TK_INSERT, TK_INSTEAD, TK_INTO, TK_OF, + TK_OFFSET, TK_SET, TK_ISNULL, TK_JOIN, TK_ORDER, + TK_REPLACE, TK_JOIN_KW, TK_RESTRICT, TK_PRIMARY, TK_QUERY, + TK_JOIN_KW, TK_ROLLBACK, TK_ROW, TK_WHEN, TK_UNION, + TK_UNIQUE, TK_USING, TK_VACUUM, TK_VALUES, TK_VIEW, + TK_WHERE, TK_VIRTUAL, + }; + int h, i; + if( n<2 ) return TK_ID; + h = ((charMap(z[0])*4) ^ + (charMap(z[n-1])*3) ^ + n) % 127; + for(i=((int)aHash[h])-1; i>=0; i=((int)aNext[i])-1){ + if( aLen[i]==n && sqlite3StrNICmp(&zText[aOffset[i]],z,n)==0 ){ + return aCode[i]; + } + } + return TK_ID; +} +int sqlite3KeywordCode(const unsigned char *z, int n){ + return keywordCode((char*)z, n); +} diff --git a/libs/win32/sqlite/opcodes.c b/libs/win32/sqlite/opcodes.c index b3dbb3b801..4f79647649 100644 --- a/libs/win32/sqlite/opcodes.c +++ b/libs/win32/sqlite/opcodes.c @@ -2,71 +2,71 @@ /* See the mkopcodec.awk script for details. */ #if !defined(SQLITE_OMIT_EXPLAIN) || !defined(NDEBUG) || defined(VDBE_PROFILE) || defined(SQLITE_DEBUG) const char *const sqlite3OpcodeNames[] = { "?", - /* 1 */ "VRowid", - /* 2 */ "VFilter", - /* 3 */ "ContextPop", - /* 4 */ "IntegrityCk", - /* 5 */ "DropTrigger", - /* 6 */ "DropIndex", - /* 7 */ "IdxInsert", - /* 8 */ "Delete", - /* 9 */ "MoveGt", - /* 10 */ "OpenEphemeral", - /* 11 */ "VerifyCookie", - /* 12 */ "Push", - /* 13 */ "Dup", - /* 14 */ "Blob", - /* 15 */ "FifoWrite", + /* 1 */ "MemLoad", + /* 2 */ "VNext", + /* 3 */ "Column", + /* 4 */ "SetCookie", + /* 5 */ "IfMemPos", + /* 6 */ "Sequence", + /* 7 */ "MoveGt", + /* 8 */ "RowKey", + /* 9 */ "OpenWrite", + /* 10 */ "If", + /* 11 */ "Pop", + /* 12 */ "VRowid", + /* 13 */ "CollSeq", + /* 14 */ "OpenRead", + /* 15 */ "Expire", /* 16 */ "Not", - /* 17 */ "IdxGT", - /* 18 */ "RowKey", - /* 19 */ "IsUnique", - /* 20 */ "SetNumColumns", - /* 21 */ "VUpdate", - /* 22 */ "Expire", - /* 23 */ "IdxIsNull", - /* 24 */ "NullRow", - /* 25 */ "OpenPseudo", - /* 26 */ "OpenWrite", - /* 27 */ "OpenRead", - /* 28 */ "Transaction", - /* 29 */ "AutoCommit", - /* 30 */ "Pop", - /* 31 */ "Halt", - /* 32 */ "Vacuum", - /* 33 */ "IfMemNeg", - /* 34 */ "RowData", - /* 35 */ "NotExists", - /* 36 */ "MoveLe", - /* 37 */ "SetCookie", - /* 38 */ "Variable", - /* 39 */ "VNext", - /* 40 */ "VDestroy", - /* 41 */ "TableLock", - /* 42 */ "MemMove", - /* 43 */ "LoadAnalysis", - /* 44 */ "IdxDelete", - /* 45 */ "Sort", - /* 46 */ "ResetCount", + /* 17 */ "AutoCommit", + /* 18 */ "IntegrityCk", + /* 19 */ "Sort", + /* 20 */ "Function", + /* 21 */ "Noop", + /* 22 */ "Return", + /* 23 */ "NewRowid", + /* 24 */ "IfMemNeg", + /* 25 */ "Variable", + /* 26 */ "String", + /* 27 */ "RealAffinity", + /* 28 */ "ParseSchema", + /* 29 */ "VOpen", + /* 30 */ "Close", + /* 31 */ "CreateIndex", + /* 32 */ "IsUnique", + /* 33 */ "NotFound", + /* 34 */ "Int64", + /* 35 */ "MustBeInt", + /* 36 */ "Halt", + /* 37 */ "Rowid", + /* 38 */ "IdxLT", + /* 39 */ "AddImm", + /* 40 */ "Statement", + /* 41 */ "RowData", + /* 42 */ "MemMax", + /* 43 */ "Push", + /* 44 */ "NotExists", + /* 45 */ "MemIncr", + /* 46 */ "Gosub", /* 47 */ "Integer", - /* 48 */ "AggStep", - /* 49 */ "CreateIndex", - /* 50 */ "NewRowid", - /* 51 */ "MoveLt", - /* 52 */ "Explain", - /* 53 */ "Return", - /* 54 */ "MemLoad", - /* 55 */ "IdxLT", - /* 56 */ "Rewind", - /* 57 */ "MakeIdxRec", - /* 58 */ "AddImm", - /* 59 */ "Null", - /* 60 */ "VColumn", + /* 48 */ "MemInt", + /* 49 */ "Prev", + /* 50 */ "VColumn", + /* 51 */ "CreateTable", + /* 52 */ "Last", + /* 53 */ "IdxRowid", + /* 54 */ "MakeIdxRec", + /* 55 */ "ResetCount", + /* 56 */ "FifoWrite", + /* 57 */ "Callback", + /* 58 */ "ContextPush", + /* 59 */ "DropTrigger", + /* 60 */ "DropIndex", /* 61 */ "Or", /* 62 */ "And", - /* 63 */ "MemNull", - /* 64 */ "MemIncr", - /* 65 */ "Clear", + /* 63 */ "IdxGE", + /* 64 */ "IdxDelete", + /* 65 */ "Vacuum", /* 66 */ "IsNull", /* 67 */ "NotNull", /* 68 */ "Ne", @@ -75,7 +75,7 @@ const char *const sqlite3OpcodeNames[] = { "?", /* 71 */ "Le", /* 72 */ "Lt", /* 73 */ "Ge", - /* 74 */ "If", + /* 74 */ "MoveLe", /* 75 */ "BitAnd", /* 76 */ "BitOr", /* 77 */ "ShiftLeft", @@ -86,57 +86,57 @@ const char *const sqlite3OpcodeNames[] = { "?", /* 82 */ "Divide", /* 83 */ "Remainder", /* 84 */ "Concat", - /* 85 */ "Negative", - /* 86 */ "RealAffinity", - /* 87 */ "BitNot", - /* 88 */ "String8", - /* 89 */ "Callback", - /* 90 */ "AggFinal", - /* 91 */ "IfMemZero", - /* 92 */ "Last", - /* 93 */ "Rowid", - /* 94 */ "Sequence", - /* 95 */ "NotFound", - /* 96 */ "MakeRecord", - /* 97 */ "String", - /* 98 */ "Goto", - /* 99 */ "VCreate", - /* 100 */ "MemInt", - /* 101 */ "IfMemPos", - /* 102 */ "DropTable", - /* 103 */ "IdxRowid", - /* 104 */ "Insert", - /* 105 */ "Column", - /* 106 */ "Noop", - /* 107 */ "VOpen", - /* 108 */ "CreateTable", - /* 109 */ "Found", - /* 110 */ "Distinct", - /* 111 */ "Close", - /* 112 */ "Statement", - /* 113 */ "IfNot", - /* 114 */ "Pull", - /* 115 */ "VBegin", - /* 116 */ "MemMax", - /* 117 */ "MemStore", - /* 118 */ "Next", - /* 119 */ "Prev", - /* 120 */ "MoveGe", - /* 121 */ "MustBeInt", - /* 122 */ "ForceInt", - /* 123 */ "CollSeq", - /* 124 */ "Gosub", - /* 125 */ "ContextPush", + /* 85 */ "IfNot", + /* 86 */ "Negative", + /* 87 */ "DropTable", + /* 88 */ "BitNot", + /* 89 */ "String8", + /* 90 */ "MakeRecord", + /* 91 */ "Delete", + /* 92 */ "AggFinal", + /* 93 */ "Dup", + /* 94 */ "Goto", + /* 95 */ "TableLock", + /* 96 */ "FifoRead", + /* 97 */ "Clear", + /* 98 */ "IdxGT", + /* 99 */ "MoveLt", + /* 100 */ "VerifyCookie", + /* 101 */ "AggStep", + /* 102 */ "Pull", + /* 103 */ "SetNumColumns", + /* 104 */ "AbsValue", + /* 105 */ "Transaction", + /* 106 */ "VFilter", + /* 107 */ "VDestroy", + /* 108 */ "ContextPop", + /* 109 */ "Next", + /* 110 */ "IdxInsert", + /* 111 */ "Distinct", + /* 112 */ "Insert", + /* 113 */ "Destroy", + /* 114 */ "ReadCookie", + /* 115 */ "ForceInt", + /* 116 */ "LoadAnalysis", + /* 117 */ "Explain", + /* 118 */ "IfMemZero", + /* 119 */ "OpenPseudo", + /* 120 */ "OpenEphemeral", + /* 121 */ "Null", + /* 122 */ "Blob", + /* 123 */ "MemStore", + /* 124 */ "Rewind", + /* 125 */ "MoveGe", /* 126 */ "Real", /* 127 */ "HexBlob", - /* 128 */ "FifoRead", - /* 129 */ "ParseSchema", - /* 130 */ "Destroy", - /* 131 */ "IdxGE", - /* 132 */ "ReadCookie", - /* 133 */ "AbsValue", - /* 134 */ "Function", - /* 135 */ "Int64", + /* 128 */ "VBegin", + /* 129 */ "VUpdate", + /* 130 */ "VCreate", + /* 131 */ "MemMove", + /* 132 */ "MemNull", + /* 133 */ "Found", + /* 134 */ "NullRow", + /* 135 */ "NotUsed_135", /* 136 */ "NotUsed_136", /* 137 */ "NotUsed_137", /* 138 */ "NotUsed_138", diff --git a/libs/win32/sqlite/opcodes.h b/libs/win32/sqlite/opcodes.h index b7f5cc410e..69ffced309 100644 --- a/libs/win32/sqlite/opcodes.h +++ b/libs/win32/sqlite/opcodes.h @@ -1,147 +1,147 @@ /* Automatically generated. Do not edit */ /* See the mkopcodeh.awk script for details */ -#define OP_VRowid 1 -#define OP_VFilter 2 -#define OP_ContextPop 3 -#define OP_IntegrityCk 4 -#define OP_DropTrigger 5 -#define OP_DropIndex 6 -#define OP_IdxInsert 7 -#define OP_Delete 8 -#define OP_MoveGt 9 -#define OP_OpenEphemeral 10 -#define OP_VerifyCookie 11 -#define OP_Push 12 -#define OP_Dup 13 -#define OP_Blob 14 -#define OP_FifoWrite 15 -#define OP_IdxGT 17 -#define OP_RowKey 18 -#define OP_IsUnique 19 -#define OP_SetNumColumns 20 -#define OP_Eq 69 /* same as TK_EQ */ -#define OP_VUpdate 21 -#define OP_Expire 22 -#define OP_IdxIsNull 23 -#define OP_NullRow 24 -#define OP_OpenPseudo 25 -#define OP_OpenWrite 26 -#define OP_OpenRead 27 -#define OP_Transaction 28 -#define OP_AutoCommit 29 -#define OP_Negative 85 /* same as TK_UMINUS */ -#define OP_Pop 30 -#define OP_Halt 31 -#define OP_Vacuum 32 -#define OP_IfMemNeg 33 -#define OP_RowData 34 -#define OP_NotExists 35 -#define OP_MoveLe 36 -#define OP_SetCookie 37 -#define OP_Variable 38 -#define OP_VNext 39 -#define OP_VDestroy 40 -#define OP_TableLock 41 -#define OP_MemMove 42 -#define OP_LoadAnalysis 43 -#define OP_IdxDelete 44 -#define OP_Sort 45 -#define OP_ResetCount 46 -#define OP_NotNull 67 /* same as TK_NOTNULL */ +#define OP_MemLoad 1 +#define OP_VNext 2 +#define OP_HexBlob 127 /* same as TK_BLOB */ +#define OP_Column 3 +#define OP_SetCookie 4 +#define OP_IfMemPos 5 +#define OP_Real 126 /* same as TK_FLOAT */ +#define OP_Sequence 6 +#define OP_MoveGt 7 #define OP_Ge 73 /* same as TK_GE */ +#define OP_RowKey 8 +#define OP_Eq 69 /* same as TK_EQ */ +#define OP_OpenWrite 9 +#define OP_NotNull 67 /* same as TK_NOTNULL */ +#define OP_If 10 +#define OP_ToInt 142 /* same as TK_TO_INT */ +#define OP_String8 89 /* same as TK_STRING */ +#define OP_Pop 11 +#define OP_VRowid 12 +#define OP_CollSeq 13 +#define OP_OpenRead 14 +#define OP_Expire 15 +#define OP_AutoCommit 17 +#define OP_Gt 70 /* same as TK_GT */ +#define OP_IntegrityCk 18 +#define OP_Sort 19 +#define OP_Function 20 +#define OP_And 62 /* same as TK_AND */ +#define OP_Subtract 80 /* same as TK_MINUS */ +#define OP_Noop 21 +#define OP_Return 22 #define OP_Remainder 83 /* same as TK_REM */ +#define OP_NewRowid 23 +#define OP_Multiply 81 /* same as TK_STAR */ +#define OP_IfMemNeg 24 +#define OP_Variable 25 +#define OP_String 26 +#define OP_RealAffinity 27 +#define OP_ParseSchema 28 +#define OP_VOpen 29 +#define OP_Close 30 +#define OP_CreateIndex 31 +#define OP_IsUnique 32 +#define OP_NotFound 33 +#define OP_Int64 34 +#define OP_MustBeInt 35 +#define OP_Halt 36 +#define OP_Rowid 37 +#define OP_IdxLT 38 +#define OP_AddImm 39 +#define OP_Statement 40 +#define OP_RowData 41 +#define OP_MemMax 42 +#define OP_Push 43 +#define OP_Or 61 /* same as TK_OR */ +#define OP_NotExists 44 +#define OP_MemIncr 45 +#define OP_Gosub 46 #define OP_Divide 82 /* same as TK_SLASH */ #define OP_Integer 47 -#define OP_AggStep 48 -#define OP_CreateIndex 49 -#define OP_NewRowid 50 -#define OP_MoveLt 51 -#define OP_Explain 52 -#define OP_And 62 /* same as TK_AND */ -#define OP_ShiftLeft 77 /* same as TK_LSHIFT */ -#define OP_Real 126 /* same as TK_FLOAT */ -#define OP_Return 53 -#define OP_MemLoad 54 -#define OP_IdxLT 55 -#define OP_Rewind 56 -#define OP_MakeIdxRec 57 -#define OP_Gt 70 /* same as TK_GT */ -#define OP_AddImm 58 -#define OP_Subtract 80 /* same as TK_MINUS */ -#define OP_Null 59 -#define OP_VColumn 60 -#define OP_MemNull 63 -#define OP_MemIncr 64 -#define OP_Clear 65 -#define OP_IsNull 66 /* same as TK_ISNULL */ -#define OP_If 74 -#define OP_ToBlob 140 /* same as TK_TO_BLOB */ -#define OP_RealAffinity 86 -#define OP_Callback 89 -#define OP_AggFinal 90 -#define OP_IfMemZero 91 -#define OP_Last 92 -#define OP_Rowid 93 -#define OP_Sequence 94 -#define OP_NotFound 95 -#define OP_MakeRecord 96 -#define OP_ToText 139 /* same as TK_TO_TEXT */ -#define OP_BitAnd 75 /* same as TK_BITAND */ -#define OP_Add 79 /* same as TK_PLUS */ -#define OP_HexBlob 127 /* same as TK_BLOB */ -#define OP_String 97 -#define OP_Goto 98 -#define OP_VCreate 99 -#define OP_MemInt 100 -#define OP_IfMemPos 101 -#define OP_DropTable 102 -#define OP_IdxRowid 103 -#define OP_Insert 104 -#define OP_Column 105 -#define OP_Noop 106 -#define OP_Not 16 /* same as TK_NOT */ -#define OP_Le 71 /* same as TK_LE */ -#define OP_BitOr 76 /* same as TK_BITOR */ -#define OP_Multiply 81 /* same as TK_STAR */ -#define OP_String8 88 /* same as TK_STRING */ -#define OP_VOpen 107 -#define OP_CreateTable 108 -#define OP_Found 109 -#define OP_Distinct 110 -#define OP_Close 111 -#define OP_Statement 112 -#define OP_IfNot 113 -#define OP_ToInt 142 /* same as TK_TO_INT */ -#define OP_Pull 114 -#define OP_VBegin 115 -#define OP_MemMax 116 -#define OP_MemStore 117 -#define OP_Next 118 -#define OP_Prev 119 -#define OP_MoveGe 120 -#define OP_Lt 72 /* same as TK_LT */ -#define OP_Ne 68 /* same as TK_NE */ -#define OP_MustBeInt 121 -#define OP_ForceInt 122 -#define OP_ShiftRight 78 /* same as TK_RSHIFT */ -#define OP_CollSeq 123 -#define OP_Gosub 124 -#define OP_ContextPush 125 -#define OP_FifoRead 128 -#define OP_ParseSchema 129 -#define OP_Destroy 130 -#define OP_IdxGE 131 -#define OP_ReadCookie 132 -#define OP_BitNot 87 /* same as TK_BITNOT */ -#define OP_AbsValue 133 -#define OP_Or 61 /* same as TK_OR */ -#define OP_ToReal 143 /* same as TK_TO_REAL */ #define OP_ToNumeric 141 /* same as TK_TO_NUMERIC*/ -#define OP_Function 134 +#define OP_MemInt 48 +#define OP_Prev 49 #define OP_Concat 84 /* same as TK_CONCAT */ -#define OP_Int64 135 +#define OP_BitAnd 75 /* same as TK_BITAND */ +#define OP_VColumn 50 +#define OP_CreateTable 51 +#define OP_Last 52 +#define OP_IsNull 66 /* same as TK_ISNULL */ +#define OP_IdxRowid 53 +#define OP_MakeIdxRec 54 +#define OP_ShiftRight 78 /* same as TK_RSHIFT */ +#define OP_ResetCount 55 +#define OP_FifoWrite 56 +#define OP_Callback 57 +#define OP_ContextPush 58 +#define OP_DropTrigger 59 +#define OP_DropIndex 60 +#define OP_IdxGE 63 +#define OP_IdxDelete 64 +#define OP_Vacuum 65 +#define OP_MoveLe 74 +#define OP_IfNot 85 +#define OP_DropTable 87 +#define OP_MakeRecord 90 +#define OP_ToBlob 140 /* same as TK_TO_BLOB */ +#define OP_Delete 91 +#define OP_AggFinal 92 +#define OP_ShiftLeft 77 /* same as TK_LSHIFT */ +#define OP_Dup 93 +#define OP_Goto 94 +#define OP_TableLock 95 +#define OP_FifoRead 96 +#define OP_Clear 97 +#define OP_IdxGT 98 +#define OP_MoveLt 99 +#define OP_Le 71 /* same as TK_LE */ +#define OP_VerifyCookie 100 +#define OP_AggStep 101 +#define OP_Pull 102 +#define OP_ToText 139 /* same as TK_TO_TEXT */ +#define OP_Not 16 /* same as TK_NOT */ +#define OP_ToReal 143 /* same as TK_TO_REAL */ +#define OP_SetNumColumns 103 +#define OP_AbsValue 104 +#define OP_Transaction 105 +#define OP_VFilter 106 +#define OP_Negative 86 /* same as TK_UMINUS */ +#define OP_Ne 68 /* same as TK_NE */ +#define OP_VDestroy 107 +#define OP_ContextPop 108 +#define OP_BitOr 76 /* same as TK_BITOR */ +#define OP_Next 109 +#define OP_IdxInsert 110 +#define OP_Distinct 111 +#define OP_Lt 72 /* same as TK_LT */ +#define OP_Insert 112 +#define OP_Destroy 113 +#define OP_ReadCookie 114 +#define OP_ForceInt 115 +#define OP_LoadAnalysis 116 +#define OP_Explain 117 +#define OP_IfMemZero 118 +#define OP_OpenPseudo 119 +#define OP_OpenEphemeral 120 +#define OP_Null 121 +#define OP_Blob 122 +#define OP_Add 79 /* same as TK_PLUS */ +#define OP_MemStore 123 +#define OP_Rewind 124 +#define OP_MoveGe 125 +#define OP_VBegin 128 +#define OP_VUpdate 129 +#define OP_BitNot 88 /* same as TK_BITNOT */ +#define OP_VCreate 130 +#define OP_MemMove 131 +#define OP_MemNull 132 +#define OP_Found 133 +#define OP_NullRow 134 /* The following opcode values are never used */ +#define OP_NotUsed_135 135 #define OP_NotUsed_136 136 #define OP_NotUsed_137 137 #define OP_NotUsed_138 138 @@ -149,13 +149,13 @@ /* Opcodes that are guaranteed to never push a value onto the stack ** contain a 1 their corresponding position of the following mask ** set. See the opcodeNoPush() function in vdbeaux.c */ -#define NOPUSH_MASK_0 0x9fec -#define NOPUSH_MASK_1 0xfffb -#define NOPUSH_MASK_2 0x7bbb -#define NOPUSH_MASK_3 0x65a9 +#define NOPUSH_MASK_0 0xeeb4 +#define NOPUSH_MASK_1 0x796b +#define NOPUSH_MASK_2 0x7ddb +#define NOPUSH_MASK_3 0xff92 #define NOPUSH_MASK_4 0xffff -#define NOPUSH_MASK_5 0x9eef -#define NOPUSH_MASK_6 0xed6c -#define NOPUSH_MASK_7 0x3fff -#define NOPUSH_MASK_8 0xf80a +#define NOPUSH_MASK_5 0xd9ef +#define NOPUSH_MASK_6 0xfefe +#define NOPUSH_MASK_7 0x39d9 +#define NOPUSH_MASK_8 0xf867 #define NOPUSH_MASK_9 0x0000 diff --git a/libs/win32/sqlite/parse.c b/libs/win32/sqlite/parse.c index 34fd179e82..524803948d 100644 --- a/libs/win32/sqlite/parse.c +++ b/libs/win32/sqlite/parse.c @@ -93,36 +93,36 @@ struct AttachKey { int type; Token key; }; ** defined, then do no error processing. */ #define YYCODETYPE unsigned char -#define YYNOCODE 248 +#define YYNOCODE 249 #define YYACTIONTYPE unsigned short int #define YYWILDCARD 60 #define sqlite3ParserTOKENTYPE Token typedef union { sqlite3ParserTOKENTYPE yy0; - int yy46; - struct LikeOp yy72; - Expr* yy172; - ExprList* yy174; - Select* yy219; - struct LimitVal yy234; - TriggerStep* yy243; - struct TrigEvent yy370; - SrcList* yy373; - Expr * yy386; - struct {int value; int mask;} yy405; - Token yy410; - IdList* yy432; - int yy495; + Select* yy43; + TriggerStep* yy75; + struct LimitVal yy84; + struct LikeOp yy86; + Expr * yy158; + Token yy178; + struct {int value; int mask;} yy207; + ExprList* yy242; + int yy316; + IdList* yy352; + struct TrigEvent yy354; + SrcList* yy419; + Expr* yy450; + int yy497; } YYMINORTYPE; #define YYSTACKDEPTH 100 #define sqlite3ParserARG_SDECL Parse *pParse; #define sqlite3ParserARG_PDECL ,Parse *pParse #define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse #define sqlite3ParserARG_STORE yypParser->pParse = pParse -#define YYNSTATE 586 -#define YYNRULE 310 +#define YYNSTATE 587 +#define YYNRULE 312 #define YYERRORSYMBOL 139 -#define YYERRSYMDT yy495 +#define YYERRSYMDT yy497 #define YYFALLBACK 1 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) @@ -176,409 +176,415 @@ typedef union { ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { - /* 0 */ 290, 897, 128, 585, 237, 172, 2, 478, 89, 89, - /* 10 */ 89, 89, 302, 75, 75, 75, 75, 71, 71, 85, - /* 20 */ 85, 85, 60, 417, 418, 302, 456, 443, 67, 75, - /* 30 */ 75, 75, 75, 71, 71, 85, 85, 85, 60, 286, - /* 40 */ 324, 458, 463, 464, 171, 80, 83, 313, 435, 433, - /* 50 */ 442, 442, 91, 91, 89, 89, 89, 89, 422, 75, - /* 60 */ 75, 75, 75, 71, 71, 85, 85, 85, 60, 290, - /* 70 */ 479, 477, 478, 57, 491, 78, 75, 75, 75, 75, - /* 80 */ 71, 71, 85, 85, 85, 60, 181, 114, 243, 327, - /* 90 */ 244, 330, 182, 248, 424, 456, 443, 279, 423, 90, - /* 100 */ 253, 243, 327, 244, 330, 182, 248, 485, 485, 485, - /* 110 */ 363, 283, 290, 253, 80, 83, 313, 435, 433, 442, - /* 120 */ 442, 91, 91, 89, 89, 89, 89, 336, 75, 75, - /* 130 */ 75, 75, 71, 71, 85, 85, 85, 60, 456, 443, - /* 140 */ 71, 71, 85, 85, 85, 60, 172, 448, 478, 499, - /* 150 */ 49, 580, 887, 427, 887, 290, 573, 80, 83, 313, - /* 160 */ 435, 433, 442, 442, 91, 91, 89, 89, 89, 89, - /* 170 */ 177, 75, 75, 75, 75, 71, 71, 85, 85, 85, - /* 180 */ 60, 456, 443, 159, 565, 447, 352, 359, 364, 386, - /* 190 */ 235, 339, 575, 1, 72, 79, 64, 565, 369, 388, - /* 200 */ 80, 83, 313, 435, 433, 442, 442, 91, 91, 89, - /* 210 */ 89, 89, 89, 478, 75, 75, 75, 75, 71, 71, - /* 220 */ 85, 85, 85, 60, 462, 527, 568, 290, 92, 438, - /* 230 */ 242, 486, 565, 545, 22, 458, 341, 275, 276, 565, - /* 240 */ 466, 217, 462, 577, 315, 148, 582, 210, 258, 564, - /* 250 */ 561, 392, 22, 456, 443, 147, 145, 146, 393, 431, - /* 260 */ 533, 195, 564, 561, 479, 463, 346, 171, 491, 822, - /* 270 */ 55, 59, 80, 83, 313, 435, 433, 442, 442, 91, - /* 280 */ 91, 89, 89, 89, 89, 557, 75, 75, 75, 75, - /* 290 */ 71, 71, 85, 85, 85, 60, 290, 564, 561, 308, - /* 300 */ 490, 485, 485, 485, 564, 561, 159, 223, 565, 352, - /* 310 */ 359, 364, 336, 159, 336, 548, 352, 359, 364, 221, - /* 320 */ 151, 369, 456, 443, 413, 316, 576, 422, 369, 580, - /* 330 */ 888, 206, 888, 197, 499, 47, 499, 23, 191, 583, - /* 340 */ 232, 80, 83, 313, 435, 433, 442, 442, 91, 91, - /* 350 */ 89, 89, 89, 89, 498, 75, 75, 75, 75, 71, - /* 360 */ 71, 85, 85, 85, 60, 290, 457, 498, 529, 255, - /* 370 */ 575, 207, 498, 564, 561, 512, 529, 312, 54, 229, - /* 380 */ 528, 224, 510, 65, 336, 76, 153, 581, 528, 400, - /* 390 */ 2, 456, 443, 526, 571, 531, 287, 328, 274, 6, - /* 400 */ 410, 526, 437, 375, 133, 530, 499, 49, 290, 236, - /* 410 */ 80, 83, 313, 435, 433, 442, 442, 91, 91, 89, - /* 420 */ 89, 89, 89, 317, 75, 75, 75, 75, 71, 71, - /* 430 */ 85, 85, 85, 60, 456, 443, 58, 234, 133, 269, - /* 440 */ 85, 85, 85, 60, 164, 238, 65, 228, 76, 153, - /* 450 */ 320, 178, 149, 80, 83, 313, 435, 433, 442, 442, - /* 460 */ 91, 91, 89, 89, 89, 89, 544, 75, 75, 75, - /* 470 */ 75, 71, 71, 85, 85, 85, 60, 290, 498, 414, - /* 480 */ 543, 502, 56, 336, 9, 336, 210, 336, 565, 515, - /* 490 */ 162, 149, 565, 336, 378, 354, 265, 455, 454, 344, - /* 500 */ 318, 155, 219, 456, 443, 499, 47, 499, 24, 499, - /* 510 */ 47, 343, 473, 471, 513, 499, 26, 115, 239, 451, - /* 520 */ 444, 184, 80, 83, 313, 435, 433, 442, 442, 91, - /* 530 */ 91, 89, 89, 89, 89, 498, 75, 75, 75, 75, - /* 540 */ 71, 71, 85, 85, 85, 60, 290, 452, 296, 421, - /* 550 */ 483, 109, 384, 564, 561, 565, 336, 564, 561, 351, - /* 560 */ 400, 336, 489, 336, 400, 336, 360, 336, 429, 429, - /* 570 */ 158, 20, 456, 443, 211, 478, 184, 292, 499, 47, - /* 580 */ 293, 236, 253, 499, 48, 499, 41, 499, 48, 499, - /* 590 */ 100, 80, 83, 313, 435, 433, 442, 442, 91, 91, - /* 600 */ 89, 89, 89, 89, 498, 75, 75, 75, 75, 71, - /* 610 */ 71, 85, 85, 85, 60, 290, 558, 555, 554, 520, - /* 620 */ 564, 561, 500, 300, 473, 471, 586, 577, 315, 345, - /* 630 */ 295, 336, 292, 401, 304, 441, 360, 230, 429, 429, - /* 640 */ 478, 456, 443, 65, 396, 76, 153, 462, 434, 360, - /* 650 */ 314, 429, 429, 499, 30, 362, 566, 22, 290, 355, - /* 660 */ 80, 83, 313, 435, 433, 442, 442, 91, 91, 89, - /* 670 */ 89, 89, 89, 336, 75, 75, 75, 75, 71, 71, - /* 680 */ 85, 85, 85, 60, 456, 443, 211, 476, 65, 21, - /* 690 */ 76, 153, 405, 398, 524, 499, 27, 537, 537, 537, - /* 700 */ 404, 290, 399, 80, 83, 313, 435, 433, 442, 442, - /* 710 */ 91, 91, 89, 89, 89, 89, 336, 75, 75, 75, - /* 720 */ 75, 71, 71, 85, 85, 85, 60, 456, 443, 419, - /* 730 */ 366, 419, 204, 299, 310, 298, 119, 537, 499, 97, - /* 740 */ 537, 185, 192, 186, 290, 406, 80, 82, 313, 435, - /* 750 */ 433, 442, 442, 91, 91, 89, 89, 89, 89, 336, - /* 760 */ 75, 75, 75, 75, 71, 71, 85, 85, 85, 60, - /* 770 */ 456, 443, 305, 468, 468, 301, 225, 225, 225, 519, - /* 780 */ 518, 499, 39, 360, 142, 429, 429, 290, 157, 376, - /* 790 */ 83, 313, 435, 433, 442, 442, 91, 91, 89, 89, - /* 800 */ 89, 89, 336, 75, 75, 75, 75, 71, 71, 85, - /* 810 */ 85, 85, 60, 456, 443, 373, 225, 133, 469, 225, - /* 820 */ 195, 240, 498, 408, 499, 44, 348, 523, 264, 57, - /* 830 */ 133, 183, 193, 201, 313, 435, 433, 442, 442, 91, - /* 840 */ 91, 89, 89, 89, 89, 336, 75, 75, 75, 75, - /* 850 */ 71, 71, 85, 85, 85, 60, 88, 367, 532, 4, - /* 860 */ 336, 325, 336, 306, 180, 498, 504, 499, 25, 336, - /* 870 */ 506, 340, 88, 367, 336, 4, 534, 535, 331, 306, - /* 880 */ 439, 210, 499, 98, 499, 16, 271, 340, 374, 347, - /* 890 */ 152, 499, 35, 249, 326, 336, 499, 32, 498, 458, - /* 900 */ 336, 19, 336, 139, 374, 504, 563, 559, 336, 506, - /* 910 */ 187, 336, 537, 574, 289, 458, 408, 499, 50, 84, - /* 920 */ 86, 347, 499, 42, 499, 31, 620, 88, 333, 334, - /* 930 */ 499, 29, 491, 499, 51, 84, 86, 461, 211, 569, - /* 940 */ 336, 365, 349, 88, 333, 334, 88, 367, 491, 4, - /* 950 */ 336, 210, 336, 306, 336, 218, 542, 336, 236, 236, - /* 960 */ 18, 340, 499, 43, 515, 485, 485, 485, 484, 481, - /* 970 */ 14, 236, 499, 36, 499, 28, 499, 94, 374, 499, - /* 980 */ 53, 485, 485, 485, 484, 481, 14, 205, 356, 458, - /* 990 */ 179, 233, 336, 472, 236, 273, 268, 261, 99, 503, - /* 1000 */ 245, 336, 493, 336, 200, 336, 236, 336, 236, 84, - /* 1010 */ 86, 166, 497, 241, 499, 111, 439, 88, 333, 334, - /* 1020 */ 254, 336, 491, 499, 113, 499, 110, 499, 112, 499, - /* 1030 */ 34, 336, 188, 379, 447, 267, 439, 236, 498, 190, - /* 1040 */ 336, 422, 170, 499, 45, 336, 478, 227, 336, 329, - /* 1050 */ 560, 336, 133, 499, 52, 485, 485, 485, 484, 481, - /* 1060 */ 14, 259, 499, 33, 445, 536, 336, 499, 96, 578, - /* 1070 */ 499, 46, 336, 499, 38, 420, 336, 303, 492, 336, - /* 1080 */ 262, 342, 539, 536, 465, 332, 220, 276, 499, 93, - /* 1090 */ 402, 291, 12, 514, 499, 40, 210, 294, 499, 10, - /* 1100 */ 272, 499, 37, 499, 3, 466, 217, 549, 501, 579, - /* 1110 */ 12, 478, 278, 247, 357, 246, 281, 517, 277, 337, - /* 1120 */ 321, 144, 470, 390, 487, 524, 389, 562, 372, 488, - /* 1130 */ 440, 540, 460, 196, 467, 117, 380, 307, 323, 126, - /* 1140 */ 521, 397, 383, 194, 522, 231, 209, 74, 368, 412, - /* 1150 */ 226, 214, 199, 61, 388, 215, 387, 189, 216, 335, - /* 1160 */ 212, 134, 409, 309, 106, 285, 135, 125, 547, 210, - /* 1170 */ 496, 138, 68, 541, 509, 121, 260, 55, 507, 250, - /* 1180 */ 385, 288, 251, 87, 252, 381, 62, 266, 505, 173, - /* 1190 */ 415, 120, 8, 513, 358, 322, 175, 550, 516, 73, - /* 1200 */ 361, 263, 69, 428, 425, 432, 570, 508, 482, 551, - /* 1210 */ 495, 567, 280, 131, 552, 123, 174, 203, 553, 446, - /* 1220 */ 449, 5, 556, 12, 338, 391, 382, 213, 394, 17, - /* 1230 */ 7, 377, 102, 101, 141, 95, 118, 403, 221, 127, - /* 1240 */ 311, 202, 222, 407, 150, 156, 176, 371, 411, 257, - /* 1250 */ 108, 416, 480, 370, 297, 475, 195, 140, 453, 395, - /* 1260 */ 137, 66, 256, 122, 430, 426, 107, 168, 105, 284, - /* 1270 */ 270, 129, 104, 353, 436, 60, 584, 450, 136, 572, - /* 1280 */ 350, 81, 143, 77, 282, 459, 198, 161, 13, 103, - /* 1290 */ 319, 474, 154, 546, 169, 525, 167, 160, 116, 63, - /* 1300 */ 163, 538, 15, 208, 494, 165, 132, 124, 622, 70, - /* 1310 */ 621, 511, 130, 559, 11, + /* 0 */ 289, 900, 121, 586, 205, 169, 2, 435, 61, 61, + /* 10 */ 61, 61, 435, 63, 63, 63, 63, 64, 64, 65, + /* 20 */ 65, 65, 66, 230, 198, 299, 420, 426, 68, 63, + /* 30 */ 63, 63, 63, 64, 64, 65, 65, 65, 66, 230, + /* 40 */ 67, 447, 69, 151, 230, 60, 59, 294, 430, 431, + /* 50 */ 427, 427, 62, 62, 61, 61, 61, 61, 411, 63, + /* 60 */ 63, 63, 63, 64, 64, 65, 65, 65, 66, 230, + /* 70 */ 289, 487, 515, 435, 570, 415, 80, 67, 435, 69, + /* 80 */ 151, 63, 63, 63, 63, 64, 64, 65, 65, 65, + /* 90 */ 66, 230, 569, 568, 248, 386, 420, 426, 2, 572, + /* 100 */ 58, 115, 238, 340, 243, 341, 173, 417, 417, 417, + /* 110 */ 570, 387, 384, 249, 289, 60, 59, 294, 430, 431, + /* 120 */ 427, 427, 62, 62, 61, 61, 61, 61, 569, 63, + /* 130 */ 63, 63, 63, 64, 64, 65, 65, 65, 66, 230, + /* 140 */ 420, 426, 92, 64, 64, 65, 65, 65, 66, 230, + /* 150 */ 245, 392, 56, 171, 566, 207, 406, 443, 208, 60, + /* 160 */ 59, 294, 430, 431, 427, 427, 62, 62, 61, 61, + /* 170 */ 61, 61, 205, 63, 63, 63, 63, 64, 64, 65, + /* 180 */ 65, 65, 66, 230, 289, 368, 522, 411, 522, 111, + /* 190 */ 378, 207, 447, 467, 223, 403, 21, 532, 21, 172, + /* 200 */ 157, 317, 66, 230, 336, 404, 520, 443, 208, 486, + /* 210 */ 420, 426, 146, 147, 517, 488, 489, 393, 394, 148, + /* 220 */ 531, 224, 487, 410, 41, 407, 415, 567, 289, 60, + /* 230 */ 59, 294, 430, 431, 427, 427, 62, 62, 61, 61, + /* 240 */ 61, 61, 476, 63, 63, 63, 63, 64, 64, 65, + /* 250 */ 65, 65, 66, 230, 420, 426, 491, 492, 417, 417, + /* 260 */ 417, 155, 549, 331, 211, 65, 65, 65, 66, 230, + /* 270 */ 546, 492, 289, 60, 59, 294, 430, 431, 427, 427, + /* 280 */ 62, 62, 61, 61, 61, 61, 467, 63, 63, 63, + /* 290 */ 63, 64, 64, 65, 65, 65, 66, 230, 420, 426, + /* 300 */ 548, 299, 178, 297, 522, 342, 345, 346, 472, 67, + /* 310 */ 460, 69, 151, 577, 21, 338, 347, 60, 59, 294, + /* 320 */ 430, 431, 427, 427, 62, 62, 61, 61, 61, 61, + /* 330 */ 530, 63, 63, 63, 63, 64, 64, 65, 65, 65, + /* 340 */ 66, 230, 409, 523, 76, 289, 408, 478, 452, 482, + /* 350 */ 392, 369, 266, 265, 283, 149, 405, 445, 521, 165, + /* 360 */ 453, 317, 205, 67, 517, 69, 151, 529, 503, 152, + /* 370 */ 248, 420, 426, 454, 528, 493, 161, 115, 238, 340, + /* 380 */ 243, 341, 173, 410, 35, 494, 580, 288, 79, 249, + /* 390 */ 60, 59, 294, 430, 431, 427, 427, 62, 62, 61, + /* 400 */ 61, 61, 61, 411, 63, 63, 63, 63, 64, 64, + /* 410 */ 65, 65, 65, 66, 230, 289, 393, 394, 178, 485, + /* 420 */ 508, 342, 345, 346, 178, 296, 317, 342, 345, 346, + /* 430 */ 366, 317, 347, 20, 317, 141, 317, 457, 347, 150, + /* 440 */ 509, 420, 426, 22, 295, 438, 439, 435, 410, 35, + /* 450 */ 328, 260, 472, 410, 28, 232, 410, 35, 410, 36, + /* 460 */ 60, 59, 294, 430, 431, 427, 427, 62, 62, 61, + /* 470 */ 61, 61, 61, 411, 63, 63, 63, 63, 64, 64, + /* 480 */ 65, 65, 65, 66, 230, 289, 436, 481, 23, 502, + /* 490 */ 298, 234, 380, 301, 317, 217, 317, 476, 333, 317, + /* 500 */ 392, 317, 457, 337, 168, 157, 421, 422, 207, 231, + /* 510 */ 457, 420, 426, 435, 313, 388, 410, 35, 410, 49, + /* 520 */ 204, 410, 41, 410, 49, 410, 3, 197, 424, 425, + /* 530 */ 60, 59, 294, 430, 431, 427, 427, 62, 62, 61, + /* 540 */ 61, 61, 61, 382, 63, 63, 63, 63, 64, 64, + /* 550 */ 65, 65, 65, 66, 230, 289, 443, 423, 357, 252, + /* 560 */ 434, 411, 210, 292, 308, 350, 393, 394, 448, 309, + /* 570 */ 456, 322, 438, 439, 320, 1, 433, 433, 19, 392, + /* 580 */ 541, 420, 426, 191, 540, 375, 584, 891, 543, 891, + /* 590 */ 584, 890, 174, 890, 472, 392, 358, 445, 323, 165, + /* 600 */ 60, 59, 294, 430, 431, 427, 427, 62, 62, 61, + /* 610 */ 61, 61, 61, 383, 63, 63, 63, 63, 64, 64, + /* 620 */ 65, 65, 65, 66, 230, 289, 370, 581, 9, 452, + /* 630 */ 91, 581, 10, 236, 409, 207, 392, 359, 408, 392, + /* 640 */ 156, 453, 169, 362, 435, 393, 394, 320, 291, 433, + /* 650 */ 433, 420, 426, 249, 454, 320, 327, 433, 433, 260, + /* 660 */ 462, 393, 394, 515, 515, 545, 515, 463, 270, 289, + /* 670 */ 60, 59, 294, 430, 431, 427, 427, 62, 62, 61, + /* 680 */ 61, 61, 61, 82, 63, 63, 63, 63, 64, 64, + /* 690 */ 65, 65, 65, 66, 230, 420, 426, 480, 302, 216, + /* 700 */ 261, 303, 393, 394, 822, 393, 394, 273, 515, 271, + /* 710 */ 435, 515, 334, 289, 60, 59, 294, 430, 431, 427, + /* 720 */ 427, 62, 62, 61, 61, 61, 61, 233, 63, 63, + /* 730 */ 63, 63, 64, 64, 65, 65, 65, 66, 230, 420, + /* 740 */ 426, 247, 247, 304, 247, 318, 306, 587, 387, 384, + /* 750 */ 395, 396, 397, 320, 219, 433, 433, 289, 60, 70, + /* 760 */ 294, 430, 431, 427, 427, 62, 62, 61, 61, 61, + /* 770 */ 61, 317, 63, 63, 63, 63, 64, 64, 65, 65, + /* 780 */ 65, 66, 230, 420, 426, 476, 247, 391, 272, 247, + /* 790 */ 539, 356, 539, 410, 29, 175, 176, 177, 162, 260, + /* 800 */ 260, 289, 5, 59, 294, 430, 431, 427, 427, 62, + /* 810 */ 62, 61, 61, 61, 61, 377, 63, 63, 63, 63, + /* 820 */ 64, 64, 65, 65, 65, 66, 230, 420, 426, 392, + /* 830 */ 311, 120, 392, 319, 205, 260, 366, 465, 254, 189, + /* 840 */ 556, 558, 260, 75, 260, 77, 307, 376, 294, 430, + /* 850 */ 431, 427, 427, 62, 62, 61, 61, 61, 61, 260, + /* 860 */ 63, 63, 63, 63, 64, 64, 65, 65, 65, 66, + /* 870 */ 230, 72, 324, 411, 4, 260, 559, 258, 293, 256, + /* 880 */ 174, 125, 317, 560, 317, 274, 321, 72, 324, 193, + /* 890 */ 4, 153, 621, 180, 293, 393, 394, 367, 393, 394, + /* 900 */ 374, 218, 321, 326, 410, 24, 410, 33, 183, 317, + /* 910 */ 428, 206, 441, 441, 447, 317, 276, 317, 55, 326, + /* 920 */ 363, 468, 239, 411, 469, 411, 455, 411, 13, 144, + /* 930 */ 447, 410, 53, 240, 74, 73, 291, 410, 52, 410, + /* 940 */ 96, 116, 411, 72, 315, 316, 582, 474, 415, 170, + /* 950 */ 74, 73, 479, 317, 507, 506, 317, 500, 416, 72, + /* 960 */ 315, 316, 72, 324, 415, 4, 205, 317, 329, 293, + /* 970 */ 317, 458, 483, 444, 13, 410, 94, 321, 410, 99, + /* 980 */ 417, 417, 417, 418, 419, 12, 583, 466, 317, 410, + /* 990 */ 100, 471, 410, 110, 326, 475, 417, 417, 417, 418, + /* 1000 */ 419, 12, 497, 498, 512, 447, 125, 159, 244, 317, + /* 1010 */ 410, 112, 220, 221, 222, 102, 537, 538, 317, 251, + /* 1020 */ 317, 125, 317, 504, 505, 74, 73, 349, 202, 125, + /* 1030 */ 278, 410, 17, 510, 72, 315, 316, 279, 524, 415, + /* 1040 */ 410, 97, 410, 34, 410, 95, 317, 511, 544, 200, + /* 1050 */ 125, 548, 552, 253, 170, 317, 199, 255, 317, 201, + /* 1060 */ 553, 257, 89, 317, 259, 563, 317, 89, 410, 25, + /* 1070 */ 317, 417, 417, 417, 418, 419, 12, 410, 54, 186, + /* 1080 */ 410, 113, 354, 317, 264, 410, 114, 317, 410, 26, + /* 1090 */ 361, 364, 410, 37, 579, 365, 287, 317, 267, 317, + /* 1100 */ 143, 317, 373, 275, 265, 410, 38, 268, 290, 410, + /* 1110 */ 27, 317, 269, 205, 555, 565, 317, 277, 317, 410, + /* 1120 */ 39, 410, 40, 410, 42, 317, 280, 317, 281, 317, + /* 1130 */ 576, 317, 225, 410, 43, 401, 503, 379, 410, 44, + /* 1140 */ 410, 30, 317, 325, 440, 317, 461, 410, 31, 410, + /* 1150 */ 45, 410, 46, 410, 47, 442, 317, 551, 317, 464, + /* 1160 */ 317, 241, 513, 516, 410, 48, 344, 410, 32, 562, + /* 1170 */ 160, 390, 398, 399, 400, 8, 314, 412, 410, 11, + /* 1180 */ 410, 50, 410, 51, 82, 332, 226, 81, 330, 227, + /* 1190 */ 57, 406, 414, 228, 78, 167, 229, 209, 83, 413, + /* 1200 */ 459, 122, 335, 339, 500, 490, 235, 495, 242, 473, + /* 1210 */ 237, 300, 477, 499, 496, 501, 103, 284, 246, 514, + /* 1220 */ 518, 519, 525, 526, 527, 351, 533, 181, 285, 182, + /* 1230 */ 184, 214, 353, 185, 535, 187, 215, 355, 86, 118, + /* 1240 */ 360, 547, 190, 129, 139, 371, 262, 372, 130, 536, + /* 1250 */ 554, 310, 131, 132, 573, 90, 133, 135, 93, 138, + /* 1260 */ 578, 574, 575, 109, 213, 561, 101, 119, 389, 18, + /* 1270 */ 98, 402, 622, 623, 163, 164, 429, 312, 432, 71, + /* 1280 */ 449, 437, 446, 140, 154, 166, 450, 6, 451, 470, + /* 1290 */ 7, 123, 14, 13, 124, 158, 484, 212, 84, 343, + /* 1300 */ 104, 348, 250, 105, 85, 117, 106, 240, 179, 352, + /* 1310 */ 142, 534, 126, 305, 170, 263, 188, 107, 286, 550, + /* 1320 */ 127, 128, 15, 542, 192, 87, 194, 88, 195, 557, + /* 1330 */ 196, 136, 137, 134, 16, 108, 571, 282, 381, 564, + /* 1340 */ 203, 145, 385, 901, 585, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 16, 140, 141, 142, 148, 21, 145, 23, 70, 71, - /* 10 */ 72, 73, 16, 75, 76, 77, 78, 79, 80, 81, - /* 20 */ 82, 83, 84, 51, 52, 16, 42, 43, 74, 75, - /* 30 */ 76, 77, 78, 79, 80, 81, 82, 83, 84, 159, - /* 40 */ 148, 59, 162, 163, 164, 61, 62, 63, 64, 65, - /* 50 */ 66, 67, 68, 69, 70, 71, 72, 73, 162, 75, - /* 60 */ 76, 77, 78, 79, 80, 81, 82, 83, 84, 16, - /* 70 */ 88, 20, 88, 22, 92, 22, 75, 76, 77, 78, - /* 80 */ 79, 80, 81, 82, 83, 84, 90, 91, 92, 93, - /* 90 */ 94, 95, 96, 97, 25, 42, 43, 201, 29, 46, - /* 100 */ 104, 92, 93, 94, 95, 96, 97, 125, 126, 127, - /* 110 */ 41, 148, 16, 104, 61, 62, 63, 64, 65, 66, - /* 120 */ 67, 68, 69, 70, 71, 72, 73, 148, 75, 76, - /* 130 */ 77, 78, 79, 80, 81, 82, 83, 84, 42, 43, - /* 140 */ 79, 80, 81, 82, 83, 84, 21, 11, 23, 170, - /* 150 */ 171, 19, 20, 18, 22, 16, 179, 61, 62, 63, - /* 160 */ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - /* 170 */ 22, 75, 76, 77, 78, 79, 80, 81, 82, 83, - /* 180 */ 84, 42, 43, 90, 23, 49, 93, 94, 95, 210, - /* 190 */ 211, 56, 60, 19, 131, 19, 133, 23, 105, 23, - /* 200 */ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - /* 210 */ 71, 72, 73, 88, 75, 76, 77, 78, 79, 80, - /* 220 */ 81, 82, 83, 84, 148, 148, 30, 16, 132, 94, - /* 230 */ 191, 20, 23, 157, 158, 59, 100, 101, 102, 23, - /* 240 */ 79, 80, 148, 1, 2, 22, 50, 111, 154, 88, - /* 250 */ 89, 157, 158, 42, 43, 79, 80, 181, 182, 20, - /* 260 */ 99, 22, 88, 89, 88, 162, 163, 164, 92, 134, - /* 270 */ 122, 132, 61, 62, 63, 64, 65, 66, 67, 68, - /* 280 */ 69, 70, 71, 72, 73, 179, 75, 76, 77, 78, - /* 290 */ 79, 80, 81, 82, 83, 84, 16, 88, 89, 103, - /* 300 */ 20, 125, 126, 127, 88, 89, 90, 92, 23, 93, - /* 310 */ 94, 95, 148, 90, 148, 148, 93, 94, 95, 104, - /* 320 */ 156, 105, 42, 43, 115, 143, 144, 162, 105, 19, - /* 330 */ 20, 149, 22, 156, 170, 171, 170, 171, 156, 179, - /* 340 */ 14, 61, 62, 63, 64, 65, 66, 67, 68, 69, - /* 350 */ 70, 71, 72, 73, 190, 75, 76, 77, 78, 79, - /* 360 */ 80, 81, 82, 83, 84, 16, 201, 190, 12, 20, - /* 370 */ 60, 193, 190, 88, 89, 27, 12, 213, 200, 53, - /* 380 */ 24, 55, 34, 218, 148, 220, 221, 142, 24, 225, - /* 390 */ 145, 42, 43, 37, 20, 39, 22, 215, 14, 192, - /* 400 */ 115, 37, 20, 39, 22, 49, 170, 171, 16, 148, - /* 410 */ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - /* 420 */ 71, 72, 73, 241, 75, 76, 77, 78, 79, 80, - /* 430 */ 81, 82, 83, 84, 42, 43, 44, 53, 22, 55, - /* 440 */ 81, 82, 83, 84, 156, 148, 218, 211, 220, 221, - /* 450 */ 189, 202, 203, 61, 62, 63, 64, 65, 66, 67, - /* 460 */ 68, 69, 70, 71, 72, 73, 238, 75, 76, 77, - /* 470 */ 78, 79, 80, 81, 82, 83, 84, 16, 190, 20, - /* 480 */ 168, 169, 21, 148, 19, 148, 111, 148, 23, 177, - /* 490 */ 202, 203, 23, 148, 16, 207, 146, 42, 43, 124, - /* 500 */ 239, 156, 148, 42, 43, 170, 171, 170, 171, 170, - /* 510 */ 171, 165, 166, 167, 98, 170, 171, 148, 134, 64, - /* 520 */ 65, 43, 61, 62, 63, 64, 65, 66, 67, 68, - /* 530 */ 69, 70, 71, 72, 73, 190, 75, 76, 77, 78, - /* 540 */ 79, 80, 81, 82, 83, 84, 16, 92, 213, 20, - /* 550 */ 81, 21, 213, 88, 89, 23, 148, 88, 89, 16, - /* 560 */ 225, 148, 20, 148, 225, 148, 107, 148, 109, 110, - /* 570 */ 156, 19, 42, 43, 228, 23, 43, 99, 170, 171, - /* 580 */ 151, 148, 104, 170, 171, 170, 171, 170, 171, 170, - /* 590 */ 171, 61, 62, 63, 64, 65, 66, 67, 68, 69, - /* 600 */ 70, 71, 72, 73, 190, 75, 76, 77, 78, 79, - /* 610 */ 80, 81, 82, 83, 84, 16, 7, 8, 9, 20, - /* 620 */ 88, 89, 189, 165, 166, 167, 0, 1, 2, 215, - /* 630 */ 217, 148, 99, 225, 217, 92, 107, 222, 109, 110, - /* 640 */ 88, 42, 43, 218, 219, 220, 221, 148, 148, 107, - /* 650 */ 236, 109, 110, 170, 171, 226, 157, 158, 16, 230, - /* 660 */ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - /* 670 */ 71, 72, 73, 148, 75, 76, 77, 78, 79, 80, - /* 680 */ 81, 82, 83, 84, 42, 43, 228, 20, 218, 22, - /* 690 */ 220, 221, 22, 177, 178, 170, 171, 148, 148, 148, - /* 700 */ 184, 16, 148, 61, 62, 63, 64, 65, 66, 67, - /* 710 */ 68, 69, 70, 71, 72, 73, 148, 75, 76, 77, - /* 720 */ 78, 79, 80, 81, 82, 83, 84, 42, 43, 100, - /* 730 */ 101, 102, 183, 183, 183, 242, 243, 148, 170, 171, - /* 740 */ 148, 100, 101, 102, 16, 204, 61, 62, 63, 64, - /* 750 */ 65, 66, 67, 68, 69, 70, 71, 72, 73, 148, - /* 760 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - /* 770 */ 42, 43, 183, 125, 126, 183, 227, 227, 227, 7, - /* 780 */ 8, 170, 171, 107, 114, 109, 110, 16, 156, 233, - /* 790 */ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - /* 800 */ 72, 73, 148, 75, 76, 77, 78, 79, 80, 81, - /* 810 */ 82, 83, 84, 42, 43, 20, 227, 22, 20, 227, - /* 820 */ 22, 148, 190, 22, 170, 171, 148, 20, 20, 22, - /* 830 */ 22, 156, 19, 232, 63, 64, 65, 66, 67, 68, - /* 840 */ 69, 70, 71, 72, 73, 148, 75, 76, 77, 78, - /* 850 */ 79, 80, 81, 82, 83, 84, 16, 17, 148, 19, - /* 860 */ 148, 91, 148, 23, 156, 190, 108, 170, 171, 148, - /* 870 */ 112, 31, 16, 17, 148, 19, 166, 167, 81, 23, - /* 880 */ 148, 111, 170, 171, 170, 171, 148, 31, 48, 148, - /* 890 */ 89, 170, 171, 148, 124, 148, 170, 171, 190, 59, - /* 900 */ 148, 19, 148, 21, 48, 108, 91, 92, 148, 112, - /* 910 */ 19, 148, 148, 244, 245, 59, 115, 170, 171, 79, - /* 920 */ 80, 148, 170, 171, 170, 171, 113, 87, 88, 89, - /* 930 */ 170, 171, 92, 170, 171, 79, 80, 81, 228, 148, - /* 940 */ 148, 209, 148, 87, 88, 89, 16, 17, 92, 19, - /* 950 */ 148, 111, 148, 23, 148, 214, 169, 148, 148, 148, - /* 960 */ 69, 31, 170, 171, 177, 125, 126, 127, 128, 129, - /* 970 */ 130, 148, 170, 171, 170, 171, 170, 171, 48, 170, - /* 980 */ 171, 125, 126, 127, 128, 129, 130, 214, 174, 59, - /* 990 */ 5, 227, 148, 161, 148, 10, 11, 12, 13, 189, - /* 1000 */ 189, 148, 170, 148, 156, 148, 148, 148, 148, 79, - /* 1010 */ 80, 26, 189, 28, 170, 171, 148, 87, 88, 89, - /* 1020 */ 35, 148, 92, 170, 171, 170, 171, 170, 171, 170, - /* 1030 */ 171, 148, 47, 148, 49, 189, 148, 148, 190, 54, - /* 1040 */ 148, 162, 57, 170, 171, 148, 23, 189, 148, 189, - /* 1050 */ 20, 148, 22, 170, 171, 125, 126, 127, 128, 129, - /* 1060 */ 130, 148, 170, 171, 186, 187, 148, 170, 171, 20, - /* 1070 */ 170, 171, 148, 170, 171, 148, 148, 209, 189, 148, - /* 1080 */ 201, 148, 186, 187, 162, 100, 101, 102, 170, 171, - /* 1090 */ 20, 106, 22, 195, 170, 171, 111, 209, 170, 171, - /* 1100 */ 148, 170, 171, 170, 171, 79, 80, 150, 20, 60, - /* 1110 */ 22, 88, 148, 194, 148, 173, 148, 173, 148, 148, - /* 1120 */ 135, 192, 229, 173, 148, 178, 173, 148, 224, 148, - /* 1130 */ 148, 173, 195, 113, 229, 61, 153, 40, 99, 185, - /* 1140 */ 180, 153, 15, 152, 172, 97, 212, 131, 38, 235, - /* 1150 */ 234, 212, 152, 131, 23, 223, 161, 152, 212, 15, - /* 1160 */ 212, 188, 153, 153, 19, 175, 188, 19, 33, 111, - /* 1170 */ 190, 216, 237, 172, 172, 216, 172, 122, 161, 195, - /* 1180 */ 119, 175, 196, 120, 197, 117, 237, 198, 180, 152, - /* 1190 */ 172, 153, 22, 98, 153, 155, 6, 147, 174, 99, - /* 1200 */ 116, 205, 121, 206, 172, 172, 147, 195, 195, 147, - /* 1210 */ 199, 138, 205, 188, 147, 188, 185, 153, 153, 185, - /* 1220 */ 206, 118, 153, 22, 153, 153, 16, 176, 17, 231, - /* 1230 */ 118, 187, 240, 176, 21, 160, 243, 20, 104, 99, - /* 1240 */ 246, 22, 148, 20, 148, 19, 96, 148, 11, 148, - /* 1250 */ 19, 115, 170, 44, 36, 170, 22, 19, 182, 182, - /* 1260 */ 45, 19, 134, 19, 108, 45, 19, 99, 19, 5, - /* 1270 */ 20, 20, 19, 44, 92, 84, 4, 1, 103, 1, - /* 1280 */ 3, 69, 19, 69, 137, 20, 123, 136, 19, 14, - /* 1290 */ 58, 20, 113, 20, 114, 124, 14, 116, 32, 19, - /* 1300 */ 113, 20, 19, 44, 17, 113, 123, 103, 113, 19, - /* 1310 */ 113, 20, 114, 247, 22, + /* 0 */ 16, 140, 141, 142, 111, 21, 145, 23, 70, 71, + /* 10 */ 72, 73, 23, 75, 76, 77, 78, 79, 80, 81, + /* 20 */ 82, 83, 84, 85, 156, 16, 42, 43, 74, 75, + /* 30 */ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + /* 40 */ 217, 59, 219, 220, 85, 61, 62, 63, 64, 65, + /* 50 */ 66, 67, 68, 69, 70, 71, 72, 73, 190, 75, + /* 60 */ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + /* 70 */ 16, 89, 148, 89, 148, 93, 22, 217, 89, 219, + /* 80 */ 220, 75, 76, 77, 78, 79, 80, 81, 82, 83, + /* 90 */ 84, 85, 166, 167, 85, 142, 42, 43, 145, 239, + /* 100 */ 46, 92, 93, 94, 95, 96, 97, 125, 126, 127, + /* 110 */ 148, 1, 2, 104, 16, 61, 62, 63, 64, 65, + /* 120 */ 66, 67, 68, 69, 70, 71, 72, 73, 166, 75, + /* 130 */ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + /* 140 */ 42, 43, 44, 79, 80, 81, 82, 83, 84, 85, + /* 150 */ 226, 23, 19, 156, 228, 229, 23, 79, 80, 61, + /* 160 */ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + /* 170 */ 72, 73, 111, 75, 76, 77, 78, 79, 80, 81, + /* 180 */ 82, 83, 84, 85, 16, 124, 148, 190, 148, 21, + /* 190 */ 228, 229, 59, 22, 154, 157, 158, 157, 158, 202, + /* 200 */ 203, 148, 84, 85, 207, 168, 169, 79, 80, 170, + /* 210 */ 42, 43, 79, 80, 177, 170, 161, 89, 90, 181, + /* 220 */ 182, 191, 89, 170, 171, 170, 93, 99, 16, 61, + /* 230 */ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + /* 240 */ 72, 73, 148, 75, 76, 77, 78, 79, 80, 81, + /* 250 */ 82, 83, 84, 85, 42, 43, 186, 187, 125, 126, + /* 260 */ 127, 90, 11, 210, 211, 81, 82, 83, 84, 85, + /* 270 */ 186, 187, 16, 61, 62, 63, 64, 65, 66, 67, + /* 280 */ 68, 69, 70, 71, 72, 73, 115, 75, 76, 77, + /* 290 */ 78, 79, 80, 81, 82, 83, 84, 85, 42, 43, + /* 300 */ 49, 16, 91, 209, 148, 94, 95, 96, 162, 217, + /* 310 */ 218, 219, 220, 157, 158, 81, 105, 61, 62, 63, + /* 320 */ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + /* 330 */ 182, 75, 76, 77, 78, 79, 80, 81, 82, 83, + /* 340 */ 84, 85, 108, 182, 132, 16, 112, 201, 12, 20, + /* 350 */ 23, 100, 101, 102, 159, 22, 169, 162, 163, 164, + /* 360 */ 24, 148, 111, 217, 177, 219, 220, 177, 178, 156, + /* 370 */ 85, 42, 43, 37, 184, 39, 91, 92, 93, 94, + /* 380 */ 95, 96, 97, 170, 171, 49, 245, 246, 132, 104, + /* 390 */ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + /* 400 */ 71, 72, 73, 190, 75, 76, 77, 78, 79, 80, + /* 410 */ 81, 82, 83, 84, 85, 16, 89, 90, 91, 20, + /* 420 */ 30, 94, 95, 96, 91, 212, 148, 94, 95, 96, + /* 430 */ 148, 148, 105, 19, 148, 21, 148, 224, 105, 156, + /* 440 */ 50, 42, 43, 19, 165, 166, 167, 23, 170, 171, + /* 450 */ 187, 148, 162, 170, 171, 148, 170, 171, 170, 171, + /* 460 */ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + /* 470 */ 71, 72, 73, 190, 75, 76, 77, 78, 79, 80, + /* 480 */ 81, 82, 83, 84, 85, 16, 20, 20, 22, 20, + /* 490 */ 212, 201, 189, 103, 148, 213, 148, 148, 212, 148, + /* 500 */ 23, 148, 224, 148, 202, 203, 42, 43, 229, 221, + /* 510 */ 224, 42, 43, 89, 143, 144, 170, 171, 170, 171, + /* 520 */ 149, 170, 171, 170, 171, 170, 171, 156, 64, 65, + /* 530 */ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + /* 540 */ 71, 72, 73, 240, 75, 76, 77, 78, 79, 80, + /* 550 */ 81, 82, 83, 84, 85, 16, 79, 93, 209, 20, + /* 560 */ 20, 190, 211, 151, 216, 16, 89, 90, 20, 216, + /* 570 */ 224, 165, 166, 167, 107, 19, 109, 110, 19, 23, + /* 580 */ 25, 42, 43, 22, 29, 214, 19, 20, 18, 22, + /* 590 */ 19, 20, 43, 22, 162, 23, 41, 162, 163, 164, + /* 600 */ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + /* 610 */ 71, 72, 73, 242, 75, 76, 77, 78, 79, 80, + /* 620 */ 81, 82, 83, 84, 85, 16, 56, 60, 69, 12, + /* 630 */ 21, 60, 19, 201, 108, 229, 23, 225, 112, 23, + /* 640 */ 148, 24, 21, 231, 23, 89, 90, 107, 99, 109, + /* 650 */ 110, 42, 43, 104, 37, 107, 39, 109, 110, 148, + /* 660 */ 27, 89, 90, 148, 148, 95, 148, 34, 14, 16, + /* 670 */ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + /* 680 */ 71, 72, 73, 122, 75, 76, 77, 78, 79, 80, + /* 690 */ 81, 82, 83, 84, 85, 42, 43, 81, 183, 183, + /* 700 */ 189, 183, 89, 90, 134, 89, 90, 53, 148, 55, + /* 710 */ 89, 148, 148, 16, 61, 62, 63, 64, 65, 66, + /* 720 */ 67, 68, 69, 70, 71, 72, 73, 148, 75, 76, + /* 730 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 42, + /* 740 */ 43, 226, 226, 183, 226, 148, 183, 0, 1, 2, + /* 750 */ 7, 8, 9, 107, 146, 109, 110, 16, 61, 62, + /* 760 */ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + /* 770 */ 73, 148, 75, 76, 77, 78, 79, 80, 81, 82, + /* 780 */ 83, 84, 85, 42, 43, 148, 226, 148, 134, 226, + /* 790 */ 100, 101, 102, 170, 171, 100, 101, 102, 19, 148, + /* 800 */ 148, 16, 192, 62, 63, 64, 65, 66, 67, 68, + /* 810 */ 69, 70, 71, 72, 73, 92, 75, 76, 77, 78, + /* 820 */ 79, 80, 81, 82, 83, 84, 85, 42, 43, 23, + /* 830 */ 243, 244, 23, 16, 111, 148, 148, 22, 14, 156, + /* 840 */ 189, 189, 148, 131, 148, 133, 209, 124, 63, 64, + /* 850 */ 65, 66, 67, 68, 69, 70, 71, 72, 73, 148, + /* 860 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + /* 870 */ 85, 16, 17, 190, 19, 148, 189, 53, 23, 55, + /* 880 */ 43, 22, 148, 189, 148, 189, 31, 16, 17, 156, + /* 890 */ 19, 156, 113, 156, 23, 89, 90, 214, 89, 90, + /* 900 */ 189, 213, 31, 48, 170, 171, 170, 171, 156, 148, + /* 910 */ 93, 193, 125, 126, 59, 148, 189, 148, 200, 48, + /* 920 */ 237, 115, 93, 190, 115, 190, 20, 190, 22, 114, + /* 930 */ 59, 170, 171, 104, 79, 80, 99, 170, 171, 170, + /* 940 */ 171, 148, 190, 88, 89, 90, 20, 20, 93, 22, + /* 950 */ 79, 80, 81, 148, 92, 93, 148, 98, 148, 88, + /* 960 */ 89, 90, 16, 17, 93, 19, 111, 148, 148, 23, + /* 970 */ 148, 148, 20, 162, 22, 170, 171, 31, 170, 171, + /* 980 */ 125, 126, 127, 128, 129, 130, 60, 204, 148, 170, + /* 990 */ 171, 148, 170, 171, 48, 148, 125, 126, 127, 128, + /* 1000 */ 129, 130, 7, 8, 20, 59, 22, 5, 148, 148, + /* 1010 */ 170, 171, 10, 11, 12, 13, 51, 52, 148, 20, + /* 1020 */ 148, 22, 148, 148, 179, 79, 80, 20, 26, 22, + /* 1030 */ 28, 170, 171, 179, 88, 89, 90, 35, 148, 93, + /* 1040 */ 170, 171, 170, 171, 170, 171, 148, 179, 20, 47, + /* 1050 */ 22, 49, 20, 148, 22, 148, 54, 148, 148, 57, + /* 1060 */ 20, 148, 22, 148, 148, 20, 148, 22, 170, 171, + /* 1070 */ 148, 125, 126, 127, 128, 129, 130, 170, 171, 233, + /* 1080 */ 170, 171, 234, 148, 148, 170, 171, 148, 170, 171, + /* 1090 */ 148, 148, 170, 171, 20, 148, 22, 148, 148, 148, + /* 1100 */ 192, 148, 100, 101, 102, 170, 171, 148, 106, 170, + /* 1110 */ 171, 148, 148, 111, 148, 148, 148, 148, 148, 170, + /* 1120 */ 171, 170, 171, 170, 171, 148, 148, 148, 148, 148, + /* 1130 */ 148, 148, 194, 170, 171, 150, 178, 135, 170, 171, + /* 1140 */ 170, 171, 148, 223, 230, 148, 173, 170, 171, 170, + /* 1150 */ 171, 170, 171, 170, 171, 230, 148, 195, 148, 173, + /* 1160 */ 148, 173, 173, 173, 170, 171, 174, 170, 171, 195, + /* 1170 */ 6, 147, 147, 147, 147, 22, 155, 190, 170, 171, + /* 1180 */ 170, 171, 170, 171, 122, 119, 195, 120, 117, 196, + /* 1190 */ 121, 23, 161, 197, 131, 113, 198, 222, 99, 199, + /* 1200 */ 153, 153, 116, 99, 98, 172, 205, 172, 172, 206, + /* 1210 */ 205, 40, 206, 174, 180, 172, 19, 175, 85, 161, + /* 1220 */ 161, 180, 172, 172, 172, 15, 153, 152, 175, 152, + /* 1230 */ 152, 227, 153, 153, 153, 152, 227, 38, 131, 61, + /* 1240 */ 153, 185, 185, 19, 215, 153, 235, 15, 188, 236, + /* 1250 */ 195, 153, 188, 188, 33, 238, 188, 185, 238, 215, + /* 1260 */ 138, 153, 153, 241, 176, 195, 176, 244, 1, 232, + /* 1270 */ 160, 20, 113, 113, 113, 113, 93, 247, 108, 19, + /* 1280 */ 11, 20, 20, 19, 19, 22, 20, 118, 20, 115, + /* 1290 */ 118, 19, 22, 22, 20, 113, 20, 44, 19, 44, + /* 1300 */ 19, 44, 20, 19, 19, 32, 19, 104, 97, 16, + /* 1310 */ 21, 17, 99, 36, 22, 134, 99, 19, 5, 1, + /* 1320 */ 45, 103, 19, 45, 123, 69, 114, 69, 14, 17, + /* 1330 */ 116, 103, 123, 114, 19, 14, 20, 137, 58, 124, + /* 1340 */ 136, 19, 3, 248, 4, }; -#define YY_SHIFT_USE_DFLT (-63) -#define YY_SHIFT_MAX 386 +#define YY_SHIFT_USE_DFLT (-108) +#define YY_SHIFT_MAX 385 static const short yy_shift_ofst[] = { - /* 0 */ 242, 840, 985, -16, 840, 930, 930, 930, 216, 1058, - /* 10 */ 392, 930, 930, 930, 930, 930, -46, 136, 161, 532, - /* 20 */ 1026, 1026, 1023, 53, 599, 349, 280, 96, 139, 211, - /* 30 */ 461, 530, 642, 642, 642, 685, 642, 642, 642, 642, - /* 40 */ 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, - /* 50 */ 642, 728, 771, 771, 856, 930, 930, 930, 930, 930, - /* 60 */ 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, - /* 70 */ 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, - /* 80 */ 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, - /* 90 */ 930, 930, 930, -62, -62, -4, 1, 1, 61, 135, - /* 100 */ 359, 478, 532, 532, 532, 532, 532, 532, 532, 1023, - /* 110 */ 1191, -63, -63, -63, 176, 9, 356, 356, 310, 132, - /* 120 */ 125, 770, 532, 532, 532, 532, 532, 532, 626, 125, - /* 130 */ 532, 532, 532, 532, 532, 532, 532, 532, 375, 1058, - /* 140 */ 1058, 1058, -63, -63, -63, -18, 223, -18, 93, 465, - /* 150 */ 209, 529, 285, 174, 469, 542, 364, 459, 676, 532, - /* 160 */ 532, 532, 801, 532, 676, 532, 532, 532, 532, 532, - /* 170 */ 532, 552, 532, 532, 532, 532, 532, 532, 801, 609, - /* 180 */ 676, 532, 532, 676, 532, 196, 196, 532, 532, 532, - /* 190 */ 532, 676, 196, 797, 532, 532, 532, 676, 532, 532, - /* 200 */ 676, 629, 532, 69, 416, 148, 882, 670, 348, 348, - /* 210 */ 758, 648, 348, 533, 348, 63, 348, 648, 148, 1020, - /* 220 */ 1074, 1097, 1020, 1039, 1127, 1048, 1016, 1110, 1048, 1127, - /* 230 */ 1022, 1131, 1127, 1048, 1144, 1048, 1020, 1020, 1145, 1144, - /* 240 */ 1148, 1135, 1058, 1039, 1039, 1148, 1039, 1055, 1131, 1145, - /* 250 */ 1061, 1063, 1068, 1097, 1135, 1039, 1127, 1020, 1170, 1020, - /* 260 */ 1095, 1190, 1100, 1084, 1039, 1190, 1081, 1055, 1190, 1144, - /* 270 */ 1039, 1020, 1020, 1190, 1144, 1074, 1074, 1020, 1055, 1100, - /* 280 */ 1084, 1020, 1073, 1020, -63, -63, -63, -63, -63, -63, - /* 290 */ 455, 384, 641, 326, 239, 51, 1088, -28, 374, 382, - /* 300 */ 667, 795, 215, 798, 807, 808, 813, 772, 815, 891, - /* 310 */ 1030, 1049, 1070, 543, 1276, 1277, 1278, 1263, 1147, 1151, - /* 320 */ 1232, 1275, 1273, 1266, 1281, 1171, 1283, 1259, 1183, 1204, - /* 330 */ 1290, 1291, 1198, 1197, 1195, 1287, 1192, 1187, 1181, 1282, - /* 340 */ 1280, 1180, 1179, 1271, 1269, 1163, 1265, 1214, 1212, 1175, - /* 350 */ 1272, 1182, 1229, 1253, 1251, 1264, 1250, 1249, 1168, 1247, - /* 360 */ 1156, 1244, 1128, 1220, 1242, 1234, 1215, 1238, 1218, 1209, - /* 370 */ 1231, 1136, 1237, 1150, 1226, 1223, 1140, 1219, 1134, 1217, - /* 380 */ 1213, 1112, 1211, 1210, 1201, 1103, 1292, + /* 0 */ 110, 855, 1002, -16, 855, 946, 946, 946, 327, 128, + /* 10 */ -107, 98, 946, 946, 946, 946, 946, -46, 251, 477, + /* 20 */ 572, -11, 78, 78, 54, 168, 212, 256, 329, 399, + /* 30 */ 469, 539, 609, 653, 697, 653, 653, 653, 653, 653, + /* 40 */ 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, + /* 50 */ 653, 653, 741, 785, 785, 871, 946, 946, 946, 946, + /* 60 */ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, + /* 70 */ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, + /* 80 */ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, + /* 90 */ 946, 946, 946, 946, -62, -62, 6, 6, 285, 64, + /* 100 */ 184, 549, 570, 572, 572, 572, 572, 572, 572, 572, + /* 110 */ 118, -11, -41, -108, -108, 133, 9, 336, 336, 567, + /* 120 */ 571, 747, 621, 572, 621, 572, 572, 572, 572, 572, + /* 130 */ 572, 572, 572, 572, 572, 572, 572, 572, 723, 61, + /* 140 */ -107, -107, -107, -108, -108, -108, -18, -18, 333, 211, + /* 150 */ 467, 556, 540, 548, 617, 806, 809, 613, 616, 743, + /* 160 */ 572, 572, 234, 572, 572, 424, 572, 572, 171, 572, + /* 170 */ 572, 646, 171, 572, 572, 390, 390, 390, 572, 572, + /* 180 */ 646, 572, 572, 646, 572, 555, 690, 572, 572, 646, + /* 190 */ 572, 572, 572, 646, 572, 572, 572, 646, 646, 572, + /* 200 */ 572, 572, 572, 572, 414, 526, 815, 787, 787, 712, + /* 210 */ 633, 633, 633, 837, 633, 633, 859, 561, 561, 1164, + /* 220 */ 1164, 1164, 1164, 1153, -107, 1062, 1066, 1067, 1071, 1069, + /* 230 */ 1168, 1063, 1082, 1082, 1099, 1086, 1099, 1086, 1104, 1104, + /* 240 */ 1171, 1104, 1106, 1104, 1197, 1133, 1168, 1133, 1168, 1171, + /* 250 */ 1104, 1104, 1104, 1197, 1210, 1082, 1210, 1082, 1210, 1082, + /* 260 */ 1082, 1199, 1107, 1210, 1082, 1178, 1178, 1224, 1062, 1082, + /* 270 */ 1232, 1232, 1232, 1232, 1062, 1178, 1224, 1082, 1221, 1221, + /* 280 */ 1082, 1082, 1122, -108, -108, -108, -108, -108, -108, 464, + /* 290 */ 654, 695, 824, 779, 817, 466, 906, 927, 952, 829, + /* 300 */ 995, 862, 984, 999, 1007, 965, 1028, 1032, 1040, 1045, + /* 310 */ 559, 1074, 926, 1267, 1251, 1159, 1160, 1161, 1162, 1183, + /* 320 */ 1170, 1260, 1261, 1262, 1264, 1269, 1265, 1266, 1263, 1268, + /* 330 */ 1169, 1270, 1172, 1271, 1174, 1272, 1274, 1182, 1276, 1273, + /* 340 */ 1253, 1279, 1255, 1281, 1282, 1284, 1285, 1257, 1287, 1211, + /* 350 */ 1203, 1293, 1294, 1289, 1213, 1277, 1275, 1292, 1278, 1181, + /* 360 */ 1217, 1298, 1313, 1318, 1218, 1256, 1258, 1201, 1303, 1212, + /* 370 */ 1314, 1214, 1312, 1219, 1228, 1209, 1315, 1215, 1316, 1321, + /* 380 */ 1280, 1204, 1200, 1322, 1339, 1340, }; -#define YY_REDUCE_USE_DFLT (-145) -#define YY_REDUCE_MAX 289 +#define YY_REDUCE_USE_DFLT (-178) +#define YY_REDUCE_MAX 288 static const short yy_reduce_ofst[] = { - /* 0 */ -139, 164, 182, 165, 345, 339, 335, -21, 76, 288, - /* 10 */ 228, 236, 408, 413, 415, 417, 425, 414, 710, 94, - /* 20 */ 458, 346, -120, 470, 470, 470, 470, 470, 470, 470, - /* 30 */ 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - /* 40 */ 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - /* 50 */ 470, 470, 470, 470, 933, 931, 928, 903, 892, 859, - /* 60 */ 853, 804, 792, 754, 747, 714, 697, 568, 483, 166, - /* 70 */ 337, 419, 525, 611, 654, 712, 721, 726, 752, 760, - /* 80 */ 763, 802, 806, 809, 844, 855, 857, 873, 883, 897, - /* 90 */ 900, 918, 924, 470, 470, 312, 470, 470, 470, 429, - /* 100 */ 470, 516, 499, 261, 549, 550, 551, 589, 592, 103, - /* 110 */ 470, 470, 470, 470, 832, 787, 896, 878, 669, 669, - /* 120 */ 879, 848, 888, 889, 773, 868, 860, 858, 245, -104, - /* 130 */ 846, 823, 811, 764, 810, 433, 741, 732, 708, 675, - /* 140 */ 632, 177, 249, 493, 178, 1085, 1077, 1082, 1076, 1101, - /* 150 */ 1099, 39, 1096, 1094, 971, 39, 1044, 39, 39, 982, - /* 160 */ 981, 979, 541, 976, 39, 971, 970, 968, 966, 964, - /* 170 */ 952, 922, 927, 913, 794, 791, 745, 678, 541, 350, - /* 180 */ 39, 369, 297, 39, 167, 106, -23, -108, -144, -37, - /* 190 */ 77, 39, 160, 207, 354, 500, 554, 39, 673, 738, - /* 200 */ 39, 556, 885, 601, 814, 898, 957, 919, 942, 944, - /* 210 */ 929, 893, 950, 947, 953, 904, 958, 905, 937, 983, - /* 220 */ 954, 960, 988, 972, 991, 934, 914, 916, 939, 1000, - /* 230 */ 932, 995, 1005, 946, 973, 948, 1009, 1010, 990, 978, - /* 240 */ 955, 935, 980, 1001, 1002, 959, 1004, 984, 1017, 1006, - /* 250 */ 986, 987, 989, 1008, 949, 1018, 1037, 1038, 1040, 1041, - /* 260 */ 1024, 1050, 996, 997, 1032, 1059, 1011, 1012, 1062, 1025, - /* 270 */ 1033, 1064, 1065, 1067, 1027, 1031, 1034, 1069, 1013, 1007, - /* 280 */ 1014, 1071, 992, 1072, 998, 1051, 1075, 993, 1057, 994, + /* 0 */ -139, 213, 371, 146, 283, 278, 53, 286, 38, -74, + /* 10 */ -3, -140, 288, 346, 351, 348, 353, 92, 683, -38, + /* 20 */ 40, 195, 279, 406, -177, -177, -177, -177, -177, -177, + /* 30 */ -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, + /* 40 */ -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, + /* 50 */ -177, -177, -177, -177, -177, 355, 623, 734, 736, 761, + /* 60 */ 767, 769, 805, 808, 819, 822, 840, 861, 870, 872, + /* 70 */ 874, 898, 907, 910, 915, 918, 922, 935, 939, 949, + /* 80 */ 951, 953, 963, 968, 970, 977, 979, 981, 983, 994, + /* 90 */ 997, 1008, 1010, 1012, -177, -177, -177, -177, 37, -177, + /* 100 */ -177, 190, 412, 515, 516, 518, 560, 563, 303, 156, + /* 110 */ -177, 435, -177, -177, -177, 55, 187, 70, 84, 141, + /* 120 */ 141, -47, 290, 94, 432, -76, 511, 349, 282, 637, + /* 130 */ 651, 652, 687, 694, 696, 711, 688, 727, -132, 733, + /* 140 */ 735, 737, 752, 718, 302, 587, 39, 45, 148, 161, + /* 150 */ 30, 307, 30, 30, 263, 492, 564, 579, 597, 608, + /* 160 */ 639, 793, 610, 597, 810, 811, 820, 823, 783, 843, + /* 170 */ 847, 30, 783, 860, 875, 845, 854, 868, 890, 905, + /* 180 */ 30, 909, 913, 30, 916, 846, 848, 936, 942, 30, + /* 190 */ 943, 947, 950, 30, 959, 964, 966, 30, 30, 967, + /* 200 */ 969, 978, 980, 982, 985, 908, 938, 914, 925, 920, + /* 210 */ 973, 986, 988, 958, 989, 990, 992, 962, 974, 1024, + /* 220 */ 1025, 1026, 1027, 1021, 987, 991, 993, 996, 998, 1000, + /* 230 */ 1031, 975, 1047, 1048, 1001, 1003, 1005, 1006, 1033, 1035, + /* 240 */ 1034, 1036, 1039, 1043, 1042, 1004, 1058, 1009, 1059, 1041, + /* 250 */ 1050, 1051, 1052, 1053, 1075, 1073, 1077, 1079, 1078, 1080, + /* 260 */ 1081, 1011, 1013, 1083, 1087, 1056, 1057, 1029, 1055, 1092, + /* 270 */ 1060, 1064, 1065, 1068, 1070, 1072, 1044, 1098, 1017, 1020, + /* 280 */ 1108, 1109, 1022, 1110, 1088, 1090, 1037, 1023, 1030, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 592, 819, 896, 707, 896, 819, 819, 896, 896, 711, - /* 10 */ 870, 896, 819, 896, 815, 896, 790, 896, 841, 896, - /* 20 */ 841, 841, 623, 742, 896, 896, 896, 896, 896, 896, - /* 30 */ 896, 896, 750, 871, 811, 896, 749, 747, 756, 723, - /* 40 */ 810, 814, 744, 874, 855, 740, 743, 818, 757, 731, - /* 50 */ 812, 778, 796, 777, 896, 896, 896, 896, 896, 896, - /* 60 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - /* 70 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - /* 80 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - /* 90 */ 896, 896, 896, 780, 801, 616, 779, 789, 781, 611, - /* 100 */ 782, 676, 896, 896, 896, 896, 896, 896, 896, 896, - /* 110 */ 783, 798, 797, 784, 896, 896, 896, 896, 896, 896, - /* 120 */ 707, 896, 896, 896, 896, 896, 896, 896, 592, 707, - /* 130 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - /* 140 */ 896, 896, 711, 889, 701, 896, 667, 896, 896, 896, - /* 150 */ 896, 896, 896, 896, 896, 896, 896, 896, 862, 896, - /* 160 */ 896, 896, 715, 896, 714, 896, 877, 896, 896, 896, - /* 170 */ 875, 625, 896, 896, 896, 597, 896, 896, 709, 599, - /* 180 */ 860, 896, 896, 613, 896, 896, 896, 896, 896, 896, - /* 190 */ 829, 690, 896, 699, 896, 896, 896, 688, 896, 896, - /* 200 */ 752, 896, 896, 847, 649, 746, 896, 708, 734, 734, - /* 210 */ 699, 896, 734, 646, 734, 813, 734, 896, 746, 716, - /* 220 */ 680, 663, 716, 678, 608, 735, 854, 851, 735, 608, - /* 230 */ 896, 896, 608, 735, 687, 735, 716, 716, 823, 687, - /* 240 */ 758, 873, 896, 678, 678, 758, 678, 746, 896, 823, - /* 250 */ 737, 739, 727, 663, 873, 678, 608, 716, 666, 716, - /* 260 */ 649, 596, 724, 726, 678, 596, 741, 746, 596, 687, - /* 270 */ 678, 716, 716, 596, 687, 680, 680, 716, 746, 724, - /* 280 */ 726, 716, 882, 716, 857, 651, 633, 889, 651, 894, - /* 290 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - /* 300 */ 896, 896, 896, 896, 896, 896, 765, 896, 896, 836, - /* 310 */ 896, 896, 896, 896, 896, 593, 896, 884, 896, 896, - /* 320 */ 881, 896, 896, 896, 896, 896, 896, 896, 896, 896, - /* 330 */ 896, 896, 896, 770, 766, 896, 896, 767, 896, 896, - /* 340 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - /* 350 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - /* 360 */ 693, 896, 896, 896, 896, 850, 849, 896, 896, 896, - /* 370 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - /* 380 */ 896, 896, 896, 896, 738, 896, 728, 736, 618, 729, - /* 390 */ 730, 607, 615, 670, 609, 669, 791, 807, 677, 717, - /* 400 */ 817, 816, 804, 864, 675, 700, 710, 863, 719, 718, - /* 410 */ 720, 809, 843, 721, 808, 674, 722, 852, 853, 848, - /* 420 */ 705, 806, 706, 844, 845, 673, 846, 610, 712, 695, - /* 430 */ 694, 725, 672, 802, 760, 799, 795, 820, 821, 761, - /* 440 */ 671, 793, 792, 787, 803, 681, 754, 755, 842, 713, - /* 450 */ 856, 800, 794, 668, 788, 786, 785, 702, 776, 773, - /* 460 */ 858, 703, 617, 628, 624, 629, 840, 838, 839, 759, - /* 470 */ 837, 631, 640, 630, 627, 639, 626, 859, 619, 770, - /* 480 */ 638, 772, 861, 704, 771, 769, 637, 768, 886, 805, - /* 490 */ 763, 764, 685, 636, 686, 696, 692, 689, 691, 762, - /* 500 */ 828, 774, 635, 868, 698, 662, 697, 648, 745, 644, - /* 510 */ 733, 775, 732, 650, 748, 647, 643, 826, 665, 664, - /* 520 */ 645, 661, 642, 751, 652, 753, 867, 830, 866, 865, - /* 530 */ 684, 683, 831, 832, 833, 834, 682, 827, 835, 679, - /* 540 */ 825, 641, 634, 632, 869, 614, 612, 872, 653, 606, - /* 550 */ 605, 604, 603, 876, 602, 601, 878, 654, 600, 657, - /* 560 */ 824, 622, 879, 658, 621, 620, 880, 883, 659, 598, - /* 570 */ 595, 885, 591, 656, 890, 891, 589, 590, 892, 895, - /* 580 */ 893, 587, 660, 655, 594, 588, + /* 0 */ 593, 819, 899, 708, 899, 819, 899, 819, 899, 844, + /* 10 */ 712, 873, 815, 819, 899, 899, 899, 790, 899, 844, + /* 20 */ 899, 624, 844, 844, 741, 899, 899, 899, 899, 899, + /* 30 */ 899, 899, 899, 742, 899, 818, 814, 810, 812, 811, + /* 40 */ 743, 732, 739, 746, 724, 858, 748, 749, 755, 756, + /* 50 */ 874, 877, 778, 777, 796, 899, 899, 899, 899, 899, + /* 60 */ 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, + /* 70 */ 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, + /* 80 */ 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, + /* 90 */ 899, 899, 899, 899, 780, 801, 779, 789, 617, 781, + /* 100 */ 782, 677, 612, 899, 899, 899, 899, 899, 899, 899, + /* 110 */ 783, 899, 784, 797, 798, 899, 899, 899, 899, 899, + /* 120 */ 899, 593, 708, 899, 708, 899, 899, 899, 899, 899, + /* 130 */ 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, + /* 140 */ 899, 899, 899, 702, 712, 892, 899, 899, 668, 899, + /* 150 */ 899, 899, 899, 899, 899, 899, 899, 899, 899, 600, + /* 160 */ 598, 899, 700, 899, 899, 626, 899, 899, 710, 899, + /* 170 */ 899, 715, 716, 899, 899, 899, 899, 899, 899, 899, + /* 180 */ 614, 899, 899, 689, 899, 850, 899, 899, 899, 865, + /* 190 */ 899, 899, 899, 863, 899, 899, 899, 691, 751, 831, + /* 200 */ 899, 878, 880, 899, 899, 700, 709, 899, 899, 813, + /* 210 */ 735, 735, 735, 647, 735, 735, 650, 745, 745, 597, + /* 220 */ 597, 597, 597, 667, 899, 745, 736, 738, 728, 740, + /* 230 */ 899, 899, 717, 717, 725, 727, 725, 727, 679, 679, + /* 240 */ 664, 679, 650, 679, 823, 828, 899, 828, 899, 664, + /* 250 */ 679, 679, 679, 823, 609, 717, 609, 717, 609, 717, + /* 260 */ 717, 854, 857, 609, 717, 681, 681, 757, 745, 717, + /* 270 */ 688, 688, 688, 688, 745, 681, 757, 717, 876, 876, + /* 280 */ 717, 717, 885, 634, 652, 652, 860, 892, 897, 899, + /* 290 */ 899, 899, 899, 764, 899, 899, 899, 899, 899, 899, + /* 300 */ 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, + /* 310 */ 837, 899, 899, 899, 899, 769, 765, 899, 766, 899, + /* 320 */ 694, 899, 899, 899, 899, 899, 899, 899, 899, 899, + /* 330 */ 899, 729, 899, 737, 899, 899, 899, 899, 899, 899, + /* 340 */ 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, + /* 350 */ 899, 899, 899, 899, 899, 899, 852, 853, 899, 899, + /* 360 */ 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, + /* 370 */ 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, + /* 380 */ 884, 899, 899, 887, 594, 899, 588, 591, 590, 592, + /* 390 */ 596, 599, 621, 622, 623, 601, 602, 603, 604, 605, + /* 400 */ 606, 607, 613, 615, 633, 635, 619, 637, 698, 699, + /* 410 */ 761, 692, 693, 697, 772, 763, 767, 768, 770, 771, + /* 420 */ 785, 786, 788, 794, 800, 803, 787, 792, 793, 795, + /* 430 */ 799, 802, 695, 696, 806, 620, 627, 628, 631, 632, + /* 440 */ 840, 842, 841, 843, 630, 629, 773, 776, 808, 809, + /* 450 */ 866, 867, 868, 869, 870, 804, 816, 817, 718, 807, + /* 460 */ 791, 730, 733, 734, 731, 701, 711, 720, 721, 722, + /* 470 */ 723, 706, 707, 713, 726, 759, 760, 714, 703, 704, + /* 480 */ 705, 805, 762, 774, 775, 638, 639, 769, 640, 641, + /* 490 */ 642, 680, 683, 684, 685, 643, 662, 665, 666, 644, + /* 500 */ 651, 645, 646, 653, 654, 655, 658, 659, 660, 661, + /* 510 */ 656, 657, 824, 825, 829, 827, 826, 648, 649, 663, + /* 520 */ 636, 625, 618, 669, 672, 673, 674, 675, 676, 678, + /* 530 */ 670, 671, 616, 608, 610, 719, 846, 855, 856, 851, + /* 540 */ 847, 848, 849, 611, 820, 821, 682, 753, 754, 845, + /* 550 */ 859, 861, 758, 862, 864, 889, 686, 687, 690, 830, + /* 560 */ 871, 744, 747, 750, 752, 832, 833, 834, 835, 838, + /* 570 */ 839, 836, 872, 875, 879, 881, 882, 883, 886, 888, + /* 580 */ 893, 894, 895, 898, 896, 595, 589, }; #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) @@ -679,6 +685,7 @@ static const YYCODETYPE yyFallback[] = { 0, /* SLASH => nothing */ 0, /* REM => nothing */ 0, /* CONCAT => nothing */ + 0, /* COLLATE => nothing */ 0, /* UMINUS => nothing */ 0, /* UPLUS => nothing */ 0, /* BITNOT => nothing */ @@ -691,7 +698,6 @@ static const YYCODETYPE yyFallback[] = { 0, /* UNIQUE => nothing */ 0, /* CHECK => nothing */ 0, /* REFERENCES => nothing */ - 0, /* COLLATE => nothing */ 0, /* AUTOINCR => nothing */ 0, /* ON => nothing */ 0, /* DELETE => nothing */ @@ -824,10 +830,10 @@ static const char *const yyTokenName[] = { "LT", "GE", "ESCAPE", "BITAND", "BITOR", "LSHIFT", "RSHIFT", "PLUS", "MINUS", "STAR", "SLASH", "REM", - "CONCAT", "UMINUS", "UPLUS", "BITNOT", - "STRING", "JOIN_KW", "CONSTRAINT", "DEFAULT", - "NULL", "PRIMARY", "UNIQUE", "CHECK", - "REFERENCES", "COLLATE", "AUTOINCR", "ON", + "CONCAT", "COLLATE", "UMINUS", "UPLUS", + "BITNOT", "STRING", "JOIN_KW", "CONSTRAINT", + "DEFAULT", "NULL", "PRIMARY", "UNIQUE", + "CHECK", "REFERENCES", "AUTOINCR", "ON", "DELETE", "UPDATE", "INSERT", "SET", "DEFERRABLE", "FOREIGN", "DROP", "UNION", "ALL", "EXCEPT", "INTERSECT", "SELECT", @@ -856,15 +862,15 @@ static const char *const yyTokenName[] = { "sclp", "as", "seltablist", "stl_prefix", "joinop", "on_opt", "using_opt", "seltablist_paren", "joinop2", "inscollist", "sortlist", "sortitem", - "collate", "exprlist", "setlist", "insert_cmd", - "inscollist_opt", "itemlist", "likeop", "escape", - "between_op", "in_op", "case_operand", "case_exprlist", - "case_else", "expritem", "uniqueflag", "idxitem", - "plus_opt", "number", "trigger_decl", "trigger_cmd_list", - "trigger_time", "trigger_event", "foreach_clause", "when_clause", - "trigger_cmd", "database_kw_opt", "key_opt", "add_column_fullname", - "kwcolumn_opt", "create_vtab", "vtabarglist", "vtabarg", - "vtabargtoken", "lp", "anylist", + "exprlist", "setlist", "insert_cmd", "inscollist_opt", + "itemlist", "likeop", "escape", "between_op", + "in_op", "case_operand", "case_exprlist", "case_else", + "expritem", "uniqueflag", "idxitem", "collate", + "nmnum", "plus_opt", "number", "trigger_decl", + "trigger_cmd_list", "trigger_time", "trigger_event", "foreach_clause", + "when_clause", "trigger_cmd", "database_kw_opt", "key_opt", + "add_column_fullname", "kwcolumn_opt", "create_vtab", "vtabarglist", + "vtabarg", "vtabargtoken", "lp", "anylist", }; #endif /* NDEBUG */ @@ -922,11 +928,11 @@ static const char *const yyRuleName[] = { /* 47 */ "carglist ::=", /* 48 */ "carg ::= CONSTRAINT nm ccons", /* 49 */ "carg ::= ccons", - /* 50 */ "carg ::= DEFAULT term", - /* 51 */ "carg ::= DEFAULT LP expr RP", - /* 52 */ "carg ::= DEFAULT PLUS term", - /* 53 */ "carg ::= DEFAULT MINUS term", - /* 54 */ "carg ::= DEFAULT id", + /* 50 */ "ccons ::= DEFAULT term", + /* 51 */ "ccons ::= DEFAULT LP expr RP", + /* 52 */ "ccons ::= DEFAULT PLUS term", + /* 53 */ "ccons ::= DEFAULT MINUS term", + /* 54 */ "ccons ::= DEFAULT id", /* 55 */ "ccons ::= NULL onconf", /* 56 */ "ccons ::= NOT NULL onconf", /* 57 */ "ccons ::= PRIMARY KEY sortorder onconf autoinc", @@ -1015,173 +1021,175 @@ static const char *const yyRuleName[] = { /* 140 */ "using_opt ::=", /* 141 */ "orderby_opt ::=", /* 142 */ "orderby_opt ::= ORDER BY sortlist", - /* 143 */ "sortlist ::= sortlist COMMA sortitem collate sortorder", - /* 144 */ "sortlist ::= sortitem collate sortorder", + /* 143 */ "sortlist ::= sortlist COMMA sortitem sortorder", + /* 144 */ "sortlist ::= sortitem sortorder", /* 145 */ "sortitem ::= expr", /* 146 */ "sortorder ::= ASC", /* 147 */ "sortorder ::= DESC", /* 148 */ "sortorder ::=", - /* 149 */ "collate ::=", - /* 150 */ "collate ::= COLLATE id", - /* 151 */ "groupby_opt ::=", - /* 152 */ "groupby_opt ::= GROUP BY exprlist", - /* 153 */ "having_opt ::=", - /* 154 */ "having_opt ::= HAVING expr", - /* 155 */ "limit_opt ::=", - /* 156 */ "limit_opt ::= LIMIT expr", - /* 157 */ "limit_opt ::= LIMIT expr OFFSET expr", - /* 158 */ "limit_opt ::= LIMIT expr COMMA expr", - /* 159 */ "cmd ::= DELETE FROM fullname where_opt", - /* 160 */ "where_opt ::=", - /* 161 */ "where_opt ::= WHERE expr", - /* 162 */ "cmd ::= UPDATE orconf fullname SET setlist where_opt", - /* 163 */ "setlist ::= setlist COMMA nm EQ expr", - /* 164 */ "setlist ::= nm EQ expr", - /* 165 */ "cmd ::= insert_cmd INTO fullname inscollist_opt VALUES LP itemlist RP", - /* 166 */ "cmd ::= insert_cmd INTO fullname inscollist_opt select", - /* 167 */ "cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUES", - /* 168 */ "insert_cmd ::= INSERT orconf", - /* 169 */ "insert_cmd ::= REPLACE", - /* 170 */ "itemlist ::= itemlist COMMA expr", - /* 171 */ "itemlist ::= expr", - /* 172 */ "inscollist_opt ::=", - /* 173 */ "inscollist_opt ::= LP inscollist RP", - /* 174 */ "inscollist ::= inscollist COMMA nm", - /* 175 */ "inscollist ::= nm", - /* 176 */ "expr ::= term", - /* 177 */ "expr ::= LP expr RP", - /* 178 */ "term ::= NULL", - /* 179 */ "expr ::= ID", - /* 180 */ "expr ::= JOIN_KW", - /* 181 */ "expr ::= nm DOT nm", - /* 182 */ "expr ::= nm DOT nm DOT nm", - /* 183 */ "term ::= INTEGER|FLOAT|BLOB", - /* 184 */ "term ::= STRING", - /* 185 */ "expr ::= REGISTER", - /* 186 */ "expr ::= VARIABLE", - /* 187 */ "expr ::= CAST LP expr AS typetoken RP", - /* 188 */ "expr ::= ID LP distinct exprlist RP", - /* 189 */ "expr ::= ID LP STAR RP", - /* 190 */ "term ::= CTIME_KW", - /* 191 */ "expr ::= expr AND expr", - /* 192 */ "expr ::= expr OR expr", - /* 193 */ "expr ::= expr LT|GT|GE|LE expr", - /* 194 */ "expr ::= expr EQ|NE expr", - /* 195 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", - /* 196 */ "expr ::= expr PLUS|MINUS expr", - /* 197 */ "expr ::= expr STAR|SLASH|REM expr", - /* 198 */ "expr ::= expr CONCAT expr", - /* 199 */ "likeop ::= LIKE_KW", - /* 200 */ "likeop ::= NOT LIKE_KW", - /* 201 */ "likeop ::= MATCH", - /* 202 */ "likeop ::= NOT MATCH", - /* 203 */ "escape ::= ESCAPE expr", - /* 204 */ "escape ::=", - /* 205 */ "expr ::= expr likeop expr escape", - /* 206 */ "expr ::= expr ISNULL|NOTNULL", - /* 207 */ "expr ::= expr IS NULL", - /* 208 */ "expr ::= expr NOT NULL", - /* 209 */ "expr ::= expr IS NOT NULL", - /* 210 */ "expr ::= NOT|BITNOT expr", - /* 211 */ "expr ::= MINUS expr", - /* 212 */ "expr ::= PLUS expr", - /* 213 */ "between_op ::= BETWEEN", - /* 214 */ "between_op ::= NOT BETWEEN", - /* 215 */ "expr ::= expr between_op expr AND expr", - /* 216 */ "in_op ::= IN", - /* 217 */ "in_op ::= NOT IN", - /* 218 */ "expr ::= expr in_op LP exprlist RP", - /* 219 */ "expr ::= LP select RP", - /* 220 */ "expr ::= expr in_op LP select RP", - /* 221 */ "expr ::= expr in_op nm dbnm", - /* 222 */ "expr ::= EXISTS LP select RP", - /* 223 */ "expr ::= CASE case_operand case_exprlist case_else END", - /* 224 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", - /* 225 */ "case_exprlist ::= WHEN expr THEN expr", - /* 226 */ "case_else ::= ELSE expr", - /* 227 */ "case_else ::=", - /* 228 */ "case_operand ::= expr", - /* 229 */ "case_operand ::=", - /* 230 */ "exprlist ::= exprlist COMMA expritem", - /* 231 */ "exprlist ::= expritem", - /* 232 */ "expritem ::= expr", - /* 233 */ "expritem ::=", - /* 234 */ "cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP", - /* 235 */ "uniqueflag ::= UNIQUE", - /* 236 */ "uniqueflag ::=", - /* 237 */ "idxlist_opt ::=", - /* 238 */ "idxlist_opt ::= LP idxlist RP", - /* 239 */ "idxlist ::= idxlist COMMA idxitem collate sortorder", - /* 240 */ "idxlist ::= idxitem collate sortorder", - /* 241 */ "idxitem ::= nm", - /* 242 */ "cmd ::= DROP INDEX ifexists fullname", - /* 243 */ "cmd ::= VACUUM", - /* 244 */ "cmd ::= VACUUM nm", - /* 245 */ "cmd ::= PRAGMA nm dbnm EQ nm", - /* 246 */ "cmd ::= PRAGMA nm dbnm EQ ON", - /* 247 */ "cmd ::= PRAGMA nm dbnm EQ plus_num", + /* 149 */ "groupby_opt ::=", + /* 150 */ "groupby_opt ::= GROUP BY exprlist", + /* 151 */ "having_opt ::=", + /* 152 */ "having_opt ::= HAVING expr", + /* 153 */ "limit_opt ::=", + /* 154 */ "limit_opt ::= LIMIT expr", + /* 155 */ "limit_opt ::= LIMIT expr OFFSET expr", + /* 156 */ "limit_opt ::= LIMIT expr COMMA expr", + /* 157 */ "cmd ::= DELETE FROM fullname where_opt", + /* 158 */ "where_opt ::=", + /* 159 */ "where_opt ::= WHERE expr", + /* 160 */ "cmd ::= UPDATE orconf fullname SET setlist where_opt", + /* 161 */ "setlist ::= setlist COMMA nm EQ expr", + /* 162 */ "setlist ::= nm EQ expr", + /* 163 */ "cmd ::= insert_cmd INTO fullname inscollist_opt VALUES LP itemlist RP", + /* 164 */ "cmd ::= insert_cmd INTO fullname inscollist_opt select", + /* 165 */ "cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUES", + /* 166 */ "insert_cmd ::= INSERT orconf", + /* 167 */ "insert_cmd ::= REPLACE", + /* 168 */ "itemlist ::= itemlist COMMA expr", + /* 169 */ "itemlist ::= expr", + /* 170 */ "inscollist_opt ::=", + /* 171 */ "inscollist_opt ::= LP inscollist RP", + /* 172 */ "inscollist ::= inscollist COMMA nm", + /* 173 */ "inscollist ::= nm", + /* 174 */ "expr ::= term", + /* 175 */ "expr ::= LP expr RP", + /* 176 */ "term ::= NULL", + /* 177 */ "expr ::= ID", + /* 178 */ "expr ::= JOIN_KW", + /* 179 */ "expr ::= nm DOT nm", + /* 180 */ "expr ::= nm DOT nm DOT nm", + /* 181 */ "term ::= INTEGER|FLOAT|BLOB", + /* 182 */ "term ::= STRING", + /* 183 */ "expr ::= REGISTER", + /* 184 */ "expr ::= VARIABLE", + /* 185 */ "expr ::= expr COLLATE id", + /* 186 */ "expr ::= CAST LP expr AS typetoken RP", + /* 187 */ "expr ::= ID LP distinct exprlist RP", + /* 188 */ "expr ::= ID LP STAR RP", + /* 189 */ "term ::= CTIME_KW", + /* 190 */ "expr ::= expr AND expr", + /* 191 */ "expr ::= expr OR expr", + /* 192 */ "expr ::= expr LT|GT|GE|LE expr", + /* 193 */ "expr ::= expr EQ|NE expr", + /* 194 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", + /* 195 */ "expr ::= expr PLUS|MINUS expr", + /* 196 */ "expr ::= expr STAR|SLASH|REM expr", + /* 197 */ "expr ::= expr CONCAT expr", + /* 198 */ "likeop ::= LIKE_KW", + /* 199 */ "likeop ::= NOT LIKE_KW", + /* 200 */ "likeop ::= MATCH", + /* 201 */ "likeop ::= NOT MATCH", + /* 202 */ "escape ::= ESCAPE expr", + /* 203 */ "escape ::=", + /* 204 */ "expr ::= expr likeop expr escape", + /* 205 */ "expr ::= expr ISNULL|NOTNULL", + /* 206 */ "expr ::= expr IS NULL", + /* 207 */ "expr ::= expr NOT NULL", + /* 208 */ "expr ::= expr IS NOT NULL", + /* 209 */ "expr ::= NOT|BITNOT expr", + /* 210 */ "expr ::= MINUS expr", + /* 211 */ "expr ::= PLUS expr", + /* 212 */ "between_op ::= BETWEEN", + /* 213 */ "between_op ::= NOT BETWEEN", + /* 214 */ "expr ::= expr between_op expr AND expr", + /* 215 */ "in_op ::= IN", + /* 216 */ "in_op ::= NOT IN", + /* 217 */ "expr ::= expr in_op LP exprlist RP", + /* 218 */ "expr ::= LP select RP", + /* 219 */ "expr ::= expr in_op LP select RP", + /* 220 */ "expr ::= expr in_op nm dbnm", + /* 221 */ "expr ::= EXISTS LP select RP", + /* 222 */ "expr ::= CASE case_operand case_exprlist case_else END", + /* 223 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", + /* 224 */ "case_exprlist ::= WHEN expr THEN expr", + /* 225 */ "case_else ::= ELSE expr", + /* 226 */ "case_else ::=", + /* 227 */ "case_operand ::= expr", + /* 228 */ "case_operand ::=", + /* 229 */ "exprlist ::= exprlist COMMA expritem", + /* 230 */ "exprlist ::= expritem", + /* 231 */ "expritem ::= expr", + /* 232 */ "expritem ::=", + /* 233 */ "cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP", + /* 234 */ "uniqueflag ::= UNIQUE", + /* 235 */ "uniqueflag ::=", + /* 236 */ "idxlist_opt ::=", + /* 237 */ "idxlist_opt ::= LP idxlist RP", + /* 238 */ "idxlist ::= idxlist COMMA idxitem collate sortorder", + /* 239 */ "idxlist ::= idxitem collate sortorder", + /* 240 */ "idxitem ::= nm", + /* 241 */ "collate ::=", + /* 242 */ "collate ::= COLLATE id", + /* 243 */ "cmd ::= DROP INDEX ifexists fullname", + /* 244 */ "cmd ::= VACUUM", + /* 245 */ "cmd ::= VACUUM nm", + /* 246 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", + /* 247 */ "cmd ::= PRAGMA nm dbnm EQ ON", /* 248 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", - /* 249 */ "cmd ::= PRAGMA nm dbnm LP nm RP", + /* 249 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", /* 250 */ "cmd ::= PRAGMA nm dbnm", - /* 251 */ "plus_num ::= plus_opt number", - /* 252 */ "minus_num ::= MINUS number", - /* 253 */ "number ::= INTEGER|FLOAT", - /* 254 */ "plus_opt ::= PLUS", - /* 255 */ "plus_opt ::=", - /* 256 */ "cmd ::= CREATE trigger_decl BEGIN trigger_cmd_list END", - /* 257 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", - /* 258 */ "trigger_time ::= BEFORE", - /* 259 */ "trigger_time ::= AFTER", - /* 260 */ "trigger_time ::= INSTEAD OF", - /* 261 */ "trigger_time ::=", - /* 262 */ "trigger_event ::= DELETE|INSERT", - /* 263 */ "trigger_event ::= UPDATE", - /* 264 */ "trigger_event ::= UPDATE OF inscollist", - /* 265 */ "foreach_clause ::=", - /* 266 */ "foreach_clause ::= FOR EACH ROW", - /* 267 */ "foreach_clause ::= FOR EACH STATEMENT", - /* 268 */ "when_clause ::=", - /* 269 */ "when_clause ::= WHEN expr", - /* 270 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", - /* 271 */ "trigger_cmd_list ::=", - /* 272 */ "trigger_cmd ::= UPDATE orconf nm SET setlist where_opt", - /* 273 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt VALUES LP itemlist RP", - /* 274 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt select", - /* 275 */ "trigger_cmd ::= DELETE FROM nm where_opt", - /* 276 */ "trigger_cmd ::= select", - /* 277 */ "expr ::= RAISE LP IGNORE RP", - /* 278 */ "expr ::= RAISE LP raisetype COMMA nm RP", - /* 279 */ "raisetype ::= ROLLBACK", - /* 280 */ "raisetype ::= ABORT", - /* 281 */ "raisetype ::= FAIL", - /* 282 */ "cmd ::= DROP TRIGGER ifexists fullname", - /* 283 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", - /* 284 */ "key_opt ::=", - /* 285 */ "key_opt ::= KEY expr", - /* 286 */ "database_kw_opt ::= DATABASE", - /* 287 */ "database_kw_opt ::=", - /* 288 */ "cmd ::= DETACH database_kw_opt expr", - /* 289 */ "cmd ::= REINDEX", - /* 290 */ "cmd ::= REINDEX nm dbnm", - /* 291 */ "cmd ::= ANALYZE", - /* 292 */ "cmd ::= ANALYZE nm dbnm", - /* 293 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", - /* 294 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt column", - /* 295 */ "add_column_fullname ::= fullname", - /* 296 */ "kwcolumn_opt ::=", - /* 297 */ "kwcolumn_opt ::= COLUMNKW", - /* 298 */ "cmd ::= create_vtab", - /* 299 */ "cmd ::= create_vtab LP vtabarglist RP", - /* 300 */ "create_vtab ::= CREATE VIRTUAL TABLE nm dbnm USING nm", - /* 301 */ "vtabarglist ::= vtabarg", - /* 302 */ "vtabarglist ::= vtabarglist COMMA vtabarg", - /* 303 */ "vtabarg ::=", - /* 304 */ "vtabarg ::= vtabarg vtabargtoken", - /* 305 */ "vtabargtoken ::= ANY", - /* 306 */ "vtabargtoken ::= lp anylist RP", - /* 307 */ "lp ::= LP", - /* 308 */ "anylist ::=", - /* 309 */ "anylist ::= anylist ANY", + /* 251 */ "nmnum ::= plus_num", + /* 252 */ "nmnum ::= nm", + /* 253 */ "plus_num ::= plus_opt number", + /* 254 */ "minus_num ::= MINUS number", + /* 255 */ "number ::= INTEGER|FLOAT", + /* 256 */ "plus_opt ::= PLUS", + /* 257 */ "plus_opt ::=", + /* 258 */ "cmd ::= CREATE trigger_decl BEGIN trigger_cmd_list END", + /* 259 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", + /* 260 */ "trigger_time ::= BEFORE", + /* 261 */ "trigger_time ::= AFTER", + /* 262 */ "trigger_time ::= INSTEAD OF", + /* 263 */ "trigger_time ::=", + /* 264 */ "trigger_event ::= DELETE|INSERT", + /* 265 */ "trigger_event ::= UPDATE", + /* 266 */ "trigger_event ::= UPDATE OF inscollist", + /* 267 */ "foreach_clause ::=", + /* 268 */ "foreach_clause ::= FOR EACH ROW", + /* 269 */ "foreach_clause ::= FOR EACH STATEMENT", + /* 270 */ "when_clause ::=", + /* 271 */ "when_clause ::= WHEN expr", + /* 272 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", + /* 273 */ "trigger_cmd_list ::=", + /* 274 */ "trigger_cmd ::= UPDATE orconf nm SET setlist where_opt", + /* 275 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt VALUES LP itemlist RP", + /* 276 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt select", + /* 277 */ "trigger_cmd ::= DELETE FROM nm where_opt", + /* 278 */ "trigger_cmd ::= select", + /* 279 */ "expr ::= RAISE LP IGNORE RP", + /* 280 */ "expr ::= RAISE LP raisetype COMMA nm RP", + /* 281 */ "raisetype ::= ROLLBACK", + /* 282 */ "raisetype ::= ABORT", + /* 283 */ "raisetype ::= FAIL", + /* 284 */ "cmd ::= DROP TRIGGER ifexists fullname", + /* 285 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", + /* 286 */ "key_opt ::=", + /* 287 */ "key_opt ::= KEY expr", + /* 288 */ "database_kw_opt ::= DATABASE", + /* 289 */ "database_kw_opt ::=", + /* 290 */ "cmd ::= DETACH database_kw_opt expr", + /* 291 */ "cmd ::= REINDEX", + /* 292 */ "cmd ::= REINDEX nm dbnm", + /* 293 */ "cmd ::= ANALYZE", + /* 294 */ "cmd ::= ANALYZE nm dbnm", + /* 295 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", + /* 296 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt column", + /* 297 */ "add_column_fullname ::= fullname", + /* 298 */ "kwcolumn_opt ::=", + /* 299 */ "kwcolumn_opt ::= COLUMNKW", + /* 300 */ "cmd ::= create_vtab", + /* 301 */ "cmd ::= create_vtab LP vtabarglist RP", + /* 302 */ "create_vtab ::= CREATE VIRTUAL TABLE nm dbnm USING nm", + /* 303 */ "vtabarglist ::= vtabarg", + /* 304 */ "vtabarglist ::= vtabarglist COMMA vtabarg", + /* 305 */ "vtabarg ::=", + /* 306 */ "vtabarg ::= vtabarg vtabargtoken", + /* 307 */ "vtabargtoken ::= ANY", + /* 308 */ "vtabargtoken ::= lp anylist RP", + /* 309 */ "lp ::= LP", + /* 310 */ "anylist ::=", + /* 311 */ "anylist ::= anylist ANY", }; #endif /* NDEBUG */ @@ -1242,9 +1250,9 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 156: case 190: case 207: -#line 374 "parse.y" -{sqlite3SelectDelete((yypminor->yy219));} -#line 1249 "parse.c" +#line 375 "parse.y" +{sqlite3SelectDelete((yypminor->yy43));} +#line 1257 "parse.c" break; case 170: case 171: @@ -1252,14 +1260,14 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 197: case 205: case 211: - case 219: - case 222: + case 218: + case 221: + case 223: case 224: - case 225: - case 235: -#line 633 "parse.y" -{sqlite3ExprDelete((yypminor->yy172));} -#line 1264 "parse.c" + case 236: +#line 616 "parse.y" +{sqlite3ExprDelete((yypminor->yy450));} +#line 1272 "parse.c" break; case 175: case 183: @@ -1268,52 +1276,52 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ case 198: case 200: case 210: + case 212: case 213: - case 214: - case 217: - case 223: -#line 870 "parse.y" -{sqlite3ExprListDelete((yypminor->yy174));} -#line 1279 "parse.c" + case 216: + case 222: +#line 856 "parse.y" +{sqlite3ExprListDelete((yypminor->yy242));} +#line 1287 "parse.c" break; case 189: case 194: case 202: case 203: -#line 502 "parse.y" -{sqlite3SrcListDelete((yypminor->yy373));} -#line 1287 "parse.c" +#line 488 "parse.y" +{sqlite3SrcListDelete((yypminor->yy419));} +#line 1295 "parse.c" break; case 199: -#line 563 "parse.y" +#line 546 "parse.y" { - sqlite3ExprDelete((yypminor->yy234).pLimit); - sqlite3ExprDelete((yypminor->yy234).pOffset); + sqlite3ExprDelete((yypminor->yy84).pLimit); + sqlite3ExprDelete((yypminor->yy84).pOffset); } -#line 1295 "parse.c" +#line 1303 "parse.c" break; case 206: case 209: - case 216: -#line 519 "parse.y" -{sqlite3IdListDelete((yypminor->yy432));} -#line 1302 "parse.c" + case 215: +#line 505 "parse.y" +{sqlite3IdListDelete((yypminor->yy352));} +#line 1310 "parse.c" break; - case 231: - case 236: -#line 966 "parse.y" -{sqlite3DeleteTriggerStep((yypminor->yy243));} -#line 1308 "parse.c" + case 232: + case 237: +#line 957 "parse.y" +{sqlite3DeleteTriggerStep((yypminor->yy75));} +#line 1316 "parse.c" break; - case 233: -#line 950 "parse.y" -{sqlite3IdListDelete((yypminor->yy370).b);} -#line 1313 "parse.c" + case 234: +#line 941 "parse.y" +{sqlite3IdListDelete((yypminor->yy354).b);} +#line 1321 "parse.c" break; - case 238: -#line 1034 "parse.y" -{sqlite3ExprDelete((yypminor->yy386));} -#line 1318 "parse.c" + case 239: +#line 1025 "parse.y" +{sqlite3ExprDelete((yypminor->yy158));} +#line 1326 "parse.c" break; default: break; /* If no destructor action specified: do nothing */ } @@ -1481,7 +1489,7 @@ static void yy_shift( sqlite3ErrorMsg(pParse, "parser stack overflow"); pParse->parseError = 1; -#line 1487 "parse.c" +#line 1495 "parse.c" sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument var */ return; } @@ -1558,11 +1566,11 @@ static const struct { { 160, 0 }, { 168, 3 }, { 168, 1 }, - { 168, 2 }, - { 168, 4 }, - { 168, 3 }, - { 168, 3 }, - { 168, 2 }, + { 169, 2 }, + { 169, 4 }, + { 169, 3 }, + { 169, 3 }, + { 169, 2 }, { 169, 2 }, { 169, 3 }, { 169, 5 }, @@ -1651,14 +1659,12 @@ static const struct { { 206, 0 }, { 198, 0 }, { 198, 3 }, - { 210, 5 }, - { 210, 3 }, + { 210, 4 }, + { 210, 2 }, { 211, 1 }, { 173, 1 }, { 173, 1 }, { 173, 0 }, - { 212, 0 }, - { 212, 2 }, { 196, 0 }, { 196, 3 }, { 197, 0 }, @@ -1671,17 +1677,17 @@ static const struct { { 195, 0 }, { 195, 2 }, { 144, 6 }, - { 214, 5 }, - { 214, 3 }, + { 213, 5 }, + { 213, 3 }, { 144, 8 }, { 144, 5 }, { 144, 6 }, - { 215, 2 }, - { 215, 1 }, - { 217, 3 }, - { 217, 1 }, - { 216, 0 }, + { 214, 2 }, + { 214, 1 }, { 216, 3 }, + { 216, 1 }, + { 215, 0 }, + { 215, 3 }, { 209, 3 }, { 209, 1 }, { 171, 1 }, @@ -1695,6 +1701,7 @@ static const struct { { 170, 1 }, { 171, 1 }, { 171, 1 }, + { 171, 3 }, { 171, 6 }, { 171, 5 }, { 171, 4 }, @@ -1707,84 +1714,87 @@ static const struct { { 171, 3 }, { 171, 3 }, { 171, 3 }, - { 218, 1 }, - { 218, 2 }, - { 218, 1 }, + { 217, 1 }, + { 217, 2 }, + { 217, 1 }, + { 217, 2 }, { 218, 2 }, + { 218, 0 }, + { 171, 4 }, + { 171, 2 }, + { 171, 3 }, + { 171, 3 }, + { 171, 4 }, + { 171, 2 }, + { 171, 2 }, + { 171, 2 }, + { 219, 1 }, { 219, 2 }, - { 219, 0 }, - { 171, 4 }, - { 171, 2 }, - { 171, 3 }, - { 171, 3 }, - { 171, 4 }, - { 171, 2 }, - { 171, 2 }, - { 171, 2 }, + { 171, 5 }, { 220, 1 }, { 220, 2 }, { 171, 5 }, - { 221, 1 }, - { 221, 2 }, - { 171, 5 }, { 171, 3 }, { 171, 5 }, { 171, 4 }, { 171, 4 }, { 171, 5 }, - { 223, 5 }, - { 223, 4 }, - { 224, 2 }, + { 222, 5 }, + { 222, 4 }, + { 223, 2 }, + { 223, 0 }, + { 221, 1 }, + { 221, 0 }, + { 212, 3 }, + { 212, 1 }, + { 224, 1 }, { 224, 0 }, - { 222, 1 }, - { 222, 0 }, - { 213, 3 }, - { 213, 1 }, + { 144, 11 }, { 225, 1 }, { 225, 0 }, - { 144, 11 }, - { 226, 1 }, - { 226, 0 }, { 175, 0 }, { 175, 3 }, { 183, 5 }, { 183, 3 }, - { 227, 1 }, + { 226, 1 }, + { 227, 0 }, + { 227, 2 }, { 144, 4 }, { 144, 1 }, { 144, 2 }, { 144, 5 }, { 144, 5 }, { 144, 5 }, - { 144, 5 }, { 144, 6 }, { 144, 3 }, + { 228, 1 }, + { 228, 1 }, { 166, 2 }, { 167, 2 }, + { 230, 1 }, { 229, 1 }, - { 228, 1 }, - { 228, 0 }, + { 229, 0 }, { 144, 5 }, - { 230, 11 }, - { 232, 1 }, - { 232, 1 }, - { 232, 2 }, - { 232, 0 }, + { 231, 11 }, { 233, 1 }, { 233, 1 }, - { 233, 3 }, - { 234, 0 }, - { 234, 3 }, + { 233, 2 }, + { 233, 0 }, + { 234, 1 }, + { 234, 1 }, { 234, 3 }, { 235, 0 }, - { 235, 2 }, - { 231, 3 }, - { 231, 0 }, - { 236, 6 }, - { 236, 8 }, - { 236, 5 }, - { 236, 4 }, - { 236, 1 }, + { 235, 3 }, + { 235, 3 }, + { 236, 0 }, + { 236, 2 }, + { 232, 3 }, + { 232, 0 }, + { 237, 6 }, + { 237, 8 }, + { 237, 5 }, + { 237, 4 }, + { 237, 1 }, { 171, 4 }, { 171, 6 }, { 187, 1 }, @@ -1792,10 +1802,10 @@ static const struct { { 187, 1 }, { 144, 4 }, { 144, 6 }, + { 239, 0 }, + { 239, 2 }, + { 238, 1 }, { 238, 0 }, - { 238, 2 }, - { 237, 1 }, - { 237, 0 }, { 144, 3 }, { 144, 1 }, { 144, 3 }, @@ -1803,21 +1813,21 @@ static const struct { { 144, 3 }, { 144, 6 }, { 144, 6 }, - { 239, 1 }, - { 240, 0 }, { 240, 1 }, + { 241, 0 }, + { 241, 1 }, { 144, 1 }, { 144, 4 }, - { 241, 7 }, - { 242, 1 }, - { 242, 3 }, - { 243, 0 }, - { 243, 2 }, - { 244, 1 }, - { 244, 3 }, + { 242, 7 }, + { 243, 1 }, + { 243, 3 }, + { 244, 0 }, + { 244, 2 }, { 245, 1 }, - { 246, 0 }, - { 246, 2 }, + { 245, 3 }, + { 246, 1 }, + { 247, 0 }, + { 247, 2 }, }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -1845,7 +1855,6 @@ static void yy_reduce( } #endif /* NDEBUG */ -#ifndef NDEBUG /* Silence complaints from purify about yygotominor being uninitialized ** in some cases when it is copied into the stack after the following ** switch. yygotominor is uninitialized when a rule reduces that does @@ -1853,9 +1862,15 @@ static void yy_reduce( ** value of the nonterminal uninitialized is utterly harmless as long ** as the value is never used. So really the only thing this code ** accomplishes is to quieten purify. + ** + ** 2007-01-16: The wireshark project (www.wireshark.org) reports that + ** without this code, their parser segfaults. I'm not sure what there + ** parser is doing to make this happen. This is the second bug report + ** from wireshark this week. Clearly they are stressing Lemon in ways + ** that it has not been previously stressed... (SQLite ticket #2172) */ memset(&yygotominor, 0, sizeof(yygotominor)); -#endif + switch( yyruleno ){ /* Beginning here are the reduction cases. A typical example @@ -1869,32 +1884,32 @@ static void yy_reduce( case 3: #line 100 "parse.y" { sqlite3FinishCoding(pParse); } -#line 1875 "parse.c" +#line 1890 "parse.c" break; case 6: #line 103 "parse.y" { sqlite3BeginParse(pParse, 0); } -#line 1880 "parse.c" +#line 1895 "parse.c" break; case 7: #line 105 "parse.y" { sqlite3BeginParse(pParse, 1); } -#line 1885 "parse.c" +#line 1900 "parse.c" break; case 8: #line 106 "parse.y" { sqlite3BeginParse(pParse, 2); } -#line 1890 "parse.c" +#line 1905 "parse.c" break; case 9: #line 112 "parse.y" -{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy46);} -#line 1895 "parse.c" +{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy316);} +#line 1910 "parse.c" break; case 13: #line 117 "parse.y" -{yygotominor.yy46 = TK_DEFERRED;} -#line 1900 "parse.c" +{yygotominor.yy316 = TK_DEFERRED;} +#line 1915 "parse.c" break; case 14: case 15: @@ -1902,26 +1917,26 @@ static void yy_reduce( case 107: case 109: #line 118 "parse.y" -{yygotominor.yy46 = yymsp[0].major;} -#line 1909 "parse.c" +{yygotominor.yy316 = yymsp[0].major;} +#line 1924 "parse.c" break; case 17: case 18: #line 121 "parse.y" {sqlite3CommitTransaction(pParse);} -#line 1915 "parse.c" +#line 1930 "parse.c" break; case 19: #line 123 "parse.y" {sqlite3RollbackTransaction(pParse);} -#line 1920 "parse.c" +#line 1935 "parse.c" break; case 21: #line 128 "parse.y" { - sqlite3StartTable(pParse,&yymsp[-1].minor.yy410,&yymsp[0].minor.yy410,yymsp[-4].minor.yy46,0,0,yymsp[-2].minor.yy46); + sqlite3StartTable(pParse,&yymsp[-1].minor.yy178,&yymsp[0].minor.yy178,yymsp[-4].minor.yy316,0,0,yymsp[-2].minor.yy316); } -#line 1927 "parse.c" +#line 1942 "parse.c" break; case 22: case 25: @@ -1932,11 +1947,11 @@ static void yy_reduce( case 101: case 112: case 113: - case 213: - case 216: + case 212: + case 215: #line 132 "parse.y" -{yygotominor.yy46 = 0;} -#line 1942 "parse.c" +{yygotominor.yy316 = 0;} +#line 1957 "parse.c" break; case 23: case 24: @@ -1944,213 +1959,215 @@ static void yy_reduce( case 78: case 100: case 111: - case 214: - case 217: + case 213: + case 216: #line 133 "parse.y" -{yygotominor.yy46 = 1;} -#line 1954 "parse.c" +{yygotominor.yy316 = 1;} +#line 1969 "parse.c" break; case 26: #line 139 "parse.y" { - sqlite3EndTable(pParse,&yymsp[-1].minor.yy410,&yymsp[0].minor.yy0,0); + sqlite3EndTable(pParse,&yymsp[-1].minor.yy178,&yymsp[0].minor.yy0,0); } -#line 1961 "parse.c" +#line 1976 "parse.c" break; case 27: #line 142 "parse.y" { - sqlite3EndTable(pParse,0,0,yymsp[0].minor.yy219); - sqlite3SelectDelete(yymsp[0].minor.yy219); + sqlite3EndTable(pParse,0,0,yymsp[0].minor.yy43); + sqlite3SelectDelete(yymsp[0].minor.yy43); } -#line 1969 "parse.c" +#line 1984 "parse.c" break; case 30: #line 154 "parse.y" { - yygotominor.yy410.z = yymsp[-2].minor.yy410.z; - yygotominor.yy410.n = (pParse->sLastToken.z-yymsp[-2].minor.yy410.z) + pParse->sLastToken.n; + yygotominor.yy178.z = yymsp[-2].minor.yy178.z; + yygotominor.yy178.n = (pParse->sLastToken.z-yymsp[-2].minor.yy178.z) + pParse->sLastToken.n; } -#line 1977 "parse.c" +#line 1992 "parse.c" break; case 31: #line 158 "parse.y" { - sqlite3AddColumn(pParse,&yymsp[0].minor.yy410); - yygotominor.yy410 = yymsp[0].minor.yy410; + sqlite3AddColumn(pParse,&yymsp[0].minor.yy178); + yygotominor.yy178 = yymsp[0].minor.yy178; } -#line 1985 "parse.c" +#line 2000 "parse.c" break; case 32: case 33: case 34: case 35: case 36: - case 253: + case 255: #line 168 "parse.y" -{yygotominor.yy410 = yymsp[0].minor.yy0;} -#line 1995 "parse.c" +{yygotominor.yy178 = yymsp[0].minor.yy0;} +#line 2010 "parse.c" break; case 38: -#line 228 "parse.y" -{sqlite3AddColumnType(pParse,&yymsp[0].minor.yy410);} -#line 2000 "parse.c" +#line 229 "parse.y" +{sqlite3AddColumnType(pParse,&yymsp[0].minor.yy178);} +#line 2015 "parse.c" break; case 39: case 42: case 119: case 120: case 131: - case 150: - case 241: + case 240: + case 242: case 251: case 252: -#line 229 "parse.y" -{yygotominor.yy410 = yymsp[0].minor.yy410;} -#line 2013 "parse.c" + case 253: + case 254: +#line 230 "parse.y" +{yygotominor.yy178 = yymsp[0].minor.yy178;} +#line 2030 "parse.c" break; case 40: -#line 230 "parse.y" +#line 231 "parse.y" { - yygotominor.yy410.z = yymsp[-3].minor.yy410.z; - yygotominor.yy410.n = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-3].minor.yy410.z; + yygotominor.yy178.z = yymsp[-3].minor.yy178.z; + yygotominor.yy178.n = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-3].minor.yy178.z; } -#line 2021 "parse.c" +#line 2038 "parse.c" break; case 41: -#line 234 "parse.y" +#line 235 "parse.y" { - yygotominor.yy410.z = yymsp[-5].minor.yy410.z; - yygotominor.yy410.n = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-5].minor.yy410.z; + yygotominor.yy178.z = yymsp[-5].minor.yy178.z; + yygotominor.yy178.n = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-5].minor.yy178.z; } -#line 2029 "parse.c" +#line 2046 "parse.c" break; case 43: -#line 240 "parse.y" -{yygotominor.yy410.z=yymsp[-1].minor.yy410.z; yygotominor.yy410.n=yymsp[0].minor.yy410.n+(yymsp[0].minor.yy410.z-yymsp[-1].minor.yy410.z);} -#line 2034 "parse.c" +#line 241 "parse.y" +{yygotominor.yy178.z=yymsp[-1].minor.yy178.z; yygotominor.yy178.n=yymsp[0].minor.yy178.n+(yymsp[0].minor.yy178.z-yymsp[-1].minor.yy178.z);} +#line 2051 "parse.c" break; case 44: -#line 242 "parse.y" -{ yygotominor.yy46 = atoi((char*)yymsp[0].minor.yy410.z); } -#line 2039 "parse.c" +#line 243 "parse.y" +{ yygotominor.yy316 = atoi((char*)yymsp[0].minor.yy178.z); } +#line 2056 "parse.c" break; case 45: -#line 243 "parse.y" -{ yygotominor.yy46 = -atoi((char*)yymsp[0].minor.yy410.z); } -#line 2044 "parse.c" +#line 244 "parse.y" +{ yygotominor.yy316 = -atoi((char*)yymsp[0].minor.yy178.z); } +#line 2061 "parse.c" break; case 50: case 52: -#line 252 "parse.y" -{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy172);} -#line 2050 "parse.c" +#line 253 "parse.y" +{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy450);} +#line 2067 "parse.c" break; case 51: -#line 253 "parse.y" -{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy172);} -#line 2055 "parse.c" +#line 254 "parse.y" +{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy450);} +#line 2072 "parse.c" break; case 53: -#line 255 "parse.y" +#line 256 "parse.y" { - Expr *p = sqlite3Expr(TK_UMINUS, yymsp[0].minor.yy172, 0, 0); + Expr *p = sqlite3Expr(TK_UMINUS, yymsp[0].minor.yy450, 0, 0); sqlite3AddDefaultValue(pParse,p); } -#line 2063 "parse.c" +#line 2080 "parse.c" break; case 54: -#line 259 "parse.y" +#line 260 "parse.y" { - Expr *p = sqlite3Expr(TK_STRING, 0, 0, &yymsp[0].minor.yy410); + Expr *p = sqlite3Expr(TK_STRING, 0, 0, &yymsp[0].minor.yy178); sqlite3AddDefaultValue(pParse,p); } -#line 2071 "parse.c" +#line 2088 "parse.c" break; case 56: -#line 268 "parse.y" -{sqlite3AddNotNull(pParse, yymsp[0].minor.yy46);} -#line 2076 "parse.c" +#line 269 "parse.y" +{sqlite3AddNotNull(pParse, yymsp[0].minor.yy316);} +#line 2093 "parse.c" break; case 57: -#line 270 "parse.y" -{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy46,yymsp[0].minor.yy46,yymsp[-2].minor.yy46);} -#line 2081 "parse.c" +#line 271 "parse.y" +{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy316,yymsp[0].minor.yy316,yymsp[-2].minor.yy316);} +#line 2098 "parse.c" break; case 58: -#line 271 "parse.y" -{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy46,0,0,0,0);} -#line 2086 "parse.c" +#line 272 "parse.y" +{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy316,0,0,0,0);} +#line 2103 "parse.c" break; case 59: -#line 272 "parse.y" -{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy172);} -#line 2091 "parse.c" +#line 273 "parse.y" +{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy450);} +#line 2108 "parse.c" break; case 60: -#line 274 "parse.y" -{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy410,yymsp[-1].minor.yy174,yymsp[0].minor.yy46);} -#line 2096 "parse.c" +#line 275 "parse.y" +{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy178,yymsp[-1].minor.yy242,yymsp[0].minor.yy316);} +#line 2113 "parse.c" break; case 61: -#line 275 "parse.y" -{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy46);} -#line 2101 "parse.c" +#line 276 "parse.y" +{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy316);} +#line 2118 "parse.c" break; case 62: -#line 276 "parse.y" -{sqlite3AddCollateType(pParse, (char*)yymsp[0].minor.yy410.z, yymsp[0].minor.yy410.n);} -#line 2106 "parse.c" +#line 277 "parse.y" +{sqlite3AddCollateType(pParse, (char*)yymsp[0].minor.yy178.z, yymsp[0].minor.yy178.n);} +#line 2123 "parse.c" break; case 65: -#line 289 "parse.y" -{ yygotominor.yy46 = OE_Restrict * 0x010101; } -#line 2111 "parse.c" +#line 290 "parse.y" +{ yygotominor.yy316 = OE_Restrict * 0x010101; } +#line 2128 "parse.c" break; case 66: -#line 290 "parse.y" -{ yygotominor.yy46 = (yymsp[-1].minor.yy46 & yymsp[0].minor.yy405.mask) | yymsp[0].minor.yy405.value; } -#line 2116 "parse.c" +#line 291 "parse.y" +{ yygotominor.yy316 = (yymsp[-1].minor.yy316 & yymsp[0].minor.yy207.mask) | yymsp[0].minor.yy207.value; } +#line 2133 "parse.c" break; case 67: -#line 292 "parse.y" -{ yygotominor.yy405.value = 0; yygotominor.yy405.mask = 0x000000; } -#line 2121 "parse.c" +#line 293 "parse.y" +{ yygotominor.yy207.value = 0; yygotominor.yy207.mask = 0x000000; } +#line 2138 "parse.c" break; case 68: -#line 293 "parse.y" -{ yygotominor.yy405.value = yymsp[0].minor.yy46; yygotominor.yy405.mask = 0x0000ff; } -#line 2126 "parse.c" +#line 294 "parse.y" +{ yygotominor.yy207.value = yymsp[0].minor.yy316; yygotominor.yy207.mask = 0x0000ff; } +#line 2143 "parse.c" break; case 69: -#line 294 "parse.y" -{ yygotominor.yy405.value = yymsp[0].minor.yy46<<8; yygotominor.yy405.mask = 0x00ff00; } -#line 2131 "parse.c" +#line 295 "parse.y" +{ yygotominor.yy207.value = yymsp[0].minor.yy316<<8; yygotominor.yy207.mask = 0x00ff00; } +#line 2148 "parse.c" break; case 70: -#line 295 "parse.y" -{ yygotominor.yy405.value = yymsp[0].minor.yy46<<16; yygotominor.yy405.mask = 0xff0000; } -#line 2136 "parse.c" +#line 296 "parse.y" +{ yygotominor.yy207.value = yymsp[0].minor.yy316<<16; yygotominor.yy207.mask = 0xff0000; } +#line 2153 "parse.c" break; case 71: -#line 297 "parse.y" -{ yygotominor.yy46 = OE_SetNull; } -#line 2141 "parse.c" +#line 298 "parse.y" +{ yygotominor.yy316 = OE_SetNull; } +#line 2158 "parse.c" break; case 72: -#line 298 "parse.y" -{ yygotominor.yy46 = OE_SetDflt; } -#line 2146 "parse.c" +#line 299 "parse.y" +{ yygotominor.yy316 = OE_SetDflt; } +#line 2163 "parse.c" break; case 73: -#line 299 "parse.y" -{ yygotominor.yy46 = OE_Cascade; } -#line 2151 "parse.c" +#line 300 "parse.y" +{ yygotominor.yy316 = OE_Cascade; } +#line 2168 "parse.c" break; case 74: -#line 300 "parse.y" -{ yygotominor.yy46 = OE_Restrict; } -#line 2156 "parse.c" +#line 301 "parse.y" +{ yygotominor.yy316 = OE_Restrict; } +#line 2173 "parse.c" break; case 75: case 76: @@ -2158,497 +2175,485 @@ static void yy_reduce( case 93: case 95: case 96: - case 168: -#line 302 "parse.y" -{yygotominor.yy46 = yymsp[0].minor.yy46;} -#line 2167 "parse.c" + case 166: +#line 303 "parse.y" +{yygotominor.yy316 = yymsp[0].minor.yy316;} +#line 2184 "parse.c" break; case 80: -#line 312 "parse.y" -{yygotominor.yy410.n = 0; yygotominor.yy410.z = 0;} -#line 2172 "parse.c" +#line 313 "parse.y" +{yygotominor.yy178.n = 0; yygotominor.yy178.z = 0;} +#line 2189 "parse.c" break; case 81: -#line 313 "parse.y" -{yygotominor.yy410 = yymsp[-1].minor.yy0;} -#line 2177 "parse.c" +#line 314 "parse.y" +{yygotominor.yy178 = yymsp[-1].minor.yy0;} +#line 2194 "parse.c" break; case 86: -#line 319 "parse.y" -{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy174,yymsp[0].minor.yy46,yymsp[-2].minor.yy46,0);} -#line 2182 "parse.c" +#line 320 "parse.y" +{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy242,yymsp[0].minor.yy316,yymsp[-2].minor.yy316,0);} +#line 2199 "parse.c" break; case 87: -#line 321 "parse.y" -{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy174,yymsp[0].minor.yy46,0,0,0,0);} -#line 2187 "parse.c" +#line 322 "parse.y" +{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy242,yymsp[0].minor.yy316,0,0,0,0);} +#line 2204 "parse.c" break; case 88: -#line 322 "parse.y" -{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy172);} -#line 2192 "parse.c" +#line 323 "parse.y" +{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy450);} +#line 2209 "parse.c" break; case 89: -#line 324 "parse.y" +#line 325 "parse.y" { - sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy174, &yymsp[-3].minor.yy410, yymsp[-2].minor.yy174, yymsp[-1].minor.yy46); - sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy46); + sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy242, &yymsp[-3].minor.yy178, yymsp[-2].minor.yy242, yymsp[-1].minor.yy316); + sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy316); } -#line 2200 "parse.c" +#line 2217 "parse.c" break; case 92: case 94: -#line 338 "parse.y" -{yygotominor.yy46 = OE_Default;} -#line 2206 "parse.c" +#line 339 "parse.y" +{yygotominor.yy316 = OE_Default;} +#line 2223 "parse.c" break; case 97: -#line 343 "parse.y" -{yygotominor.yy46 = OE_Ignore;} -#line 2211 "parse.c" +#line 344 "parse.y" +{yygotominor.yy316 = OE_Ignore;} +#line 2228 "parse.c" break; case 98: - case 169: -#line 344 "parse.y" -{yygotominor.yy46 = OE_Replace;} -#line 2217 "parse.c" + case 167: +#line 345 "parse.y" +{yygotominor.yy316 = OE_Replace;} +#line 2234 "parse.c" break; case 99: -#line 348 "parse.y" +#line 349 "parse.y" { - sqlite3DropTable(pParse, yymsp[0].minor.yy373, 0, yymsp[-1].minor.yy46); + sqlite3DropTable(pParse, yymsp[0].minor.yy419, 0, yymsp[-1].minor.yy316); } -#line 2224 "parse.c" +#line 2241 "parse.c" break; case 102: -#line 358 "parse.y" +#line 359 "parse.y" { - sqlite3CreateView(pParse, &yymsp[-7].minor.yy0, &yymsp[-3].minor.yy410, &yymsp[-2].minor.yy410, yymsp[0].minor.yy219, yymsp[-6].minor.yy46, yymsp[-4].minor.yy46); + sqlite3CreateView(pParse, &yymsp[-7].minor.yy0, &yymsp[-3].minor.yy178, &yymsp[-2].minor.yy178, yymsp[0].minor.yy43, yymsp[-6].minor.yy316, yymsp[-4].minor.yy316); } -#line 2231 "parse.c" +#line 2248 "parse.c" break; case 103: -#line 361 "parse.y" +#line 362 "parse.y" { - sqlite3DropTable(pParse, yymsp[0].minor.yy373, 1, yymsp[-1].minor.yy46); + sqlite3DropTable(pParse, yymsp[0].minor.yy419, 1, yymsp[-1].minor.yy316); } -#line 2238 "parse.c" +#line 2255 "parse.c" break; case 104: -#line 368 "parse.y" +#line 369 "parse.y" { - sqlite3Select(pParse, yymsp[0].minor.yy219, SRT_Callback, 0, 0, 0, 0, 0); - sqlite3SelectDelete(yymsp[0].minor.yy219); -} -#line 2246 "parse.c" - break; - case 105: - case 128: -#line 378 "parse.y" -{yygotominor.yy219 = yymsp[0].minor.yy219;} -#line 2252 "parse.c" - break; - case 106: -#line 380 "parse.y" -{ - if( yymsp[0].minor.yy219 ){ - yymsp[0].minor.yy219->op = yymsp[-1].minor.yy46; - yymsp[0].minor.yy219->pPrior = yymsp[-2].minor.yy219; - } - yygotominor.yy219 = yymsp[0].minor.yy219; + sqlite3Select(pParse, yymsp[0].minor.yy43, SRT_Callback, 0, 0, 0, 0, 0); + sqlite3SelectDelete(yymsp[0].minor.yy43); } #line 2263 "parse.c" break; + case 105: + case 128: +#line 379 "parse.y" +{yygotominor.yy43 = yymsp[0].minor.yy43;} +#line 2269 "parse.c" + break; + case 106: +#line 381 "parse.y" +{ + if( yymsp[0].minor.yy43 ){ + yymsp[0].minor.yy43->op = yymsp[-1].minor.yy316; + yymsp[0].minor.yy43->pPrior = yymsp[-2].minor.yy43; + } + yygotominor.yy43 = yymsp[0].minor.yy43; +} +#line 2280 "parse.c" + break; case 108: -#line 389 "parse.y" -{yygotominor.yy46 = TK_ALL;} -#line 2268 "parse.c" +#line 390 "parse.y" +{yygotominor.yy316 = TK_ALL;} +#line 2285 "parse.c" break; case 110: -#line 393 "parse.y" +#line 394 "parse.y" { - yygotominor.yy219 = sqlite3SelectNew(yymsp[-6].minor.yy174,yymsp[-5].minor.yy373,yymsp[-4].minor.yy172,yymsp[-3].minor.yy174,yymsp[-2].minor.yy172,yymsp[-1].minor.yy174,yymsp[-7].minor.yy46,yymsp[0].minor.yy234.pLimit,yymsp[0].minor.yy234.pOffset); + yygotominor.yy43 = sqlite3SelectNew(yymsp[-6].minor.yy242,yymsp[-5].minor.yy419,yymsp[-4].minor.yy450,yymsp[-3].minor.yy242,yymsp[-2].minor.yy450,yymsp[-1].minor.yy242,yymsp[-7].minor.yy316,yymsp[0].minor.yy84.pLimit,yymsp[0].minor.yy84.pOffset); } -#line 2275 "parse.c" +#line 2292 "parse.c" break; case 114: - case 238: -#line 414 "parse.y" -{yygotominor.yy174 = yymsp[-1].minor.yy174;} -#line 2281 "parse.c" + case 237: +#line 415 "parse.y" +{yygotominor.yy242 = yymsp[-1].minor.yy242;} +#line 2298 "parse.c" break; case 115: case 141: - case 151: - case 237: -#line 415 "parse.y" -{yygotominor.yy174 = 0;} -#line 2289 "parse.c" + case 149: + case 236: +#line 416 "parse.y" +{yygotominor.yy242 = 0;} +#line 2306 "parse.c" break; case 116: -#line 416 "parse.y" +#line 417 "parse.y" { - yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-2].minor.yy174,yymsp[-1].minor.yy172,yymsp[0].minor.yy410.n?&yymsp[0].minor.yy410:0); + yygotominor.yy242 = sqlite3ExprListAppend(yymsp[-2].minor.yy242,yymsp[-1].minor.yy450,yymsp[0].minor.yy178.n?&yymsp[0].minor.yy178:0); } -#line 2296 "parse.c" +#line 2313 "parse.c" break; case 117: -#line 419 "parse.y" +#line 420 "parse.y" { - yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-1].minor.yy174, sqlite3Expr(TK_ALL, 0, 0, 0), 0); + yygotominor.yy242 = sqlite3ExprListAppend(yymsp[-1].minor.yy242, sqlite3Expr(TK_ALL, 0, 0, 0), 0); } -#line 2303 "parse.c" +#line 2320 "parse.c" break; case 118: -#line 422 "parse.y" +#line 423 "parse.y" { Expr *pRight = sqlite3Expr(TK_ALL, 0, 0, 0); - Expr *pLeft = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy410); - yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-3].minor.yy174, sqlite3Expr(TK_DOT, pLeft, pRight, 0), 0); + Expr *pLeft = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy178); + yygotominor.yy242 = sqlite3ExprListAppend(yymsp[-3].minor.yy242, sqlite3Expr(TK_DOT, pLeft, pRight, 0), 0); } -#line 2312 "parse.c" +#line 2329 "parse.c" break; case 121: -#line 434 "parse.y" -{yygotominor.yy410.n = 0;} -#line 2317 "parse.c" +#line 435 "parse.y" +{yygotominor.yy178.n = 0;} +#line 2334 "parse.c" break; case 122: -#line 446 "parse.y" -{yygotominor.yy373 = sqliteMalloc(sizeof(*yygotominor.yy373));} -#line 2322 "parse.c" +#line 447 "parse.y" +{yygotominor.yy419 = sqliteMalloc(sizeof(*yygotominor.yy419));} +#line 2339 "parse.c" break; case 123: -#line 447 "parse.y" -{yygotominor.yy373 = yymsp[0].minor.yy373;} -#line 2327 "parse.c" +#line 448 "parse.y" +{ + yygotominor.yy419 = yymsp[0].minor.yy419; + sqlite3SrcListShiftJoinType(yygotominor.yy419); +} +#line 2347 "parse.c" break; case 124: -#line 452 "parse.y" +#line 456 "parse.y" { - yygotominor.yy373 = yymsp[-1].minor.yy373; - if( yygotominor.yy373 && yygotominor.yy373->nSrc>0 ) yygotominor.yy373->a[yygotominor.yy373->nSrc-1].jointype = yymsp[0].minor.yy46; + yygotominor.yy419 = yymsp[-1].minor.yy419; + if( yygotominor.yy419 && yygotominor.yy419->nSrc>0 ) yygotominor.yy419->a[yygotominor.yy419->nSrc-1].jointype = yymsp[0].minor.yy316; } -#line 2335 "parse.c" +#line 2355 "parse.c" break; case 125: -#line 456 "parse.y" -{yygotominor.yy373 = 0;} -#line 2340 "parse.c" +#line 460 "parse.y" +{yygotominor.yy419 = 0;} +#line 2360 "parse.c" break; case 126: -#line 457 "parse.y" +#line 461 "parse.y" { - yygotominor.yy373 = sqlite3SrcListAppend(yymsp[-5].minor.yy373,&yymsp[-4].minor.yy410,&yymsp[-3].minor.yy410); - if( yymsp[-2].minor.yy410.n ) sqlite3SrcListAddAlias(yygotominor.yy373,&yymsp[-2].minor.yy410); - if( yymsp[-1].minor.yy172 ){ - if( yygotominor.yy373 && yygotominor.yy373->nSrc>1 ){ yygotominor.yy373->a[yygotominor.yy373->nSrc-2].pOn = yymsp[-1].minor.yy172; } - else { sqlite3ExprDelete(yymsp[-1].minor.yy172); } - } - if( yymsp[0].minor.yy432 ){ - if( yygotominor.yy373 && yygotominor.yy373->nSrc>1 ){ yygotominor.yy373->a[yygotominor.yy373->nSrc-2].pUsing = yymsp[0].minor.yy432; } - else { sqlite3IdListDelete(yymsp[0].minor.yy432); } - } + yygotominor.yy419 = sqlite3SrcListAppendFromTerm(yymsp[-5].minor.yy419,&yymsp[-4].minor.yy178,&yymsp[-3].minor.yy178,&yymsp[-2].minor.yy178,0,yymsp[-1].minor.yy450,yymsp[0].minor.yy352); } -#line 2356 "parse.c" +#line 2367 "parse.c" break; case 127: -#line 471 "parse.y" +#line 466 "parse.y" { - yygotominor.yy373 = sqlite3SrcListAppend(yymsp[-6].minor.yy373,0,0); - if( yygotominor.yy373 && yygotominor.yy373->nSrc>0 ) yygotominor.yy373->a[yygotominor.yy373->nSrc-1].pSelect = yymsp[-4].minor.yy219; - if( yymsp[-2].minor.yy410.n ) sqlite3SrcListAddAlias(yygotominor.yy373,&yymsp[-2].minor.yy410); - if( yymsp[-1].minor.yy172 ){ - if( yygotominor.yy373 && yygotominor.yy373->nSrc>1 ){ yygotominor.yy373->a[yygotominor.yy373->nSrc-2].pOn = yymsp[-1].minor.yy172; } - else { sqlite3ExprDelete(yymsp[-1].minor.yy172); } - } - if( yymsp[0].minor.yy432 ){ - if( yygotominor.yy373 && yygotominor.yy373->nSrc>1 ){ yygotominor.yy373->a[yygotominor.yy373->nSrc-2].pUsing = yymsp[0].minor.yy432; } - else { sqlite3IdListDelete(yymsp[0].minor.yy432); } - } + yygotominor.yy419 = sqlite3SrcListAppendFromTerm(yymsp[-6].minor.yy419,0,0,&yymsp[-2].minor.yy178,yymsp[-4].minor.yy43,yymsp[-1].minor.yy450,yymsp[0].minor.yy352); } -#line 2373 "parse.c" +#line 2374 "parse.c" break; case 129: -#line 492 "parse.y" +#line 477 "parse.y" { - yygotominor.yy219 = sqlite3SelectNew(0,yymsp[0].minor.yy373,0,0,0,0,0,0,0); + sqlite3SrcListShiftJoinType(yymsp[0].minor.yy419); + yygotominor.yy43 = sqlite3SelectNew(0,yymsp[0].minor.yy419,0,0,0,0,0,0,0); } -#line 2380 "parse.c" +#line 2382 "parse.c" break; case 130: -#line 498 "parse.y" -{yygotominor.yy410.z=0; yygotominor.yy410.n=0;} -#line 2385 "parse.c" +#line 484 "parse.y" +{yygotominor.yy178.z=0; yygotominor.yy178.n=0;} +#line 2387 "parse.c" break; case 132: -#line 503 "parse.y" -{yygotominor.yy373 = sqlite3SrcListAppend(0,&yymsp[-1].minor.yy410,&yymsp[0].minor.yy410);} -#line 2390 "parse.c" +#line 489 "parse.y" +{yygotominor.yy419 = sqlite3SrcListAppend(0,&yymsp[-1].minor.yy178,&yymsp[0].minor.yy178);} +#line 2392 "parse.c" break; case 133: -#line 507 "parse.y" -{ yygotominor.yy46 = JT_INNER; } -#line 2395 "parse.c" +#line 493 "parse.y" +{ yygotominor.yy316 = JT_INNER; } +#line 2397 "parse.c" break; case 134: -#line 508 "parse.y" -{ yygotominor.yy46 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); } -#line 2400 "parse.c" +#line 494 "parse.y" +{ yygotominor.yy316 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); } +#line 2402 "parse.c" break; case 135: -#line 509 "parse.y" -{ yygotominor.yy46 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy410,0); } -#line 2405 "parse.c" +#line 495 "parse.y" +{ yygotominor.yy316 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy178,0); } +#line 2407 "parse.c" break; case 136: -#line 511 "parse.y" -{ yygotominor.yy46 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy410,&yymsp[-1].minor.yy410); } -#line 2410 "parse.c" +#line 497 "parse.y" +{ yygotominor.yy316 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy178,&yymsp[-1].minor.yy178); } +#line 2412 "parse.c" break; case 137: case 145: - case 154: - case 161: - case 176: + case 152: + case 159: + case 174: + case 202: + case 225: + case 227: + case 231: +#line 501 "parse.y" +{yygotominor.yy450 = yymsp[0].minor.yy450;} +#line 2425 "parse.c" + break; + case 138: + case 151: + case 158: case 203: case 226: case 228: case 232: -#line 515 "parse.y" -{yygotominor.yy172 = yymsp[0].minor.yy172;} -#line 2423 "parse.c" - break; - case 138: - case 153: - case 160: - case 204: - case 227: - case 229: - case 233: -#line 516 "parse.y" -{yygotominor.yy172 = 0;} -#line 2434 "parse.c" +#line 502 "parse.y" +{yygotominor.yy450 = 0;} +#line 2436 "parse.c" break; case 139: - case 173: -#line 520 "parse.y" -{yygotominor.yy432 = yymsp[-1].minor.yy432;} -#line 2440 "parse.c" + case 171: +#line 506 "parse.y" +{yygotominor.yy352 = yymsp[-1].minor.yy352;} +#line 2442 "parse.c" break; case 140: - case 172: -#line 521 "parse.y" -{yygotominor.yy432 = 0;} -#line 2446 "parse.c" + case 170: +#line 507 "parse.y" +{yygotominor.yy352 = 0;} +#line 2448 "parse.c" break; case 142: - case 152: -#line 532 "parse.y" -{yygotominor.yy174 = yymsp[0].minor.yy174;} -#line 2452 "parse.c" + case 150: +#line 518 "parse.y" +{yygotominor.yy242 = yymsp[0].minor.yy242;} +#line 2454 "parse.c" break; case 143: -#line 533 "parse.y" +#line 519 "parse.y" { - yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-4].minor.yy174,yymsp[-2].minor.yy172,yymsp[-1].minor.yy410.n>0?&yymsp[-1].minor.yy410:0); - if( yygotominor.yy174 ) yygotominor.yy174->a[yygotominor.yy174->nExpr-1].sortOrder = yymsp[0].minor.yy46; + yygotominor.yy242 = sqlite3ExprListAppend(yymsp[-3].minor.yy242,yymsp[-1].minor.yy450,0); + if( yygotominor.yy242 ) yygotominor.yy242->a[yygotominor.yy242->nExpr-1].sortOrder = yymsp[0].minor.yy316; } -#line 2460 "parse.c" +#line 2462 "parse.c" break; case 144: -#line 537 "parse.y" +#line 523 "parse.y" { - yygotominor.yy174 = sqlite3ExprListAppend(0,yymsp[-2].minor.yy172,yymsp[-1].minor.yy410.n>0?&yymsp[-1].minor.yy410:0); - if( yygotominor.yy174 && yygotominor.yy174->a ) yygotominor.yy174->a[0].sortOrder = yymsp[0].minor.yy46; + yygotominor.yy242 = sqlite3ExprListAppend(0,yymsp[-1].minor.yy450,0); + if( yygotominor.yy242 && yygotominor.yy242->a ) yygotominor.yy242->a[0].sortOrder = yymsp[0].minor.yy316; } -#line 2468 "parse.c" +#line 2470 "parse.c" break; case 146: case 148: -#line 546 "parse.y" -{yygotominor.yy46 = SQLITE_SO_ASC;} -#line 2474 "parse.c" +#line 531 "parse.y" +{yygotominor.yy316 = SQLITE_SO_ASC;} +#line 2476 "parse.c" break; case 147: -#line 547 "parse.y" -{yygotominor.yy46 = SQLITE_SO_DESC;} -#line 2479 "parse.c" +#line 532 "parse.y" +{yygotominor.yy316 = SQLITE_SO_DESC;} +#line 2481 "parse.c" break; - case 149: -#line 549 "parse.y" -{yygotominor.yy410.z = 0; yygotominor.yy410.n = 0;} -#line 2484 "parse.c" + case 153: +#line 550 "parse.y" +{yygotominor.yy84.pLimit = 0; yygotominor.yy84.pOffset = 0;} +#line 2486 "parse.c" + break; + case 154: +#line 551 "parse.y" +{yygotominor.yy84.pLimit = yymsp[0].minor.yy450; yygotominor.yy84.pOffset = 0;} +#line 2491 "parse.c" break; case 155: -#line 567 "parse.y" -{yygotominor.yy234.pLimit = 0; yygotominor.yy234.pOffset = 0;} -#line 2489 "parse.c" +#line 553 "parse.y" +{yygotominor.yy84.pLimit = yymsp[-2].minor.yy450; yygotominor.yy84.pOffset = yymsp[0].minor.yy450;} +#line 2496 "parse.c" break; case 156: -#line 568 "parse.y" -{yygotominor.yy234.pLimit = yymsp[0].minor.yy172; yygotominor.yy234.pOffset = 0;} -#line 2494 "parse.c" +#line 555 "parse.y" +{yygotominor.yy84.pOffset = yymsp[-2].minor.yy450; yygotominor.yy84.pLimit = yymsp[0].minor.yy450;} +#line 2501 "parse.c" break; case 157: +#line 559 "parse.y" +{sqlite3DeleteFrom(pParse,yymsp[-1].minor.yy419,yymsp[0].minor.yy450);} +#line 2506 "parse.c" + break; + case 160: #line 570 "parse.y" -{yygotominor.yy234.pLimit = yymsp[-2].minor.yy172; yygotominor.yy234.pOffset = yymsp[0].minor.yy172;} -#line 2499 "parse.c" +{sqlite3Update(pParse,yymsp[-3].minor.yy419,yymsp[-1].minor.yy242,yymsp[0].minor.yy450,yymsp[-4].minor.yy316);} +#line 2511 "parse.c" break; - case 158: -#line 572 "parse.y" -{yygotominor.yy234.pOffset = yymsp[-2].minor.yy172; yygotominor.yy234.pLimit = yymsp[0].minor.yy172;} -#line 2504 "parse.c" - break; - case 159: + case 161: #line 576 "parse.y" -{sqlite3DeleteFrom(pParse,yymsp[-1].minor.yy373,yymsp[0].minor.yy172);} -#line 2509 "parse.c" +{yygotominor.yy242 = sqlite3ExprListAppend(yymsp[-4].minor.yy242,yymsp[0].minor.yy450,&yymsp[-2].minor.yy178);} +#line 2516 "parse.c" break; case 162: -#line 587 "parse.y" -{sqlite3Update(pParse,yymsp[-3].minor.yy373,yymsp[-1].minor.yy174,yymsp[0].minor.yy172,yymsp[-4].minor.yy46);} -#line 2514 "parse.c" +#line 577 "parse.y" +{yygotominor.yy242 = sqlite3ExprListAppend(0,yymsp[0].minor.yy450,&yymsp[-2].minor.yy178);} +#line 2521 "parse.c" break; case 163: -#line 593 "parse.y" -{yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-4].minor.yy174,yymsp[0].minor.yy172,&yymsp[-2].minor.yy410);} -#line 2519 "parse.c" +#line 583 "parse.y" +{sqlite3Insert(pParse, yymsp[-5].minor.yy419, yymsp[-1].minor.yy242, 0, yymsp[-4].minor.yy352, yymsp[-7].minor.yy316);} +#line 2526 "parse.c" break; case 164: -#line 594 "parse.y" -{yygotominor.yy174 = sqlite3ExprListAppend(0,yymsp[0].minor.yy172,&yymsp[-2].minor.yy410);} -#line 2524 "parse.c" +#line 585 "parse.y" +{sqlite3Insert(pParse, yymsp[-2].minor.yy419, 0, yymsp[0].minor.yy43, yymsp[-1].minor.yy352, yymsp[-4].minor.yy316);} +#line 2531 "parse.c" break; case 165: -#line 600 "parse.y" -{sqlite3Insert(pParse, yymsp[-5].minor.yy373, yymsp[-1].minor.yy174, 0, yymsp[-4].minor.yy432, yymsp[-7].minor.yy46);} -#line 2529 "parse.c" +#line 587 "parse.y" +{sqlite3Insert(pParse, yymsp[-3].minor.yy419, 0, 0, yymsp[-2].minor.yy352, yymsp[-5].minor.yy316);} +#line 2536 "parse.c" break; - case 166: -#line 602 "parse.y" -{sqlite3Insert(pParse, yymsp[-2].minor.yy373, 0, yymsp[0].minor.yy219, yymsp[-1].minor.yy432, yymsp[-4].minor.yy46);} -#line 2534 "parse.c" + case 168: + case 229: +#line 597 "parse.y" +{yygotominor.yy242 = sqlite3ExprListAppend(yymsp[-2].minor.yy242,yymsp[0].minor.yy450,0);} +#line 2542 "parse.c" break; - case 167: -#line 604 "parse.y" -{sqlite3Insert(pParse, yymsp[-3].minor.yy373, 0, 0, yymsp[-2].minor.yy432, yymsp[-5].minor.yy46);} -#line 2539 "parse.c" - break; - case 170: + case 169: case 230: -#line 614 "parse.y" -{yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-2].minor.yy174,yymsp[0].minor.yy172,0);} -#line 2545 "parse.c" +#line 598 "parse.y" +{yygotominor.yy242 = sqlite3ExprListAppend(0,yymsp[0].minor.yy450,0);} +#line 2548 "parse.c" break; - case 171: - case 231: -#line 615 "parse.y" -{yygotominor.yy174 = sqlite3ExprListAppend(0,yymsp[0].minor.yy172,0);} -#line 2551 "parse.c" + case 172: +#line 607 "parse.y" +{yygotominor.yy352 = sqlite3IdListAppend(yymsp[-2].minor.yy352,&yymsp[0].minor.yy178);} +#line 2553 "parse.c" break; - case 174: -#line 624 "parse.y" -{yygotominor.yy432 = sqlite3IdListAppend(yymsp[-2].minor.yy432,&yymsp[0].minor.yy410);} -#line 2556 "parse.c" + case 173: +#line 608 "parse.y" +{yygotominor.yy352 = sqlite3IdListAppend(0,&yymsp[0].minor.yy178);} +#line 2558 "parse.c" break; case 175: -#line 625 "parse.y" -{yygotominor.yy432 = sqlite3IdListAppend(0,&yymsp[0].minor.yy410);} -#line 2561 "parse.c" +#line 619 "parse.y" +{yygotominor.yy450 = yymsp[-1].minor.yy450; sqlite3ExprSpan(yygotominor.yy450,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); } +#line 2563 "parse.c" + break; + case 176: + case 181: + case 182: +#line 620 "parse.y" +{yygotominor.yy450 = sqlite3Expr(yymsp[0].major, 0, 0, &yymsp[0].minor.yy0);} +#line 2570 "parse.c" break; case 177: -#line 636 "parse.y" -{yygotominor.yy172 = yymsp[-1].minor.yy172; sqlite3ExprSpan(yygotominor.yy172,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); } -#line 2566 "parse.c" - break; case 178: - case 183: - case 184: -#line 637 "parse.y" -{yygotominor.yy172 = sqlite3Expr(yymsp[0].major, 0, 0, &yymsp[0].minor.yy0);} -#line 2573 "parse.c" +#line 621 "parse.y" +{yygotominor.yy450 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy0);} +#line 2576 "parse.c" break; case 179: +#line 623 "parse.y" +{ + Expr *temp1 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy178); + Expr *temp2 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy178); + yygotominor.yy450 = sqlite3Expr(TK_DOT, temp1, temp2, 0); +} +#line 2585 "parse.c" + break; case 180: -#line 638 "parse.y" -{yygotominor.yy172 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy0);} -#line 2579 "parse.c" - break; - case 181: -#line 640 "parse.y" +#line 628 "parse.y" { - Expr *temp1 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy410); - Expr *temp2 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy410); - yygotominor.yy172 = sqlite3Expr(TK_DOT, temp1, temp2, 0); -} -#line 2588 "parse.c" - break; - case 182: -#line 645 "parse.y" -{ - Expr *temp1 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-4].minor.yy410); - Expr *temp2 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy410); - Expr *temp3 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy410); + Expr *temp1 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-4].minor.yy178); + Expr *temp2 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy178); + Expr *temp3 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy178); Expr *temp4 = sqlite3Expr(TK_DOT, temp2, temp3, 0); - yygotominor.yy172 = sqlite3Expr(TK_DOT, temp1, temp4, 0); + yygotominor.yy450 = sqlite3Expr(TK_DOT, temp1, temp4, 0); } -#line 2599 "parse.c" +#line 2596 "parse.c" break; - case 185: -#line 654 "parse.y" -{yygotominor.yy172 = sqlite3RegisterExpr(pParse, &yymsp[0].minor.yy0);} -#line 2604 "parse.c" + case 183: +#line 637 "parse.y" +{yygotominor.yy450 = sqlite3RegisterExpr(pParse, &yymsp[0].minor.yy0);} +#line 2601 "parse.c" break; - case 186: -#line 655 "parse.y" + case 184: +#line 638 "parse.y" { Token *pToken = &yymsp[0].minor.yy0; - Expr *pExpr = yygotominor.yy172 = sqlite3Expr(TK_VARIABLE, 0, 0, pToken); + Expr *pExpr = yygotominor.yy450 = sqlite3Expr(TK_VARIABLE, 0, 0, pToken); sqlite3ExprAssignVarNumber(pParse, pExpr); } -#line 2613 "parse.c" +#line 2610 "parse.c" + break; + case 185: +#line 643 "parse.y" +{ + yygotominor.yy450 = sqlite3ExprSetColl(pParse, yymsp[-2].minor.yy450, &yymsp[0].minor.yy178); +} +#line 2617 "parse.c" + break; + case 186: +#line 647 "parse.y" +{ + yygotominor.yy450 = sqlite3Expr(TK_CAST, yymsp[-3].minor.yy450, 0, &yymsp[-1].minor.yy178); + sqlite3ExprSpan(yygotominor.yy450,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0); +} +#line 2625 "parse.c" break; case 187: -#line 661 "parse.y" +#line 652 "parse.y" { - yygotominor.yy172 = sqlite3Expr(TK_CAST, yymsp[-3].minor.yy172, 0, &yymsp[-1].minor.yy410); - sqlite3ExprSpan(yygotominor.yy172,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0); -} -#line 2621 "parse.c" - break; - case 188: -#line 666 "parse.y" -{ - yygotominor.yy172 = sqlite3ExprFunction(yymsp[-1].minor.yy174, &yymsp[-4].minor.yy0); - sqlite3ExprSpan(yygotominor.yy172,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); - if( yymsp[-2].minor.yy46 && yygotominor.yy172 ){ - yygotominor.yy172->flags |= EP_Distinct; + yygotominor.yy450 = sqlite3ExprFunction(yymsp[-1].minor.yy242, &yymsp[-4].minor.yy0); + sqlite3ExprSpan(yygotominor.yy450,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); + if( yymsp[-2].minor.yy316 && yygotominor.yy450 ){ + yygotominor.yy450->flags |= EP_Distinct; } } -#line 2632 "parse.c" +#line 2636 "parse.c" + break; + case 188: +#line 659 "parse.y" +{ + yygotominor.yy450 = sqlite3ExprFunction(0, &yymsp[-3].minor.yy0); + sqlite3ExprSpan(yygotominor.yy450,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); +} +#line 2644 "parse.c" break; case 189: -#line 673 "parse.y" -{ - yygotominor.yy172 = sqlite3ExprFunction(0, &yymsp[-3].minor.yy0); - sqlite3ExprSpan(yygotominor.yy172,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); -} -#line 2640 "parse.c" - break; - case 190: -#line 677 "parse.y" +#line 663 "parse.y" { /* The CURRENT_TIME, CURRENT_DATE, and CURRENT_TIMESTAMP values are ** treated as functions that return constants */ - yygotominor.yy172 = sqlite3ExprFunction(0,&yymsp[0].minor.yy0); - if( yygotominor.yy172 ){ - yygotominor.yy172->op = TK_CONST_FUNC; - yygotominor.yy172->span = yymsp[0].minor.yy0; + yygotominor.yy450 = sqlite3ExprFunction(0,&yymsp[0].minor.yy0); + if( yygotominor.yy450 ){ + yygotominor.yy450->op = TK_CONST_FUNC; + yygotominor.yy450->span = yymsp[0].minor.yy0; } } -#line 2653 "parse.c" +#line 2657 "parse.c" break; + case 190: case 191: case 192: case 193: @@ -2656,536 +2661,539 @@ static void yy_reduce( case 195: case 196: case 197: +#line 672 "parse.y" +{yygotominor.yy450 = sqlite3Expr(yymsp[-1].major, yymsp[-2].minor.yy450, yymsp[0].minor.yy450, 0);} +#line 2669 "parse.c" + break; case 198: -#line 686 "parse.y" -{yygotominor.yy172 = sqlite3Expr(yymsp[-1].major, yymsp[-2].minor.yy172, yymsp[0].minor.yy172, 0);} -#line 2665 "parse.c" + case 200: +#line 682 "parse.y" +{yygotominor.yy86.eOperator = yymsp[0].minor.yy0; yygotominor.yy86.not = 0;} +#line 2675 "parse.c" break; case 199: case 201: -#line 696 "parse.y" -{yygotominor.yy72.eOperator = yymsp[0].minor.yy0; yygotominor.yy72.not = 0;} -#line 2671 "parse.c" +#line 683 "parse.y" +{yygotominor.yy86.eOperator = yymsp[0].minor.yy0; yygotominor.yy86.not = 1;} +#line 2681 "parse.c" break; - case 200: - case 202: -#line 697 "parse.y" -{yygotominor.yy72.eOperator = yymsp[0].minor.yy0; yygotominor.yy72.not = 1;} -#line 2677 "parse.c" - break; - case 205: -#line 704 "parse.y" + case 204: +#line 690 "parse.y" { ExprList *pList; - pList = sqlite3ExprListAppend(0, yymsp[-1].minor.yy172, 0); - pList = sqlite3ExprListAppend(pList, yymsp[-3].minor.yy172, 0); - if( yymsp[0].minor.yy172 ){ - pList = sqlite3ExprListAppend(pList, yymsp[0].minor.yy172, 0); + pList = sqlite3ExprListAppend(0, yymsp[-1].minor.yy450, 0); + pList = sqlite3ExprListAppend(pList, yymsp[-3].minor.yy450, 0); + if( yymsp[0].minor.yy450 ){ + pList = sqlite3ExprListAppend(pList, yymsp[0].minor.yy450, 0); } - yygotominor.yy172 = sqlite3ExprFunction(pList, &yymsp[-2].minor.yy72.eOperator); - if( yymsp[-2].minor.yy72.not ) yygotominor.yy172 = sqlite3Expr(TK_NOT, yygotominor.yy172, 0, 0); - sqlite3ExprSpan(yygotominor.yy172, &yymsp[-3].minor.yy172->span, &yymsp[-1].minor.yy172->span); - if( yygotominor.yy172 ) yygotominor.yy172->flags |= EP_InfixFunc; + yygotominor.yy450 = sqlite3ExprFunction(pList, &yymsp[-2].minor.yy86.eOperator); + if( yymsp[-2].minor.yy86.not ) yygotominor.yy450 = sqlite3Expr(TK_NOT, yygotominor.yy450, 0, 0); + sqlite3ExprSpan(yygotominor.yy450, &yymsp[-3].minor.yy450->span, &yymsp[-1].minor.yy450->span); + if( yygotominor.yy450 ) yygotominor.yy450->flags |= EP_InfixFunc; } -#line 2693 "parse.c" +#line 2697 "parse.c" + break; + case 205: +#line 703 "parse.y" +{ + yygotominor.yy450 = sqlite3Expr(yymsp[0].major, yymsp[-1].minor.yy450, 0, 0); + sqlite3ExprSpan(yygotominor.yy450,&yymsp[-1].minor.yy450->span,&yymsp[0].minor.yy0); +} +#line 2705 "parse.c" break; case 206: -#line 717 "parse.y" +#line 707 "parse.y" { - yygotominor.yy172 = sqlite3Expr(yymsp[0].major, yymsp[-1].minor.yy172, 0, 0); - sqlite3ExprSpan(yygotominor.yy172,&yymsp[-1].minor.yy172->span,&yymsp[0].minor.yy0); + yygotominor.yy450 = sqlite3Expr(TK_ISNULL, yymsp[-2].minor.yy450, 0, 0); + sqlite3ExprSpan(yygotominor.yy450,&yymsp[-2].minor.yy450->span,&yymsp[0].minor.yy0); } -#line 2701 "parse.c" +#line 2713 "parse.c" break; case 207: -#line 721 "parse.y" +#line 711 "parse.y" { - yygotominor.yy172 = sqlite3Expr(TK_ISNULL, yymsp[-2].minor.yy172, 0, 0); - sqlite3ExprSpan(yygotominor.yy172,&yymsp[-2].minor.yy172->span,&yymsp[0].minor.yy0); + yygotominor.yy450 = sqlite3Expr(TK_NOTNULL, yymsp[-2].minor.yy450, 0, 0); + sqlite3ExprSpan(yygotominor.yy450,&yymsp[-2].minor.yy450->span,&yymsp[0].minor.yy0); } -#line 2709 "parse.c" +#line 2721 "parse.c" break; case 208: -#line 725 "parse.y" +#line 715 "parse.y" { - yygotominor.yy172 = sqlite3Expr(TK_NOTNULL, yymsp[-2].minor.yy172, 0, 0); - sqlite3ExprSpan(yygotominor.yy172,&yymsp[-2].minor.yy172->span,&yymsp[0].minor.yy0); + yygotominor.yy450 = sqlite3Expr(TK_NOTNULL, yymsp[-3].minor.yy450, 0, 0); + sqlite3ExprSpan(yygotominor.yy450,&yymsp[-3].minor.yy450->span,&yymsp[0].minor.yy0); } -#line 2717 "parse.c" +#line 2729 "parse.c" break; case 209: -#line 729 "parse.y" +#line 719 "parse.y" { - yygotominor.yy172 = sqlite3Expr(TK_NOTNULL, yymsp[-3].minor.yy172, 0, 0); - sqlite3ExprSpan(yygotominor.yy172,&yymsp[-3].minor.yy172->span,&yymsp[0].minor.yy0); + yygotominor.yy450 = sqlite3Expr(yymsp[-1].major, yymsp[0].minor.yy450, 0, 0); + sqlite3ExprSpan(yygotominor.yy450,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy450->span); } -#line 2725 "parse.c" +#line 2737 "parse.c" break; case 210: -#line 733 "parse.y" +#line 723 "parse.y" { - yygotominor.yy172 = sqlite3Expr(yymsp[-1].major, yymsp[0].minor.yy172, 0, 0); - sqlite3ExprSpan(yygotominor.yy172,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy172->span); + yygotominor.yy450 = sqlite3Expr(TK_UMINUS, yymsp[0].minor.yy450, 0, 0); + sqlite3ExprSpan(yygotominor.yy450,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy450->span); } -#line 2733 "parse.c" +#line 2745 "parse.c" break; case 211: -#line 737 "parse.y" +#line 727 "parse.y" { - yygotominor.yy172 = sqlite3Expr(TK_UMINUS, yymsp[0].minor.yy172, 0, 0); - sqlite3ExprSpan(yygotominor.yy172,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy172->span); + yygotominor.yy450 = sqlite3Expr(TK_UPLUS, yymsp[0].minor.yy450, 0, 0); + sqlite3ExprSpan(yygotominor.yy450,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy450->span); } -#line 2741 "parse.c" +#line 2753 "parse.c" break; - case 212: -#line 741 "parse.y" + case 214: +#line 734 "parse.y" { - yygotominor.yy172 = sqlite3Expr(TK_UPLUS, yymsp[0].minor.yy172, 0, 0); - sqlite3ExprSpan(yygotominor.yy172,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy172->span); -} -#line 2749 "parse.c" - break; - case 215: -#line 748 "parse.y" -{ - ExprList *pList = sqlite3ExprListAppend(0, yymsp[-2].minor.yy172, 0); - pList = sqlite3ExprListAppend(pList, yymsp[0].minor.yy172, 0); - yygotominor.yy172 = sqlite3Expr(TK_BETWEEN, yymsp[-4].minor.yy172, 0, 0); - if( yygotominor.yy172 ){ - yygotominor.yy172->pList = pList; + ExprList *pList = sqlite3ExprListAppend(0, yymsp[-2].minor.yy450, 0); + pList = sqlite3ExprListAppend(pList, yymsp[0].minor.yy450, 0); + yygotominor.yy450 = sqlite3Expr(TK_BETWEEN, yymsp[-4].minor.yy450, 0, 0); + if( yygotominor.yy450 ){ + yygotominor.yy450->pList = pList; }else{ sqlite3ExprListDelete(pList); } - if( yymsp[-3].minor.yy46 ) yygotominor.yy172 = sqlite3Expr(TK_NOT, yygotominor.yy172, 0, 0); - sqlite3ExprSpan(yygotominor.yy172,&yymsp[-4].minor.yy172->span,&yymsp[0].minor.yy172->span); + if( yymsp[-3].minor.yy316 ) yygotominor.yy450 = sqlite3Expr(TK_NOT, yygotominor.yy450, 0, 0); + sqlite3ExprSpan(yygotominor.yy450,&yymsp[-4].minor.yy450->span,&yymsp[0].minor.yy450->span); } -#line 2765 "parse.c" +#line 2769 "parse.c" + break; + case 217: +#line 750 "parse.y" +{ + yygotominor.yy450 = sqlite3Expr(TK_IN, yymsp[-4].minor.yy450, 0, 0); + if( yygotominor.yy450 ){ + yygotominor.yy450->pList = yymsp[-1].minor.yy242; + }else{ + sqlite3ExprListDelete(yymsp[-1].minor.yy242); + } + if( yymsp[-3].minor.yy316 ) yygotominor.yy450 = sqlite3Expr(TK_NOT, yygotominor.yy450, 0, 0); + sqlite3ExprSpan(yygotominor.yy450,&yymsp[-4].minor.yy450->span,&yymsp[0].minor.yy0); + } +#line 2783 "parse.c" break; case 218: -#line 764 "parse.y" +#line 760 "parse.y" { - yygotominor.yy172 = sqlite3Expr(TK_IN, yymsp[-4].minor.yy172, 0, 0); - if( yygotominor.yy172 ){ - yygotominor.yy172->pList = yymsp[-1].minor.yy174; + yygotominor.yy450 = sqlite3Expr(TK_SELECT, 0, 0, 0); + if( yygotominor.yy450 ){ + yygotominor.yy450->pSelect = yymsp[-1].minor.yy43; }else{ - sqlite3ExprListDelete(yymsp[-1].minor.yy174); + sqlite3SelectDelete(yymsp[-1].minor.yy43); } - if( yymsp[-3].minor.yy46 ) yygotominor.yy172 = sqlite3Expr(TK_NOT, yygotominor.yy172, 0, 0); - sqlite3ExprSpan(yygotominor.yy172,&yymsp[-4].minor.yy172->span,&yymsp[0].minor.yy0); + sqlite3ExprSpan(yygotominor.yy450,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); } -#line 2779 "parse.c" +#line 2796 "parse.c" break; case 219: -#line 774 "parse.y" +#line 769 "parse.y" { - yygotominor.yy172 = sqlite3Expr(TK_SELECT, 0, 0, 0); - if( yygotominor.yy172 ){ - yygotominor.yy172->pSelect = yymsp[-1].minor.yy219; + yygotominor.yy450 = sqlite3Expr(TK_IN, yymsp[-4].minor.yy450, 0, 0); + if( yygotominor.yy450 ){ + yygotominor.yy450->pSelect = yymsp[-1].minor.yy43; }else{ - sqlite3SelectDelete(yymsp[-1].minor.yy219); + sqlite3SelectDelete(yymsp[-1].minor.yy43); } - sqlite3ExprSpan(yygotominor.yy172,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); + if( yymsp[-3].minor.yy316 ) yygotominor.yy450 = sqlite3Expr(TK_NOT, yygotominor.yy450, 0, 0); + sqlite3ExprSpan(yygotominor.yy450,&yymsp[-4].minor.yy450->span,&yymsp[0].minor.yy0); } -#line 2792 "parse.c" +#line 2810 "parse.c" break; case 220: -#line 783 "parse.y" +#line 779 "parse.y" { - yygotominor.yy172 = sqlite3Expr(TK_IN, yymsp[-4].minor.yy172, 0, 0); - if( yygotominor.yy172 ){ - yygotominor.yy172->pSelect = yymsp[-1].minor.yy219; - }else{ - sqlite3SelectDelete(yymsp[-1].minor.yy219); - } - if( yymsp[-3].minor.yy46 ) yygotominor.yy172 = sqlite3Expr(TK_NOT, yygotominor.yy172, 0, 0); - sqlite3ExprSpan(yygotominor.yy172,&yymsp[-4].minor.yy172->span,&yymsp[0].minor.yy0); - } -#line 2806 "parse.c" - break; - case 221: -#line 793 "parse.y" -{ - SrcList *pSrc = sqlite3SrcListAppend(0,&yymsp[-1].minor.yy410,&yymsp[0].minor.yy410); - yygotominor.yy172 = sqlite3Expr(TK_IN, yymsp[-3].minor.yy172, 0, 0); - if( yygotominor.yy172 ){ - yygotominor.yy172->pSelect = sqlite3SelectNew(0,pSrc,0,0,0,0,0,0,0); + SrcList *pSrc = sqlite3SrcListAppend(0,&yymsp[-1].minor.yy178,&yymsp[0].minor.yy178); + yygotominor.yy450 = sqlite3Expr(TK_IN, yymsp[-3].minor.yy450, 0, 0); + if( yygotominor.yy450 ){ + yygotominor.yy450->pSelect = sqlite3SelectNew(0,pSrc,0,0,0,0,0,0,0); }else{ sqlite3SrcListDelete(pSrc); } - if( yymsp[-2].minor.yy46 ) yygotominor.yy172 = sqlite3Expr(TK_NOT, yygotominor.yy172, 0, 0); - sqlite3ExprSpan(yygotominor.yy172,&yymsp[-3].minor.yy172->span,yymsp[0].minor.yy410.z?&yymsp[0].minor.yy410:&yymsp[-1].minor.yy410); + if( yymsp[-2].minor.yy316 ) yygotominor.yy450 = sqlite3Expr(TK_NOT, yygotominor.yy450, 0, 0); + sqlite3ExprSpan(yygotominor.yy450,&yymsp[-3].minor.yy450->span,yymsp[0].minor.yy178.z?&yymsp[0].minor.yy178:&yymsp[-1].minor.yy178); } -#line 2821 "parse.c" +#line 2825 "parse.c" break; - case 222: -#line 804 "parse.y" + case 221: +#line 790 "parse.y" { - Expr *p = yygotominor.yy172 = sqlite3Expr(TK_EXISTS, 0, 0, 0); + Expr *p = yygotominor.yy450 = sqlite3Expr(TK_EXISTS, 0, 0, 0); if( p ){ - p->pSelect = yymsp[-1].minor.yy219; + p->pSelect = yymsp[-1].minor.yy43; sqlite3ExprSpan(p,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); }else{ - sqlite3SelectDelete(yymsp[-1].minor.yy219); + sqlite3SelectDelete(yymsp[-1].minor.yy43); } } -#line 2834 "parse.c" +#line 2838 "parse.c" + break; + case 222: +#line 802 "parse.y" +{ + yygotominor.yy450 = sqlite3Expr(TK_CASE, yymsp[-3].minor.yy450, yymsp[-1].minor.yy450, 0); + if( yygotominor.yy450 ){ + yygotominor.yy450->pList = yymsp[-2].minor.yy242; + }else{ + sqlite3ExprListDelete(yymsp[-2].minor.yy242); + } + sqlite3ExprSpan(yygotominor.yy450, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0); +} +#line 2851 "parse.c" break; case 223: -#line 816 "parse.y" +#line 813 "parse.y" { - yygotominor.yy172 = sqlite3Expr(TK_CASE, yymsp[-3].minor.yy172, yymsp[-1].minor.yy172, 0); - if( yygotominor.yy172 ){ - yygotominor.yy172->pList = yymsp[-2].minor.yy174; - }else{ - sqlite3ExprListDelete(yymsp[-2].minor.yy174); - } - sqlite3ExprSpan(yygotominor.yy172, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0); + yygotominor.yy242 = sqlite3ExprListAppend(yymsp[-4].minor.yy242, yymsp[-2].minor.yy450, 0); + yygotominor.yy242 = sqlite3ExprListAppend(yygotominor.yy242, yymsp[0].minor.yy450, 0); } -#line 2847 "parse.c" +#line 2859 "parse.c" break; case 224: -#line 827 "parse.y" +#line 817 "parse.y" { - yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-4].minor.yy174, yymsp[-2].minor.yy172, 0); - yygotominor.yy174 = sqlite3ExprListAppend(yygotominor.yy174, yymsp[0].minor.yy172, 0); + yygotominor.yy242 = sqlite3ExprListAppend(0, yymsp[-2].minor.yy450, 0); + yygotominor.yy242 = sqlite3ExprListAppend(yygotominor.yy242, yymsp[0].minor.yy450, 0); } -#line 2855 "parse.c" +#line 2867 "parse.c" break; - case 225: -#line 831 "parse.y" + case 233: +#line 844 "parse.y" { - yygotominor.yy174 = sqlite3ExprListAppend(0, yymsp[-2].minor.yy172, 0); - yygotominor.yy174 = sqlite3ExprListAppend(yygotominor.yy174, yymsp[0].minor.yy172, 0); + sqlite3CreateIndex(pParse, &yymsp[-6].minor.yy178, &yymsp[-5].minor.yy178, sqlite3SrcListAppend(0,&yymsp[-3].minor.yy178,0), yymsp[-1].minor.yy242, yymsp[-9].minor.yy316, + &yymsp[-10].minor.yy0, &yymsp[0].minor.yy0, SQLITE_SO_ASC, yymsp[-7].minor.yy316); } -#line 2863 "parse.c" +#line 2875 "parse.c" break; case 234: -#line 858 "parse.y" -{ - sqlite3CreateIndex(pParse, &yymsp[-6].minor.yy410, &yymsp[-5].minor.yy410, sqlite3SrcListAppend(0,&yymsp[-3].minor.yy410,0), yymsp[-1].minor.yy174, yymsp[-9].minor.yy46, - &yymsp[-10].minor.yy0, &yymsp[0].minor.yy0, SQLITE_SO_ASC, yymsp[-7].minor.yy46); -} -#line 2871 "parse.c" + case 282: +#line 850 "parse.y" +{yygotominor.yy316 = OE_Abort;} +#line 2881 "parse.c" break; case 235: - case 280: -#line 864 "parse.y" -{yygotominor.yy46 = OE_Abort;} -#line 2877 "parse.c" +#line 851 "parse.y" +{yygotominor.yy316 = OE_None;} +#line 2886 "parse.c" break; - case 236: -#line 865 "parse.y" -{yygotominor.yy46 = OE_None;} -#line 2882 "parse.c" + case 238: +#line 861 "parse.y" +{ + Expr *p = 0; + if( yymsp[-1].minor.yy178.n>0 ){ + p = sqlite3Expr(TK_COLUMN, 0, 0, 0); + if( p ) p->pColl = sqlite3LocateCollSeq(pParse, (char*)yymsp[-1].minor.yy178.z, yymsp[-1].minor.yy178.n); + } + yygotominor.yy242 = sqlite3ExprListAppend(yymsp[-4].minor.yy242, p, &yymsp[-2].minor.yy178); + if( yygotominor.yy242 ) yygotominor.yy242->a[yygotominor.yy242->nExpr-1].sortOrder = yymsp[0].minor.yy316; +} +#line 2899 "parse.c" break; case 239: -#line 875 "parse.y" +#line 870 "parse.y" { Expr *p = 0; - if( yymsp[-1].minor.yy410.n>0 ){ + if( yymsp[-1].minor.yy178.n>0 ){ p = sqlite3Expr(TK_COLUMN, 0, 0, 0); - if( p ) p->pColl = sqlite3LocateCollSeq(pParse, (char*)yymsp[-1].minor.yy410.z, yymsp[-1].minor.yy410.n); + if( p ) p->pColl = sqlite3LocateCollSeq(pParse, (char*)yymsp[-1].minor.yy178.z, yymsp[-1].minor.yy178.n); } - yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-4].minor.yy174, p, &yymsp[-2].minor.yy410); - if( yygotominor.yy174 ) yygotominor.yy174->a[yygotominor.yy174->nExpr-1].sortOrder = yymsp[0].minor.yy46; + yygotominor.yy242 = sqlite3ExprListAppend(0, p, &yymsp[-2].minor.yy178); + if( yygotominor.yy242 ) yygotominor.yy242->a[yygotominor.yy242->nExpr-1].sortOrder = yymsp[0].minor.yy316; } -#line 2895 "parse.c" +#line 2912 "parse.c" break; - case 240: -#line 884 "parse.y" -{ - Expr *p = 0; - if( yymsp[-1].minor.yy410.n>0 ){ - p = sqlite3Expr(TK_COLUMN, 0, 0, 0); - if( p ) p->pColl = sqlite3LocateCollSeq(pParse, (char*)yymsp[-1].minor.yy410.z, yymsp[-1].minor.yy410.n); - } - yygotominor.yy174 = sqlite3ExprListAppend(0, p, &yymsp[-2].minor.yy410); - if( yygotominor.yy174 ) yygotominor.yy174->a[yygotominor.yy174->nExpr-1].sortOrder = yymsp[0].minor.yy46; -} -#line 2908 "parse.c" - break; - case 242: -#line 898 "parse.y" -{sqlite3DropIndex(pParse, yymsp[0].minor.yy373, yymsp[-1].minor.yy46);} -#line 2913 "parse.c" + case 241: +#line 882 "parse.y" +{yygotominor.yy178.z = 0; yygotominor.yy178.n = 0;} +#line 2917 "parse.c" break; case 243: - case 244: -#line 903 "parse.y" -{sqlite3Vacuum(pParse);} -#line 2919 "parse.c" +#line 888 "parse.y" +{sqlite3DropIndex(pParse, yymsp[0].minor.yy419, yymsp[-1].minor.yy316);} +#line 2922 "parse.c" break; + case 244: case 245: - case 247: -#line 910 "parse.y" -{sqlite3Pragma(pParse,&yymsp[-3].minor.yy410,&yymsp[-2].minor.yy410,&yymsp[0].minor.yy410,0);} -#line 2925 "parse.c" +#line 893 "parse.y" +{sqlite3Vacuum(pParse);} +#line 2928 "parse.c" break; case 246: -#line 911 "parse.y" -{sqlite3Pragma(pParse,&yymsp[-3].minor.yy410,&yymsp[-2].minor.yy410,&yymsp[0].minor.yy0,0);} -#line 2930 "parse.c" +#line 900 "parse.y" +{sqlite3Pragma(pParse,&yymsp[-3].minor.yy178,&yymsp[-2].minor.yy178,&yymsp[0].minor.yy178,0);} +#line 2933 "parse.c" + break; + case 247: +#line 901 "parse.y" +{sqlite3Pragma(pParse,&yymsp[-3].minor.yy178,&yymsp[-2].minor.yy178,&yymsp[0].minor.yy0,0);} +#line 2938 "parse.c" break; case 248: -#line 913 "parse.y" +#line 902 "parse.y" { - sqlite3Pragma(pParse,&yymsp[-3].minor.yy410,&yymsp[-2].minor.yy410,&yymsp[0].minor.yy410,1); + sqlite3Pragma(pParse,&yymsp[-3].minor.yy178,&yymsp[-2].minor.yy178,&yymsp[0].minor.yy178,1); } -#line 2937 "parse.c" +#line 2945 "parse.c" break; case 249: -#line 916 "parse.y" -{sqlite3Pragma(pParse,&yymsp[-4].minor.yy410,&yymsp[-3].minor.yy410,&yymsp[-1].minor.yy410,0);} -#line 2942 "parse.c" +#line 905 "parse.y" +{sqlite3Pragma(pParse,&yymsp[-4].minor.yy178,&yymsp[-3].minor.yy178,&yymsp[-1].minor.yy178,0);} +#line 2950 "parse.c" break; case 250: -#line 917 "parse.y" -{sqlite3Pragma(pParse,&yymsp[-1].minor.yy410,&yymsp[0].minor.yy410,0,0);} -#line 2947 "parse.c" +#line 906 "parse.y" +{sqlite3Pragma(pParse,&yymsp[-1].minor.yy178,&yymsp[0].minor.yy178,0,0);} +#line 2955 "parse.c" break; - case 256: -#line 929 "parse.y" + case 258: +#line 920 "parse.y" { Token all; - all.z = yymsp[-3].minor.yy410.z; - all.n = (yymsp[0].minor.yy0.z - yymsp[-3].minor.yy410.z) + yymsp[0].minor.yy0.n; - sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy243, &all); -} -#line 2957 "parse.c" - break; - case 257: -#line 938 "parse.y" -{ - sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy410, &yymsp[-6].minor.yy410, yymsp[-5].minor.yy46, yymsp[-4].minor.yy370.a, yymsp[-4].minor.yy370.b, yymsp[-2].minor.yy373, yymsp[-1].minor.yy46, yymsp[0].minor.yy172, yymsp[-10].minor.yy46, yymsp[-8].minor.yy46); - yygotominor.yy410 = (yymsp[-6].minor.yy410.n==0?yymsp[-7].minor.yy410:yymsp[-6].minor.yy410); + all.z = yymsp[-3].minor.yy178.z; + all.n = (yymsp[0].minor.yy0.z - yymsp[-3].minor.yy178.z) + yymsp[0].minor.yy0.n; + sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy75, &all); } #line 2965 "parse.c" break; - case 258: - case 261: -#line 944 "parse.y" -{ yygotominor.yy46 = TK_BEFORE; } -#line 2971 "parse.c" - break; case 259: -#line 945 "parse.y" -{ yygotominor.yy46 = TK_AFTER; } -#line 2976 "parse.c" +#line 929 "parse.y" +{ + sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy178, &yymsp[-6].minor.yy178, yymsp[-5].minor.yy316, yymsp[-4].minor.yy354.a, yymsp[-4].minor.yy354.b, yymsp[-2].minor.yy419, yymsp[-1].minor.yy316, yymsp[0].minor.yy450, yymsp[-10].minor.yy316, yymsp[-8].minor.yy316); + yygotominor.yy178 = (yymsp[-6].minor.yy178.n==0?yymsp[-7].minor.yy178:yymsp[-6].minor.yy178); +} +#line 2973 "parse.c" break; case 260: -#line 946 "parse.y" -{ yygotominor.yy46 = TK_INSTEAD;} -#line 2981 "parse.c" + case 263: +#line 935 "parse.y" +{ yygotominor.yy316 = TK_BEFORE; } +#line 2979 "parse.c" + break; + case 261: +#line 936 "parse.y" +{ yygotominor.yy316 = TK_AFTER; } +#line 2984 "parse.c" break; case 262: - case 263: -#line 951 "parse.y" -{yygotominor.yy370.a = yymsp[0].major; yygotominor.yy370.b = 0;} -#line 2987 "parse.c" +#line 937 "parse.y" +{ yygotominor.yy316 = TK_INSTEAD;} +#line 2989 "parse.c" break; case 264: -#line 953 "parse.y" -{yygotominor.yy370.a = TK_UPDATE; yygotominor.yy370.b = yymsp[0].minor.yy432;} -#line 2992 "parse.c" - break; case 265: +#line 942 "parse.y" +{yygotominor.yy354.a = yymsp[0].major; yygotominor.yy354.b = 0;} +#line 2995 "parse.c" + break; case 266: -#line 956 "parse.y" -{ yygotominor.yy46 = TK_ROW; } -#line 2998 "parse.c" +#line 944 "parse.y" +{yygotominor.yy354.a = TK_UPDATE; yygotominor.yy354.b = yymsp[0].minor.yy352;} +#line 3000 "parse.c" break; case 267: -#line 958 "parse.y" -{ yygotominor.yy46 = TK_STATEMENT; } -#line 3003 "parse.c" - break; case 268: -#line 962 "parse.y" -{ yygotominor.yy172 = 0; } -#line 3008 "parse.c" +#line 947 "parse.y" +{ yygotominor.yy316 = TK_ROW; } +#line 3006 "parse.c" break; case 269: -#line 963 "parse.y" -{ yygotominor.yy172 = yymsp[0].minor.yy172; } -#line 3013 "parse.c" +#line 949 "parse.y" +{ yygotominor.yy316 = TK_STATEMENT; } +#line 3011 "parse.c" break; case 270: -#line 967 "parse.y" -{ - if( yymsp[-2].minor.yy243 ){ - yymsp[-2].minor.yy243->pLast->pNext = yymsp[-1].minor.yy243; - }else{ - yymsp[-2].minor.yy243 = yymsp[-1].minor.yy243; - } - yymsp[-2].minor.yy243->pLast = yymsp[-1].minor.yy243; - yygotominor.yy243 = yymsp[-2].minor.yy243; -} -#line 3026 "parse.c" +#line 953 "parse.y" +{ yygotominor.yy450 = 0; } +#line 3016 "parse.c" break; case 271: -#line 976 "parse.y" -{ yygotominor.yy243 = 0; } -#line 3031 "parse.c" +#line 954 "parse.y" +{ yygotominor.yy450 = yymsp[0].minor.yy450; } +#line 3021 "parse.c" break; case 272: -#line 982 "parse.y" -{ yygotominor.yy243 = sqlite3TriggerUpdateStep(&yymsp[-3].minor.yy410, yymsp[-1].minor.yy174, yymsp[0].minor.yy172, yymsp[-4].minor.yy46); } -#line 3036 "parse.c" +#line 958 "parse.y" +{ + if( yymsp[-2].minor.yy75 ){ + yymsp[-2].minor.yy75->pLast->pNext = yymsp[-1].minor.yy75; + }else{ + yymsp[-2].minor.yy75 = yymsp[-1].minor.yy75; + } + yymsp[-2].minor.yy75->pLast = yymsp[-1].minor.yy75; + yygotominor.yy75 = yymsp[-2].minor.yy75; +} +#line 3034 "parse.c" break; case 273: -#line 987 "parse.y" -{yygotominor.yy243 = sqlite3TriggerInsertStep(&yymsp[-5].minor.yy410, yymsp[-4].minor.yy432, yymsp[-1].minor.yy174, 0, yymsp[-7].minor.yy46);} -#line 3041 "parse.c" +#line 967 "parse.y" +{ yygotominor.yy75 = 0; } +#line 3039 "parse.c" break; case 274: -#line 990 "parse.y" -{yygotominor.yy243 = sqlite3TriggerInsertStep(&yymsp[-2].minor.yy410, yymsp[-1].minor.yy432, 0, yymsp[0].minor.yy219, yymsp[-4].minor.yy46);} -#line 3046 "parse.c" +#line 973 "parse.y" +{ yygotominor.yy75 = sqlite3TriggerUpdateStep(&yymsp[-3].minor.yy178, yymsp[-1].minor.yy242, yymsp[0].minor.yy450, yymsp[-4].minor.yy316); } +#line 3044 "parse.c" break; case 275: -#line 994 "parse.y" -{yygotominor.yy243 = sqlite3TriggerDeleteStep(&yymsp[-1].minor.yy410, yymsp[0].minor.yy172);} -#line 3051 "parse.c" +#line 978 "parse.y" +{yygotominor.yy75 = sqlite3TriggerInsertStep(&yymsp[-5].minor.yy178, yymsp[-4].minor.yy352, yymsp[-1].minor.yy242, 0, yymsp[-7].minor.yy316);} +#line 3049 "parse.c" break; case 276: -#line 997 "parse.y" -{yygotominor.yy243 = sqlite3TriggerSelectStep(yymsp[0].minor.yy219); } -#line 3056 "parse.c" +#line 981 "parse.y" +{yygotominor.yy75 = sqlite3TriggerInsertStep(&yymsp[-2].minor.yy178, yymsp[-1].minor.yy352, 0, yymsp[0].minor.yy43, yymsp[-4].minor.yy316);} +#line 3054 "parse.c" break; case 277: -#line 1000 "parse.y" -{ - yygotominor.yy172 = sqlite3Expr(TK_RAISE, 0, 0, 0); - if( yygotominor.yy172 ){ - yygotominor.yy172->iColumn = OE_Ignore; - sqlite3ExprSpan(yygotominor.yy172, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0); - } -} -#line 3067 "parse.c" +#line 985 "parse.y" +{yygotominor.yy75 = sqlite3TriggerDeleteStep(&yymsp[-1].minor.yy178, yymsp[0].minor.yy450);} +#line 3059 "parse.c" break; case 278: -#line 1007 "parse.y" -{ - yygotominor.yy172 = sqlite3Expr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy410); - if( yygotominor.yy172 ) { - yygotominor.yy172->iColumn = yymsp[-3].minor.yy46; - sqlite3ExprSpan(yygotominor.yy172, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0); - } -} -#line 3078 "parse.c" +#line 988 "parse.y" +{yygotominor.yy75 = sqlite3TriggerSelectStep(yymsp[0].minor.yy43); } +#line 3064 "parse.c" break; case 279: -#line 1017 "parse.y" -{yygotominor.yy46 = OE_Rollback;} -#line 3083 "parse.c" +#line 991 "parse.y" +{ + yygotominor.yy450 = sqlite3Expr(TK_RAISE, 0, 0, 0); + if( yygotominor.yy450 ){ + yygotominor.yy450->iColumn = OE_Ignore; + sqlite3ExprSpan(yygotominor.yy450, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0); + } +} +#line 3075 "parse.c" + break; + case 280: +#line 998 "parse.y" +{ + yygotominor.yy450 = sqlite3Expr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy178); + if( yygotominor.yy450 ) { + yygotominor.yy450->iColumn = yymsp[-3].minor.yy316; + sqlite3ExprSpan(yygotominor.yy450, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0); + } +} +#line 3086 "parse.c" break; case 281: -#line 1019 "parse.y" -{yygotominor.yy46 = OE_Fail;} -#line 3088 "parse.c" - break; - case 282: -#line 1024 "parse.y" -{ - sqlite3DropTrigger(pParse,yymsp[0].minor.yy373,yymsp[-1].minor.yy46); -} -#line 3095 "parse.c" +#line 1008 "parse.y" +{yygotominor.yy316 = OE_Rollback;} +#line 3091 "parse.c" break; case 283: -#line 1030 "parse.y" -{ - sqlite3Attach(pParse, yymsp[-3].minor.yy172, yymsp[-1].minor.yy172, yymsp[0].minor.yy386); -} -#line 3102 "parse.c" +#line 1010 "parse.y" +{yygotominor.yy316 = OE_Fail;} +#line 3096 "parse.c" break; case 284: -#line 1035 "parse.y" -{ yygotominor.yy386 = 0; } -#line 3107 "parse.c" +#line 1015 "parse.y" +{ + sqlite3DropTrigger(pParse,yymsp[0].minor.yy419,yymsp[-1].minor.yy316); +} +#line 3103 "parse.c" break; case 285: -#line 1036 "parse.y" -{ yygotominor.yy386 = yymsp[0].minor.yy172; } -#line 3112 "parse.c" - break; - case 288: -#line 1042 "parse.y" +#line 1021 "parse.y" { - sqlite3Detach(pParse, yymsp[0].minor.yy172); + sqlite3Attach(pParse, yymsp[-3].minor.yy450, yymsp[-1].minor.yy450, yymsp[0].minor.yy158); } -#line 3119 "parse.c" +#line 3110 "parse.c" break; - case 289: -#line 1048 "parse.y" -{sqlite3Reindex(pParse, 0, 0);} -#line 3124 "parse.c" + case 286: +#line 1026 "parse.y" +{ yygotominor.yy158 = 0; } +#line 3115 "parse.c" + break; + case 287: +#line 1027 "parse.y" +{ yygotominor.yy158 = yymsp[0].minor.yy450; } +#line 3120 "parse.c" break; case 290: -#line 1049 "parse.y" -{sqlite3Reindex(pParse, &yymsp[-1].minor.yy410, &yymsp[0].minor.yy410);} -#line 3129 "parse.c" +#line 1033 "parse.y" +{ + sqlite3Detach(pParse, yymsp[0].minor.yy450); +} +#line 3127 "parse.c" break; case 291: -#line 1054 "parse.y" -{sqlite3Analyze(pParse, 0, 0);} -#line 3134 "parse.c" +#line 1039 "parse.y" +{sqlite3Reindex(pParse, 0, 0);} +#line 3132 "parse.c" break; case 292: -#line 1055 "parse.y" -{sqlite3Analyze(pParse, &yymsp[-1].minor.yy410, &yymsp[0].minor.yy410);} -#line 3139 "parse.c" +#line 1040 "parse.y" +{sqlite3Reindex(pParse, &yymsp[-1].minor.yy178, &yymsp[0].minor.yy178);} +#line 3137 "parse.c" break; case 293: -#line 1060 "parse.y" -{ - sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy373,&yymsp[0].minor.yy410); -} -#line 3146 "parse.c" +#line 1045 "parse.y" +{sqlite3Analyze(pParse, 0, 0);} +#line 3142 "parse.c" break; case 294: -#line 1063 "parse.y" -{ - sqlite3AlterFinishAddColumn(pParse, &yymsp[0].minor.yy410); -} -#line 3153 "parse.c" +#line 1046 "parse.y" +{sqlite3Analyze(pParse, &yymsp[-1].minor.yy178, &yymsp[0].minor.yy178);} +#line 3147 "parse.c" break; case 295: -#line 1066 "parse.y" +#line 1051 "parse.y" { - sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy373); + sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy419,&yymsp[0].minor.yy178); } -#line 3160 "parse.c" +#line 3154 "parse.c" break; - case 298: -#line 1075 "parse.y" -{sqlite3VtabFinishParse(pParse,0);} -#line 3165 "parse.c" + case 296: +#line 1054 "parse.y" +{ + sqlite3AlterFinishAddColumn(pParse, &yymsp[0].minor.yy178); +} +#line 3161 "parse.c" break; - case 299: -#line 1076 "parse.y" -{sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);} -#line 3170 "parse.c" + case 297: +#line 1057 "parse.y" +{ + sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy419); +} +#line 3168 "parse.c" break; case 300: -#line 1077 "parse.y" -{ - sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy410, &yymsp[-2].minor.yy410, &yymsp[0].minor.yy410); -} -#line 3177 "parse.c" +#line 1066 "parse.y" +{sqlite3VtabFinishParse(pParse,0);} +#line 3173 "parse.c" break; - case 303: -#line 1082 "parse.y" -{sqlite3VtabArgInit(pParse);} -#line 3182 "parse.c" + case 301: +#line 1067 "parse.y" +{sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);} +#line 3178 "parse.c" + break; + case 302: +#line 1068 "parse.y" +{ + sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy178, &yymsp[-2].minor.yy178, &yymsp[0].minor.yy178); +} +#line 3185 "parse.c" break; case 305: - case 306: - case 307: - case 309: -#line 1084 "parse.y" -{sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);} +#line 1073 "parse.y" +{sqlite3VtabArgInit(pParse);} #line 3190 "parse.c" break; + case 307: + case 308: + case 309: + case 311: +#line 1075 "parse.y" +{sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);} +#line 3198 "parse.c" + break; }; yygoto = yyRuleInfo[yyruleno].lhs; yysize = yyRuleInfo[yyruleno].nrhs; @@ -3251,7 +3259,7 @@ static void yy_syntax_error( } pParse->parseError = 1; } -#line 3258 "parse.c" +#line 3266 "parse.c" sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument variable */ } diff --git a/libs/win32/sqlite/parse.h b/libs/win32/sqlite/parse.h index 65c9a5ce90..3a71be199d 100644 --- a/libs/win32/sqlite/parse.h +++ b/libs/win32/sqlite/parse.h @@ -82,19 +82,19 @@ #define TK_SLASH 82 #define TK_REM 83 #define TK_CONCAT 84 -#define TK_UMINUS 85 -#define TK_UPLUS 86 -#define TK_BITNOT 87 -#define TK_STRING 88 -#define TK_JOIN_KW 89 -#define TK_CONSTRAINT 90 -#define TK_DEFAULT 91 -#define TK_NULL 92 -#define TK_PRIMARY 93 -#define TK_UNIQUE 94 -#define TK_CHECK 95 -#define TK_REFERENCES 96 -#define TK_COLLATE 97 +#define TK_COLLATE 85 +#define TK_UMINUS 86 +#define TK_UPLUS 87 +#define TK_BITNOT 88 +#define TK_STRING 89 +#define TK_JOIN_KW 90 +#define TK_CONSTRAINT 91 +#define TK_DEFAULT 92 +#define TK_NULL 93 +#define TK_PRIMARY 94 +#define TK_UNIQUE 95 +#define TK_CHECK 96 +#define TK_REFERENCES 97 #define TK_AUTOINCR 98 #define TK_ON 99 #define TK_DELETE 100 diff --git a/libs/win32/sqlite/sqlite.vcproj b/libs/win32/sqlite/sqlite.vcproj index 9b21fbb1c8..a3da9e2cad 100644 --- a/libs/win32/sqlite/sqlite.vcproj +++ b/libs/win32/sqlite/sqlite.vcproj @@ -25,7 +25,7 @@ > ", where @@ -48,7 +48,7 @@ extern "C" { #ifdef SQLITE_VERSION_NUMBER # undef SQLITE_VERSION_NUMBER #endif -#define SQLITE_VERSION_NUMBER 3003008 +#define SQLITE_VERSION_NUMBER 3003013 /* ** The version string is also compiled into the library so that a program @@ -125,7 +125,7 @@ typedef int (*sqlite3_callback)(void*,int,char**, char**); ** value then the query is aborted, all subsequent SQL statements ** are skipped and the sqlite3_exec() function returns the SQLITE_ABORT. ** -** The 4th parameter is an arbitrary pointer that is passed +** The 1st parameter is an arbitrary pointer that is passed ** to the callback function as its first parameter. ** ** The 2nd parameter to the callback function is the number of @@ -315,13 +315,30 @@ int sqlite3_complete16(const void *sql); ** currently locked by another process or thread. If the busy callback ** is NULL, then sqlite3_exec() returns SQLITE_BUSY immediately if ** it finds a locked table. If the busy callback is not NULL, then -** sqlite3_exec() invokes the callback with three arguments. The -** second argument is the name of the locked table and the third -** argument is the number of times the table has been busy. If the +** sqlite3_exec() invokes the callback with two arguments. The +** first argument to the handler is a copy of the void* pointer which +** is the third argument to this routine. The second argument to +** the handler is the number of times that the busy handler has +** been invoked for this locking event. If the ** busy callback returns 0, then sqlite3_exec() immediately returns ** SQLITE_BUSY. If the callback returns non-zero, then sqlite3_exec() ** tries to open the table again and the cycle repeats. ** +** The presence of a busy handler does not guarantee that +** it will be invoked when there is lock contention. +** If SQLite determines that invoking the busy handler could result in +** a deadlock, it will return SQLITE_BUSY instead. +** Consider a scenario where one process is holding a read lock that +** it is trying to promote to a reserved lock and +** a second process is holding a reserved lock that it is trying +** to promote to an exclusive lock. The first process cannot proceed +** because it is blocked by the second and the second process cannot +** proceed because it is blocked by the first. If both processes +** invoke the busy handlers, neither will make any progress. Therefore, +** SQLite returns SQLITE_BUSY for the first process, hoping that this +** will induce the first process to release its read lock and allow +** the second process to proceed. +** ** The default busy callback is NULL. ** ** Sqlite is re-entrant, so the busy handler may start a new query. @@ -692,6 +709,31 @@ int sqlite3_prepare16( const void **pzTail /* OUT: Pointer to unused portion of zSql */ ); +/* +** Newer versions of the prepare API work just like the legacy versions +** but with one exception: The a copy of the SQL text is saved in the +** sqlite3_stmt structure that is returned. If this copy exists, it +** modifieds the behavior of sqlite3_step() slightly. First, sqlite3_step() +** will no longer return an SQLITE_SCHEMA error but will instead automatically +** rerun the compiler to rebuild the prepared statement. Secondly, +** sqlite3_step() now turns a full result code - the result code that +** use used to have to call sqlite3_reset() to get. +*/ +int sqlite3_prepare_v2( + sqlite3 *db, /* Database handle */ + const char *zSql, /* SQL statement, UTF-8 encoded */ + int nBytes, /* Length of zSql in bytes. */ + sqlite3_stmt **ppStmt, /* OUT: Statement handle */ + const char **pzTail /* OUT: Pointer to unused portion of zSql */ +); +int sqlite3_prepare16_v2( + sqlite3 *db, /* Database handle */ + const void *zSql, /* SQL statement, UTF-16 encoded */ + int nBytes, /* Length of zSql in bytes. */ + sqlite3_stmt **ppStmt, /* OUT: Statement handle */ + const void **pzTail /* OUT: Pointer to unused portion of zSql */ +); + /* ** Pointers to the following two opaque structures are used to communicate ** with the implementations of user-defined functions. @@ -1143,9 +1185,13 @@ void sqlite3_set_auxdata(sqlite3_context*, int, void*, void (*)(void*)); ** SQLITE_TRANSIENT value means that the content will likely change in ** the near future and that SQLite should make its own private copy of ** the content before returning. +** +** The typedef is necessary to work around problems in certain +** C++ compilers. See ticket #2191. */ -#define SQLITE_STATIC ((void(*)(void *))0) -#define SQLITE_TRANSIENT ((void(*)(void *))-1) +typedef void (*sqlite3_destructor_type)(void*); +#define SQLITE_STATIC ((sqlite3_destructor_type)0) +#define SQLITE_TRANSIENT ((sqlite3_destructor_type)-1) /* ** User-defined functions invoke the following routines in order to