From 8768f6b4216a2b1e110661285ce1a1313ed4b102 Mon Sep 17 00:00:00 2001 From: "vladimir%pobox.com" Date: Wed, 13 Oct 2004 19:30:19 +0000 Subject: [PATCH] Update to SQLite 3.0.8 git-svn-id: svn://10.0.0.236/trunk@163664 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/db/sqlite3/README.MOZILLA | 5 +- mozilla/db/sqlite3/src/Makefile.in | 2 +- mozilla/db/sqlite3/src/build.c | 8 +- mozilla/db/sqlite3/src/date.c | 4 +- mozilla/db/sqlite3/src/func.c | 6 +- mozilla/db/sqlite3/src/main.c | 10 +- mozilla/db/sqlite3/src/opcodes.c | 255 +- mozilla/db/sqlite3/src/opcodes.h | 253 +- mozilla/db/sqlite3/src/os_unix.c | 2 +- mozilla/db/sqlite3/src/parse.c | 3687 ++++++++++++++-------------- mozilla/db/sqlite3/src/parse.h | 72 +- mozilla/db/sqlite3/src/pragma.c | 16 +- mozilla/db/sqlite3/src/printf.c | 7 +- mozilla/db/sqlite3/src/select.c | 4 +- mozilla/db/sqlite3/src/shell.c | 43 +- mozilla/db/sqlite3/src/sqlite.h.in | 22 +- mozilla/db/sqlite3/src/tokenize.c | 240 +- mozilla/db/sqlite3/src/trigger.c | 8 +- mozilla/db/sqlite3/src/vdbe.c | 4 +- mozilla/db/sqlite3/src/vdbeaux.c | 27 +- 20 files changed, 2278 insertions(+), 2397 deletions(-) diff --git a/mozilla/db/sqlite3/README.MOZILLA b/mozilla/db/sqlite3/README.MOZILLA index 361444fa48a..53528d62b8b 100644 --- a/mozilla/db/sqlite3/README.MOZILLA +++ b/mozilla/db/sqlite3/README.MOZILLA @@ -1,8 +1,5 @@ -This is a CVS pull from 2004.10.05 (has to be CVS since a few bug -fixes we need went in past 3.0.7). Note that THIS SUCKS: qe'll want -to pick a release version, probably 3.0.8, and stick with that, as -soon as it's out. +This is sqlite 3.0.8. (SQLITE_3_0_8 tag) See http://www.sqlite.org/ for more info. diff --git a/mozilla/db/sqlite3/src/Makefile.in b/mozilla/db/sqlite3/src/Makefile.in index 0abd4257821..ac72b659df5 100644 --- a/mozilla/db/sqlite3/src/Makefile.in +++ b/mozilla/db/sqlite3/src/Makefile.in @@ -46,7 +46,7 @@ LIBRARY_NAME = sqlite3_s MODULE_NAME = sqlite3 FORCE_STATIC_LIB = 1 -VERSION = 3.0.7+041005 +VERSION = 3.0.8 EXPORTS = sqlite3.h diff --git a/mozilla/db/sqlite3/src/build.c b/mozilla/db/sqlite3/src/build.c index 2cf64573cd8..7ae1868af44 100644 --- a/mozilla/db/sqlite3/src/build.c +++ b/mozilla/db/sqlite3/src/build.c @@ -23,7 +23,7 @@ ** ROLLBACK ** PRAGMA ** -** $Id: build.c,v 1.256 2004/10/05 02:41:42 drh Exp $ +** $Id: build.c,v 1.257 2004/10/06 15:41:16 drh Exp $ */ #include "sqliteInt.h" #include @@ -1112,7 +1112,7 @@ CollSeq *sqlite3LocateCollSeq(Parse *pParse, const char *zName, int nName){ */ char sqlite3AffinityType(const char *zType, int nType){ int n, i; - struct { + static const struct { const char *zSub; /* Keywords substring to search for */ char nSub; /* length of zSub */ char affinity; /* Affinity to return if it matches */ @@ -1612,7 +1612,7 @@ void sqlite3DropTable(Parse *pParse, SrcList *pName, int isView){ */ v = sqlite3GetVdbe(pParse); if( v ){ - static VdbeOpList dropTable[] = { + static const VdbeOpList dropTable[] = { { OP_Rewind, 0, ADDR(13), 0}, { OP_String8, 0, 0, 0}, /* 1 */ { OP_MemStore, 1, 1, 0}, @@ -2207,7 +2207,7 @@ void sqlite3DropIndex(Parse *pParse, SrcList *pName){ /* Generate code to remove the index and from the master table */ v = sqlite3GetVdbe(pParse); if( v ){ - static VdbeOpList dropIndex[] = { + static const VdbeOpList dropIndex[] = { { OP_Rewind, 0, ADDR(9), 0}, { OP_String8, 0, 0, 0}, /* 1 */ { OP_MemStore, 1, 1, 0}, diff --git a/mozilla/db/sqlite3/src/date.c b/mozilla/db/sqlite3/src/date.c index 358e7bc5a8a..78e53e5a44d 100644 --- a/mozilla/db/sqlite3/src/date.c +++ b/mozilla/db/sqlite3/src/date.c @@ -16,7 +16,7 @@ ** sqlite3RegisterDateTimeFunctions() found at the bottom of the file. ** All other code has file scope. ** -** $Id: date.c,v 1.36 2004/10/01 02:00:31 drh Exp $ +** $Id: date.c,v 1.37 2004/10/06 15:41:16 drh Exp $ ** ** NOTES: ** @@ -872,7 +872,7 @@ static void strftimeFunc( */ void sqlite3RegisterDateTimeFunctions(sqlite3 *db){ #ifndef SQLITE_OMIT_DATETIME_FUNCS - static struct { + static const struct { char *zName; int nArg; void (*xFunc)(sqlite3_context*,int,sqlite3_value**); diff --git a/mozilla/db/sqlite3/src/func.c b/mozilla/db/sqlite3/src/func.c index 9c7ccb3e75d..46952284e6e 100644 --- a/mozilla/db/sqlite3/src/func.c +++ b/mozilla/db/sqlite3/src/func.c @@ -16,7 +16,7 @@ ** sqliteRegisterBuildinFunctions() found at the bottom of the file. ** All other code has file scope. ** -** $Id: func.c,v 1.84 2004/09/13 13:13:19 drh Exp $ +** $Id: func.c,v 1.85 2004/10/06 15:41:17 drh Exp $ */ #include #include @@ -918,7 +918,7 @@ static void minMaxFinalize(sqlite3_context *context){ ** external linkage. */ void sqlite3RegisterBuiltinFunctions(sqlite3 *db){ - static struct { + static const struct { char *zName; signed char nArg; u8 argType; /* 0: none. 1: db 2: (-1) */ @@ -962,7 +962,7 @@ void sqlite3RegisterBuiltinFunctions(sqlite3 *db){ { "test_auxdata", -1, 0, SQLITE_UTF8, 0, test_auxdata}, #endif }; - static struct { + static const struct { char *zName; signed char nArg; u8 argType; diff --git a/mozilla/db/sqlite3/src/main.c b/mozilla/db/sqlite3/src/main.c index 4303ce91ab3..dc17c224f91 100644 --- a/mozilla/db/sqlite3/src/main.c +++ b/mozilla/db/sqlite3/src/main.c @@ -14,7 +14,7 @@ ** other files are for internal use by SQLite and should not be ** accessed by users of the library. ** -** $Id: main.c,v 1.262 2004/09/30 13:43:13 drh Exp $ +** $Id: main.c,v 1.263 2004/10/06 15:41:17 drh Exp $ */ #include "sqliteInt.h" #include "os.h" @@ -128,7 +128,7 @@ static int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg){ /* ** The master database table has a structure like this */ - static char master_schema[] = + static const char master_schema[] = "CREATE TABLE sqlite_master(\n" " type text,\n" " name text,\n" @@ -137,7 +137,7 @@ static int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg){ " sql text\n" ")" ; - static char temp_master_schema[] = + static const char temp_master_schema[] = "CREATE TEMP TABLE sqlite_temp_master(\n" " type text,\n" " name text,\n" @@ -890,12 +890,12 @@ const void *sqlite3_errmsg16(sqlite3 *db){ ** zero byte, we can obtain the little-endian string with ** &big_endian[1]. */ - static char outOfMemBe[] = { + static const char outOfMemBe[] = { 0, 'o', 0, 'u', 0, 't', 0, ' ', 0, 'o', 0, 'f', 0, ' ', 0, 'm', 0, 'e', 0, 'm', 0, 'o', 0, 'r', 0, 'y', 0, 0, 0 }; - static char misuseBe [] = { + static const char misuseBe [] = { 0, 'l', 0, 'i', 0, 'b', 0, 'r', 0, 'a', 0, 'r', 0, 'y', 0, ' ', 0, 'r', 0, 'o', 0, 'u', 0, 't', 0, 'i', 0, 'n', 0, 'e', 0, ' ', 0, 'c', 0, 'a', 0, 'l', 0, 'l', 0, 'e', 0, 'd', 0, ' ', diff --git a/mozilla/db/sqlite3/src/opcodes.c b/mozilla/db/sqlite3/src/opcodes.c index e23caea5138..4bdfb04027c 100644 --- a/mozilla/db/sqlite3/src/opcodes.c +++ b/mozilla/db/sqlite3/src/opcodes.c @@ -1,129 +1,128 @@ -/* Automatically generated file. Do not edit */ -char *sqlite3OpcodeNames[] = { "???", - "Goto", - "Gosub", - "Return", - "Halt", - "Integer", - "Real", - "String8", - "String", - "HexBlob", - "Blob", - "Variable", - "Pop", - "Dup", - "Pull", - "Push", - "Callback", - "Concat", - "Add", - "Subtract", - "Multiply", - "Divide", - "Remainder", - "CollSeq", - "Function", - "BitAnd", - "BitOr", - "ShiftLeft", - "ShiftRight", - "AddImm", - "ForceInt", - "MustBeInt", - "Eq", - "Ne", - "Lt", - "Le", - "Gt", - "Ge", - "And", - "Or", - "Negative", - "AbsValue", - "Not", - "BitNot", - "Noop", - "If", - "IfNot", - "IsNull", - "NotNull", - "SetNumColumns", - "IdxColumn", - "Column", - "MakeRecord", - "Statement", - "AutoCommit", - "Transaction", - "ReadCookie", - "SetCookie", - "VerifyCookie", - "OpenRead", - "OpenWrite", - "OpenTemp", - "OpenPseudo", - "Close", - "MoveLt", - "MoveLe", - "MoveGe", - "MoveGt", - "Distinct", - "NotFound", - "Found", - "IsUnique", - "NotExists", - "NewRecno", - "PutIntKey", - "PutStrKey", - "Delete", - "ResetCount", - "KeyAsData", - "RowKey", - "RowData", - "Recno", - "FullKey", - "NullRow", - "Last", - "Rewind", - "Prev", - "Next", - "IdxPut", - "IdxDelete", - "IdxRecno", - "IdxLT", - "IdxGT", - "IdxGE", - "IdxIsNull", - "Destroy", - "Clear", - "CreateIndex", - "CreateTable", - "ParseSchema", - "DropTable", - "DropIndex", - "DropTrigger", - "IntegrityCk", - "ListWrite", - "ListRewind", - "ListRead", - "ListReset", - "ListPush", - "ListPop", - "ContextPush", - "ContextPop", - "SortPut", - "Sort", - "SortNext", - "SortReset", - "MemStore", - "MemLoad", - "MemIncr", - "AggReset", - "AggInit", - "AggFunc", - "AggFocus", - "AggSet", - "AggGet", - "AggNext", - "Vacuum", +/* Automatically generated. Do not edit */ +/* See the mkopcodec.h script for details. */ +const char *const sqlite3OpcodeNames[] = { "?", + "MemLoad", + "Column", + "SetCookie", + "MoveGt", + "AggFocus", + "RowKey", + "IdxRecno", + "AggNext", + "OpenWrite", + "If", + "PutStrKey", + "Pop", + "SortPut", + "CollSeq", + "OpenRead", + "SortReset", + "AutoCommit", + "Sort", + "ListRewind", + "IntegrityCk", + "Function", + "Noop", + "Return", + "Variable", + "String", + "ParseSchema", + "PutIntKey", + "AggFunc", + "Close", + "ListWrite", + "CreateIndex", + "IsUnique", + "IdxIsNull", + "NotFound", + "MustBeInt", + "Halt", + "IdxLT", + "AddImm", + "Statement", + "RowData", + "Push", + "KeyAsData", + "NotExists", + "OpenTemp", + "MemIncr", + "Gosub", + "AggSet", + "Integer", + "SortNext", + "Prev", + "CreateTable", + "Last", + "ResetCount", + "Callback", + "ContextPush", + "DropTrigger", + "DropIndex", + "Or", + "And", + "Not", + "FullKey", + "IdxGE", + "IdxDelete", + "IsNull", + "NotNull", + "Ne", + "Eq", + "Gt", + "Le", + "Lt", + "Ge", + "BitAnd", + "BitOr", + "ShiftLeft", + "ShiftRight", + "Add", + "Subtract", + "Multiply", + "Divide", + "Remainder", + "Concat", + "Negative", + "Vacuum", + "BitNot", + "String8", + "MoveLe", + "IfNot", + "DropTable", + "MakeRecord", + "Delete", + "ListRead", + "ListReset", + "Dup", + "Goto", + "Clear", + "IdxGT", + "MoveLt", + "VerifyCookie", + "Pull", + "SetNumColumns", + "AbsValue", + "Transaction", + "AggGet", + "ContextPop", + "Next", + "AggInit", + "Distinct", + "NewRecno", + "AggReset", + "Destroy", + "ReadCookie", + "ForceInt", + "IdxColumn", + "Recno", + "OpenPseudo", + "Blob", + "MemStore", + "Rewind", + "MoveGe", + "IdxPut", + "Found", + "Real", + "HexBlob", + "NullRow", }; diff --git a/mozilla/db/sqlite3/src/opcodes.h b/mozilla/db/sqlite3/src/opcodes.h index 297ff8f5ba4..498ddd9f9dc 100644 --- a/mozilla/db/sqlite3/src/opcodes.h +++ b/mozilla/db/sqlite3/src/opcodes.h @@ -1,127 +1,126 @@ -/* Automatically generated file. Do not edit */ -#define OP_Goto 1 -#define OP_Gosub 2 -#define OP_Return 3 -#define OP_Halt 4 -#define OP_Integer 5 -#define OP_Real 6 -#define OP_String8 7 -#define OP_String 8 -#define OP_HexBlob 9 -#define OP_Blob 10 -#define OP_Variable 11 -#define OP_Pop 12 -#define OP_Dup 13 -#define OP_Pull 14 -#define OP_Push 15 -#define OP_Callback 16 -#define OP_Concat 17 -#define OP_Add 18 -#define OP_Subtract 19 -#define OP_Multiply 20 -#define OP_Divide 21 -#define OP_Remainder 22 -#define OP_CollSeq 23 -#define OP_Function 24 -#define OP_BitAnd 25 -#define OP_BitOr 26 -#define OP_ShiftLeft 27 -#define OP_ShiftRight 28 -#define OP_AddImm 29 -#define OP_ForceInt 30 -#define OP_MustBeInt 31 -#define OP_Eq 32 -#define OP_Ne 33 -#define OP_Lt 34 -#define OP_Le 35 -#define OP_Gt 36 -#define OP_Ge 37 -#define OP_And 38 -#define OP_Or 39 -#define OP_Negative 40 -#define OP_AbsValue 41 -#define OP_Not 42 -#define OP_BitNot 43 -#define OP_Noop 44 -#define OP_If 45 -#define OP_IfNot 46 -#define OP_IsNull 47 -#define OP_NotNull 48 -#define OP_SetNumColumns 49 -#define OP_IdxColumn 50 -#define OP_Column 51 -#define OP_MakeRecord 52 -#define OP_Statement 53 -#define OP_AutoCommit 54 -#define OP_Transaction 55 -#define OP_ReadCookie 56 -#define OP_SetCookie 57 -#define OP_VerifyCookie 58 -#define OP_OpenRead 59 -#define OP_OpenWrite 60 -#define OP_OpenTemp 61 -#define OP_OpenPseudo 62 -#define OP_Close 63 -#define OP_MoveLt 64 -#define OP_MoveLe 65 -#define OP_MoveGe 66 -#define OP_MoveGt 67 -#define OP_Distinct 68 -#define OP_NotFound 69 -#define OP_Found 70 -#define OP_IsUnique 71 -#define OP_NotExists 72 -#define OP_NewRecno 73 -#define OP_PutIntKey 74 -#define OP_PutStrKey 75 -#define OP_Delete 76 -#define OP_ResetCount 77 -#define OP_KeyAsData 78 -#define OP_RowKey 79 -#define OP_RowData 80 -#define OP_Recno 81 -#define OP_FullKey 82 -#define OP_NullRow 83 -#define OP_Last 84 -#define OP_Rewind 85 -#define OP_Prev 86 -#define OP_Next 87 -#define OP_IdxPut 88 -#define OP_IdxDelete 89 -#define OP_IdxRecno 90 -#define OP_IdxLT 91 -#define OP_IdxGT 92 -#define OP_IdxGE 93 -#define OP_IdxIsNull 94 -#define OP_Destroy 95 -#define OP_Clear 96 -#define OP_CreateIndex 97 -#define OP_CreateTable 98 -#define OP_ParseSchema 99 -#define OP_DropTable 100 -#define OP_DropIndex 101 -#define OP_DropTrigger 102 -#define OP_IntegrityCk 103 -#define OP_ListWrite 104 -#define OP_ListRewind 105 -#define OP_ListRead 106 -#define OP_ListReset 107 -#define OP_ListPush 108 -#define OP_ListPop 109 -#define OP_ContextPush 110 -#define OP_ContextPop 111 -#define OP_SortPut 112 -#define OP_Sort 113 -#define OP_SortNext 114 -#define OP_SortReset 115 -#define OP_MemStore 116 -#define OP_MemLoad 117 -#define OP_MemIncr 118 -#define OP_AggReset 119 -#define OP_AggInit 120 -#define OP_AggFunc 121 -#define OP_AggFocus 122 -#define OP_AggSet 123 -#define OP_AggGet 124 -#define OP_AggNext 125 -#define OP_Vacuum 126 +/* Automatically generated. Do not edit */ +/* See the mkopcodeh.awk script for details */ +#define OP_MemLoad 1 +#define OP_HexBlob 123 +#define OP_Column 2 +#define OP_SetCookie 3 +#define OP_Real 122 +#define OP_MoveGt 4 +#define OP_Ge 71 +#define OP_AggFocus 5 +#define OP_RowKey 6 +#define OP_IdxRecno 7 +#define OP_AggNext 8 +#define OP_Eq 67 +#define OP_OpenWrite 9 +#define OP_NotNull 65 +#define OP_If 10 +#define OP_PutStrKey 11 +#define OP_String8 85 +#define OP_Pop 12 +#define OP_SortPut 13 +#define OP_CollSeq 14 +#define OP_OpenRead 15 +#define OP_SortReset 16 +#define OP_AutoCommit 17 +#define OP_Gt 68 +#define OP_Sort 18 +#define OP_ListRewind 19 +#define OP_IntegrityCk 20 +#define OP_Function 21 +#define OP_Subtract 77 +#define OP_And 59 +#define OP_Noop 22 +#define OP_Return 23 +#define OP_Remainder 80 +#define OP_Multiply 78 +#define OP_Variable 24 +#define OP_String 25 +#define OP_ParseSchema 26 +#define OP_PutIntKey 27 +#define OP_AggFunc 28 +#define OP_Close 29 +#define OP_ListWrite 30 +#define OP_CreateIndex 31 +#define OP_IsUnique 32 +#define OP_IdxIsNull 33 +#define OP_NotFound 34 +#define OP_MustBeInt 35 +#define OP_Halt 36 +#define OP_IdxLT 37 +#define OP_AddImm 38 +#define OP_Statement 39 +#define OP_RowData 40 +#define OP_Push 41 +#define OP_Or 58 +#define OP_KeyAsData 42 +#define OP_NotExists 43 +#define OP_OpenTemp 44 +#define OP_MemIncr 45 +#define OP_Gosub 46 +#define OP_Divide 79 +#define OP_AggSet 47 +#define OP_Integer 48 +#define OP_SortNext 49 +#define OP_Prev 50 +#define OP_Concat 81 +#define OP_BitAnd 72 +#define OP_CreateTable 51 +#define OP_Last 52 +#define OP_IsNull 64 +#define OP_ShiftRight 75 +#define OP_ResetCount 53 +#define OP_Callback 54 +#define OP_ContextPush 55 +#define OP_DropTrigger 56 +#define OP_DropIndex 57 +#define OP_FullKey 61 +#define OP_IdxGE 62 +#define OP_IdxDelete 63 +#define OP_Vacuum 83 +#define OP_MoveLe 86 +#define OP_IfNot 87 +#define OP_DropTable 88 +#define OP_MakeRecord 89 +#define OP_Delete 90 +#define OP_ListRead 91 +#define OP_ListReset 92 +#define OP_ShiftLeft 74 +#define OP_Dup 93 +#define OP_Goto 94 +#define OP_Clear 95 +#define OP_IdxGT 96 +#define OP_MoveLt 97 +#define OP_Le 69 +#define OP_VerifyCookie 98 +#define OP_Pull 99 +#define OP_Not 60 +#define OP_SetNumColumns 100 +#define OP_AbsValue 101 +#define OP_Transaction 102 +#define OP_Negative 82 +#define OP_Ne 66 +#define OP_AggGet 103 +#define OP_ContextPop 104 +#define OP_BitOr 73 +#define OP_Next 105 +#define OP_AggInit 106 +#define OP_Distinct 107 +#define OP_NewRecno 108 +#define OP_Lt 70 +#define OP_AggReset 109 +#define OP_Destroy 110 +#define OP_ReadCookie 111 +#define OP_ForceInt 112 +#define OP_IdxColumn 113 +#define OP_Recno 114 +#define OP_OpenPseudo 115 +#define OP_Blob 116 +#define OP_Add 76 +#define OP_MemStore 117 +#define OP_Rewind 118 +#define OP_MoveGe 119 +#define OP_IdxPut 120 +#define OP_BitNot 84 +#define OP_Found 121 +#define OP_NullRow 124 diff --git a/mozilla/db/sqlite3/src/os_unix.c b/mozilla/db/sqlite3/src/os_unix.c index 88d35f9ce84..94fca70199a 100644 --- a/mozilla/db/sqlite3/src/os_unix.c +++ b/mozilla/db/sqlite3/src/os_unix.c @@ -588,7 +588,7 @@ int sqlite3OsTempFileName(char *zBuf){ "/tmp", ".", }; - static unsigned char zChars[] = + static const unsigned char zChars[] = "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "0123456789"; diff --git a/mozilla/db/sqlite3/src/parse.c b/mozilla/db/sqlite3/src/parse.c index 882e7160821..9443c6fc42c 100644 --- a/mozilla/db/sqlite3/src/parse.c +++ b/mozilla/db/sqlite3/src/parse.c @@ -18,6 +18,15 @@ struct LimitVal { int offset; /* The OFFSET. 0 if there is none */ }; +/* +** An instance of this structure is used to store the LIKE, +** GLOB, NOT LIKE, and NOT GLOB operators. +*/ +struct LikeOp { + int opcode; /* Either TK_GLOB or TK_LIKE */ + int not; /* True if the NOT keyword is present */ +}; + /* ** An instance of the following structure describes the event of a ** TRIGGER. "a" is the event type, one of TK_UPDATE, TK_INSERT, @@ -34,7 +43,7 @@ struct TrigEvent { int a; IdList * b; }; */ struct AttachKey { int type; Token key; }; -#line 39 "parse.c" +#line 48 "parse.c" /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ @@ -84,34 +93,35 @@ struct AttachKey { int type; Token key; }; ** defined, then do no error processing. */ #define YYCODETYPE unsigned char -#define YYNOCODE 221 +#define YYNOCODE 225 #define YYACTIONTYPE unsigned short int #define sqlite3ParserTOKENTYPE Token typedef union { sqlite3ParserTOKENTYPE yy0; - struct AttachKey yy92; - struct LimitVal yy124; - Select* yy179; - TriggerStep* yy187; - Expr* yy242; - struct TrigEvent yy290; - Token yy298; - SrcList* yy307; - IdList* yy320; - ExprList* yy322; - int yy372; - struct {int value; int mask;} yy407; - int yy441; + struct {int value; int mask;} yy47; + TriggerStep* yy91; + Token yy98; + Select* yy107; + struct TrigEvent yy146; + ExprList* yy210; + Expr* yy258; + SrcList* yy259; + IdList* yy272; + int yy284; + struct AttachKey yy292; + struct LikeOp yy342; + struct LimitVal yy404; + int yy449; } 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 569 -#define YYNRULE 297 +#define YYNSTATE 537 +#define YYNRULE 292 #define YYERRORSYMBOL 130 -#define YYERRSYMDT yy441 +#define YYERRSYMDT yy449 #define YYFALLBACK 1 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) @@ -164,448 +174,433 @@ typedef union { ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ -static YYACTIONTYPE yy_action[] = { - /* 0 */ 268, 74, 266, 133, 135, 137, 139, 148, 150, 152, - /* 10 */ 154, 156, 158, 430, 432, 431, 147, 12, 5, 76, - /* 20 */ 146, 148, 150, 152, 154, 156, 158, 867, 1, 568, - /* 30 */ 3, 348, 486, 528, 119, 107, 143, 161, 166, 170, - /* 40 */ 160, 165, 129, 131, 123, 125, 121, 127, 133, 135, - /* 50 */ 137, 139, 148, 150, 152, 154, 156, 158, 846, 72, - /* 60 */ 284, 267, 123, 125, 121, 127, 133, 135, 137, 139, - /* 70 */ 148, 150, 152, 154, 156, 158, 13, 14, 454, 371, - /* 80 */ 336, 350, 353, 373, 379, 384, 72, 147, 825, 76, - /* 90 */ 347, 146, 349, 8, 387, 356, 357, 848, 285, 263, - /* 100 */ 698, 550, 529, 286, 72, 119, 107, 143, 161, 166, - /* 110 */ 170, 160, 165, 129, 131, 123, 125, 121, 127, 133, - /* 120 */ 135, 137, 139, 148, 150, 152, 154, 156, 158, 478, - /* 130 */ 574, 459, 147, 371, 87, 89, 146, 373, 379, 384, - /* 140 */ 152, 154, 156, 158, 460, 86, 538, 333, 387, 462, - /* 150 */ 119, 107, 143, 161, 166, 170, 160, 165, 129, 131, - /* 160 */ 123, 125, 121, 127, 133, 135, 137, 139, 148, 150, - /* 170 */ 152, 154, 156, 158, 650, 9, 369, 147, 493, 465, - /* 180 */ 455, 146, 173, 171, 175, 176, 331, 12, 332, 76, - /* 190 */ 699, 255, 255, 49, 577, 119, 107, 143, 161, 166, - /* 200 */ 170, 160, 165, 129, 131, 123, 125, 121, 127, 133, - /* 210 */ 135, 137, 139, 148, 150, 152, 154, 156, 158, 195, - /* 220 */ 308, 36, 346, 367, 39, 57, 63, 65, 310, 341, - /* 230 */ 12, 31, 32, 436, 41, 343, 435, 147, 268, 371, - /* 240 */ 266, 146, 78, 373, 379, 384, 13, 14, 437, 291, - /* 250 */ 368, 400, 257, 257, 387, 119, 107, 143, 161, 166, - /* 260 */ 170, 160, 165, 129, 131, 123, 125, 121, 127, 133, - /* 270 */ 135, 137, 139, 148, 150, 152, 154, 156, 158, 256, - /* 280 */ 256, 12, 147, 55, 56, 12, 146, 4, 6, 13, - /* 290 */ 14, 483, 24, 278, 439, 49, 336, 802, 510, 267, - /* 300 */ 119, 107, 143, 161, 166, 170, 160, 165, 129, 131, - /* 310 */ 123, 125, 121, 127, 133, 135, 137, 139, 148, 150, - /* 320 */ 152, 154, 156, 158, 72, 390, 39, 57, 63, 65, - /* 330 */ 310, 341, 11, 297, 302, 549, 547, 343, 109, 109, - /* 340 */ 13, 14, 147, 593, 13, 14, 146, 109, 61, 523, - /* 350 */ 736, 147, 367, 12, 62, 146, 540, 27, 178, 178, - /* 360 */ 401, 32, 406, 337, 229, 233, 451, 106, 803, 119, - /* 370 */ 107, 143, 161, 166, 170, 160, 165, 129, 131, 123, - /* 380 */ 125, 121, 127, 133, 135, 137, 139, 148, 150, 152, - /* 390 */ 154, 156, 158, 228, 248, 303, 147, 414, 580, 409, - /* 400 */ 146, 100, 811, 223, 223, 234, 193, 33, 213, 12, - /* 410 */ 366, 358, 13, 14, 119, 107, 143, 161, 166, 170, - /* 420 */ 160, 165, 129, 131, 123, 125, 121, 127, 133, 135, - /* 430 */ 137, 139, 148, 150, 152, 154, 156, 158, 44, 173, - /* 440 */ 258, 175, 176, 801, 498, 109, 173, 45, 175, 176, - /* 450 */ 818, 539, 73, 322, 201, 321, 109, 266, 46, 456, - /* 460 */ 315, 47, 280, 205, 19, 301, 147, 12, 13, 14, - /* 470 */ 146, 48, 585, 177, 209, 396, 106, 199, 72, 507, - /* 480 */ 25, 501, 300, 217, 119, 107, 143, 161, 166, 170, - /* 490 */ 160, 165, 129, 131, 123, 125, 121, 127, 133, 135, - /* 500 */ 137, 139, 148, 150, 152, 154, 156, 158, 671, 98, - /* 510 */ 241, 147, 317, 673, 482, 146, 267, 343, 236, 541, - /* 520 */ 542, 543, 663, 318, 325, 327, 13, 14, 21, 119, - /* 530 */ 107, 143, 161, 166, 170, 160, 165, 129, 131, 123, - /* 540 */ 125, 121, 127, 133, 135, 137, 139, 148, 150, 152, - /* 550 */ 154, 156, 158, 504, 561, 173, 147, 175, 176, 853, - /* 560 */ 146, 35, 345, 851, 173, 315, 175, 176, 340, 15, - /* 570 */ 16, 17, 566, 567, 119, 168, 143, 161, 166, 170, - /* 580 */ 160, 165, 129, 131, 123, 125, 121, 127, 133, 135, - /* 590 */ 137, 139, 148, 150, 152, 154, 156, 158, 253, 263, - /* 600 */ 173, 147, 175, 176, 173, 146, 175, 176, 532, 173, - /* 610 */ 489, 175, 176, 304, 661, 221, 270, 317, 270, 119, - /* 620 */ 231, 143, 161, 166, 170, 160, 165, 129, 131, 123, - /* 630 */ 125, 121, 127, 133, 135, 137, 139, 148, 150, 152, - /* 640 */ 154, 156, 158, 569, 398, 314, 147, 293, 12, 288, - /* 650 */ 146, 397, 566, 567, 220, 173, 221, 175, 176, 173, - /* 660 */ 68, 175, 176, 586, 141, 107, 143, 161, 166, 170, - /* 670 */ 160, 165, 129, 131, 123, 125, 121, 127, 133, 135, - /* 680 */ 137, 139, 148, 150, 152, 154, 156, 158, 283, 579, - /* 690 */ 109, 147, 12, 28, 280, 146, 475, 277, 578, 278, - /* 700 */ 359, 10, 41, 23, 266, 71, 12, 13, 14, 67, - /* 710 */ 492, 143, 161, 166, 170, 160, 165, 129, 131, 123, - /* 720 */ 125, 121, 127, 133, 135, 137, 139, 148, 150, 152, - /* 730 */ 154, 156, 158, 197, 71, 260, 730, 238, 67, 221, - /* 740 */ 730, 251, 38, 179, 270, 860, 276, 336, 340, 601, - /* 750 */ 488, 13, 14, 469, 587, 405, 470, 71, 323, 185, - /* 760 */ 183, 67, 197, 267, 336, 13, 14, 181, 69, 70, - /* 770 */ 114, 109, 179, 115, 108, 271, 376, 449, 324, 332, - /* 780 */ 109, 109, 559, 454, 109, 197, 336, 29, 185, 183, - /* 790 */ 299, 180, 76, 381, 298, 179, 181, 69, 70, 114, - /* 800 */ 188, 178, 115, 108, 492, 266, 116, 117, 187, 72, - /* 810 */ 109, 185, 183, 294, 337, 330, 475, 235, 440, 181, - /* 820 */ 69, 70, 114, 34, 452, 115, 108, 320, 252, 71, - /* 830 */ 178, 337, 336, 67, 478, 116, 117, 187, 804, 26, - /* 840 */ 94, 402, 189, 72, 531, 109, 222, 249, 71, 464, - /* 850 */ 109, 249, 67, 337, 462, 700, 845, 197, 116, 117, - /* 860 */ 187, 448, 109, 92, 267, 182, 237, 179, 109, 172, - /* 870 */ 184, 2, 3, 521, 278, 223, 197, 700, 700, 700, - /* 880 */ 109, 588, 178, 185, 183, 305, 179, 109, 186, 225, - /* 890 */ 280, 181, 69, 70, 114, 72, 37, 115, 108, 337, - /* 900 */ 477, 700, 185, 183, 109, 109, 295, 194, 109, 109, - /* 910 */ 181, 69, 70, 114, 7, 225, 115, 108, 219, 18, - /* 920 */ 20, 22, 404, 109, 196, 473, 292, 223, 214, 216, - /* 930 */ 116, 117, 187, 553, 433, 109, 109, 109, 109, 563, - /* 940 */ 109, 109, 434, 218, 225, 649, 841, 30, 109, 116, - /* 950 */ 117, 187, 535, 109, 459, 282, 230, 232, 307, 533, - /* 960 */ 250, 245, 428, 429, 413, 225, 403, 545, 425, 109, - /* 970 */ 546, 424, 391, 118, 332, 382, 386, 332, 109, 225, - /* 980 */ 109, 377, 50, 332, 840, 109, 109, 592, 40, 385, - /* 990 */ 72, 109, 72, 52, 109, 109, 109, 109, 120, 41, - /* 1000 */ 122, 511, 516, 455, 109, 124, 126, 497, 109, 109, - /* 1010 */ 109, 128, 76, 109, 130, 132, 134, 136, 109, 141, - /* 1020 */ 109, 163, 109, 109, 138, 109, 42, 109, 140, 142, - /* 1030 */ 145, 109, 491, 149, 489, 361, 485, 362, 151, 109, - /* 1040 */ 153, 354, 155, 157, 355, 490, 351, 159, 43, 352, - /* 1050 */ 174, 167, 162, 676, 51, 54, 58, 59, 53, 169, - /* 1060 */ 66, 60, 72, 64, 602, 76, 603, 75, 77, 244, - /* 1070 */ 249, 91, 79, 88, 246, 80, 90, 96, 93, 81, - /* 1080 */ 95, 97, 85, 99, 82, 102, 103, 83, 104, 84, - /* 1090 */ 105, 110, 112, 164, 677, 158, 678, 679, 215, 111, - /* 1100 */ 192, 198, 202, 113, 101, 224, 203, 200, 204, 207, - /* 1110 */ 208, 141, 144, 206, 210, 190, 211, 191, 212, 225, - /* 1120 */ 247, 226, 227, 239, 242, 221, 240, 243, 254, 262, - /* 1130 */ 259, 261, 281, 264, 272, 269, 274, 275, 265, 279, - /* 1140 */ 287, 296, 306, 329, 311, 316, 364, 374, 375, 342, - /* 1150 */ 380, 388, 389, 52, 309, 392, 273, 412, 289, 312, - /* 1160 */ 418, 290, 313, 419, 372, 833, 314, 838, 334, 338, - /* 1170 */ 393, 319, 365, 407, 426, 326, 335, 339, 360, 328, - /* 1180 */ 363, 410, 344, 408, 378, 383, 411, 415, 399, 394, - /* 1190 */ 370, 420, 416, 395, 427, 839, 421, 438, 441, 443, - /* 1200 */ 442, 444, 445, 447, 450, 809, 453, 446, 461, 810, - /* 1210 */ 457, 458, 737, 738, 832, 463, 847, 456, 472, 468, - /* 1220 */ 466, 467, 474, 849, 479, 471, 481, 476, 850, 480, - /* 1230 */ 487, 496, 494, 495, 852, 499, 500, 670, 502, 672, - /* 1240 */ 503, 505, 484, 817, 858, 515, 417, 508, 512, 506, - /* 1250 */ 509, 422, 513, 423, 514, 729, 520, 519, 522, 732, - /* 1260 */ 524, 518, 530, 525, 735, 527, 534, 819, 526, 820, - /* 1270 */ 536, 821, 537, 822, 823, 544, 826, 828, 829, 517, - /* 1280 */ 827, 548, 551, 824, 552, 562, 555, 556, 557, 859, - /* 1290 */ 554, 861, 558, 560, 862, 565, 564, 865, +static const YYACTIONTYPE yy_action[] = { + /* 0 */ 257, 325, 255, 138, 140, 142, 144, 146, 148, 150, + /* 10 */ 152, 154, 156, 345, 87, 88, 159, 12, 311, 310, + /* 20 */ 158, 146, 148, 150, 152, 154, 156, 813, 150, 152, + /* 30 */ 154, 156, 430, 50, 124, 112, 160, 169, 174, 179, + /* 40 */ 168, 173, 134, 136, 128, 130, 126, 132, 138, 140, + /* 50 */ 142, 144, 146, 148, 150, 152, 154, 156, 114, 439, + /* 60 */ 44, 256, 39, 58, 64, 66, 299, 330, 612, 293, + /* 70 */ 351, 223, 92, 332, 326, 159, 13, 14, 353, 158, + /* 80 */ 188, 355, 361, 366, 266, 12, 267, 259, 342, 87, + /* 90 */ 88, 12, 369, 124, 112, 160, 169, 174, 179, 168, + /* 100 */ 173, 134, 136, 128, 130, 126, 132, 138, 140, 142, + /* 110 */ 144, 146, 148, 150, 152, 154, 156, 297, 292, 349, + /* 120 */ 114, 183, 282, 185, 186, 403, 12, 31, 32, 225, + /* 130 */ 41, 255, 353, 269, 159, 355, 361, 366, 158, 166, + /* 140 */ 175, 180, 188, 286, 13, 14, 369, 92, 350, 382, + /* 150 */ 13, 14, 124, 112, 160, 169, 174, 179, 168, 173, + /* 160 */ 134, 136, 128, 130, 126, 132, 138, 140, 142, 144, + /* 170 */ 146, 148, 150, 152, 154, 156, 98, 96, 12, 159, + /* 180 */ 237, 98, 96, 158, 336, 13, 14, 337, 338, 265, + /* 190 */ 256, 225, 272, 807, 339, 515, 12, 124, 112, 160, + /* 200 */ 169, 174, 179, 168, 173, 134, 136, 128, 130, 126, + /* 210 */ 132, 138, 140, 142, 144, 146, 148, 150, 152, 154, + /* 220 */ 156, 128, 130, 126, 132, 138, 140, 142, 144, 146, + /* 230 */ 148, 150, 152, 154, 156, 5, 353, 13, 14, 355, + /* 240 */ 361, 366, 100, 87, 88, 92, 787, 697, 159, 349, + /* 250 */ 369, 815, 158, 542, 27, 13, 14, 383, 32, 518, + /* 260 */ 273, 546, 69, 247, 10, 765, 124, 112, 160, 169, + /* 270 */ 174, 179, 168, 173, 134, 136, 128, 130, 126, 132, + /* 280 */ 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, + /* 290 */ 73, 658, 12, 159, 269, 4, 6, 158, 56, 57, + /* 300 */ 24, 92, 274, 252, 513, 181, 488, 275, 407, 12, + /* 310 */ 8, 124, 112, 160, 169, 174, 179, 168, 173, 134, + /* 320 */ 136, 128, 130, 126, 132, 138, 140, 142, 144, 146, + /* 330 */ 148, 150, 152, 154, 156, 219, 73, 47, 547, 187, + /* 340 */ 763, 183, 514, 185, 186, 183, 48, 185, 186, 569, + /* 350 */ 464, 13, 14, 114, 114, 12, 114, 49, 516, 517, + /* 360 */ 45, 499, 288, 159, 545, 631, 287, 158, 13, 14, + /* 370 */ 46, 183, 480, 185, 186, 111, 474, 249, 474, 808, + /* 380 */ 205, 124, 112, 160, 169, 174, 179, 168, 173, 134, + /* 390 */ 136, 128, 130, 126, 132, 138, 140, 142, 144, 146, + /* 400 */ 148, 150, 152, 154, 156, 9, 780, 486, 159, 482, + /* 410 */ 103, 230, 158, 457, 13, 14, 92, 11, 470, 183, + /* 420 */ 506, 185, 186, 12, 50, 561, 124, 112, 160, 169, + /* 430 */ 174, 179, 168, 173, 134, 136, 128, 130, 126, 132, + /* 440 */ 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, + /* 450 */ 291, 36, 335, 39, 58, 64, 66, 299, 330, 183, + /* 460 */ 304, 185, 186, 537, 332, 304, 633, 159, 91, 87, + /* 470 */ 88, 158, 534, 535, 497, 810, 166, 175, 180, 368, + /* 480 */ 378, 484, 13, 14, 548, 124, 112, 160, 169, 174, + /* 490 */ 179, 168, 173, 134, 136, 128, 130, 126, 132, 138, + /* 500 */ 140, 142, 144, 146, 148, 150, 152, 154, 156, 441, + /* 510 */ 306, 659, 159, 244, 419, 306, 158, 418, 19, 183, + /* 520 */ 332, 185, 186, 623, 166, 175, 180, 92, 289, 420, + /* 530 */ 124, 112, 160, 169, 174, 179, 168, 173, 134, 136, + /* 540 */ 128, 130, 126, 132, 138, 140, 142, 144, 146, 148, + /* 550 */ 150, 152, 154, 156, 475, 447, 437, 159, 244, 438, + /* 560 */ 183, 158, 185, 186, 660, 77, 830, 1, 536, 3, + /* 570 */ 413, 415, 414, 553, 246, 124, 177, 160, 169, 174, + /* 580 */ 179, 168, 173, 134, 136, 128, 130, 126, 132, 138, + /* 590 */ 140, 142, 144, 146, 148, 150, 152, 154, 156, 245, + /* 600 */ 764, 691, 159, 89, 87, 88, 158, 269, 183, 41, + /* 610 */ 185, 186, 15, 16, 17, 388, 21, 452, 823, 246, + /* 620 */ 625, 112, 160, 169, 174, 179, 168, 173, 134, 136, + /* 630 */ 128, 130, 126, 132, 138, 140, 142, 144, 146, 148, + /* 640 */ 150, 152, 154, 156, 245, 77, 257, 159, 255, 227, + /* 650 */ 396, 158, 391, 380, 303, 527, 554, 422, 504, 325, + /* 660 */ 379, 72, 92, 417, 503, 68, 23, 160, 169, 174, + /* 670 */ 179, 168, 173, 134, 136, 128, 130, 126, 132, 138, + /* 680 */ 140, 142, 144, 146, 148, 150, 152, 154, 156, 207, + /* 690 */ 372, 72, 114, 77, 73, 68, 114, 387, 33, 189, + /* 700 */ 114, 348, 340, 182, 436, 402, 468, 256, 162, 203, + /* 710 */ 238, 215, 161, 555, 111, 195, 193, 294, 188, 207, + /* 720 */ 114, 660, 188, 191, 70, 71, 114, 433, 113, 189, + /* 730 */ 164, 165, 326, 73, 73, 227, 255, 307, 314, 316, + /* 740 */ 556, 501, 198, 436, 691, 195, 193, 72, 131, 312, + /* 750 */ 105, 68, 325, 191, 70, 71, 221, 163, 113, 460, + /* 760 */ 119, 120, 121, 122, 197, 773, 423, 225, 72, 313, + /* 770 */ 434, 224, 68, 73, 442, 207, 77, 47, 467, 444, + /* 780 */ 341, 325, 114, 363, 255, 189, 48, 25, 199, 74, + /* 790 */ 119, 120, 121, 122, 197, 256, 207, 49, 460, 114, + /* 800 */ 209, 195, 193, 283, 290, 114, 189, 28, 73, 191, + /* 810 */ 70, 71, 358, 446, 113, 457, 309, 114, 444, 73, + /* 820 */ 325, 194, 195, 193, 72, 326, 259, 133, 68, 51, + /* 830 */ 191, 70, 71, 529, 114, 113, 62, 35, 334, 206, + /* 840 */ 53, 29, 63, 256, 329, 259, 119, 120, 121, 122, + /* 850 */ 197, 319, 207, 238, 326, 222, 147, 223, 7, 114, + /* 860 */ 114, 277, 189, 18, 20, 22, 386, 119, 120, 121, + /* 870 */ 122, 197, 766, 114, 98, 96, 451, 521, 195, 193, + /* 880 */ 260, 135, 137, 531, 534, 535, 191, 70, 71, 114, + /* 890 */ 114, 113, 114, 326, 114, 204, 510, 34, 441, 114, + /* 900 */ 114, 267, 507, 508, 471, 402, 114, 114, 114, 114, + /* 910 */ 114, 139, 141, 114, 296, 114, 143, 114, 465, 560, + /* 920 */ 267, 176, 145, 119, 120, 121, 122, 197, 455, 196, + /* 930 */ 459, 149, 151, 114, 284, 178, 114, 220, 114, 153, + /* 940 */ 114, 487, 114, 489, 493, 437, 359, 416, 321, 479, + /* 950 */ 114, 402, 114, 114, 77, 155, 281, 473, 157, 471, + /* 960 */ 218, 611, 192, 30, 216, 402, 94, 95, 343, 114, + /* 970 */ 344, 803, 271, 395, 472, 239, 402, 114, 402, 242, + /* 980 */ 252, 411, 412, 114, 255, 99, 385, 481, 114, 43, + /* 990 */ 44, 234, 171, 184, 325, 802, 636, 114, 373, 408, + /* 1000 */ 321, 404, 114, 73, 402, 123, 114, 364, 90, 321, + /* 1010 */ 167, 320, 491, 321, 483, 240, 73, 2, 3, 190, + /* 1020 */ 26, 170, 384, 40, 367, 402, 114, 402, 125, 114, + /* 1030 */ 38, 79, 431, 37, 321, 41, 329, 42, 280, 52, + /* 1040 */ 428, 55, 59, 256, 54, 60, 67, 75, 127, 77, + /* 1050 */ 61, 129, 65, 570, 76, 571, 235, 238, 84, 78, + /* 1060 */ 101, 495, 80, 485, 81, 233, 102, 322, 86, 104, + /* 1070 */ 93, 97, 108, 107, 82, 109, 110, 115, 117, 83, + /* 1080 */ 172, 156, 85, 637, 638, 217, 639, 116, 202, 118, + /* 1090 */ 208, 211, 226, 210, 212, 213, 106, 214, 227, 236, + /* 1100 */ 241, 228, 231, 232, 229, 223, 243, 200, 251, 248, + /* 1110 */ 201, 250, 253, 258, 254, 270, 262, 261, 263, 264, + /* 1120 */ 268, 276, 278, 285, 295, 279, 298, 318, 301, 303, + /* 1130 */ 333, 300, 305, 323, 327, 346, 356, 357, 362, 370, + /* 1140 */ 371, 374, 53, 302, 354, 394, 331, 324, 308, 315, + /* 1150 */ 375, 401, 317, 347, 328, 389, 390, 392, 393, 409, + /* 1160 */ 397, 795, 398, 410, 421, 424, 360, 365, 800, 425, + /* 1170 */ 801, 381, 352, 377, 376, 400, 426, 427, 429, 771, + /* 1180 */ 772, 698, 399, 435, 432, 699, 443, 794, 445, 438, + /* 1190 */ 809, 449, 453, 450, 454, 440, 811, 458, 448, 462, + /* 1200 */ 461, 812, 463, 469, 477, 476, 814, 630, 456, 632, + /* 1210 */ 478, 779, 821, 490, 690, 492, 498, 494, 496, 693, + /* 1220 */ 696, 500, 509, 505, 781, 511, 782, 512, 783, 784, + /* 1230 */ 466, 785, 520, 502, 786, 519, 405, 523, 530, 525, + /* 1240 */ 524, 822, 406, 528, 824, 825, 533, 828, 518, 518, + /* 1250 */ 518, 518, 518, 518, 522, 518, 518, 518, 518, 518, + /* 1260 */ 526, 532, }; -static YYCODETYPE yy_lookahead[] = { - /* 0 */ 24, 173, 26, 72, 73, 74, 75, 76, 77, 78, - /* 10 */ 79, 80, 81, 98, 99, 100, 40, 26, 9, 109, - /* 20 */ 44, 76, 77, 78, 79, 80, 81, 131, 132, 133, - /* 30 */ 134, 26, 122, 146, 58, 59, 60, 61, 62, 63, +static const YYCODETYPE yy_lookahead[] = { + /* 0 */ 24, 139, 26, 72, 73, 74, 75, 76, 77, 78, + /* 10 */ 79, 80, 81, 154, 155, 156, 40, 26, 88, 89, + /* 20 */ 44, 76, 77, 78, 79, 80, 81, 9, 78, 79, + /* 30 */ 80, 81, 170, 60, 58, 59, 60, 61, 62, 63, /* 40 */ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - /* 50 */ 74, 75, 76, 77, 78, 79, 80, 81, 11, 172, - /* 60 */ 146, 85, 68, 69, 70, 71, 72, 73, 74, 75, - /* 70 */ 76, 77, 78, 79, 80, 81, 85, 86, 146, 88, - /* 80 */ 139, 76, 77, 92, 93, 94, 172, 40, 9, 109, - /* 90 */ 85, 44, 87, 137, 103, 90, 91, 17, 184, 185, - /* 100 */ 23, 22, 122, 189, 172, 58, 59, 60, 61, 62, - /* 110 */ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - /* 120 */ 73, 74, 75, 76, 77, 78, 79, 80, 81, 197, - /* 130 */ 9, 51, 40, 88, 76, 77, 44, 92, 93, 94, - /* 140 */ 78, 79, 80, 81, 212, 87, 67, 206, 103, 217, - /* 150 */ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - /* 160 */ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - /* 170 */ 78, 79, 80, 81, 23, 138, 25, 40, 98, 99, - /* 180 */ 100, 44, 105, 22, 107, 108, 23, 26, 25, 109, - /* 190 */ 23, 25, 25, 60, 9, 58, 59, 60, 61, 62, - /* 200 */ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - /* 210 */ 73, 74, 75, 76, 77, 78, 79, 80, 81, 127, - /* 220 */ 23, 88, 89, 139, 91, 92, 93, 94, 95, 96, - /* 230 */ 26, 147, 148, 28, 97, 102, 31, 40, 24, 88, - /* 240 */ 26, 44, 175, 92, 93, 94, 85, 86, 43, 182, - /* 250 */ 166, 167, 86, 86, 103, 58, 59, 60, 61, 62, - /* 260 */ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - /* 270 */ 73, 74, 75, 76, 77, 78, 79, 80, 81, 113, - /* 280 */ 113, 26, 40, 13, 14, 26, 44, 135, 136, 85, - /* 290 */ 86, 23, 140, 25, 21, 60, 139, 17, 146, 85, - /* 300 */ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - /* 310 */ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - /* 320 */ 78, 79, 80, 81, 172, 168, 91, 92, 93, 94, - /* 330 */ 95, 96, 139, 78, 23, 76, 77, 102, 139, 139, - /* 340 */ 85, 86, 40, 9, 85, 86, 44, 139, 29, 197, - /* 350 */ 9, 40, 139, 26, 35, 44, 97, 144, 159, 159, - /* 360 */ 147, 148, 20, 206, 62, 63, 93, 159, 126, 58, - /* 370 */ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - /* 380 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - /* 390 */ 79, 80, 81, 91, 195, 195, 40, 55, 9, 57, - /* 400 */ 44, 193, 129, 204, 204, 22, 126, 149, 128, 26, - /* 410 */ 152, 153, 85, 86, 58, 59, 60, 61, 62, 63, - /* 420 */ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - /* 430 */ 74, 75, 76, 77, 78, 79, 80, 81, 18, 105, - /* 440 */ 113, 107, 108, 17, 20, 139, 105, 27, 107, 108, - /* 450 */ 9, 139, 146, 89, 18, 91, 139, 26, 38, 58, - /* 460 */ 45, 41, 139, 27, 138, 159, 40, 26, 85, 86, - /* 470 */ 44, 51, 9, 23, 38, 60, 159, 41, 172, 55, - /* 480 */ 141, 57, 23, 127, 58, 59, 60, 61, 62, 63, - /* 490 */ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - /* 500 */ 74, 75, 76, 77, 78, 79, 80, 81, 9, 192, - /* 510 */ 193, 40, 97, 9, 191, 44, 85, 102, 23, 207, - /* 520 */ 208, 209, 121, 98, 99, 100, 85, 86, 138, 58, - /* 530 */ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - /* 540 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - /* 550 */ 79, 80, 81, 129, 123, 105, 40, 107, 108, 9, - /* 560 */ 44, 155, 156, 9, 105, 45, 107, 108, 162, 13, - /* 570 */ 14, 15, 9, 10, 58, 59, 60, 61, 62, 63, - /* 580 */ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - /* 590 */ 74, 75, 76, 77, 78, 79, 80, 81, 184, 185, - /* 600 */ 105, 40, 107, 108, 105, 44, 107, 108, 23, 105, - /* 610 */ 25, 107, 108, 23, 9, 25, 152, 97, 152, 58, - /* 620 */ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - /* 630 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - /* 640 */ 79, 80, 81, 0, 162, 163, 40, 183, 26, 183, - /* 650 */ 44, 169, 9, 10, 23, 105, 25, 107, 108, 105, - /* 660 */ 22, 107, 108, 9, 200, 59, 60, 61, 62, 63, - /* 670 */ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - /* 680 */ 74, 75, 76, 77, 78, 79, 80, 81, 22, 9, - /* 690 */ 139, 40, 26, 145, 139, 44, 139, 23, 9, 25, - /* 700 */ 22, 12, 97, 138, 26, 22, 26, 85, 86, 26, - /* 710 */ 159, 60, 61, 62, 63, 64, 65, 66, 67, 68, - /* 720 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - /* 730 */ 79, 80, 81, 50, 22, 113, 9, 23, 26, 25, - /* 740 */ 9, 25, 156, 60, 152, 9, 191, 139, 162, 111, - /* 750 */ 199, 85, 86, 196, 9, 142, 25, 22, 32, 76, - /* 760 */ 77, 26, 50, 85, 139, 85, 86, 84, 85, 86, - /* 770 */ 87, 139, 60, 90, 91, 183, 168, 23, 52, 25, - /* 780 */ 139, 139, 46, 146, 139, 50, 139, 23, 76, 77, - /* 790 */ 106, 159, 109, 168, 110, 60, 84, 85, 86, 87, - /* 800 */ 159, 159, 90, 91, 159, 26, 123, 124, 125, 172, - /* 810 */ 139, 76, 77, 78, 206, 168, 139, 146, 205, 84, - /* 820 */ 85, 86, 87, 150, 211, 90, 91, 101, 112, 22, - /* 830 */ 159, 206, 139, 26, 197, 123, 124, 125, 126, 22, - /* 840 */ 25, 24, 201, 172, 199, 139, 204, 120, 22, 212, - /* 850 */ 139, 120, 26, 206, 217, 22, 11, 50, 123, 124, - /* 860 */ 125, 168, 139, 48, 85, 159, 195, 60, 139, 146, - /* 870 */ 159, 133, 134, 196, 25, 204, 50, 9, 24, 101, - /* 880 */ 139, 9, 159, 76, 77, 78, 60, 139, 159, 111, - /* 890 */ 139, 84, 85, 86, 87, 172, 139, 90, 91, 206, - /* 900 */ 159, 97, 76, 77, 139, 139, 139, 159, 139, 139, - /* 910 */ 84, 85, 86, 87, 11, 111, 90, 91, 195, 16, - /* 920 */ 17, 18, 19, 139, 159, 159, 159, 204, 159, 159, - /* 930 */ 123, 124, 125, 30, 47, 139, 139, 139, 139, 36, - /* 940 */ 139, 139, 191, 159, 111, 23, 97, 25, 139, 123, - /* 950 */ 124, 125, 49, 139, 51, 159, 159, 159, 159, 56, - /* 960 */ 159, 159, 53, 54, 146, 111, 146, 87, 159, 139, - /* 970 */ 90, 126, 23, 159, 25, 23, 157, 25, 139, 111, - /* 980 */ 139, 23, 91, 25, 97, 139, 139, 9, 157, 159, - /* 990 */ 172, 139, 172, 102, 139, 139, 139, 139, 159, 97, - /* 1000 */ 159, 98, 99, 100, 139, 159, 159, 104, 139, 139, - /* 1010 */ 139, 159, 109, 139, 159, 159, 159, 159, 139, 200, - /* 1020 */ 139, 60, 139, 139, 159, 139, 33, 139, 159, 159, - /* 1030 */ 159, 139, 23, 159, 25, 23, 146, 25, 159, 139, - /* 1040 */ 159, 87, 159, 159, 90, 159, 87, 159, 171, 90, - /* 1050 */ 106, 159, 91, 109, 157, 42, 46, 158, 165, 159, - /* 1060 */ 22, 157, 172, 157, 111, 109, 111, 172, 174, 118, - /* 1070 */ 120, 154, 176, 87, 117, 177, 87, 115, 154, 178, - /* 1080 */ 154, 116, 119, 25, 179, 158, 96, 180, 26, 181, - /* 1090 */ 151, 111, 111, 91, 109, 81, 109, 109, 126, 139, - /* 1100 */ 17, 22, 25, 139, 194, 139, 139, 23, 23, 139, - /* 1110 */ 23, 200, 200, 25, 25, 202, 139, 203, 23, 111, - /* 1120 */ 116, 139, 143, 139, 194, 25, 143, 158, 186, 113, - /* 1130 */ 139, 139, 97, 139, 187, 139, 114, 22, 143, 139, - /* 1140 */ 23, 111, 23, 22, 139, 139, 23, 46, 22, 151, - /* 1150 */ 22, 46, 22, 102, 157, 95, 188, 24, 187, 160, - /* 1160 */ 214, 188, 161, 97, 139, 11, 163, 97, 194, 194, - /* 1170 */ 139, 164, 152, 139, 39, 164, 158, 158, 154, 164, - /* 1180 */ 154, 139, 165, 143, 157, 157, 143, 139, 167, 160, - /* 1190 */ 167, 139, 143, 161, 37, 97, 143, 47, 129, 143, - /* 1200 */ 139, 97, 139, 22, 157, 9, 11, 143, 17, 129, - /* 1210 */ 171, 170, 121, 121, 9, 9, 17, 58, 67, 101, - /* 1220 */ 170, 139, 177, 9, 121, 139, 22, 67, 9, 139, - /* 1230 */ 22, 177, 112, 139, 9, 139, 143, 9, 139, 9, - /* 1240 */ 143, 139, 198, 9, 9, 177, 213, 139, 112, 143, - /* 1250 */ 143, 215, 139, 216, 143, 9, 101, 143, 177, 9, - /* 1260 */ 121, 139, 22, 139, 9, 198, 139, 9, 143, 9, - /* 1270 */ 139, 9, 143, 9, 9, 210, 9, 9, 9, 170, - /* 1280 */ 9, 210, 139, 9, 23, 34, 152, 24, 139, 9, - /* 1290 */ 218, 9, 219, 152, 9, 139, 218, 9, + /* 50 */ 74, 75, 76, 77, 78, 79, 80, 81, 139, 173, + /* 60 */ 174, 85, 89, 90, 91, 92, 93, 94, 23, 23, + /* 70 */ 25, 25, 213, 100, 212, 40, 85, 86, 87, 44, + /* 80 */ 161, 90, 91, 92, 23, 26, 25, 152, 154, 155, + /* 90 */ 156, 26, 101, 58, 59, 60, 61, 62, 63, 64, + /* 100 */ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + /* 110 */ 75, 76, 77, 78, 79, 80, 81, 23, 199, 139, + /* 120 */ 139, 103, 187, 105, 106, 143, 26, 147, 148, 210, + /* 130 */ 95, 26, 87, 139, 40, 90, 91, 92, 44, 204, + /* 140 */ 205, 206, 161, 78, 85, 86, 101, 213, 168, 169, + /* 150 */ 85, 86, 58, 59, 60, 61, 62, 63, 64, 65, + /* 160 */ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + /* 170 */ 76, 77, 78, 79, 80, 81, 76, 77, 26, 40, + /* 180 */ 199, 76, 77, 44, 152, 85, 86, 155, 156, 195, + /* 190 */ 85, 210, 22, 11, 89, 95, 26, 58, 59, 60, + /* 200 */ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + /* 210 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + /* 220 */ 81, 68, 69, 70, 71, 72, 73, 74, 75, 76, + /* 230 */ 77, 78, 79, 80, 81, 9, 87, 85, 86, 90, + /* 240 */ 91, 92, 154, 155, 156, 213, 9, 9, 40, 139, + /* 250 */ 101, 9, 44, 9, 144, 85, 86, 147, 148, 22, + /* 260 */ 146, 9, 22, 111, 12, 126, 58, 59, 60, 61, + /* 270 */ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + /* 280 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + /* 290 */ 176, 23, 26, 40, 139, 135, 136, 44, 13, 14, + /* 300 */ 140, 213, 188, 189, 67, 22, 146, 193, 126, 26, + /* 310 */ 137, 58, 59, 60, 61, 62, 63, 64, 65, 66, + /* 320 */ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + /* 330 */ 77, 78, 79, 80, 81, 127, 176, 18, 9, 23, + /* 340 */ 17, 103, 139, 105, 106, 103, 27, 105, 106, 109, + /* 350 */ 195, 85, 86, 139, 139, 26, 139, 38, 155, 156, + /* 360 */ 41, 201, 104, 40, 9, 9, 108, 44, 85, 86, + /* 370 */ 51, 103, 20, 105, 106, 161, 161, 111, 161, 11, + /* 380 */ 127, 58, 59, 60, 61, 62, 63, 64, 65, 66, + /* 390 */ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + /* 400 */ 77, 78, 79, 80, 81, 138, 9, 55, 40, 57, + /* 410 */ 196, 197, 44, 139, 85, 86, 213, 139, 203, 103, + /* 420 */ 203, 105, 106, 26, 60, 9, 58, 59, 60, 61, + /* 430 */ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + /* 440 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + /* 450 */ 23, 87, 88, 89, 90, 91, 92, 93, 94, 103, + /* 460 */ 45, 105, 106, 0, 100, 45, 9, 40, 154, 155, + /* 470 */ 156, 44, 9, 10, 200, 17, 204, 205, 206, 159, + /* 480 */ 60, 129, 85, 86, 9, 58, 59, 60, 61, 62, + /* 490 */ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + /* 500 */ 73, 74, 75, 76, 77, 78, 79, 80, 81, 51, + /* 510 */ 95, 23, 40, 25, 28, 95, 44, 31, 138, 103, + /* 520 */ 100, 105, 106, 9, 204, 205, 206, 213, 23, 43, + /* 530 */ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + /* 540 */ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + /* 550 */ 78, 79, 80, 81, 96, 97, 98, 40, 25, 58, + /* 560 */ 103, 44, 105, 106, 24, 107, 131, 132, 133, 134, + /* 570 */ 96, 97, 98, 9, 86, 58, 59, 60, 61, 62, + /* 580 */ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + /* 590 */ 73, 74, 75, 76, 77, 78, 79, 80, 81, 111, + /* 600 */ 17, 9, 40, 154, 155, 156, 44, 139, 103, 95, + /* 610 */ 105, 106, 13, 14, 15, 20, 138, 25, 9, 86, + /* 620 */ 119, 59, 60, 61, 62, 63, 64, 65, 66, 67, + /* 630 */ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + /* 640 */ 78, 79, 80, 81, 111, 107, 24, 40, 26, 109, + /* 650 */ 55, 44, 57, 164, 165, 46, 9, 21, 120, 139, + /* 660 */ 171, 22, 213, 195, 146, 26, 138, 60, 61, 62, + /* 670 */ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + /* 680 */ 73, 74, 75, 76, 77, 78, 79, 80, 81, 50, + /* 690 */ 170, 22, 139, 107, 176, 26, 139, 142, 149, 60, + /* 700 */ 139, 152, 153, 146, 146, 139, 120, 85, 40, 126, + /* 710 */ 118, 128, 44, 9, 161, 76, 77, 78, 161, 50, + /* 720 */ 139, 95, 161, 84, 85, 86, 139, 91, 89, 60, + /* 730 */ 62, 63, 212, 176, 176, 109, 26, 96, 97, 98, + /* 740 */ 9, 175, 161, 146, 9, 76, 77, 22, 161, 32, + /* 750 */ 197, 26, 139, 84, 85, 86, 199, 89, 89, 201, + /* 760 */ 121, 122, 123, 124, 125, 129, 211, 210, 22, 52, + /* 770 */ 215, 210, 26, 176, 216, 50, 107, 18, 146, 221, + /* 780 */ 22, 139, 139, 170, 26, 60, 27, 141, 207, 146, + /* 790 */ 121, 122, 123, 124, 125, 85, 50, 38, 201, 139, + /* 800 */ 41, 76, 77, 78, 161, 139, 60, 145, 176, 84, + /* 810 */ 85, 86, 170, 216, 89, 139, 99, 139, 221, 176, + /* 820 */ 139, 161, 76, 77, 22, 212, 152, 161, 26, 89, + /* 830 */ 84, 85, 86, 123, 139, 89, 29, 157, 158, 161, + /* 840 */ 100, 23, 35, 85, 164, 152, 121, 122, 123, 124, + /* 850 */ 125, 170, 50, 118, 212, 23, 161, 25, 11, 139, + /* 860 */ 139, 187, 60, 16, 17, 18, 19, 121, 122, 123, + /* 870 */ 124, 125, 126, 139, 76, 77, 200, 30, 76, 77, + /* 880 */ 187, 161, 161, 36, 9, 10, 84, 85, 86, 139, + /* 890 */ 139, 89, 139, 212, 139, 161, 49, 150, 51, 139, + /* 900 */ 139, 25, 23, 56, 25, 139, 139, 139, 139, 139, + /* 910 */ 139, 161, 161, 139, 161, 139, 161, 139, 23, 9, + /* 920 */ 25, 161, 161, 121, 122, 123, 124, 125, 161, 161, + /* 930 */ 161, 161, 161, 139, 139, 161, 139, 161, 139, 161, + /* 940 */ 139, 175, 139, 96, 97, 98, 23, 47, 25, 102, + /* 950 */ 139, 139, 139, 139, 107, 161, 161, 23, 161, 25, + /* 960 */ 161, 23, 161, 25, 161, 139, 121, 122, 23, 139, + /* 970 */ 25, 95, 161, 146, 161, 161, 139, 139, 139, 188, + /* 980 */ 189, 53, 54, 139, 26, 25, 146, 175, 139, 173, + /* 990 */ 174, 161, 60, 104, 139, 95, 107, 139, 23, 161, + /* 1000 */ 25, 175, 139, 176, 139, 161, 139, 23, 48, 25, + /* 1010 */ 161, 23, 175, 25, 175, 25, 176, 133, 134, 161, + /* 1020 */ 22, 89, 24, 159, 161, 139, 139, 139, 161, 139, + /* 1030 */ 158, 179, 23, 139, 25, 95, 164, 33, 186, 159, + /* 1040 */ 175, 42, 46, 85, 167, 160, 22, 177, 161, 107, + /* 1050 */ 159, 161, 159, 109, 176, 109, 115, 118, 184, 178, + /* 1060 */ 113, 175, 180, 175, 181, 116, 114, 212, 117, 25, + /* 1070 */ 214, 214, 94, 160, 182, 26, 151, 109, 109, 183, + /* 1080 */ 89, 81, 185, 107, 107, 126, 107, 139, 17, 139, + /* 1090 */ 22, 174, 139, 23, 25, 139, 198, 23, 109, 114, + /* 1100 */ 110, 139, 198, 160, 143, 25, 190, 208, 111, 139, + /* 1110 */ 209, 139, 139, 139, 143, 95, 192, 191, 112, 22, + /* 1120 */ 139, 23, 191, 109, 23, 192, 159, 22, 162, 165, + /* 1130 */ 167, 139, 139, 198, 198, 23, 46, 22, 22, 46, + /* 1140 */ 22, 93, 100, 163, 139, 24, 151, 160, 166, 166, + /* 1150 */ 139, 95, 166, 152, 160, 139, 143, 139, 143, 39, + /* 1160 */ 139, 11, 143, 37, 47, 129, 159, 159, 95, 139, + /* 1170 */ 95, 169, 169, 163, 162, 218, 143, 95, 22, 9, + /* 1180 */ 129, 119, 217, 11, 159, 119, 17, 9, 9, 58, + /* 1190 */ 17, 139, 139, 99, 67, 172, 9, 67, 172, 139, + /* 1200 */ 119, 9, 22, 22, 139, 110, 9, 9, 181, 9, + /* 1210 */ 181, 9, 9, 110, 9, 181, 181, 172, 99, 9, + /* 1220 */ 9, 119, 139, 22, 9, 139, 9, 143, 9, 9, + /* 1230 */ 202, 9, 23, 202, 9, 139, 219, 152, 34, 139, + /* 1240 */ 24, 9, 220, 152, 9, 9, 139, 9, 224, 224, + /* 1250 */ 224, 224, 224, 224, 222, 224, 224, 224, 224, 224, + /* 1260 */ 223, 222, }; -#define YY_SHIFT_USE_DFLT (-91) -static short yy_shift_ofst[] = { - /* 0 */ 563, 643, -91, 903, 9, -91, 121, 556, 689, 185, - /* 10 */ 680, 389, -91, -91, -91, -91, -91, -91, 689, 463, - /* 20 */ 689, 654, 689, 745, 817, 872, 204, 922, 764, 978, - /* 30 */ -9, -91, 779, -91, 133, -91, 204, 235, -91, 902, - /* 40 */ -91, 993, 420, -91, -91, -91, -91, -91, -91, 891, - /* 50 */ 902, -91, 1013, -91, 270, -91, -91, 1010, 319, 902, - /* 60 */ -91, -91, -91, 902, -91, 1038, 826, 638, 807, 953, - /* 70 */ 955, 683, -91, 459, 956, -91, 684, -91, 716, 950, - /* 80 */ 957, 951, 962, 963, -91, 58, -91, 986, -91, 989, - /* 90 */ -91, 815, 58, -91, 58, -91, 965, 826, 1058, 826, - /* 100 */ 990, 319, -91, 1062, -91, -91, 471, 826, -91, 980, - /* 110 */ 204, 981, 204, -91, -91, -91, -91, -91, 651, 826, - /* 120 */ 606, 826, -69, 826, -69, 826, -69, 826, -69, 826, - /* 130 */ -6, 826, -6, 826, -55, 826, -55, 826, -55, 826, - /* 140 */ -55, 826, -6, 302, 826, -6, -91, -91, 826, 62, - /* 150 */ 826, 62, 826, 1014, 826, 1014, 826, 1014, 826, -91, - /* 160 */ -91, 961, -91, 1002, -91, -91, 826, 516, 826, -6, - /* 170 */ 161, 683, 450, 944, 985, 987, 988, -91, 471, 826, - /* 180 */ 651, 826, -91, 826, -91, 826, -91, 712, 242, 972, - /* 190 */ 280, 1083, -91, 826, 92, 826, 471, 1079, 436, 1084, - /* 200 */ -91, 1077, 204, 1085, -91, 1088, 204, 1087, -91, 1089, - /* 210 */ 204, 1095, -91, 826, 426, 826, 356, 826, 471, 631, - /* 220 */ -91, 826, -91, -91, 1008, 204, -91, -91, -91, 826, - /* 230 */ 561, 826, 651, 383, 683, 495, -91, 714, -91, 1008, - /* 240 */ -91, 990, 319, -91, 826, 471, 1004, 826, 1100, 826, - /* 250 */ 471, -91, -91, 166, -91, -91, -91, 327, -91, 622, - /* 260 */ -91, 1016, -91, 666, 1008, 214, -91, -91, 204, -91, - /* 270 */ -91, 1035, 1022, -91, 1115, 204, 674, -91, 204, -91, - /* 280 */ -91, 826, 471, 956, 77, 167, 1117, 214, 1035, 1022, - /* 290 */ -91, 735, -24, -91, -91, 1030, 255, -91, -91, -91, - /* 300 */ -91, 311, -91, 590, -91, 1119, -91, 197, 902, -91, - /* 310 */ 204, 1121, -91, 520, -91, 204, -91, 425, 726, -91, - /* 320 */ 364, -91, -91, -91, -91, 726, -91, 726, -91, 204, - /* 330 */ 163, -91, 204, 990, 319, -91, -91, 990, 319, -91, - /* 340 */ -91, 1062, -91, 1013, -91, -91, 5, -91, -91, -91, - /* 350 */ 959, -91, -91, 954, -91, -91, -91, -91, 678, 58, - /* 360 */ 1012, -91, 58, 1123, -91, -91, -91, -91, 151, 45, - /* 370 */ -91, 204, -91, 1101, 1126, 204, 958, 902, -91, 1128, - /* 380 */ 204, 952, 902, -91, 826, 137, -91, 1105, 1130, 204, - /* 390 */ 949, 1060, 204, 1121, -91, 415, 1051, -91, -91, -91, - /* 400 */ -91, -91, 956, 334, 273, 342, 204, 1008, -91, 204, - /* 410 */ 854, 1133, 956, 499, 204, 1008, 205, -85, 1066, 204, - /* 420 */ 1008, 1135, 845, 1154, 826, 47, 1157, 909, -91, -91, - /* 430 */ 1070, 1098, 887, 204, 849, -91, -91, 1150, -91, -91, - /* 440 */ 1069, 204, 804, 1104, 204, 833, 1181, 204, 754, 605, - /* 450 */ 1196, 1080, 1195, 80, 550, 401, 420, -91, 1091, 1092, - /* 460 */ 1191, 1205, 1206, 80, 1199, 1159, 204, 1118, 204, 731, - /* 470 */ 204, 1151, 826, 471, 1214, 1160, 826, 471, 1103, 204, - /* 480 */ 1204, 204, 268, -91, -90, 554, 1208, 826, 1009, 826, - /* 490 */ 471, 1219, 471, 1120, 204, 727, 1225, 424, 204, 868, - /* 500 */ 1228, 204, 868, 1230, 204, 868, 1234, 204, 868, 1235, - /* 510 */ 504, 1136, 204, 1008, 727, 1246, 1159, 204, 778, 1155, - /* 520 */ 204, 731, 1250, 1139, 204, 1008, 1204, -20, 341, 1240, - /* 530 */ 826, 585, 1255, 441, 1258, 204, 1008, 79, 259, 1260, - /* 540 */ 1262, 1264, 1265, 880, 1267, 1268, 1269, 880, 1271, -91, - /* 550 */ 204, 1261, 1274, 1251, 779, 1263, 204, 736, 1280, 431, - /* 560 */ 1282, 1285, -91, 1251, 204, 1288, -91, -91, -91, +#define YY_SHIFT_USE_DFLT (-71) +static const short yy_shift_ofst[] = { + /* 0 */ 875, 463, -71, 847, 226, -71, 244, 599, 252, 355, + /* 10 */ 329, 475, -71, -71, -71, -71, -71, -71, 252, 564, + /* 20 */ 252, 647, 252, 704, 998, 731, 59, 938, 818, 910, + /* 30 */ -9, -71, 958, -71, 364, -71, 59, -27, -71, 940, + /* 40 */ -71, 1004, 319, -71, -71, -71, -71, -71, -71, -71, + /* 50 */ 740, 940, -71, 999, -71, 285, -71, -71, 996, 807, + /* 60 */ 940, -71, -71, -71, 940, -71, 1024, 802, 240, 639, + /* 70 */ 944, 946, 669, -71, 505, 942, -71, 258, -71, 990, + /* 80 */ 939, 941, 949, 947, 951, -71, 798, -71, -71, 960, + /* 90 */ 798, -71, 845, -71, -71, -71, 845, -71, -71, 798, + /* 100 */ -71, 952, 802, 1044, 802, 978, 807, -71, 1049, -71, + /* 110 */ -71, 472, 802, -71, 968, 59, 969, 59, -71, -71, + /* 120 */ -71, -71, -71, 607, 802, 562, 802, -69, 802, -69, + /* 130 */ 802, -69, 802, -69, 802, 153, 802, 153, 802, -55, + /* 140 */ 802, -55, 802, -55, 802, -55, 802, -50, 802, -50, + /* 150 */ 802, 1000, 802, 1000, 802, 1000, 802, -71, -71, -71, + /* 160 */ 668, -71, -71, -71, -71, -71, 802, 153, -71, 932, + /* 170 */ -71, 991, -71, -71, -71, 802, 517, 802, 153, -71, + /* 180 */ 283, 669, 316, 889, 976, 977, 979, -71, 472, 802, + /* 190 */ 607, 802, -71, 802, -71, 802, -71, 746, 139, 959, + /* 200 */ 583, 1071, -71, 802, 253, 802, 472, 1068, 759, 1070, + /* 210 */ -71, 1069, 59, 1074, -71, 802, 323, 802, 208, 802, + /* 220 */ 472, 832, -71, 802, -71, -71, 989, 59, -71, -71, + /* 230 */ 978, 807, -71, 802, 472, 985, 802, 1080, 802, 472, + /* 240 */ -71, -71, 533, -71, -71, -71, 152, -71, 266, -71, + /* 250 */ 997, -71, 170, 989, 622, -71, -71, 59, -71, -71, + /* 260 */ 1020, 1006, -71, 1097, 59, 61, -71, 59, -71, -71, + /* 270 */ 802, 472, 942, 268, 488, 1098, 622, 1020, 1006, -71, + /* 280 */ 725, -24, -71, -71, 1014, 65, -71, -71, -71, -71, + /* 290 */ 427, -71, 46, -71, 1101, -71, 94, 940, -71, 59, + /* 300 */ 1105, -71, 415, -71, 59, -71, 641, 717, -71, -70, + /* 310 */ -71, -71, -71, -71, 717, -71, 717, -71, 59, 988, + /* 320 */ -71, 59, 978, 807, -71, -71, 978, 807, -71, -71, + /* 330 */ 1049, -71, 999, -71, -71, 105, -71, -71, -71, -71, + /* 340 */ 758, 798, 945, -71, 798, 1112, -71, -71, -71, -71, + /* 350 */ 45, 149, -71, 59, -71, 1090, 1115, 59, 923, 940, + /* 360 */ -71, 1116, 59, 984, 940, -71, 802, 35, -71, 1093, + /* 370 */ 1118, 59, 975, 1048, 59, 1105, -71, 420, 1042, -71, + /* 380 */ -71, -71, -71, -71, 942, 416, 636, 595, 59, 989, + /* 390 */ -71, 59, 540, 1121, 942, 356, 59, 989, 486, 474, + /* 400 */ 1056, 59, 989, -71, 1120, 182, 1150, 802, 368, 1126, + /* 410 */ 928, -71, -71, 1073, 1075, 900, 59, 876, -71, -71, + /* 420 */ 1117, -71, -71, 1036, 59, 626, 1082, 59, 1156, 59, + /* 430 */ 1009, 514, 1170, 1051, 1172, 458, 242, 501, 319, -71, + /* 440 */ 1062, 1066, 1169, 1178, 1179, 458, 1173, 1131, 59, 1094, + /* 450 */ 59, 592, 59, 1127, 802, 472, 1187, 1130, 802, 472, + /* 460 */ 1081, 59, 1180, 59, 895, -71, 586, 18, 1181, 802, + /* 470 */ 934, 802, 472, 1192, 472, 1095, 59, 735, 1197, 352, + /* 480 */ 59, 1198, 59, 1200, 59, 1202, 59, 1203, 457, 1103, + /* 490 */ 59, 735, 1205, 1131, 59, 1119, 59, 592, 1210, 1102, + /* 500 */ 59, 1180, 538, 238, 1201, 802, 879, 1211, 397, 1215, + /* 510 */ 59, 989, 237, 100, 1217, 1219, 1220, 1222, 59, 1209, + /* 520 */ 1225, 1204, 958, 1216, 59, 609, 1232, 710, 1235, 1236, + /* 530 */ -71, 1204, 59, 1238, -71, -71, -71, }; -#define YY_REDUCE_USE_DFLT (-173) -static short yy_reduce_ofst[] = { - /* 0 */ -104, 738, -173, 152, -173, -173, -173, -44, 37, -173, - /* 10 */ 193, -173, -173, -173, -173, -173, -173, -173, 326, -173, - /* 20 */ 390, -173, 565, -173, 339, -173, 213, 548, -173, -173, - /* 30 */ 84, -173, 258, 673, 406, -173, 757, 586, -173, 831, - /* 40 */ -173, -173, 877, -173, -173, -173, -173, -173, -173, -173, - /* 50 */ 897, -173, 893, -173, -173, -173, -173, -173, 899, 904, - /* 60 */ -173, -173, -173, 906, -173, -173, 799, -173, 200, -173, - /* 70 */ -173, 306, -173, -172, 895, -173, 894, 67, 896, 898, - /* 80 */ 901, 905, 907, 908, -173, 917, -173, -173, -173, -173, - /* 90 */ -173, -173, 924, -173, 926, -173, -173, 317, -173, 208, - /* 100 */ 910, 927, -173, 939, -173, -173, 911, 814, -173, -173, - /* 110 */ 960, -173, 964, -173, -173, -173, -173, -173, 911, 839, - /* 120 */ 911, 841, 911, 846, 911, 847, 911, 852, 911, 855, - /* 130 */ 911, 856, 911, 857, 911, 858, 911, 865, 911, 869, - /* 140 */ 911, 870, 911, 912, 871, 911, -173, -173, 874, 911, - /* 150 */ 879, 911, 881, 911, 883, 911, 884, 911, 888, 911, - /* 160 */ -173, -173, -173, -173, -173, -173, 892, 911, 900, 911, - /* 170 */ 966, 723, -172, -173, -173, -173, -173, -173, 911, 632, - /* 180 */ 911, 706, 911, 711, 911, 729, 911, 641, 911, 913, - /* 190 */ 914, -173, -173, 748, 911, 765, 911, -173, -173, -173, - /* 200 */ -173, -173, 967, -173, -173, -173, 970, -173, -173, -173, - /* 210 */ 977, -173, -173, 769, 911, 770, 911, 784, 911, -173, - /* 220 */ -173, 642, -173, -173, 979, 982, -173, -173, -173, 797, - /* 230 */ 911, 798, 911, 984, 671, -172, -173, -173, -173, 983, - /* 240 */ -173, 930, 969, -173, 802, 911, -173, 199, -173, 801, - /* 250 */ 911, -173, 414, 942, -173, -173, -173, 991, -173, 992, - /* 260 */ -173, -173, -173, 994, 995, 592, -173, -173, 996, -173, - /* 270 */ -173, 947, 968, -173, -173, 555, -173, -173, 1000, -173, - /* 280 */ -173, 796, 911, -86, -172, 942, -173, 466, 971, 973, - /* 290 */ -173, 767, 464, -173, -173, -173, 960, -173, -173, -173, - /* 300 */ -173, 911, -173, -173, -173, -173, -173, 911, 997, -173, - /* 310 */ 1005, 999, 1001, 1003, -173, 1006, -173, -173, 1007, -173, - /* 320 */ -173, -173, -173, -173, -173, 1011, -173, 1015, -173, 647, - /* 330 */ -173, -173, -59, 974, 1018, -173, -173, 975, 1019, -173, - /* 340 */ -173, 998, -173, 1017, -173, -173, -173, -173, -173, -173, - /* 350 */ -173, -173, -173, -173, -173, -173, -173, -173, 1020, 1024, - /* 360 */ -173, -173, 1026, -173, -173, -173, -173, -173, 1021, 1023, - /* 370 */ -173, 1025, -173, -173, -173, 608, -173, 1027, -173, -173, - /* 380 */ 625, -173, 1028, -173, 830, 819, -173, -173, -173, 157, - /* 390 */ -173, -173, 1031, 1029, 1032, 482, -173, -173, -173, -173, - /* 400 */ -173, -173, 820, -172, 613, -173, 1034, 1040, -173, 1042, - /* 410 */ 1043, -173, 818, -172, 1048, 1049, 1033, 946, -173, 1052, - /* 420 */ 1053, 1036, 1037, -173, 809, 911, -173, -173, -173, -173, - /* 430 */ -173, -173, -173, 751, -173, -173, -173, -173, -173, -173, - /* 440 */ -173, 1061, 1056, -173, 1063, 1064, -173, 693, -173, 1047, - /* 450 */ -173, -173, -173, -68, -172, 1041, 1039, -173, -173, -173, - /* 460 */ -173, -173, -173, 637, -173, 1050, 1082, -173, 557, 1045, - /* 470 */ 1086, -173, 766, 911, -173, -173, 741, 911, -173, 1090, - /* 480 */ 1044, 323, -173, -173, 890, -172, -173, 551, -173, 886, - /* 490 */ 911, -173, 911, -173, 1094, 1054, -173, -173, 1096, 1093, - /* 500 */ -173, 1099, 1097, -173, 1102, 1106, -173, 1108, 1107, -173, - /* 510 */ -172, -173, 1113, 1111, 1068, -173, 1109, 1122, 1114, -173, - /* 520 */ 677, 1081, -173, -173, 1124, 1125, 1067, -113, -172, -173, - /* 530 */ 645, -173, -173, 1127, -173, 1131, 1129, -173, 312, -173, - /* 540 */ -173, -173, -173, 1065, -173, -173, -173, 1071, -173, -173, - /* 550 */ 1143, -173, -173, 1072, 1134, -173, 1149, 1073, -173, 1141, - /* 560 */ -173, -173, -173, 1078, 1156, -173, -173, -173, -173, +#define YY_REDUCE_USE_DFLT (-142) +static const short yy_reduce_ofst[] = { + /* 0 */ 435, 884, -142, 160, -142, -142, -142, 173, 267, -142, + /* 10 */ 278, -142, -142, -142, -142, -142, -142, -142, 380, -142, + /* 20 */ 478, -142, 528, -142, 646, -142, 110, 662, -142, -142, + /* 30 */ -20, -142, 549, 747, 680, -142, 894, 872, -142, 864, + /* 40 */ -142, -142, 816, -142, -142, -142, -142, -142, -142, -142, + /* 50 */ -142, 880, -142, 877, -142, -142, -142, -142, -142, 885, + /* 60 */ 891, -142, -142, -142, 893, -142, -142, 753, -142, -81, + /* 70 */ -142, -142, 643, -142, 870, 878, -142, 881, 852, 882, + /* 80 */ 883, 892, 896, 874, 897, -142, 449, -142, -142, -142, + /* 90 */ 314, -142, 856, -142, -142, -142, 857, -142, -142, 88, + /* 100 */ -142, -142, 214, -142, 553, 898, 913, -142, 925, -142, + /* 110 */ -142, 272, 844, -142, -142, 948, -142, 950, -142, -142, + /* 120 */ -142, -142, -142, 272, 867, 272, 887, 272, 890, 272, + /* 130 */ 587, 272, 666, 272, 720, 272, 721, 272, 750, 272, + /* 140 */ 751, 272, 755, 272, 761, 272, 695, 272, 770, 272, + /* 150 */ 771, 272, 778, 272, 794, 272, 797, 272, -142, -142, + /* 160 */ -142, -142, -142, -142, -142, -142, 849, 272, -142, -142, + /* 170 */ -142, -142, -142, -142, -142, 760, 272, 774, 272, -142, + /* 180 */ 953, 557, 870, -142, -142, -142, -142, -142, 272, 858, + /* 190 */ 272, 801, 272, 660, 272, 768, 272, 581, 272, 899, + /* 200 */ 901, -142, -142, 734, 272, 678, 272, -142, 917, -142, + /* 210 */ -142, -142, 956, -142, -142, 803, 272, 799, 272, 776, + /* 220 */ 272, -142, -142, 561, -142, -142, 961, 962, -142, -142, + /* 230 */ 904, 943, -142, 830, 272, -142, -19, -142, 814, 272, + /* 240 */ -142, 791, 916, -142, -142, -142, 970, -142, 972, -142, + /* 250 */ -142, -142, 973, 971, 693, -142, -142, 974, -142, -142, + /* 260 */ 926, 924, -142, -142, -6, -142, -142, 981, -142, -142, + /* 270 */ 811, 272, 114, 870, 916, -142, 674, 931, 933, -142, + /* 280 */ 795, -65, -142, -142, -142, 948, -142, -142, -142, -142, + /* 290 */ 272, -142, -142, -142, -142, -142, 272, 967, -142, 992, + /* 300 */ 966, 980, 964, -142, 993, -142, -142, 982, -142, -142, + /* 310 */ -142, -142, -142, -142, 983, -142, 986, -142, 681, -142, + /* 320 */ -142, 855, 935, 987, -142, -142, 936, 994, -142, -142, + /* 330 */ 995, -142, 963, -142, -142, 32, -142, -142, -142, -142, + /* 340 */ 1001, -66, -142, -142, -141, -142, -142, -142, -142, -142, + /* 350 */ 1002, 1003, -142, 1005, -142, -142, -142, 642, -142, 1007, + /* 360 */ -142, -142, 613, -142, 1008, -142, 863, 320, -142, -142, + /* 370 */ -142, 520, -142, -142, 1011, 1012, 1010, 489, -142, -142, + /* 380 */ -142, -142, -142, -142, 840, 870, 555, -142, 1016, 1013, + /* 390 */ -142, 1018, 1015, -142, 827, 870, 1021, 1019, 965, 957, + /* 400 */ -142, 826, -18, -142, 1017, 1022, -142, 838, 272, -142, + /* 410 */ -142, -142, -142, -142, -142, -142, 468, -142, -142, -142, + /* 420 */ -142, -142, -142, -142, 1030, 1033, -142, 865, -142, -138, + /* 430 */ -142, 1025, -142, -142, -142, 558, 870, 1023, -114, -142, + /* 440 */ -142, -142, -142, -142, -142, 597, -142, 1026, 1052, -142, + /* 450 */ 676, 1027, 1053, -142, 767, 272, -142, -142, 769, 272, + /* 460 */ -142, 1060, 1028, 155, -142, -142, 632, 870, -142, 215, + /* 470 */ -142, 813, 272, -142, 272, -142, 1065, 1029, -142, -142, + /* 480 */ 812, -142, 839, -142, 888, -142, 766, -142, 870, -142, + /* 490 */ 837, 1034, -142, 1045, 886, -142, 274, 1035, -142, -142, + /* 500 */ 566, 1031, 518, 870, -142, 217, -142, -142, 1083, -142, + /* 510 */ 1086, 1084, -142, 203, -142, -142, -142, -142, 1096, -142, + /* 520 */ -142, 1032, 1085, -142, 1100, 1037, -142, 1091, -142, -142, + /* 530 */ -142, 1039, 1107, -142, -142, -142, -142, }; -static YYACTIONTYPE yy_default[] = { - /* 0 */ 576, 576, 570, 866, 866, 572, 866, 581, 866, 866, - /* 10 */ 866, 866, 601, 602, 603, 582, 583, 584, 866, 866, - /* 20 */ 866, 866, 866, 866, 866, 866, 866, 866, 866, 866, - /* 30 */ 866, 594, 604, 614, 596, 613, 866, 866, 615, 661, - /* 40 */ 626, 866, 866, 662, 665, 666, 667, 668, 669, 866, - /* 50 */ 661, 627, 646, 644, 866, 647, 648, 866, 718, 661, - /* 60 */ 628, 716, 717, 661, 629, 866, 866, 747, 808, 753, - /* 70 */ 748, 866, 674, 866, 866, 675, 683, 685, 692, 730, - /* 80 */ 721, 723, 711, 725, 680, 866, 610, 866, 611, 866, - /* 90 */ 612, 726, 866, 727, 866, 728, 866, 866, 712, 866, - /* 100 */ 719, 718, 713, 866, 598, 720, 715, 866, 746, 866, - /* 110 */ 866, 749, 866, 750, 751, 752, 754, 755, 758, 866, - /* 120 */ 759, 866, 760, 866, 761, 866, 762, 866, 763, 866, - /* 130 */ 764, 866, 765, 866, 766, 866, 767, 866, 768, 866, - /* 140 */ 769, 866, 770, 866, 866, 771, 772, 773, 866, 774, - /* 150 */ 866, 775, 866, 776, 866, 777, 866, 778, 866, 779, - /* 160 */ 780, 866, 781, 866, 784, 782, 866, 866, 866, 790, - /* 170 */ 866, 808, 866, 866, 866, 866, 866, 793, 807, 866, - /* 180 */ 785, 866, 786, 866, 787, 866, 788, 866, 866, 866, - /* 190 */ 866, 866, 798, 866, 866, 866, 799, 866, 866, 866, - /* 200 */ 854, 866, 866, 866, 855, 866, 866, 866, 856, 866, - /* 210 */ 866, 866, 857, 866, 866, 866, 866, 866, 800, 866, - /* 220 */ 792, 808, 805, 806, 700, 866, 701, 796, 783, 866, - /* 230 */ 866, 866, 791, 866, 808, 866, 795, 866, 794, 700, - /* 240 */ 797, 719, 718, 714, 866, 724, 866, 808, 722, 866, - /* 250 */ 731, 684, 695, 693, 694, 702, 703, 866, 704, 866, - /* 260 */ 705, 866, 706, 866, 700, 691, 599, 600, 866, 689, - /* 270 */ 690, 708, 710, 696, 866, 866, 866, 709, 866, 743, - /* 280 */ 744, 866, 707, 695, 866, 866, 866, 691, 708, 710, - /* 290 */ 697, 866, 691, 686, 687, 866, 866, 688, 681, 682, - /* 300 */ 789, 866, 745, 866, 756, 866, 757, 866, 661, 630, - /* 310 */ 866, 812, 634, 631, 635, 866, 636, 866, 866, 637, - /* 320 */ 866, 640, 641, 642, 643, 866, 638, 866, 639, 866, - /* 330 */ 866, 813, 866, 719, 718, 814, 816, 719, 718, 815, - /* 340 */ 632, 866, 633, 646, 645, 616, 866, 617, 618, 619, - /* 350 */ 866, 620, 623, 866, 621, 624, 622, 625, 605, 866, - /* 360 */ 866, 606, 866, 866, 607, 609, 608, 597, 866, 866, - /* 370 */ 651, 866, 654, 866, 866, 866, 866, 661, 655, 866, - /* 380 */ 866, 866, 661, 656, 866, 661, 657, 866, 866, 866, - /* 390 */ 866, 866, 866, 812, 634, 659, 866, 658, 660, 652, - /* 400 */ 653, 595, 866, 866, 591, 866, 866, 700, 589, 866, - /* 410 */ 866, 866, 866, 866, 866, 700, 837, 866, 866, 866, - /* 420 */ 700, 842, 866, 866, 866, 866, 866, 866, 843, 844, - /* 430 */ 866, 866, 866, 866, 866, 834, 835, 866, 836, 590, - /* 440 */ 866, 866, 866, 866, 866, 866, 866, 866, 866, 866, - /* 450 */ 866, 866, 866, 866, 866, 866, 866, 664, 866, 866, - /* 460 */ 866, 866, 866, 866, 866, 663, 866, 866, 866, 866, - /* 470 */ 866, 866, 866, 733, 866, 866, 866, 734, 866, 866, - /* 480 */ 741, 866, 866, 742, 866, 866, 866, 866, 866, 866, - /* 490 */ 739, 866, 740, 866, 866, 866, 866, 866, 866, 866, - /* 500 */ 866, 866, 866, 866, 866, 866, 866, 866, 866, 866, - /* 510 */ 866, 866, 866, 700, 866, 866, 663, 866, 866, 866, - /* 520 */ 866, 866, 866, 866, 866, 700, 741, 866, 866, 866, - /* 530 */ 866, 866, 866, 866, 866, 866, 700, 866, 831, 866, - /* 540 */ 866, 866, 866, 866, 866, 866, 866, 866, 866, 830, - /* 550 */ 866, 866, 866, 864, 866, 866, 866, 866, 866, 866, - /* 560 */ 866, 866, 863, 864, 866, 866, 573, 575, 571, +static const YYACTIONTYPE yy_default[] = { + /* 0 */ 544, 544, 538, 829, 829, 540, 829, 549, 829, 829, + /* 10 */ 829, 829, 569, 570, 571, 550, 551, 552, 829, 829, + /* 20 */ 829, 829, 829, 829, 829, 829, 829, 829, 829, 829, + /* 30 */ 829, 562, 572, 581, 564, 580, 829, 829, 582, 623, + /* 40 */ 588, 829, 829, 624, 627, 628, 629, 818, 819, 820, + /* 50 */ 829, 623, 589, 608, 606, 829, 609, 610, 829, 679, + /* 60 */ 623, 590, 677, 678, 623, 591, 829, 829, 708, 770, + /* 70 */ 714, 709, 829, 634, 829, 829, 635, 643, 645, 652, + /* 80 */ 691, 682, 684, 672, 686, 640, 793, 578, 579, 687, + /* 90 */ 793, 688, 829, 788, 790, 791, 829, 789, 792, 793, + /* 100 */ 689, 829, 829, 673, 829, 680, 679, 674, 829, 566, + /* 110 */ 681, 676, 829, 707, 829, 829, 710, 829, 711, 712, + /* 120 */ 713, 715, 716, 719, 829, 720, 829, 721, 829, 722, + /* 130 */ 829, 723, 829, 724, 829, 725, 829, 726, 829, 727, + /* 140 */ 829, 728, 829, 729, 829, 730, 829, 731, 829, 732, + /* 150 */ 829, 733, 829, 734, 829, 735, 829, 736, 737, 738, + /* 160 */ 829, 739, 740, 745, 753, 756, 829, 741, 742, 829, + /* 170 */ 743, 829, 746, 744, 752, 829, 829, 829, 754, 755, + /* 180 */ 829, 770, 829, 829, 829, 829, 829, 758, 769, 829, + /* 190 */ 747, 829, 748, 829, 749, 829, 750, 829, 829, 829, + /* 200 */ 829, 829, 760, 829, 829, 829, 761, 829, 829, 829, + /* 210 */ 816, 829, 829, 829, 817, 829, 829, 829, 829, 829, + /* 220 */ 762, 829, 757, 770, 767, 768, 660, 829, 661, 759, + /* 230 */ 680, 679, 675, 829, 685, 829, 770, 683, 829, 692, + /* 240 */ 644, 655, 653, 654, 663, 664, 829, 665, 829, 666, + /* 250 */ 829, 667, 829, 660, 651, 567, 568, 829, 649, 650, + /* 260 */ 669, 671, 656, 829, 829, 829, 670, 829, 704, 705, + /* 270 */ 829, 668, 655, 829, 829, 829, 651, 669, 671, 657, + /* 280 */ 829, 651, 646, 647, 829, 829, 648, 641, 642, 751, + /* 290 */ 829, 706, 829, 717, 829, 718, 829, 623, 592, 829, + /* 300 */ 774, 596, 593, 597, 829, 598, 829, 829, 599, 829, + /* 310 */ 602, 603, 604, 605, 829, 600, 829, 601, 829, 829, + /* 320 */ 775, 829, 680, 679, 776, 778, 680, 679, 777, 594, + /* 330 */ 829, 595, 608, 607, 583, 793, 584, 585, 586, 587, + /* 340 */ 573, 793, 829, 574, 793, 829, 575, 577, 576, 565, + /* 350 */ 829, 829, 613, 829, 616, 829, 829, 829, 829, 623, + /* 360 */ 617, 829, 829, 829, 623, 618, 829, 623, 619, 829, + /* 370 */ 829, 829, 829, 829, 829, 774, 596, 621, 829, 620, + /* 380 */ 622, 614, 615, 563, 829, 829, 559, 829, 829, 660, + /* 390 */ 557, 829, 829, 829, 829, 829, 829, 660, 799, 829, + /* 400 */ 829, 829, 660, 662, 804, 829, 829, 829, 829, 829, + /* 410 */ 829, 805, 806, 829, 829, 829, 829, 829, 796, 797, + /* 420 */ 829, 798, 558, 829, 829, 829, 829, 829, 829, 829, + /* 430 */ 829, 829, 829, 829, 829, 829, 829, 829, 829, 626, + /* 440 */ 829, 829, 829, 829, 829, 829, 829, 625, 829, 829, + /* 450 */ 829, 829, 829, 829, 829, 694, 829, 829, 829, 695, + /* 460 */ 829, 829, 702, 829, 829, 703, 829, 829, 829, 829, + /* 470 */ 829, 829, 700, 829, 701, 829, 829, 829, 829, 829, + /* 480 */ 829, 829, 829, 829, 829, 829, 829, 829, 829, 829, + /* 490 */ 829, 829, 829, 625, 829, 829, 829, 829, 829, 829, + /* 500 */ 829, 702, 829, 829, 829, 829, 829, 829, 829, 829, + /* 510 */ 829, 660, 829, 793, 829, 829, 829, 829, 829, 829, + /* 520 */ 829, 827, 829, 829, 829, 829, 829, 829, 829, 829, + /* 530 */ 826, 827, 829, 829, 541, 543, 539, }; #define YY_SZ_ACTTAB (sizeof(yy_action)/sizeof(yy_action[0])) @@ -708,10 +703,8 @@ static const YYCODETYPE yyFallback[] = { 0, /* BITNOT => nothing */ 0, /* STRING => nothing */ 0, /* JOIN_KW => nothing */ - 0, /* INTEGER => nothing */ 0, /* CONSTRAINT => nothing */ 0, /* DEFAULT => nothing */ - 0, /* FLOAT => nothing */ 0, /* NULL => nothing */ 0, /* PRIMARY => nothing */ 0, /* UNIQUE => nothing */ @@ -744,6 +737,8 @@ static const YYCODETYPE yyFallback[] = { 0, /* WHERE => nothing */ 0, /* INTO => nothing */ 0, /* VALUES => nothing */ + 0, /* INTEGER => nothing */ + 0, /* FLOAT => nothing */ 0, /* BLOB => nothing */ 0, /* VARIABLE => nothing */ 0, /* CASE => nothing */ @@ -820,7 +815,7 @@ void sqlite3ParserTrace(FILE *TraceFILE, char *zTracePrompt){ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ -static const char *yyTokenName[] = { +static const char *const yyTokenName[] = { "$", "END_OF_FILE", "ILLEGAL", "SPACE", "UNCLOSED_STRING", "COMMENT", "FUNCTION", "COLUMN", "AGG_FUNCTION", "SEMI", "EXPLAIN", "BEGIN", @@ -842,16 +837,16 @@ static const char *yyTokenName[] = { "BITAND", "BITOR", "LSHIFT", "RSHIFT", "PLUS", "MINUS", "STAR", "SLASH", "REM", "CONCAT", "UMINUS", "UPLUS", - "BITNOT", "STRING", "JOIN_KW", "INTEGER", - "CONSTRAINT", "DEFAULT", "FLOAT", "NULL", - "PRIMARY", "UNIQUE", "CHECK", "REFERENCES", - "COLLATE", "ON", "DELETE", "UPDATE", - "INSERT", "SET", "DEFERRABLE", "FOREIGN", - "DROP", "UNION", "ALL", "INTERSECT", - "EXCEPT", "SELECT", "DISTINCT", "DOT", - "FROM", "JOIN", "USING", "ORDER", - "BY", "GROUP", "HAVING", "LIMIT", - "WHERE", "INTO", "VALUES", "BLOB", + "BITNOT", "STRING", "JOIN_KW", "CONSTRAINT", + "DEFAULT", "NULL", "PRIMARY", "UNIQUE", + "CHECK", "REFERENCES", "COLLATE", "ON", + "DELETE", "UPDATE", "INSERT", "SET", + "DEFERRABLE", "FOREIGN", "DROP", "UNION", + "ALL", "INTERSECT", "EXCEPT", "SELECT", + "DISTINCT", "DOT", "FROM", "JOIN", + "USING", "ORDER", "BY", "GROUP", + "HAVING", "LIMIT", "WHERE", "INTO", + "VALUES", "INTEGER", "FLOAT", "BLOB", "VARIABLE", "CASE", "WHEN", "THEN", "ELSE", "INDEX", "error", "input", "cmdlist", "ecmd", "explain", "cmdx", @@ -859,11 +854,12 @@ static const char *yyTokenName[] = { "create_table", "create_table_args", "temp", "dbnm", "columnlist", "conslist_opt", "select", "column", "columnid", "type", "carglist", "id", - "ids", "typename", "signed", "carg", - "ccons", "onconf", "sortorder", "expr", - "idxlist_opt", "refargs", "defer_subclause", "refarg", - "refact", "init_deferred_pred_opt", "conslist", "tcons", - "idxlist", "defer_subclause_opt", "orconf", "resolvetype", + "ids", "typename", "signed", "plus_num", + "minus_num", "carg", "ccons", "onconf", + "sortorder", "expr", "idxlist_opt", "refargs", + "defer_subclause", "refarg", "refact", "init_deferred_pred_opt", + "conslist", "tcons", "idxlist", "defer_subclause_opt", + "orconf", "resolvetype", "raisetype", "fullname", "oneselect", "multiselect_op", "distinct", "selcollist", "from", "where_opt", "groupby_opt", "having_opt", "orderby_opt", "limit_opt", "sclp", "as", @@ -871,9 +867,9 @@ static const char *yyTokenName[] = { "using_opt", "seltablist_paren", "joinop2", "inscollist", "sortlist", "sortitem", "collate", "exprlist", "setlist", "insert_cmd", "inscollist_opt", "itemlist", - "likeop", "case_operand", "case_exprlist", "case_else", - "expritem", "uniqueflag", "idxitem", "plus_num", - "minus_num", "plus_opt", "number", "trigger_decl", + "likeop", "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", }; @@ -882,7 +878,7 @@ static const char *yyTokenName[] = { #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ -static const char *yyRuleName[] = { +static const char *const yyRuleName[] = { /* 0 */ "input ::= cmdlist", /* 1 */ "cmdlist ::= cmdlist ecmd", /* 2 */ "cmdlist ::= ecmd", @@ -924,262 +920,257 @@ static const char *yyRuleName[] = { /* 38 */ "type ::= typename LP signed COMMA signed RP", /* 39 */ "typename ::= ids", /* 40 */ "typename ::= typename ids", - /* 41 */ "signed ::= INTEGER", - /* 42 */ "signed ::= PLUS INTEGER", - /* 43 */ "signed ::= MINUS INTEGER", - /* 44 */ "carglist ::= carglist carg", - /* 45 */ "carglist ::=", - /* 46 */ "carg ::= CONSTRAINT nm ccons", - /* 47 */ "carg ::= ccons", - /* 48 */ "carg ::= DEFAULT STRING", - /* 49 */ "carg ::= DEFAULT ID", - /* 50 */ "carg ::= DEFAULT INTEGER", - /* 51 */ "carg ::= DEFAULT PLUS INTEGER", - /* 52 */ "carg ::= DEFAULT MINUS INTEGER", - /* 53 */ "carg ::= DEFAULT FLOAT", - /* 54 */ "carg ::= DEFAULT PLUS FLOAT", - /* 55 */ "carg ::= DEFAULT MINUS FLOAT", - /* 56 */ "carg ::= DEFAULT NULL", - /* 57 */ "ccons ::= NULL onconf", - /* 58 */ "ccons ::= NOT NULL onconf", - /* 59 */ "ccons ::= PRIMARY KEY sortorder onconf", - /* 60 */ "ccons ::= UNIQUE onconf", - /* 61 */ "ccons ::= CHECK LP expr RP onconf", - /* 62 */ "ccons ::= REFERENCES nm idxlist_opt refargs", - /* 63 */ "ccons ::= defer_subclause", - /* 64 */ "ccons ::= COLLATE id", - /* 65 */ "refargs ::=", - /* 66 */ "refargs ::= refargs refarg", - /* 67 */ "refarg ::= MATCH nm", - /* 68 */ "refarg ::= ON DELETE refact", - /* 69 */ "refarg ::= ON UPDATE refact", - /* 70 */ "refarg ::= ON INSERT refact", - /* 71 */ "refact ::= SET NULL", - /* 72 */ "refact ::= SET DEFAULT", - /* 73 */ "refact ::= CASCADE", - /* 74 */ "refact ::= RESTRICT", - /* 75 */ "defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt", - /* 76 */ "defer_subclause ::= DEFERRABLE init_deferred_pred_opt", - /* 77 */ "init_deferred_pred_opt ::=", - /* 78 */ "init_deferred_pred_opt ::= INITIALLY DEFERRED", - /* 79 */ "init_deferred_pred_opt ::= INITIALLY IMMEDIATE", - /* 80 */ "conslist_opt ::=", - /* 81 */ "conslist_opt ::= COMMA conslist", - /* 82 */ "conslist ::= conslist COMMA tcons", - /* 83 */ "conslist ::= conslist tcons", - /* 84 */ "conslist ::= tcons", - /* 85 */ "tcons ::= CONSTRAINT nm", - /* 86 */ "tcons ::= PRIMARY KEY LP idxlist RP onconf", - /* 87 */ "tcons ::= UNIQUE LP idxlist RP onconf", - /* 88 */ "tcons ::= CHECK expr onconf", - /* 89 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt", - /* 90 */ "defer_subclause_opt ::=", - /* 91 */ "defer_subclause_opt ::= defer_subclause", - /* 92 */ "onconf ::=", - /* 93 */ "onconf ::= ON CONFLICT resolvetype", - /* 94 */ "orconf ::=", - /* 95 */ "orconf ::= OR resolvetype", - /* 96 */ "resolvetype ::= ROLLBACK", - /* 97 */ "resolvetype ::= ABORT", - /* 98 */ "resolvetype ::= FAIL", - /* 99 */ "resolvetype ::= IGNORE", - /* 100 */ "resolvetype ::= REPLACE", - /* 101 */ "cmd ::= DROP TABLE nm dbnm", - /* 102 */ "cmd ::= CREATE temp VIEW nm dbnm AS select", - /* 103 */ "cmd ::= DROP VIEW nm dbnm", - /* 104 */ "cmd ::= select", - /* 105 */ "select ::= oneselect", - /* 106 */ "select ::= select multiselect_op oneselect", - /* 107 */ "multiselect_op ::= UNION", - /* 108 */ "multiselect_op ::= UNION ALL", - /* 109 */ "multiselect_op ::= INTERSECT", - /* 110 */ "multiselect_op ::= EXCEPT", - /* 111 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt", - /* 112 */ "distinct ::= DISTINCT", - /* 113 */ "distinct ::= ALL", - /* 114 */ "distinct ::=", - /* 115 */ "sclp ::= selcollist COMMA", - /* 116 */ "sclp ::=", - /* 117 */ "selcollist ::= sclp expr as", - /* 118 */ "selcollist ::= sclp STAR", - /* 119 */ "selcollist ::= sclp nm DOT STAR", - /* 120 */ "as ::= AS nm", - /* 121 */ "as ::= ids", - /* 122 */ "as ::=", - /* 123 */ "from ::=", - /* 124 */ "from ::= FROM seltablist", - /* 125 */ "stl_prefix ::= seltablist joinop", - /* 126 */ "stl_prefix ::=", - /* 127 */ "seltablist ::= stl_prefix nm dbnm as on_opt using_opt", - /* 128 */ "seltablist ::= stl_prefix LP seltablist_paren RP as on_opt using_opt", - /* 129 */ "seltablist_paren ::= select", - /* 130 */ "seltablist_paren ::= seltablist", - /* 131 */ "dbnm ::=", - /* 132 */ "dbnm ::= DOT nm", - /* 133 */ "joinop ::= COMMA", - /* 134 */ "joinop ::= JOIN", - /* 135 */ "joinop ::= JOIN_KW JOIN", - /* 136 */ "joinop ::= JOIN_KW nm JOIN", - /* 137 */ "joinop ::= JOIN_KW nm nm JOIN", - /* 138 */ "on_opt ::= ON expr", - /* 139 */ "on_opt ::=", - /* 140 */ "using_opt ::= USING LP inscollist RP", - /* 141 */ "using_opt ::=", - /* 142 */ "orderby_opt ::=", - /* 143 */ "orderby_opt ::= ORDER BY sortlist", - /* 144 */ "sortlist ::= sortlist COMMA sortitem collate sortorder", - /* 145 */ "sortlist ::= sortitem collate sortorder", - /* 146 */ "sortitem ::= expr", - /* 147 */ "sortorder ::= ASC", - /* 148 */ "sortorder ::= DESC", - /* 149 */ "sortorder ::=", - /* 150 */ "collate ::=", - /* 151 */ "collate ::= COLLATE id", - /* 152 */ "groupby_opt ::=", - /* 153 */ "groupby_opt ::= GROUP BY exprlist", - /* 154 */ "having_opt ::=", - /* 155 */ "having_opt ::= HAVING expr", - /* 156 */ "limit_opt ::=", - /* 157 */ "limit_opt ::= LIMIT signed", - /* 158 */ "limit_opt ::= LIMIT signed OFFSET signed", - /* 159 */ "limit_opt ::= LIMIT signed COMMA signed", - /* 160 */ "cmd ::= DELETE FROM nm dbnm where_opt", - /* 161 */ "where_opt ::=", - /* 162 */ "where_opt ::= WHERE expr", - /* 163 */ "cmd ::= UPDATE orconf nm dbnm SET setlist where_opt", - /* 164 */ "setlist ::= setlist COMMA nm EQ expr", - /* 165 */ "setlist ::= nm EQ expr", - /* 166 */ "cmd ::= insert_cmd INTO nm dbnm inscollist_opt VALUES LP itemlist RP", - /* 167 */ "cmd ::= insert_cmd INTO nm dbnm inscollist_opt select", - /* 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 ::= LP expr RP", - /* 177 */ "expr ::= NULL", - /* 178 */ "expr ::= ID", - /* 179 */ "expr ::= JOIN_KW", - /* 180 */ "expr ::= nm DOT nm", - /* 181 */ "expr ::= nm DOT nm DOT nm", - /* 182 */ "expr ::= INTEGER", - /* 183 */ "expr ::= FLOAT", - /* 184 */ "expr ::= STRING", - /* 185 */ "expr ::= BLOB", - /* 186 */ "expr ::= VARIABLE", - /* 187 */ "expr ::= ID LP exprlist RP", - /* 188 */ "expr ::= ID LP STAR RP", - /* 189 */ "expr ::= expr AND expr", - /* 190 */ "expr ::= expr OR expr", - /* 191 */ "expr ::= expr LT expr", - /* 192 */ "expr ::= expr GT expr", - /* 193 */ "expr ::= expr LE expr", - /* 194 */ "expr ::= expr GE expr", - /* 195 */ "expr ::= expr NE expr", - /* 196 */ "expr ::= expr EQ expr", - /* 197 */ "expr ::= expr BITAND expr", - /* 198 */ "expr ::= expr BITOR expr", - /* 199 */ "expr ::= expr LSHIFT expr", - /* 200 */ "expr ::= expr RSHIFT expr", - /* 201 */ "expr ::= expr likeop expr", - /* 202 */ "expr ::= expr NOT likeop expr", - /* 203 */ "likeop ::= LIKE", - /* 204 */ "likeop ::= GLOB", - /* 205 */ "expr ::= expr PLUS expr", - /* 206 */ "expr ::= expr MINUS expr", - /* 207 */ "expr ::= expr STAR expr", - /* 208 */ "expr ::= expr SLASH expr", - /* 209 */ "expr ::= expr REM expr", - /* 210 */ "expr ::= expr CONCAT expr", - /* 211 */ "expr ::= expr ISNULL", - /* 212 */ "expr ::= expr IS NULL", - /* 213 */ "expr ::= expr NOTNULL", - /* 214 */ "expr ::= expr NOT NULL", - /* 215 */ "expr ::= expr IS NOT NULL", - /* 216 */ "expr ::= NOT expr", - /* 217 */ "expr ::= BITNOT expr", - /* 218 */ "expr ::= MINUS expr", - /* 219 */ "expr ::= PLUS expr", - /* 220 */ "expr ::= LP select RP", - /* 221 */ "expr ::= expr BETWEEN expr AND expr", - /* 222 */ "expr ::= expr NOT BETWEEN expr AND expr", - /* 223 */ "expr ::= expr IN LP exprlist RP", - /* 224 */ "expr ::= expr IN LP select RP", - /* 225 */ "expr ::= expr NOT IN LP exprlist RP", - /* 226 */ "expr ::= expr NOT IN LP select RP", - /* 227 */ "expr ::= expr IN nm dbnm", - /* 228 */ "expr ::= expr NOT IN nm dbnm", - /* 229 */ "expr ::= CASE case_operand case_exprlist case_else END", - /* 230 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", - /* 231 */ "case_exprlist ::= WHEN expr THEN expr", - /* 232 */ "case_else ::= ELSE expr", - /* 233 */ "case_else ::=", - /* 234 */ "case_operand ::= expr", - /* 235 */ "case_operand ::=", - /* 236 */ "exprlist ::= exprlist COMMA expritem", - /* 237 */ "exprlist ::= expritem", - /* 238 */ "expritem ::= expr", - /* 239 */ "expritem ::=", - /* 240 */ "cmd ::= CREATE uniqueflag INDEX nm dbnm ON nm dbnm LP idxlist RP onconf", - /* 241 */ "uniqueflag ::= UNIQUE", - /* 242 */ "uniqueflag ::=", - /* 243 */ "idxlist_opt ::=", - /* 244 */ "idxlist_opt ::= LP idxlist RP", - /* 245 */ "idxlist ::= idxlist COMMA idxitem collate sortorder", - /* 246 */ "idxlist ::= idxitem collate sortorder", - /* 247 */ "idxitem ::= nm", - /* 248 */ "cmd ::= DROP INDEX nm dbnm", - /* 249 */ "cmd ::= VACUUM", - /* 250 */ "cmd ::= VACUUM nm", - /* 251 */ "cmd ::= PRAGMA nm dbnm EQ nm", - /* 252 */ "cmd ::= PRAGMA nm dbnm EQ ON", - /* 253 */ "cmd ::= PRAGMA nm dbnm EQ plus_num", - /* 254 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", - /* 255 */ "cmd ::= PRAGMA nm dbnm LP nm RP", - /* 256 */ "cmd ::= PRAGMA nm dbnm", - /* 257 */ "plus_num ::= plus_opt number", - /* 258 */ "minus_num ::= MINUS number", - /* 259 */ "number ::= INTEGER", - /* 260 */ "number ::= FLOAT", - /* 261 */ "plus_opt ::= PLUS", - /* 262 */ "plus_opt ::=", - /* 263 */ "cmd ::= CREATE trigger_decl BEGIN trigger_cmd_list END", - /* 264 */ "trigger_decl ::= temp TRIGGER nm dbnm trigger_time trigger_event ON nm dbnm foreach_clause when_clause", - /* 265 */ "trigger_time ::= BEFORE", - /* 266 */ "trigger_time ::= AFTER", - /* 267 */ "trigger_time ::= INSTEAD OF", - /* 268 */ "trigger_time ::=", - /* 269 */ "trigger_event ::= DELETE", - /* 270 */ "trigger_event ::= INSERT", - /* 271 */ "trigger_event ::= UPDATE", - /* 272 */ "trigger_event ::= UPDATE OF inscollist", - /* 273 */ "foreach_clause ::=", - /* 274 */ "foreach_clause ::= FOR EACH ROW", - /* 275 */ "foreach_clause ::= FOR EACH STATEMENT", - /* 276 */ "when_clause ::=", - /* 277 */ "when_clause ::= WHEN expr", - /* 278 */ "trigger_cmd_list ::= trigger_cmd SEMI trigger_cmd_list", - /* 279 */ "trigger_cmd_list ::=", - /* 280 */ "trigger_cmd ::= UPDATE orconf nm SET setlist where_opt", - /* 281 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt VALUES LP itemlist RP", - /* 282 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt select", - /* 283 */ "trigger_cmd ::= DELETE FROM nm where_opt", - /* 284 */ "trigger_cmd ::= select", - /* 285 */ "expr ::= RAISE LP IGNORE RP", - /* 286 */ "expr ::= RAISE LP ROLLBACK COMMA nm RP", - /* 287 */ "expr ::= RAISE LP ABORT COMMA nm RP", - /* 288 */ "expr ::= RAISE LP FAIL COMMA nm RP", - /* 289 */ "cmd ::= DROP TRIGGER nm dbnm", - /* 290 */ "cmd ::= ATTACH database_kw_opt ids AS nm key_opt", - /* 291 */ "key_opt ::=", - /* 292 */ "key_opt ::= KEY ids", - /* 293 */ "key_opt ::= KEY BLOB", - /* 294 */ "database_kw_opt ::= DATABASE", - /* 295 */ "database_kw_opt ::=", - /* 296 */ "cmd ::= DETACH database_kw_opt nm", + /* 41 */ "signed ::= plus_num", + /* 42 */ "signed ::= minus_num", + /* 43 */ "carglist ::= carglist carg", + /* 44 */ "carglist ::=", + /* 45 */ "carg ::= CONSTRAINT nm ccons", + /* 46 */ "carg ::= ccons", + /* 47 */ "carg ::= DEFAULT ids", + /* 48 */ "carg ::= DEFAULT plus_num", + /* 49 */ "carg ::= DEFAULT minus_num", + /* 50 */ "carg ::= DEFAULT NULL", + /* 51 */ "ccons ::= NULL onconf", + /* 52 */ "ccons ::= NOT NULL onconf", + /* 53 */ "ccons ::= PRIMARY KEY sortorder onconf", + /* 54 */ "ccons ::= UNIQUE onconf", + /* 55 */ "ccons ::= CHECK LP expr RP onconf", + /* 56 */ "ccons ::= REFERENCES nm idxlist_opt refargs", + /* 57 */ "ccons ::= defer_subclause", + /* 58 */ "ccons ::= COLLATE id", + /* 59 */ "refargs ::=", + /* 60 */ "refargs ::= refargs refarg", + /* 61 */ "refarg ::= MATCH nm", + /* 62 */ "refarg ::= ON DELETE refact", + /* 63 */ "refarg ::= ON UPDATE refact", + /* 64 */ "refarg ::= ON INSERT refact", + /* 65 */ "refact ::= SET NULL", + /* 66 */ "refact ::= SET DEFAULT", + /* 67 */ "refact ::= CASCADE", + /* 68 */ "refact ::= RESTRICT", + /* 69 */ "defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt", + /* 70 */ "defer_subclause ::= DEFERRABLE init_deferred_pred_opt", + /* 71 */ "init_deferred_pred_opt ::=", + /* 72 */ "init_deferred_pred_opt ::= INITIALLY DEFERRED", + /* 73 */ "init_deferred_pred_opt ::= INITIALLY IMMEDIATE", + /* 74 */ "conslist_opt ::=", + /* 75 */ "conslist_opt ::= COMMA conslist", + /* 76 */ "conslist ::= conslist COMMA tcons", + /* 77 */ "conslist ::= conslist tcons", + /* 78 */ "conslist ::= tcons", + /* 79 */ "tcons ::= CONSTRAINT nm", + /* 80 */ "tcons ::= PRIMARY KEY LP idxlist RP onconf", + /* 81 */ "tcons ::= UNIQUE LP idxlist RP onconf", + /* 82 */ "tcons ::= CHECK expr onconf", + /* 83 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt", + /* 84 */ "defer_subclause_opt ::=", + /* 85 */ "defer_subclause_opt ::= defer_subclause", + /* 86 */ "onconf ::=", + /* 87 */ "onconf ::= ON CONFLICT resolvetype", + /* 88 */ "orconf ::=", + /* 89 */ "orconf ::= OR resolvetype", + /* 90 */ "resolvetype ::= raisetype", + /* 91 */ "resolvetype ::= IGNORE", + /* 92 */ "resolvetype ::= REPLACE", + /* 93 */ "cmd ::= DROP TABLE fullname", + /* 94 */ "cmd ::= CREATE temp VIEW nm dbnm AS select", + /* 95 */ "cmd ::= DROP VIEW fullname", + /* 96 */ "cmd ::= select", + /* 97 */ "select ::= oneselect", + /* 98 */ "select ::= select multiselect_op oneselect", + /* 99 */ "multiselect_op ::= UNION", + /* 100 */ "multiselect_op ::= UNION ALL", + /* 101 */ "multiselect_op ::= INTERSECT", + /* 102 */ "multiselect_op ::= EXCEPT", + /* 103 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt", + /* 104 */ "distinct ::= DISTINCT", + /* 105 */ "distinct ::= ALL", + /* 106 */ "distinct ::=", + /* 107 */ "sclp ::= selcollist COMMA", + /* 108 */ "sclp ::=", + /* 109 */ "selcollist ::= sclp expr as", + /* 110 */ "selcollist ::= sclp STAR", + /* 111 */ "selcollist ::= sclp nm DOT STAR", + /* 112 */ "as ::= AS nm", + /* 113 */ "as ::= ids", + /* 114 */ "as ::=", + /* 115 */ "from ::=", + /* 116 */ "from ::= FROM seltablist", + /* 117 */ "stl_prefix ::= seltablist joinop", + /* 118 */ "stl_prefix ::=", + /* 119 */ "seltablist ::= stl_prefix nm dbnm as on_opt using_opt", + /* 120 */ "seltablist ::= stl_prefix LP seltablist_paren RP as on_opt using_opt", + /* 121 */ "seltablist_paren ::= select", + /* 122 */ "seltablist_paren ::= seltablist", + /* 123 */ "dbnm ::=", + /* 124 */ "dbnm ::= DOT nm", + /* 125 */ "fullname ::= nm dbnm", + /* 126 */ "joinop ::= COMMA", + /* 127 */ "joinop ::= JOIN", + /* 128 */ "joinop ::= JOIN_KW JOIN", + /* 129 */ "joinop ::= JOIN_KW nm JOIN", + /* 130 */ "joinop ::= JOIN_KW nm nm JOIN", + /* 131 */ "on_opt ::= ON expr", + /* 132 */ "on_opt ::=", + /* 133 */ "using_opt ::= USING LP inscollist RP", + /* 134 */ "using_opt ::=", + /* 135 */ "orderby_opt ::=", + /* 136 */ "orderby_opt ::= ORDER BY sortlist", + /* 137 */ "sortlist ::= sortlist COMMA sortitem collate sortorder", + /* 138 */ "sortlist ::= sortitem collate sortorder", + /* 139 */ "sortitem ::= expr", + /* 140 */ "sortorder ::= ASC", + /* 141 */ "sortorder ::= DESC", + /* 142 */ "sortorder ::=", + /* 143 */ "collate ::=", + /* 144 */ "collate ::= COLLATE id", + /* 145 */ "groupby_opt ::=", + /* 146 */ "groupby_opt ::= GROUP BY exprlist", + /* 147 */ "having_opt ::=", + /* 148 */ "having_opt ::= HAVING expr", + /* 149 */ "limit_opt ::=", + /* 150 */ "limit_opt ::= LIMIT signed", + /* 151 */ "limit_opt ::= LIMIT signed OFFSET signed", + /* 152 */ "limit_opt ::= LIMIT signed COMMA signed", + /* 153 */ "cmd ::= DELETE FROM fullname where_opt", + /* 154 */ "where_opt ::=", + /* 155 */ "where_opt ::= WHERE expr", + /* 156 */ "cmd ::= UPDATE orconf fullname SET setlist where_opt", + /* 157 */ "setlist ::= setlist COMMA nm EQ expr", + /* 158 */ "setlist ::= nm EQ expr", + /* 159 */ "cmd ::= insert_cmd INTO fullname inscollist_opt VALUES LP itemlist RP", + /* 160 */ "cmd ::= insert_cmd INTO fullname inscollist_opt select", + /* 161 */ "insert_cmd ::= INSERT orconf", + /* 162 */ "insert_cmd ::= REPLACE", + /* 163 */ "itemlist ::= itemlist COMMA expr", + /* 164 */ "itemlist ::= expr", + /* 165 */ "inscollist_opt ::=", + /* 166 */ "inscollist_opt ::= LP inscollist RP", + /* 167 */ "inscollist ::= inscollist COMMA nm", + /* 168 */ "inscollist ::= nm", + /* 169 */ "expr ::= LP expr RP", + /* 170 */ "expr ::= NULL", + /* 171 */ "expr ::= ID", + /* 172 */ "expr ::= JOIN_KW", + /* 173 */ "expr ::= nm DOT nm", + /* 174 */ "expr ::= nm DOT nm DOT nm", + /* 175 */ "expr ::= INTEGER", + /* 176 */ "expr ::= FLOAT", + /* 177 */ "expr ::= STRING", + /* 178 */ "expr ::= BLOB", + /* 179 */ "expr ::= VARIABLE", + /* 180 */ "expr ::= ID LP exprlist RP", + /* 181 */ "expr ::= ID LP STAR RP", + /* 182 */ "expr ::= expr AND expr", + /* 183 */ "expr ::= expr OR expr", + /* 184 */ "expr ::= expr LT expr", + /* 185 */ "expr ::= expr GT expr", + /* 186 */ "expr ::= expr LE expr", + /* 187 */ "expr ::= expr GE expr", + /* 188 */ "expr ::= expr NE expr", + /* 189 */ "expr ::= expr EQ expr", + /* 190 */ "expr ::= expr BITAND expr", + /* 191 */ "expr ::= expr BITOR expr", + /* 192 */ "expr ::= expr LSHIFT expr", + /* 193 */ "expr ::= expr RSHIFT expr", + /* 194 */ "expr ::= expr PLUS expr", + /* 195 */ "expr ::= expr MINUS expr", + /* 196 */ "expr ::= expr STAR expr", + /* 197 */ "expr ::= expr SLASH expr", + /* 198 */ "expr ::= expr REM expr", + /* 199 */ "expr ::= expr CONCAT expr", + /* 200 */ "likeop ::= LIKE", + /* 201 */ "likeop ::= GLOB", + /* 202 */ "likeop ::= NOT LIKE", + /* 203 */ "likeop ::= NOT GLOB", + /* 204 */ "expr ::= expr likeop expr", + /* 205 */ "expr ::= expr ISNULL", + /* 206 */ "expr ::= expr IS NULL", + /* 207 */ "expr ::= expr NOTNULL", + /* 208 */ "expr ::= expr NOT NULL", + /* 209 */ "expr ::= expr IS NOT NULL", + /* 210 */ "expr ::= NOT expr", + /* 211 */ "expr ::= BITNOT expr", + /* 212 */ "expr ::= MINUS expr", + /* 213 */ "expr ::= PLUS expr", + /* 214 */ "expr ::= LP select RP", + /* 215 */ "between_op ::= BETWEEN", + /* 216 */ "between_op ::= NOT BETWEEN", + /* 217 */ "expr ::= expr between_op expr AND expr", + /* 218 */ "in_op ::= IN", + /* 219 */ "in_op ::= NOT IN", + /* 220 */ "expr ::= expr in_op LP exprlist RP", + /* 221 */ "expr ::= expr in_op LP select RP", + /* 222 */ "expr ::= expr in_op nm dbnm", + /* 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 nm dbnm ON fullname LP idxlist RP onconf", + /* 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 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", + /* 248 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", + /* 249 */ "cmd ::= PRAGMA nm dbnm LP nm RP", + /* 250 */ "cmd ::= PRAGMA nm dbnm", + /* 251 */ "plus_num ::= plus_opt number", + /* 252 */ "minus_num ::= MINUS number", + /* 253 */ "number ::= INTEGER", + /* 254 */ "number ::= FLOAT", + /* 255 */ "plus_opt ::= PLUS", + /* 256 */ "plus_opt ::=", + /* 257 */ "cmd ::= CREATE trigger_decl BEGIN trigger_cmd_list END", + /* 258 */ "trigger_decl ::= temp TRIGGER nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", + /* 259 */ "trigger_time ::= BEFORE", + /* 260 */ "trigger_time ::= AFTER", + /* 261 */ "trigger_time ::= INSTEAD OF", + /* 262 */ "trigger_time ::=", + /* 263 */ "trigger_event ::= DELETE", + /* 264 */ "trigger_event ::= 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 SEMI trigger_cmd_list", + /* 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 fullname", + /* 285 */ "cmd ::= ATTACH database_kw_opt ids AS nm key_opt", + /* 286 */ "key_opt ::=", + /* 287 */ "key_opt ::= KEY ids", + /* 288 */ "key_opt ::= KEY BLOB", + /* 289 */ "database_kw_opt ::= DATABASE", + /* 290 */ "database_kw_opt ::=", + /* 291 */ "cmd ::= DETACH database_kw_opt nm", }; #endif /* NDEBUG */ @@ -1238,61 +1229,62 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ ** inside the C code. */ case 146: - case 172: - case 189: -#line 302 "parse.y" -{sqlite3SelectDelete((yypminor->yy179));} -#line 1247 "parse.c" - break; - case 159: - case 177: - case 179: - case 187: + case 176: case 193: - case 204: -#line 549 "parse.y" -{sqlite3ExprDelete((yypminor->yy242));} -#line 1257 "parse.c" +#line 303 "parse.y" +{sqlite3SelectDelete((yypminor->yy107));} +#line 1238 "parse.c" break; - case 160: - case 168: - case 175: - case 178: - case 180: + case 161: + case 181: + case 183: + case 191: + case 197: + case 210: +#line 552 "parse.y" +{sqlite3ExprDelete((yypminor->yy258));} +#line 1248 "parse.c" + break; + case 162: + case 170: + case 179: case 182: - case 192: - case 195: + case 184: + case 186: case 196: case 199: - case 202: -#line 764 "parse.y" -{sqlite3ExprListDelete((yypminor->yy322));} -#line 1272 "parse.c" - break; - case 176: - case 184: - case 185: -#line 369 "parse.y" -{sqlite3SrcListDelete((yypminor->yy307));} -#line 1279 "parse.c" + case 200: + case 203: + case 208: +#line 744 "parse.y" +{sqlite3ExprListDelete((yypminor->yy210));} +#line 1263 "parse.c" break; + case 175: + case 180: case 188: - case 191: - case 198: -#line 441 "parse.y" -{sqlite3IdListDelete((yypminor->yy320));} -#line 1286 "parse.c" + case 189: +#line 428 "parse.y" +{sqlite3SrcListDelete((yypminor->yy259));} +#line 1271 "parse.c" break; - case 212: - case 217: -#line 856 "parse.y" -{sqlite3DeleteTriggerStep((yypminor->yy187));} -#line 1292 "parse.c" + case 192: + case 195: + case 202: +#line 446 "parse.y" +{sqlite3IdListDelete((yypminor->yy272));} +#line 1278 "parse.c" break; - case 214: -#line 840 "parse.y" -{sqlite3IdListDelete((yypminor->yy290).b);} -#line 1297 "parse.c" + case 216: + case 221: +#line 833 "parse.y" +{sqlite3DeleteTriggerStep((yypminor->yy91));} +#line 1284 "parse.c" + break; + case 218: +#line 817 "parse.y" +{sqlite3IdListDelete((yypminor->yy146).b);} +#line 1289 "parse.c" break; default: break; /* If no destructor action specified: do nothing */ } @@ -1464,7 +1456,7 @@ static void yy_shift( /* The following table contains information about every rule that ** is used during the reduce. */ -static struct { +static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ } yyRuleInfo[] = { @@ -1510,213 +1502,207 @@ static struct { { 153, 1 }, { 153, 2 }, { 154, 1 }, - { 154, 2 }, - { 154, 2 }, + { 154, 1 }, { 150, 2 }, { 150, 0 }, - { 155, 3 }, - { 155, 1 }, - { 155, 2 }, - { 155, 2 }, - { 155, 2 }, - { 155, 3 }, - { 155, 3 }, - { 155, 2 }, - { 155, 3 }, - { 155, 3 }, - { 155, 2 }, - { 156, 2 }, - { 156, 3 }, - { 156, 4 }, - { 156, 2 }, - { 156, 5 }, - { 156, 4 }, - { 156, 1 }, - { 156, 2 }, - { 161, 0 }, - { 161, 2 }, + { 157, 3 }, + { 157, 1 }, + { 157, 2 }, + { 157, 2 }, + { 157, 2 }, + { 157, 2 }, + { 158, 2 }, + { 158, 3 }, + { 158, 4 }, + { 158, 2 }, + { 158, 5 }, + { 158, 4 }, + { 158, 1 }, + { 158, 2 }, + { 163, 0 }, { 163, 2 }, - { 163, 3 }, - { 163, 3 }, - { 163, 3 }, - { 164, 2 }, - { 164, 2 }, - { 164, 1 }, - { 164, 1 }, - { 162, 3 }, - { 162, 2 }, - { 165, 0 }, { 165, 2 }, - { 165, 2 }, - { 145, 0 }, - { 145, 2 }, - { 166, 3 }, + { 165, 3 }, + { 165, 3 }, + { 165, 3 }, + { 166, 2 }, { 166, 2 }, { 166, 1 }, + { 166, 1 }, + { 164, 3 }, + { 164, 2 }, + { 167, 0 }, { 167, 2 }, - { 167, 6 }, - { 167, 5 }, - { 167, 3 }, - { 167, 10 }, - { 169, 0 }, - { 169, 1 }, - { 157, 0 }, - { 157, 3 }, - { 170, 0 }, - { 170, 2 }, + { 167, 2 }, + { 145, 0 }, + { 145, 2 }, + { 168, 3 }, + { 168, 2 }, + { 168, 1 }, + { 169, 2 }, + { 169, 6 }, + { 169, 5 }, + { 169, 3 }, + { 169, 10 }, + { 171, 0 }, { 171, 1 }, - { 171, 1 }, - { 171, 1 }, - { 171, 1 }, - { 171, 1 }, - { 136, 4 }, + { 159, 0 }, + { 159, 3 }, + { 172, 0 }, + { 172, 2 }, + { 173, 1 }, + { 173, 1 }, + { 173, 1 }, + { 136, 3 }, { 136, 7 }, - { 136, 4 }, + { 136, 3 }, { 136, 1 }, { 146, 1 }, { 146, 3 }, - { 173, 1 }, - { 173, 2 }, - { 173, 1 }, - { 173, 1 }, - { 172, 9 }, - { 174, 1 }, - { 174, 1 }, - { 174, 0 }, - { 182, 2 }, - { 182, 0 }, - { 175, 3 }, - { 175, 2 }, - { 175, 4 }, - { 183, 2 }, - { 183, 1 }, - { 183, 0 }, - { 176, 0 }, - { 176, 2 }, - { 185, 2 }, - { 185, 0 }, - { 184, 6 }, - { 184, 7 }, - { 189, 1 }, - { 189, 1 }, + { 177, 1 }, + { 177, 2 }, + { 177, 1 }, + { 177, 1 }, + { 176, 9 }, + { 178, 1 }, + { 178, 1 }, + { 178, 0 }, + { 186, 2 }, + { 186, 0 }, + { 179, 3 }, + { 179, 2 }, + { 179, 4 }, + { 187, 2 }, + { 187, 1 }, + { 187, 0 }, + { 180, 0 }, + { 180, 2 }, + { 189, 2 }, + { 189, 0 }, + { 188, 6 }, + { 188, 7 }, + { 193, 1 }, + { 193, 1 }, { 143, 0 }, { 143, 2 }, - { 186, 1 }, - { 186, 1 }, - { 186, 2 }, - { 186, 3 }, - { 186, 4 }, - { 187, 2 }, - { 187, 0 }, - { 188, 4 }, - { 188, 0 }, - { 180, 0 }, - { 180, 3 }, - { 192, 5 }, - { 192, 3 }, - { 193, 1 }, - { 158, 1 }, - { 158, 1 }, - { 158, 0 }, - { 194, 0 }, - { 194, 2 }, - { 178, 0 }, - { 178, 3 }, - { 179, 0 }, - { 179, 2 }, - { 181, 0 }, - { 181, 2 }, - { 181, 4 }, - { 181, 4 }, - { 136, 5 }, - { 177, 0 }, - { 177, 2 }, - { 136, 7 }, + { 175, 2 }, + { 190, 1 }, + { 190, 1 }, + { 190, 2 }, + { 190, 3 }, + { 190, 4 }, + { 191, 2 }, + { 191, 0 }, + { 192, 4 }, + { 192, 0 }, + { 184, 0 }, + { 184, 3 }, { 196, 5 }, { 196, 3 }, - { 136, 9 }, - { 136, 6 }, - { 197, 2 }, { 197, 1 }, - { 199, 3 }, - { 199, 1 }, + { 160, 1 }, + { 160, 1 }, + { 160, 0 }, { 198, 0 }, - { 198, 3 }, - { 191, 3 }, - { 191, 1 }, - { 159, 3 }, - { 159, 1 }, - { 159, 1 }, - { 159, 1 }, - { 159, 3 }, - { 159, 5 }, - { 159, 1 }, - { 159, 1 }, - { 159, 1 }, - { 159, 1 }, - { 159, 1 }, - { 159, 4 }, - { 159, 4 }, - { 159, 3 }, - { 159, 3 }, - { 159, 3 }, - { 159, 3 }, - { 159, 3 }, - { 159, 3 }, - { 159, 3 }, - { 159, 3 }, - { 159, 3 }, - { 159, 3 }, - { 159, 3 }, - { 159, 3 }, - { 159, 3 }, - { 159, 4 }, - { 200, 1 }, - { 200, 1 }, - { 159, 3 }, - { 159, 3 }, - { 159, 3 }, - { 159, 3 }, - { 159, 3 }, - { 159, 3 }, - { 159, 2 }, - { 159, 3 }, - { 159, 2 }, - { 159, 3 }, - { 159, 4 }, - { 159, 2 }, - { 159, 2 }, - { 159, 2 }, - { 159, 2 }, - { 159, 3 }, - { 159, 5 }, - { 159, 6 }, - { 159, 5 }, - { 159, 5 }, - { 159, 6 }, - { 159, 6 }, - { 159, 4 }, - { 159, 5 }, - { 159, 5 }, - { 202, 5 }, - { 202, 4 }, - { 203, 2 }, - { 203, 0 }, + { 198, 2 }, + { 182, 0 }, + { 182, 3 }, + { 183, 0 }, + { 183, 2 }, + { 185, 0 }, + { 185, 2 }, + { 185, 4 }, + { 185, 4 }, + { 136, 4 }, + { 181, 0 }, + { 181, 2 }, + { 136, 6 }, + { 200, 5 }, + { 200, 3 }, + { 136, 8 }, + { 136, 5 }, + { 201, 2 }, { 201, 1 }, - { 201, 0 }, + { 203, 3 }, + { 203, 1 }, + { 202, 0 }, + { 202, 3 }, { 195, 3 }, { 195, 1 }, + { 161, 3 }, + { 161, 1 }, + { 161, 1 }, + { 161, 1 }, + { 161, 3 }, + { 161, 5 }, + { 161, 1 }, + { 161, 1 }, + { 161, 1 }, + { 161, 1 }, + { 161, 1 }, + { 161, 4 }, + { 161, 4 }, + { 161, 3 }, + { 161, 3 }, + { 161, 3 }, + { 161, 3 }, + { 161, 3 }, + { 161, 3 }, + { 161, 3 }, + { 161, 3 }, + { 161, 3 }, + { 161, 3 }, + { 161, 3 }, + { 161, 3 }, + { 161, 3 }, + { 161, 3 }, + { 161, 3 }, + { 161, 3 }, + { 161, 3 }, + { 161, 3 }, { 204, 1 }, - { 204, 0 }, - { 136, 12 }, + { 204, 1 }, + { 204, 2 }, + { 204, 2 }, + { 161, 3 }, + { 161, 2 }, + { 161, 3 }, + { 161, 2 }, + { 161, 3 }, + { 161, 4 }, + { 161, 2 }, + { 161, 2 }, + { 161, 2 }, + { 161, 2 }, + { 161, 3 }, { 205, 1 }, - { 205, 0 }, - { 160, 0 }, - { 160, 3 }, - { 168, 5 }, - { 168, 3 }, + { 205, 2 }, + { 161, 5 }, { 206, 1 }, - { 136, 4 }, + { 206, 2 }, + { 161, 5 }, + { 161, 5 }, + { 161, 4 }, + { 161, 5 }, + { 208, 5 }, + { 208, 4 }, + { 209, 2 }, + { 209, 0 }, + { 207, 1 }, + { 207, 0 }, + { 199, 3 }, + { 199, 1 }, + { 210, 1 }, + { 210, 0 }, + { 136, 11 }, + { 211, 1 }, + { 211, 0 }, + { 162, 0 }, + { 162, 3 }, + { 170, 5 }, + { 170, 3 }, + { 212, 1 }, + { 136, 3 }, { 136, 1 }, { 136, 2 }, { 136, 5 }, @@ -1725,45 +1711,46 @@ static struct { { 136, 5 }, { 136, 6 }, { 136, 3 }, - { 207, 2 }, - { 208, 2 }, - { 210, 1 }, - { 210, 1 }, - { 209, 1 }, - { 209, 0 }, - { 136, 5 }, - { 211, 11 }, + { 155, 2 }, + { 156, 2 }, + { 214, 1 }, + { 214, 1 }, { 213, 1 }, - { 213, 1 }, - { 213, 2 }, { 213, 0 }, - { 214, 1 }, - { 214, 1 }, - { 214, 1 }, - { 214, 3 }, - { 215, 0 }, - { 215, 3 }, - { 215, 3 }, - { 216, 0 }, - { 216, 2 }, - { 212, 3 }, - { 212, 0 }, - { 217, 6 }, - { 217, 8 }, - { 217, 5 }, - { 217, 4 }, + { 136, 5 }, + { 215, 10 }, { 217, 1 }, - { 159, 4 }, - { 159, 6 }, - { 159, 6 }, - { 159, 6 }, - { 136, 4 }, - { 136, 6 }, - { 219, 0 }, - { 219, 2 }, - { 219, 2 }, + { 217, 1 }, + { 217, 2 }, + { 217, 0 }, { 218, 1 }, - { 218, 0 }, + { 218, 1 }, + { 218, 1 }, + { 218, 3 }, + { 219, 0 }, + { 219, 3 }, + { 219, 3 }, + { 220, 0 }, + { 220, 2 }, + { 216, 3 }, + { 216, 0 }, + { 221, 6 }, + { 221, 8 }, + { 221, 5 }, + { 221, 4 }, + { 221, 1 }, + { 161, 4 }, + { 161, 6 }, + { 174, 1 }, + { 174, 1 }, + { 174, 1 }, + { 136, 3 }, + { 136, 6 }, + { 223, 0 }, + { 223, 2 }, + { 223, 2 }, + { 222, 1 }, + { 222, 0 }, { 136, 3 }, }; @@ -1802,91 +1789,98 @@ static void yy_reduce( ** break; */ case 5: -#line 77 "parse.y" +#line 86 "parse.y" { sqlite3FinishCoding(pParse); } -#line 1809 "parse.c" +#line 1796 "parse.c" break; case 6: -#line 78 "parse.y" +#line 87 "parse.y" { sqlite3BeginParse(pParse, 1); } -#line 1814 "parse.c" +#line 1801 "parse.c" break; case 7: -#line 79 "parse.y" +#line 88 "parse.y" { sqlite3BeginParse(pParse, 0); } -#line 1819 "parse.c" +#line 1806 "parse.c" break; case 8: -#line 84 "parse.y" -{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy372);} -#line 1824 "parse.c" +#line 93 "parse.y" +{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy284);} +#line 1811 "parse.c" break; case 12: -#line 89 "parse.y" -{yygotominor.yy372 = TK_DEFERRED;} -#line 1829 "parse.c" +#line 98 "parse.y" +{yygotominor.yy284 = TK_DEFERRED;} +#line 1816 "parse.c" break; case 13: case 14: case 15: -#line 90 "parse.y" -{yygotominor.yy372 = yymsp[0].major;} -#line 1836 "parse.c" + case 99: + case 101: + case 102: +#line 99 "parse.y" +{yygotominor.yy284 = yymsp[0].major;} +#line 1826 "parse.c" break; case 16: case 17: -#line 93 "parse.y" +#line 102 "parse.y" {sqlite3CommitTransaction(pParse);} -#line 1842 "parse.c" +#line 1832 "parse.c" break; case 18: -#line 95 "parse.y" +#line 104 "parse.y" {sqlite3RollbackTransaction(pParse);} -#line 1847 "parse.c" +#line 1837 "parse.c" break; case 20: -#line 100 "parse.y" +#line 109 "parse.y" { - sqlite3StartTable(pParse,&yymsp[-4].minor.yy0,&yymsp[-1].minor.yy298,&yymsp[0].minor.yy298,yymsp[-3].minor.yy372,0); + sqlite3StartTable(pParse,&yymsp[-4].minor.yy0,&yymsp[-1].minor.yy98,&yymsp[0].minor.yy98,yymsp[-3].minor.yy284,0); } -#line 1854 "parse.c" +#line 1844 "parse.c" break; case 21: - case 78: - case 112: -#line 104 "parse.y" -{yygotominor.yy372 = 1;} -#line 1861 "parse.c" + case 72: + case 104: + case 216: + case 219: +#line 113 "parse.y" +{yygotominor.yy284 = 1;} +#line 1853 "parse.c" break; case 22: - case 77: - case 79: - case 90: - case 113: - case 114: -#line 105 "parse.y" -{yygotominor.yy372 = 0;} -#line 1871 "parse.c" + case 71: + case 73: + case 84: + case 105: + case 106: + case 215: + case 218: +#line 114 "parse.y" +{yygotominor.yy284 = 0;} +#line 1865 "parse.c" break; case 23: -#line 106 "parse.y" +#line 115 "parse.y" { sqlite3EndTable(pParse,&yymsp[0].minor.yy0,0); } -#line 1878 "parse.c" +#line 1872 "parse.c" break; case 24: -#line 109 "parse.y" +#line 118 "parse.y" { - sqlite3EndTable(pParse,0,yymsp[0].minor.yy179); - sqlite3SelectDelete(yymsp[0].minor.yy179); + sqlite3EndTable(pParse,0,yymsp[0].minor.yy107); + sqlite3SelectDelete(yymsp[0].minor.yy107); } -#line 1886 "parse.c" +#line 1880 "parse.c" break; case 28: -#line 121 "parse.y" -{sqlite3AddColumn(pParse,&yymsp[0].minor.yy298);} -#line 1891 "parse.c" +#line 130 "parse.y" +{sqlite3AddColumn(pParse,&yymsp[0].minor.yy98);} +#line 1885 "parse.c" break; case 29: case 30: @@ -1894,638 +1888,600 @@ static void yy_reduce( case 32: case 33: case 34: - case 259: - case 260: -#line 127 "parse.y" -{yygotominor.yy298 = yymsp[0].minor.yy0;} -#line 1903 "parse.c" + case 253: + case 254: +#line 136 "parse.y" +{yygotominor.yy98 = yymsp[0].minor.yy0;} +#line 1897 "parse.c" break; case 36: -#line 176 "parse.y" -{sqlite3AddColumnType(pParse,&yymsp[0].minor.yy298,&yymsp[0].minor.yy298);} -#line 1908 "parse.c" +#line 185 "parse.y" +{sqlite3AddColumnType(pParse,&yymsp[0].minor.yy98,&yymsp[0].minor.yy98);} +#line 1902 "parse.c" break; case 37: -#line 177 "parse.y" -{sqlite3AddColumnType(pParse,&yymsp[-3].minor.yy298,&yymsp[0].minor.yy0);} -#line 1913 "parse.c" +#line 186 "parse.y" +{sqlite3AddColumnType(pParse,&yymsp[-3].minor.yy98,&yymsp[0].minor.yy0);} +#line 1907 "parse.c" break; case 38: -#line 179 "parse.y" -{sqlite3AddColumnType(pParse,&yymsp[-5].minor.yy298,&yymsp[0].minor.yy0);} -#line 1918 "parse.c" +#line 188 "parse.y" +{sqlite3AddColumnType(pParse,&yymsp[-5].minor.yy98,&yymsp[0].minor.yy0);} +#line 1912 "parse.c" break; case 39: - case 132: - case 151: - case 247: - case 257: - case 258: -#line 181 "parse.y" -{yygotominor.yy298 = yymsp[0].minor.yy298;} -#line 1928 "parse.c" + case 112: + case 113: + case 124: + case 144: + case 241: + case 251: + case 252: +#line 190 "parse.y" +{yygotominor.yy98 = yymsp[0].minor.yy98;} +#line 1924 "parse.c" break; case 40: -#line 182 "parse.y" -{yygotominor.yy298.z=yymsp[-1].minor.yy298.z; yygotominor.yy298.n=yymsp[0].minor.yy298.n+(yymsp[0].minor.yy298.z-yymsp[-1].minor.yy298.z);} -#line 1933 "parse.c" +#line 191 "parse.y" +{yygotominor.yy98.z=yymsp[-1].minor.yy98.z; yygotominor.yy98.n=yymsp[0].minor.yy98.n+(yymsp[0].minor.yy98.z-yymsp[-1].minor.yy98.z);} +#line 1929 "parse.c" break; case 41: +#line 193 "parse.y" +{ yygotominor.yy284 = atoi(yymsp[0].minor.yy98.z); } +#line 1934 "parse.c" + break; case 42: -#line 184 "parse.y" -{ yygotominor.yy372 = atoi(yymsp[0].minor.yy0.z); } +#line 194 "parse.y" +{ yygotominor.yy284 = -atoi(yymsp[0].minor.yy98.z); } #line 1939 "parse.c" break; - case 43: -#line 186 "parse.y" -{ yygotominor.yy372 = -atoi(yymsp[0].minor.yy0.z); } -#line 1944 "parse.c" - break; + case 47: case 48: +#line 199 "parse.y" +{sqlite3AddDefaultValue(pParse,&yymsp[0].minor.yy98,0);} +#line 1945 "parse.c" + break; case 49: - case 50: - case 51: - case 53: - case 54: -#line 191 "parse.y" -{sqlite3AddDefaultValue(pParse,&yymsp[0].minor.yy0,0);} -#line 1954 "parse.c" +#line 201 "parse.y" +{sqlite3AddDefaultValue(pParse,&yymsp[0].minor.yy98,1);} +#line 1950 "parse.c" break; case 52: - case 55: -#line 195 "parse.y" -{sqlite3AddDefaultValue(pParse,&yymsp[0].minor.yy0,1);} +#line 208 "parse.y" +{sqlite3AddNotNull(pParse, yymsp[0].minor.yy284);} +#line 1955 "parse.c" + break; + case 53: +#line 209 "parse.y" +{sqlite3AddPrimaryKey(pParse,0,yymsp[0].minor.yy284);} #line 1960 "parse.c" break; - case 58: -#line 205 "parse.y" -{sqlite3AddNotNull(pParse, yymsp[0].minor.yy372);} + case 54: +#line 210 "parse.y" +{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy284,0,0);} #line 1965 "parse.c" break; - case 59: -#line 206 "parse.y" -{sqlite3AddPrimaryKey(pParse,0,yymsp[0].minor.yy372);} + case 56: +#line 213 "parse.y" +{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy98,yymsp[-1].minor.yy210,yymsp[0].minor.yy284);} #line 1970 "parse.c" break; - case 60: -#line 207 "parse.y" -{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy372,0,0);} + case 57: +#line 214 "parse.y" +{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy284);} #line 1975 "parse.c" break; - case 62: -#line 210 "parse.y" -{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy298,yymsp[-1].minor.yy322,yymsp[0].minor.yy372);} + case 58: +#line 215 "parse.y" +{sqlite3AddCollateType(pParse, yymsp[0].minor.yy98.z, yymsp[0].minor.yy98.n);} #line 1980 "parse.c" break; - case 63: -#line 211 "parse.y" -{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy372);} + case 59: +#line 223 "parse.y" +{ yygotominor.yy284 = OE_Restrict * 0x010101; } #line 1985 "parse.c" break; - case 64: -#line 212 "parse.y" -{sqlite3AddCollateType(pParse, yymsp[0].minor.yy298.z, yymsp[0].minor.yy298.n);} + case 60: +#line 224 "parse.y" +{ yygotominor.yy284 = (yymsp[-1].minor.yy284 & yymsp[0].minor.yy47.mask) | yymsp[0].minor.yy47.value; } #line 1990 "parse.c" break; - case 65: -#line 220 "parse.y" -{ yygotominor.yy372 = OE_Restrict * 0x010101; } + case 61: +#line 226 "parse.y" +{ yygotominor.yy47.value = 0; yygotominor.yy47.mask = 0x000000; } #line 1995 "parse.c" break; - case 66: -#line 221 "parse.y" -{ yygotominor.yy372 = (yymsp[-1].minor.yy372 & yymsp[0].minor.yy407.mask) | yymsp[0].minor.yy407.value; } + case 62: +#line 227 "parse.y" +{ yygotominor.yy47.value = yymsp[0].minor.yy284; yygotominor.yy47.mask = 0x0000ff; } #line 2000 "parse.c" break; - case 67: -#line 223 "parse.y" -{ yygotominor.yy407.value = 0; yygotominor.yy407.mask = 0x000000; } + case 63: +#line 228 "parse.y" +{ yygotominor.yy47.value = yymsp[0].minor.yy284<<8; yygotominor.yy47.mask = 0x00ff00; } #line 2005 "parse.c" break; - case 68: -#line 224 "parse.y" -{ yygotominor.yy407.value = yymsp[0].minor.yy372; yygotominor.yy407.mask = 0x0000ff; } + case 64: +#line 229 "parse.y" +{ yygotominor.yy47.value = yymsp[0].minor.yy284<<16; yygotominor.yy47.mask = 0xff0000; } #line 2010 "parse.c" break; - case 69: -#line 225 "parse.y" -{ yygotominor.yy407.value = yymsp[0].minor.yy372<<8; yygotominor.yy407.mask = 0x00ff00; } + case 65: +#line 231 "parse.y" +{ yygotominor.yy284 = OE_SetNull; } #line 2015 "parse.c" break; - case 70: -#line 226 "parse.y" -{ yygotominor.yy407.value = yymsp[0].minor.yy372<<16; yygotominor.yy407.mask = 0xff0000; } + case 66: +#line 232 "parse.y" +{ yygotominor.yy284 = OE_SetDflt; } #line 2020 "parse.c" break; - case 71: -#line 228 "parse.y" -{ yygotominor.yy372 = OE_SetNull; } + case 67: +#line 233 "parse.y" +{ yygotominor.yy284 = OE_Cascade; } #line 2025 "parse.c" break; - case 72: -#line 229 "parse.y" -{ yygotominor.yy372 = OE_SetDflt; } + case 68: +#line 234 "parse.y" +{ yygotominor.yy284 = OE_Restrict; } #line 2030 "parse.c" break; - case 73: -#line 230 "parse.y" -{ yygotominor.yy372 = OE_Cascade; } -#line 2035 "parse.c" + case 69: + case 70: + case 85: + case 87: + case 89: + case 90: + case 161: +#line 236 "parse.y" +{yygotominor.yy284 = yymsp[0].minor.yy284;} +#line 2041 "parse.c" break; - case 74: -#line 231 "parse.y" -{ yygotominor.yy372 = OE_Restrict; } -#line 2040 "parse.c" + case 80: +#line 253 "parse.y" +{sqlite3AddPrimaryKey(pParse,yymsp[-2].minor.yy210,yymsp[0].minor.yy284);} +#line 2046 "parse.c" break; - case 75: - case 76: - case 91: - case 168: -#line 233 "parse.y" -{yygotominor.yy372 = yymsp[0].minor.yy372;} -#line 2048 "parse.c" + case 81: +#line 255 "parse.y" +{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy210,yymsp[0].minor.yy284,0,0);} +#line 2051 "parse.c" + break; + case 83: +#line 258 "parse.y" +{ + sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy210, &yymsp[-3].minor.yy98, yymsp[-2].minor.yy210, yymsp[-1].minor.yy284); + sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy284); +} +#line 2059 "parse.c" break; case 86: -#line 250 "parse.y" -{sqlite3AddPrimaryKey(pParse,yymsp[-2].minor.yy322,yymsp[0].minor.yy372);} -#line 2053 "parse.c" + case 88: +#line 272 "parse.y" +{yygotominor.yy284 = OE_Default;} +#line 2065 "parse.c" break; - case 87: -#line 252 "parse.y" -{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy322,yymsp[0].minor.yy372,0,0);} -#line 2058 "parse.c" - break; - case 89: -#line 255 "parse.y" -{ - sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy322, &yymsp[-3].minor.yy298, yymsp[-2].minor.yy322, yymsp[-1].minor.yy372); - sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy372); -} -#line 2066 "parse.c" + case 91: +#line 277 "parse.y" +{yygotominor.yy284 = OE_Ignore;} +#line 2070 "parse.c" break; case 92: - case 94: -#line 269 "parse.y" -{ yygotominor.yy372 = OE_Default; } -#line 2072 "parse.c" + case 162: +#line 278 "parse.y" +{yygotominor.yy284 = OE_Replace;} +#line 2076 "parse.c" break; case 93: - case 95: -#line 270 "parse.y" -{ yygotominor.yy372 = yymsp[0].minor.yy372; } -#line 2078 "parse.c" - break; - case 96: -#line 273 "parse.y" -{ yygotominor.yy372 = OE_Rollback; } +#line 282 "parse.y" +{ + sqlite3DropTable(pParse, yymsp[0].minor.yy259, 0); +} #line 2083 "parse.c" break; - case 97: - case 241: -#line 274 "parse.y" -{ yygotominor.yy372 = OE_Abort; } -#line 2089 "parse.c" - break; - case 98: -#line 275 "parse.y" -{ yygotominor.yy372 = OE_Fail; } -#line 2094 "parse.c" - break; - case 99: -#line 276 "parse.y" -{ yygotominor.yy372 = OE_Ignore; } -#line 2099 "parse.c" - break; - case 100: -#line 277 "parse.y" -{ yygotominor.yy372 = OE_Replace; } -#line 2104 "parse.c" - break; - case 101: -#line 281 "parse.y" + case 94: +#line 288 "parse.y" { - sqlite3DropTable(pParse, sqlite3SrcListAppend(0,&yymsp[-1].minor.yy298,&yymsp[0].minor.yy298), 0); + sqlite3CreateView(pParse, &yymsp[-6].minor.yy0, &yymsp[-3].minor.yy98, &yymsp[-2].minor.yy98, yymsp[0].minor.yy107, yymsp[-5].minor.yy284); } +#line 2090 "parse.c" + break; + case 95: +#line 291 "parse.y" +{ + sqlite3DropTable(pParse, yymsp[0].minor.yy259, 1); +} +#line 2097 "parse.c" + break; + case 96: +#line 297 "parse.y" +{ + sqlite3Select(pParse, yymsp[0].minor.yy107, SRT_Callback, 0, 0, 0, 0, 0); + sqlite3SelectDelete(yymsp[0].minor.yy107); +} +#line 2105 "parse.c" + break; + case 97: + case 121: +#line 307 "parse.y" +{yygotominor.yy107 = yymsp[0].minor.yy107;} #line 2111 "parse.c" break; - case 102: -#line 287 "parse.y" + case 98: +#line 308 "parse.y" { - sqlite3CreateView(pParse, &yymsp[-6].minor.yy0, &yymsp[-3].minor.yy298, &yymsp[-2].minor.yy298, yymsp[0].minor.yy179, yymsp[-5].minor.yy372); + if( yymsp[0].minor.yy107 ){ + yymsp[0].minor.yy107->op = yymsp[-1].minor.yy284; + yymsp[0].minor.yy107->pPrior = yymsp[-2].minor.yy107; + } + yygotominor.yy107 = yymsp[0].minor.yy107; } -#line 2118 "parse.c" +#line 2122 "parse.c" + break; + case 100: +#line 317 "parse.y" +{yygotominor.yy284 = TK_ALL;} +#line 2127 "parse.c" break; case 103: -#line 290 "parse.y" +#line 321 "parse.y" { - sqlite3DropTable(pParse, sqlite3SrcListAppend(0,&yymsp[-1].minor.yy298,&yymsp[0].minor.yy298), 1); + yygotominor.yy107 = sqlite3SelectNew(yymsp[-6].minor.yy210,yymsp[-5].minor.yy259,yymsp[-4].minor.yy258,yymsp[-3].minor.yy210,yymsp[-2].minor.yy258,yymsp[-1].minor.yy210,yymsp[-7].minor.yy284,yymsp[0].minor.yy404.limit,yymsp[0].minor.yy404.offset); } -#line 2125 "parse.c" - break; - case 104: -#line 296 "parse.y" -{ - sqlite3Select(pParse, yymsp[0].minor.yy179, SRT_Callback, 0, 0, 0, 0, 0); - sqlite3SelectDelete(yymsp[0].minor.yy179); -} -#line 2133 "parse.c" - break; - case 105: - case 129: -#line 306 "parse.y" -{yygotominor.yy179 = yymsp[0].minor.yy179;} -#line 2139 "parse.c" - break; - case 106: -#line 307 "parse.y" -{ - if( yymsp[0].minor.yy179 ){ - yymsp[0].minor.yy179->op = yymsp[-1].minor.yy372; - yymsp[0].minor.yy179->pPrior = yymsp[-2].minor.yy179; - } - yygotominor.yy179 = yymsp[0].minor.yy179; -} -#line 2150 "parse.c" +#line 2134 "parse.c" break; case 107: -#line 315 "parse.y" -{yygotominor.yy372 = TK_UNION;} -#line 2155 "parse.c" + case 238: +#line 342 "parse.y" +{yygotominor.yy210 = yymsp[-1].minor.yy210;} +#line 2140 "parse.c" break; case 108: -#line 316 "parse.y" -{yygotominor.yy372 = TK_ALL;} -#line 2160 "parse.c" + case 135: + case 145: + case 237: +#line 343 "parse.y" +{yygotominor.yy210 = 0;} +#line 2148 "parse.c" break; case 109: -#line 317 "parse.y" -{yygotominor.yy372 = TK_INTERSECT;} -#line 2165 "parse.c" +#line 344 "parse.y" +{ + yygotominor.yy210 = sqlite3ExprListAppend(yymsp[-2].minor.yy210,yymsp[-1].minor.yy258,yymsp[0].minor.yy98.n?&yymsp[0].minor.yy98:0); +} +#line 2155 "parse.c" break; case 110: -#line 318 "parse.y" -{yygotominor.yy372 = TK_EXCEPT;} -#line 2170 "parse.c" +#line 347 "parse.y" +{ + yygotominor.yy210 = sqlite3ExprListAppend(yymsp[-1].minor.yy210, sqlite3Expr(TK_ALL, 0, 0, 0), 0); +} +#line 2162 "parse.c" break; case 111: -#line 320 "parse.y" -{ - yygotominor.yy179 = sqlite3SelectNew(yymsp[-6].minor.yy322,yymsp[-5].minor.yy307,yymsp[-4].minor.yy242,yymsp[-3].minor.yy322,yymsp[-2].minor.yy242,yymsp[-1].minor.yy322,yymsp[-7].minor.yy372,yymsp[0].minor.yy124.limit,yymsp[0].minor.yy124.offset); -} -#line 2177 "parse.c" - break; - case 115: - case 244: -#line 341 "parse.y" -{yygotominor.yy322 = yymsp[-1].minor.yy322;} -#line 2183 "parse.c" - break; - case 116: - case 142: - case 152: - case 243: -#line 342 "parse.y" -{yygotominor.yy322 = 0;} -#line 2191 "parse.c" - break; - case 117: -#line 343 "parse.y" -{ - yygotominor.yy322 = sqlite3ExprListAppend(yymsp[-2].minor.yy322,yymsp[-1].minor.yy242,yymsp[0].minor.yy298.n?&yymsp[0].minor.yy298:0); -} -#line 2198 "parse.c" - break; - case 118: -#line 346 "parse.y" -{ - yygotominor.yy322 = sqlite3ExprListAppend(yymsp[-1].minor.yy322, sqlite3Expr(TK_ALL, 0, 0, 0), 0); -} -#line 2205 "parse.c" - break; - case 119: -#line 349 "parse.y" +#line 350 "parse.y" { Expr *pRight = sqlite3Expr(TK_ALL, 0, 0, 0); - Expr *pLeft = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy298); - yygotominor.yy322 = sqlite3ExprListAppend(yymsp[-3].minor.yy322, sqlite3Expr(TK_DOT, pLeft, pRight, 0), 0); + Expr *pLeft = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy98); + yygotominor.yy210 = sqlite3ExprListAppend(yymsp[-3].minor.yy210, sqlite3Expr(TK_DOT, pLeft, pRight, 0), 0); } -#line 2214 "parse.c" +#line 2171 "parse.c" + break; + case 114: +#line 362 "parse.y" +{yygotominor.yy98.n = 0;} +#line 2176 "parse.c" + break; + case 115: +#line 374 "parse.y" +{yygotominor.yy259 = sqliteMalloc(sizeof(*yygotominor.yy259));} +#line 2181 "parse.c" + break; + case 116: +#line 375 "parse.y" +{yygotominor.yy259 = yymsp[0].minor.yy259;} +#line 2186 "parse.c" + break; + case 117: +#line 380 "parse.y" +{ + yygotominor.yy259 = yymsp[-1].minor.yy259; + if( yygotominor.yy259 && yygotominor.yy259->nSrc>0 ) yygotominor.yy259->a[yygotominor.yy259->nSrc-1].jointype = yymsp[0].minor.yy284; +} +#line 2194 "parse.c" + break; + case 118: +#line 384 "parse.y" +{yygotominor.yy259 = 0;} +#line 2199 "parse.c" + break; + case 119: +#line 385 "parse.y" +{ + yygotominor.yy259 = sqlite3SrcListAppend(yymsp[-5].minor.yy259,&yymsp[-4].minor.yy98,&yymsp[-3].minor.yy98); + if( yymsp[-2].minor.yy98.n ) sqlite3SrcListAddAlias(yygotominor.yy259,&yymsp[-2].minor.yy98); + if( yymsp[-1].minor.yy258 ){ + if( yygotominor.yy259 && yygotominor.yy259->nSrc>1 ){ yygotominor.yy259->a[yygotominor.yy259->nSrc-2].pOn = yymsp[-1].minor.yy258; } + else { sqlite3ExprDelete(yymsp[-1].minor.yy258); } + } + if( yymsp[0].minor.yy272 ){ + if( yygotominor.yy259 && yygotominor.yy259->nSrc>1 ){ yygotominor.yy259->a[yygotominor.yy259->nSrc-2].pUsing = yymsp[0].minor.yy272; } + else { sqlite3IdListDelete(yymsp[0].minor.yy272); } + } +} +#line 2215 "parse.c" break; case 120: - case 121: -#line 359 "parse.y" -{ yygotominor.yy298 = yymsp[0].minor.yy298; } -#line 2220 "parse.c" +#line 398 "parse.y" +{ + yygotominor.yy259 = sqlite3SrcListAppend(yymsp[-6].minor.yy259,0,0); + yygotominor.yy259->a[yygotominor.yy259->nSrc-1].pSelect = yymsp[-4].minor.yy107; + if( yymsp[-2].minor.yy98.n ) sqlite3SrcListAddAlias(yygotominor.yy259,&yymsp[-2].minor.yy98); + if( yymsp[-1].minor.yy258 ){ + if( yygotominor.yy259 && yygotominor.yy259->nSrc>1 ){ yygotominor.yy259->a[yygotominor.yy259->nSrc-2].pOn = yymsp[-1].minor.yy258; } + else { sqlite3ExprDelete(yymsp[-1].minor.yy258); } + } + if( yymsp[0].minor.yy272 ){ + if( yygotominor.yy259 && yygotominor.yy259->nSrc>1 ){ yygotominor.yy259->a[yygotominor.yy259->nSrc-2].pUsing = yymsp[0].minor.yy272; } + else { sqlite3IdListDelete(yymsp[0].minor.yy272); } + } +} +#line 2232 "parse.c" break; case 122: -#line 361 "parse.y" -{ yygotominor.yy298.n = 0; } -#line 2225 "parse.c" +#line 419 "parse.y" +{ + yygotominor.yy107 = sqlite3SelectNew(0,yymsp[0].minor.yy259,0,0,0,0,0,-1,0); +} +#line 2239 "parse.c" break; case 123: -#line 373 "parse.y" -{yygotominor.yy307 = sqliteMalloc(sizeof(*yygotominor.yy307));} -#line 2230 "parse.c" - break; - case 124: -#line 374 "parse.y" -{yygotominor.yy307 = yymsp[0].minor.yy307;} -#line 2235 "parse.c" +#line 424 "parse.y" +{yygotominor.yy98.z=0; yygotominor.yy98.n=0;} +#line 2244 "parse.c" break; case 125: -#line 379 "parse.y" -{ - yygotominor.yy307 = yymsp[-1].minor.yy307; - if( yygotominor.yy307 && yygotominor.yy307->nSrc>0 ) yygotominor.yy307->a[yygotominor.yy307->nSrc-1].jointype = yymsp[0].minor.yy372; -} -#line 2243 "parse.c" +#line 429 "parse.y" +{yygotominor.yy259 = sqlite3SrcListAppend(0,&yymsp[-1].minor.yy98,&yymsp[0].minor.yy98);} +#line 2249 "parse.c" break; case 126: -#line 383 "parse.y" -{yygotominor.yy307 = 0;} -#line 2248 "parse.c" - break; case 127: -#line 384 "parse.y" -{ - yygotominor.yy307 = sqlite3SrcListAppend(yymsp[-5].minor.yy307,&yymsp[-4].minor.yy298,&yymsp[-3].minor.yy298); - if( yymsp[-2].minor.yy298.n ) sqlite3SrcListAddAlias(yygotominor.yy307,&yymsp[-2].minor.yy298); - if( yymsp[-1].minor.yy242 ){ - if( yygotominor.yy307 && yygotominor.yy307->nSrc>1 ){ yygotominor.yy307->a[yygotominor.yy307->nSrc-2].pOn = yymsp[-1].minor.yy242; } - else { sqlite3ExprDelete(yymsp[-1].minor.yy242); } - } - if( yymsp[0].minor.yy320 ){ - if( yygotominor.yy307 && yygotominor.yy307->nSrc>1 ){ yygotominor.yy307->a[yygotominor.yy307->nSrc-2].pUsing = yymsp[0].minor.yy320; } - else { sqlite3IdListDelete(yymsp[0].minor.yy320); } - } -} -#line 2264 "parse.c" +#line 433 "parse.y" +{ yygotominor.yy284 = JT_INNER; } +#line 2255 "parse.c" break; case 128: -#line 397 "parse.y" -{ - yygotominor.yy307 = sqlite3SrcListAppend(yymsp[-6].minor.yy307,0,0); - yygotominor.yy307->a[yygotominor.yy307->nSrc-1].pSelect = yymsp[-4].minor.yy179; - if( yymsp[-2].minor.yy298.n ) sqlite3SrcListAddAlias(yygotominor.yy307,&yymsp[-2].minor.yy298); - if( yymsp[-1].minor.yy242 ){ - if( yygotominor.yy307 && yygotominor.yy307->nSrc>1 ){ yygotominor.yy307->a[yygotominor.yy307->nSrc-2].pOn = yymsp[-1].minor.yy242; } - else { sqlite3ExprDelete(yymsp[-1].minor.yy242); } - } - if( yymsp[0].minor.yy320 ){ - if( yygotominor.yy307 && yygotominor.yy307->nSrc>1 ){ yygotominor.yy307->a[yygotominor.yy307->nSrc-2].pUsing = yymsp[0].minor.yy320; } - else { sqlite3IdListDelete(yymsp[0].minor.yy320); } - } -} -#line 2281 "parse.c" +#line 435 "parse.y" +{ yygotominor.yy284 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); } +#line 2260 "parse.c" + break; + case 129: +#line 436 "parse.y" +{ yygotominor.yy284 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy98,0); } +#line 2265 "parse.c" break; case 130: -#line 418 "parse.y" -{ - yygotominor.yy179 = sqlite3SelectNew(0,yymsp[0].minor.yy307,0,0,0,0,0,-1,0); -} -#line 2288 "parse.c" +#line 438 "parse.y" +{ yygotominor.yy284 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy98,&yymsp[-1].minor.yy98); } +#line 2270 "parse.c" break; case 131: -#line 423 "parse.y" -{yygotominor.yy298.z=0; yygotominor.yy298.n=0;} -#line 2293 "parse.c" + case 139: + case 148: + case 155: + case 226: + case 228: + case 232: +#line 442 "parse.y" +{yygotominor.yy258 = yymsp[0].minor.yy258;} +#line 2281 "parse.c" + break; + case 132: + case 147: + case 154: + case 227: + case 229: + case 233: +#line 443 "parse.y" +{yygotominor.yy258 = 0;} +#line 2291 "parse.c" break; case 133: - case 134: -#line 428 "parse.y" -{ yygotominor.yy372 = JT_INNER; } -#line 2299 "parse.c" + case 166: +#line 447 "parse.y" +{yygotominor.yy272 = yymsp[-1].minor.yy272;} +#line 2297 "parse.c" break; - case 135: -#line 430 "parse.y" -{ yygotominor.yy372 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); } -#line 2304 "parse.c" + case 134: + case 165: +#line 448 "parse.y" +{yygotominor.yy272 = 0;} +#line 2303 "parse.c" break; case 136: -#line 431 "parse.y" -{ yygotominor.yy372 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy298,0); } + case 146: +#line 459 "parse.y" +{yygotominor.yy210 = yymsp[0].minor.yy210;} #line 2309 "parse.c" break; case 137: -#line 433 "parse.y" -{ yygotominor.yy372 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy298,&yymsp[-1].minor.yy298); } -#line 2314 "parse.c" +#line 460 "parse.y" +{ + yygotominor.yy210 = sqlite3ExprListAppend(yymsp[-4].minor.yy210,yymsp[-2].minor.yy258,yymsp[-1].minor.yy98.n>0?&yymsp[-1].minor.yy98:0); + if( yygotominor.yy210 ) yygotominor.yy210->a[yygotominor.yy210->nExpr-1].sortOrder = yymsp[0].minor.yy284; +} +#line 2317 "parse.c" break; case 138: - case 146: - case 155: - case 162: - case 232: - case 234: - case 238: -#line 437 "parse.y" -{yygotominor.yy242 = yymsp[0].minor.yy242;} +#line 464 "parse.y" +{ + yygotominor.yy210 = sqlite3ExprListAppend(0,yymsp[-2].minor.yy258,yymsp[-1].minor.yy98.n>0?&yymsp[-1].minor.yy98:0); + if( yygotominor.yy210 && yygotominor.yy210->a ) yygotominor.yy210->a[0].sortOrder = yymsp[0].minor.yy284; +} #line 2325 "parse.c" break; - case 139: - case 154: - case 161: - case 233: - case 235: - case 239: -#line 438 "parse.y" -{yygotominor.yy242 = 0;} -#line 2335 "parse.c" - break; case 140: - case 173: -#line 442 "parse.y" -{yygotominor.yy320 = yymsp[-1].minor.yy320;} -#line 2341 "parse.c" + case 142: +#line 473 "parse.y" +{yygotominor.yy284 = SQLITE_SO_ASC;} +#line 2331 "parse.c" break; case 141: - case 172: -#line 443 "parse.y" -{yygotominor.yy320 = 0;} -#line 2347 "parse.c" +#line 474 "parse.y" +{yygotominor.yy284 = SQLITE_SO_DESC;} +#line 2336 "parse.c" break; case 143: - case 153: -#line 454 "parse.y" -{yygotominor.yy322 = yymsp[0].minor.yy322;} -#line 2353 "parse.c" +#line 476 "parse.y" +{yygotominor.yy98.z = 0; yygotominor.yy98.n = 0;} +#line 2341 "parse.c" break; - case 144: -#line 455 "parse.y" -{ - yygotominor.yy322 = sqlite3ExprListAppend(yymsp[-4].minor.yy322,yymsp[-2].minor.yy242,yymsp[-1].minor.yy298.n>0?&yymsp[-1].minor.yy298:0); - if( yygotominor.yy322 ) yygotominor.yy322->a[yygotominor.yy322->nExpr-1].sortOrder = yymsp[0].minor.yy372; -} -#line 2361 "parse.c" - break; - case 145: -#line 459 "parse.y" -{ - yygotominor.yy322 = sqlite3ExprListAppend(0,yymsp[-2].minor.yy242,yymsp[-1].minor.yy298.n>0?&yymsp[-1].minor.yy298:0); - if( yygotominor.yy322 && yygotominor.yy322->a ) yygotominor.yy322->a[0].sortOrder = yymsp[0].minor.yy372; -} -#line 2369 "parse.c" - break; - case 147: case 149: -#line 468 "parse.y" -{yygotominor.yy372 = SQLITE_SO_ASC;} -#line 2375 "parse.c" - break; - case 148: -#line 469 "parse.y" -{yygotominor.yy372 = SQLITE_SO_DESC;} -#line 2380 "parse.c" +#line 490 "parse.y" +{yygotominor.yy404.limit = -1; yygotominor.yy404.offset = 0;} +#line 2346 "parse.c" break; case 150: -#line 471 "parse.y" -{yygotominor.yy298.z = 0; yygotominor.yy298.n = 0;} -#line 2385 "parse.c" +#line 491 "parse.y" +{yygotominor.yy404.limit = yymsp[0].minor.yy284; yygotominor.yy404.offset = 0;} +#line 2351 "parse.c" + break; + case 151: +#line 493 "parse.y" +{yygotominor.yy404.limit = yymsp[-2].minor.yy284; yygotominor.yy404.offset = yymsp[0].minor.yy284;} +#line 2356 "parse.c" + break; + case 152: +#line 495 "parse.y" +{yygotominor.yy404.limit = yymsp[0].minor.yy284; yygotominor.yy404.offset = yymsp[-2].minor.yy284;} +#line 2361 "parse.c" + break; + case 153: +#line 499 "parse.y" +{sqlite3DeleteFrom(pParse,yymsp[-1].minor.yy259,yymsp[0].minor.yy258);} +#line 2366 "parse.c" break; case 156: -#line 485 "parse.y" -{yygotominor.yy124.limit = -1; yygotominor.yy124.offset = 0;} -#line 2390 "parse.c" +#line 513 "parse.y" +{sqlite3Update(pParse,yymsp[-3].minor.yy259,yymsp[-1].minor.yy210,yymsp[0].minor.yy258,yymsp[-4].minor.yy284);} +#line 2371 "parse.c" break; case 157: -#line 486 "parse.y" -{yygotominor.yy124.limit = yymsp[0].minor.yy372; yygotominor.yy124.offset = 0;} -#line 2395 "parse.c" +#line 516 "parse.y" +{yygotominor.yy210 = sqlite3ExprListAppend(yymsp[-4].minor.yy210,yymsp[0].minor.yy258,&yymsp[-2].minor.yy98);} +#line 2376 "parse.c" break; case 158: -#line 488 "parse.y" -{yygotominor.yy124.limit = yymsp[-2].minor.yy372; yygotominor.yy124.offset = yymsp[0].minor.yy372;} -#line 2400 "parse.c" +#line 517 "parse.y" +{yygotominor.yy210 = sqlite3ExprListAppend(0,yymsp[0].minor.yy258,&yymsp[-2].minor.yy98);} +#line 2381 "parse.c" break; case 159: -#line 490 "parse.y" -{yygotominor.yy124.limit = yymsp[0].minor.yy372; yygotominor.yy124.offset = yymsp[-2].minor.yy372;} -#line 2405 "parse.c" +#line 523 "parse.y" +{sqlite3Insert(pParse, yymsp[-5].minor.yy259, yymsp[-1].minor.yy210, 0, yymsp[-4].minor.yy272, yymsp[-7].minor.yy284);} +#line 2386 "parse.c" break; case 160: -#line 494 "parse.y" -{ - sqlite3DeleteFrom(pParse, sqlite3SrcListAppend(0,&yymsp[-2].minor.yy298,&yymsp[-1].minor.yy298), yymsp[0].minor.yy242); -} -#line 2412 "parse.c" +#line 525 "parse.y" +{sqlite3Insert(pParse, yymsp[-2].minor.yy259, 0, yymsp[0].minor.yy107, yymsp[-1].minor.yy272, yymsp[-4].minor.yy284);} +#line 2391 "parse.c" break; case 163: -#line 510 "parse.y" -{sqlite3Update(pParse,sqlite3SrcListAppend(0,&yymsp[-4].minor.yy298,&yymsp[-3].minor.yy298),yymsp[-1].minor.yy322,yymsp[0].minor.yy242,yymsp[-5].minor.yy372);} -#line 2417 "parse.c" + case 230: +#line 535 "parse.y" +{yygotominor.yy210 = sqlite3ExprListAppend(yymsp[-2].minor.yy210,yymsp[0].minor.yy258,0);} +#line 2397 "parse.c" break; case 164: -#line 513 "parse.y" -{yygotominor.yy322 = sqlite3ExprListAppend(yymsp[-4].minor.yy322,yymsp[0].minor.yy242,&yymsp[-2].minor.yy298);} -#line 2422 "parse.c" - break; - case 165: -#line 514 "parse.y" -{yygotominor.yy322 = sqlite3ExprListAppend(0,yymsp[0].minor.yy242,&yymsp[-2].minor.yy298);} -#line 2427 "parse.c" - break; - case 166: -#line 520 "parse.y" -{sqlite3Insert(pParse, sqlite3SrcListAppend(0,&yymsp[-6].minor.yy298,&yymsp[-5].minor.yy298), yymsp[-1].minor.yy322, 0, yymsp[-4].minor.yy320, yymsp[-8].minor.yy372);} -#line 2432 "parse.c" + case 231: +#line 536 "parse.y" +{yygotominor.yy210 = sqlite3ExprListAppend(0,yymsp[0].minor.yy258,0);} +#line 2403 "parse.c" break; case 167: -#line 522 "parse.y" -{sqlite3Insert(pParse, sqlite3SrcListAppend(0,&yymsp[-3].minor.yy298,&yymsp[-2].minor.yy298), 0, yymsp[0].minor.yy179, yymsp[-1].minor.yy320, yymsp[-5].minor.yy372);} -#line 2437 "parse.c" +#line 545 "parse.y" +{yygotominor.yy272 = sqlite3IdListAppend(yymsp[-2].minor.yy272,&yymsp[0].minor.yy98);} +#line 2408 "parse.c" + break; + case 168: +#line 546 "parse.y" +{yygotominor.yy272 = sqlite3IdListAppend(0,&yymsp[0].minor.yy98);} +#line 2413 "parse.c" break; case 169: -#line 526 "parse.y" -{yygotominor.yy372 = OE_Replace;} -#line 2442 "parse.c" +#line 554 "parse.y" +{yygotominor.yy258 = yymsp[-1].minor.yy258; sqlite3ExprSpan(yygotominor.yy258,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); } +#line 2418 "parse.c" break; case 170: - case 236: -#line 532 "parse.y" -{yygotominor.yy322 = sqlite3ExprListAppend(yymsp[-2].minor.yy322,yymsp[0].minor.yy242,0);} -#line 2448 "parse.c" + case 175: + case 176: + case 177: + case 178: +#line 555 "parse.y" +{yygotominor.yy258 = sqlite3Expr(yymsp[0].major, 0, 0, &yymsp[0].minor.yy0);} +#line 2427 "parse.c" break; case 171: - case 237: -#line 533 "parse.y" -{yygotominor.yy322 = sqlite3ExprListAppend(0,yymsp[0].minor.yy242,0);} -#line 2454 "parse.c" + case 172: +#line 556 "parse.y" +{yygotominor.yy258 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy0);} +#line 2433 "parse.c" + break; + case 173: +#line 558 "parse.y" +{ + Expr *temp1 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy98); + Expr *temp2 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy98); + yygotominor.yy258 = sqlite3Expr(TK_DOT, temp1, temp2, 0); +} +#line 2442 "parse.c" break; case 174: -#line 542 "parse.y" -{yygotominor.yy320 = sqlite3IdListAppend(yymsp[-2].minor.yy320,&yymsp[0].minor.yy298);} -#line 2459 "parse.c" +#line 563 "parse.y" +{ + Expr *temp1 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-4].minor.yy98); + Expr *temp2 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy98); + Expr *temp3 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy98); + Expr *temp4 = sqlite3Expr(TK_DOT, temp2, temp3, 0); + yygotominor.yy258 = sqlite3Expr(TK_DOT, temp1, temp4, 0); +} +#line 2453 "parse.c" break; - case 175: -#line 543 "parse.y" -{yygotominor.yy320 = sqlite3IdListAppend(0,&yymsp[0].minor.yy298);} -#line 2464 "parse.c" + case 179: +#line 574 "parse.y" +{ + Token *pToken = &yymsp[0].minor.yy0; + Expr *pExpr = yygotominor.yy258 = sqlite3Expr(TK_VARIABLE, 0, 0, pToken); + sqlite3ExprAssignVarNumber(pParse, pExpr); +} +#line 2462 "parse.c" break; - case 176: -#line 551 "parse.y" -{yygotominor.yy242 = yymsp[-1].minor.yy242; sqlite3ExprSpan(yygotominor.yy242,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); } -#line 2469 "parse.c" + case 180: +#line 579 "parse.y" +{ + yygotominor.yy258 = sqlite3ExprFunction(yymsp[-1].minor.yy210, &yymsp[-3].minor.yy0); + sqlite3ExprSpan(yygotominor.yy258,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); +} +#line 2470 "parse.c" + break; + case 181: +#line 583 "parse.y" +{ + yygotominor.yy258 = sqlite3ExprFunction(0, &yymsp[-3].minor.yy0); + sqlite3ExprSpan(yygotominor.yy258,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); +} +#line 2478 "parse.c" break; - case 177: case 182: case 183: case 184: case 185: -#line 552 "parse.y" -{yygotominor.yy242 = sqlite3Expr(yymsp[0].major, 0, 0, &yymsp[0].minor.yy0);} -#line 2478 "parse.c" - break; - case 178: - case 179: -#line 553 "parse.y" -{yygotominor.yy242 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy0);} -#line 2484 "parse.c" - break; - case 180: -#line 555 "parse.y" -{ - Expr *temp1 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy298); - Expr *temp2 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy298); - yygotominor.yy242 = sqlite3Expr(TK_DOT, temp1, temp2, 0); -} -#line 2493 "parse.c" - break; - case 181: -#line 560 "parse.y" -{ - Expr *temp1 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-4].minor.yy298); - Expr *temp2 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy298); - Expr *temp3 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy298); - Expr *temp4 = sqlite3Expr(TK_DOT, temp2, temp3, 0); - yygotominor.yy242 = sqlite3Expr(TK_DOT, temp1, temp4, 0); -} -#line 2504 "parse.c" - break; case 186: -#line 571 "parse.y" -{ - Token *pToken = &yymsp[0].minor.yy0; - Expr *pExpr = yygotominor.yy242 = sqlite3Expr(TK_VARIABLE, 0, 0, pToken); - sqlite3ExprAssignVarNumber(pParse, pExpr); -} -#line 2513 "parse.c" - break; case 187: -#line 576 "parse.y" -{ - yygotominor.yy242 = sqlite3ExprFunction(yymsp[-1].minor.yy322, &yymsp[-3].minor.yy0); - sqlite3ExprSpan(yygotominor.yy242,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); -} -#line 2521 "parse.c" - break; case 188: -#line 580 "parse.y" -{ - yygotominor.yy242 = sqlite3ExprFunction(0, &yymsp[-3].minor.yy0); - sqlite3ExprSpan(yygotominor.yy242,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); -} -#line 2529 "parse.c" - break; case 189: case 190: case 191: @@ -2537,500 +2493,435 @@ static void yy_reduce( case 197: case 198: case 199: +#line 587 "parse.y" +{yygotominor.yy258 = sqlite3Expr(yymsp[-1].major, yymsp[-2].minor.yy258, yymsp[0].minor.yy258, 0);} +#line 2500 "parse.c" + break; case 200: - case 205: - case 206: - case 207: - case 208: - case 209: - case 210: -#line 584 "parse.y" -{yygotominor.yy242 = sqlite3Expr(yymsp[-1].major, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);} -#line 2551 "parse.c" +#line 606 "parse.y" +{yygotominor.yy342.opcode = TK_LIKE; yygotominor.yy342.not = 0;} +#line 2505 "parse.c" break; case 201: -#line 596 "parse.y" -{ - ExprList *pList = sqlite3ExprListAppend(0, yymsp[0].minor.yy242, 0); - pList = sqlite3ExprListAppend(pList, yymsp[-2].minor.yy242, 0); - yygotominor.yy242 = sqlite3ExprFunction(pList, 0); - if( yygotominor.yy242 ) yygotominor.yy242->op = yymsp[-1].minor.yy372; - sqlite3ExprSpan(yygotominor.yy242, &yymsp[-2].minor.yy242->span, &yymsp[0].minor.yy242->span); -} -#line 2562 "parse.c" +#line 607 "parse.y" +{yygotominor.yy342.opcode = TK_GLOB; yygotominor.yy342.not = 0;} +#line 2510 "parse.c" break; case 202: -#line 603 "parse.y" -{ - ExprList *pList = sqlite3ExprListAppend(0, yymsp[0].minor.yy242, 0); - pList = sqlite3ExprListAppend(pList, yymsp[-3].minor.yy242, 0); - yygotominor.yy242 = sqlite3ExprFunction(pList, 0); - if( yygotominor.yy242 ) yygotominor.yy242->op = yymsp[-1].minor.yy372; - yygotominor.yy242 = sqlite3Expr(TK_NOT, yygotominor.yy242, 0, 0); - sqlite3ExprSpan(yygotominor.yy242,&yymsp[-3].minor.yy242->span,&yymsp[0].minor.yy242->span); -} -#line 2574 "parse.c" +#line 608 "parse.y" +{yygotominor.yy342.opcode = TK_LIKE; yygotominor.yy342.not = 1;} +#line 2515 "parse.c" break; case 203: -#line 612 "parse.y" -{yygotominor.yy372 = TK_LIKE;} -#line 2579 "parse.c" +#line 609 "parse.y" +{yygotominor.yy342.opcode = TK_GLOB; yygotominor.yy342.not = 1;} +#line 2520 "parse.c" break; case 204: -#line 613 "parse.y" -{yygotominor.yy372 = TK_GLOB;} -#line 2584 "parse.c" - break; - case 211: -#line 620 "parse.y" +#line 610 "parse.y" { - yygotominor.yy242 = sqlite3Expr(TK_ISNULL, yymsp[-1].minor.yy242, 0, 0); - sqlite3ExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy242->span,&yymsp[0].minor.yy0); + ExprList *pList = sqlite3ExprListAppend(0, yymsp[0].minor.yy258, 0); + pList = sqlite3ExprListAppend(pList, yymsp[-2].minor.yy258, 0); + yygotominor.yy258 = sqlite3ExprFunction(pList, 0); + if( yygotominor.yy258 ) yygotominor.yy258->op = yymsp[-1].minor.yy342.opcode; + if( yymsp[-1].minor.yy342.not ) yygotominor.yy258 = sqlite3Expr(TK_NOT, yygotominor.yy258, 0, 0); + sqlite3ExprSpan(yygotominor.yy258, &yymsp[-2].minor.yy258->span, &yymsp[0].minor.yy258->span); } -#line 2592 "parse.c" +#line 2532 "parse.c" + break; + case 205: +#line 618 "parse.y" +{ + yygotominor.yy258 = sqlite3Expr(TK_ISNULL, yymsp[-1].minor.yy258, 0, 0); + sqlite3ExprSpan(yygotominor.yy258,&yymsp[-1].minor.yy258->span,&yymsp[0].minor.yy0); +} +#line 2540 "parse.c" + break; + case 206: +#line 622 "parse.y" +{ + yygotominor.yy258 = sqlite3Expr(TK_ISNULL, yymsp[-2].minor.yy258, 0, 0); + sqlite3ExprSpan(yygotominor.yy258,&yymsp[-2].minor.yy258->span,&yymsp[0].minor.yy0); +} +#line 2548 "parse.c" + break; + case 207: +#line 626 "parse.y" +{ + yygotominor.yy258 = sqlite3Expr(TK_NOTNULL, yymsp[-1].minor.yy258, 0, 0); + sqlite3ExprSpan(yygotominor.yy258,&yymsp[-1].minor.yy258->span,&yymsp[0].minor.yy0); +} +#line 2556 "parse.c" + break; + case 208: +#line 630 "parse.y" +{ + yygotominor.yy258 = sqlite3Expr(TK_NOTNULL, yymsp[-2].minor.yy258, 0, 0); + sqlite3ExprSpan(yygotominor.yy258,&yymsp[-2].minor.yy258->span,&yymsp[0].minor.yy0); +} +#line 2564 "parse.c" + break; + case 209: +#line 634 "parse.y" +{ + yygotominor.yy258 = sqlite3Expr(TK_NOTNULL, yymsp[-3].minor.yy258, 0, 0); + sqlite3ExprSpan(yygotominor.yy258,&yymsp[-3].minor.yy258->span,&yymsp[0].minor.yy0); +} +#line 2572 "parse.c" + break; + case 210: + case 211: +#line 638 "parse.y" +{ + yygotominor.yy258 = sqlite3Expr(yymsp[-1].major, yymsp[0].minor.yy258, 0, 0); + sqlite3ExprSpan(yygotominor.yy258,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy258->span); +} +#line 2581 "parse.c" break; case 212: -#line 624 "parse.y" +#line 646 "parse.y" { - yygotominor.yy242 = sqlite3Expr(TK_ISNULL, yymsp[-2].minor.yy242, 0, 0); - sqlite3ExprSpan(yygotominor.yy242,&yymsp[-2].minor.yy242->span,&yymsp[0].minor.yy0); + yygotominor.yy258 = sqlite3Expr(TK_UMINUS, yymsp[0].minor.yy258, 0, 0); + sqlite3ExprSpan(yygotominor.yy258,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy258->span); } -#line 2600 "parse.c" +#line 2589 "parse.c" break; case 213: -#line 628 "parse.y" +#line 650 "parse.y" { - yygotominor.yy242 = sqlite3Expr(TK_NOTNULL, yymsp[-1].minor.yy242, 0, 0); - sqlite3ExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy242->span,&yymsp[0].minor.yy0); + yygotominor.yy258 = sqlite3Expr(TK_UPLUS, yymsp[0].minor.yy258, 0, 0); + sqlite3ExprSpan(yygotominor.yy258,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy258->span); } -#line 2608 "parse.c" +#line 2597 "parse.c" break; case 214: -#line 632 "parse.y" +#line 654 "parse.y" { - yygotominor.yy242 = sqlite3Expr(TK_NOTNULL, yymsp[-2].minor.yy242, 0, 0); - sqlite3ExprSpan(yygotominor.yy242,&yymsp[-2].minor.yy242->span,&yymsp[0].minor.yy0); + yygotominor.yy258 = sqlite3Expr(TK_SELECT, 0, 0, 0); + if( yygotominor.yy258 ) yygotominor.yy258->pSelect = yymsp[-1].minor.yy107; + sqlite3ExprSpan(yygotominor.yy258,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); } -#line 2616 "parse.c" +#line 2606 "parse.c" break; - case 215: -#line 636 "parse.y" -{ - yygotominor.yy242 = sqlite3Expr(TK_NOTNULL, yymsp[-3].minor.yy242, 0, 0); - sqlite3ExprSpan(yygotominor.yy242,&yymsp[-3].minor.yy242->span,&yymsp[0].minor.yy0); -} -#line 2624 "parse.c" - break; - case 216: case 217: -#line 640 "parse.y" +#line 662 "parse.y" { - yygotominor.yy242 = sqlite3Expr(yymsp[-1].major, yymsp[0].minor.yy242, 0, 0); - sqlite3ExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy242->span); + ExprList *pList = sqlite3ExprListAppend(0, yymsp[-2].minor.yy258, 0); + pList = sqlite3ExprListAppend(pList, yymsp[0].minor.yy258, 0); + yygotominor.yy258 = sqlite3Expr(TK_BETWEEN, yymsp[-4].minor.yy258, 0, 0); + if( yygotominor.yy258 ) yygotominor.yy258->pList = pList; + if( yymsp[-3].minor.yy284 ) yygotominor.yy258 = sqlite3Expr(TK_NOT, yygotominor.yy258, 0, 0); + sqlite3ExprSpan(yygotominor.yy258,&yymsp[-4].minor.yy258->span,&yymsp[0].minor.yy258->span); } -#line 2633 "parse.c" +#line 2618 "parse.c" break; - case 218: -#line 648 "parse.y" + case 220: +#line 673 "parse.y" { - yygotominor.yy242 = sqlite3Expr(TK_UMINUS, yymsp[0].minor.yy242, 0, 0); - sqlite3ExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy242->span); + yygotominor.yy258 = sqlite3Expr(TK_IN, yymsp[-4].minor.yy258, 0, 0); + if( yygotominor.yy258 ) yygotominor.yy258->pList = yymsp[-1].minor.yy210; + if( yymsp[-3].minor.yy284 ) yygotominor.yy258 = sqlite3Expr(TK_NOT, yygotominor.yy258, 0, 0); + sqlite3ExprSpan(yygotominor.yy258,&yymsp[-4].minor.yy258->span,&yymsp[0].minor.yy0); } -#line 2641 "parse.c" +#line 2628 "parse.c" break; - case 219: -#line 652 "parse.y" + case 221: +#line 679 "parse.y" { - yygotominor.yy242 = sqlite3Expr(TK_UPLUS, yymsp[0].minor.yy242, 0, 0); - sqlite3ExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy242->span); + yygotominor.yy258 = sqlite3Expr(TK_IN, yymsp[-4].minor.yy258, 0, 0); + if( yygotominor.yy258 ) yygotominor.yy258->pSelect = yymsp[-1].minor.yy107; + if( yymsp[-3].minor.yy284 ) yygotominor.yy258 = sqlite3Expr(TK_NOT, yygotominor.yy258, 0, 0); + sqlite3ExprSpan(yygotominor.yy258,&yymsp[-4].minor.yy258->span,&yymsp[0].minor.yy0); +} +#line 2638 "parse.c" + break; + case 222: +#line 685 "parse.y" +{ + SrcList *pSrc = sqlite3SrcListAppend(0,&yymsp[-1].minor.yy98,&yymsp[0].minor.yy98); + yygotominor.yy258 = sqlite3Expr(TK_IN, yymsp[-3].minor.yy258, 0, 0); + if( yygotominor.yy258 ) yygotominor.yy258->pSelect = sqlite3SelectNew(0,pSrc,0,0,0,0,0,-1,0); + if( yymsp[-2].minor.yy284 ) yygotominor.yy258 = sqlite3Expr(TK_NOT, yygotominor.yy258, 0, 0); + sqlite3ExprSpan(yygotominor.yy258,&yymsp[-3].minor.yy258->span,yymsp[0].minor.yy98.z?&yymsp[0].minor.yy98:&yymsp[-1].minor.yy98); } #line 2649 "parse.c" break; - case 220: -#line 656 "parse.y" + case 223: +#line 695 "parse.y" { - yygotominor.yy242 = sqlite3Expr(TK_SELECT, 0, 0, 0); - if( yygotominor.yy242 ) yygotominor.yy242->pSelect = yymsp[-1].minor.yy179; - sqlite3ExprSpan(yygotominor.yy242,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); + yygotominor.yy258 = sqlite3Expr(TK_CASE, yymsp[-3].minor.yy258, yymsp[-1].minor.yy258, 0); + if( yygotominor.yy258 ) yygotominor.yy258->pList = yymsp[-2].minor.yy210; + sqlite3ExprSpan(yygotominor.yy258, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0); } #line 2658 "parse.c" break; - case 221: -#line 661 "parse.y" -{ - ExprList *pList = sqlite3ExprListAppend(0, yymsp[-2].minor.yy242, 0); - pList = sqlite3ExprListAppend(pList, yymsp[0].minor.yy242, 0); - yygotominor.yy242 = sqlite3Expr(TK_BETWEEN, yymsp[-4].minor.yy242, 0, 0); - if( yygotominor.yy242 ) yygotominor.yy242->pList = pList; - sqlite3ExprSpan(yygotominor.yy242,&yymsp[-4].minor.yy242->span,&yymsp[0].minor.yy242->span); -} -#line 2669 "parse.c" - break; - case 222: -#line 668 "parse.y" -{ - ExprList *pList = sqlite3ExprListAppend(0, yymsp[-2].minor.yy242, 0); - pList = sqlite3ExprListAppend(pList, yymsp[0].minor.yy242, 0); - yygotominor.yy242 = sqlite3Expr(TK_BETWEEN, yymsp[-5].minor.yy242, 0, 0); - if( yygotominor.yy242 ) yygotominor.yy242->pList = pList; - yygotominor.yy242 = sqlite3Expr(TK_NOT, yygotominor.yy242, 0, 0); - sqlite3ExprSpan(yygotominor.yy242,&yymsp[-5].minor.yy242->span,&yymsp[0].minor.yy242->span); -} -#line 2681 "parse.c" - break; - case 223: -#line 676 "parse.y" -{ - yygotominor.yy242 = sqlite3Expr(TK_IN, yymsp[-4].minor.yy242, 0, 0); - if( yygotominor.yy242 ) yygotominor.yy242->pList = yymsp[-1].minor.yy322; - sqlite3ExprSpan(yygotominor.yy242,&yymsp[-4].minor.yy242->span,&yymsp[0].minor.yy0); -} -#line 2690 "parse.c" - break; case 224: -#line 681 "parse.y" +#line 702 "parse.y" { - yygotominor.yy242 = sqlite3Expr(TK_IN, yymsp[-4].minor.yy242, 0, 0); - if( yygotominor.yy242 ) yygotominor.yy242->pSelect = yymsp[-1].minor.yy179; - sqlite3ExprSpan(yygotominor.yy242,&yymsp[-4].minor.yy242->span,&yymsp[0].minor.yy0); + yygotominor.yy210 = sqlite3ExprListAppend(yymsp[-4].minor.yy210, yymsp[-2].minor.yy258, 0); + yygotominor.yy210 = sqlite3ExprListAppend(yygotominor.yy210, yymsp[0].minor.yy258, 0); } -#line 2699 "parse.c" +#line 2666 "parse.c" break; case 225: -#line 686 "parse.y" +#line 706 "parse.y" { - yygotominor.yy242 = sqlite3Expr(TK_IN, yymsp[-5].minor.yy242, 0, 0); - if( yygotominor.yy242 ) yygotominor.yy242->pList = yymsp[-1].minor.yy322; - yygotominor.yy242 = sqlite3Expr(TK_NOT, yygotominor.yy242, 0, 0); - sqlite3ExprSpan(yygotominor.yy242,&yymsp[-5].minor.yy242->span,&yymsp[0].minor.yy0); + yygotominor.yy210 = sqlite3ExprListAppend(0, yymsp[-2].minor.yy258, 0); + yygotominor.yy210 = sqlite3ExprListAppend(yygotominor.yy210, yymsp[0].minor.yy258, 0); } -#line 2709 "parse.c" +#line 2674 "parse.c" break; - case 226: -#line 692 "parse.y" + case 234: +#line 731 "parse.y" { - yygotominor.yy242 = sqlite3Expr(TK_IN, yymsp[-5].minor.yy242, 0, 0); - if( yygotominor.yy242 ) yygotominor.yy242->pSelect = yymsp[-1].minor.yy179; - yygotominor.yy242 = sqlite3Expr(TK_NOT, yygotominor.yy242, 0, 0); - sqlite3ExprSpan(yygotominor.yy242,&yymsp[-5].minor.yy242->span,&yymsp[0].minor.yy0); + if( yymsp[-9].minor.yy284!=OE_None ) yymsp[-9].minor.yy284 = yymsp[0].minor.yy284; + if( yymsp[-9].minor.yy284==OE_Default) yymsp[-9].minor.yy284 = OE_Abort; + sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy98, &yymsp[-6].minor.yy98, yymsp[-4].minor.yy259, yymsp[-2].minor.yy210, yymsp[-9].minor.yy284, &yymsp[-10].minor.yy0, &yymsp[-1].minor.yy0); } -#line 2719 "parse.c" +#line 2683 "parse.c" break; - case 227: -#line 698 "parse.y" -{ - SrcList *pSrc = sqlite3SrcListAppend(0, &yymsp[-1].minor.yy298, &yymsp[0].minor.yy298); - yygotominor.yy242 = sqlite3Expr(TK_IN, yymsp[-3].minor.yy242, 0, 0); - if( yygotominor.yy242 ) yygotominor.yy242->pSelect = sqlite3SelectNew(0,pSrc,0,0,0,0,0,-1,0); - sqlite3ExprSpan(yygotominor.yy242,&yymsp[-3].minor.yy242->span,yymsp[0].minor.yy298.z?&yymsp[0].minor.yy298:&yymsp[-1].minor.yy298); -} -#line 2729 "parse.c" + case 235: + case 282: +#line 738 "parse.y" +{yygotominor.yy284 = OE_Abort;} +#line 2689 "parse.c" break; - case 228: -#line 704 "parse.y" -{ - SrcList *pSrc = sqlite3SrcListAppend(0, &yymsp[-1].minor.yy298, &yymsp[0].minor.yy298); - yygotominor.yy242 = sqlite3Expr(TK_IN, yymsp[-4].minor.yy242, 0, 0); - if( yygotominor.yy242 ) yygotominor.yy242->pSelect = sqlite3SelectNew(0,pSrc,0,0,0,0,0,-1,0); - yygotominor.yy242 = sqlite3Expr(TK_NOT, yygotominor.yy242, 0, 0); - sqlite3ExprSpan(yygotominor.yy242,&yymsp[-4].minor.yy242->span,yymsp[0].minor.yy298.z?&yymsp[0].minor.yy298:&yymsp[-1].minor.yy298); -} -#line 2740 "parse.c" + case 236: +#line 739 "parse.y" +{yygotominor.yy284 = OE_None;} +#line 2694 "parse.c" break; - case 229: -#line 714 "parse.y" + case 239: +#line 749 "parse.y" { - yygotominor.yy242 = sqlite3Expr(TK_CASE, yymsp[-3].minor.yy242, yymsp[-1].minor.yy242, 0); - if( yygotominor.yy242 ) yygotominor.yy242->pList = yymsp[-2].minor.yy322; - sqlite3ExprSpan(yygotominor.yy242, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0); + Expr *p = 0; + if( yymsp[-1].minor.yy98.n>0 ){ + p = sqlite3Expr(TK_COLUMN, 0, 0, 0); + if( p ) p->pColl = sqlite3LocateCollSeq(pParse, yymsp[-1].minor.yy98.z, yymsp[-1].minor.yy98.n); + } + yygotominor.yy210 = sqlite3ExprListAppend(yymsp[-4].minor.yy210, p, &yymsp[-2].minor.yy98); } -#line 2749 "parse.c" - break; - case 230: -#line 721 "parse.y" -{ - yygotominor.yy322 = sqlite3ExprListAppend(yymsp[-4].minor.yy322, yymsp[-2].minor.yy242, 0); - yygotominor.yy322 = sqlite3ExprListAppend(yygotominor.yy322, yymsp[0].minor.yy242, 0); -} -#line 2757 "parse.c" - break; - case 231: -#line 725 "parse.y" -{ - yygotominor.yy322 = sqlite3ExprListAppend(0, yymsp[-2].minor.yy242, 0); - yygotominor.yy322 = sqlite3ExprListAppend(yygotominor.yy322, yymsp[0].minor.yy242, 0); -} -#line 2765 "parse.c" +#line 2706 "parse.c" break; case 240: -#line 750 "parse.y" +#line 757 "parse.y" { - if( yymsp[-10].minor.yy372!=OE_None ) yymsp[-10].minor.yy372 = yymsp[0].minor.yy372; - if( yymsp[-10].minor.yy372==OE_Default) yymsp[-10].minor.yy372 = OE_Abort; - sqlite3CreateIndex(pParse, &yymsp[-8].minor.yy298, &yymsp[-7].minor.yy298, sqlite3SrcListAppend(0,&yymsp[-5].minor.yy298,&yymsp[-4].minor.yy298), - yymsp[-2].minor.yy322, yymsp[-10].minor.yy372, &yymsp[-11].minor.yy0, &yymsp[-1].minor.yy0); + Expr *p = 0; + if( yymsp[-1].minor.yy98.n>0 ){ + p = sqlite3Expr(TK_COLUMN, 0, 0, 0); + if( p ) p->pColl = sqlite3LocateCollSeq(pParse, yymsp[-1].minor.yy98.z, yymsp[-1].minor.yy98.n); + } + yygotominor.yy210 = sqlite3ExprListAppend(0, p, &yymsp[-2].minor.yy98); +} +#line 2718 "parse.c" + break; + case 242: +#line 770 "parse.y" +{sqlite3DropIndex(pParse, yymsp[0].minor.yy259);} +#line 2723 "parse.c" + break; + case 243: + case 244: +#line 774 "parse.y" +{sqlite3Vacuum(pParse,0);} +#line 2729 "parse.c" + break; + case 245: + case 247: +#line 779 "parse.y" +{sqlite3Pragma(pParse,&yymsp[-3].minor.yy98,&yymsp[-2].minor.yy98,&yymsp[0].minor.yy98,0);} +#line 2735 "parse.c" + break; + case 246: +#line 780 "parse.y" +{sqlite3Pragma(pParse,&yymsp[-3].minor.yy98,&yymsp[-2].minor.yy98,&yymsp[0].minor.yy0,0);} +#line 2740 "parse.c" + break; + case 248: +#line 782 "parse.y" +{ + sqlite3Pragma(pParse,&yymsp[-3].minor.yy98,&yymsp[-2].minor.yy98,&yymsp[0].minor.yy98,1); +} +#line 2747 "parse.c" + break; + case 249: +#line 785 "parse.y" +{sqlite3Pragma(pParse,&yymsp[-4].minor.yy98,&yymsp[-3].minor.yy98,&yymsp[-1].minor.yy98,0);} +#line 2752 "parse.c" + break; + case 250: +#line 786 "parse.y" +{sqlite3Pragma(pParse,&yymsp[-1].minor.yy98,&yymsp[0].minor.yy98,0,0);} +#line 2757 "parse.c" + break; + case 257: +#line 796 "parse.y" +{ + Token all; + all.z = yymsp[-3].minor.yy98.z; + all.n = (yymsp[0].minor.yy0.z - yymsp[-3].minor.yy98.z) + yymsp[0].minor.yy0.n; + sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy91, &all); +} +#line 2767 "parse.c" + break; + case 258: +#line 805 "parse.y" +{ + sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy98, &yymsp[-6].minor.yy98, yymsp[-5].minor.yy284, yymsp[-4].minor.yy146.a, yymsp[-4].minor.yy146.b, yymsp[-2].minor.yy259, yymsp[-1].minor.yy284, yymsp[0].minor.yy258, yymsp[-9].minor.yy284); + yygotominor.yy98 = (yymsp[-6].minor.yy98.n==0?yymsp[-7].minor.yy98:yymsp[-6].minor.yy98); } #line 2775 "parse.c" break; - case 242: -#line 759 "parse.y" -{ yygotominor.yy372 = OE_None; } -#line 2780 "parse.c" + case 259: + case 262: +#line 811 "parse.y" +{ yygotominor.yy284 = TK_BEFORE; } +#line 2781 "parse.c" break; - case 245: -#line 769 "parse.y" -{ - Expr *p = 0; - if( yymsp[-1].minor.yy298.n>0 ){ - p = sqlite3Expr(TK_COLUMN, 0, 0, 0); - if( p ) p->pColl = sqlite3LocateCollSeq(pParse, yymsp[-1].minor.yy298.z, yymsp[-1].minor.yy298.n); - } - yygotominor.yy322 = sqlite3ExprListAppend(yymsp[-4].minor.yy322, p, &yymsp[-2].minor.yy298); -} -#line 2792 "parse.c" + case 260: +#line 812 "parse.y" +{ yygotominor.yy284 = TK_AFTER; } +#line 2786 "parse.c" break; - case 246: -#line 777 "parse.y" -{ - Expr *p = 0; - if( yymsp[-1].minor.yy298.n>0 ){ - p = sqlite3Expr(TK_COLUMN, 0, 0, 0); - if( p ) p->pColl = sqlite3LocateCollSeq(pParse, yymsp[-1].minor.yy298.z, yymsp[-1].minor.yy298.n); - } - yygotominor.yy322 = sqlite3ExprListAppend(0, p, &yymsp[-2].minor.yy298); -} -#line 2804 "parse.c" - break; - case 248: -#line 791 "parse.y" -{ - sqlite3DropIndex(pParse, sqlite3SrcListAppend(0,&yymsp[-1].minor.yy298,&yymsp[0].minor.yy298)); -} -#line 2811 "parse.c" - break; - case 249: -#line 797 "parse.y" -{sqlite3Vacuum(pParse,0);} -#line 2816 "parse.c" - break; - case 250: -#line 798 "parse.y" -{sqlite3Vacuum(pParse,&yymsp[0].minor.yy298);} -#line 2821 "parse.c" - break; - case 251: - case 253: -#line 802 "parse.y" -{sqlite3Pragma(pParse,&yymsp[-3].minor.yy298,&yymsp[-2].minor.yy298,&yymsp[0].minor.yy298,0);} -#line 2827 "parse.c" - break; - case 252: -#line 803 "parse.y" -{sqlite3Pragma(pParse,&yymsp[-3].minor.yy298,&yymsp[-2].minor.yy298,&yymsp[0].minor.yy0,0);} -#line 2832 "parse.c" - break; - case 254: -#line 805 "parse.y" -{ - sqlite3Pragma(pParse,&yymsp[-3].minor.yy298,&yymsp[-2].minor.yy298,&yymsp[0].minor.yy298,1); -} -#line 2839 "parse.c" - break; - case 255: -#line 808 "parse.y" -{sqlite3Pragma(pParse,&yymsp[-4].minor.yy298,&yymsp[-3].minor.yy298,&yymsp[-1].minor.yy298,0);} -#line 2844 "parse.c" - break; - case 256: -#line 809 "parse.y" -{sqlite3Pragma(pParse,&yymsp[-1].minor.yy298,&yymsp[0].minor.yy298,0,0);} -#line 2849 "parse.c" + case 261: +#line 813 "parse.y" +{ yygotominor.yy284 = TK_INSTEAD;} +#line 2791 "parse.c" break; case 263: -#line 819 "parse.y" -{ - Token all; - all.z = yymsp[-3].minor.yy298.z; - all.n = (yymsp[0].minor.yy0.z - yymsp[-3].minor.yy298.z) + yymsp[0].minor.yy0.n; - sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy187, &all); -} -#line 2859 "parse.c" - break; case 264: -#line 827 "parse.y" -{ - SrcList *pTab = sqlite3SrcListAppend(0, &yymsp[-3].minor.yy298, &yymsp[-2].minor.yy298); - sqlite3BeginTrigger(pParse, &yymsp[-8].minor.yy298, &yymsp[-7].minor.yy298, yymsp[-6].minor.yy372, yymsp[-5].minor.yy290.a, yymsp[-5].minor.yy290.b, pTab, yymsp[-1].minor.yy372, yymsp[0].minor.yy242, yymsp[-10].minor.yy372); - yygotominor.yy298 = (yymsp[-7].minor.yy298.n==0?yymsp[-8].minor.yy298:yymsp[-7].minor.yy298); -} -#line 2868 "parse.c" - break; case 265: - case 268: -#line 834 "parse.y" -{ yygotominor.yy372 = TK_BEFORE; } -#line 2874 "parse.c" +#line 818 "parse.y" +{yygotominor.yy146.a = yymsp[0].major; yygotominor.yy146.b = 0;} +#line 2798 "parse.c" break; case 266: -#line 835 "parse.y" -{ yygotominor.yy372 = TK_AFTER; } -#line 2879 "parse.c" +#line 821 "parse.y" +{yygotominor.yy146.a = TK_UPDATE; yygotominor.yy146.b = yymsp[0].minor.yy272;} +#line 2803 "parse.c" break; case 267: -#line 836 "parse.y" -{ yygotominor.yy372 = TK_INSTEAD;} -#line 2884 "parse.c" + case 268: +#line 824 "parse.y" +{ yygotominor.yy284 = TK_ROW; } +#line 2809 "parse.c" break; case 269: -#line 841 "parse.y" -{ yygotominor.yy290.a = TK_DELETE; yygotominor.yy290.b = 0; } -#line 2889 "parse.c" +#line 826 "parse.y" +{ yygotominor.yy284 = TK_STATEMENT; } +#line 2814 "parse.c" break; case 270: -#line 842 "parse.y" -{ yygotominor.yy290.a = TK_INSERT; yygotominor.yy290.b = 0; } -#line 2894 "parse.c" +#line 829 "parse.y" +{ yygotominor.yy258 = 0; } +#line 2819 "parse.c" break; case 271: -#line 843 "parse.y" -{ yygotominor.yy290.a = TK_UPDATE; yygotominor.yy290.b = 0;} -#line 2899 "parse.c" +#line 830 "parse.y" +{ yygotominor.yy258 = yymsp[0].minor.yy258; } +#line 2824 "parse.c" break; case 272: -#line 844 "parse.y" -{yygotominor.yy290.a = TK_UPDATE; yygotominor.yy290.b = yymsp[0].minor.yy320; } -#line 2904 "parse.c" +#line 834 "parse.y" +{ + yymsp[-2].minor.yy91->pNext = yymsp[0].minor.yy91; + yygotominor.yy91 = yymsp[-2].minor.yy91; +} +#line 2832 "parse.c" break; case 273: +#line 838 "parse.y" +{ yygotominor.yy91 = 0; } +#line 2837 "parse.c" + break; case 274: -#line 847 "parse.y" -{ yygotominor.yy372 = TK_ROW; } -#line 2910 "parse.c" +#line 844 "parse.y" +{ yygotominor.yy91 = sqlite3TriggerUpdateStep(&yymsp[-3].minor.yy98, yymsp[-1].minor.yy210, yymsp[0].minor.yy258, yymsp[-4].minor.yy284); } +#line 2842 "parse.c" break; case 275: #line 849 "parse.y" -{ yygotominor.yy372 = TK_STATEMENT; } -#line 2915 "parse.c" +{yygotominor.yy91 = sqlite3TriggerInsertStep(&yymsp[-5].minor.yy98, yymsp[-4].minor.yy272, yymsp[-1].minor.yy210, 0, yymsp[-7].minor.yy284);} +#line 2847 "parse.c" break; case 276: #line 852 "parse.y" -{ yygotominor.yy242 = 0; } -#line 2920 "parse.c" +{yygotominor.yy91 = sqlite3TriggerInsertStep(&yymsp[-2].minor.yy98, yymsp[-1].minor.yy272, 0, yymsp[0].minor.yy107, yymsp[-4].minor.yy284);} +#line 2852 "parse.c" break; case 277: -#line 853 "parse.y" -{ yygotominor.yy242 = yymsp[0].minor.yy242; } -#line 2925 "parse.c" +#line 856 "parse.y" +{yygotominor.yy91 = sqlite3TriggerDeleteStep(&yymsp[-1].minor.yy98, yymsp[0].minor.yy258);} +#line 2857 "parse.c" break; case 278: -#line 857 "parse.y" -{ - yymsp[-2].minor.yy187->pNext = yymsp[0].minor.yy187; - yygotominor.yy187 = yymsp[-2].minor.yy187; -} -#line 2933 "parse.c" +#line 859 "parse.y" +{yygotominor.yy91 = sqlite3TriggerSelectStep(yymsp[0].minor.yy107); } +#line 2862 "parse.c" break; case 279: -#line 861 "parse.y" -{ yygotominor.yy187 = 0; } -#line 2938 "parse.c" +#line 862 "parse.y" +{ + yygotominor.yy258 = sqlite3Expr(TK_RAISE, 0, 0, 0); + yygotominor.yy258->iColumn = OE_Ignore; + sqlite3ExprSpan(yygotominor.yy258, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0); +} +#line 2871 "parse.c" break; case 280: #line 867 "parse.y" -{ yygotominor.yy187 = sqlite3TriggerUpdateStep(&yymsp[-3].minor.yy298, yymsp[-1].minor.yy322, yymsp[0].minor.yy242, yymsp[-4].minor.yy372); } -#line 2943 "parse.c" +{ + yygotominor.yy258 = sqlite3Expr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy98); + yygotominor.yy258->iColumn = yymsp[-3].minor.yy284; + sqlite3ExprSpan(yygotominor.yy258, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0); +} +#line 2880 "parse.c" break; case 281: -#line 872 "parse.y" -{yygotominor.yy187 = sqlite3TriggerInsertStep(&yymsp[-5].minor.yy298, yymsp[-4].minor.yy320, yymsp[-1].minor.yy322, 0, yymsp[-7].minor.yy372);} -#line 2948 "parse.c" - break; - case 282: -#line 875 "parse.y" -{yygotominor.yy187 = sqlite3TriggerInsertStep(&yymsp[-2].minor.yy298, yymsp[-1].minor.yy320, 0, yymsp[0].minor.yy179, yymsp[-4].minor.yy372);} -#line 2953 "parse.c" +#line 873 "parse.y" +{yygotominor.yy284 = OE_Rollback;} +#line 2885 "parse.c" break; case 283: -#line 879 "parse.y" -{yygotominor.yy187 = sqlite3TriggerDeleteStep(&yymsp[-1].minor.yy298, yymsp[0].minor.yy242);} -#line 2958 "parse.c" +#line 875 "parse.y" +{yygotominor.yy284 = OE_Fail;} +#line 2890 "parse.c" break; case 284: -#line 882 "parse.y" -{yygotominor.yy187 = sqlite3TriggerSelectStep(yymsp[0].minor.yy179); } -#line 2963 "parse.c" +#line 879 "parse.y" +{ + sqlite3DropTrigger(pParse,yymsp[0].minor.yy259); +} +#line 2897 "parse.c" break; case 285: -#line 885 "parse.y" +#line 884 "parse.y" { - yygotominor.yy242 = sqlite3Expr(TK_RAISE, 0, 0, 0); - yygotominor.yy242->iColumn = OE_Ignore; - sqlite3ExprSpan(yygotominor.yy242, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0); + sqlite3Attach(pParse, &yymsp[-3].minor.yy98, &yymsp[-1].minor.yy98, yymsp[0].minor.yy292.type, &yymsp[0].minor.yy292.key); } -#line 2972 "parse.c" +#line 2904 "parse.c" break; case 286: -#line 890 "parse.y" -{ - yygotominor.yy242 = sqlite3Expr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy298); - yygotominor.yy242->iColumn = OE_Rollback; - sqlite3ExprSpan(yygotominor.yy242, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0); -} -#line 2981 "parse.c" +#line 888 "parse.y" +{ yygotominor.yy292.type = 0; } +#line 2909 "parse.c" break; case 287: -#line 895 "parse.y" -{ - yygotominor.yy242 = sqlite3Expr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy298); - yygotominor.yy242->iColumn = OE_Abort; - sqlite3ExprSpan(yygotominor.yy242, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0); -} -#line 2990 "parse.c" +#line 889 "parse.y" +{ yygotominor.yy292.type=1; yygotominor.yy292.key = yymsp[0].minor.yy98; } +#line 2914 "parse.c" break; case 288: -#line 900 "parse.y" -{ - yygotominor.yy242 = sqlite3Expr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy298); - yygotominor.yy242->iColumn = OE_Fail; - sqlite3ExprSpan(yygotominor.yy242, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0); -} -#line 2999 "parse.c" - break; - case 289: -#line 907 "parse.y" -{ - sqlite3DropTrigger(pParse,sqlite3SrcListAppend(0,&yymsp[-1].minor.yy298,&yymsp[0].minor.yy298)); -} -#line 3006 "parse.c" - break; - case 290: -#line 912 "parse.y" -{ - sqlite3Attach(pParse, &yymsp[-3].minor.yy298, &yymsp[-1].minor.yy298, yymsp[0].minor.yy92.type, &yymsp[0].minor.yy92.key); -} -#line 3013 "parse.c" +#line 890 "parse.y" +{ yygotominor.yy292.type=2; yygotominor.yy292.key = yymsp[0].minor.yy0; } +#line 2919 "parse.c" break; case 291: -#line 916 "parse.y" -{ yygotominor.yy92.type = 0; } -#line 3018 "parse.c" - break; - case 292: -#line 917 "parse.y" -{ yygotominor.yy92.type=1; yygotominor.yy92.key = yymsp[0].minor.yy298; } -#line 3023 "parse.c" - break; - case 293: -#line 918 "parse.y" -{ yygotominor.yy92.type=2; yygotominor.yy92.key = yymsp[0].minor.yy0; } -#line 3028 "parse.c" - break; - case 296: -#line 924 "parse.y" +#line 896 "parse.y" { - sqlite3Detach(pParse, &yymsp[0].minor.yy298); + sqlite3Detach(pParse, &yymsp[0].minor.yy98); } -#line 3035 "parse.c" +#line 2926 "parse.c" break; }; yygoto = yyRuleInfo[yyruleno].lhs; @@ -3081,7 +2972,7 @@ static void yy_syntax_error( sqlite3ErrorMsg(pParse, "incomplete SQL statement"); } } -#line 3087 "parse.c" +#line 2978 "parse.c" sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument variable */ } diff --git a/mozilla/db/sqlite3/src/parse.h b/mozilla/db/sqlite3/src/parse.h index 590ef706d38..547319ed705 100644 --- a/mozilla/db/sqlite3/src/parse.h +++ b/mozilla/db/sqlite3/src/parse.h @@ -84,42 +84,42 @@ #define TK_BITNOT 84 #define TK_STRING 85 #define TK_JOIN_KW 86 -#define TK_INTEGER 87 -#define TK_CONSTRAINT 88 -#define TK_DEFAULT 89 -#define TK_FLOAT 90 -#define TK_NULL 91 -#define TK_PRIMARY 92 -#define TK_UNIQUE 93 -#define TK_CHECK 94 -#define TK_REFERENCES 95 -#define TK_COLLATE 96 -#define TK_ON 97 -#define TK_DELETE 98 -#define TK_UPDATE 99 -#define TK_INSERT 100 -#define TK_SET 101 -#define TK_DEFERRABLE 102 -#define TK_FOREIGN 103 -#define TK_DROP 104 -#define TK_UNION 105 -#define TK_ALL 106 -#define TK_INTERSECT 107 -#define TK_EXCEPT 108 -#define TK_SELECT 109 -#define TK_DISTINCT 110 -#define TK_DOT 111 -#define TK_FROM 112 -#define TK_JOIN 113 -#define TK_USING 114 -#define TK_ORDER 115 -#define TK_BY 116 -#define TK_GROUP 117 -#define TK_HAVING 118 -#define TK_LIMIT 119 -#define TK_WHERE 120 -#define TK_INTO 121 -#define TK_VALUES 122 +#define TK_CONSTRAINT 87 +#define TK_DEFAULT 88 +#define TK_NULL 89 +#define TK_PRIMARY 90 +#define TK_UNIQUE 91 +#define TK_CHECK 92 +#define TK_REFERENCES 93 +#define TK_COLLATE 94 +#define TK_ON 95 +#define TK_DELETE 96 +#define TK_UPDATE 97 +#define TK_INSERT 98 +#define TK_SET 99 +#define TK_DEFERRABLE 100 +#define TK_FOREIGN 101 +#define TK_DROP 102 +#define TK_UNION 103 +#define TK_ALL 104 +#define TK_INTERSECT 105 +#define TK_EXCEPT 106 +#define TK_SELECT 107 +#define TK_DISTINCT 108 +#define TK_DOT 109 +#define TK_FROM 110 +#define TK_JOIN 111 +#define TK_USING 112 +#define TK_ORDER 113 +#define TK_BY 114 +#define TK_GROUP 115 +#define TK_HAVING 116 +#define TK_LIMIT 117 +#define TK_WHERE 118 +#define TK_INTO 119 +#define TK_VALUES 120 +#define TK_INTEGER 121 +#define TK_FLOAT 122 #define TK_BLOB 123 #define TK_VARIABLE 124 #define TK_CASE 125 diff --git a/mozilla/db/sqlite3/src/pragma.c b/mozilla/db/sqlite3/src/pragma.c index 4c7b72047e1..08d49272efc 100644 --- a/mozilla/db/sqlite3/src/pragma.c +++ b/mozilla/db/sqlite3/src/pragma.c @@ -11,7 +11,7 @@ ************************************************************************* ** This file contains code used to implement the PRAGMA command. ** -** $Id: pragma.c,v 1.69 2004/10/05 15:42:53 drh Exp $ +** $Id: pragma.c,v 1.70 2004/10/06 15:41:17 drh Exp $ */ #include "sqliteInt.h" #include @@ -234,7 +234,7 @@ void sqlite3Pragma( ** and a positive value means synchronous is on. */ if( sqlite3StrICmp(zLeft,"default_cache_size")==0 ){ - static VdbeOpList getCacheSize[] = { + static const VdbeOpList getCacheSize[] = { { OP_ReadCookie, 0, 2, 0}, /* 0 */ { OP_AbsValue, 0, 0, 0}, { OP_Dup, 0, 0, 0}, @@ -527,7 +527,7 @@ void sqlite3Pragma( /* Code that initializes the integrity check program. Set the ** error count 0 */ - static VdbeOpList initCode[] = { + static const VdbeOpList initCode[] = { { OP_Integer, 0, 0, 0}, { OP_MemStore, 0, 1, 0}, }; @@ -536,7 +536,7 @@ void sqlite3Pragma( ** messages have been generated, output OK. Otherwise output the ** error message */ - static VdbeOpList endCode[] = { + static const VdbeOpList endCode[] = { { OP_MemLoad, 0, 0, 0}, { OP_Integer, 0, 0, 0}, { OP_Ne, 0, 0, 0}, /* 2 */ @@ -598,7 +598,7 @@ void sqlite3Pragma( sqlite3VdbeAddOp(v, OP_MemIncr, 1, 0); for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){ int jmp2; - static VdbeOpList idxErr[] = { + static const VdbeOpList idxErr[] = { { OP_MemIncr, 0, 0, 0}, { OP_String8, 0, 0, "rowid "}, { OP_Recno, 1, 0, 0}, @@ -616,7 +616,7 @@ void sqlite3Pragma( sqlite3VdbeAddOp(v, OP_Next, 1, loopTop+1); sqlite3VdbeChangeP2(v, loopTop, sqlite3VdbeCurrentAddr(v)); for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){ - static VdbeOpList cntIdx[] = { + static const VdbeOpList cntIdx[] = { { OP_Integer, 0, 0, 0}, { OP_MemStore, 2, 1, 0}, { OP_Rewind, 0, 0, 0}, /* 2 */ @@ -668,7 +668,7 @@ void sqlite3Pragma( ** useful if invoked immediately after the main database i */ if( sqlite3StrICmp(zLeft, "encoding")==0 ){ - struct EncName { + static struct EncName { char *zName; u8 enc; } encnames[] = { @@ -721,7 +721,7 @@ void sqlite3Pragma( ** Report the current state of file logs for all databases */ if( sqlite3StrICmp(zLeft, "lock_status")==0 ){ - static char *azLockName[] = { + static const char *const azLockName[] = { "unlocked", "shared", "reserved", "pending", "exclusive" }; int i; diff --git a/mozilla/db/sqlite3/src/printf.c b/mozilla/db/sqlite3/src/printf.c index 716e59d556b..43e12863721 100644 --- a/mozilla/db/sqlite3/src/printf.c +++ b/mozilla/db/sqlite3/src/printf.c @@ -107,7 +107,7 @@ typedef struct et_info { /* Information about each format field */ */ static const char aDigits[] = "0123456789ABCDEF0123456789abcdef"; static const char aPrefix[] = "-x0\000X0"; -static et_info fmtinfo[] = { +static const et_info fmtinfo[] = { { 'd', 10, 1, etRADIX, 0, 0 }, { 's', 0, 0, etSTRING, 0, 0 }, { 'z', 0, 2, etDYNSTRING, 0, 0 }, @@ -214,13 +214,14 @@ static int vxprintf( etByte flag_longlong; /* True if the "ll" flag is present */ UINT64_TYPE longvalue; /* Value for integer types */ LONGDOUBLE_TYPE realvalue; /* Value for real types */ - et_info *infop; /* Pointer to the appropriate info structure */ + const et_info *infop; /* Pointer to the appropriate info structure */ char buf[etBUFSIZE]; /* Conversion buffer */ char prefix; /* Prefix character. "+" or "-" or " " or '\0'. */ etByte errorflag = 0; /* True if an error is encountered */ etByte xtype; /* Conversion paradigm */ char *zExtra; /* Extra memory used for etTCLESCAPE conversions */ - static char spaces[] = " "; + static const char spaces[] = + " "; #define etSPACESIZE (sizeof(spaces)-1) #ifndef etNOFLOATINGPOINT int exp; /* exponent of real numbers */ diff --git a/mozilla/db/sqlite3/src/select.c b/mozilla/db/sqlite3/src/select.c index 1c6d48f9477..75ff2fbef5c 100644 --- a/mozilla/db/sqlite3/src/select.c +++ b/mozilla/db/sqlite3/src/select.c @@ -12,7 +12,7 @@ ** This file contains C code routines that are called by the parser ** to handle SELECT statements in SQLite. ** -** $Id: select.c,v 1.211 2004/09/25 14:39:19 drh Exp $ +** $Id: select.c,v 1.212 2004/10/06 15:41:17 drh Exp $ */ #include "sqliteInt.h" @@ -81,7 +81,7 @@ int sqlite3JoinType(Parse *pParse, Token *pA, Token *pB, Token *pC){ int jointype = 0; Token *apAll[3]; Token *p; - static struct { + static const struct { const char *zKeyword; u8 nChar; u8 code; diff --git a/mozilla/db/sqlite3/src/shell.c b/mozilla/db/sqlite3/src/shell.c index b4d0d5b3e45..f9bb0b25c9e 100644 --- a/mozilla/db/sqlite3/src/shell.c +++ b/mozilla/db/sqlite3/src/shell.c @@ -12,7 +12,7 @@ ** This file contains code to implement the "sqlite" command line ** utility for accessing SQLite databases. ** -** $Id: shell.c,v 1.114 2004/09/24 12:50:03 drh Exp $ +** $Id: shell.c,v 1.116 2004/10/07 00:32:40 drh Exp $ */ #include #include @@ -242,7 +242,8 @@ struct callback_data { #define MODE_Html 4 /* Generate an XHTML table */ #define MODE_Insert 5 /* Generate SQL "insert" statements */ #define MODE_Tcl 6 /* Generate ANSI-C or TCL quoted elements */ -#define MODE_NUM_OF 7 /* The number of modes (not a mode itself) */ +#define MODE_Csv 7 /* Quote strings, numbers are plain */ +#define MODE_NUM_OF 8 /* The number of modes (not a mode itself) */ char *modeDescr[MODE_NUM_OF] = { "line", @@ -252,6 +253,7 @@ char *modeDescr[MODE_NUM_OF] = { "html", "insert", "tcl", + "csv", }; /* @@ -339,6 +341,25 @@ static void output_html_string(FILE *out, const char *z){ } } +/* +** Output a single term of CSV. Actually, p->separator is used for +** the separator, which may or may not be a comma. p->nullvalue is +** the null value. Strings are quoted using ANSI-C rules. Numbers +** appear outside of quotes. +*/ +static void output_csv(struct callback_data *p, const char *z, int bSep){ + if( z==0 ){ + fprintf(p->out,"%s",p->nullvalue); + }else if( isNumber(z, 0) ){ + fprintf(p->out,"%s",z); + }else{ + output_c_string(p->out, z); + } + if( bSep ){ + fprintf(p->out, p->separator); + } +} + /* ** This routine runs when the user presses Ctrl-C */ @@ -474,6 +495,20 @@ static int callback(void *pArg, int nArg, char **azArg, char **azCol){ fprintf(p->out,"\n"); break; } + case MODE_Csv: { + if( p->cnt++==0 && p->showHeader ){ + for(i=0; iout,"\n"); + } + if( azArg==0 ) break; + for(i=0; iout,"\n"); + break; + } case MODE_Insert: { if( azArg==0 ) break; fprintf(p->out,"INSERT INTO %s VALUES(",p->zDestTable); @@ -1039,7 +1074,7 @@ static int do_meta_command(char *zLine, struct callback_data *p){ i = 0; lineno++; azCol[0] = zLine; - for(i=0, z=zLine; *z; z++){ + for(i=0, z=zLine; *z && *z!='\n' && *z!='\r'; z++){ if( *z==p->separator[0] && strncmp(z, p->separator, nSep)==0 ){ *z = 0; i++; @@ -1114,7 +1149,7 @@ static int do_meta_command(char *zLine, struct callback_data *p){ }else if( strncmp(azArg[1],"tcl",n2)==0 ){ p->mode = MODE_Tcl; }else if( strncmp(azArg[1],"csv",n2)==0 ){ - p->mode = MODE_List; + p->mode = MODE_Csv; strcpy(p->separator, ","); }else if( strncmp(azArg[1],"tabs",n2)==0 ){ p->mode = MODE_List; diff --git a/mozilla/db/sqlite3/src/sqlite.h.in b/mozilla/db/sqlite3/src/sqlite.h.in index b9b5b681a03..c39dcdf5a8e 100644 --- a/mozilla/db/sqlite3/src/sqlite.h.in +++ b/mozilla/db/sqlite3/src/sqlite.h.in @@ -12,7 +12,7 @@ ** This header file defines the interface that the SQLite library ** presents to client programs. ** -** @(#) $Id: sqlite.h.in,v 1.120 2004/09/30 14:24:50 drh Exp $ +** @(#) $Id: sqlite.h.in,v 1.121 2004/10/06 15:52:01 drh Exp $ */ #ifndef _SQLITE3_H_ #define _SQLITE3_H_ @@ -28,7 +28,11 @@ extern "C" { /* ** The version of the SQLite library. */ -#define SQLITE_VERSION "--VERS--" +#ifdef SQLITE_VERSION +# undef SQLITE_VERSION +#else +# define SQLITE_VERSION "--VERS--" +#endif /* ** The version string is also compiled into the library so that a program @@ -760,10 +764,22 @@ int sqlite3_data_count(sqlite3_stmt *pStmt); */ #define SQLITE_INTEGER 1 #define SQLITE_FLOAT 2 -#define SQLITE_TEXT 3 +/* #define SQLITE_TEXT 3 // See below */ #define SQLITE_BLOB 4 #define SQLITE_NULL 5 +/* +** SQLite version 2 defines SQLITE_TEXT differently. To allow both +** version 2 and version 3 to be included, undefine them both if a +** conflict is seen. Define SQLITE3_TEXT to be the version 3 value. +*/ +#ifdef SQLITE_TEXT +# undef SQLITE_TEXT +#else +# define SQLITE_TEXT 3 +#endif +#define SQLITE3_TEXT 3 + /* ** The next group of routines returns information about the information ** in a single column of the current result row of a query. In every diff --git a/mozilla/db/sqlite3/src/tokenize.c b/mozilla/db/sqlite3/src/tokenize.c index 6b3a5f713f4..c333699b6e2 100644 --- a/mozilla/db/sqlite3/src/tokenize.c +++ b/mozilla/db/sqlite3/src/tokenize.c @@ -15,173 +15,115 @@ ** individual tokens and sends those tokens one-by-one over to the ** parser for analysis. ** -** $Id: tokenize.c,v 1.90 2004/10/05 02:41:43 drh Exp $ +** $Id: tokenize.c,v 1.91 2004/10/07 19:03:01 drh Exp $ */ #include "sqliteInt.h" #include "os.h" #include #include -/* -** All the keywords of the SQL language are stored as in a hash -** table composed of instances of the following structure. -*/ -typedef struct Keyword Keyword; -struct Keyword { - char *zName; /* The keyword name */ - u8 tokenType; /* Token value for this keyword */ - u8 len; /* Length of this keyword */ - u8 iNext; /* Index in aKeywordTable[] of next with same hash */ -}; - -/* -** These are the keywords -*/ -static Keyword aKeywordTable[] = { - { "ABORT", TK_ABORT, }, - { "AFTER", TK_AFTER, }, - { "ALL", TK_ALL, }, - { "AND", TK_AND, }, - { "AS", TK_AS, }, - { "ASC", TK_ASC, }, - { "ATTACH", TK_ATTACH, }, - { "BEFORE", TK_BEFORE, }, - { "BEGIN", TK_BEGIN, }, - { "BETWEEN", TK_BETWEEN, }, - { "BY", TK_BY, }, - { "CASCADE", TK_CASCADE, }, - { "CASE", TK_CASE, }, - { "CHECK", TK_CHECK, }, - { "COLLATE", TK_COLLATE, }, - { "COMMIT", TK_COMMIT, }, - { "CONFLICT", TK_CONFLICT, }, - { "CONSTRAINT", TK_CONSTRAINT, }, - { "CREATE", TK_CREATE, }, - { "CROSS", TK_JOIN_KW, }, - { "DATABASE", TK_DATABASE, }, - { "DEFAULT", TK_DEFAULT, }, - { "DEFERRED", TK_DEFERRED, }, - { "DEFERRABLE", TK_DEFERRABLE, }, - { "DELETE", TK_DELETE, }, - { "DESC", TK_DESC, }, - { "DETACH", TK_DETACH, }, - { "DISTINCT", TK_DISTINCT, }, - { "DROP", TK_DROP, }, - { "END", TK_END, }, - { "EACH", TK_EACH, }, - { "ELSE", TK_ELSE, }, - { "EXCEPT", TK_EXCEPT, }, - { "EXCLUSIVE", TK_EXCLUSIVE, }, - { "EXPLAIN", TK_EXPLAIN, }, - { "FAIL", TK_FAIL, }, - { "FOR", TK_FOR, }, - { "FOREIGN", TK_FOREIGN, }, - { "FROM", TK_FROM, }, - { "FULL", TK_JOIN_KW, }, - { "GLOB", TK_GLOB, }, - { "GROUP", TK_GROUP, }, - { "HAVING", TK_HAVING, }, - { "IGNORE", TK_IGNORE, }, - { "IMMEDIATE", TK_IMMEDIATE, }, - { "IN", TK_IN, }, - { "INDEX", TK_INDEX, }, - { "INITIALLY", TK_INITIALLY, }, - { "INNER", TK_JOIN_KW, }, - { "INSERT", TK_INSERT, }, - { "INSTEAD", TK_INSTEAD, }, - { "INTERSECT", TK_INTERSECT, }, - { "INTO", TK_INTO, }, - { "IS", TK_IS, }, - { "ISNULL", TK_ISNULL, }, - { "JOIN", TK_JOIN, }, - { "KEY", TK_KEY, }, - { "LEFT", TK_JOIN_KW, }, - { "LIKE", TK_LIKE, }, - { "LIMIT", TK_LIMIT, }, - { "MATCH", TK_MATCH, }, - { "NATURAL", TK_JOIN_KW, }, - { "NOT", TK_NOT, }, - { "NOTNULL", TK_NOTNULL, }, - { "NULL", TK_NULL, }, - { "OF", TK_OF, }, - { "OFFSET", TK_OFFSET, }, - { "ON", TK_ON, }, - { "OR", TK_OR, }, - { "ORDER", TK_ORDER, }, - { "OUTER", TK_JOIN_KW, }, - { "PRAGMA", TK_PRAGMA, }, - { "PRIMARY", TK_PRIMARY, }, - { "RAISE", TK_RAISE, }, - { "REFERENCES", TK_REFERENCES, }, - { "REPLACE", TK_REPLACE, }, - { "RESTRICT", TK_RESTRICT, }, - { "RIGHT", TK_JOIN_KW, }, - { "ROLLBACK", TK_ROLLBACK, }, - { "ROW", TK_ROW, }, - { "SELECT", TK_SELECT, }, - { "SET", TK_SET, }, - { "STATEMENT", TK_STATEMENT, }, - { "TABLE", TK_TABLE, }, - { "TEMP", TK_TEMP, }, - { "TEMPORARY", TK_TEMP, }, - { "THEN", TK_THEN, }, - { "TRANSACTION", TK_TRANSACTION, }, - { "TRIGGER", TK_TRIGGER, }, - { "UNION", TK_UNION, }, - { "UNIQUE", TK_UNIQUE, }, - { "UPDATE", TK_UPDATE, }, - { "USING", TK_USING, }, - { "VACUUM", TK_VACUUM, }, - { "VALUES", TK_VALUES, }, - { "VIEW", TK_VIEW, }, - { "WHEN", TK_WHEN, }, - { "WHERE", TK_WHERE, }, -}; - -/* -** This is the hash table -*/ -#define KEY_HASH_SIZE 101 -static u8 aiHashTable[KEY_HASH_SIZE]; - - /* ** This function looks up an identifier to determine if it is a ** keyword. If it is a keyword, the token code of that keyword is ** returned. If the input is not a keyword, TK_ID is returned. +** +** The implementation of this routine was generated by a program, +** mkkeywordhash.c, located in the tool subdirectory of the distribution. +** The output of the mkkeywordhash.c program was manually cut and pasted +** into this file. When the set of keywords for SQLite changes, you +** must modify the mkkeywordhash.c program (to add or remove keywords from +** the data tables) then rerun that program to regenerate this function. */ int sqlite3KeywordCode(const char *z, int n){ + static const char zText[519] = + "ABORTAFTERALLANDASCATTACHBEFOREBEGINBETWEENBYCASCADECASECHECK" + "COLLATECOMMITCONFLICTCONSTRAINTCREATECROSSDATABASEDEFAULTDEFERRABLE" + "DEFERREDDELETEDESCDETACHDISTINCTDROPEACHELSEENDEXCEPTEXCLUSIVE" + "EXPLAINFAILFOREIGNFROMFULLGLOBGROUPHAVINGIGNOREIMMEDIATEINDEX" + "INITIALLYINNERINSERTINSTEADINTERSECTINTOISNULLJOINKEYLEFTLIKE" + "LIMITMATCHNATURALNOTNULLNULLOFFSETONORDEROUTERPRAGMAPRIMARYRAISE" + "REFERENCESREPLACERESTRICTRIGHTROLLBACKROWSELECTSETSTATEMENTTABLE" + "TEMPORARYTHENTRANSACTIONTRIGGERUNIONUNIQUEUPDATEUSINGVACUUMVALUES" + "VIEWWHENWHERE"; + static const unsigned char aHash[154] = { + 0, 75, 82, 0, 0, 97, 80, 0, 83, 0, 0, 0, 0, + 0, 0, 6, 0, 95, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 96, 86, 8, 0, 26, 13, 7, 19, 15, 0, 0, 32, + 25, 0, 21, 31, 41, 0, 0, 0, 34, 27, 0, 0, 30, + 0, 0, 0, 9, 0, 10, 0, 0, 0, 0, 51, 0, 44, + 43, 0, 45, 40, 0, 29, 39, 35, 0, 0, 20, 0, 59, + 0, 16, 0, 17, 0, 18, 0, 55, 42, 72, 0, 33, 0, + 0, 61, 66, 56, 0, 0, 0, 0, 0, 0, 0, 54, 0, + 0, 0, 0, 0, 74, 50, 76, 64, 52, 0, 0, 0, 0, + 68, 84, 0, 47, 0, 58, 60, 92, 0, 0, 48, 0, 93, + 0, 63, 71, 98, 0, 0, 0, 0, 0, 67, 0, 0, 0, + 0, 87, 0, 0, 0, 0, 0, 90, 88, 0, 94, + }; + static const unsigned char aNext[98] = { + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 12, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, + 0, 0, 0, 14, 3, 24, 0, 0, 0, 1, 22, 0, 0, + 36, 23, 28, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, + 0, 49, 37, 0, 0, 0, 38, 0, 53, 0, 57, 62, 0, + 0, 0, 0, 0, 0, 70, 46, 0, 65, 0, 0, 0, 0, + 69, 73, 0, 77, 0, 0, 0, 0, 0, 0, 81, 85, 0, + 91, 79, 78, 0, 0, 89, 0, + }; + static const unsigned char aLen[98] = { + 5, 5, 3, 3, 2, 3, 6, 6, 5, 7, 2, 7, 4, + 5, 7, 6, 8, 10, 6, 5, 8, 7, 10, 8, 6, 4, + 6, 8, 4, 4, 4, 3, 6, 9, 7, 4, 3, 7, 4, + 4, 4, 5, 6, 6, 9, 2, 5, 9, 5, 6, 7, 9, + 4, 2, 6, 4, 3, 4, 4, 5, 5, 7, 3, 7, 4, + 2, 6, 2, 2, 5, 5, 6, 7, 5, 10, 7, 8, 5, + 8, 3, 6, 3, 9, 5, 4, 9, 4, 11, 7, 5, 6, + 6, 5, 6, 6, 4, 4, 5, + }; + static const unsigned short int aOffset[98] = { + 0, 5, 10, 13, 16, 16, 19, 25, 31, 36, 43, 45, 52, + 56, 61, 68, 74, 82, 92, 98, 103, 111, 118, 128, 136, 142, + 146, 152, 160, 164, 168, 172, 175, 181, 190, 197, 201, 201, 208, + 212, 216, 220, 225, 231, 237, 246, 246, 251, 260, 265, 271, 278, + 287, 291, 291, 297, 301, 304, 308, 312, 317, 322, 329, 329, 336, + 340, 340, 346, 348, 348, 353, 358, 364, 371, 376, 386, 393, 401, + 406, 414, 417, 423, 426, 435, 440, 440, 449, 453, 464, 471, 476, + 482, 488, 493, 499, 505, 509, 513, + }; + static const unsigned char aCode[98] = { + TK_ABORT, TK_AFTER, TK_ALL, TK_AND, TK_AS, + TK_ASC, TK_ATTACH, TK_BEFORE, TK_BEGIN, TK_BETWEEN, + TK_BY, TK_CASCADE, TK_CASE, TK_CHECK, TK_COLLATE, + TK_COMMIT, TK_CONFLICT, TK_CONSTRAINT, TK_CREATE, TK_JOIN_KW, + TK_DATABASE, TK_DEFAULT, TK_DEFERRABLE, TK_DEFERRED, TK_DELETE, + TK_DESC, TK_DETACH, TK_DISTINCT, TK_DROP, TK_EACH, + TK_ELSE, TK_END, TK_EXCEPT, TK_EXCLUSIVE, TK_EXPLAIN, + TK_FAIL, TK_FOR, TK_FOREIGN, TK_FROM, TK_JOIN_KW, + TK_GLOB, TK_GROUP, TK_HAVING, TK_IGNORE, TK_IMMEDIATE, + TK_IN, TK_INDEX, TK_INITIALLY, TK_JOIN_KW, TK_INSERT, + TK_INSTEAD, TK_INTERSECT, TK_INTO, TK_IS, TK_ISNULL, + TK_JOIN, TK_KEY, TK_JOIN_KW, TK_LIKE, TK_LIMIT, + TK_MATCH, TK_JOIN_KW, TK_NOT, TK_NOTNULL, TK_NULL, + TK_OF, TK_OFFSET, TK_ON, TK_OR, TK_ORDER, + TK_JOIN_KW, TK_PRAGMA, TK_PRIMARY, TK_RAISE, TK_REFERENCES, + TK_REPLACE, TK_RESTRICT, TK_JOIN_KW, TK_ROLLBACK, TK_ROW, + TK_SELECT, TK_SET, TK_STATEMENT, TK_TABLE, TK_TEMP, + TK_TEMP, TK_THEN, TK_TRANSACTION,TK_TRIGGER, TK_UNION, + TK_UNIQUE, TK_UPDATE, TK_USING, TK_VACUUM, TK_VALUES, + TK_VIEW, TK_WHEN, TK_WHERE, + }; int h, i; - Keyword *p; - static char needInit = 1; - if( needInit ){ - /* Initialize the keyword hash table */ - sqlite3OsEnterMutex(); - if( needInit ){ - int nk; - nk = sizeof(aKeywordTable)/sizeof(aKeywordTable[0]); - for(i=0, p=aKeywordTable; izName; - int len = p->len = strlen(zName); - h = sqlite3HashNoCase(zName, len) % KEY_HASH_SIZE; - p->iNext = aiHashTable[h]; - aiHashTable[h] = i+1; - } - needInit = 0; - } - sqlite3OsLeaveMutex(); - } - h = sqlite3HashNoCase(z, n) % KEY_HASH_SIZE; - for(i=aiHashTable[h]; i; i=p->iNext){ - p = &aKeywordTable[i-1]; - if( p->len==n && sqlite3StrNICmp(p->zName, z, n)==0 ){ - return p->tokenType; + if( n<2 ) return TK_ID; + h = (sqlite3UpperToLower[((unsigned char*)z)[0]]*5 + + sqlite3UpperToLower[((unsigned char*)z)[n-1]]*3 + + n) % 154; + 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; } - /* ** If X is a character that can be used in an identifier and ** X&0x80==0 then isIdChar[X] will be 1. If X&0x80==0x80 then diff --git a/mozilla/db/sqlite3/src/trigger.c b/mozilla/db/sqlite3/src/trigger.c index 97c83059062..bbb526f802a 100644 --- a/mozilla/db/sqlite3/src/trigger.c +++ b/mozilla/db/sqlite3/src/trigger.c @@ -211,7 +211,7 @@ void sqlite3FinishTrigger( ** build the sqlite_master entry */ if( !db->init.busy ){ - static VdbeOpList insertTrig[] = { + static const VdbeOpList insertTrig[] = { { OP_NewRecno, 0, 0, 0 }, { OP_String8, 0, 0, "trigger" }, { OP_String8, 0, 0, 0 }, /* 2: trigger name */ @@ -487,12 +487,12 @@ void sqlite3DropTriggerPtr(Parse *pParse, Trigger *pTrigger, int nested){ */ if( pTable!=0 && (v = sqlite3GetVdbe(pParse))!=0 ){ int base; - static VdbeOpList dropTrigger[] = { + static const VdbeOpList dropTrigger[] = { { OP_Rewind, 0, ADDR(9), 0}, - { OP_String8, 0, 0, 0}, /* 1 */ + { OP_String8, 0, 0, 0}, /* 1 */ { OP_Column, 0, 1, 0}, { OP_Ne, 0, ADDR(8), 0}, - { OP_String8, 0, 0, "trigger"}, + { OP_String8, 0, 0, "trigger"}, { OP_Column, 0, 0, 0}, { OP_Ne, 0, ADDR(8), 0}, { OP_Delete, 0, 0, 0}, diff --git a/mozilla/db/sqlite3/src/vdbe.c b/mozilla/db/sqlite3/src/vdbe.c index 7c5a6dea4f5..1f42c8ca29d 100644 --- a/mozilla/db/sqlite3/src/vdbe.c +++ b/mozilla/db/sqlite3/src/vdbe.c @@ -43,7 +43,7 @@ ** in this file for details. If in doubt, do not deviate from existing ** commenting and indentation practices when changing or adding code. ** -** $Id: vdbe.c,v 1.417 2004/10/05 02:41:43 drh Exp $ +** $Id: vdbe.c,v 1.418 2004/10/06 15:41:17 drh Exp $ */ #include "sqliteInt.h" #include "os.h" @@ -303,7 +303,7 @@ void sqlite3VdbeMemPrettyPrint(Mem *pMem, char *zBuf, int nBuf){ char *zCsr = zBuf; int f = pMem->flags; - static const char *encnames[] = {"(X)", "(8)", "(16LE)", "(16BE)"}; + static const char *const encnames[] = {"(X)", "(8)", "(16LE)", "(16BE)"}; if( f&MEM_Blob ){ int i; diff --git a/mozilla/db/sqlite3/src/vdbeaux.c b/mozilla/db/sqlite3/src/vdbeaux.c index e7cadea8864..fa9751daabc 100644 --- a/mozilla/db/sqlite3/src/vdbeaux.c +++ b/mozilla/db/sqlite3/src/vdbeaux.c @@ -604,21 +604,22 @@ void sqlite3VdbeMakeReady( assert( nVar>=0 ); n = isExplain ? 10 : p->nOp; p->aStack = sqliteMalloc( - n*(sizeof(p->aStack[0])+sizeof(Mem*)) /* aStack, apArg */ - + nVar*sizeof(Mem) /* aVar */ - + nVar*sizeof(char*) /* azVar */ - + nMem*sizeof(Mem) /* aMem */ - + nCursor*sizeof(Cursor*) /* apCsr */ + n*sizeof(p->aStack[0]) /* aStack */ + + n*sizeof(Mem*) /* apArg */ + + nVar*sizeof(Mem) /* aVar */ + + nVar*sizeof(char*) /* azVar */ + + nMem*sizeof(Mem) /* aMem */ + + nCursor*sizeof(Cursor*) /* apCsr */ ); if( !sqlite3_malloc_failed ){ - p->apArg = (Mem **)&p->aStack[n]; - p->aVar = (Mem *)&p->apArg[n]; - p->azVar = (char**)&p->aVar[nVar]; - p->okVar = 0; - p->nVar = nVar; - p->aMem = (Mem*)&p->azVar[nVar]; + p->aMem = &p->aStack[n]; p->nMem = nMem; - p->apCsr = (Cursor**)&p->aMem[nMem]; + p->aVar = &p->aMem[nMem]; + p->nVar = nVar; + p->okVar = 0; + p->apArg = (Mem**)&p->aVar[nVar]; + p->azVar = (char**)&p->apArg[n]; + p->apCsr = (Cursor**)&p->azVar[nVar]; p->nCursor = nCursor; for(n=0; naVar[n].flags = MEM_Null; @@ -1516,7 +1517,7 @@ int sqlite3VdbeSerialTypeLen(u32 serial_type){ if( serial_type>=12 ){ return (serial_type-12)/2; }else{ - static u8 aSize[] = { 0, 1, 2, 3, 4, 6, 8, 8, 0, 0, 0, 0 }; + static const u8 aSize[] = { 0, 1, 2, 3, 4, 6, 8, 8, 0, 0, 0, 0 }; return aSize[serial_type]; } }