Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Adjust the Makefile to omit unused features of SQLite. This makes coverage testing easier. |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
8a016b9169690d4907bbbe1d9c2d6e73 |
User & Date: | drh 2009-01-16 16:15:51.000 |
Context
2009-01-23
| ||
21:37 | Fixed issue with responses from ODBC3 drivers. check-in: 01ecc32bef user: shaneh tags: trunk | |
2009-01-16
| ||
16:15 | Adjust the Makefile to omit unused features of SQLite. This makes coverage testing easier. check-in: 8a016b9169 user: drh tags: trunk | |
14:11 | Update SQLite to version 3.6.10. check-in: 28ed264df2 user: drh tags: trunk | |
Changes
Changes to src/Makefile.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #!/usr/bin/make # #### The suffix to add to executable files. ".exe" for windows. # Nothing for unix. # E = #### C Compile and options for use in building executables that # will run on the target platform. # CC = gcc -g -Wall #### Extra arguments for linking the finished binary. # LIB = $(LDFLAGS) # You should not need to change anything below this line ############################################################################### # OBJ = \ md5.o \ sqlite3.o INC = \ slt_sqlite.c \ slt_odbc3.c sqllogictest$(E): sqllogictest.c sqllogictest.h $(OBJ) $(INC) $(CC) -o sqllogictest$(E) sqllogictest.c $(OBJ) md5.o: md5.c $(CC) -c md5.c sqlite3.o: sqlite3.c sqlite3.h | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | #!/usr/bin/make # #### The suffix to add to executable files. ".exe" for windows. # Nothing for unix. # E = #### C Compile and options for use in building executables that # will run on the target platform. # CC = gcc -g -Wall #CC = gcc -g -Wall -DOMIT_ODBC=1 -fprofile-arcs -ftest-coverage #CC += -DSQLITE_COVERAGE_TEST #### Extra arguments for linking the finished binary. # LIB = $(LDFLAGS) # You should not need to change anything below this line ############################################################################### # OBJ = \ md5.o \ sqlite3.o INC = \ slt_sqlite.c \ slt_odbc3.c OPTS += -DSQLITE_THREADSAFE=0 # The following OMIT options must match the OMIT options used to build # the amalgamation. # OPTS += -DSQLITE_OMIT_ALTERTABLE OPTS += -DSQLITE_OMIT_ANALYZE OPTS += -DSQLITE_OMIT_ATTACH OPTS += -DSQLITE_OMIT_AUTHORIZATION OPTS += -DSQLITE_OMIT_AUTOINCREMENT OPTS += -DSQLITE_OMIT_AUTOVACUUM OPTS += -DSQLITE_OMIT_BUILTIN_TEST OPTS += -DSQLITE_OMIT_COMPLETE OPTS += -DSQLITE_OMIT_CONFLICT_CLAUSE OPTS += -DSQLITE_OMIT_DATETIME_FUNCS OPTS += -DSQLITE_OMIT_GET_TABLE OPTS += -DSQLITE_OMIT_INCRBLOB OPTS += -DSQLITE_OMIT_LOAD_EXTENSION OPTS += -DSQLITE_OMIT_MEMORYDB OPTS += -DSQLITE_OMIT_PRAGMA OPTS += -DSQLITE_OMIT_REINDEX OPTS += -DSQLITE_OMIT_SHARED_CACHE OPTS += -DSQLITE_OMIT_TCL_VARIABLE OPTS += -DSQLITE_OMIT_TRACE OPTS += -DSQLITE_OMIT_TRACE OPTS += -DSQLITE_OMIT_UTF16 OPTS += -DSQLITE_OMIT_VACUUM OPTS += -DSQLITE_OMIT_VIRTUALTABLE sqllogictest$(E): sqllogictest.c sqllogictest.h $(OBJ) $(INC) $(CC) -o sqllogictest$(E) sqllogictest.c $(OBJ) md5.o: md5.c $(CC) -c md5.c sqlite3.o: sqlite3.c sqlite3.h $(CC) -c sqlite3.c $(OPTS) clean: rm -f $(OBJ) |
Changes to src/sqlite3.c.
︙ | ︙ | |||
13 14 15 16 17 18 19 | ** the "sqlite3.h" header file at hand, you will find a copy in the first ** 6736 lines past this header comment.) Additional code files may be ** needed if you want a wrapper to interface SQLite with your choice of ** programming language. The code for the "sqlite3" command-line shell ** is also in a separate file. This file contains only code for the core ** SQLite library. ** | | | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | ** the "sqlite3.h" header file at hand, you will find a copy in the first ** 6736 lines past this header comment.) Additional code files may be ** needed if you want a wrapper to interface SQLite with your choice of ** programming language. The code for the "sqlite3" command-line shell ** is also in a separate file. This file contains only code for the core ** SQLite library. ** ** This amalgamation was generated on 2009-01-16 15:02:40 UTC. */ #define SQLITE_CORE 1 #define SQLITE_AMALGAMATION 1 #ifndef SQLITE_PRIVATE # define SQLITE_PRIVATE static #endif #ifndef SQLITE_API |
︙ | ︙ | |||
37 38 39 40 41 42 43 | ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** Internal interface definitions for SQLite. ** | | | 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** Internal interface definitions for SQLite. ** ** @(#) $Id: sqliteInt.h,v 1.825 2009/01/15 17:40:43 drh Exp $ */ #ifndef _SQLITEINT_H_ #define _SQLITEINT_H_ /* ** Include the configuration header output by 'configure' if we're using the ** autoconf-based build |
︙ | ︙ | |||
7466 7467 7468 7469 7470 7471 7472 | #define TK_REGISTER 131 #define TK_VARIABLE 132 #define TK_CASE 133 #define TK_WHEN 134 #define TK_THEN 135 #define TK_ELSE 136 #define TK_INDEX 137 | < < < | | | | | | | | | | | | | | | 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 | #define TK_REGISTER 131 #define TK_VARIABLE 132 #define TK_CASE 133 #define TK_WHEN 134 #define TK_THEN 135 #define TK_ELSE 136 #define TK_INDEX 137 #define TK_TO_TEXT 138 #define TK_TO_BLOB 139 #define TK_TO_NUMERIC 140 #define TK_TO_INT 141 #define TK_TO_REAL 142 #define TK_END_OF_FILE 143 #define TK_ILLEGAL 144 #define TK_SPACE 145 #define TK_UNCLOSED_STRING 146 #define TK_FUNCTION 147 #define TK_COLUMN 148 #define TK_AGG_FUNCTION 149 #define TK_AGG_COLUMN 150 #define TK_CONST_FUNC 151 /************** End of parse.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h> |
︙ | ︙ | |||
8186 8187 8188 8189 8190 8191 8192 | #define OP_Ge 75 /* same as TK_GE */ #define OP_RowKey 8 #define OP_SCopy 9 #define OP_Eq 71 /* same as TK_EQ */ #define OP_OpenWrite 10 #define OP_NotNull 69 /* same as TK_NOTNULL */ #define OP_If 11 | | | 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 | #define OP_Ge 75 /* same as TK_GE */ #define OP_RowKey 8 #define OP_SCopy 9 #define OP_Eq 71 /* same as TK_EQ */ #define OP_OpenWrite 10 #define OP_NotNull 69 /* same as TK_NOTNULL */ #define OP_If 11 #define OP_ToInt 141 /* same as TK_TO_INT */ #define OP_String8 91 /* same as TK_STRING */ #define OP_VRowid 12 #define OP_CollSeq 13 #define OP_OpenRead 14 #define OP_Expire 15 #define OP_AutoCommit 16 #define OP_Gt 72 /* same as TK_GT */ |
︙ | ︙ | |||
8232 8233 8234 8235 8236 8237 8238 | #define OP_RowData 45 #define OP_MemMax 46 #define OP_Or 63 /* same as TK_OR */ #define OP_NotExists 47 #define OP_Gosub 48 #define OP_Divide 84 /* same as TK_SLASH */ #define OP_Integer 49 | | | 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8240 8241 8242 8243 | #define OP_RowData 45 #define OP_MemMax 46 #define OP_Or 63 /* same as TK_OR */ #define OP_NotExists 47 #define OP_Gosub 48 #define OP_Divide 84 /* same as TK_SLASH */ #define OP_Integer 49 #define OP_ToNumeric 140 /* same as TK_TO_NUMERIC*/ #define OP_Prev 50 #define OP_RowSetRead 51 #define OP_Concat 86 /* same as TK_CONCAT */ #define OP_RowSetAdd 52 #define OP_BitAnd 77 /* same as TK_BITAND */ #define OP_VColumn 53 #define OP_CreateTable 54 |
︙ | ︙ | |||
8258 8259 8260 8261 8262 8263 8264 | #define OP_IdxGE 66 #define OP_IdxDelete 67 #define OP_Vacuum 76 #define OP_IfNot 87 #define OP_DropTable 88 #define OP_SeekLt 89 #define OP_MakeRecord 92 | | | | | 8255 8256 8257 8258 8259 8260 8261 8262 8263 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 | #define OP_IdxGE 66 #define OP_IdxDelete 67 #define OP_Vacuum 76 #define OP_IfNot 87 #define OP_DropTable 88 #define OP_SeekLt 89 #define OP_MakeRecord 92 #define OP_ToBlob 139 /* same as TK_TO_BLOB */ #define OP_ResultRow 93 #define OP_Delete 94 #define OP_AggFinal 95 #define OP_Compare 96 #define OP_ShiftLeft 79 /* same as TK_LSHIFT */ #define OP_Goto 97 #define OP_TableLock 98 #define OP_Clear 99 #define OP_Le 73 /* same as TK_LE */ #define OP_VerifyCookie 100 #define OP_AggStep 101 #define OP_ToText 138 /* same as TK_TO_TEXT */ #define OP_Not 19 /* same as TK_NOT */ #define OP_ToReal 142 /* same as TK_TO_REAL */ #define OP_SetNumColumns 102 #define OP_Transaction 103 #define OP_VFilter 104 #define OP_Ne 70 /* same as TK_NE */ #define OP_VDestroy 105 #define OP_ContextPop 106 #define OP_BitOr 78 /* same as TK_BITOR */ |
︙ | ︙ | |||
8315 8316 8317 8318 8319 8320 8321 | /* The following opcode values are never used */ #define OP_NotUsed_132 132 #define OP_NotUsed_133 133 #define OP_NotUsed_134 134 #define OP_NotUsed_135 135 #define OP_NotUsed_136 136 #define OP_NotUsed_137 137 | < < < | 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8324 8325 | /* The following opcode values are never used */ #define OP_NotUsed_132 132 #define OP_NotUsed_133 133 #define OP_NotUsed_134 134 #define OP_NotUsed_135 135 #define OP_NotUsed_136 136 #define OP_NotUsed_137 137 /* Properties such as "out2" or "jump" that are specified in ** comments following the "case" for each opcode in the vdbe.c ** are encoded into bitvectors as follows: */ #define OPFLG_JUMP 0x0001 /* jump: P2 holds jmp target */ |
︙ | ︙ | |||
8348 8349 8350 8351 8352 8353 8354 | /* 80 */ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x05,\ /* 88 */ 0x00, 0x11, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00,\ /* 96 */ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ /* 104 */ 0x01, 0x00, 0x00, 0x01, 0x08, 0x11, 0x00, 0x02,\ /* 112 */ 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02,\ /* 120 */ 0x01, 0x11, 0x00, 0x00, 0x05, 0x00, 0x11, 0x05,\ /* 128 */ 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,\ | | < | 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 | /* 80 */ 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x05,\ /* 88 */ 0x00, 0x11, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00,\ /* 96 */ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ /* 104 */ 0x01, 0x00, 0x00, 0x01, 0x08, 0x11, 0x00, 0x02,\ /* 112 */ 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02,\ /* 120 */ 0x01, 0x11, 0x00, 0x00, 0x05, 0x00, 0x11, 0x05,\ /* 128 */ 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,\ /* 136 */ 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04,} /************** End of opcodes.h *********************************************/ /************** Continuing where we left off in vdbe.h ***********************/ /* ** Prototypes for the VDBE interface. See comments on the implementation ** for a description of what each of these routines does. |
︙ | ︙ | |||
10118 10119 10120 10121 10122 10123 10124 | struct { int nIn; /* Number of entries in aInLoop[] */ struct InLoop { int iCur; /* The VDBE cursor used by this IN operator */ int addrInTop; /* Top of the IN loop */ } *aInLoop; /* Information about each nested IN operator */ } in; /* Used when plan.wsFlags&WHERE_IN_ABLE */ | < < < | 10111 10112 10113 10114 10115 10116 10117 10118 10119 10120 10121 10122 10123 10124 | struct { int nIn; /* Number of entries in aInLoop[] */ struct InLoop { int iCur; /* The VDBE cursor used by this IN operator */ int addrInTop; /* Top of the IN loop */ } *aInLoop; /* Information about each nested IN operator */ } in; /* Used when plan.wsFlags&WHERE_IN_ABLE */ } u; /* The following field is really not part of the current level. But ** we need a place to cache virtual table index information for each ** virtual table in the FROM clause and the WhereLevel structure is ** a convenient place since there is one WhereLevel for each FROM clause ** element. |
︙ | ︙ | |||
20164 20165 20166 20167 20168 20169 20170 | /* 131 */ "Permutation", /* 132 */ "NotUsed_132", /* 133 */ "NotUsed_133", /* 134 */ "NotUsed_134", /* 135 */ "NotUsed_135", /* 136 */ "NotUsed_136", /* 137 */ "NotUsed_137", | | | | | | < < < | 20154 20155 20156 20157 20158 20159 20160 20161 20162 20163 20164 20165 20166 20167 20168 20169 20170 20171 20172 | /* 131 */ "Permutation", /* 132 */ "NotUsed_132", /* 133 */ "NotUsed_133", /* 134 */ "NotUsed_134", /* 135 */ "NotUsed_135", /* 136 */ "NotUsed_136", /* 137 */ "NotUsed_137", /* 138 */ "ToText", /* 139 */ "ToBlob", /* 140 */ "ToNumeric", /* 141 */ "ToInt", /* 142 */ "ToReal", }; return azName[i]; } #endif /************** End of opcodes.c *********************************************/ /************** Begin file os_os2.c ******************************************/ |
︙ | ︙ | |||
82982 82983 82984 82985 82986 82987 82988 | ** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser ** YYNSTATE the combined number of states. ** YYNRULE the number of rules in the grammar ** YYERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ #define YYCODETYPE unsigned char | | > > > | | < < | | | | | | < | | | 82969 82970 82971 82972 82973 82974 82975 82976 82977 82978 82979 82980 82981 82982 82983 82984 82985 82986 82987 82988 82989 82990 82991 82992 82993 82994 82995 82996 82997 82998 82999 83000 83001 83002 83003 83004 83005 83006 83007 83008 83009 83010 | ** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser ** YYNSTATE the combined number of states. ** YYNRULE the number of rules in the grammar ** YYERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ #define YYCODETYPE unsigned char #define YYNOCODE 237 #define YYACTIONTYPE unsigned short int #define YYWILDCARD 62 #define sqlite3ParserTOKENTYPE Token typedef union { int yyinit; sqlite3ParserTOKENTYPE yy0; SrcList* yy3; TriggerStep* yy19; struct LikeOp yy150; struct LimitVal yy196; int yy228; struct {int value; int mask;} yy231; ExprList* yy258; Select* yy387; IdList* yy400; Expr* yy402; struct TrigEvent yy466; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 #endif #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 546 #define YYNRULE 282 #define YYFALLBACK 1 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) /* The yyzerominor constant is used to initialize instances of ** YYMINORTYPE objects to zero. */ |
︙ | ︙ | |||
83068 83069 83070 83071 83072 83073 83074 | ** yy_shift_ofst[] For each state, the offset into yy_action for ** shifting terminals. ** yy_reduce_ofst[] For each state, the offset into yy_action for ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < < < < < < < > > > > > > > | | | | | | | | | | | | | | | | | | | | | | | | < < < < < < < < < < > > > > > > > > > > | | | | | | | | | | | | | | | | | | | | | < < < < < < < < < < < < < < | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < < < < < < < < | < < | | | < | | | < > > | | | | | | | | | | < | | | | < < < | | | | | | | | | | | | | | | | | < | | | | | | > | | | | | | | | | | | | | | | | | | | | | | < < < < | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < < < | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < < < < < < | 83055 83056 83057 83058 83059 83060 83061 83062 83063 83064 83065 83066 83067 83068 83069 83070 83071 83072 83073 83074 83075 83076 83077 83078 83079 83080 83081 83082 83083 83084 83085 83086 83087 83088 83089 83090 83091 83092 83093 83094 83095 83096 83097 83098 83099 83100 83101 83102 83103 83104 83105 83106 83107 83108 83109 83110 83111 83112 83113 83114 83115 83116 83117 83118 83119 83120 83121 83122 83123 83124 83125 83126 83127 83128 83129 83130 83131 83132 83133 83134 83135 83136 83137 83138 83139 83140 83141 83142 83143 83144 83145 83146 83147 83148 83149 83150 83151 83152 83153 83154 83155 83156 83157 83158 83159 83160 83161 83162 83163 83164 83165 83166 83167 83168 83169 83170 83171 83172 83173 83174 83175 83176 83177 83178 83179 83180 83181 83182 83183 83184 83185 83186 83187 83188 83189 83190 83191 83192 83193 83194 83195 83196 83197 83198 83199 83200 83201 83202 83203 83204 83205 83206 83207 83208 83209 83210 83211 83212 83213 83214 83215 83216 83217 83218 83219 83220 83221 83222 83223 83224 83225 83226 83227 83228 83229 83230 83231 83232 83233 83234 83235 83236 83237 83238 83239 83240 83241 83242 83243 83244 83245 83246 83247 83248 83249 83250 83251 83252 83253 83254 83255 83256 83257 83258 83259 83260 83261 83262 83263 83264 83265 83266 83267 83268 83269 83270 83271 83272 83273 83274 83275 83276 83277 83278 83279 83280 83281 83282 83283 83284 83285 83286 83287 83288 83289 83290 83291 83292 83293 83294 83295 83296 83297 83298 83299 83300 83301 83302 83303 83304 83305 83306 83307 83308 83309 83310 83311 83312 83313 83314 83315 83316 83317 83318 83319 83320 83321 83322 83323 83324 83325 83326 83327 83328 83329 83330 83331 83332 83333 83334 83335 83336 83337 83338 83339 83340 83341 83342 83343 83344 83345 83346 83347 83348 83349 83350 83351 83352 83353 83354 83355 83356 83357 83358 83359 83360 83361 83362 83363 83364 83365 83366 83367 83368 83369 83370 83371 83372 83373 83374 83375 83376 83377 83378 83379 83380 83381 83382 83383 83384 83385 83386 83387 83388 83389 83390 83391 83392 83393 83394 83395 83396 83397 83398 83399 83400 83401 83402 83403 83404 83405 83406 83407 83408 83409 83410 83411 83412 83413 83414 83415 83416 83417 83418 83419 83420 83421 83422 83423 83424 83425 83426 83427 83428 83429 83430 83431 83432 83433 83434 83435 83436 83437 83438 83439 83440 83441 83442 83443 83444 83445 83446 83447 83448 | ** yy_shift_ofst[] For each state, the offset into yy_action for ** shifting terminals. ** yy_reduce_ofst[] For each state, the offset into yy_action for ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { /* 0 */ 273, 829, 106, 545, 2, 163, 192, 394, 56, 56, /* 10 */ 56, 56, 194, 58, 58, 58, 58, 59, 59, 60, /* 20 */ 60, 60, 61, 194, 423, 196, 401, 407, 63, 58, /* 30 */ 58, 58, 58, 59, 59, 60, 60, 60, 61, 194, /* 40 */ 427, 279, 418, 419, 55, 54, 278, 411, 412, 408, /* 50 */ 408, 57, 57, 56, 56, 56, 56, 318, 58, 58, /* 60 */ 58, 58, 59, 59, 60, 60, 60, 61, 194, 273, /* 70 */ 468, 281, 394, 467, 396, 77, 58, 58, 58, 58, /* 80 */ 59, 59, 60, 60, 60, 61, 194, 59, 59, 60, /* 90 */ 60, 60, 61, 194, 502, 401, 407, 364, 361, 53, /* 100 */ 276, 218, 51, 195, 512, 17, 386, 398, 398, 398, /* 110 */ 425, 302, 159, 55, 54, 278, 411, 412, 408, 408, /* 120 */ 57, 57, 56, 56, 56, 56, 469, 58, 58, 58, /* 130 */ 58, 59, 59, 60, 60, 60, 61, 194, 273, 206, /* 140 */ 432, 427, 502, 97, 281, 155, 102, 234, 323, 239, /* 150 */ 324, 166, 383, 17, 470, 433, 317, 138, 243, 61, /* 160 */ 194, 135, 136, 387, 401, 407, 291, 366, 434, 510, /* 170 */ 474, 468, 191, 385, 343, 396, 137, 511, 346, 189, /* 180 */ 475, 497, 55, 54, 278, 411, 412, 408, 408, 57, /* 190 */ 57, 56, 56, 56, 56, 528, 58, 58, 58, 58, /* 200 */ 59, 59, 60, 60, 60, 61, 194, 273, 398, 398, /* 210 */ 398, 369, 206, 391, 60, 60, 60, 61, 194, 102, /* 220 */ 234, 323, 239, 324, 166, 172, 296, 192, 325, 328, /* 230 */ 329, 243, 219, 401, 407, 369, 527, 358, 167, 330, /* 240 */ 450, 352, 62, 438, 64, 140, 16, 369, 131, 390, /* 250 */ 38, 55, 54, 278, 411, 412, 408, 408, 57, 57, /* 260 */ 56, 56, 56, 56, 503, 58, 58, 58, 58, 59, /* 270 */ 59, 60, 60, 60, 61, 194, 370, 371, 172, 459, /* 280 */ 273, 325, 328, 329, 242, 296, 353, 260, 259, 312, /* 290 */ 199, 296, 330, 275, 296, 193, 62, 192, 64, 140, /* 300 */ 370, 371, 50, 141, 461, 235, 401, 407, 390, 31, /* 310 */ 527, 226, 370, 371, 390, 31, 236, 390, 31, 62, /* 320 */ 284, 64, 140, 72, 55, 54, 278, 411, 412, 408, /* 330 */ 408, 57, 57, 56, 56, 56, 56, 391, 58, 58, /* 340 */ 58, 58, 59, 59, 60, 60, 60, 61, 194, 296, /* 350 */ 310, 319, 450, 273, 242, 320, 314, 463, 139, 310, /* 360 */ 353, 260, 259, 172, 309, 296, 325, 328, 329, 307, /* 370 */ 296, 192, 390, 25, 390, 3, 183, 330, 270, 401, /* 380 */ 407, 425, 501, 159, 62, 145, 64, 140, 390, 32, /* 390 */ 207, 200, 391, 390, 46, 315, 75, 55, 54, 278, /* 400 */ 411, 412, 408, 408, 57, 57, 56, 56, 56, 56, /* 410 */ 391, 58, 58, 58, 58, 59, 59, 60, 60, 60, /* 420 */ 61, 194, 273, 296, 462, 227, 466, 333, 520, 296, /* 430 */ 444, 1, 519, 296, 351, 369, 301, 418, 419, 289, /* 440 */ 225, 415, 402, 403, 342, 183, 390, 26, 401, 407, /* 450 */ 15, 394, 390, 38, 167, 354, 390, 46, 509, 484, /* 460 */ 147, 472, 473, 405, 406, 508, 55, 54, 278, 411, /* 470 */ 412, 408, 408, 57, 57, 56, 56, 56, 56, 391, /* 480 */ 58, 58, 58, 58, 59, 59, 60, 60, 60, 61, /* 490 */ 194, 273, 404, 198, 391, 483, 428, 369, 195, 296, /* 500 */ 370, 371, 290, 351, 432, 369, 148, 146, 297, 275, /* 510 */ 299, 20, 414, 414, 243, 369, 394, 401, 407, 433, /* 520 */ 363, 2, 390, 21, 347, 525, 473, 299, 350, 414, /* 530 */ 414, 254, 434, 450, 306, 55, 54, 278, 411, 412, /* 540 */ 408, 408, 57, 57, 56, 56, 56, 56, 109, 58, /* 550 */ 58, 58, 58, 59, 59, 60, 60, 60, 61, 194, /* 560 */ 273, 248, 370, 371, 246, 5, 110, 296, 445, 296, /* 570 */ 370, 371, 230, 255, 296, 546, 364, 361, 450, 296, /* 580 */ 370, 371, 299, 212, 414, 414, 401, 407, 446, 454, /* 590 */ 390, 29, 390, 48, 208, 368, 447, 390, 47, 252, /* 600 */ 263, 250, 390, 89, 55, 54, 278, 411, 412, 408, /* 610 */ 408, 57, 57, 56, 56, 56, 56, 232, 58, 58, /* 620 */ 58, 58, 59, 59, 60, 60, 60, 61, 194, 273, /* 630 */ 296, 372, 373, 374, 299, 144, 414, 414, 266, 360, /* 640 */ 264, 296, 378, 296, 454, 296, 454, 296, 384, 500, /* 650 */ 163, 280, 394, 390, 87, 401, 407, 497, 192, 299, /* 660 */ 445, 414, 414, 379, 390, 92, 390, 93, 390, 96, /* 670 */ 390, 98, 359, 55, 54, 278, 411, 412, 408, 408, /* 680 */ 57, 57, 56, 56, 56, 56, 296, 58, 58, 58, /* 690 */ 58, 59, 59, 60, 60, 60, 61, 194, 273, 296, /* 700 */ 18, 489, 190, 296, 394, 296, 341, 296, 288, 390, /* 710 */ 14, 296, 162, 146, 296, 350, 296, 394, 421, 421, /* 720 */ 265, 490, 390, 90, 401, 407, 390, 30, 390, 88, /* 730 */ 390, 22, 380, 254, 390, 49, 391, 390, 99, 390, /* 740 */ 100, 242, 55, 65, 278, 411, 412, 408, 408, 57, /* 750 */ 57, 56, 56, 56, 56, 296, 58, 58, 58, 58, /* 760 */ 59, 59, 60, 60, 60, 61, 194, 273, 296, 394, /* 770 */ 185, 424, 296, 283, 296, 535, 296, 285, 390, 101, /* 780 */ 298, 211, 296, 71, 296, 73, 296, 518, 340, 518, /* 790 */ 103, 390, 23, 401, 407, 390, 33, 390, 34, 390, /* 800 */ 24, 168, 169, 170, 254, 390, 35, 390, 36, 390, /* 810 */ 37, 321, 54, 278, 411, 412, 408, 408, 57, 57, /* 820 */ 56, 56, 56, 56, 296, 58, 58, 58, 58, 59, /* 830 */ 59, 60, 60, 60, 61, 194, 273, 296, 389, 522, /* 840 */ 445, 296, 388, 296, 171, 296, 537, 390, 39, 443, /* 850 */ 389, 296, 440, 296, 388, 296, 409, 296, 397, 441, /* 860 */ 390, 40, 401, 407, 390, 41, 390, 27, 390, 28, /* 870 */ 79, 254, 254, 242, 390, 42, 390, 43, 390, 44, /* 880 */ 390, 45, 278, 411, 412, 408, 408, 57, 57, 56, /* 890 */ 56, 56, 56, 242, 58, 58, 58, 58, 59, 59, /* 900 */ 60, 60, 60, 61, 194, 67, 303, 144, 4, 286, /* 910 */ 187, 142, 277, 538, 539, 524, 254, 254, 156, 481, /* 920 */ 300, 67, 303, 254, 4, 478, 479, 308, 277, 287, /* 930 */ 174, 416, 445, 19, 436, 177, 300, 305, 449, 452, /* 940 */ 134, 164, 453, 150, 391, 391, 455, 427, 213, 214, /* 950 */ 215, 153, 217, 305, 95, 789, 488, 487, 209, 210, /* 960 */ 493, 240, 171, 427, 391, 269, 180, 70, 69, 391, /* 970 */ 485, 245, 332, 171, 171, 486, 68, 294, 295, 491, /* 980 */ 523, 396, 171, 70, 69, 460, 531, 532, 164, 86, /* 990 */ 527, 492, 68, 294, 295, 241, 542, 396, 86, 192, /* 1000 */ 504, 247, 249, 251, 253, 67, 303, 337, 4, 381, /* 1010 */ 258, 585, 277, 345, 398, 398, 398, 399, 400, 9, /* 1020 */ 300, 348, 349, 261, 262, 133, 220, 395, 304, 420, /* 1030 */ 398, 398, 398, 399, 400, 9, 422, 305, 484, 228, /* 1040 */ 356, 268, 259, 439, 442, 237, 274, 427, 267, 495, /* 1050 */ 498, 192, 494, 496, 357, 327, 530, 151, 367, 541, /* 1060 */ 375, 376, 377, 292, 7, 293, 79, 70, 69, 152, /* 1070 */ 154, 311, 392, 221, 313, 52, 68, 294, 295, 222, /* 1080 */ 74, 396, 78, 224, 161, 437, 223, 107, 80, 393, /* 1090 */ 197, 316, 322, 282, 481, 471, 476, 229, 111, 451, /* 1100 */ 231, 238, 457, 233, 480, 458, 477, 482, 271, 204, /* 1110 */ 203, 499, 505, 334, 398, 398, 398, 399, 400, 9, /* 1120 */ 272, 513, 175, 338, 176, 205, 506, 507, 336, 178, /* 1130 */ 83, 179, 515, 256, 181, 516, 344, 105, 526, 119, /* 1140 */ 129, 184, 533, 355, 91, 365, 120, 216, 121, 122, /* 1150 */ 123, 125, 202, 382, 128, 586, 94, 587, 157, 158, /* 1160 */ 540, 410, 413, 66, 429, 417, 426, 130, 143, 104, /* 1170 */ 430, 448, 431, 160, 435, 76, 6, 10, 11, 108, /* 1180 */ 165, 456, 149, 464, 465, 201, 81, 326, 112, 173, /* 1190 */ 244, 113, 82, 114, 236, 335, 132, 514, 115, 164, /* 1200 */ 182, 331, 339, 117, 116, 257, 521, 8, 529, 517, /* 1210 */ 118, 186, 12, 534, 188, 536, 124, 126, 127, 13, /* 1220 */ 543, 362, 830, 544, 830, 830, 830, 830, 830, 830, /* 1230 */ 84, 830, 830, 85, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 19, 139, 140, 141, 142, 24, 113, 26, 72, 73, /* 10 */ 74, 75, 87, 77, 78, 79, 80, 81, 82, 83, /* 20 */ 84, 85, 86, 87, 81, 82, 45, 46, 76, 77, /* 30 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, /* 40 */ 61, 165, 166, 167, 63, 64, 65, 66, 67, 68, /* 50 */ 69, 70, 71, 72, 73, 74, 75, 19, 77, 78, /* 60 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 19, /* 70 */ 91, 19, 91, 170, 95, 25, 77, 78, 79, 80, /* 80 */ 81, 82, 83, 84, 85, 86, 87, 81, 82, 83, /* 90 */ 84, 85, 86, 87, 147, 45, 46, 1, 2, 49, /* 100 */ 151, 154, 22, 227, 157, 158, 26, 128, 129, 130, /* 110 */ 162, 163, 164, 63, 64, 65, 66, 67, 68, 69, /* 120 */ 70, 71, 72, 73, 74, 75, 170, 77, 78, 79, /* 130 */ 80, 81, 82, 83, 84, 85, 86, 87, 19, 87, /* 140 */ 12, 61, 147, 24, 19, 93, 94, 95, 96, 97, /* 150 */ 98, 99, 157, 158, 161, 27, 118, 25, 106, 86, /* 160 */ 87, 81, 82, 170, 45, 46, 143, 144, 40, 182, /* 170 */ 42, 91, 149, 169, 225, 95, 181, 182, 229, 156, /* 180 */ 52, 177, 63, 64, 65, 66, 67, 68, 69, 70, /* 190 */ 71, 72, 73, 74, 75, 11, 77, 78, 79, 80, /* 200 */ 81, 82, 83, 84, 85, 86, 87, 19, 128, 129, /* 210 */ 130, 26, 87, 190, 83, 84, 85, 86, 87, 94, /* 220 */ 95, 96, 97, 98, 99, 93, 147, 113, 96, 97, /* 230 */ 98, 106, 191, 45, 46, 26, 52, 214, 46, 107, /* 240 */ 162, 127, 218, 219, 220, 221, 22, 26, 24, 170, /* 250 */ 171, 63, 64, 65, 66, 67, 68, 69, 70, 71, /* 260 */ 72, 73, 74, 75, 182, 77, 78, 79, 80, 81, /* 270 */ 82, 83, 84, 85, 86, 87, 91, 92, 93, 201, /* 280 */ 19, 96, 97, 98, 147, 147, 102, 103, 104, 210, /* 290 */ 211, 147, 107, 101, 147, 193, 218, 113, 220, 221, /* 300 */ 91, 92, 200, 156, 83, 95, 45, 46, 170, 171, /* 310 */ 52, 147, 91, 92, 170, 171, 106, 170, 171, 218, /* 320 */ 183, 220, 221, 135, 63, 64, 65, 66, 67, 68, /* 330 */ 69, 70, 71, 72, 73, 74, 75, 190, 77, 78, /* 340 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 147, /* 350 */ 212, 147, 162, 19, 147, 217, 212, 23, 156, 212, /* 360 */ 102, 103, 104, 93, 217, 147, 96, 97, 98, 187, /* 370 */ 147, 113, 170, 171, 170, 171, 156, 107, 159, 45, /* 380 */ 46, 162, 163, 164, 218, 147, 220, 221, 170, 171, /* 390 */ 183, 201, 190, 170, 171, 147, 135, 63, 64, 65, /* 400 */ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, /* 410 */ 190, 77, 78, 79, 80, 81, 82, 83, 84, 85, /* 420 */ 86, 87, 19, 147, 23, 147, 23, 19, 28, 147, /* 430 */ 204, 22, 32, 147, 214, 26, 165, 166, 167, 216, /* 440 */ 222, 23, 45, 46, 44, 156, 170, 171, 45, 46, /* 450 */ 230, 26, 170, 171, 46, 235, 170, 171, 177, 178, /* 460 */ 156, 186, 187, 66, 67, 184, 63, 64, 65, 66, /* 470 */ 67, 68, 69, 70, 71, 72, 73, 74, 75, 190, /* 480 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, /* 490 */ 87, 19, 95, 211, 190, 23, 23, 26, 227, 147, /* 500 */ 91, 92, 216, 214, 12, 26, 202, 203, 147, 101, /* 510 */ 109, 22, 111, 112, 106, 26, 91, 45, 46, 27, /* 520 */ 141, 142, 170, 171, 235, 186, 187, 109, 147, 111, /* 530 */ 112, 147, 40, 162, 42, 63, 64, 65, 66, 67, /* 540 */ 68, 69, 70, 71, 72, 73, 74, 75, 23, 77, /* 550 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, /* 560 */ 19, 17, 91, 92, 23, 192, 23, 147, 25, 147, /* 570 */ 91, 92, 201, 189, 147, 0, 1, 2, 162, 147, /* 580 */ 91, 92, 109, 145, 111, 112, 45, 46, 117, 147, /* 590 */ 170, 171, 170, 171, 213, 147, 117, 170, 171, 55, /* 600 */ 17, 57, 170, 171, 63, 64, 65, 66, 67, 68, /* 610 */ 69, 70, 71, 72, 73, 74, 75, 201, 77, 78, /* 620 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 19, /* 630 */ 147, 7, 8, 9, 109, 92, 111, 112, 55, 94, /* 640 */ 57, 147, 147, 147, 147, 147, 147, 147, 168, 169, /* 650 */ 24, 209, 26, 170, 171, 45, 46, 177, 113, 109, /* 660 */ 117, 111, 112, 147, 170, 171, 170, 171, 170, 171, /* 670 */ 170, 171, 127, 63, 64, 65, 66, 67, 68, 69, /* 680 */ 70, 71, 72, 73, 74, 75, 147, 77, 78, 79, /* 690 */ 80, 81, 82, 83, 84, 85, 86, 87, 19, 147, /* 700 */ 22, 33, 156, 147, 26, 147, 209, 147, 209, 170, /* 710 */ 171, 147, 202, 203, 147, 147, 147, 91, 128, 129, /* 720 */ 137, 53, 170, 171, 45, 46, 170, 171, 170, 171, /* 730 */ 170, 171, 147, 147, 170, 171, 190, 170, 171, 170, /* 740 */ 171, 147, 63, 64, 65, 66, 67, 68, 69, 70, /* 750 */ 71, 72, 73, 74, 75, 147, 77, 78, 79, 80, /* 760 */ 81, 82, 83, 84, 85, 86, 87, 19, 147, 91, /* 770 */ 25, 162, 147, 105, 147, 189, 147, 183, 170, 171, /* 780 */ 19, 213, 147, 134, 147, 136, 147, 102, 103, 104, /* 790 */ 147, 170, 171, 45, 46, 170, 171, 170, 171, 170, /* 800 */ 171, 102, 103, 104, 147, 170, 171, 170, 171, 170, /* 810 */ 171, 83, 64, 65, 66, 67, 68, 69, 70, 71, /* 820 */ 72, 73, 74, 75, 147, 77, 78, 79, 80, 81, /* 830 */ 82, 83, 84, 85, 86, 87, 19, 147, 110, 21, /* 840 */ 25, 147, 114, 147, 25, 147, 189, 170, 171, 25, /* 850 */ 110, 147, 30, 147, 114, 147, 95, 147, 147, 37, /* 860 */ 170, 171, 45, 46, 170, 171, 170, 171, 170, 171, /* 870 */ 125, 147, 147, 147, 170, 171, 170, 171, 170, 171, /* 880 */ 170, 171, 65, 66, 67, 68, 69, 70, 71, 72, /* 890 */ 73, 74, 75, 147, 77, 78, 79, 80, 81, 82, /* 900 */ 83, 84, 85, 86, 87, 19, 20, 92, 22, 183, /* 910 */ 156, 156, 26, 189, 189, 97, 147, 147, 22, 100, /* 920 */ 34, 19, 20, 147, 22, 7, 8, 147, 26, 183, /* 930 */ 156, 23, 117, 25, 147, 156, 34, 51, 147, 23, /* 940 */ 116, 25, 147, 5, 190, 190, 147, 61, 10, 11, /* 950 */ 12, 13, 14, 51, 16, 137, 94, 95, 189, 189, /* 960 */ 23, 147, 25, 61, 190, 189, 231, 81, 82, 190, /* 970 */ 147, 23, 23, 25, 25, 179, 90, 91, 92, 179, /* 980 */ 23, 95, 25, 81, 82, 83, 23, 23, 25, 25, /* 990 */ 52, 179, 90, 91, 92, 147, 23, 95, 25, 113, /* 1000 */ 147, 147, 147, 147, 147, 19, 20, 232, 22, 150, /* 1010 */ 147, 115, 26, 147, 128, 129, 130, 131, 132, 133, /* 1020 */ 34, 147, 147, 147, 147, 192, 194, 162, 224, 228, /* 1030 */ 128, 129, 130, 131, 132, 133, 228, 51, 178, 205, /* 1040 */ 102, 103, 104, 173, 173, 173, 108, 61, 205, 162, /* 1050 */ 162, 113, 173, 173, 205, 174, 195, 6, 146, 195, /* 1060 */ 146, 146, 13, 146, 25, 155, 125, 81, 82, 148, /* 1070 */ 148, 121, 190, 195, 122, 124, 90, 91, 92, 196, /* 1080 */ 134, 95, 123, 198, 115, 153, 197, 153, 101, 199, /* 1090 */ 223, 120, 101, 43, 100, 172, 172, 206, 22, 207, /* 1100 */ 206, 172, 207, 206, 174, 207, 180, 172, 175, 87, /* 1110 */ 226, 180, 172, 18, 128, 129, 130, 131, 132, 133, /* 1120 */ 175, 153, 152, 41, 152, 226, 172, 172, 153, 152, /* 1130 */ 134, 153, 153, 233, 152, 234, 153, 63, 185, 22, /* 1140 */ 215, 185, 195, 18, 160, 1, 188, 15, 188, 188, /* 1150 */ 188, 185, 176, 23, 215, 115, 176, 115, 115, 115, /* 1160 */ 195, 95, 110, 22, 11, 23, 23, 22, 22, 35, /* 1170 */ 23, 117, 23, 25, 23, 25, 119, 25, 119, 22, /* 1180 */ 119, 118, 115, 23, 23, 47, 22, 47, 22, 99, /* 1190 */ 23, 22, 22, 22, 106, 19, 24, 20, 101, 25, /* 1200 */ 101, 47, 39, 22, 48, 137, 48, 5, 1, 54, /* 1210 */ 105, 126, 22, 1, 116, 20, 116, 105, 126, 22, /* 1220 */ 127, 3, 236, 4, 236, 236, 236, 236, 236, 236, /* 1230 */ 71, 236, 236, 71, }; #define YY_SHIFT_USE_DFLT (-108) #define YY_SHIFT_MAX 362 static const short yy_shift_ofst[] = { /* 0 */ 96, 886, 938, -19, 886, 986, 986, 185, 258, 986, /* 10 */ 986, 986, 986, 986, -48, 184, 209, 425, -57, -57, /* 20 */ -107, 50, 119, 188, 261, 334, 403, 472, 541, 610, /* 30 */ 679, 610, 610, 610, 610, 610, 610, 610, 610, 610, /* 40 */ 610, 610, 610, 610, 610, 610, 610, 748, 817, 817, /* 50 */ 902, 986, 986, 986, 986, 986, 986, 986, 986, 986, /* 60 */ 986, 986, 986, 986, 986, 986, 986, 986, 986, 986, /* 70 */ 986, 986, 986, 986, 986, 986, 986, 986, 986, 986, /* 80 */ 986, 986, 986, 986, 986, 986, 986, -64, -64, -1, /* 90 */ -1, 52, 6, 131, 408, 818, 73, 425, -75, -108, /* 100 */ -108, -108, 80, 125, 128, 128, 575, 626, 209, 626, /* 110 */ 626, 209, 209, 209, 209, 209, 209, 209, 209, 209, /* 120 */ 209, 209, 209, 209, 209, 209, 209, 209, 545, 114, /* 130 */ -107, -107, -107, -108, -108, -21, -21, 132, 270, 401, /* 140 */ 409, 418, 473, 492, 471, 479, 489, 525, 543, 221, /* 150 */ 624, 209, 209, 209, 209, 209, 728, 209, 209, 678, /* 160 */ 209, 209, 815, 209, 209, 209, 209, 209, 668, 668, /* 170 */ 668, 209, 209, 209, 550, 209, 209, 550, 209, 400, /* 180 */ 685, 209, 209, 550, 209, 209, 209, 550, 209, 550, /* 190 */ 550, 224, 740, 824, 425, 590, 590, 649, 822, 822, /* 200 */ 38, 822, 192, 822, 425, 822, 425, 819, 745, 38, /* 210 */ 38, 745, 1051, 1051, 1051, 1051, 1049, 1049, 1039, -107, /* 220 */ 941, 952, 959, 950, 951, 946, 969, 969, 987, 971, /* 230 */ 987, 971, 987, 971, 991, 991, 1050, 991, 994, 991, /* 240 */ 1076, 1022, 1022, 1050, 991, 991, 991, 1076, 1095, 969, /* 250 */ 1095, 969, 1095, 969, 969, 1082, 996, 1095, 969, 1074, /* 260 */ 1074, 1117, 941, 1125, 1125, 1125, 1125, 941, 1074, 1117, /* 270 */ -108, -108, -108, 397, 583, 699, 544, 896, 761, 908, /* 280 */ 916, 210, 918, 862, 937, 948, 949, 957, 963, 964, /* 290 */ 973, 1144, 1132, 1130, 1040, 1042, 1043, 1044, 1066, 1052, /* 300 */ 1141, 1142, 1143, 1145, 1153, 1146, 1147, 1148, 1149, 1151, /* 310 */ 1150, 1057, 1152, 1059, 1150, 1054, 1157, 1061, 1063, 1067, /* 320 */ 1160, 1161, 1134, 1138, 1164, 1140, 1166, 1167, 1169, 1170, /* 330 */ 1154, 1171, 1090, 1088, 1176, 1177, 1172, 1097, 1163, 1155, /* 340 */ 1156, 1174, 1158, 1068, 1099, 1181, 1202, 1207, 1105, 1159, /* 350 */ 1162, 1085, 1190, 1098, 1212, 1195, 1100, 1112, 1092, 1197, /* 360 */ 1093, 1218, 1219, }; #define YY_REDUCE_USE_DFLT (-139) #define YY_REDUCE_MAX 272 static const short yy_reduce_ofst[] = { /* 0 */ -138, 147, 23, 78, 202, 138, 79, -5, 220, 218, /* 10 */ 282, 144, 223, 286, 24, 289, -53, 219, -124, 271, /* 20 */ 304, 166, 166, 166, 166, 166, 166, 166, 166, 166, /* 30 */ 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, /* 40 */ 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, /* 50 */ 204, 276, 352, 420, 422, 427, 432, 483, 494, 496, /* 60 */ 498, 500, 539, 552, 556, 558, 560, 564, 567, 569, /* 70 */ 608, 621, 625, 627, 629, 635, 637, 639, 677, 690, /* 80 */ 694, 696, 698, 704, 706, 708, 710, 166, 166, 166, /* 90 */ 166, 480, 166, 166, 281, -51, 101, -52, 101, 101, /* 100 */ 101, 101, -7, 4, 275, 339, 379, 190, 442, 371, /* 110 */ 416, 137, 207, 594, 726, 384, 497, 746, 381, 499, /* 120 */ 586, 657, 724, 725, 769, 770, 568, 776, 546, 754, /* 130 */ 755, 774, 779, 102, 510, -97, -44, -13, 82, 41, /* 140 */ 164, 41, 41, 182, 238, 248, 278, 41, 226, 361, /* 150 */ 438, 448, 495, 516, 585, 643, 373, 361, 711, 609, /* 160 */ 780, 787, 226, 791, 795, 799, 814, 823, 796, 800, /* 170 */ 812, 848, 853, 854, 41, 855, 856, 41, 857, 735, /* 180 */ 775, 863, 866, 41, 874, 875, 876, 41, 877, 41, /* 190 */ 41, 859, 833, 832, 865, 801, 808, 804, 870, 871, /* 200 */ 834, 872, 860, 879, 887, 880, 888, 881, 861, 843, /* 210 */ 849, 864, 912, 914, 915, 917, 921, 922, 910, 882, /* 220 */ 878, 883, 889, 885, 890, 867, 932, 934, 891, 892, /* 230 */ 894, 895, 897, 898, 923, 924, 926, 929, 930, 935, /* 240 */ 933, 884, 899, 931, 940, 954, 955, 945, 970, 968, /* 250 */ 972, 975, 977, 978, 979, 900, 901, 982, 983, 953, /* 260 */ 956, 925, 947, 958, 960, 961, 962, 965, 966, 939, /* 270 */ 984, 976, 980, }; static const YYACTIONTYPE yy_default[] = { /* 0 */ 551, 784, 828, 672, 828, 784, 828, 828, 828, 782, /* 10 */ 828, 828, 828, 828, 756, 828, 828, 588, 801, 801, /* 20 */ 676, 707, 828, 828, 828, 828, 828, 828, 828, 708, /* 30 */ 828, 786, 781, 777, 779, 778, 785, 709, 698, 705, /* 40 */ 712, 687, 814, 714, 715, 721, 722, 744, 743, 762, /* 50 */ 828, 828, 828, 828, 828, 828, 828, 828, 828, 828, /* 60 */ 828, 828, 828, 828, 828, 828, 828, 828, 828, 828, /* 70 */ 828, 828, 828, 828, 828, 828, 828, 828, 828, 828, /* 80 */ 828, 828, 828, 828, 828, 828, 828, 746, 768, 745, /* 90 */ 755, 581, 747, 748, 641, 576, 749, 828, 750, 763, /* 100 */ 764, 765, 828, 828, 828, 828, 551, 672, 828, 672, /* 110 */ 672, 828, 828, 828, 828, 828, 828, 828, 828, 828, /* 120 */ 828, 828, 828, 828, 828, 828, 828, 828, 828, 828, /* 130 */ 828, 828, 828, 666, 676, 828, 828, 632, 828, 828, /* 140 */ 828, 828, 828, 828, 828, 828, 828, 828, 828, 828, /* 150 */ 559, 557, 828, 828, 828, 828, 664, 828, 828, 590, /* 160 */ 828, 828, 674, 828, 828, 828, 828, 828, 828, 828, /* 170 */ 828, 828, 828, 828, 578, 828, 828, 653, 828, 807, /* 180 */ 828, 828, 828, 821, 828, 828, 828, 819, 828, 655, /* 190 */ 717, 828, 664, 673, 828, 828, 828, 780, 701, 701, /* 200 */ 689, 701, 611, 701, 828, 701, 828, 614, 711, 689, /* 210 */ 689, 711, 556, 556, 556, 556, 567, 567, 631, 828, /* 220 */ 711, 702, 704, 694, 706, 828, 680, 680, 688, 693, /* 230 */ 688, 693, 688, 693, 643, 643, 628, 643, 614, 643, /* 240 */ 790, 794, 794, 628, 643, 643, 643, 790, 573, 680, /* 250 */ 573, 680, 573, 680, 680, 811, 813, 573, 680, 645, /* 260 */ 645, 723, 711, 652, 652, 652, 652, 711, 645, 723, /* 270 */ 598, 616, 616, 828, 828, 828, 828, 730, 828, 828, /* 280 */ 828, 828, 828, 828, 828, 828, 828, 828, 828, 828, /* 290 */ 828, 828, 565, 828, 735, 731, 828, 732, 828, 658, /* 300 */ 828, 828, 828, 828, 828, 828, 828, 828, 828, 828, /* 310 */ 783, 828, 695, 828, 703, 828, 828, 828, 828, 828, /* 320 */ 828, 828, 828, 828, 828, 828, 828, 828, 828, 828, /* 330 */ 828, 828, 828, 828, 828, 828, 828, 828, 828, 828, /* 340 */ 809, 810, 828, 828, 828, 828, 828, 828, 828, 828, /* 350 */ 828, 828, 828, 828, 828, 828, 828, 828, 828, 828, /* 360 */ 828, 552, 828, 547, 549, 550, 554, 555, 558, 585, /* 370 */ 586, 587, 560, 561, 562, 563, 564, 566, 570, 568, /* 380 */ 569, 571, 577, 579, 597, 599, 583, 601, 662, 663, /* 390 */ 727, 656, 657, 661, 584, 738, 729, 733, 734, 736, /* 400 */ 737, 751, 752, 754, 760, 767, 770, 753, 758, 759, /* 410 */ 761, 766, 769, 659, 660, 773, 591, 592, 595, 596, /* 420 */ 797, 799, 798, 800, 594, 593, 739, 742, 775, 776, /* 430 */ 822, 823, 824, 825, 826, 771, 681, 774, 757, 696, /* 440 */ 699, 700, 697, 665, 675, 683, 684, 685, 686, 670, /* 450 */ 671, 677, 692, 725, 726, 690, 691, 678, 679, 667, /* 460 */ 668, 669, 772, 728, 740, 741, 602, 603, 735, 604, /* 470 */ 605, 606, 644, 647, 648, 649, 607, 626, 629, 630, /* 480 */ 608, 615, 609, 610, 617, 618, 619, 622, 623, 624, /* 490 */ 625, 620, 621, 791, 792, 795, 793, 612, 613, 627, /* 500 */ 600, 589, 582, 633, 636, 637, 638, 639, 640, 642, /* 510 */ 634, 635, 580, 572, 574, 682, 803, 812, 808, 804, /* 520 */ 805, 806, 575, 787, 788, 646, 719, 720, 802, 815, /* 530 */ 817, 724, 818, 820, 816, 650, 651, 654, 796, 827, /* 540 */ 710, 713, 716, 718, 553, 548, }; #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: ** ** %fallback ID X Y Z. |
︙ | ︙ | |||
83642 83643 83644 83645 83646 83647 83648 | 0, /* REGISTER => nothing */ 0, /* VARIABLE => nothing */ 0, /* CASE => nothing */ 0, /* WHEN => nothing */ 0, /* THEN => nothing */ 0, /* ELSE => nothing */ 0, /* INDEX => nothing */ | < < < | 83588 83589 83590 83591 83592 83593 83594 83595 83596 83597 83598 83599 83600 83601 | 0, /* REGISTER => nothing */ 0, /* VARIABLE => nothing */ 0, /* CASE => nothing */ 0, /* WHEN => nothing */ 0, /* THEN => nothing */ 0, /* ELSE => nothing */ 0, /* INDEX => nothing */ }; #endif /* YYFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: ** ** + The state number for the parser at this level of the stack. |
︙ | ︙ | |||
83756 83757 83758 83759 83760 83761 83762 | "DROP", "UNION", "ALL", "EXCEPT", "INTERSECT", "SELECT", "DISTINCT", "DOT", "FROM", "JOIN", "INDEXED", "BY", "USING", "ORDER", "GROUP", "HAVING", "LIMIT", "WHERE", "INTO", "VALUES", "INTEGER", "FLOAT", "BLOB", "REGISTER", "VARIABLE", "CASE", "WHEN", "THEN", | | < | | | | | | | | | | | | | | | | | | | | | | < < < | 83699 83700 83701 83702 83703 83704 83705 83706 83707 83708 83709 83710 83711 83712 83713 83714 83715 83716 83717 83718 83719 83720 83721 83722 83723 83724 83725 83726 83727 83728 83729 83730 83731 83732 83733 83734 83735 83736 83737 | "DROP", "UNION", "ALL", "EXCEPT", "INTERSECT", "SELECT", "DISTINCT", "DOT", "FROM", "JOIN", "INDEXED", "BY", "USING", "ORDER", "GROUP", "HAVING", "LIMIT", "WHERE", "INTO", "VALUES", "INTEGER", "FLOAT", "BLOB", "REGISTER", "VARIABLE", "CASE", "WHEN", "THEN", "ELSE", "INDEX", "error", "input", "cmdlist", "ecmd", "explain", "cmdx", "cmd", "transtype", "trans_opt", "nm", "savepoint_opt", "create_table", "create_table_args", "temp", "ifnotexists", "dbnm", "columnlist", "conslist_opt", "select", "column", "columnid", "type", "carglist", "id", "ids", "typetoken", "typename", "signed", "plus_num", "minus_num", "carg", "ccons", "term", "expr", "onconf", "sortorder", "autoinc", "idxlist_opt", "refargs", "defer_subclause", "refarg", "refact", "init_deferred_pred_opt", "conslist", "tcons", "idxlist", "defer_subclause_opt", "orconf", "resolvetype", "raisetype", "ifexists", "fullname", "oneselect", "multiselect_op", "distinct", "selcollist", "from", "where_opt", "groupby_opt", "having_opt", "orderby_opt", "limit_opt", "sclp", "as", "seltablist", "stl_prefix", "joinop", "indexed_opt", "on_opt", "using_opt", "joinop2", "inscollist", "sortlist", "sortitem", "nexprlist", "setlist", "insert_cmd", "inscollist_opt", "itemlist", "exprlist", "likeop", "escape", "between_op", "in_op", "case_operand", "case_exprlist", "case_else", "uniqueflag", "collate", "plus_opt", "number", "trigger_decl", "trigger_cmd_list", "trigger_time", "trigger_event", "foreach_clause", "when_clause", "trigger_cmd", }; #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ static const char *const yyRuleName[] = { |
︙ | ︙ | |||
84043 84044 84045 84046 84047 84048 84049 | /* 244 */ "idxlist_opt ::=", /* 245 */ "idxlist_opt ::= LP idxlist RP", /* 246 */ "idxlist ::= idxlist COMMA nm collate sortorder", /* 247 */ "idxlist ::= nm collate sortorder", /* 248 */ "collate ::=", /* 249 */ "collate ::= COLLATE ids", /* 250 */ "cmd ::= DROP INDEX ifexists fullname", | < < < < < < < < < < | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < < < < < < < < < < < < < < < < < < < < < < < < < < < | 83982 83983 83984 83985 83986 83987 83988 83989 83990 83991 83992 83993 83994 83995 83996 83997 83998 83999 84000 84001 84002 84003 84004 84005 84006 84007 84008 84009 84010 84011 84012 84013 84014 84015 84016 84017 84018 84019 84020 84021 84022 84023 84024 84025 84026 | /* 244 */ "idxlist_opt ::=", /* 245 */ "idxlist_opt ::= LP idxlist RP", /* 246 */ "idxlist ::= idxlist COMMA nm collate sortorder", /* 247 */ "idxlist ::= nm collate sortorder", /* 248 */ "collate ::=", /* 249 */ "collate ::= COLLATE ids", /* 250 */ "cmd ::= DROP INDEX ifexists fullname", /* 251 */ "plus_num ::= plus_opt number", /* 252 */ "minus_num ::= MINUS number", /* 253 */ "number ::= INTEGER|FLOAT", /* 254 */ "plus_opt ::= PLUS", /* 255 */ "plus_opt ::=", /* 256 */ "cmd ::= CREATE trigger_decl BEGIN trigger_cmd_list END", /* 257 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", /* 258 */ "trigger_time ::= BEFORE", /* 259 */ "trigger_time ::= AFTER", /* 260 */ "trigger_time ::= INSTEAD OF", /* 261 */ "trigger_time ::=", /* 262 */ "trigger_event ::= DELETE|INSERT", /* 263 */ "trigger_event ::= UPDATE", /* 264 */ "trigger_event ::= UPDATE OF inscollist", /* 265 */ "foreach_clause ::=", /* 266 */ "foreach_clause ::= FOR EACH ROW", /* 267 */ "when_clause ::=", /* 268 */ "when_clause ::= WHEN expr", /* 269 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", /* 270 */ "trigger_cmd_list ::= trigger_cmd SEMI", /* 271 */ "trigger_cmd ::= UPDATE orconf nm SET setlist where_opt", /* 272 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt VALUES LP itemlist RP", /* 273 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt select", /* 274 */ "trigger_cmd ::= DELETE FROM nm where_opt", /* 275 */ "trigger_cmd ::= select", /* 276 */ "expr ::= RAISE LP IGNORE RP", /* 277 */ "expr ::= RAISE LP raisetype COMMA nm RP", /* 278 */ "raisetype ::= ROLLBACK", /* 279 */ "raisetype ::= ABORT", /* 280 */ "raisetype ::= FAIL", /* 281 */ "cmd ::= DROP TRIGGER ifexists fullname", }; #endif /* NDEBUG */ #if YYSTACKDEPTH<=0 /* ** Try to increase the size of the parser stack. |
︙ | ︙ | |||
84189 84190 84191 84192 84193 84194 84195 | ** reduce or during error processing or when a parser is ** being destroyed before it is finished parsing. ** ** Note: during a reduce, the only symbols destroyed are those ** which appear on the RHS of the rule, but which are not used ** inside the C code. */ | | | | | | | | | | | | | | < | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 84091 84092 84093 84094 84095 84096 84097 84098 84099 84100 84101 84102 84103 84104 84105 84106 84107 84108 84109 84110 84111 84112 84113 84114 84115 84116 84117 84118 84119 84120 84121 84122 84123 84124 84125 84126 84127 84128 84129 84130 84131 84132 84133 84134 84135 84136 84137 84138 84139 84140 84141 84142 84143 84144 84145 84146 84147 84148 84149 84150 84151 84152 84153 84154 84155 84156 84157 84158 84159 84160 84161 84162 84163 84164 | ** reduce or during error processing or when a parser is ** being destroyed before it is finished parsing. ** ** Note: during a reduce, the only symbols destroyed are those ** which appear on the RHS of the rule, but which are not used ** inside the C code. */ case 156: /* select */ case 190: /* oneselect */ { sqlite3SelectDelete(pParse->db, (yypminor->yy387)); } break; case 170: /* term */ case 171: /* expr */ case 195: /* where_opt */ case 197: /* having_opt */ case 206: /* on_opt */ case 211: /* sortitem */ case 219: /* escape */ case 222: /* case_operand */ case 224: /* case_else */ case 234: /* when_clause */ { sqlite3ExprDelete(pParse->db, (yypminor->yy402)); } break; case 175: /* idxlist_opt */ case 183: /* idxlist */ case 193: /* selcollist */ case 196: /* groupby_opt */ case 198: /* orderby_opt */ case 200: /* sclp */ case 210: /* sortlist */ case 212: /* nexprlist */ case 213: /* setlist */ case 216: /* itemlist */ case 217: /* exprlist */ case 223: /* case_exprlist */ { sqlite3ExprListDelete(pParse->db, (yypminor->yy258)); } break; case 189: /* fullname */ case 194: /* from */ case 202: /* seltablist */ case 203: /* stl_prefix */ { sqlite3SrcListDelete(pParse->db, (yypminor->yy3)); } break; case 207: /* using_opt */ case 209: /* inscollist */ case 215: /* inscollist_opt */ { sqlite3IdListDelete(pParse->db, (yypminor->yy400)); } break; case 230: /* trigger_cmd_list */ case 235: /* trigger_cmd */ { sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy19)); } break; case 232: /* trigger_event */ { sqlite3IdListDelete(pParse->db, (yypminor->yy466).b); } break; default: break; /* If no destructor action specified: do nothing */ } } /* |
︙ | ︙ | |||
84482 84483 84484 84485 84486 84487 84488 84489 | /* The following table contains information about every rule that ** is used during the reduce. */ 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[] = { { 142, 1 }, | > > > > > > | | | > > | | | | < | | | | | | | | > > | < < | < < < | | < < | < | | | | < | | | | | | | | | | | | | | | | | | | | | | | | | | | | > > > > > > | > > > | > > > > > | | | | | | < < < < < < | < | | | | | | | | < | | | > | | | > | | < | | < | | > | | | > | | > > > > > | | | > | | < < | | | < < < | | < < < < | | < | < < | < | | | | > > > > > | < < < < < < | | | | | | | | | | | | | | | | | | | > > > > > > > > | < < | < < < < < < | | | | | | | | | | | | | | | | > > > > > > > | < < | < < < | | < < | | | | | | | | | | | | | | > > > > | > > > < | | < < < < < < | | | | | < | < < < < < < < < | < | | | | | | | < < < < < < < < | | < < < < < | < < | < < < < | | | < | | | | < | < | | | | | | | < < < | < | | < | 84383 84384 84385 84386 84387 84388 84389 84390 84391 84392 84393 84394 84395 84396 84397 84398 84399 84400 84401 84402 84403 84404 84405 84406 84407 84408 84409 84410 84411 84412 84413 84414 84415 84416 84417 84418 84419 84420 84421 84422 84423 84424 84425 84426 84427 84428 84429 84430 84431 84432 84433 84434 84435 84436 84437 84438 84439 84440 84441 84442 84443 84444 84445 84446 84447 84448 84449 84450 84451 84452 84453 84454 84455 84456 84457 84458 84459 84460 84461 84462 84463 84464 84465 84466 84467 84468 84469 84470 84471 84472 84473 84474 84475 84476 84477 84478 84479 84480 84481 84482 84483 84484 84485 84486 84487 84488 84489 84490 84491 84492 84493 84494 84495 84496 84497 84498 84499 84500 84501 84502 84503 84504 84505 84506 84507 84508 84509 84510 84511 84512 84513 84514 84515 84516 84517 84518 84519 84520 84521 84522 84523 84524 84525 84526 84527 84528 84529 84530 84531 84532 84533 84534 84535 84536 84537 84538 84539 84540 84541 84542 84543 84544 84545 84546 84547 84548 84549 84550 84551 84552 84553 84554 84555 84556 84557 84558 84559 84560 84561 84562 84563 84564 84565 84566 84567 84568 84569 84570 84571 84572 84573 84574 84575 84576 84577 84578 84579 84580 84581 84582 84583 84584 84585 84586 84587 84588 84589 84590 84591 84592 84593 84594 84595 84596 84597 84598 84599 84600 84601 84602 84603 84604 84605 84606 84607 84608 84609 84610 84611 84612 84613 84614 84615 84616 84617 84618 84619 84620 84621 84622 84623 84624 84625 84626 84627 84628 84629 84630 84631 84632 84633 84634 84635 84636 84637 84638 84639 84640 84641 84642 84643 84644 84645 84646 84647 84648 84649 84650 84651 84652 84653 84654 84655 84656 84657 84658 84659 84660 84661 84662 84663 84664 84665 84666 84667 84668 84669 84670 84671 84672 84673 84674 84675 84676 84677 84678 | /* The following table contains information about every rule that ** is used during the reduce. */ 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[] = { { 139, 1 }, { 140, 2 }, { 140, 1 }, { 141, 1 }, { 141, 3 }, { 142, 0 }, { 142, 1 }, { 142, 3 }, { 143, 1 }, { 144, 3 }, { 146, 0 }, { 146, 1 }, { 146, 2 }, { 145, 0 }, { 145, 1 }, { 145, 1 }, { 145, 1 }, { 144, 2 }, { 144, 2 }, { 144, 2 }, { 148, 1 }, { 148, 0 }, { 144, 2 }, { 144, 3 }, { 144, 5 }, { 144, 2 }, { 149, 6 }, { 152, 0 }, { 152, 3 }, { 151, 1 }, { 151, 0 }, { 150, 4 }, { 150, 2 }, { 154, 3 }, { 154, 1 }, { 157, 3 }, { 158, 1 }, { 161, 1 }, { 162, 1 }, { 147, 1 }, { 147, 1 }, { 147, 1 }, { 159, 0 }, { 159, 1 }, { 163, 1 }, { 163, 4 }, { 163, 6 }, { 164, 1 }, { 164, 2 }, { 165, 1 }, { 165, 1 }, { 160, 2 }, { 160, 0 }, { 168, 3 }, { 168, 1 }, { 169, 2 }, { 169, 4 }, { 169, 3 }, { 169, 3 }, { 169, 2 }, { 169, 2 }, { 169, 3 }, { 169, 5 }, { 169, 2 }, { 169, 4 }, { 169, 4 }, { 169, 1 }, { 169, 2 }, { 174, 0 }, { 174, 1 }, { 176, 0 }, { 176, 2 }, { 178, 2 }, { 178, 3 }, { 178, 3 }, { 178, 3 }, { 179, 2 }, { 179, 2 }, { 179, 1 }, { 179, 1 }, { 177, 3 }, { 177, 2 }, { 180, 0 }, { 180, 2 }, { 180, 2 }, { 155, 0 }, { 155, 2 }, { 181, 3 }, { 181, 2 }, { 181, 1 }, { 182, 2 }, { 182, 7 }, { 182, 5 }, { 182, 5 }, { 182, 10 }, { 184, 0 }, { 184, 1 }, { 172, 0 }, { 172, 3 }, { 185, 0 }, { 185, 2 }, { 186, 1 }, { 186, 1 }, { 186, 1 }, { 144, 4 }, { 188, 2 }, { 188, 0 }, { 144, 8 }, { 144, 4 }, { 144, 1 }, { 156, 1 }, { 156, 3 }, { 191, 1 }, { 191, 2 }, { 191, 1 }, { 190, 9 }, { 192, 1 }, { 192, 1 }, { 192, 0 }, { 200, 2 }, { 200, 0 }, { 193, 3 }, { 193, 2 }, { 193, 4 }, { 201, 2 }, { 201, 1 }, { 201, 0 }, { 194, 0 }, { 194, 2 }, { 203, 2 }, { 203, 0 }, { 202, 7 }, { 202, 7 }, { 202, 7 }, { 153, 0 }, { 153, 2 }, { 189, 2 }, { 204, 1 }, { 204, 2 }, { 204, 3 }, { 204, 4 }, { 206, 2 }, { 206, 0 }, { 205, 0 }, { 205, 3 }, { 205, 2 }, { 207, 4 }, { 207, 0 }, { 198, 0 }, { 198, 3 }, { 210, 4 }, { 210, 2 }, { 211, 1 }, { 173, 1 }, { 173, 1 }, { 173, 0 }, { 196, 0 }, { 196, 3 }, { 197, 0 }, { 197, 2 }, { 199, 0 }, { 199, 2 }, { 199, 4 }, { 199, 4 }, { 144, 5 }, { 195, 0 }, { 195, 2 }, { 144, 7 }, { 213, 5 }, { 213, 3 }, { 144, 8 }, { 144, 5 }, { 144, 6 }, { 214, 2 }, { 214, 1 }, { 216, 3 }, { 216, 1 }, { 215, 0 }, { 215, 3 }, { 209, 3 }, { 209, 1 }, { 171, 1 }, { 171, 3 }, { 170, 1 }, { 171, 1 }, { 171, 1 }, { 171, 3 }, { 171, 5 }, { 170, 1 }, { 170, 1 }, { 171, 1 }, { 171, 1 }, { 171, 3 }, { 171, 6 }, { 171, 5 }, { 171, 4 }, { 170, 1 }, { 171, 3 }, { 171, 3 }, { 171, 3 }, { 171, 3 }, { 171, 3 }, { 171, 3 }, { 171, 3 }, { 171, 3 }, { 218, 1 }, { 218, 2 }, { 218, 1 }, { 218, 2 }, { 219, 2 }, { 219, 0 }, { 171, 4 }, { 171, 2 }, { 171, 3 }, { 171, 3 }, { 171, 4 }, { 171, 2 }, { 171, 2 }, { 171, 2 }, { 171, 2 }, { 220, 1 }, { 220, 2 }, { 171, 5 }, { 221, 1 }, { 221, 2 }, { 171, 5 }, { 171, 3 }, { 171, 5 }, { 171, 4 }, { 171, 4 }, { 171, 5 }, { 223, 5 }, { 223, 4 }, { 224, 2 }, { 224, 0 }, { 222, 1 }, { 222, 0 }, { 217, 1 }, { 217, 0 }, { 212, 3 }, { 212, 1 }, { 144, 11 }, { 225, 1 }, { 225, 0 }, { 175, 0 }, { 175, 3 }, { 183, 5 }, { 183, 3 }, { 226, 0 }, { 226, 2 }, { 144, 4 }, { 166, 2 }, { 167, 2 }, { 228, 1 }, { 227, 1 }, { 227, 0 }, { 144, 5 }, { 229, 11 }, { 231, 1 }, { 231, 1 }, { 231, 2 }, { 231, 0 }, { 232, 1 }, { 232, 1 }, { 232, 3 }, { 233, 0 }, { 233, 3 }, { 234, 0 }, { 234, 2 }, { 230, 3 }, { 230, 2 }, { 235, 6 }, { 235, 8 }, { 235, 5 }, { 235, 4 }, { 235, 1 }, { 171, 4 }, { 171, 6 }, { 187, 1 }, { 187, 1 }, { 187, 1 }, { 144, 4 }, }; static void yy_accept(yyParser*); /* Forward Declaration */ /* ** Perform a reduce action and the shift that must immediately ** follow the reduce. |
︙ | ︙ | |||
84880 84881 84882 84883 84884 84885 84886 | case 53: /* carg ::= CONSTRAINT nm ccons */ case 54: /* carg ::= ccons */ case 60: /* ccons ::= NULL onconf */ case 87: /* conslist ::= conslist COMMA tcons */ case 88: /* conslist ::= conslist tcons */ case 89: /* conslist ::= tcons */ case 90: /* tcons ::= CONSTRAINT nm */ | | | | | < < < < < < < < | | | | 84744 84745 84746 84747 84748 84749 84750 84751 84752 84753 84754 84755 84756 84757 84758 84759 84760 84761 84762 84763 84764 84765 84766 84767 84768 84769 84770 84771 84772 84773 84774 84775 84776 84777 84778 84779 84780 84781 84782 84783 84784 84785 84786 84787 84788 | case 53: /* carg ::= CONSTRAINT nm ccons */ case 54: /* carg ::= ccons */ case 60: /* ccons ::= NULL onconf */ case 87: /* conslist ::= conslist COMMA tcons */ case 88: /* conslist ::= conslist tcons */ case 89: /* conslist ::= tcons */ case 90: /* tcons ::= CONSTRAINT nm */ case 254: /* plus_opt ::= PLUS */ case 255: /* plus_opt ::= */ case 265: /* foreach_clause ::= */ case 266: /* foreach_clause ::= FOR EACH ROW */ { } break; case 5: /* explain ::= */ { sqlite3BeginParse(pParse, 0); } break; case 6: /* explain ::= EXPLAIN */ { sqlite3BeginParse(pParse, 1); } break; case 7: /* explain ::= EXPLAIN QUERY PLAN */ { sqlite3BeginParse(pParse, 2); } break; case 8: /* cmdx ::= cmd */ { sqlite3FinishCoding(pParse); } break; case 9: /* cmd ::= BEGIN transtype trans_opt */ {sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy228);} break; case 13: /* transtype ::= */ {yygotominor.yy228 = TK_DEFERRED;} break; case 14: /* transtype ::= DEFERRED */ case 15: /* transtype ::= IMMEDIATE */ case 16: /* transtype ::= EXCLUSIVE */ case 112: /* multiselect_op ::= UNION */ case 114: /* multiselect_op ::= EXCEPT|INTERSECT */ {yygotominor.yy228 = yymsp[0].major;} break; case 17: /* cmd ::= COMMIT trans_opt */ case 18: /* cmd ::= END trans_opt */ {sqlite3CommitTransaction(pParse);} break; case 19: /* cmd ::= ROLLBACK trans_opt */ {sqlite3RollbackTransaction(pParse);} |
︙ | ︙ | |||
84944 84945 84946 84947 84948 84949 84950 | case 24: /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ { sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0); } break; case 26: /* create_table ::= CREATE temp TABLE ifnotexists nm dbnm */ { | | | | | | | 84800 84801 84802 84803 84804 84805 84806 84807 84808 84809 84810 84811 84812 84813 84814 84815 84816 84817 84818 84819 84820 84821 84822 84823 84824 84825 84826 84827 84828 84829 84830 84831 84832 84833 84834 84835 84836 84837 84838 84839 84840 84841 84842 84843 84844 84845 84846 84847 84848 | case 24: /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ { sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0); } break; case 26: /* create_table ::= CREATE temp TABLE ifnotexists nm dbnm */ { sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy228,0,0,yymsp[-2].minor.yy228); } break; case 27: /* ifnotexists ::= */ case 30: /* temp ::= */ case 68: /* autoinc ::= */ case 82: /* init_deferred_pred_opt ::= */ case 84: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ case 95: /* defer_subclause_opt ::= */ case 106: /* ifexists ::= */ case 117: /* distinct ::= ALL */ case 118: /* distinct ::= */ case 220: /* between_op ::= BETWEEN */ case 223: /* in_op ::= IN */ {yygotominor.yy228 = 0;} break; case 28: /* ifnotexists ::= IF NOT EXISTS */ case 29: /* temp ::= TEMP */ case 69: /* autoinc ::= AUTOINCR */ case 83: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ case 105: /* ifexists ::= IF EXISTS */ case 116: /* distinct ::= DISTINCT */ case 221: /* between_op ::= NOT BETWEEN */ case 224: /* in_op ::= NOT IN */ {yygotominor.yy228 = 1;} break; case 31: /* create_table_args ::= LP columnlist conslist_opt RP */ { sqlite3EndTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0); } break; case 32: /* create_table_args ::= AS select */ { sqlite3EndTable(pParse,0,0,yymsp[0].minor.yy387); sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy387); } break; case 35: /* column ::= columnid type carglist */ { yygotominor.yy0.z = yymsp[-2].minor.yy0.z; yygotominor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-2].minor.yy0.z) + pParse->sLastToken.n; } |
︙ | ︙ | |||
85005 85006 85007 85008 85009 85010 85011 | case 44: /* typetoken ::= typename */ case 47: /* typename ::= ids */ case 124: /* as ::= AS nm */ case 125: /* as ::= ids */ case 135: /* dbnm ::= DOT nm */ case 144: /* indexed_opt ::= INDEXED BY nm */ case 249: /* collate ::= COLLATE ids */ | < < | | | | 84861 84862 84863 84864 84865 84866 84867 84868 84869 84870 84871 84872 84873 84874 84875 84876 84877 | case 44: /* typetoken ::= typename */ case 47: /* typename ::= ids */ case 124: /* as ::= AS nm */ case 125: /* as ::= ids */ case 135: /* dbnm ::= DOT nm */ case 144: /* indexed_opt ::= INDEXED BY nm */ case 249: /* collate ::= COLLATE ids */ case 251: /* plus_num ::= plus_opt number */ case 252: /* minus_num ::= MINUS number */ case 253: /* number ::= INTEGER|FLOAT */ {yygotominor.yy0 = yymsp[0].minor.yy0;} break; case 43: /* type ::= typetoken */ {sqlite3AddColumnType(pParse,&yymsp[0].minor.yy0);} break; case 45: /* typetoken ::= typename LP signed RP */ { |
︙ | ︙ | |||
85032 85033 85034 85035 85036 85037 85038 | } break; case 48: /* typename ::= typename ids */ {yygotominor.yy0.z=yymsp[-1].minor.yy0.z; yygotominor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);} break; case 55: /* ccons ::= DEFAULT term */ case 57: /* ccons ::= DEFAULT PLUS term */ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < < < < < < < < < < < < < < < < < < < < | | | | | | | | | | | | | | | | | < | | < | | < < < < < < < < < | < < < < | | < | | < < < < < < < < > | < < | < < | < < < < | < < | < | | > | | | < | < | | | | | < | < | < | < | < | < | > | < < | < < < < | | < < < < | > < > > > > | | < < < < | < > | | | | < < < < < < < < < | 84886 84887 84888 84889 84890 84891 84892 84893 84894 84895 84896 84897 84898 84899 84900 84901 84902 84903 84904 84905 84906 84907 84908 84909 84910 84911 84912 84913 84914 84915 84916 84917 84918 84919 84920 84921 84922 84923 84924 84925 84926 84927 84928 84929 84930 84931 84932 84933 84934 84935 84936 84937 84938 84939 84940 84941 84942 84943 84944 84945 84946 84947 84948 84949 84950 84951 84952 84953 84954 84955 84956 84957 84958 84959 84960 84961 84962 84963 84964 84965 84966 84967 84968 84969 84970 84971 84972 84973 84974 84975 84976 84977 84978 84979 84980 84981 84982 84983 84984 84985 84986 84987 84988 84989 84990 84991 84992 84993 84994 84995 84996 84997 84998 84999 85000 85001 85002 85003 85004 85005 85006 85007 85008 85009 85010 85011 85012 85013 85014 85015 85016 85017 85018 85019 85020 85021 85022 85023 85024 85025 85026 85027 85028 85029 85030 85031 85032 85033 85034 85035 85036 85037 85038 85039 85040 85041 85042 85043 85044 85045 85046 85047 85048 85049 85050 85051 85052 85053 85054 85055 85056 85057 85058 85059 85060 85061 85062 85063 85064 85065 85066 85067 85068 85069 85070 85071 85072 85073 85074 85075 85076 85077 85078 85079 85080 85081 85082 85083 85084 85085 85086 85087 85088 85089 85090 85091 85092 85093 85094 85095 85096 85097 85098 85099 85100 85101 85102 85103 85104 85105 85106 85107 85108 85109 85110 85111 85112 85113 85114 85115 85116 85117 85118 85119 85120 85121 85122 85123 85124 85125 85126 85127 85128 85129 85130 85131 85132 85133 85134 85135 85136 85137 85138 85139 85140 85141 85142 85143 85144 85145 85146 85147 85148 85149 85150 85151 85152 85153 85154 85155 85156 85157 85158 85159 85160 85161 85162 85163 85164 85165 85166 85167 85168 85169 85170 85171 85172 85173 85174 85175 85176 85177 85178 85179 85180 85181 85182 85183 85184 85185 85186 85187 85188 85189 85190 85191 85192 85193 85194 85195 85196 85197 85198 85199 85200 85201 85202 85203 85204 85205 85206 85207 85208 85209 85210 85211 85212 85213 85214 85215 85216 85217 85218 85219 85220 85221 85222 85223 85224 85225 85226 85227 85228 85229 85230 85231 85232 85233 85234 85235 85236 85237 85238 85239 85240 85241 85242 85243 85244 85245 85246 85247 85248 85249 85250 85251 85252 85253 85254 85255 85256 85257 85258 85259 85260 85261 85262 85263 85264 85265 85266 85267 85268 85269 85270 85271 85272 85273 85274 85275 85276 85277 85278 85279 85280 85281 85282 85283 85284 85285 85286 85287 85288 85289 85290 85291 85292 85293 85294 85295 85296 85297 85298 85299 85300 85301 85302 85303 85304 85305 85306 85307 85308 85309 85310 85311 85312 85313 85314 85315 85316 85317 85318 85319 85320 85321 85322 85323 85324 85325 85326 85327 85328 85329 85330 85331 85332 85333 85334 85335 85336 85337 85338 85339 85340 85341 85342 85343 85344 85345 85346 85347 85348 85349 85350 85351 85352 85353 85354 85355 85356 85357 85358 85359 85360 85361 85362 85363 85364 85365 85366 85367 85368 85369 85370 85371 85372 85373 85374 85375 85376 85377 85378 85379 85380 85381 85382 85383 85384 85385 85386 85387 85388 85389 85390 85391 85392 85393 85394 85395 85396 85397 85398 85399 85400 85401 85402 85403 85404 85405 85406 85407 85408 85409 85410 85411 85412 85413 85414 85415 85416 85417 85418 85419 85420 85421 85422 85423 85424 85425 85426 85427 85428 85429 85430 85431 85432 85433 85434 85435 85436 85437 85438 85439 85440 85441 85442 85443 85444 85445 85446 85447 85448 85449 85450 85451 85452 85453 85454 85455 85456 85457 85458 85459 85460 85461 85462 85463 85464 85465 85466 85467 85468 85469 85470 85471 85472 85473 85474 85475 85476 85477 85478 85479 85480 85481 85482 85483 85484 85485 85486 85487 85488 85489 85490 85491 85492 85493 85494 85495 85496 85497 85498 85499 85500 85501 85502 85503 85504 85505 85506 85507 85508 85509 85510 85511 85512 85513 85514 85515 85516 85517 85518 85519 85520 85521 85522 85523 85524 85525 85526 85527 85528 85529 85530 85531 85532 85533 85534 85535 85536 85537 85538 85539 85540 85541 85542 85543 85544 85545 85546 85547 85548 85549 85550 85551 85552 85553 85554 85555 85556 85557 85558 85559 85560 85561 85562 85563 85564 85565 85566 85567 85568 85569 85570 85571 85572 85573 85574 85575 85576 85577 85578 85579 85580 85581 85582 85583 85584 85585 85586 85587 85588 85589 85590 85591 85592 85593 85594 85595 85596 85597 85598 85599 85600 85601 85602 85603 85604 85605 85606 85607 85608 85609 85610 85611 85612 85613 85614 85615 85616 85617 85618 85619 85620 85621 85622 85623 85624 85625 85626 85627 85628 85629 85630 85631 85632 85633 85634 85635 85636 85637 85638 85639 85640 85641 85642 85643 85644 85645 85646 85647 85648 85649 85650 85651 85652 85653 85654 85655 | } break; case 48: /* typename ::= typename ids */ {yygotominor.yy0.z=yymsp[-1].minor.yy0.z; yygotominor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);} break; case 55: /* ccons ::= DEFAULT term */ case 57: /* ccons ::= DEFAULT PLUS term */ {sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy402);} break; case 56: /* ccons ::= DEFAULT LP expr RP */ {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy402);} break; case 58: /* ccons ::= DEFAULT MINUS term */ { Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy402, 0, 0); sqlite3ExprSpan(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy402->span); sqlite3AddDefaultValue(pParse,p); } break; case 59: /* ccons ::= DEFAULT id */ { Expr *p = sqlite3PExpr(pParse, TK_STRING, 0, 0, &yymsp[0].minor.yy0); sqlite3AddDefaultValue(pParse,p); } break; case 61: /* ccons ::= NOT NULL onconf */ {sqlite3AddNotNull(pParse, yymsp[0].minor.yy228);} break; case 62: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ {sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy228,yymsp[0].minor.yy228,yymsp[-2].minor.yy228);} break; case 63: /* ccons ::= UNIQUE onconf */ {sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy228,0,0,0,0);} break; case 64: /* ccons ::= CHECK LP expr RP */ {sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy402);} break; case 65: /* ccons ::= REFERENCES nm idxlist_opt refargs */ {sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy258,yymsp[0].minor.yy228);} break; case 66: /* ccons ::= defer_subclause */ {sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy228);} break; case 67: /* ccons ::= COLLATE ids */ {sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);} break; case 70: /* refargs ::= */ { yygotominor.yy228 = OE_Restrict * 0x010101; } break; case 71: /* refargs ::= refargs refarg */ { yygotominor.yy228 = (yymsp[-1].minor.yy228 & ~yymsp[0].minor.yy231.mask) | yymsp[0].minor.yy231.value; } break; case 72: /* refarg ::= MATCH nm */ { yygotominor.yy231.value = 0; yygotominor.yy231.mask = 0x000000; } break; case 73: /* refarg ::= ON DELETE refact */ { yygotominor.yy231.value = yymsp[0].minor.yy228; yygotominor.yy231.mask = 0x0000ff; } break; case 74: /* refarg ::= ON UPDATE refact */ { yygotominor.yy231.value = yymsp[0].minor.yy228<<8; yygotominor.yy231.mask = 0x00ff00; } break; case 75: /* refarg ::= ON INSERT refact */ { yygotominor.yy231.value = yymsp[0].minor.yy228<<16; yygotominor.yy231.mask = 0xff0000; } break; case 76: /* refact ::= SET NULL */ { yygotominor.yy228 = OE_SetNull; } break; case 77: /* refact ::= SET DEFAULT */ { yygotominor.yy228 = OE_SetDflt; } break; case 78: /* refact ::= CASCADE */ { yygotominor.yy228 = OE_Cascade; } break; case 79: /* refact ::= RESTRICT */ { yygotominor.yy228 = OE_Restrict; } break; case 80: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ case 81: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ case 96: /* defer_subclause_opt ::= defer_subclause */ case 98: /* onconf ::= ON CONFLICT resolvetype */ case 100: /* orconf ::= OR resolvetype */ case 101: /* resolvetype ::= raisetype */ case 173: /* insert_cmd ::= INSERT orconf */ {yygotominor.yy228 = yymsp[0].minor.yy228;} break; case 85: /* conslist_opt ::= */ {yygotominor.yy0.n = 0; yygotominor.yy0.z = 0;} break; case 86: /* conslist_opt ::= COMMA conslist */ {yygotominor.yy0 = yymsp[-1].minor.yy0;} break; case 91: /* tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf */ {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy258,yymsp[0].minor.yy228,yymsp[-2].minor.yy228,0);} break; case 92: /* tcons ::= UNIQUE LP idxlist RP onconf */ {sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy258,yymsp[0].minor.yy228,0,0,0,0);} break; case 93: /* tcons ::= CHECK LP expr RP onconf */ {sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy402);} break; case 94: /* tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt */ { sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy258, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy258, yymsp[-1].minor.yy228); sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy228); } break; case 97: /* onconf ::= */ case 99: /* orconf ::= */ {yygotominor.yy228 = OE_Default;} break; case 102: /* resolvetype ::= IGNORE */ {yygotominor.yy228 = OE_Ignore;} break; case 103: /* resolvetype ::= REPLACE */ case 174: /* insert_cmd ::= REPLACE */ {yygotominor.yy228 = OE_Replace;} break; case 104: /* cmd ::= DROP TABLE ifexists fullname */ { sqlite3DropTable(pParse, yymsp[0].minor.yy3, 0, yymsp[-1].minor.yy228); } break; case 107: /* cmd ::= CREATE temp VIEW ifnotexists nm dbnm AS select */ { sqlite3CreateView(pParse, &yymsp[-7].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, yymsp[0].minor.yy387, yymsp[-6].minor.yy228, yymsp[-4].minor.yy228); } break; case 108: /* cmd ::= DROP VIEW ifexists fullname */ { sqlite3DropTable(pParse, yymsp[0].minor.yy3, 1, yymsp[-1].minor.yy228); } break; case 109: /* cmd ::= select */ { SelectDest dest = {SRT_Output, 0, 0, 0, 0}; sqlite3Select(pParse, yymsp[0].minor.yy387, &dest); sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy387); } break; case 110: /* select ::= oneselect */ {yygotominor.yy387 = yymsp[0].minor.yy387;} break; case 111: /* select ::= select multiselect_op oneselect */ { if( yymsp[0].minor.yy387 ){ yymsp[0].minor.yy387->op = (u8)yymsp[-1].minor.yy228; yymsp[0].minor.yy387->pPrior = yymsp[-2].minor.yy387; }else{ sqlite3SelectDelete(pParse->db, yymsp[-2].minor.yy387); } yygotominor.yy387 = yymsp[0].minor.yy387; } break; case 113: /* multiselect_op ::= UNION ALL */ {yygotominor.yy228 = TK_ALL;} break; case 115: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ { yygotominor.yy387 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy258,yymsp[-5].minor.yy3,yymsp[-4].minor.yy402,yymsp[-3].minor.yy258,yymsp[-2].minor.yy402,yymsp[-1].minor.yy258,yymsp[-7].minor.yy228,yymsp[0].minor.yy196.pLimit,yymsp[0].minor.yy196.pOffset); } break; case 119: /* sclp ::= selcollist COMMA */ case 245: /* idxlist_opt ::= LP idxlist RP */ {yygotominor.yy258 = yymsp[-1].minor.yy258;} break; case 120: /* sclp ::= */ case 148: /* orderby_opt ::= */ case 156: /* groupby_opt ::= */ case 238: /* exprlist ::= */ case 244: /* idxlist_opt ::= */ {yygotominor.yy258 = 0;} break; case 121: /* selcollist ::= sclp expr as */ { yygotominor.yy258 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy258,yymsp[-1].minor.yy402,yymsp[0].minor.yy0.n?&yymsp[0].minor.yy0:0); } break; case 122: /* selcollist ::= sclp STAR */ { Expr *p = sqlite3PExpr(pParse, TK_ALL, 0, 0, 0); yygotominor.yy258 = sqlite3ExprListAppend(pParse, yymsp[-1].minor.yy258, p, 0); } break; case 123: /* selcollist ::= sclp nm DOT STAR */ { Expr *pRight = sqlite3PExpr(pParse, TK_ALL, 0, 0, &yymsp[0].minor.yy0); Expr *pLeft = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0); Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight, 0); yygotominor.yy258 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy258, pDot, 0); } break; case 126: /* as ::= */ {yygotominor.yy0.n = 0;} break; case 127: /* from ::= */ {yygotominor.yy3 = sqlite3DbMallocZero(pParse->db, sizeof(*yygotominor.yy3));} break; case 128: /* from ::= FROM seltablist */ { yygotominor.yy3 = yymsp[0].minor.yy3; sqlite3SrcListShiftJoinType(yygotominor.yy3); } break; case 129: /* stl_prefix ::= seltablist joinop */ { yygotominor.yy3 = yymsp[-1].minor.yy3; if( yygotominor.yy3 && yygotominor.yy3->nSrc>0 ) yygotominor.yy3->a[yygotominor.yy3->nSrc-1].jointype = (u8)yymsp[0].minor.yy228; } break; case 130: /* stl_prefix ::= */ {yygotominor.yy3 = 0;} break; case 131: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ { yygotominor.yy3 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy3,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy402,yymsp[0].minor.yy400); sqlite3SrcListIndexedBy(pParse, yygotominor.yy3, &yymsp[-2].minor.yy0); } break; case 132: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */ { yygotominor.yy3 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy3,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy387,yymsp[-1].minor.yy402,yymsp[0].minor.yy400); } break; case 133: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ { if( yymsp[-6].minor.yy3==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy402==0 && yymsp[0].minor.yy400==0 ){ yygotominor.yy3 = yymsp[-4].minor.yy3; }else{ Select *pSubquery; sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy3); pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy3,0,0,0,0,0,0,0); yygotominor.yy3 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy3,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy402,yymsp[0].minor.yy400); } } break; case 134: /* dbnm ::= */ case 143: /* indexed_opt ::= */ {yygotominor.yy0.z=0; yygotominor.yy0.n=0;} break; case 136: /* fullname ::= nm dbnm */ {yygotominor.yy3 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);} break; case 137: /* joinop ::= COMMA|JOIN */ { yygotominor.yy228 = JT_INNER; } break; case 138: /* joinop ::= JOIN_KW JOIN */ { yygotominor.yy228 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); } break; case 139: /* joinop ::= JOIN_KW nm JOIN */ { yygotominor.yy228 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); } break; case 140: /* joinop ::= JOIN_KW nm nm JOIN */ { yygotominor.yy228 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); } break; case 141: /* on_opt ::= ON expr */ case 152: /* sortitem ::= expr */ case 159: /* having_opt ::= HAVING expr */ case 166: /* where_opt ::= WHERE expr */ case 181: /* expr ::= term */ case 209: /* escape ::= ESCAPE expr */ case 233: /* case_else ::= ELSE expr */ case 235: /* case_operand ::= expr */ {yygotominor.yy402 = yymsp[0].minor.yy402;} break; case 142: /* on_opt ::= */ case 158: /* having_opt ::= */ case 165: /* where_opt ::= */ case 210: /* escape ::= */ case 234: /* case_else ::= */ case 236: /* case_operand ::= */ {yygotominor.yy402 = 0;} break; case 145: /* indexed_opt ::= NOT INDEXED */ {yygotominor.yy0.z=0; yygotominor.yy0.n=1;} break; case 146: /* using_opt ::= USING LP inscollist RP */ case 178: /* inscollist_opt ::= LP inscollist RP */ {yygotominor.yy400 = yymsp[-1].minor.yy400;} break; case 147: /* using_opt ::= */ case 177: /* inscollist_opt ::= */ {yygotominor.yy400 = 0;} break; case 149: /* orderby_opt ::= ORDER BY sortlist */ case 157: /* groupby_opt ::= GROUP BY nexprlist */ case 237: /* exprlist ::= nexprlist */ {yygotominor.yy258 = yymsp[0].minor.yy258;} break; case 150: /* sortlist ::= sortlist COMMA sortitem sortorder */ { yygotominor.yy258 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy258,yymsp[-1].minor.yy402,0); if( yygotominor.yy258 ) yygotominor.yy258->a[yygotominor.yy258->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy228; } break; case 151: /* sortlist ::= sortitem sortorder */ { yygotominor.yy258 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy402,0); if( yygotominor.yy258 && yygotominor.yy258->a ) yygotominor.yy258->a[0].sortOrder = (u8)yymsp[0].minor.yy228; } break; case 153: /* sortorder ::= ASC */ case 155: /* sortorder ::= */ {yygotominor.yy228 = SQLITE_SO_ASC;} break; case 154: /* sortorder ::= DESC */ {yygotominor.yy228 = SQLITE_SO_DESC;} break; case 160: /* limit_opt ::= */ {yygotominor.yy196.pLimit = 0; yygotominor.yy196.pOffset = 0;} break; case 161: /* limit_opt ::= LIMIT expr */ {yygotominor.yy196.pLimit = yymsp[0].minor.yy402; yygotominor.yy196.pOffset = 0;} break; case 162: /* limit_opt ::= LIMIT expr OFFSET expr */ {yygotominor.yy196.pLimit = yymsp[-2].minor.yy402; yygotominor.yy196.pOffset = yymsp[0].minor.yy402;} break; case 163: /* limit_opt ::= LIMIT expr COMMA expr */ {yygotominor.yy196.pOffset = yymsp[-2].minor.yy402; yygotominor.yy196.pLimit = yymsp[0].minor.yy402;} break; case 164: /* cmd ::= DELETE FROM fullname indexed_opt where_opt */ { sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy3, &yymsp[-1].minor.yy0); sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy3,yymsp[0].minor.yy402); } break; case 167: /* cmd ::= UPDATE orconf fullname indexed_opt SET setlist where_opt */ { sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy3, &yymsp[-3].minor.yy0); sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy258,"set list"); sqlite3Update(pParse,yymsp[-4].minor.yy3,yymsp[-1].minor.yy258,yymsp[0].minor.yy402,yymsp[-5].minor.yy228); } break; case 168: /* setlist ::= setlist COMMA nm EQ expr */ {yygotominor.yy258 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy258,yymsp[0].minor.yy402,&yymsp[-2].minor.yy0);} break; case 169: /* setlist ::= nm EQ expr */ {yygotominor.yy258 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy402,&yymsp[-2].minor.yy0);} break; case 170: /* cmd ::= insert_cmd INTO fullname inscollist_opt VALUES LP itemlist RP */ {sqlite3Insert(pParse, yymsp[-5].minor.yy3, yymsp[-1].minor.yy258, 0, yymsp[-4].minor.yy400, yymsp[-7].minor.yy228);} break; case 171: /* cmd ::= insert_cmd INTO fullname inscollist_opt select */ {sqlite3Insert(pParse, yymsp[-2].minor.yy3, 0, yymsp[0].minor.yy387, yymsp[-1].minor.yy400, yymsp[-4].minor.yy228);} break; case 172: /* cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUES */ {sqlite3Insert(pParse, yymsp[-3].minor.yy3, 0, 0, yymsp[-2].minor.yy400, yymsp[-5].minor.yy228);} break; case 175: /* itemlist ::= itemlist COMMA expr */ case 239: /* nexprlist ::= nexprlist COMMA expr */ {yygotominor.yy258 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy258,yymsp[0].minor.yy402,0);} break; case 176: /* itemlist ::= expr */ case 240: /* nexprlist ::= expr */ {yygotominor.yy258 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy402,0);} break; case 179: /* inscollist ::= inscollist COMMA nm */ {yygotominor.yy400 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy400,&yymsp[0].minor.yy0);} break; case 180: /* inscollist ::= nm */ {yygotominor.yy400 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0);} break; case 182: /* expr ::= LP expr RP */ {yygotominor.yy402 = yymsp[-1].minor.yy402; sqlite3ExprSpan(yygotominor.yy402,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); } break; case 183: /* term ::= NULL */ case 188: /* term ::= INTEGER|FLOAT|BLOB */ case 189: /* term ::= STRING */ {yygotominor.yy402 = sqlite3PExpr(pParse, yymsp[0].major, 0, 0, &yymsp[0].minor.yy0);} break; case 184: /* expr ::= ID */ case 185: /* expr ::= JOIN_KW */ {yygotominor.yy402 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);} break; case 186: /* expr ::= nm DOT nm */ { Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0); Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0); yygotominor.yy402 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2, 0); } break; case 187: /* expr ::= nm DOT nm DOT nm */ { Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-4].minor.yy0); Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0); Expr *temp3 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0); Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3, 0); yygotominor.yy402 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4, 0); } break; case 190: /* expr ::= REGISTER */ {yygotominor.yy402 = sqlite3RegisterExpr(pParse, &yymsp[0].minor.yy0);} break; case 191: /* expr ::= VARIABLE */ { Token *pToken = &yymsp[0].minor.yy0; Expr *pExpr = yygotominor.yy402 = sqlite3PExpr(pParse, TK_VARIABLE, 0, 0, pToken); sqlite3ExprAssignVarNumber(pParse, pExpr); } break; case 192: /* expr ::= expr COLLATE ids */ { yygotominor.yy402 = sqlite3ExprSetColl(pParse, yymsp[-2].minor.yy402, &yymsp[0].minor.yy0); } break; case 193: /* expr ::= CAST LP expr AS typetoken RP */ { yygotominor.yy402 = sqlite3PExpr(pParse, TK_CAST, yymsp[-3].minor.yy402, 0, &yymsp[-1].minor.yy0); sqlite3ExprSpan(yygotominor.yy402,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0); } break; case 194: /* expr ::= ID LP distinct exprlist RP */ { if( yymsp[-1].minor.yy258 && yymsp[-1].minor.yy258->nExpr>SQLITE_MAX_FUNCTION_ARG ){ sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0); } yygotominor.yy402 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy258, &yymsp[-4].minor.yy0); sqlite3ExprSpan(yygotominor.yy402,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); if( yymsp[-2].minor.yy228 && yygotominor.yy402 ){ yygotominor.yy402->flags |= EP_Distinct; } } break; case 195: /* expr ::= ID LP STAR RP */ { yygotominor.yy402 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0); sqlite3ExprSpan(yygotominor.yy402,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); } break; case 196: /* term ::= CTIME_KW */ { /* The CURRENT_TIME, CURRENT_DATE, and CURRENT_TIMESTAMP values are ** treated as functions that return constants */ yygotominor.yy402 = sqlite3ExprFunction(pParse, 0,&yymsp[0].minor.yy0); if( yygotominor.yy402 ){ yygotominor.yy402->op = TK_CONST_FUNC; yygotominor.yy402->span = yymsp[0].minor.yy0; } } break; case 197: /* expr ::= expr AND expr */ case 198: /* expr ::= expr OR expr */ case 199: /* expr ::= expr LT|GT|GE|LE expr */ case 200: /* expr ::= expr EQ|NE expr */ case 201: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ case 202: /* expr ::= expr PLUS|MINUS expr */ case 203: /* expr ::= expr STAR|SLASH|REM expr */ case 204: /* expr ::= expr CONCAT expr */ {yygotominor.yy402 = sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy402,yymsp[0].minor.yy402,0);} break; case 205: /* likeop ::= LIKE_KW */ case 207: /* likeop ::= MATCH */ {yygotominor.yy150.eOperator = yymsp[0].minor.yy0; yygotominor.yy150.not = 0;} break; case 206: /* likeop ::= NOT LIKE_KW */ case 208: /* likeop ::= NOT MATCH */ {yygotominor.yy150.eOperator = yymsp[0].minor.yy0; yygotominor.yy150.not = 1;} break; case 211: /* expr ::= expr likeop expr escape */ { ExprList *pList; pList = sqlite3ExprListAppend(pParse,0, yymsp[-1].minor.yy402, 0); pList = sqlite3ExprListAppend(pParse,pList, yymsp[-3].minor.yy402, 0); if( yymsp[0].minor.yy402 ){ pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy402, 0); } yygotominor.yy402 = sqlite3ExprFunction(pParse, pList, &yymsp[-2].minor.yy150.eOperator); if( yymsp[-2].minor.yy150.not ) yygotominor.yy402 = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy402, 0, 0); sqlite3ExprSpan(yygotominor.yy402, &yymsp[-3].minor.yy402->span, &yymsp[-1].minor.yy402->span); if( yygotominor.yy402 ) yygotominor.yy402->flags |= EP_InfixFunc; } break; case 212: /* expr ::= expr ISNULL|NOTNULL */ { yygotominor.yy402 = sqlite3PExpr(pParse, yymsp[0].major, yymsp[-1].minor.yy402, 0, 0); sqlite3ExprSpan(yygotominor.yy402,&yymsp[-1].minor.yy402->span,&yymsp[0].minor.yy0); } break; case 213: /* expr ::= expr IS NULL */ { yygotominor.yy402 = sqlite3PExpr(pParse, TK_ISNULL, yymsp[-2].minor.yy402, 0, 0); sqlite3ExprSpan(yygotominor.yy402,&yymsp[-2].minor.yy402->span,&yymsp[0].minor.yy0); } break; case 214: /* expr ::= expr NOT NULL */ { yygotominor.yy402 = sqlite3PExpr(pParse, TK_NOTNULL, yymsp[-2].minor.yy402, 0, 0); sqlite3ExprSpan(yygotominor.yy402,&yymsp[-2].minor.yy402->span,&yymsp[0].minor.yy0); } break; case 215: /* expr ::= expr IS NOT NULL */ { yygotominor.yy402 = sqlite3PExpr(pParse, TK_NOTNULL, yymsp[-3].minor.yy402, 0, 0); sqlite3ExprSpan(yygotominor.yy402,&yymsp[-3].minor.yy402->span,&yymsp[0].minor.yy0); } break; case 216: /* expr ::= NOT expr */ case 217: /* expr ::= BITNOT expr */ { yygotominor.yy402 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy402, 0, 0); sqlite3ExprSpan(yygotominor.yy402,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy402->span); } break; case 218: /* expr ::= MINUS expr */ { yygotominor.yy402 = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy402, 0, 0); sqlite3ExprSpan(yygotominor.yy402,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy402->span); } break; case 219: /* expr ::= PLUS expr */ { yygotominor.yy402 = sqlite3PExpr(pParse, TK_UPLUS, yymsp[0].minor.yy402, 0, 0); sqlite3ExprSpan(yygotominor.yy402,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy402->span); } break; case 222: /* expr ::= expr between_op expr AND expr */ { ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy402, 0); pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy402, 0); yygotominor.yy402 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy402, 0, 0); if( yygotominor.yy402 ){ yygotominor.yy402->pList = pList; }else{ sqlite3ExprListDelete(pParse->db, pList); } if( yymsp[-3].minor.yy228 ) yygotominor.yy402 = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy402, 0, 0); sqlite3ExprSpan(yygotominor.yy402,&yymsp[-4].minor.yy402->span,&yymsp[0].minor.yy402->span); } break; case 225: /* expr ::= expr in_op LP exprlist RP */ { yygotominor.yy402 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy402, 0, 0); if( yygotominor.yy402 ){ yygotominor.yy402->pList = yymsp[-1].minor.yy258; sqlite3ExprSetHeight(pParse, yygotominor.yy402); }else{ sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy258); } if( yymsp[-3].minor.yy228 ) yygotominor.yy402 = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy402, 0, 0); sqlite3ExprSpan(yygotominor.yy402,&yymsp[-4].minor.yy402->span,&yymsp[0].minor.yy0); } break; case 226: /* expr ::= LP select RP */ { yygotominor.yy402 = sqlite3PExpr(pParse, TK_SELECT, 0, 0, 0); if( yygotominor.yy402 ){ yygotominor.yy402->pSelect = yymsp[-1].minor.yy387; sqlite3ExprSetHeight(pParse, yygotominor.yy402); }else{ sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy387); } sqlite3ExprSpan(yygotominor.yy402,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); } break; case 227: /* expr ::= expr in_op LP select RP */ { yygotominor.yy402 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy402, 0, 0); if( yygotominor.yy402 ){ yygotominor.yy402->pSelect = yymsp[-1].minor.yy387; sqlite3ExprSetHeight(pParse, yygotominor.yy402); }else{ sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy387); } if( yymsp[-3].minor.yy228 ) yygotominor.yy402 = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy402, 0, 0); sqlite3ExprSpan(yygotominor.yy402,&yymsp[-4].minor.yy402->span,&yymsp[0].minor.yy0); } break; case 228: /* expr ::= expr in_op nm dbnm */ { SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0); yygotominor.yy402 = sqlite3PExpr(pParse, TK_IN, yymsp[-3].minor.yy402, 0, 0); if( yygotominor.yy402 ){ yygotominor.yy402->pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0,0); sqlite3ExprSetHeight(pParse, yygotominor.yy402); }else{ sqlite3SrcListDelete(pParse->db, pSrc); } if( yymsp[-2].minor.yy228 ) yygotominor.yy402 = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy402, 0, 0); sqlite3ExprSpan(yygotominor.yy402,&yymsp[-3].minor.yy402->span,yymsp[0].minor.yy0.z?&yymsp[0].minor.yy0:&yymsp[-1].minor.yy0); } break; case 229: /* expr ::= EXISTS LP select RP */ { Expr *p = yygotominor.yy402 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0, 0); if( p ){ p->pSelect = yymsp[-1].minor.yy387; sqlite3ExprSpan(p,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); sqlite3ExprSetHeight(pParse, yygotominor.yy402); }else{ sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy387); } } break; case 230: /* expr ::= CASE case_operand case_exprlist case_else END */ { yygotominor.yy402 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy402, yymsp[-1].minor.yy402, 0); if( yygotominor.yy402 ){ yygotominor.yy402->pList = yymsp[-2].minor.yy258; sqlite3ExprSetHeight(pParse, yygotominor.yy402); }else{ sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy258); } sqlite3ExprSpan(yygotominor.yy402, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0); } break; case 231: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ { yygotominor.yy258 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy258, yymsp[-2].minor.yy402, 0); yygotominor.yy258 = sqlite3ExprListAppend(pParse,yygotominor.yy258, yymsp[0].minor.yy402, 0); } break; case 232: /* case_exprlist ::= WHEN expr THEN expr */ { yygotominor.yy258 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy402, 0); yygotominor.yy258 = sqlite3ExprListAppend(pParse,yygotominor.yy258, yymsp[0].minor.yy402, 0); } break; case 241: /* cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP */ { sqlite3CreateIndex(pParse, &yymsp[-6].minor.yy0, &yymsp[-5].minor.yy0, sqlite3SrcListAppend(pParse->db,0,&yymsp[-3].minor.yy0,0), yymsp[-1].minor.yy258, yymsp[-9].minor.yy228, &yymsp[-10].minor.yy0, &yymsp[0].minor.yy0, SQLITE_SO_ASC, yymsp[-7].minor.yy228); } break; case 242: /* uniqueflag ::= UNIQUE */ case 279: /* raisetype ::= ABORT */ {yygotominor.yy228 = OE_Abort;} break; case 243: /* uniqueflag ::= */ {yygotominor.yy228 = OE_None;} break; case 246: /* idxlist ::= idxlist COMMA nm collate sortorder */ { Expr *p = 0; if( yymsp[-1].minor.yy0.n>0 ){ p = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0); sqlite3ExprSetColl(pParse, p, &yymsp[-1].minor.yy0); } yygotominor.yy258 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy258, p, &yymsp[-2].minor.yy0); sqlite3ExprListCheckLength(pParse, yygotominor.yy258, "index"); if( yygotominor.yy258 ) yygotominor.yy258->a[yygotominor.yy258->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy228; } break; case 247: /* idxlist ::= nm collate sortorder */ { Expr *p = 0; if( yymsp[-1].minor.yy0.n>0 ){ p = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0); sqlite3ExprSetColl(pParse, p, &yymsp[-1].minor.yy0); } yygotominor.yy258 = sqlite3ExprListAppend(pParse,0, p, &yymsp[-2].minor.yy0); sqlite3ExprListCheckLength(pParse, yygotominor.yy258, "index"); if( yygotominor.yy258 ) yygotominor.yy258->a[yygotominor.yy258->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy228; } break; case 248: /* collate ::= */ {yygotominor.yy0.z = 0; yygotominor.yy0.n = 0;} break; case 250: /* cmd ::= DROP INDEX ifexists fullname */ {sqlite3DropIndex(pParse, yymsp[0].minor.yy3, yymsp[-1].minor.yy228);} break; case 256: /* cmd ::= CREATE trigger_decl BEGIN trigger_cmd_list END */ { Token all; all.z = yymsp[-3].minor.yy0.z; all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n; sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy19, &all); } break; case 257: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ { sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy228, yymsp[-4].minor.yy466.a, yymsp[-4].minor.yy466.b, yymsp[-2].minor.yy3, yymsp[0].minor.yy402, yymsp[-10].minor.yy228, yymsp[-8].minor.yy228); yygotominor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); } break; case 258: /* trigger_time ::= BEFORE */ case 261: /* trigger_time ::= */ { yygotominor.yy228 = TK_BEFORE; } break; case 259: /* trigger_time ::= AFTER */ { yygotominor.yy228 = TK_AFTER; } break; case 260: /* trigger_time ::= INSTEAD OF */ { yygotominor.yy228 = TK_INSTEAD;} break; case 262: /* trigger_event ::= DELETE|INSERT */ case 263: /* trigger_event ::= UPDATE */ {yygotominor.yy466.a = yymsp[0].major; yygotominor.yy466.b = 0;} break; case 264: /* trigger_event ::= UPDATE OF inscollist */ {yygotominor.yy466.a = TK_UPDATE; yygotominor.yy466.b = yymsp[0].minor.yy400;} break; case 267: /* when_clause ::= */ { yygotominor.yy402 = 0; } break; case 268: /* when_clause ::= WHEN expr */ { yygotominor.yy402 = yymsp[0].minor.yy402; } break; case 269: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ { /* if( yymsp[-2].minor.yy19 ){ yymsp[-2].minor.yy19->pLast->pNext = yymsp[-1].minor.yy19; }else{ yymsp[-2].minor.yy19 = yymsp[-1].minor.yy19; } */ assert( yymsp[-2].minor.yy19!=0 ); yymsp[-2].minor.yy19->pLast->pNext = yymsp[-1].minor.yy19; yymsp[-2].minor.yy19->pLast = yymsp[-1].minor.yy19; yygotominor.yy19 = yymsp[-2].minor.yy19; } break; case 270: /* trigger_cmd_list ::= trigger_cmd SEMI */ { /* if( yymsp[-1].minor.yy19 ) */ assert( yymsp[-1].minor.yy19!=0 ); yymsp[-1].minor.yy19->pLast = yymsp[-1].minor.yy19; yygotominor.yy19 = yymsp[-1].minor.yy19; } break; case 271: /* trigger_cmd ::= UPDATE orconf nm SET setlist where_opt */ { yygotominor.yy19 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy258, yymsp[0].minor.yy402, yymsp[-4].minor.yy228); } break; case 272: /* trigger_cmd ::= insert_cmd INTO nm inscollist_opt VALUES LP itemlist RP */ {yygotominor.yy19 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy400, yymsp[-1].minor.yy258, 0, yymsp[-7].minor.yy228);} break; case 273: /* trigger_cmd ::= insert_cmd INTO nm inscollist_opt select */ {yygotominor.yy19 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy400, 0, yymsp[0].minor.yy387, yymsp[-4].minor.yy228);} break; case 274: /* trigger_cmd ::= DELETE FROM nm where_opt */ {yygotominor.yy19 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-1].minor.yy0, yymsp[0].minor.yy402);} break; case 275: /* trigger_cmd ::= select */ {yygotominor.yy19 = sqlite3TriggerSelectStep(pParse->db, yymsp[0].minor.yy387); } break; case 276: /* expr ::= RAISE LP IGNORE RP */ { yygotominor.yy402 = sqlite3PExpr(pParse, TK_RAISE, 0, 0, 0); if( yygotominor.yy402 ){ yygotominor.yy402->iColumn = OE_Ignore; sqlite3ExprSpan(yygotominor.yy402, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0); } } break; case 277: /* expr ::= RAISE LP raisetype COMMA nm RP */ { yygotominor.yy402 = sqlite3PExpr(pParse, TK_RAISE, 0, 0, &yymsp[-1].minor.yy0); if( yygotominor.yy402 ) { yygotominor.yy402->iColumn = yymsp[-3].minor.yy228; sqlite3ExprSpan(yygotominor.yy402, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0); } } break; case 278: /* raisetype ::= ROLLBACK */ {yygotominor.yy228 = OE_Rollback;} break; case 280: /* raisetype ::= FAIL */ {yygotominor.yy228 = OE_Fail;} break; case 281: /* cmd ::= DROP TRIGGER ifexists fullname */ { sqlite3DropTrigger(pParse,yymsp[0].minor.yy3,yymsp[-1].minor.yy228); } break; }; yygoto = yyRuleInfo[yyruleno].lhs; yysize = yyRuleInfo[yyruleno].nrhs; yypParser->yyidx -= yysize; yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto); if( yyact < YYNSTATE ){ |
︙ | ︙ | |||
86189 86190 86191 86192 86193 86194 86195 | ** The code in this file implements a function that determines whether ** or not a given identifier is really an SQL keyword. The same thing ** might be implemented more directly using a hand-written hash table. ** But by using this automatically generated code, the size of the code ** is substantially reduced. This is important for embedded applications ** on platforms with limited memory. */ | | | | | | < | | < > | < | | > | | < | | | | | < | < | | | | | | < < < | | > | | | < | | > | > | | | < | | | | | | | | | | | | | | < < | | | < | | | | | | < | | | | > | < | > | < < < | > | | < | | | | < | < | | > | | | < | | | | < | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < < < < < < < < < < < < < < < < | 85964 85965 85966 85967 85968 85969 85970 85971 85972 85973 85974 85975 85976 85977 85978 85979 85980 85981 85982 85983 85984 85985 85986 85987 85988 85989 85990 85991 85992 85993 85994 85995 85996 85997 85998 85999 86000 86001 86002 86003 86004 86005 86006 86007 86008 86009 86010 86011 86012 86013 86014 86015 86016 86017 86018 86019 86020 86021 86022 86023 86024 86025 86026 86027 86028 86029 86030 86031 86032 86033 86034 86035 86036 86037 86038 86039 86040 86041 86042 86043 86044 86045 86046 86047 86048 86049 86050 86051 86052 86053 86054 86055 86056 86057 86058 86059 86060 86061 86062 86063 86064 86065 86066 86067 86068 86069 86070 86071 86072 86073 86074 86075 86076 86077 86078 86079 86080 86081 86082 86083 86084 86085 86086 86087 86088 86089 86090 86091 86092 86093 86094 86095 86096 86097 86098 86099 86100 86101 86102 86103 86104 86105 86106 86107 86108 86109 86110 86111 86112 86113 86114 86115 86116 86117 86118 86119 86120 86121 86122 86123 86124 86125 86126 86127 86128 86129 86130 86131 86132 86133 86134 86135 86136 86137 86138 86139 86140 86141 86142 86143 86144 86145 86146 86147 86148 86149 86150 86151 86152 86153 86154 86155 86156 86157 86158 86159 86160 86161 86162 86163 86164 86165 86166 86167 86168 86169 86170 86171 86172 86173 86174 86175 86176 86177 86178 86179 86180 86181 86182 86183 86184 86185 86186 86187 86188 86189 86190 86191 | ** The code in this file implements a function that determines whether ** or not a given identifier is really an SQL keyword. The same thing ** might be implemented more directly using a hand-written hash table. ** But by using this automatically generated code, the size of the code ** is substantially reduced. This is important for embedded applications ** on platforms with limited memory. */ /* Hash score: 134 */ static int keywordCode(const char *z, int n){ /* zText[] encodes 682 bytes of keywords in 452 bytes */ /* BEFOREIGNOREGEXPLAINDEXEDESCAPEACHECKEYCONSTRAINTERSECTABLEFT */ /* HENDEFERRABLELSELECTRANSACTIONATURALIKEXCEPTRIGGERAISEXCLUSIVE */ /* XISTSAVEPOINTOFFSETEMPORARYUNIQUERYBEGINNEREFERENCESBETWEEN */ /* OTNULLIMITCASCADELETECASECOLLATECREATECURRENT_DATEGROUPDATE */ /* IMMEDIATEJOINSERTMATCHAVINGLOBYPLANDEFAULTRELEASEVALUESWHEN */ /* WHERESTRICTABORTAFTERIGHTCASTCOMMITCROSSCURRENT_TIMESTAMP */ /* RIMARYDEFERREDISTINCTDROPFAILFROMFULLIFINSTEADISNULLORDER */ /* OLLBACKOUTEROWUNIONUSINGVIEWINITIALLY */ static const char zText[451] = { 'B','E','F','O','R','E','I','G','N','O','R','E','G','E','X','P','L','A', 'I','N','D','E','X','E','D','E','S','C','A','P','E','A','C','H','E','C', 'K','E','Y','C','O','N','S','T','R','A','I','N','T','E','R','S','E','C', 'T','A','B','L','E','F','T','H','E','N','D','E','F','E','R','R','A','B', 'L','E','L','S','E','L','E','C','T','R','A','N','S','A','C','T','I','O', 'N','A','T','U','R','A','L','I','K','E','X','C','E','P','T','R','I','G', 'G','E','R','A','I','S','E','X','C','L','U','S','I','V','E','X','I','S', 'T','S','A','V','E','P','O','I','N','T','O','F','F','S','E','T','E','M', 'P','O','R','A','R','Y','U','N','I','Q','U','E','R','Y','B','E','G','I', 'N','N','E','R','E','F','E','R','E','N','C','E','S','B','E','T','W','E', 'E','N','O','T','N','U','L','L','I','M','I','T','C','A','S','C','A','D', 'E','L','E','T','E','C','A','S','E','C','O','L','L','A','T','E','C','R', 'E','A','T','E','C','U','R','R','E','N','T','_','D','A','T','E','G','R', 'O','U','P','D','A','T','E','I','M','M','E','D','I','A','T','E','J','O', 'I','N','S','E','R','T','M','A','T','C','H','A','V','I','N','G','L','O', 'B','Y','P','L','A','N','D','E','F','A','U','L','T','R','E','L','E','A', 'S','E','V','A','L','U','E','S','W','H','E','N','W','H','E','R','E','S', 'T','R','I','C','T','A','B','O','R','T','A','F','T','E','R','I','G','H', 'T','C','A','S','T','C','O','M','M','I','T','C','R','O','S','S','C','U', 'R','R','E','N','T','_','T','I','M','E','S','T','A','M','P','R','I','M', 'A','R','Y','D','E','F','E','R','R','E','D','I','S','T','I','N','C','T', 'D','R','O','P','F','A','I','L','F','R','O','M','F','U','L','L','I','F', 'I','N','S','T','E','A','D','I','S','N','U','L','L','O','R','D','E','R', 'O','L','L','B','A','C','K','O','U','T','E','R','O','W','U','N','I','O', 'N','U','S','I','N','G','V','I','E','W','I','N','I','T','I','A','L','L', 'Y', }; static const unsigned char aHash[127] = { 62, 87, 96, 60, 0, 38, 0, 0, 72, 0, 63, 0, 0, 36, 4, 67, 93, 0, 78, 73, 64, 92, 0, 23, 0, 0, 33, 0, 99, 75, 0, 19, 0, 0, 1, 0, 0, 55, 56, 0, 54, 11, 0, 42, 68, 84, 0, 98, 83, 0, 0, 39, 0, 85, 21, 0, 0, 0, 101, 0, 20, 0, 10, 65, 22, 0, 0, 0, 103, 88, 46, 102, 43, 12, 58, 0, 69, 0, 82, 28, 0, 81, 0, 0, 0, 79, 2, 80, 77, 91, 6, 14, 90, 0, 76, 0, 71, 70, 66, 30, 0, 100, 0, 94, 48, 40, 50, 0, 0, 16, 34, 0, 97, 0, 15, 0, 0, 25, 0, 74, 44, 49, 0, 17, 47, 0, 59, }; static const unsigned char aNext[103] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 18, 0, 0, 0, 0, 27, 0, 26, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 8, 41, 0, 35, 0, 0, 37, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 3, 57, 0, 0, 13, 0, 86, 0, 0, 89, 0, 7, 61, 0, 29, 95, 52, 45, 0, 53, 0, 0, }; static const unsigned char aLen[103] = { 6, 7, 3, 6, 6, 7, 7, 5, 4, 6, 4, 5, 3, 10, 9, 2, 5, 4, 4, 3, 10, 4, 6, 11, 2, 7, 4, 6, 7, 5, 9, 6, 9, 4, 6, 2, 3, 4, 9, 2, 6, 5, 5, 5, 10, 7, 7, 3, 4, 5, 7, 3, 6, 4, 7, 6, 12, 5, 6, 9, 4, 6, 5, 6, 4, 2, 4, 3, 7, 7, 2, 6, 4, 5, 8, 5, 5, 5, 4, 6, 5, 17, 12, 7, 8, 8, 2, 4, 4, 4, 4, 2, 7, 6, 5, 8, 5, 3, 5, 5, 4, 9, 3, }; static const unsigned short int aOffset[103] = { 0, 2, 2, 6, 10, 13, 18, 18, 24, 25, 30, 32, 36, 39, 46, 46, 54, 57, 60, 62, 64, 73, 75, 80, 89, 90, 96, 99, 104, 110, 114, 122, 127, 133, 136, 136, 139, 141, 141, 145, 150, 153, 158, 161, 165, 175, 181, 181, 184, 187, 192, 193, 197, 203, 207, 214, 220, 232, 235, 241, 250, 252, 258, 262, 267, 270, 272, 274, 276, 283, 287, 290, 296, 300, 303, 311, 316, 320, 325, 329, 335, 340, 340, 356, 363, 370, 371, 378, 382, 386, 390, 394, 396, 403, 409, 413, 421, 425, 428, 433, 438, 442, 447, }; static const unsigned char aCode[103] = { TK_BEFORE, TK_FOREIGN, TK_FOR, TK_IGNORE, TK_LIKE_KW, TK_EXPLAIN, TK_INDEXED, TK_INDEX, TK_DESC, TK_ESCAPE, TK_EACH, TK_CHECK, TK_KEY, TK_CONSTRAINT, TK_INTERSECT, TK_IN, TK_TABLE, TK_JOIN_KW, TK_THEN, TK_END, TK_DEFERRABLE, TK_ELSE, TK_SELECT, TK_TRANSACTION,TK_ON, TK_JOIN_KW, TK_LIKE_KW, TK_EXCEPT, TK_TRIGGER, TK_RAISE, TK_EXCLUSIVE, TK_EXISTS, TK_SAVEPOINT, TK_INTO, TK_OFFSET, TK_OF, TK_SET, TK_TEMP, TK_TEMP, TK_OR, TK_UNIQUE, TK_QUERY, TK_BEGIN, TK_JOIN_KW, TK_REFERENCES, TK_BETWEEN, TK_NOTNULL, TK_NOT, TK_NULL, TK_LIMIT, TK_CASCADE, TK_ASC, TK_DELETE, TK_CASE, TK_COLLATE, TK_CREATE, TK_CTIME_KW, TK_GROUP, TK_UPDATE, TK_IMMEDIATE, TK_JOIN, TK_INSERT, TK_MATCH, TK_HAVING, TK_LIKE_KW, TK_BY, TK_PLAN, TK_AND, TK_DEFAULT, TK_RELEASE, TK_AS, TK_VALUES, TK_WHEN, TK_WHERE, TK_RESTRICT, TK_ABORT, TK_AFTER, TK_JOIN_KW, TK_CAST, TK_COMMIT, TK_JOIN_KW, TK_CTIME_KW, TK_CTIME_KW, TK_PRIMARY, TK_DEFERRED, TK_DISTINCT, TK_IS, TK_DROP, TK_FAIL, TK_FROM, TK_JOIN_KW, TK_IF, TK_INSTEAD, TK_ISNULL, TK_ORDER, TK_ROLLBACK, TK_JOIN_KW, TK_ROW, TK_UNION, TK_USING, TK_VIEW, TK_INITIALLY, TK_ALL, }; int h, i; if( n<2 ) return TK_ID; h = ((charMap(z[0])*4) ^ (charMap(z[n-1])*3) ^ n) % 127; for(i=((int)aHash[h])-1; i>=0; i=((int)aNext[i])-1){ if( aLen[i]==n && sqlite3StrNICmp(&zText[aOffset[i]],z,n)==0 ){ testcase( i==0 ); /* TK_BEFORE */ testcase( i==1 ); /* TK_FOREIGN */ testcase( i==2 ); /* TK_FOR */ testcase( i==3 ); /* TK_IGNORE */ testcase( i==4 ); /* TK_LIKE_KW */ testcase( i==5 ); /* TK_EXPLAIN */ testcase( i==6 ); /* TK_INDEXED */ testcase( i==7 ); /* TK_INDEX */ testcase( i==8 ); /* TK_DESC */ testcase( i==9 ); /* TK_ESCAPE */ testcase( i==10 ); /* TK_EACH */ testcase( i==11 ); /* TK_CHECK */ testcase( i==12 ); /* TK_KEY */ testcase( i==13 ); /* TK_CONSTRAINT */ testcase( i==14 ); /* TK_INTERSECT */ testcase( i==15 ); /* TK_IN */ testcase( i==16 ); /* TK_TABLE */ testcase( i==17 ); /* TK_JOIN_KW */ testcase( i==18 ); /* TK_THEN */ testcase( i==19 ); /* TK_END */ testcase( i==20 ); /* TK_DEFERRABLE */ testcase( i==21 ); /* TK_ELSE */ testcase( i==22 ); /* TK_SELECT */ testcase( i==23 ); /* TK_TRANSACTION */ testcase( i==24 ); /* TK_ON */ testcase( i==25 ); /* TK_JOIN_KW */ testcase( i==26 ); /* TK_LIKE_KW */ testcase( i==27 ); /* TK_EXCEPT */ testcase( i==28 ); /* TK_TRIGGER */ testcase( i==29 ); /* TK_RAISE */ testcase( i==30 ); /* TK_EXCLUSIVE */ testcase( i==31 ); /* TK_EXISTS */ testcase( i==32 ); /* TK_SAVEPOINT */ testcase( i==33 ); /* TK_INTO */ testcase( i==34 ); /* TK_OFFSET */ testcase( i==35 ); /* TK_OF */ testcase( i==36 ); /* TK_SET */ testcase( i==37 ); /* TK_TEMP */ testcase( i==38 ); /* TK_TEMP */ testcase( i==39 ); /* TK_OR */ testcase( i==40 ); /* TK_UNIQUE */ testcase( i==41 ); /* TK_QUERY */ testcase( i==42 ); /* TK_BEGIN */ testcase( i==43 ); /* TK_JOIN_KW */ testcase( i==44 ); /* TK_REFERENCES */ testcase( i==45 ); /* TK_BETWEEN */ testcase( i==46 ); /* TK_NOTNULL */ testcase( i==47 ); /* TK_NOT */ testcase( i==48 ); /* TK_NULL */ testcase( i==49 ); /* TK_LIMIT */ testcase( i==50 ); /* TK_CASCADE */ testcase( i==51 ); /* TK_ASC */ testcase( i==52 ); /* TK_DELETE */ testcase( i==53 ); /* TK_CASE */ testcase( i==54 ); /* TK_COLLATE */ testcase( i==55 ); /* TK_CREATE */ testcase( i==56 ); /* TK_CTIME_KW */ testcase( i==57 ); /* TK_GROUP */ testcase( i==58 ); /* TK_UPDATE */ testcase( i==59 ); /* TK_IMMEDIATE */ testcase( i==60 ); /* TK_JOIN */ testcase( i==61 ); /* TK_INSERT */ testcase( i==62 ); /* TK_MATCH */ testcase( i==63 ); /* TK_HAVING */ testcase( i==64 ); /* TK_LIKE_KW */ testcase( i==65 ); /* TK_BY */ testcase( i==66 ); /* TK_PLAN */ testcase( i==67 ); /* TK_AND */ testcase( i==68 ); /* TK_DEFAULT */ testcase( i==69 ); /* TK_RELEASE */ testcase( i==70 ); /* TK_AS */ testcase( i==71 ); /* TK_VALUES */ testcase( i==72 ); /* TK_WHEN */ testcase( i==73 ); /* TK_WHERE */ testcase( i==74 ); /* TK_RESTRICT */ testcase( i==75 ); /* TK_ABORT */ testcase( i==76 ); /* TK_AFTER */ testcase( i==77 ); /* TK_JOIN_KW */ testcase( i==78 ); /* TK_CAST */ testcase( i==79 ); /* TK_COMMIT */ testcase( i==80 ); /* TK_JOIN_KW */ testcase( i==81 ); /* TK_CTIME_KW */ testcase( i==82 ); /* TK_CTIME_KW */ testcase( i==83 ); /* TK_PRIMARY */ testcase( i==84 ); /* TK_DEFERRED */ testcase( i==85 ); /* TK_DISTINCT */ testcase( i==86 ); /* TK_IS */ testcase( i==87 ); /* TK_DROP */ testcase( i==88 ); /* TK_FAIL */ testcase( i==89 ); /* TK_FROM */ testcase( i==90 ); /* TK_JOIN_KW */ testcase( i==91 ); /* TK_IF */ testcase( i==92 ); /* TK_INSTEAD */ testcase( i==93 ); /* TK_ISNULL */ testcase( i==94 ); /* TK_ORDER */ testcase( i==95 ); /* TK_ROLLBACK */ testcase( i==96 ); /* TK_JOIN_KW */ testcase( i==97 ); /* TK_ROW */ testcase( i==98 ); /* TK_UNION */ testcase( i==99 ); /* TK_USING */ testcase( i==100 ); /* TK_VIEW */ testcase( i==101 ); /* TK_INITIALLY */ testcase( i==102 ); /* TK_ALL */ return aCode[i]; } } return TK_ID; } SQLITE_PRIVATE int sqlite3KeywordCode(const unsigned char *z, int n){ return keywordCode((char*)z, n); |
︙ | ︙ |
Added src/sqllogictest.mk.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | #!/usr/make # # Makefile for SQLITE # # This particular makefile is designed to build the amalgamation # for use with sqllogictest. # # To regenerate the sqlite3.c and sqlite3.h files used by sqllogictest, # edit this file as appropriate for the build system and type: # # make -f sqllogictest.mk sqlite3.c # # This makefile is only intended to build the amalgamation. A separate # makefile is used to build the sqllogictest binary. # #### The toplevel directory of the SQLite source tree. This is the directory # that contains this "Makefile.in" and the "configure.in" script. # TOP = ../../sqlite #### C Compiler and options for use in building executables that # will run on the platform that is doing the build. This is the # C compiler used to build lemon and mkkeywordhash. # BCC = gcc -g #BCC = /opt/ancic/bin/c89 -0 #### The OMIT options must be included in the build of the amalgamation. # The amalgamation contains generated code, and that code depends on # which features have been omitted. So the omit options here must # match the omit options in the main sqllogictest makefile. # OPTS += -DSQLITE_THREADSAFE=0 OPTS += -DSQLITE_OMIT_ALTERTABLE OPTS += -DSQLITE_OMIT_ANALYZE OPTS += -DSQLITE_OMIT_ATTACH OPTS += -DSQLITE_OMIT_AUTHORIZATION OPTS += -DSQLITE_OMIT_AUTOINCREMENT OPTS += -DSQLITE_OMIT_AUTOVACUUM OPTS += -DSQLITE_OMIT_BUILTIN_TEST OPTS += -DSQLITE_OMIT_COMPLETE OPTS += -DSQLITE_OMIT_CONFLICT_CLAUSE OPTS += -DSQLITE_OMIT_DATETIME_FUNCS OPTS += -DSQLITE_OMIT_GET_TABLE OPTS += -DSQLITE_OMIT_INCRBLOB OPTS += -DSQLITE_OMIT_LOAD_EXTENSION OPTS += -DSQLITE_OMIT_MEMORYDB OPTS += -DSQLITE_OMIT_PRAGMA OPTS += -DSQLITE_OMIT_REINDEX OPTS += -DSQLITE_OMIT_SHARED_CACHE OPTS += -DSQLITE_OMIT_TCL_VARIABLE OPTS += -DSQLITE_OMIT_TRACE OPTS += -DSQLITE_OMIT_TRACE OPTS += -DSQLITE_OMIT_UTF16 OPTS += -DSQLITE_OMIT_VACUUM OPTS += -DSQLITE_OMIT_VIRTUALTABLE #### AWK (Needed by Solaris systems) # NAWK = awk ################################# STOP HERE ################################ # # The remainder of this file is legacy. Nothing below this point is needed # in order to build the amalgamation. You can safely ignore everything # below this line. # #### The suffix to add to executable files. ".exe" for windows. # Nothing for unix. # #EXE = .exe EXE = #### C Compile and options for use in building executables that # will run on the target platform. This is usually the same # as BCC, unless you are cross-compiling. # #TCC = gcc -O6 TCC = gcc -g -rdynamic -O0 -Wall -fstrict-aliasing #TCC = gcc -g -O0 -Wall -fprofile-arcs -ftest-coverage #### Tools used to build a static library. # AR = ar cr RANLIB = ranlib #### Extra compiler options needed for programs that use the TCL library. # TCL_FLAGS = #### Linker options needed to link against the TCL library. # LIBTCL = -ltcl8.5 -lm -ldl #### Compiler options needed for programs that use the readline() library. # READLINE_FLAGS = #READLINE_FLAGS = -DHAVE_READLINE=1 -I/usr/include/readline #### Linker options needed by programs using readline() must link against. # #LIBREADLINE = -ldl -lpthread #LIBREADLINE = -static -lreadline -ltermcap #### Math library # MATHLIB = -lm # MATHLIB = # You should not have to change anything below this line ############################################################################### include $(TOP)/main.mk |