| | @@ -24,11 +24,10 @@ |
| 24 | 24 | #endif |
| 25 | 25 | #ifndef SQLITE_API |
| 26 | 26 | # define SQLITE_API |
| 27 | 27 | #endif |
| 28 | 28 | /************** Begin file sqliteInt.h ***************************************/ |
| 29 | | -#line 1 "tsrc/sqliteInt.h" |
| 30 | 29 | /* |
| 31 | 30 | ** 2001 September 15 |
| 32 | 31 | ** |
| 33 | 32 | ** The author disclaims copyright to this source code. In place of |
| 34 | 33 | ** a legal notice, here is a blessing: |
| | @@ -79,11 +78,10 @@ |
| 79 | 78 | #include "config.h" |
| 80 | 79 | #endif |
| 81 | 80 | |
| 82 | 81 | /************** Include sqliteLimit.h in the middle of sqliteInt.h ***********/ |
| 83 | 82 | /************** Begin file sqliteLimit.h *************************************/ |
| 84 | | -#line 1 "tsrc/sqliteLimit.h" |
| 85 | 83 | /* |
| 86 | 84 | ** 2007 May 7 |
| 87 | 85 | ** |
| 88 | 86 | ** The author disclaims copyright to this source code. In place of |
| 89 | 87 | ** a legal notice, here is a blessing: |
| | @@ -291,11 +289,10 @@ |
| 291 | 289 | # define SQLITE_MAX_TRIGGER_DEPTH 1000 |
| 292 | 290 | #endif |
| 293 | 291 | |
| 294 | 292 | /************** End of sqliteLimit.h *****************************************/ |
| 295 | 293 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 296 | | -#line 54 "tsrc/sqliteInt.h" |
| 297 | 294 | |
| 298 | 295 | /* Disable nuisance warnings on Borland compilers */ |
| 299 | 296 | #if defined(__BORLANDC__) |
| 300 | 297 | #pragma warn -rch /* unreachable code */ |
| 301 | 298 | #pragma warn -ccc /* Condition is always true or false */ |
| | @@ -548,11 +545,10 @@ |
| 548 | 545 | # define unlikely(X) !!(X) |
| 549 | 546 | #endif |
| 550 | 547 | |
| 551 | 548 | /************** Include sqlite3.h in the middle of sqliteInt.h ***************/ |
| 552 | 549 | /************** Begin file sqlite3.h *****************************************/ |
| 553 | | -#line 1 "tsrc/sqlite3.h" |
| 554 | 550 | /* |
| 555 | 551 | ** 2001 September 15 |
| 556 | 552 | ** |
| 557 | 553 | ** The author disclaims copyright to this source code. In place of |
| 558 | 554 | ** a legal notice, here is a blessing: |
| | @@ -660,11 +656,11 @@ |
| 660 | 656 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 661 | 657 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 662 | 658 | */ |
| 663 | 659 | #define SQLITE_VERSION "3.7.9" |
| 664 | 660 | #define SQLITE_VERSION_NUMBER 3007009 |
| 665 | | -#define SQLITE_SOURCE_ID "2011-10-07 18:24:25 d4f95b3b6e9f4a4072606af5daa17ea7c645382e" |
| 661 | +#define SQLITE_SOURCE_ID "2011-10-11 20:41:54 b94a80a832777f0e639f6a81fcfe169bf970a8c0" |
| 666 | 662 | |
| 667 | 663 | /* |
| 668 | 664 | ** CAPI3REF: Run-Time Library Version Numbers |
| 669 | 665 | ** KEYWORDS: sqlite3_version, sqlite3_sourceid |
| 670 | 666 | ** |
| | @@ -6380,17 +6376,17 @@ |
| 6380 | 6376 | ** ^The highwater mark associated with SQLITE_DBSTATUS_STMT_USED is always 0. |
| 6381 | 6377 | ** </dd> |
| 6382 | 6378 | ** |
| 6383 | 6379 | ** [[SQLITE_DBSTATUS_CACHE_HIT]] ^(<dt>SQLITE_DBSTATUS_CACHE_HIT</dt> |
| 6384 | 6380 | ** <dd>This parameter returns the number of pager cache hits that have |
| 6385 | | -** occurred. ^The highwater mark associated with SQLITE_DBSTATUS_CACHE_HIT |
| 6381 | +** occurred.)^ ^The highwater mark associated with SQLITE_DBSTATUS_CACHE_HIT |
| 6386 | 6382 | ** is always 0. |
| 6387 | 6383 | ** </dd> |
| 6388 | 6384 | ** |
| 6389 | 6385 | ** [[SQLITE_DBSTATUS_CACHE_MISS]] ^(<dt>SQLITE_DBSTATUS_CACHE_MISS</dt> |
| 6390 | 6386 | ** <dd>This parameter returns the number of pager cache misses that have |
| 6391 | | -** occurred. ^The highwater mark associated with SQLITE_DBSTATUS_CACHE_MISS |
| 6387 | +** occurred.)^ ^The highwater mark associated with SQLITE_DBSTATUS_CACHE_MISS |
| 6392 | 6388 | ** is always 0. |
| 6393 | 6389 | ** </dd> |
| 6394 | 6390 | ** </dl> |
| 6395 | 6391 | */ |
| 6396 | 6392 | #define SQLITE_DBSTATUS_LOOKASIDE_USED 0 |
| | @@ -7333,14 +7329,12 @@ |
| 7333 | 7329 | #endif /* ifndef _SQLITE3RTREE_H_ */ |
| 7334 | 7330 | |
| 7335 | 7331 | |
| 7336 | 7332 | /************** End of sqlite3.h *********************************************/ |
| 7337 | 7333 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 7338 | | -#line 309 "tsrc/sqliteInt.h" |
| 7339 | 7334 | /************** Include hash.h in the middle of sqliteInt.h ******************/ |
| 7340 | 7335 | /************** Begin file hash.h ********************************************/ |
| 7341 | | -#line 1 "tsrc/hash.h" |
| 7342 | 7336 | /* |
| 7343 | 7337 | ** 2001 September 22 |
| 7344 | 7338 | ** |
| 7345 | 7339 | ** The author disclaims copyright to this source code. In place of |
| 7346 | 7340 | ** a legal notice, here is a blessing: |
| | @@ -7436,14 +7430,12 @@ |
| 7436 | 7430 | |
| 7437 | 7431 | #endif /* _SQLITE_HASH_H_ */ |
| 7438 | 7432 | |
| 7439 | 7433 | /************** End of hash.h ************************************************/ |
| 7440 | 7434 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 7441 | | -#line 310 "tsrc/sqliteInt.h" |
| 7442 | 7435 | /************** Include parse.h in the middle of sqliteInt.h *****************/ |
| 7443 | 7436 | /************** Begin file parse.h *******************************************/ |
| 7444 | | -#line 1 "tsrc/parse.h" |
| 7445 | 7437 | #define TK_SEMI 1 |
| 7446 | 7438 | #define TK_EXPLAIN 2 |
| 7447 | 7439 | #define TK_QUERY 3 |
| 7448 | 7440 | #define TK_PLAN 4 |
| 7449 | 7441 | #define TK_BEGIN 5 |
| | @@ -7600,11 +7592,10 @@ |
| 7600 | 7592 | #define TK_UMINUS 156 |
| 7601 | 7593 | #define TK_UPLUS 157 |
| 7602 | 7594 | |
| 7603 | 7595 | /************** End of parse.h ***********************************************/ |
| 7604 | 7596 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 7605 | | -#line 311 "tsrc/sqliteInt.h" |
| 7606 | 7597 | #include <stdio.h> |
| 7607 | 7598 | #include <stdlib.h> |
| 7608 | 7599 | #include <string.h> |
| 7609 | 7600 | #include <assert.h> |
| 7610 | 7601 | #include <stddef.h> |
| | @@ -7956,11 +7947,10 @@ |
| 7956 | 7947 | ** "BusyHandler" typedefs. vdbe.h also requires a few of the opaque |
| 7957 | 7948 | ** pointer types (i.e. FuncDef) defined above. |
| 7958 | 7949 | */ |
| 7959 | 7950 | /************** Include btree.h in the middle of sqliteInt.h *****************/ |
| 7960 | 7951 | /************** Begin file btree.h *******************************************/ |
| 7961 | | -#line 1 "tsrc/btree.h" |
| 7962 | 7952 | /* |
| 7963 | 7953 | ** 2001 September 15 |
| 7964 | 7954 | ** |
| 7965 | 7955 | ** The author disclaims copyright to this source code. In place of |
| 7966 | 7956 | ** a legal notice, here is a blessing: |
| | @@ -8201,14 +8191,12 @@ |
| 8201 | 8191 | |
| 8202 | 8192 | #endif /* _BTREE_H_ */ |
| 8203 | 8193 | |
| 8204 | 8194 | /************** End of btree.h ***********************************************/ |
| 8205 | 8195 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 8206 | | -#line 665 "tsrc/sqliteInt.h" |
| 8207 | 8196 | /************** Include vdbe.h in the middle of sqliteInt.h ******************/ |
| 8208 | 8197 | /************** Begin file vdbe.h ********************************************/ |
| 8209 | | -#line 1 "tsrc/vdbe.h" |
| 8210 | 8198 | /* |
| 8211 | 8199 | ** 2001 September 15 |
| 8212 | 8200 | ** |
| 8213 | 8201 | ** The author disclaims copyright to this source code. In place of |
| 8214 | 8202 | ** a legal notice, here is a blessing: |
| | @@ -8369,11 +8357,10 @@ |
| 8369 | 8357 | ** The makefile scans the vdbe.c source file and creates the "opcodes.h" |
| 8370 | 8358 | ** header file that defines a number for each opcode used by the VDBE. |
| 8371 | 8359 | */ |
| 8372 | 8360 | /************** Include opcodes.h in the middle of vdbe.h ********************/ |
| 8373 | 8361 | /************** Begin file opcodes.h *****************************************/ |
| 8374 | | -#line 1 "tsrc/opcodes.h" |
| 8375 | 8362 | /* Automatically generated. Do not edit */ |
| 8376 | 8363 | /* See the mkopcodeh.awk script for details */ |
| 8377 | 8364 | #define OP_Goto 1 |
| 8378 | 8365 | #define OP_Gosub 2 |
| 8379 | 8366 | #define OP_Return 3 |
| | @@ -8558,11 +8545,10 @@ |
| 8558 | 8545 | /* 136 */ 0x01, 0x00, 0x01, 0x00, 0x00, 0x04, 0x04, 0x04,\ |
| 8559 | 8546 | /* 144 */ 0x04, 0x04, 0x02, 0x02, 0x00, 0x00, 0x00,} |
| 8560 | 8547 | |
| 8561 | 8548 | /************** End of opcodes.h *********************************************/ |
| 8562 | 8549 | /************** Continuing where we left off in vdbe.h ***********************/ |
| 8563 | | -#line 164 "tsrc/vdbe.h" |
| 8564 | 8550 | |
| 8565 | 8551 | /* |
| 8566 | 8552 | ** Prototypes for the VDBE interface. See comments on the implementation |
| 8567 | 8553 | ** for a description of what each of these routines does. |
| 8568 | 8554 | */ |
| | @@ -8633,14 +8619,12 @@ |
| 8633 | 8619 | |
| 8634 | 8620 | #endif |
| 8635 | 8621 | |
| 8636 | 8622 | /************** End of vdbe.h ************************************************/ |
| 8637 | 8623 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 8638 | | -#line 666 "tsrc/sqliteInt.h" |
| 8639 | 8624 | /************** Include pager.h in the middle of sqliteInt.h *****************/ |
| 8640 | 8625 | /************** Begin file pager.h *******************************************/ |
| 8641 | | -#line 1 "tsrc/pager.h" |
| 8642 | 8626 | /* |
| 8643 | 8627 | ** 2001 September 15 |
| 8644 | 8628 | ** |
| 8645 | 8629 | ** The author disclaims copyright to this source code. In place of |
| 8646 | 8630 | ** a legal notice, here is a blessing: |
| | @@ -8822,14 +8806,12 @@ |
| 8822 | 8806 | |
| 8823 | 8807 | #endif /* _PAGER_H_ */ |
| 8824 | 8808 | |
| 8825 | 8809 | /************** End of pager.h ***********************************************/ |
| 8826 | 8810 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 8827 | | -#line 667 "tsrc/sqliteInt.h" |
| 8828 | 8811 | /************** Include pcache.h in the middle of sqliteInt.h ****************/ |
| 8829 | 8812 | /************** Begin file pcache.h ******************************************/ |
| 8830 | | -#line 1 "tsrc/pcache.h" |
| 8831 | 8813 | /* |
| 8832 | 8814 | ** 2008 August 05 |
| 8833 | 8815 | ** |
| 8834 | 8816 | ** The author disclaims copyright to this source code. In place of |
| 8835 | 8817 | ** a legal notice, here is a blessing: |
| | @@ -8984,15 +8966,13 @@ |
| 8984 | 8966 | |
| 8985 | 8967 | #endif /* _PCACHE_H_ */ |
| 8986 | 8968 | |
| 8987 | 8969 | /************** End of pcache.h **********************************************/ |
| 8988 | 8970 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 8989 | | -#line 668 "tsrc/sqliteInt.h" |
| 8990 | 8971 | |
| 8991 | 8972 | /************** Include os.h in the middle of sqliteInt.h ********************/ |
| 8992 | 8973 | /************** Begin file os.h **********************************************/ |
| 8993 | | -#line 1 "tsrc/os.h" |
| 8994 | 8974 | /* |
| 8995 | 8975 | ** 2001 September 16 |
| 8996 | 8976 | ** |
| 8997 | 8977 | ** The author disclaims copyright to this source code. In place of |
| 8998 | 8978 | ** a legal notice, here is a blessing: |
| | @@ -9271,14 +9251,12 @@ |
| 9271 | 9251 | |
| 9272 | 9252 | #endif /* _SQLITE_OS_H_ */ |
| 9273 | 9253 | |
| 9274 | 9254 | /************** End of os.h **************************************************/ |
| 9275 | 9255 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 9276 | | -#line 670 "tsrc/sqliteInt.h" |
| 9277 | 9256 | /************** Include mutex.h in the middle of sqliteInt.h *****************/ |
| 9278 | 9257 | /************** Begin file mutex.h *******************************************/ |
| 9279 | | -#line 1 "tsrc/mutex.h" |
| 9280 | 9258 | /* |
| 9281 | 9259 | ** 2007 August 28 |
| 9282 | 9260 | ** |
| 9283 | 9261 | ** The author disclaims copyright to this source code. In place of |
| 9284 | 9262 | ** a legal notice, here is a blessing: |
| | @@ -9349,11 +9327,10 @@ |
| 9349 | 9327 | #define sqlite3MutexEnd() |
| 9350 | 9328 | #endif /* defined(SQLITE_MUTEX_OMIT) */ |
| 9351 | 9329 | |
| 9352 | 9330 | /************** End of mutex.h ***********************************************/ |
| 9353 | 9331 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 9354 | | -#line 671 "tsrc/sqliteInt.h" |
| 9355 | 9332 | |
| 9356 | 9333 | |
| 9357 | 9334 | /* |
| 9358 | 9335 | ** Each database file to be accessed by the system is an instance |
| 9359 | 9336 | ** of the following structure. There are normally two of these structures |
| | @@ -11962,11 +11939,10 @@ |
| 11962 | 11939 | |
| 11963 | 11940 | #endif /* _SQLITEINT_H_ */ |
| 11964 | 11941 | |
| 11965 | 11942 | /************** End of sqliteInt.h *******************************************/ |
| 11966 | 11943 | /************** Begin file global.c ******************************************/ |
| 11967 | | -#line 1 "tsrc/global.c" |
| 11968 | 11944 | /* |
| 11969 | 11945 | ** 2008 June 13 |
| 11970 | 11946 | ** |
| 11971 | 11947 | ** The author disclaims copyright to this source code. In place of |
| 11972 | 11948 | ** a legal notice, here is a blessing: |
| | @@ -12185,11 +12161,10 @@ |
| 12185 | 12161 | */ |
| 12186 | 12162 | SQLITE_PRIVATE const unsigned char sqlite3OpcodeProperty[] = OPFLG_INITIALIZER; |
| 12187 | 12163 | |
| 12188 | 12164 | /************** End of global.c **********************************************/ |
| 12189 | 12165 | /************** Begin file ctime.c *******************************************/ |
| 12190 | | -#line 1 "tsrc/ctime.c" |
| 12191 | 12166 | /* |
| 12192 | 12167 | ** 2010 February 23 |
| 12193 | 12168 | ** |
| 12194 | 12169 | ** The author disclaims copyright to this source code. In place of |
| 12195 | 12170 | ** a legal notice, here is a blessing: |
| | @@ -12590,11 +12565,10 @@ |
| 12590 | 12565 | |
| 12591 | 12566 | #endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */ |
| 12592 | 12567 | |
| 12593 | 12568 | /************** End of ctime.c ***********************************************/ |
| 12594 | 12569 | /************** Begin file status.c ******************************************/ |
| 12595 | | -#line 1 "tsrc/status.c" |
| 12596 | 12570 | /* |
| 12597 | 12571 | ** 2008 June 18 |
| 12598 | 12572 | ** |
| 12599 | 12573 | ** The author disclaims copyright to this source code. In place of |
| 12600 | 12574 | ** a legal notice, here is a blessing: |
| | @@ -12608,11 +12582,10 @@ |
| 12608 | 12582 | ** This module implements the sqlite3_status() interface and related |
| 12609 | 12583 | ** functionality. |
| 12610 | 12584 | */ |
| 12611 | 12585 | /************** Include vdbeInt.h in the middle of status.c ******************/ |
| 12612 | 12586 | /************** Begin file vdbeInt.h *****************************************/ |
| 12613 | | -#line 1 "tsrc/vdbeInt.h" |
| 12614 | 12587 | /* |
| 12615 | 12588 | ** 2003 September 6 |
| 12616 | 12589 | ** |
| 12617 | 12590 | ** The author disclaims copyright to this source code. In place of |
| 12618 | 12591 | ** a legal notice, here is a blessing: |
| | @@ -13060,11 +13033,10 @@ |
| 13060 | 13033 | |
| 13061 | 13034 | #endif /* !defined(_VDBEINT_H_) */ |
| 13062 | 13035 | |
| 13063 | 13036 | /************** End of vdbeInt.h *********************************************/ |
| 13064 | 13037 | /************** Continuing where we left off in status.c *********************/ |
| 13065 | | -#line 18 "tsrc/status.c" |
| 13066 | 13038 | |
| 13067 | 13039 | /* |
| 13068 | 13040 | ** Variables in which to record status information. |
| 13069 | 13041 | */ |
| 13070 | 13042 | typedef struct sqlite3StatType sqlite3StatType; |
| | @@ -13296,11 +13268,10 @@ |
| 13296 | 13268 | return rc; |
| 13297 | 13269 | } |
| 13298 | 13270 | |
| 13299 | 13271 | /************** End of status.c **********************************************/ |
| 13300 | 13272 | /************** Begin file date.c ********************************************/ |
| 13301 | | -#line 1 "tsrc/date.c" |
| 13302 | 13273 | /* |
| 13303 | 13274 | ** 2003 October 31 |
| 13304 | 13275 | ** |
| 13305 | 13276 | ** The author disclaims copyright to this source code. In place of |
| 13306 | 13277 | ** a legal notice, here is a blessing: |
| | @@ -14424,11 +14395,10 @@ |
| 14424 | 14395 | } |
| 14425 | 14396 | } |
| 14426 | 14397 | |
| 14427 | 14398 | /************** End of date.c ************************************************/ |
| 14428 | 14399 | /************** Begin file os.c **********************************************/ |
| 14429 | | -#line 1 "tsrc/os.c" |
| 14430 | 14400 | /* |
| 14431 | 14401 | ** 2005 November 29 |
| 14432 | 14402 | ** |
| 14433 | 14403 | ** The author disclaims copyright to this source code. In place of |
| 14434 | 14404 | ** a legal notice, here is a blessing: |
| | @@ -14758,11 +14728,10 @@ |
| 14758 | 14728 | return SQLITE_OK; |
| 14759 | 14729 | } |
| 14760 | 14730 | |
| 14761 | 14731 | /************** End of os.c **************************************************/ |
| 14762 | 14732 | /************** Begin file fault.c *******************************************/ |
| 14763 | | -#line 1 "tsrc/fault.c" |
| 14764 | 14733 | /* |
| 14765 | 14734 | ** 2008 Jan 22 |
| 14766 | 14735 | ** |
| 14767 | 14736 | ** The author disclaims copyright to this source code. In place of |
| 14768 | 14737 | ** a legal notice, here is a blessing: |
| | @@ -14848,11 +14817,10 @@ |
| 14848 | 14817 | |
| 14849 | 14818 | #endif /* #ifndef SQLITE_OMIT_BUILTIN_TEST */ |
| 14850 | 14819 | |
| 14851 | 14820 | /************** End of fault.c ***********************************************/ |
| 14852 | 14821 | /************** Begin file mem0.c ********************************************/ |
| 14853 | | -#line 1 "tsrc/mem0.c" |
| 14854 | 14822 | /* |
| 14855 | 14823 | ** 2008 October 28 |
| 14856 | 14824 | ** |
| 14857 | 14825 | ** The author disclaims copyright to this source code. In place of |
| 14858 | 14826 | ** a legal notice, here is a blessing: |
| | @@ -14910,11 +14878,10 @@ |
| 14910 | 14878 | |
| 14911 | 14879 | #endif /* SQLITE_ZERO_MALLOC */ |
| 14912 | 14880 | |
| 14913 | 14881 | /************** End of mem0.c ************************************************/ |
| 14914 | 14882 | /************** Begin file mem1.c ********************************************/ |
| 14915 | | -#line 1 "tsrc/mem1.c" |
| 14916 | 14883 | /* |
| 14917 | 14884 | ** 2007 August 14 |
| 14918 | 14885 | ** |
| 14919 | 14886 | ** The author disclaims copyright to this source code. In place of |
| 14920 | 14887 | ** a legal notice, here is a blessing: |
| | @@ -15063,11 +15030,10 @@ |
| 15063 | 15030 | |
| 15064 | 15031 | #endif /* SQLITE_SYSTEM_MALLOC */ |
| 15065 | 15032 | |
| 15066 | 15033 | /************** End of mem1.c ************************************************/ |
| 15067 | 15034 | /************** Begin file mem2.c ********************************************/ |
| 15068 | | -#line 1 "tsrc/mem2.c" |
| 15069 | 15035 | /* |
| 15070 | 15036 | ** 2007 August 15 |
| 15071 | 15037 | ** |
| 15072 | 15038 | ** The author disclaims copyright to this source code. In place of |
| 15073 | 15039 | ** a legal notice, here is a blessing: |
| | @@ -15594,11 +15560,10 @@ |
| 15594 | 15560 | |
| 15595 | 15561 | #endif /* SQLITE_MEMDEBUG */ |
| 15596 | 15562 | |
| 15597 | 15563 | /************** End of mem2.c ************************************************/ |
| 15598 | 15564 | /************** Begin file mem3.c ********************************************/ |
| 15599 | | -#line 1 "tsrc/mem3.c" |
| 15600 | 15565 | /* |
| 15601 | 15566 | ** 2007 October 14 |
| 15602 | 15567 | ** |
| 15603 | 15568 | ** The author disclaims copyright to this source code. In place of |
| 15604 | 15569 | ** a legal notice, here is a blessing: |
| | @@ -16284,11 +16249,10 @@ |
| 16284 | 16249 | |
| 16285 | 16250 | #endif /* SQLITE_ENABLE_MEMSYS3 */ |
| 16286 | 16251 | |
| 16287 | 16252 | /************** End of mem3.c ************************************************/ |
| 16288 | 16253 | /************** Begin file mem5.c ********************************************/ |
| 16289 | | -#line 1 "tsrc/mem5.c" |
| 16290 | 16254 | /* |
| 16291 | 16255 | ** 2007 October 14 |
| 16292 | 16256 | ** |
| 16293 | 16257 | ** The author disclaims copyright to this source code. In place of |
| 16294 | 16258 | ** a legal notice, here is a blessing: |
| | @@ -16868,11 +16832,10 @@ |
| 16868 | 16832 | |
| 16869 | 16833 | #endif /* SQLITE_ENABLE_MEMSYS5 */ |
| 16870 | 16834 | |
| 16871 | 16835 | /************** End of mem5.c ************************************************/ |
| 16872 | 16836 | /************** Begin file mutex.c *******************************************/ |
| 16873 | | -#line 1 "tsrc/mutex.c" |
| 16874 | 16837 | /* |
| 16875 | 16838 | ** 2007 August 14 |
| 16876 | 16839 | ** |
| 16877 | 16840 | ** The author disclaims copyright to this source code. In place of |
| 16878 | 16841 | ** a legal notice, here is a blessing: |
| | @@ -17024,11 +16987,10 @@ |
| 17024 | 16987 | |
| 17025 | 16988 | #endif /* SQLITE_MUTEX_OMIT */ |
| 17026 | 16989 | |
| 17027 | 16990 | /************** End of mutex.c ***********************************************/ |
| 17028 | 16991 | /************** Begin file mutex_noop.c **************************************/ |
| 17029 | | -#line 1 "tsrc/mutex_noop.c" |
| 17030 | 16992 | /* |
| 17031 | 16993 | ** 2008 October 07 |
| 17032 | 16994 | ** |
| 17033 | 16995 | ** The author disclaims copyright to this source code. In place of |
| 17034 | 16996 | ** a legal notice, here is a blessing: |
| | @@ -17233,11 +17195,10 @@ |
| 17233 | 17195 | #endif /* SQLITE_MUTEX_NOOP */ |
| 17234 | 17196 | #endif /* SQLITE_MUTEX_OMIT */ |
| 17235 | 17197 | |
| 17236 | 17198 | /************** End of mutex_noop.c ******************************************/ |
| 17237 | 17199 | /************** Begin file mutex_os2.c ***************************************/ |
| 17238 | | -#line 1 "tsrc/mutex_os2.c" |
| 17239 | 17200 | /* |
| 17240 | 17201 | ** 2007 August 28 |
| 17241 | 17202 | ** |
| 17242 | 17203 | ** The author disclaims copyright to this source code. In place of |
| 17243 | 17204 | ** a legal notice, here is a blessing: |
| | @@ -17510,11 +17471,10 @@ |
| 17510 | 17471 | } |
| 17511 | 17472 | #endif /* SQLITE_MUTEX_OS2 */ |
| 17512 | 17473 | |
| 17513 | 17474 | /************** End of mutex_os2.c *******************************************/ |
| 17514 | 17475 | /************** Begin file mutex_unix.c **************************************/ |
| 17515 | | -#line 1 "tsrc/mutex_unix.c" |
| 17516 | 17476 | /* |
| 17517 | 17477 | ** 2007 August 28 |
| 17518 | 17478 | ** |
| 17519 | 17479 | ** The author disclaims copyright to this source code. In place of |
| 17520 | 17480 | ** a legal notice, here is a blessing: |
| | @@ -17864,11 +17824,10 @@ |
| 17864 | 17824 | |
| 17865 | 17825 | #endif /* SQLITE_MUTEX_PTHREAD */ |
| 17866 | 17826 | |
| 17867 | 17827 | /************** End of mutex_unix.c ******************************************/ |
| 17868 | 17828 | /************** Begin file mutex_w32.c ***************************************/ |
| 17869 | | -#line 1 "tsrc/mutex_w32.c" |
| 17870 | 17829 | /* |
| 17871 | 17830 | ** 2007 August 14 |
| 17872 | 17831 | ** |
| 17873 | 17832 | ** The author disclaims copyright to this source code. In place of |
| 17874 | 17833 | ** a legal notice, here is a blessing: |
| | @@ -18199,11 +18158,10 @@ |
| 18199 | 18158 | } |
| 18200 | 18159 | #endif /* SQLITE_MUTEX_W32 */ |
| 18201 | 18160 | |
| 18202 | 18161 | /************** End of mutex_w32.c *******************************************/ |
| 18203 | 18162 | /************** Begin file malloc.c ******************************************/ |
| 18204 | | -#line 1 "tsrc/malloc.c" |
| 18205 | 18163 | /* |
| 18206 | 18164 | ** 2001 September 15 |
| 18207 | 18165 | ** |
| 18208 | 18166 | ** The author disclaims copyright to this source code. In place of |
| 18209 | 18167 | ** a legal notice, here is a blessing: |
| | @@ -18979,11 +18937,10 @@ |
| 18979 | 18937 | return rc & (db ? db->errMask : 0xff); |
| 18980 | 18938 | } |
| 18981 | 18939 | |
| 18982 | 18940 | /************** End of malloc.c **********************************************/ |
| 18983 | 18941 | /************** Begin file printf.c ******************************************/ |
| 18984 | | -#line 1 "tsrc/printf.c" |
| 18985 | 18942 | /* |
| 18986 | 18943 | ** The "printf" code that follows dates from the 1980's. It is in |
| 18987 | 18944 | ** the public domain. The original comments are included here for |
| 18988 | 18945 | ** completeness. They are very out-of-date but might be useful as |
| 18989 | 18946 | ** an historical reference. Most of the "enhancements" have been backed |
| | @@ -19171,15 +19128,11 @@ |
| 19171 | 19128 | /* |
| 19172 | 19129 | ** On machines with a small stack size, you can redefine the |
| 19173 | 19130 | ** SQLITE_PRINT_BUF_SIZE to be less than 350. |
| 19174 | 19131 | */ |
| 19175 | 19132 | #ifndef SQLITE_PRINT_BUF_SIZE |
| 19176 | | -# if defined(SQLITE_SMALL_STACK) |
| 19177 | | -# define SQLITE_PRINT_BUF_SIZE 50 |
| 19178 | | -# else |
| 19179 | | -# define SQLITE_PRINT_BUF_SIZE 350 |
| 19180 | | -# endif |
| 19133 | +# define SQLITE_PRINT_BUF_SIZE 70 |
| 19181 | 19134 | #endif |
| 19182 | 19135 | #define etBUFSIZE SQLITE_PRINT_BUF_SIZE /* Size of the output buffer */ |
| 19183 | 19136 | |
| 19184 | 19137 | /* |
| 19185 | 19138 | ** The root program. All variations call this core. |
| | @@ -19231,19 +19184,20 @@ |
| 19231 | 19184 | etByte done; /* Loop termination flag */ |
| 19232 | 19185 | sqlite_uint64 longvalue; /* Value for integer types */ |
| 19233 | 19186 | LONGDOUBLE_TYPE realvalue; /* Value for real types */ |
| 19234 | 19187 | const et_info *infop; /* Pointer to the appropriate info structure */ |
| 19235 | 19188 | char buf[etBUFSIZE]; /* Conversion buffer */ |
| 19189 | + char *zOut; /* Rendering buffer */ |
| 19190 | + int nOut; /* Size of the rendering buffer */ |
| 19236 | 19191 | char prefix; /* Prefix character. "+" or "-" or " " or '\0'. */ |
| 19237 | 19192 | etByte xtype = 0; /* Conversion paradigm */ |
| 19238 | 19193 | char *zExtra; /* Extra memory used for etTCLESCAPE conversions */ |
| 19239 | 19194 | #ifndef SQLITE_OMIT_FLOATING_POINT |
| 19240 | 19195 | int exp, e2; /* exponent of real numbers */ |
| 19241 | 19196 | double rounder; /* Used for rounding floating point values */ |
| 19242 | 19197 | etByte flag_dp; /* True if decimal point should be shown */ |
| 19243 | 19198 | etByte flag_rtz; /* True if trailing zeros should be removed */ |
| 19244 | | - etByte flag_exp; /* True to force display of the exponent */ |
| 19245 | 19199 | int nsd; /* Number of significant digits returned */ |
| 19246 | 19200 | #endif |
| 19247 | 19201 | |
| 19248 | 19202 | length = 0; |
| 19249 | 19203 | bufpt = 0; |
| | @@ -19288,13 +19242,10 @@ |
| 19288 | 19242 | while( c>='0' && c<='9' ){ |
| 19289 | 19243 | width = width*10 + c - '0'; |
| 19290 | 19244 | c = *++fmt; |
| 19291 | 19245 | } |
| 19292 | 19246 | } |
| 19293 | | - if( width > etBUFSIZE-10 ){ |
| 19294 | | - width = etBUFSIZE-10; |
| 19295 | | - } |
| 19296 | 19247 | /* Get the precision */ |
| 19297 | 19248 | if( c=='.' ){ |
| 19298 | 19249 | precision = 0; |
| 19299 | 19250 | c = *++fmt; |
| 19300 | 19251 | if( c=='*' ){ |
| | @@ -19337,16 +19288,10 @@ |
| 19337 | 19288 | break; |
| 19338 | 19289 | } |
| 19339 | 19290 | } |
| 19340 | 19291 | zExtra = 0; |
| 19341 | 19292 | |
| 19342 | | - |
| 19343 | | - /* Limit the precision to prevent overflowing buf[] during conversion */ |
| 19344 | | - if( precision>etBUFSIZE-40 && (infop->flags & FLAG_STRING)==0 ){ |
| 19345 | | - precision = etBUFSIZE-40; |
| 19346 | | - } |
| 19347 | | - |
| 19348 | 19293 | /* |
| 19349 | 19294 | ** At this point, variables are initialized as follows: |
| 19350 | 19295 | ** |
| 19351 | 19296 | ** flag_alternateform TRUE if a '#' is present. |
| 19352 | 19297 | ** flag_altform2 TRUE if a '!' is present. |
| | @@ -19407,20 +19352,30 @@ |
| 19407 | 19352 | } |
| 19408 | 19353 | if( longvalue==0 ) flag_alternateform = 0; |
| 19409 | 19354 | if( flag_zeropad && precision<width-(prefix!=0) ){ |
| 19410 | 19355 | precision = width-(prefix!=0); |
| 19411 | 19356 | } |
| 19412 | | - bufpt = &buf[etBUFSIZE-1]; |
| 19357 | + if( precision<etBUFSIZE-10 ){ |
| 19358 | + nOut = etBUFSIZE; |
| 19359 | + zOut = buf; |
| 19360 | + }else{ |
| 19361 | + nOut = precision + 10; |
| 19362 | + zOut = zExtra = sqlite3Malloc( nOut ); |
| 19363 | + if( zOut==0 ){ |
| 19364 | + pAccum->mallocFailed = 1; |
| 19365 | + return; |
| 19366 | + } |
| 19367 | + } |
| 19368 | + bufpt = &zOut[nOut-1]; |
| 19413 | 19369 | if( xtype==etORDINAL ){ |
| 19414 | 19370 | static const char zOrd[] = "thstndrd"; |
| 19415 | 19371 | int x = (int)(longvalue % 10); |
| 19416 | 19372 | if( x>=4 || (longvalue/10)%10==1 ){ |
| 19417 | 19373 | x = 0; |
| 19418 | 19374 | } |
| 19419 | | - buf[etBUFSIZE-3] = zOrd[x*2]; |
| 19420 | | - buf[etBUFSIZE-2] = zOrd[x*2+1]; |
| 19421 | | - bufpt -= 2; |
| 19375 | + *(--bufpt) = zOrd[x*2+1]; |
| 19376 | + *(--bufpt) = zOrd[x*2]; |
| 19422 | 19377 | } |
| 19423 | 19378 | { |
| 19424 | 19379 | register const char *cset; /* Use registers for speed */ |
| 19425 | 19380 | register int base; |
| 19426 | 19381 | cset = &aDigits[infop->charset]; |
| | @@ -19428,11 +19383,11 @@ |
| 19428 | 19383 | do{ /* Convert to ascii */ |
| 19429 | 19384 | *(--bufpt) = cset[longvalue%base]; |
| 19430 | 19385 | longvalue = longvalue/base; |
| 19431 | 19386 | }while( longvalue>0 ); |
| 19432 | 19387 | } |
| 19433 | | - length = (int)(&buf[etBUFSIZE-1]-bufpt); |
| 19388 | + length = (int)(&zOut[nOut-1]-bufpt); |
| 19434 | 19389 | for(idx=precision-length; idx>0; idx--){ |
| 19435 | 19390 | *(--bufpt) = '0'; /* Zero pad */ |
| 19436 | 19391 | } |
| 19437 | 19392 | if( prefix ) *(--bufpt) = prefix; /* Add sign */ |
| 19438 | 19393 | if( flag_alternateform && infop->prefix ){ /* Add "0" or "0x" */ |
| | @@ -19439,21 +19394,20 @@ |
| 19439 | 19394 | const char *pre; |
| 19440 | 19395 | char x; |
| 19441 | 19396 | pre = &aPrefix[infop->prefix]; |
| 19442 | 19397 | for(; (x=(*pre))!=0; pre++) *(--bufpt) = x; |
| 19443 | 19398 | } |
| 19444 | | - length = (int)(&buf[etBUFSIZE-1]-bufpt); |
| 19399 | + length = (int)(&zOut[nOut-1]-bufpt); |
| 19445 | 19400 | break; |
| 19446 | 19401 | case etFLOAT: |
| 19447 | 19402 | case etEXP: |
| 19448 | 19403 | case etGENERIC: |
| 19449 | 19404 | realvalue = va_arg(ap,double); |
| 19450 | 19405 | #ifdef SQLITE_OMIT_FLOATING_POINT |
| 19451 | 19406 | length = 0; |
| 19452 | 19407 | #else |
| 19453 | 19408 | if( precision<0 ) precision = 6; /* Set default precision */ |
| 19454 | | - if( precision>etBUFSIZE/2-10 ) precision = etBUFSIZE/2-10; |
| 19455 | 19409 | if( realvalue<0.0 ){ |
| 19456 | 19410 | realvalue = -realvalue; |
| 19457 | 19411 | prefix = '-'; |
| 19458 | 19412 | }else{ |
| 19459 | 19413 | if( flag_plussign ) prefix = '+'; |
| | @@ -19497,11 +19451,10 @@ |
| 19497 | 19451 | bufpt = buf; |
| 19498 | 19452 | /* |
| 19499 | 19453 | ** If the field type is etGENERIC, then convert to either etEXP |
| 19500 | 19454 | ** or etFLOAT, as appropriate. |
| 19501 | 19455 | */ |
| 19502 | | - flag_exp = xtype==etEXP; |
| 19503 | 19456 | if( xtype!=etFLOAT ){ |
| 19504 | 19457 | realvalue += rounder; |
| 19505 | 19458 | if( realvalue>=10.0 ){ realvalue *= 0.1; exp++; } |
| 19506 | 19459 | } |
| 19507 | 19460 | if( xtype==etGENERIC ){ |
| | @@ -19518,10 +19471,18 @@ |
| 19518 | 19471 | if( xtype==etEXP ){ |
| 19519 | 19472 | e2 = 0; |
| 19520 | 19473 | }else{ |
| 19521 | 19474 | e2 = exp; |
| 19522 | 19475 | } |
| 19476 | + if( e2+precision+width > etBUFSIZE - 15 ){ |
| 19477 | + bufpt = zExtra = sqlite3Malloc( e2+precision+width+15 ); |
| 19478 | + if( bufpt==0 ){ |
| 19479 | + pAccum->mallocFailed = 1; |
| 19480 | + return; |
| 19481 | + } |
| 19482 | + } |
| 19483 | + zOut = bufpt; |
| 19523 | 19484 | nsd = 0; |
| 19524 | 19485 | flag_dp = (precision>0 ?1:0) | flag_alternateform | flag_altform2; |
| 19525 | 19486 | /* The sign in front of the number */ |
| 19526 | 19487 | if( prefix ){ |
| 19527 | 19488 | *(bufpt++) = prefix; |
| | @@ -19549,21 +19510,21 @@ |
| 19549 | 19510 | *(bufpt++) = et_getdigit(&realvalue,&nsd); |
| 19550 | 19511 | } |
| 19551 | 19512 | /* Remove trailing zeros and the "." if no digits follow the "." */ |
| 19552 | 19513 | if( flag_rtz && flag_dp ){ |
| 19553 | 19514 | while( bufpt[-1]=='0' ) *(--bufpt) = 0; |
| 19554 | | - assert( bufpt>buf ); |
| 19515 | + assert( bufpt>zOut ); |
| 19555 | 19516 | if( bufpt[-1]=='.' ){ |
| 19556 | 19517 | if( flag_altform2 ){ |
| 19557 | 19518 | *(bufpt++) = '0'; |
| 19558 | 19519 | }else{ |
| 19559 | 19520 | *(--bufpt) = 0; |
| 19560 | 19521 | } |
| 19561 | 19522 | } |
| 19562 | 19523 | } |
| 19563 | 19524 | /* Add the "eNNN" suffix */ |
| 19564 | | - if( flag_exp || xtype==etEXP ){ |
| 19525 | + if( xtype==etEXP ){ |
| 19565 | 19526 | *(bufpt++) = aDigits[infop->charset]; |
| 19566 | 19527 | if( exp<0 ){ |
| 19567 | 19528 | *(bufpt++) = '-'; exp = -exp; |
| 19568 | 19529 | }else{ |
| 19569 | 19530 | *(bufpt++) = '+'; |
| | @@ -19578,12 +19539,12 @@ |
| 19578 | 19539 | *bufpt = 0; |
| 19579 | 19540 | |
| 19580 | 19541 | /* The converted number is in buf[] and zero terminated. Output it. |
| 19581 | 19542 | ** Note that the number is in the usual order, not reversed as with |
| 19582 | 19543 | ** integer conversions. */ |
| 19583 | | - length = (int)(bufpt-buf); |
| 19584 | | - bufpt = buf; |
| 19544 | + length = (int)(bufpt-zOut); |
| 19545 | + bufpt = zOut; |
| 19585 | 19546 | |
| 19586 | 19547 | /* Special case: Add leading zeros if the flag_zeropad flag is |
| 19587 | 19548 | ** set and we are not left justified */ |
| 19588 | 19549 | if( flag_zeropad && !flag_leftjustify && length < width){ |
| 19589 | 19550 | int i; |
| | @@ -19717,13 +19678,11 @@ |
| 19717 | 19678 | nspace = width-length; |
| 19718 | 19679 | if( nspace>0 ){ |
| 19719 | 19680 | appendSpace(pAccum, nspace); |
| 19720 | 19681 | } |
| 19721 | 19682 | } |
| 19722 | | - if( zExtra ){ |
| 19723 | | - sqlite3_free(zExtra); |
| 19724 | | - } |
| 19683 | + sqlite3_free(zExtra); |
| 19725 | 19684 | }/* End for loop over the format string */ |
| 19726 | 19685 | } /* End of function */ |
| 19727 | 19686 | |
| 19728 | 19687 | /* |
| 19729 | 19688 | ** Append N bytes of text from z to the StrAccum object. |
| | @@ -20011,11 +19970,10 @@ |
| 20011 | 19970 | } |
| 20012 | 19971 | #endif |
| 20013 | 19972 | |
| 20014 | 19973 | /************** End of printf.c **********************************************/ |
| 20015 | 19974 | /************** Begin file random.c ******************************************/ |
| 20016 | | -#line 1 "tsrc/random.c" |
| 20017 | 19975 | /* |
| 20018 | 19976 | ** 2001 September 15 |
| 20019 | 19977 | ** |
| 20020 | 19978 | ** The author disclaims copyright to this source code. In place of |
| 20021 | 19979 | ** a legal notice, here is a blessing: |
| | @@ -20159,11 +20117,10 @@ |
| 20159 | 20117 | } |
| 20160 | 20118 | #endif /* SQLITE_OMIT_BUILTIN_TEST */ |
| 20161 | 20119 | |
| 20162 | 20120 | /************** End of random.c **********************************************/ |
| 20163 | 20121 | /************** Begin file utf.c *********************************************/ |
| 20164 | | -#line 1 "tsrc/utf.c" |
| 20165 | 20122 | /* |
| 20166 | 20123 | ** 2004 April 13 |
| 20167 | 20124 | ** |
| 20168 | 20125 | ** The author disclaims copyright to this source code. In place of |
| 20169 | 20126 | ** a legal notice, here is a blessing: |
| | @@ -20721,11 +20678,10 @@ |
| 20721 | 20678 | #endif /* SQLITE_TEST */ |
| 20722 | 20679 | #endif /* SQLITE_OMIT_UTF16 */ |
| 20723 | 20680 | |
| 20724 | 20681 | /************** End of utf.c *************************************************/ |
| 20725 | 20682 | /************** Begin file util.c ********************************************/ |
| 20726 | | -#line 1 "tsrc/util.c" |
| 20727 | 20683 | /* |
| 20728 | 20684 | ** 2001 September 15 |
| 20729 | 20685 | ** |
| 20730 | 20686 | ** The author disclaims copyright to this source code. In place of |
| 20731 | 20687 | ** a legal notice, here is a blessing: |
| | @@ -21904,11 +21860,10 @@ |
| 21904 | 21860 | } |
| 21905 | 21861 | #endif |
| 21906 | 21862 | |
| 21907 | 21863 | /************** End of util.c ************************************************/ |
| 21908 | 21864 | /************** Begin file hash.c ********************************************/ |
| 21909 | | -#line 1 "tsrc/hash.c" |
| 21910 | 21865 | /* |
| 21911 | 21866 | ** 2001 September 22 |
| 21912 | 21867 | ** |
| 21913 | 21868 | ** The author disclaims copyright to this source code. In place of |
| 21914 | 21869 | ** a legal notice, here is a blessing: |
| | @@ -22184,11 +22139,10 @@ |
| 22184 | 22139 | return 0; |
| 22185 | 22140 | } |
| 22186 | 22141 | |
| 22187 | 22142 | /************** End of hash.c ************************************************/ |
| 22188 | 22143 | /************** Begin file opcodes.c *****************************************/ |
| 22189 | | -#line 1 "tsrc/opcodes.c" |
| 22190 | 22144 | /* Automatically generated. Do not edit */ |
| 22191 | 22145 | /* See the mkopcodec.awk script for details. */ |
| 22192 | 22146 | #if !defined(SQLITE_OMIT_EXPLAIN) || !defined(NDEBUG) || defined(VDBE_PROFILE) || defined(SQLITE_DEBUG) |
| 22193 | 22147 | SQLITE_PRIVATE const char *sqlite3OpcodeName(int i){ |
| 22194 | 22148 | static const char *const azName[] = { "?", |
| | @@ -22347,11 +22301,10 @@ |
| 22347 | 22301 | } |
| 22348 | 22302 | #endif |
| 22349 | 22303 | |
| 22350 | 22304 | /************** End of opcodes.c *********************************************/ |
| 22351 | 22305 | /************** Begin file os_os2.c ******************************************/ |
| 22352 | | -#line 1 "tsrc/os_os2.c" |
| 22353 | 22306 | /* |
| 22354 | 22307 | ** 2006 Feb 14 |
| 22355 | 22308 | ** |
| 22356 | 22309 | ** The author disclaims copyright to this source code. In place of |
| 22357 | 22310 | ** a legal notice, here is a blessing: |
| | @@ -22404,11 +22357,10 @@ |
| 22404 | 22357 | /* |
| 22405 | 22358 | ** Include code that is common to all os_*.c files |
| 22406 | 22359 | */ |
| 22407 | 22360 | /************** Include os_common.h in the middle of os_os2.c ****************/ |
| 22408 | 22361 | /************** Begin file os_common.h ***************************************/ |
| 22409 | | -#line 1 "tsrc/os_common.h" |
| 22410 | 22362 | /* |
| 22411 | 22363 | ** 2004 May 22 |
| 22412 | 22364 | ** |
| 22413 | 22365 | ** The author disclaims copyright to this source code. In place of |
| 22414 | 22366 | ** a legal notice, here is a blessing: |
| | @@ -22458,11 +22410,10 @@ |
| 22458 | 22410 | ** hwtime.h contains inline assembler code for implementing |
| 22459 | 22411 | ** high-performance timing routines. |
| 22460 | 22412 | */ |
| 22461 | 22413 | /************** Include hwtime.h in the middle of os_common.h ****************/ |
| 22462 | 22414 | /************** Begin file hwtime.h ******************************************/ |
| 22463 | | -#line 1 "tsrc/hwtime.h" |
| 22464 | 22415 | /* |
| 22465 | 22416 | ** 2008 May 27 |
| 22466 | 22417 | ** |
| 22467 | 22418 | ** The author disclaims copyright to this source code. In place of |
| 22468 | 22419 | ** a legal notice, here is a blessing: |
| | @@ -22547,11 +22498,10 @@ |
| 22547 | 22498 | |
| 22548 | 22499 | #endif /* !defined(_HWTIME_H_) */ |
| 22549 | 22500 | |
| 22550 | 22501 | /************** End of hwtime.h **********************************************/ |
| 22551 | 22502 | /************** Continuing where we left off in os_common.h ******************/ |
| 22552 | | -#line 53 "tsrc/os_common.h" |
| 22553 | 22503 | |
| 22554 | 22504 | static sqlite_uint64 g_start; |
| 22555 | 22505 | static sqlite_uint64 g_elapsed; |
| 22556 | 22506 | #define TIMER_START g_start=sqlite3Hwtime() |
| 22557 | 22507 | #define TIMER_END g_elapsed=sqlite3Hwtime()-g_start |
| | @@ -22614,11 +22564,10 @@ |
| 22614 | 22564 | |
| 22615 | 22565 | #endif /* !defined(_OS_COMMON_H_) */ |
| 22616 | 22566 | |
| 22617 | 22567 | /************** End of os_common.h *******************************************/ |
| 22618 | 22568 | /************** Continuing where we left off in os_os2.c *********************/ |
| 22619 | | -#line 57 "tsrc/os_os2.c" |
| 22620 | 22569 | |
| 22621 | 22570 | /* Forward references */ |
| 22622 | 22571 | typedef struct os2File os2File; /* The file structure */ |
| 22623 | 22572 | typedef struct os2ShmNode os2ShmNode; /* A shared descritive memory node */ |
| 22624 | 22573 | typedef struct os2ShmLink os2ShmLink; /* A connection to shared-memory */ |
| | @@ -24486,11 +24435,10 @@ |
| 24486 | 24435 | |
| 24487 | 24436 | #endif /* SQLITE_OS_OS2 */ |
| 24488 | 24437 | |
| 24489 | 24438 | /************** End of os_os2.c **********************************************/ |
| 24490 | 24439 | /************** Begin file os_unix.c *****************************************/ |
| 24491 | | -#line 1 "tsrc/os_unix.c" |
| 24492 | 24440 | /* |
| 24493 | 24441 | ** 2004 May 22 |
| 24494 | 24442 | ** |
| 24495 | 24443 | ** The author disclaims copyright to this source code. In place of |
| 24496 | 24444 | ** a legal notice, here is a blessing: |
| | @@ -24751,11 +24699,10 @@ |
| 24751 | 24699 | /* |
| 24752 | 24700 | ** Include code that is common to all os_*.c files |
| 24753 | 24701 | */ |
| 24754 | 24702 | /************** Include os_common.h in the middle of os_unix.c ***************/ |
| 24755 | 24703 | /************** Begin file os_common.h ***************************************/ |
| 24756 | | -#line 1 "tsrc/os_common.h" |
| 24757 | 24704 | /* |
| 24758 | 24705 | ** 2004 May 22 |
| 24759 | 24706 | ** |
| 24760 | 24707 | ** The author disclaims copyright to this source code. In place of |
| 24761 | 24708 | ** a legal notice, here is a blessing: |
| | @@ -24805,11 +24752,10 @@ |
| 24805 | 24752 | ** hwtime.h contains inline assembler code for implementing |
| 24806 | 24753 | ** high-performance timing routines. |
| 24807 | 24754 | */ |
| 24808 | 24755 | /************** Include hwtime.h in the middle of os_common.h ****************/ |
| 24809 | 24756 | /************** Begin file hwtime.h ******************************************/ |
| 24810 | | -#line 1 "tsrc/hwtime.h" |
| 24811 | 24757 | /* |
| 24812 | 24758 | ** 2008 May 27 |
| 24813 | 24759 | ** |
| 24814 | 24760 | ** The author disclaims copyright to this source code. In place of |
| 24815 | 24761 | ** a legal notice, here is a blessing: |
| | @@ -24894,11 +24840,10 @@ |
| 24894 | 24840 | |
| 24895 | 24841 | #endif /* !defined(_HWTIME_H_) */ |
| 24896 | 24842 | |
| 24897 | 24843 | /************** End of hwtime.h **********************************************/ |
| 24898 | 24844 | /************** Continuing where we left off in os_common.h ******************/ |
| 24899 | | -#line 53 "tsrc/os_common.h" |
| 24900 | 24845 | |
| 24901 | 24846 | static sqlite_uint64 g_start; |
| 24902 | 24847 | static sqlite_uint64 g_elapsed; |
| 24903 | 24848 | #define TIMER_START g_start=sqlite3Hwtime() |
| 24904 | 24849 | #define TIMER_END g_elapsed=sqlite3Hwtime()-g_start |
| | @@ -24961,11 +24906,10 @@ |
| 24961 | 24906 | |
| 24962 | 24907 | #endif /* !defined(_OS_COMMON_H_) */ |
| 24963 | 24908 | |
| 24964 | 24909 | /************** End of os_common.h *******************************************/ |
| 24965 | 24910 | /************** Continuing where we left off in os_unix.c ********************/ |
| 24966 | | -#line 265 "tsrc/os_unix.c" |
| 24967 | 24911 | |
| 24968 | 24912 | /* |
| 24969 | 24913 | ** Define various macros that are missing from some systems. |
| 24970 | 24914 | */ |
| 24971 | 24915 | #ifndef O_LARGEFILE |
| | @@ -28554,20 +28498,19 @@ |
| 28554 | 28498 | rc = SQLITE_NOMEM; |
| 28555 | 28499 | goto shm_open_err; |
| 28556 | 28500 | } |
| 28557 | 28501 | |
| 28558 | 28502 | if( pInode->bProcessLock==0 ){ |
| 28559 | | - pShmNode->h = robust_open(zShmFilename, O_RDWR|O_CREAT, |
| 28560 | | - (sStat.st_mode & 0777)); |
| 28503 | + const char *zRO; |
| 28504 | + int openFlags = O_RDWR | O_CREAT; |
| 28505 | + zRO = sqlite3_uri_parameter(pDbFd->zPath, "readonly_shm"); |
| 28506 | + if( zRO && sqlite3GetBoolean(zRO) ){ |
| 28507 | + openFlags = O_RDONLY; |
| 28508 | + pShmNode->isReadonly = 1; |
| 28509 | + } |
| 28510 | + pShmNode->h = robust_open(zShmFilename, openFlags, (sStat.st_mode&0777)); |
| 28561 | 28511 | if( pShmNode->h<0 ){ |
| 28562 | | - const char *zRO; |
| 28563 | | - zRO = sqlite3_uri_parameter(pDbFd->zPath, "readonly_shm"); |
| 28564 | | - if( zRO && sqlite3GetBoolean(zRO) ){ |
| 28565 | | - pShmNode->h = robust_open(zShmFilename, O_RDONLY, |
| 28566 | | - (sStat.st_mode & 0777)); |
| 28567 | | - pShmNode->isReadonly = 1; |
| 28568 | | - } |
| 28569 | 28512 | if( pShmNode->h<0 ){ |
| 28570 | 28513 | rc = unixLogError(SQLITE_CANTOPEN_BKPT, "open", zShmFilename); |
| 28571 | 28514 | goto shm_open_err; |
| 28572 | 28515 | } |
| 28573 | 28516 | } |
| | @@ -31479,11 +31422,10 @@ |
| 31479 | 31422 | |
| 31480 | 31423 | #endif /* SQLITE_OS_UNIX */ |
| 31481 | 31424 | |
| 31482 | 31425 | /************** End of os_unix.c *********************************************/ |
| 31483 | 31426 | /************** Begin file os_win.c ******************************************/ |
| 31484 | | -#line 1 "tsrc/os_win.c" |
| 31485 | 31427 | /* |
| 31486 | 31428 | ** 2004 May 22 |
| 31487 | 31429 | ** |
| 31488 | 31430 | ** The author disclaims copyright to this source code. In place of |
| 31489 | 31431 | ** a legal notice, here is a blessing: |
| | @@ -31541,11 +31483,10 @@ |
| 31541 | 31483 | /* |
| 31542 | 31484 | ** Include code that is common to all os_*.c files |
| 31543 | 31485 | */ |
| 31544 | 31486 | /************** Include os_common.h in the middle of os_win.c ****************/ |
| 31545 | 31487 | /************** Begin file os_common.h ***************************************/ |
| 31546 | | -#line 1 "tsrc/os_common.h" |
| 31547 | 31488 | /* |
| 31548 | 31489 | ** 2004 May 22 |
| 31549 | 31490 | ** |
| 31550 | 31491 | ** The author disclaims copyright to this source code. In place of |
| 31551 | 31492 | ** a legal notice, here is a blessing: |
| | @@ -31595,11 +31536,10 @@ |
| 31595 | 31536 | ** hwtime.h contains inline assembler code for implementing |
| 31596 | 31537 | ** high-performance timing routines. |
| 31597 | 31538 | */ |
| 31598 | 31539 | /************** Include hwtime.h in the middle of os_common.h ****************/ |
| 31599 | 31540 | /************** Begin file hwtime.h ******************************************/ |
| 31600 | | -#line 1 "tsrc/hwtime.h" |
| 31601 | 31541 | /* |
| 31602 | 31542 | ** 2008 May 27 |
| 31603 | 31543 | ** |
| 31604 | 31544 | ** The author disclaims copyright to this source code. In place of |
| 31605 | 31545 | ** a legal notice, here is a blessing: |
| | @@ -31684,11 +31624,10 @@ |
| 31684 | 31624 | |
| 31685 | 31625 | #endif /* !defined(_HWTIME_H_) */ |
| 31686 | 31626 | |
| 31687 | 31627 | /************** End of hwtime.h **********************************************/ |
| 31688 | 31628 | /************** Continuing where we left off in os_common.h ******************/ |
| 31689 | | -#line 53 "tsrc/os_common.h" |
| 31690 | 31629 | |
| 31691 | 31630 | static sqlite_uint64 g_start; |
| 31692 | 31631 | static sqlite_uint64 g_elapsed; |
| 31693 | 31632 | #define TIMER_START g_start=sqlite3Hwtime() |
| 31694 | 31633 | #define TIMER_END g_elapsed=sqlite3Hwtime()-g_start |
| | @@ -31751,11 +31690,10 @@ |
| 31751 | 31690 | |
| 31752 | 31691 | #endif /* !defined(_OS_COMMON_H_) */ |
| 31753 | 31692 | |
| 31754 | 31693 | /************** End of os_common.h *******************************************/ |
| 31755 | 31694 | /************** Continuing where we left off in os_win.c *********************/ |
| 31756 | | -#line 62 "tsrc/os_win.c" |
| 31757 | 31695 | |
| 31758 | 31696 | /* |
| 31759 | 31697 | ** Some microsoft compilers lack this definition. |
| 31760 | 31698 | */ |
| 31761 | 31699 | #ifndef INVALID_FILE_ATTRIBUTES |
| | @@ -34897,11 +34835,10 @@ |
| 34897 | 34835 | |
| 34898 | 34836 | #endif /* SQLITE_OS_WIN */ |
| 34899 | 34837 | |
| 34900 | 34838 | /************** End of os_win.c **********************************************/ |
| 34901 | 34839 | /************** Begin file bitvec.c ******************************************/ |
| 34902 | | -#line 1 "tsrc/bitvec.c" |
| 34903 | 34840 | /* |
| 34904 | 34841 | ** 2008 February 16 |
| 34905 | 34842 | ** |
| 34906 | 34843 | ** The author disclaims copyright to this source code. In place of |
| 34907 | 34844 | ** a legal notice, here is a blessing: |
| | @@ -35308,11 +35245,10 @@ |
| 35308 | 35245 | } |
| 35309 | 35246 | #endif /* SQLITE_OMIT_BUILTIN_TEST */ |
| 35310 | 35247 | |
| 35311 | 35248 | /************** End of bitvec.c **********************************************/ |
| 35312 | 35249 | /************** Begin file pcache.c ******************************************/ |
| 35313 | | -#line 1 "tsrc/pcache.c" |
| 35314 | 35250 | /* |
| 35315 | 35251 | ** 2008 August 05 |
| 35316 | 35252 | ** |
| 35317 | 35253 | ** The author disclaims copyright to this source code. In place of |
| 35318 | 35254 | ** a legal notice, here is a blessing: |
| | @@ -35905,11 +35841,10 @@ |
| 35905 | 35841 | } |
| 35906 | 35842 | #endif |
| 35907 | 35843 | |
| 35908 | 35844 | /************** End of pcache.c **********************************************/ |
| 35909 | 35845 | /************** Begin file pcache1.c *****************************************/ |
| 35910 | | -#line 1 "tsrc/pcache1.c" |
| 35911 | 35846 | /* |
| 35912 | 35847 | ** 2008 November 05 |
| 35913 | 35848 | ** |
| 35914 | 35849 | ** The author disclaims copyright to this source code. In place of |
| 35915 | 35850 | ** a legal notice, here is a blessing: |
| | @@ -36880,11 +36815,10 @@ |
| 36880 | 36815 | } |
| 36881 | 36816 | #endif |
| 36882 | 36817 | |
| 36883 | 36818 | /************** End of pcache1.c *********************************************/ |
| 36884 | 36819 | /************** Begin file rowset.c ******************************************/ |
| 36885 | | -#line 1 "tsrc/rowset.c" |
| 36886 | 36820 | /* |
| 36887 | 36821 | ** 2008 December 3 |
| 36888 | 36822 | ** |
| 36889 | 36823 | ** The author disclaims copyright to this source code. In place of |
| 36890 | 36824 | ** a legal notice, here is a blessing: |
| | @@ -37305,11 +37239,10 @@ |
| 37305 | 37239 | return 0; |
| 37306 | 37240 | } |
| 37307 | 37241 | |
| 37308 | 37242 | /************** End of rowset.c **********************************************/ |
| 37309 | 37243 | /************** Begin file pager.c *******************************************/ |
| 37310 | | -#line 1 "tsrc/pager.c" |
| 37311 | 37244 | /* |
| 37312 | 37245 | ** 2001 September 15 |
| 37313 | 37246 | ** |
| 37314 | 37247 | ** The author disclaims copyright to this source code. In place of |
| 37315 | 37248 | ** a legal notice, here is a blessing: |
| | @@ -37329,11 +37262,10 @@ |
| 37329 | 37262 | ** another is writing. |
| 37330 | 37263 | */ |
| 37331 | 37264 | #ifndef SQLITE_OMIT_DISKIO |
| 37332 | 37265 | /************** Include wal.h in the middle of pager.c ***********************/ |
| 37333 | 37266 | /************** Begin file wal.h *********************************************/ |
| 37334 | | -#line 1 "tsrc/wal.h" |
| 37335 | 37267 | /* |
| 37336 | 37268 | ** 2010 February 1 |
| 37337 | 37269 | ** |
| 37338 | 37270 | ** The author disclaims copyright to this source code. In place of |
| 37339 | 37271 | ** a legal notice, here is a blessing: |
| | @@ -37454,11 +37386,10 @@ |
| 37454 | 37386 | #endif /* ifndef SQLITE_OMIT_WAL */ |
| 37455 | 37387 | #endif /* _WAL_H_ */ |
| 37456 | 37388 | |
| 37457 | 37389 | /************** End of wal.h *************************************************/ |
| 37458 | 37390 | /************** Continuing where we left off in pager.c **********************/ |
| 37459 | | -#line 24 "tsrc/pager.c" |
| 37460 | 37391 | |
| 37461 | 37392 | |
| 37462 | 37393 | /******************* NOTES ON THE DESIGN OF THE PAGER ************************ |
| 37463 | 37394 | ** |
| 37464 | 37395 | ** This comment block describes invariants that hold when using a rollback |
| | @@ -44291,11 +44222,10 @@ |
| 44291 | 44222 | |
| 44292 | 44223 | #endif /* SQLITE_OMIT_DISKIO */ |
| 44293 | 44224 | |
| 44294 | 44225 | /************** End of pager.c ***********************************************/ |
| 44295 | 44226 | /************** Begin file wal.c *********************************************/ |
| 44296 | | -#line 1 "tsrc/wal.c" |
| 44297 | 44227 | /* |
| 44298 | 44228 | ** 2010 February 1 |
| 44299 | 44229 | ** |
| 44300 | 44230 | ** The author disclaims copyright to this source code. In place of |
| 44301 | 44231 | ** a legal notice, here is a blessing: |
| | @@ -47246,11 +47176,10 @@ |
| 47246 | 47176 | |
| 47247 | 47177 | #endif /* #ifndef SQLITE_OMIT_WAL */ |
| 47248 | 47178 | |
| 47249 | 47179 | /************** End of wal.c *************************************************/ |
| 47250 | 47180 | /************** Begin file btmutex.c *****************************************/ |
| 47251 | | -#line 1 "tsrc/btmutex.c" |
| 47252 | 47181 | /* |
| 47253 | 47182 | ** 2007 August 27 |
| 47254 | 47183 | ** |
| 47255 | 47184 | ** The author disclaims copyright to this source code. In place of |
| 47256 | 47185 | ** a legal notice, here is a blessing: |
| | @@ -47266,11 +47195,10 @@ |
| 47266 | 47195 | ** big and we want to break it down some. This packaged seemed like |
| 47267 | 47196 | ** a good breakout. |
| 47268 | 47197 | */ |
| 47269 | 47198 | /************** Include btreeInt.h in the middle of btmutex.c ****************/ |
| 47270 | 47199 | /************** Begin file btreeInt.h ****************************************/ |
| 47271 | | -#line 1 "tsrc/btreeInt.h" |
| 47272 | 47200 | /* |
| 47273 | 47201 | ** 2004 April 6 |
| 47274 | 47202 | ** |
| 47275 | 47203 | ** The author disclaims copyright to this source code. In place of |
| 47276 | 47204 | ** a legal notice, here is a blessing: |
| | @@ -47912,11 +47840,10 @@ |
| 47912 | 47840 | #define get4byte sqlite3Get4byte |
| 47913 | 47841 | #define put4byte sqlite3Put4byte |
| 47914 | 47842 | |
| 47915 | 47843 | /************** End of btreeInt.h ********************************************/ |
| 47916 | 47844 | /************** Continuing where we left off in btmutex.c ********************/ |
| 47917 | | -#line 19 "tsrc/btmutex.c" |
| 47918 | 47845 | #ifndef SQLITE_OMIT_SHARED_CACHE |
| 47919 | 47846 | #if SQLITE_THREADSAFE |
| 47920 | 47847 | |
| 47921 | 47848 | /* |
| 47922 | 47849 | ** Obtain the BtShared mutex associated with B-Tree handle p. Also, |
| | @@ -48185,11 +48112,10 @@ |
| 48185 | 48112 | #endif /* if SQLITE_THREADSAFE */ |
| 48186 | 48113 | #endif /* ifndef SQLITE_OMIT_SHARED_CACHE */ |
| 48187 | 48114 | |
| 48188 | 48115 | /************** End of btmutex.c *********************************************/ |
| 48189 | 48116 | /************** Begin file btree.c *******************************************/ |
| 48190 | | -#line 1 "tsrc/btree.c" |
| 48191 | 48117 | /* |
| 48192 | 48118 | ** 2004 April 6 |
| 48193 | 48119 | ** |
| 48194 | 48120 | ** The author disclaims copyright to this source code. In place of |
| 48195 | 48121 | ** a legal notice, here is a blessing: |
| | @@ -52125,25 +52051,59 @@ |
| 52125 | 52051 | offset -= ovflSize; |
| 52126 | 52052 | }else{ |
| 52127 | 52053 | /* Need to read this page properly. It contains some of the |
| 52128 | 52054 | ** range of data that is being read (eOp==0) or written (eOp!=0). |
| 52129 | 52055 | */ |
| 52130 | | - DbPage *pDbPage; |
| 52056 | +#ifdef SQLITE_DIRECT_OVERFLOW_READ |
| 52057 | + sqlite3_file *fd; |
| 52058 | +#endif |
| 52131 | 52059 | int a = amt; |
| 52132 | | - rc = sqlite3PagerGet(pBt->pPager, nextPage, &pDbPage); |
| 52133 | | - if( rc==SQLITE_OK ){ |
| 52134 | | - aPayload = sqlite3PagerGetData(pDbPage); |
| 52135 | | - nextPage = get4byte(aPayload); |
| 52136 | | - if( a + offset > ovflSize ){ |
| 52137 | | - a = ovflSize - offset; |
| 52138 | | - } |
| 52139 | | - rc = copyPayload(&aPayload[offset+4], pBuf, a, eOp, pDbPage); |
| 52140 | | - sqlite3PagerUnref(pDbPage); |
| 52141 | | - offset = 0; |
| 52142 | | - amt -= a; |
| 52143 | | - pBuf += a; |
| 52144 | | - } |
| 52060 | + if( a + offset > ovflSize ){ |
| 52061 | + a = ovflSize - offset; |
| 52062 | + } |
| 52063 | + |
| 52064 | +#ifdef SQLITE_DIRECT_OVERFLOW_READ |
| 52065 | + /* If all the following are true: |
| 52066 | + ** |
| 52067 | + ** 1) this is a read operation, and |
| 52068 | + ** 2) data is required from the start of this overflow page, and |
| 52069 | + ** 3) the database is file-backed, and |
| 52070 | + ** 4) there is no open write-transaction, and |
| 52071 | + ** 5) the database is not a WAL database, |
| 52072 | + ** |
| 52073 | + ** then data can be read directly from the database file into the |
| 52074 | + ** output buffer, bypassing the page-cache altogether. This speeds |
| 52075 | + ** up loading large records that span many overflow pages. |
| 52076 | + */ |
| 52077 | + if( eOp==0 /* (1) */ |
| 52078 | + && offset==0 /* (2) */ |
| 52079 | + && pBt->inTransaction==TRANS_READ /* (4) */ |
| 52080 | + && (fd = sqlite3PagerFile(pBt->pPager))->pMethods /* (3) */ |
| 52081 | + && pBt->pPage1->aData[19]==0x01 /* (5) */ |
| 52082 | + ){ |
| 52083 | + u8 aSave[4]; |
| 52084 | + u8 *aWrite = &pBuf[-4]; |
| 52085 | + memcpy(aSave, aWrite, 4); |
| 52086 | + rc = sqlite3OsRead(fd, aWrite, a+4, pBt->pageSize * (nextPage-1)); |
| 52087 | + nextPage = get4byte(aWrite); |
| 52088 | + memcpy(aWrite, aSave, 4); |
| 52089 | + }else |
| 52090 | +#endif |
| 52091 | + |
| 52092 | + { |
| 52093 | + DbPage *pDbPage; |
| 52094 | + rc = sqlite3PagerGet(pBt->pPager, nextPage, &pDbPage); |
| 52095 | + if( rc==SQLITE_OK ){ |
| 52096 | + aPayload = sqlite3PagerGetData(pDbPage); |
| 52097 | + nextPage = get4byte(aPayload); |
| 52098 | + rc = copyPayload(&aPayload[offset+4], pBuf, a, eOp, pDbPage); |
| 52099 | + sqlite3PagerUnref(pDbPage); |
| 52100 | + offset = 0; |
| 52101 | + } |
| 52102 | + } |
| 52103 | + amt -= a; |
| 52104 | + pBuf += a; |
| 52145 | 52105 | } |
| 52146 | 52106 | } |
| 52147 | 52107 | } |
| 52148 | 52108 | |
| 52149 | 52109 | if( rc==SQLITE_OK && amt>0 ){ |
| | @@ -56373,11 +56333,10 @@ |
| 56373 | 56333 | return rc; |
| 56374 | 56334 | } |
| 56375 | 56335 | |
| 56376 | 56336 | /************** End of btree.c ***********************************************/ |
| 56377 | 56337 | /************** Begin file backup.c ******************************************/ |
| 56378 | | -#line 1 "tsrc/backup.c" |
| 56379 | 56338 | /* |
| 56380 | 56339 | ** 2009 January 28 |
| 56381 | 56340 | ** |
| 56382 | 56341 | ** The author disclaims copyright to this source code. In place of |
| 56383 | 56342 | ** a legal notice, here is a blessing: |
| | @@ -57089,11 +57048,10 @@ |
| 57089 | 57048 | } |
| 57090 | 57049 | #endif /* SQLITE_OMIT_VACUUM */ |
| 57091 | 57050 | |
| 57092 | 57051 | /************** End of backup.c **********************************************/ |
| 57093 | 57052 | /************** Begin file vdbemem.c *****************************************/ |
| 57094 | | -#line 1 "tsrc/vdbemem.c" |
| 57095 | 57053 | /* |
| 57096 | 57054 | ** 2004 May 26 |
| 57097 | 57055 | ** |
| 57098 | 57056 | ** The author disclaims copyright to this source code. In place of |
| 57099 | 57057 | ** a legal notice, here is a blessing: |
| | @@ -58244,11 +58202,10 @@ |
| 58244 | 58202 | return 0; |
| 58245 | 58203 | } |
| 58246 | 58204 | |
| 58247 | 58205 | /************** End of vdbemem.c *********************************************/ |
| 58248 | 58206 | /************** Begin file vdbeaux.c *****************************************/ |
| 58249 | | -#line 1 "tsrc/vdbeaux.c" |
| 58250 | 58207 | /* |
| 58251 | 58208 | ** 2003 September 6 |
| 58252 | 58209 | ** |
| 58253 | 58210 | ** The author disclaims copyright to this source code. In place of |
| 58254 | 58211 | ** a legal notice, here is a blessing: |
| | @@ -61486,11 +61443,10 @@ |
| 61486 | 61443 | } |
| 61487 | 61444 | } |
| 61488 | 61445 | |
| 61489 | 61446 | /************** End of vdbeaux.c *********************************************/ |
| 61490 | 61447 | /************** Begin file vdbeapi.c *****************************************/ |
| 61491 | | -#line 1 "tsrc/vdbeapi.c" |
| 61492 | 61448 | /* |
| 61493 | 61449 | ** 2004 May 26 |
| 61494 | 61450 | ** |
| 61495 | 61451 | ** The author disclaims copyright to this source code. In place of |
| 61496 | 61452 | ** a legal notice, here is a blessing: |
| | @@ -62794,11 +62750,10 @@ |
| 62794 | 62750 | return v; |
| 62795 | 62751 | } |
| 62796 | 62752 | |
| 62797 | 62753 | /************** End of vdbeapi.c *********************************************/ |
| 62798 | 62754 | /************** Begin file vdbetrace.c ***************************************/ |
| 62799 | | -#line 1 "tsrc/vdbetrace.c" |
| 62800 | 62755 | /* |
| 62801 | 62756 | ** 2009 November 25 |
| 62802 | 62757 | ** |
| 62803 | 62758 | ** The author disclaims copyright to this source code. In place of |
| 62804 | 62759 | ** a legal notice, here is a blessing: |
| | @@ -62950,11 +62905,10 @@ |
| 62950 | 62905 | |
| 62951 | 62906 | #endif /* #ifndef SQLITE_OMIT_TRACE */ |
| 62952 | 62907 | |
| 62953 | 62908 | /************** End of vdbetrace.c *******************************************/ |
| 62954 | 62909 | /************** Begin file vdbe.c ********************************************/ |
| 62955 | | -#line 1 "tsrc/vdbe.c" |
| 62956 | 62910 | /* |
| 62957 | 62911 | ** 2001 September 15 |
| 62958 | 62912 | ** |
| 62959 | 62913 | ** The author disclaims copyright to this source code. In place of |
| 62960 | 62914 | ** a legal notice, here is a blessing: |
| | @@ -63420,11 +63374,10 @@ |
| 63420 | 63374 | ** hwtime.h contains inline assembler code for implementing |
| 63421 | 63375 | ** high-performance timing routines. |
| 63422 | 63376 | */ |
| 63423 | 63377 | /************** Include hwtime.h in the middle of vdbe.c *********************/ |
| 63424 | 63378 | /************** Begin file hwtime.h ******************************************/ |
| 63425 | | -#line 1 "tsrc/hwtime.h" |
| 63426 | 63379 | /* |
| 63427 | 63380 | ** 2008 May 27 |
| 63428 | 63381 | ** |
| 63429 | 63382 | ** The author disclaims copyright to this source code. In place of |
| 63430 | 63383 | ** a legal notice, here is a blessing: |
| | @@ -63509,11 +63462,10 @@ |
| 63509 | 63462 | |
| 63510 | 63463 | #endif /* !defined(_HWTIME_H_) */ |
| 63511 | 63464 | |
| 63512 | 63465 | /************** End of hwtime.h **********************************************/ |
| 63513 | 63466 | /************** Continuing where we left off in vdbe.c ***********************/ |
| 63514 | | -#line 471 "tsrc/vdbe.c" |
| 63515 | 63467 | |
| 63516 | 63468 | #endif |
| 63517 | 63469 | |
| 63518 | 63470 | /* |
| 63519 | 63471 | ** The CHECK_FOR_INTERRUPT macro defined here looks to see if the |
| | @@ -69754,11 +69706,10 @@ |
| 69754 | 69706 | goto vdbe_error_halt; |
| 69755 | 69707 | } |
| 69756 | 69708 | |
| 69757 | 69709 | /************** End of vdbe.c ************************************************/ |
| 69758 | 69710 | /************** Begin file vdbeblob.c ****************************************/ |
| 69759 | | -#line 1 "tsrc/vdbeblob.c" |
| 69760 | 69711 | /* |
| 69761 | 69712 | ** 2007 May 1 |
| 69762 | 69713 | ** |
| 69763 | 69714 | ** The author disclaims copyright to this source code. In place of |
| 69764 | 69715 | ** a legal notice, here is a blessing: |
| | @@ -70225,11 +70176,10 @@ |
| 70225 | 70176 | |
| 70226 | 70177 | #endif /* #ifndef SQLITE_OMIT_INCRBLOB */ |
| 70227 | 70178 | |
| 70228 | 70179 | /************** End of vdbeblob.c ********************************************/ |
| 70229 | 70180 | /************** Begin file vdbesort.c ****************************************/ |
| 70230 | | -#line 1 "tsrc/vdbesort.c" |
| 70231 | 70181 | /* |
| 70232 | 70182 | ** 2011 July 9 |
| 70233 | 70183 | ** |
| 70234 | 70184 | ** The author disclaims copyright to this source code. In place of |
| 70235 | 70185 | ** a legal notice, here is a blessing: |
| | @@ -71109,11 +71059,10 @@ |
| 71109 | 71059 | |
| 71110 | 71060 | #endif /* #ifndef SQLITE_OMIT_MERGE_SORT */ |
| 71111 | 71061 | |
| 71112 | 71062 | /************** End of vdbesort.c ********************************************/ |
| 71113 | 71063 | /************** Begin file journal.c *****************************************/ |
| 71114 | | -#line 1 "tsrc/journal.c" |
| 71115 | 71064 | /* |
| 71116 | 71065 | ** 2007 August 22 |
| 71117 | 71066 | ** |
| 71118 | 71067 | ** The author disclaims copyright to this source code. In place of |
| 71119 | 71068 | ** a legal notice, here is a blessing: |
| | @@ -71350,11 +71299,10 @@ |
| 71350 | 71299 | } |
| 71351 | 71300 | #endif |
| 71352 | 71301 | |
| 71353 | 71302 | /************** End of journal.c *********************************************/ |
| 71354 | 71303 | /************** Begin file memjournal.c **************************************/ |
| 71355 | | -#line 1 "tsrc/memjournal.c" |
| 71356 | 71304 | /* |
| 71357 | 71305 | ** 2008 October 7 |
| 71358 | 71306 | ** |
| 71359 | 71307 | ** The author disclaims copyright to this source code. In place of |
| 71360 | 71308 | ** a legal notice, here is a blessing: |
| | @@ -71612,11 +71560,10 @@ |
| 71612 | 71560 | return sizeof(MemJournal); |
| 71613 | 71561 | } |
| 71614 | 71562 | |
| 71615 | 71563 | /************** End of memjournal.c ******************************************/ |
| 71616 | 71564 | /************** Begin file walker.c ******************************************/ |
| 71617 | | -#line 1 "tsrc/walker.c" |
| 71618 | 71565 | /* |
| 71619 | 71566 | ** 2008 August 16 |
| 71620 | 71567 | ** |
| 71621 | 71568 | ** The author disclaims copyright to this source code. In place of |
| 71622 | 71569 | ** a legal notice, here is a blessing: |
| | @@ -71751,11 +71698,10 @@ |
| 71751 | 71698 | return rc & WRC_Abort; |
| 71752 | 71699 | } |
| 71753 | 71700 | |
| 71754 | 71701 | /************** End of walker.c **********************************************/ |
| 71755 | 71702 | /************** Begin file resolve.c *****************************************/ |
| 71756 | | -#line 1 "tsrc/resolve.c" |
| 71757 | 71703 | /* |
| 71758 | 71704 | ** 2008 August 18 |
| 71759 | 71705 | ** |
| 71760 | 71706 | ** The author disclaims copyright to this source code. In place of |
| 71761 | 71707 | ** a legal notice, here is a blessing: |
| | @@ -72972,11 +72918,10 @@ |
| 72972 | 72918 | sqlite3WalkSelect(&w, p); |
| 72973 | 72919 | } |
| 72974 | 72920 | |
| 72975 | 72921 | /************** End of resolve.c *********************************************/ |
| 72976 | 72922 | /************** Begin file expr.c ********************************************/ |
| 72977 | | -#line 1 "tsrc/expr.c" |
| 72978 | 72923 | /* |
| 72979 | 72924 | ** 2001 September 15 |
| 72980 | 72925 | ** |
| 72981 | 72926 | ** The author disclaims copyright to this source code. In place of |
| 72982 | 72927 | ** a legal notice, here is a blessing: |
| | @@ -76730,11 +76675,10 @@ |
| 76730 | 76675 | } |
| 76731 | 76676 | } |
| 76732 | 76677 | |
| 76733 | 76678 | /************** End of expr.c ************************************************/ |
| 76734 | 76679 | /************** Begin file alter.c *******************************************/ |
| 76735 | | -#line 1 "tsrc/alter.c" |
| 76736 | 76680 | /* |
| 76737 | 76681 | ** 2005 February 15 |
| 76738 | 76682 | ** |
| 76739 | 76683 | ** The author disclaims copyright to this source code. In place of |
| 76740 | 76684 | ** a legal notice, here is a blessing: |
| | @@ -77559,11 +77503,10 @@ |
| 77559 | 77503 | } |
| 77560 | 77504 | #endif /* SQLITE_ALTER_TABLE */ |
| 77561 | 77505 | |
| 77562 | 77506 | /************** End of alter.c ***********************************************/ |
| 77563 | 77507 | /************** Begin file analyze.c *****************************************/ |
| 77564 | | -#line 1 "tsrc/analyze.c" |
| 77565 | 77508 | /* |
| 77566 | 77509 | ** 2005 July 8 |
| 77567 | 77510 | ** |
| 77568 | 77511 | ** The author disclaims copyright to this source code. In place of |
| 77569 | 77512 | ** a legal notice, here is a blessing: |
| | @@ -77709,16 +77652,10 @@ |
| 77709 | 77652 | { "sqlite_stat1", "tbl,idx,stat" }, |
| 77710 | 77653 | #ifdef SQLITE_ENABLE_STAT3 |
| 77711 | 77654 | { "sqlite_stat3", "tbl,idx,neq,nlt,ndlt,sample" }, |
| 77712 | 77655 | #endif |
| 77713 | 77656 | }; |
| 77714 | | - static const char *azToDrop[] = { |
| 77715 | | - "sqlite_stat2", |
| 77716 | | -#ifndef SQLITE_ENABLE_STAT3 |
| 77717 | | - "sqlite_stat3", |
| 77718 | | -#endif |
| 77719 | | - }; |
| 77720 | 77657 | |
| 77721 | 77658 | int aRoot[] = {0, 0}; |
| 77722 | 77659 | u8 aCreateTbl[] = {0, 0}; |
| 77723 | 77660 | |
| 77724 | 77661 | int i; |
| | @@ -77728,21 +77665,10 @@ |
| 77728 | 77665 | if( v==0 ) return; |
| 77729 | 77666 | assert( sqlite3BtreeHoldsAllMutexes(db) ); |
| 77730 | 77667 | assert( sqlite3VdbeDb(v)==db ); |
| 77731 | 77668 | pDb = &db->aDb[iDb]; |
| 77732 | 77669 | |
| 77733 | | - /* Drop all statistics tables that this version of SQLite does not |
| 77734 | | - ** understand. |
| 77735 | | - */ |
| 77736 | | - for(i=0; i<ArraySize(azToDrop); i++){ |
| 77737 | | - Table *pTab = sqlite3FindTable(db, azToDrop[i], pDb->zName); |
| 77738 | | - if( pTab ){ |
| 77739 | | - sqlite3CodeDropTable(pParse, pTab, iDb, 0); |
| 77740 | | - break; |
| 77741 | | - } |
| 77742 | | - } |
| 77743 | | - |
| 77744 | 77670 | /* Create new statistic tables if they do not exist, or clear them |
| 77745 | 77671 | ** if they do already exist. |
| 77746 | 77672 | */ |
| 77747 | 77673 | for(i=0; i<ArraySize(aTable); i++){ |
| 77748 | 77674 | const char *zTab = aTable[i].zName; |
| | @@ -78699,11 +78625,10 @@ |
| 78699 | 78625 | |
| 78700 | 78626 | #endif /* SQLITE_OMIT_ANALYZE */ |
| 78701 | 78627 | |
| 78702 | 78628 | /************** End of analyze.c *********************************************/ |
| 78703 | 78629 | /************** Begin file attach.c ******************************************/ |
| 78704 | | -#line 1 "tsrc/attach.c" |
| 78705 | 78630 | /* |
| 78706 | 78631 | ** 2003 April 6 |
| 78707 | 78632 | ** |
| 78708 | 78633 | ** The author disclaims copyright to this source code. In place of |
| 78709 | 78634 | ** a legal notice, here is a blessing: |
| | @@ -79259,11 +79184,10 @@ |
| 79259 | 79184 | } |
| 79260 | 79185 | #endif |
| 79261 | 79186 | |
| 79262 | 79187 | /************** End of attach.c **********************************************/ |
| 79263 | 79188 | /************** Begin file auth.c ********************************************/ |
| 79264 | | -#line 1 "tsrc/auth.c" |
| 79265 | 79189 | /* |
| 79266 | 79190 | ** 2003 January 11 |
| 79267 | 79191 | ** |
| 79268 | 79192 | ** The author disclaims copyright to this source code. In place of |
| 79269 | 79193 | ** a legal notice, here is a blessing: |
| | @@ -79511,11 +79435,10 @@ |
| 79511 | 79435 | |
| 79512 | 79436 | #endif /* SQLITE_OMIT_AUTHORIZATION */ |
| 79513 | 79437 | |
| 79514 | 79438 | /************** End of auth.c ************************************************/ |
| 79515 | 79439 | /************** Begin file build.c *******************************************/ |
| 79516 | | -#line 1 "tsrc/build.c" |
| 79517 | 79440 | /* |
| 79518 | 79441 | ** 2001 September 15 |
| 79519 | 79442 | ** |
| 79520 | 79443 | ** The author disclaims copyright to this source code. In place of |
| 79521 | 79444 | ** a legal notice, here is a blessing: |
| | @@ -81658,11 +81581,12 @@ |
| 81658 | 81581 | if( sqlite3AuthCheck(pParse, SQLITE_DELETE, pTab->zName, 0, zDb) ){ |
| 81659 | 81582 | goto exit_drop_table; |
| 81660 | 81583 | } |
| 81661 | 81584 | } |
| 81662 | 81585 | #endif |
| 81663 | | - if( sqlite3StrNICmp(pTab->zName, "sqlite_", 7)==0 ){ |
| 81586 | + if( sqlite3StrNICmp(pTab->zName, "sqlite_", 7)==0 |
| 81587 | + && sqlite3StrNICmp(pTab->zName, "sqlite_stat", 11)!=0 ){ |
| 81664 | 81588 | sqlite3ErrorMsg(pParse, "table %s may not be dropped", pTab->zName); |
| 81665 | 81589 | goto exit_drop_table; |
| 81666 | 81590 | } |
| 81667 | 81591 | |
| 81668 | 81592 | #ifndef SQLITE_OMIT_VIEW |
| | @@ -83332,11 +83256,10 @@ |
| 83332 | 83256 | return pKey; |
| 83333 | 83257 | } |
| 83334 | 83258 | |
| 83335 | 83259 | /************** End of build.c ***********************************************/ |
| 83336 | 83260 | /************** Begin file callback.c ****************************************/ |
| 83337 | | -#line 1 "tsrc/callback.c" |
| 83338 | 83261 | /* |
| 83339 | 83262 | ** 2005 May 23 |
| 83340 | 83263 | ** |
| 83341 | 83264 | ** The author disclaims copyright to this source code. In place of |
| 83342 | 83265 | ** a legal notice, here is a blessing: |
| | @@ -83792,11 +83715,10 @@ |
| 83792 | 83715 | return p; |
| 83793 | 83716 | } |
| 83794 | 83717 | |
| 83795 | 83718 | /************** End of callback.c ********************************************/ |
| 83796 | 83719 | /************** Begin file delete.c ******************************************/ |
| 83797 | | -#line 1 "tsrc/delete.c" |
| 83798 | 83720 | /* |
| 83799 | 83721 | ** 2001 September 15 |
| 83800 | 83722 | ** |
| 83801 | 83723 | ** The author disclaims copyright to this source code. In place of |
| 83802 | 83724 | ** a legal notice, here is a blessing: |
| | @@ -84447,11 +84369,10 @@ |
| 84447 | 84369 | return regBase; |
| 84448 | 84370 | } |
| 84449 | 84371 | |
| 84450 | 84372 | /************** End of delete.c **********************************************/ |
| 84451 | 84373 | /************** Begin file func.c ********************************************/ |
| 84452 | | -#line 1 "tsrc/func.c" |
| 84453 | 84374 | /* |
| 84454 | 84375 | ** 2002 February 23 |
| 84455 | 84376 | ** |
| 84456 | 84377 | ** The author disclaims copyright to this source code. In place of |
| 84457 | 84378 | ** a legal notice, here is a blessing: |
| | @@ -86056,11 +85977,10 @@ |
| 86056 | 85977 | #endif |
| 86057 | 85978 | } |
| 86058 | 85979 | |
| 86059 | 85980 | /************** End of func.c ************************************************/ |
| 86060 | 85981 | /************** Begin file fkey.c ********************************************/ |
| 86061 | | -#line 1 "tsrc/fkey.c" |
| 86062 | 85982 | /* |
| 86063 | 85983 | ** |
| 86064 | 85984 | ** The author disclaims copyright to this source code. In place of |
| 86065 | 85985 | ** a legal notice, here is a blessing: |
| 86066 | 85986 | ** |
| | @@ -87277,11 +87197,10 @@ |
| 87277 | 87197 | } |
| 87278 | 87198 | #endif /* ifndef SQLITE_OMIT_FOREIGN_KEY */ |
| 87279 | 87199 | |
| 87280 | 87200 | /************** End of fkey.c ************************************************/ |
| 87281 | 87201 | /************** Begin file insert.c ******************************************/ |
| 87282 | | -#line 1 "tsrc/insert.c" |
| 87283 | 87202 | /* |
| 87284 | 87203 | ** 2001 September 15 |
| 87285 | 87204 | ** |
| 87286 | 87205 | ** The author disclaims copyright to this source code. In place of |
| 87287 | 87206 | ** a legal notice, here is a blessing: |
| | @@ -89126,11 +89045,10 @@ |
| 89126 | 89045 | } |
| 89127 | 89046 | #endif /* SQLITE_OMIT_XFER_OPT */ |
| 89128 | 89047 | |
| 89129 | 89048 | /************** End of insert.c **********************************************/ |
| 89130 | 89049 | /************** Begin file legacy.c ******************************************/ |
| 89131 | | -#line 1 "tsrc/legacy.c" |
| 89132 | 89050 | /* |
| 89133 | 89051 | ** 2001 September 15 |
| 89134 | 89052 | ** |
| 89135 | 89053 | ** The author disclaims copyright to this source code. In place of |
| 89136 | 89054 | ** a legal notice, here is a blessing: |
| | @@ -89274,11 +89192,10 @@ |
| 89274 | 89192 | return rc; |
| 89275 | 89193 | } |
| 89276 | 89194 | |
| 89277 | 89195 | /************** End of legacy.c **********************************************/ |
| 89278 | 89196 | /************** Begin file loadext.c *****************************************/ |
| 89279 | | -#line 1 "tsrc/loadext.c" |
| 89280 | 89197 | /* |
| 89281 | 89198 | ** 2006 June 7 |
| 89282 | 89199 | ** |
| 89283 | 89200 | ** The author disclaims copyright to this source code. In place of |
| 89284 | 89201 | ** a legal notice, here is a blessing: |
| | @@ -89295,11 +89212,10 @@ |
| 89295 | 89212 | #ifndef SQLITE_CORE |
| 89296 | 89213 | #define SQLITE_CORE 1 /* Disable the API redefinition in sqlite3ext.h */ |
| 89297 | 89214 | #endif |
| 89298 | 89215 | /************** Include sqlite3ext.h in the middle of loadext.c **************/ |
| 89299 | 89216 | /************** Begin file sqlite3ext.h **************************************/ |
| 89300 | | -#line 1 "tsrc/sqlite3ext.h" |
| 89301 | 89217 | /* |
| 89302 | 89218 | ** 2006 June 7 |
| 89303 | 89219 | ** |
| 89304 | 89220 | ** The author disclaims copyright to this source code. In place of |
| 89305 | 89221 | ** a legal notice, here is a blessing: |
| | @@ -89724,11 +89640,10 @@ |
| 89724 | 89640 | |
| 89725 | 89641 | #endif /* _SQLITE3EXT_H_ */ |
| 89726 | 89642 | |
| 89727 | 89643 | /************** End of sqlite3ext.h ******************************************/ |
| 89728 | 89644 | /************** Continuing where we left off in loadext.c ********************/ |
| 89729 | | -#line 20 "tsrc/loadext.c" |
| 89730 | 89645 | /* #include <string.h> */ |
| 89731 | 89646 | |
| 89732 | 89647 | #ifndef SQLITE_OMIT_LOAD_EXTENSION |
| 89733 | 89648 | |
| 89734 | 89649 | /* |
| | @@ -90364,11 +90279,10 @@ |
| 90364 | 90279 | } |
| 90365 | 90280 | } |
| 90366 | 90281 | |
| 90367 | 90282 | /************** End of loadext.c *********************************************/ |
| 90368 | 90283 | /************** Begin file pragma.c ******************************************/ |
| 90369 | | -#line 1 "tsrc/pragma.c" |
| 90370 | 90284 | /* |
| 90371 | 90285 | ** 2003 April 6 |
| 90372 | 90286 | ** |
| 90373 | 90287 | ** The author disclaims copyright to this source code. In place of |
| 90374 | 90288 | ** a legal notice, here is a blessing: |
| | @@ -90899,12 +90813,14 @@ |
| 90899 | 90813 | */ |
| 90900 | 90814 | if( sqlite3StrICmp(zLeft,"journal_mode")==0 ){ |
| 90901 | 90815 | int eMode; /* One of the PAGER_JOURNALMODE_XXX symbols */ |
| 90902 | 90816 | int ii; /* Loop counter */ |
| 90903 | 90817 | |
| 90904 | | - /* Force the schema to be loaded on all databases. This cases all |
| 90905 | | - ** database files to be opened and the journal_modes set. */ |
| 90818 | + /* Force the schema to be loaded on all databases. This causes all |
| 90819 | + ** database files to be opened and the journal_modes set. This is |
| 90820 | + ** necessary because subsequent processing must know if the databases |
| 90821 | + ** are in WAL mode. */ |
| 90906 | 90822 | if( sqlite3ReadSchema(pParse) ){ |
| 90907 | 90823 | goto pragma_out; |
| 90908 | 90824 | } |
| 90909 | 90825 | |
| 90910 | 90826 | sqlite3VdbeSetNumCols(v, 1); |
| | @@ -91893,11 +91809,10 @@ |
| 91893 | 91809 | |
| 91894 | 91810 | #endif /* SQLITE_OMIT_PRAGMA */ |
| 91895 | 91811 | |
| 91896 | 91812 | /************** End of pragma.c **********************************************/ |
| 91897 | 91813 | /************** Begin file prepare.c *****************************************/ |
| 91898 | | -#line 1 "tsrc/prepare.c" |
| 91899 | 91814 | /* |
| 91900 | 91815 | ** 2005 May 25 |
| 91901 | 91816 | ** |
| 91902 | 91817 | ** The author disclaims copyright to this source code. In place of |
| 91903 | 91818 | ** a legal notice, here is a blessing: |
| | @@ -92754,11 +92669,10 @@ |
| 92754 | 92669 | |
| 92755 | 92670 | #endif /* SQLITE_OMIT_UTF16 */ |
| 92756 | 92671 | |
| 92757 | 92672 | /************** End of prepare.c *********************************************/ |
| 92758 | 92673 | /************** Begin file select.c ******************************************/ |
| 92759 | | -#line 1 "tsrc/select.c" |
| 92760 | 92674 | /* |
| 92761 | 92675 | ** 2001 September 15 |
| 92762 | 92676 | ** |
| 92763 | 92677 | ** The author disclaims copyright to this source code. In place of |
| 92764 | 92678 | ** a legal notice, here is a blessing: |
| | @@ -92821,10 +92735,11 @@ |
| 92821 | 92735 | Select standin; |
| 92822 | 92736 | sqlite3 *db = pParse->db; |
| 92823 | 92737 | pNew = sqlite3DbMallocZero(db, sizeof(*pNew) ); |
| 92824 | 92738 | assert( db->mallocFailed || !pOffset || pLimit ); /* OFFSET implies LIMIT */ |
| 92825 | 92739 | if( pNew==0 ){ |
| 92740 | + assert( db->mallocFailed ); |
| 92826 | 92741 | pNew = &standin; |
| 92827 | 92742 | memset(pNew, 0, sizeof(*pNew)); |
| 92828 | 92743 | } |
| 92829 | 92744 | if( pEList==0 ){ |
| 92830 | 92745 | pEList = sqlite3ExprListAppend(pParse, 0, sqlite3Expr(db,TK_ALL,0)); |
| | @@ -92848,10 +92763,11 @@ |
| 92848 | 92763 | if( pNew!=&standin ) sqlite3DbFree(db, pNew); |
| 92849 | 92764 | pNew = 0; |
| 92850 | 92765 | }else{ |
| 92851 | 92766 | assert( pNew->pSrc!=0 || pParse->nErr>0 ); |
| 92852 | 92767 | } |
| 92768 | + assert( pNew!=&standin ); |
| 92853 | 92769 | return pNew; |
| 92854 | 92770 | } |
| 92855 | 92771 | |
| 92856 | 92772 | /* |
| 92857 | 92773 | ** Delete the given Select structure and all of its substructures. |
| | @@ -97343,11 +97259,10 @@ |
| 97343 | 97259 | *****************************************************************************/ |
| 97344 | 97260 | #endif /* defined(SQLITE_TEST) || defined(SQLITE_DEBUG) */ |
| 97345 | 97261 | |
| 97346 | 97262 | /************** End of select.c **********************************************/ |
| 97347 | 97263 | /************** Begin file table.c *******************************************/ |
| 97348 | | -#line 1 "tsrc/table.c" |
| 97349 | 97264 | /* |
| 97350 | 97265 | ** 2001 September 15 |
| 97351 | 97266 | ** |
| 97352 | 97267 | ** The author disclaims copyright to this source code. In place of |
| 97353 | 97268 | ** a legal notice, here is a blessing: |
| | @@ -97543,11 +97458,10 @@ |
| 97543 | 97458 | |
| 97544 | 97459 | #endif /* SQLITE_OMIT_GET_TABLE */ |
| 97545 | 97460 | |
| 97546 | 97461 | /************** End of table.c ***********************************************/ |
| 97547 | 97462 | /************** Begin file trigger.c *****************************************/ |
| 97548 | | -#line 1 "tsrc/trigger.c" |
| 97549 | 97463 | /* |
| 97550 | 97464 | ** |
| 97551 | 97465 | ** The author disclaims copyright to this source code. In place of |
| 97552 | 97466 | ** a legal notice, here is a blessing: |
| 97553 | 97467 | ** |
| | @@ -98669,11 +98583,10 @@ |
| 98669 | 98583 | |
| 98670 | 98584 | #endif /* !defined(SQLITE_OMIT_TRIGGER) */ |
| 98671 | 98585 | |
| 98672 | 98586 | /************** End of trigger.c *********************************************/ |
| 98673 | 98587 | /************** Begin file update.c ******************************************/ |
| 98674 | | -#line 1 "tsrc/update.c" |
| 98675 | 98588 | /* |
| 98676 | 98589 | ** 2001 September 15 |
| 98677 | 98590 | ** |
| 98678 | 98591 | ** The author disclaims copyright to this source code. In place of |
| 98679 | 98592 | ** a legal notice, here is a blessing: |
| | @@ -99342,11 +99255,10 @@ |
| 99342 | 99255 | } |
| 99343 | 99256 | #endif /* SQLITE_OMIT_VIRTUALTABLE */ |
| 99344 | 99257 | |
| 99345 | 99258 | /************** End of update.c **********************************************/ |
| 99346 | 99259 | /************** Begin file vacuum.c ******************************************/ |
| 99347 | | -#line 1 "tsrc/vacuum.c" |
| 99348 | 99260 | /* |
| 99349 | 99261 | ** 2003 April 6 |
| 99350 | 99262 | ** |
| 99351 | 99263 | ** The author disclaims copyright to this source code. In place of |
| 99352 | 99264 | ** a legal notice, here is a blessing: |
| | @@ -99687,11 +99599,10 @@ |
| 99687 | 99599 | |
| 99688 | 99600 | #endif /* SQLITE_OMIT_VACUUM && SQLITE_OMIT_ATTACH */ |
| 99689 | 99601 | |
| 99690 | 99602 | /************** End of vacuum.c **********************************************/ |
| 99691 | 99603 | /************** Begin file vtab.c ********************************************/ |
| 99692 | | -#line 1 "tsrc/vtab.c" |
| 99693 | 99604 | /* |
| 99694 | 99605 | ** 2006 June 10 |
| 99695 | 99606 | ** |
| 99696 | 99607 | ** The author disclaims copyright to this source code. In place of |
| 99697 | 99608 | ** a legal notice, here is a blessing: |
| | @@ -100756,11 +100667,10 @@ |
| 100756 | 100667 | |
| 100757 | 100668 | #endif /* SQLITE_OMIT_VIRTUALTABLE */ |
| 100758 | 100669 | |
| 100759 | 100670 | /************** End of vtab.c ************************************************/ |
| 100760 | 100671 | /************** Begin file where.c *******************************************/ |
| 100761 | | -#line 1 "tsrc/where.c" |
| 100762 | 100672 | /* |
| 100763 | 100673 | ** 2001 September 15 |
| 100764 | 100674 | ** |
| 100765 | 100675 | ** The author disclaims copyright to this source code. In place of |
| 100766 | 100676 | ** a legal notice, here is a blessing: |
| | @@ -101463,11 +101373,11 @@ |
| 101463 | 101373 | int iCol = pRight->iColumn; |
| 101464 | 101374 | pVal = sqlite3VdbeGetValue(pReprepare, iCol, SQLITE_AFF_NONE); |
| 101465 | 101375 | if( pVal && sqlite3_value_type(pVal)==SQLITE_TEXT ){ |
| 101466 | 101376 | z = (char *)sqlite3_value_text(pVal); |
| 101467 | 101377 | } |
| 101468 | | - sqlite3VdbeSetVarmask(pParse->pVdbe, iCol); /* IMP: R-23257-02778 */ |
| 101378 | + sqlite3VdbeSetVarmask(pParse->pVdbe, iCol); /* IMP: R-31526-56213 */ |
| 101469 | 101379 | assert( pRight->op==TK_VARIABLE || pRight->op==TK_REGISTER ); |
| 101470 | 101380 | }else if( op==TK_STRING ){ |
| 101471 | 101381 | z = pRight->u.zToken; |
| 101472 | 101382 | } |
| 101473 | 101383 | if( z ){ |
| | @@ -101481,11 +101391,11 @@ |
| 101481 | 101391 | pPrefix = sqlite3Expr(db, TK_STRING, z); |
| 101482 | 101392 | if( pPrefix ) pPrefix->u.zToken[cnt] = 0; |
| 101483 | 101393 | *ppPrefix = pPrefix; |
| 101484 | 101394 | if( op==TK_VARIABLE ){ |
| 101485 | 101395 | Vdbe *v = pParse->pVdbe; |
| 101486 | | - sqlite3VdbeSetVarmask(v, pRight->iColumn); /* IMP: R-23257-02778 */ |
| 101396 | + sqlite3VdbeSetVarmask(v, pRight->iColumn); /* IMP: R-31526-56213 */ |
| 101487 | 101397 | if( *pisComplete && pRight->u.zToken[1] ){ |
| 101488 | 101398 | /* If the rhs of the LIKE expression is a variable, and the current |
| 101489 | 101399 | ** value of the variable means there is no need to invoke the LIKE |
| 101490 | 101400 | ** function, then no OP_Variable will be added to the program. |
| 101491 | 101401 | ** This causes problems for the sqlite3_bind_parameter_name() |
| | @@ -103395,11 +103305,11 @@ |
| 103395 | 103305 | ){ |
| 103396 | 103306 | if( pExpr->op==TK_VARIABLE |
| 103397 | 103307 | || (pExpr->op==TK_REGISTER && pExpr->op2==TK_VARIABLE) |
| 103398 | 103308 | ){ |
| 103399 | 103309 | int iVar = pExpr->iColumn; |
| 103400 | | - sqlite3VdbeSetVarmask(pParse->pVdbe, iVar); /* IMP: R-23257-02778 */ |
| 103310 | + sqlite3VdbeSetVarmask(pParse->pVdbe, iVar); /* IMP: R-31526-56213 */ |
| 103401 | 103311 | *pp = sqlite3VdbeGetValue(pParse->pReprepare, iVar, aff); |
| 103402 | 103312 | return SQLITE_OK; |
| 103403 | 103313 | } |
| 103404 | 103314 | return sqlite3ValueFromExpr(pParse->db, pExpr, SQLITE_UTF8, aff, pp); |
| 103405 | 103315 | } |
| | @@ -105984,11 +105894,10 @@ |
| 105984 | 105894 | return; |
| 105985 | 105895 | } |
| 105986 | 105896 | |
| 105987 | 105897 | /************** End of where.c ***********************************************/ |
| 105988 | 105898 | /************** Begin file parse.c *******************************************/ |
| 105989 | | -#line 1 "tsrc/parse.c" |
| 105990 | 105899 | /* Driver template for the LEMON parser generator. |
| 105991 | 105900 | ** The author disclaims copyright to this source code. |
| 105992 | 105901 | ** |
| 105993 | 105902 | ** This version of "lempar.c" is modified, slightly, for use by SQLite. |
| 105994 | 105903 | ** The only modifications are the addition of a couple of NEVER() |
| | @@ -105997,11 +105906,10 @@ |
| 105997 | 105906 | ** specific grammar used by SQLite. |
| 105998 | 105907 | */ |
| 105999 | 105908 | /* First off, code is included that follows the "include" declaration |
| 106000 | 105909 | ** in the input grammar file. */ |
| 106001 | 105910 | /* #include <stdio.h> */ |
| 106002 | | -#line 51 "parse.y" |
| 106003 | 105911 | |
| 106004 | 105912 | |
| 106005 | 105913 | /* |
| 106006 | 105914 | ** Disable all error recovery processing in the parser push-down |
| 106007 | 105915 | ** automaton. |
| | @@ -106045,11 +105953,10 @@ |
| 106045 | 105953 | /* |
| 106046 | 105954 | ** An instance of this structure holds the ATTACH key and the key type. |
| 106047 | 105955 | */ |
| 106048 | 105956 | struct AttachKey { int type; Token key; }; |
| 106049 | 105957 | |
| 106050 | | -#line 722 "parse.y" |
| 106051 | 105958 | |
| 106052 | 105959 | /* This is a utility routine used to set the ExprSpan.zStart and |
| 106053 | 105960 | ** ExprSpan.zEnd values of pOut so that the span covers the complete |
| 106054 | 105961 | ** range of text beginning with pStart and going to the end of pEnd. |
| 106055 | 105962 | */ |
| | @@ -106065,11 +105972,10 @@ |
| 106065 | 105972 | static void spanExpr(ExprSpan *pOut, Parse *pParse, int op, Token *pValue){ |
| 106066 | 105973 | pOut->pExpr = sqlite3PExpr(pParse, op, 0, 0, pValue); |
| 106067 | 105974 | pOut->zStart = pValue->z; |
| 106068 | 105975 | pOut->zEnd = &pValue->z[pValue->n]; |
| 106069 | 105976 | } |
| 106070 | | -#line 817 "parse.y" |
| 106071 | 105977 | |
| 106072 | 105978 | /* This routine constructs a binary expression node out of two ExprSpan |
| 106073 | 105979 | ** objects and uses the result to populate a new ExprSpan object. |
| 106074 | 105980 | */ |
| 106075 | 105981 | static void spanBinaryExpr( |
| | @@ -106081,11 +105987,10 @@ |
| 106081 | 105987 | ){ |
| 106082 | 105988 | pOut->pExpr = sqlite3PExpr(pParse, op, pLeft->pExpr, pRight->pExpr, 0); |
| 106083 | 105989 | pOut->zStart = pLeft->zStart; |
| 106084 | 105990 | pOut->zEnd = pRight->zEnd; |
| 106085 | 105991 | } |
| 106086 | | -#line 873 "parse.y" |
| 106087 | 105992 | |
| 106088 | 105993 | /* Construct an expression node for a unary postfix operator |
| 106089 | 105994 | */ |
| 106090 | 105995 | static void spanUnaryPostfix( |
| 106091 | 105996 | ExprSpan *pOut, /* Write the new expression node here */ |
| | @@ -106096,11 +106001,10 @@ |
| 106096 | 106001 | ){ |
| 106097 | 106002 | pOut->pExpr = sqlite3PExpr(pParse, op, pOperand->pExpr, 0, 0); |
| 106098 | 106003 | pOut->zStart = pOperand->zStart; |
| 106099 | 106004 | pOut->zEnd = &pPostOp->z[pPostOp->n]; |
| 106100 | 106005 | } |
| 106101 | | -#line 892 "parse.y" |
| 106102 | 106006 | |
| 106103 | 106007 | /* A routine to convert a binary TK_IS or TK_ISNOT expression into a |
| 106104 | 106008 | ** unary TK_ISNULL or TK_NOTNULL expression. */ |
| 106105 | 106009 | static void binaryToUnaryIfNull(Parse *pParse, Expr *pY, Expr *pA, int op){ |
| 106106 | 106010 | sqlite3 *db = pParse->db; |
| | @@ -106108,11 +106012,10 @@ |
| 106108 | 106012 | pA->op = (u8)op; |
| 106109 | 106013 | sqlite3ExprDelete(db, pA->pRight); |
| 106110 | 106014 | pA->pRight = 0; |
| 106111 | 106015 | } |
| 106112 | 106016 | } |
| 106113 | | -#line 920 "parse.y" |
| 106114 | 106017 | |
| 106115 | 106018 | /* Construct an expression node for a unary prefix operator |
| 106116 | 106019 | */ |
| 106117 | 106020 | static void spanUnaryPrefix( |
| 106118 | 106021 | ExprSpan *pOut, /* Write the new expression node here */ |
| | @@ -106123,11 +106026,10 @@ |
| 106123 | 106026 | ){ |
| 106124 | 106027 | pOut->pExpr = sqlite3PExpr(pParse, op, pOperand->pExpr, 0, 0); |
| 106125 | 106028 | pOut->zStart = pPreOp->z; |
| 106126 | 106029 | pOut->zEnd = pOperand->zEnd; |
| 106127 | 106030 | } |
| 106128 | | -#line 141 "parse.c" |
| 106129 | 106031 | /* Next is all token values, in a form suitable for use by makeheaders. |
| 106130 | 106032 | ** This section will be null unless lemon is run with the -m switch. |
| 106131 | 106033 | */ |
| 106132 | 106034 | /* |
| 106133 | 106035 | ** These constants (all generated automatically by the parser generator) |
| | @@ -107379,21 +107281,17 @@ |
| 107379 | 107281 | ** inside the C code. |
| 107380 | 107282 | */ |
| 107381 | 107283 | case 160: /* select */ |
| 107382 | 107284 | case 194: /* oneselect */ |
| 107383 | 107285 | { |
| 107384 | | -#line 403 "parse.y" |
| 107385 | 107286 | sqlite3SelectDelete(pParse->db, (yypminor->yy387)); |
| 107386 | | -#line 1399 "parse.c" |
| 107387 | 107287 | } |
| 107388 | 107288 | break; |
| 107389 | 107289 | case 174: /* term */ |
| 107390 | 107290 | case 175: /* expr */ |
| 107391 | 107291 | { |
| 107392 | | -#line 720 "parse.y" |
| 107393 | 107292 | sqlite3ExprDelete(pParse->db, (yypminor->yy118).pExpr); |
| 107394 | | -#line 1407 "parse.c" |
| 107395 | 107293 | } |
| 107396 | 107294 | break; |
| 107397 | 107295 | case 179: /* idxlist_opt */ |
| 107398 | 107296 | case 187: /* idxlist */ |
| 107399 | 107297 | case 197: /* selcollist */ |
| | @@ -107405,23 +107303,19 @@ |
| 107405 | 107303 | case 217: /* setlist */ |
| 107406 | 107304 | case 220: /* itemlist */ |
| 107407 | 107305 | case 221: /* exprlist */ |
| 107408 | 107306 | case 226: /* case_exprlist */ |
| 107409 | 107307 | { |
| 107410 | | -#line 1103 "parse.y" |
| 107411 | 107308 | sqlite3ExprListDelete(pParse->db, (yypminor->yy322)); |
| 107412 | | -#line 1425 "parse.c" |
| 107413 | 107309 | } |
| 107414 | 107310 | break; |
| 107415 | 107311 | case 193: /* fullname */ |
| 107416 | 107312 | case 198: /* from */ |
| 107417 | 107313 | case 206: /* seltablist */ |
| 107418 | 107314 | case 207: /* stl_prefix */ |
| 107419 | 107315 | { |
| 107420 | | -#line 534 "parse.y" |
| 107421 | 107316 | sqlite3SrcListDelete(pParse->db, (yypminor->yy259)); |
| 107422 | | -#line 1435 "parse.c" |
| 107423 | 107317 | } |
| 107424 | 107318 | break; |
| 107425 | 107319 | case 199: /* where_opt */ |
| 107426 | 107320 | case 201: /* having_opt */ |
| 107427 | 107321 | case 210: /* on_opt */ |
| | @@ -107429,37 +107323,29 @@ |
| 107429 | 107323 | case 225: /* case_operand */ |
| 107430 | 107324 | case 227: /* case_else */ |
| 107431 | 107325 | case 238: /* when_clause */ |
| 107432 | 107326 | case 243: /* key_opt */ |
| 107433 | 107327 | { |
| 107434 | | -#line 644 "parse.y" |
| 107435 | 107328 | sqlite3ExprDelete(pParse->db, (yypminor->yy314)); |
| 107436 | | -#line 1449 "parse.c" |
| 107437 | 107329 | } |
| 107438 | 107330 | break; |
| 107439 | 107331 | case 211: /* using_opt */ |
| 107440 | 107332 | case 213: /* inscollist */ |
| 107441 | 107333 | case 219: /* inscollist_opt */ |
| 107442 | 107334 | { |
| 107443 | | -#line 566 "parse.y" |
| 107444 | 107335 | sqlite3IdListDelete(pParse->db, (yypminor->yy384)); |
| 107445 | | -#line 1458 "parse.c" |
| 107446 | 107336 | } |
| 107447 | 107337 | break; |
| 107448 | 107338 | case 234: /* trigger_cmd_list */ |
| 107449 | 107339 | case 239: /* trigger_cmd */ |
| 107450 | 107340 | { |
| 107451 | | -#line 1210 "parse.y" |
| 107452 | 107341 | sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy203)); |
| 107453 | | -#line 1466 "parse.c" |
| 107454 | 107342 | } |
| 107455 | 107343 | break; |
| 107456 | 107344 | case 236: /* trigger_event */ |
| 107457 | 107345 | { |
| 107458 | | -#line 1196 "parse.y" |
| 107459 | 107346 | sqlite3IdListDelete(pParse->db, (yypminor->yy90).b); |
| 107460 | | -#line 1473 "parse.c" |
| 107461 | 107347 | } |
| 107462 | 107348 | break; |
| 107463 | 107349 | default: break; /* If no destructor action specified: do nothing */ |
| 107464 | 107350 | } |
| 107465 | 107351 | } |
| | @@ -107641,16 +107527,14 @@ |
| 107641 | 107527 | } |
| 107642 | 107528 | #endif |
| 107643 | 107529 | while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); |
| 107644 | 107530 | /* Here code is inserted which will execute if the parser |
| 107645 | 107531 | ** stack every overflows */ |
| 107646 | | -#line 38 "parse.y" |
| 107647 | 107532 | |
| 107648 | 107533 | UNUSED_PARAMETER(yypMinor); /* Silence some compiler warnings */ |
| 107649 | 107534 | sqlite3ErrorMsg(pParse, "parser stack overflow"); |
| 107650 | 107535 | pParse->parseError = 1; |
| 107651 | | -#line 1664 "parse.c" |
| 107652 | 107536 | sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument var */ |
| 107653 | 107537 | } |
| 107654 | 107538 | |
| 107655 | 107539 | /* |
| 107656 | 107540 | ** Perform a shift action. |
| | @@ -108087,94 +107971,66 @@ |
| 108087 | 107971 | ** { ... } // User supplied code |
| 108088 | 107972 | ** #line <lineno> <thisfile> |
| 108089 | 107973 | ** break; |
| 108090 | 107974 | */ |
| 108091 | 107975 | case 5: /* explain ::= */ |
| 108092 | | -#line 107 "parse.y" |
| 108093 | 107976 | { sqlite3BeginParse(pParse, 0); } |
| 108094 | | -#line 2107 "parse.c" |
| 108095 | 107977 | break; |
| 108096 | 107978 | case 6: /* explain ::= EXPLAIN */ |
| 108097 | | -#line 109 "parse.y" |
| 108098 | 107979 | { sqlite3BeginParse(pParse, 1); } |
| 108099 | | -#line 2112 "parse.c" |
| 108100 | 107980 | break; |
| 108101 | 107981 | case 7: /* explain ::= EXPLAIN QUERY PLAN */ |
| 108102 | | -#line 110 "parse.y" |
| 108103 | 107982 | { sqlite3BeginParse(pParse, 2); } |
| 108104 | | -#line 2117 "parse.c" |
| 108105 | 107983 | break; |
| 108106 | 107984 | case 8: /* cmdx ::= cmd */ |
| 108107 | | -#line 112 "parse.y" |
| 108108 | 107985 | { sqlite3FinishCoding(pParse); } |
| 108109 | | -#line 2122 "parse.c" |
| 108110 | 107986 | break; |
| 108111 | 107987 | case 9: /* cmd ::= BEGIN transtype trans_opt */ |
| 108112 | | -#line 117 "parse.y" |
| 108113 | 107988 | {sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy4);} |
| 108114 | | -#line 2127 "parse.c" |
| 108115 | 107989 | break; |
| 108116 | 107990 | case 13: /* transtype ::= */ |
| 108117 | | -#line 122 "parse.y" |
| 108118 | 107991 | {yygotominor.yy4 = TK_DEFERRED;} |
| 108119 | | -#line 2132 "parse.c" |
| 108120 | 107992 | break; |
| 108121 | 107993 | case 14: /* transtype ::= DEFERRED */ |
| 108122 | 107994 | case 15: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==15); |
| 108123 | 107995 | case 16: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==16); |
| 108124 | 107996 | case 115: /* multiselect_op ::= UNION */ yytestcase(yyruleno==115); |
| 108125 | 107997 | case 117: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==117); |
| 108126 | | -#line 123 "parse.y" |
| 108127 | 107998 | {yygotominor.yy4 = yymsp[0].major;} |
| 108128 | | -#line 2141 "parse.c" |
| 108129 | 107999 | break; |
| 108130 | 108000 | case 17: /* cmd ::= COMMIT trans_opt */ |
| 108131 | 108001 | case 18: /* cmd ::= END trans_opt */ yytestcase(yyruleno==18); |
| 108132 | | -#line 126 "parse.y" |
| 108133 | 108002 | {sqlite3CommitTransaction(pParse);} |
| 108134 | | -#line 2147 "parse.c" |
| 108135 | 108003 | break; |
| 108136 | 108004 | case 19: /* cmd ::= ROLLBACK trans_opt */ |
| 108137 | | -#line 128 "parse.y" |
| 108138 | 108005 | {sqlite3RollbackTransaction(pParse);} |
| 108139 | | -#line 2152 "parse.c" |
| 108140 | 108006 | break; |
| 108141 | 108007 | case 22: /* cmd ::= SAVEPOINT nm */ |
| 108142 | | -#line 132 "parse.y" |
| 108143 | 108008 | { |
| 108144 | 108009 | sqlite3Savepoint(pParse, SAVEPOINT_BEGIN, &yymsp[0].minor.yy0); |
| 108145 | 108010 | } |
| 108146 | | -#line 2159 "parse.c" |
| 108147 | 108011 | break; |
| 108148 | 108012 | case 23: /* cmd ::= RELEASE savepoint_opt nm */ |
| 108149 | | -#line 135 "parse.y" |
| 108150 | 108013 | { |
| 108151 | 108014 | sqlite3Savepoint(pParse, SAVEPOINT_RELEASE, &yymsp[0].minor.yy0); |
| 108152 | 108015 | } |
| 108153 | | -#line 2166 "parse.c" |
| 108154 | 108016 | break; |
| 108155 | 108017 | case 24: /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ |
| 108156 | | -#line 138 "parse.y" |
| 108157 | 108018 | { |
| 108158 | 108019 | sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0); |
| 108159 | 108020 | } |
| 108160 | | -#line 2173 "parse.c" |
| 108161 | 108021 | break; |
| 108162 | 108022 | case 26: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ |
| 108163 | | -#line 145 "parse.y" |
| 108164 | 108023 | { |
| 108165 | 108024 | sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy4,0,0,yymsp[-2].minor.yy4); |
| 108166 | 108025 | } |
| 108167 | | -#line 2180 "parse.c" |
| 108168 | 108026 | break; |
| 108169 | 108027 | case 27: /* createkw ::= CREATE */ |
| 108170 | | -#line 148 "parse.y" |
| 108171 | 108028 | { |
| 108172 | 108029 | pParse->db->lookaside.bEnabled = 0; |
| 108173 | 108030 | yygotominor.yy0 = yymsp[0].minor.yy0; |
| 108174 | 108031 | } |
| 108175 | | -#line 2188 "parse.c" |
| 108176 | 108032 | break; |
| 108177 | 108033 | case 28: /* ifnotexists ::= */ |
| 108178 | 108034 | case 31: /* temp ::= */ yytestcase(yyruleno==31); |
| 108179 | 108035 | case 70: /* autoinc ::= */ yytestcase(yyruleno==70); |
| 108180 | 108036 | case 83: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ yytestcase(yyruleno==83); |
| | @@ -108184,56 +108040,44 @@ |
| 108184 | 108040 | case 109: /* ifexists ::= */ yytestcase(yyruleno==109); |
| 108185 | 108041 | case 120: /* distinct ::= ALL */ yytestcase(yyruleno==120); |
| 108186 | 108042 | case 121: /* distinct ::= */ yytestcase(yyruleno==121); |
| 108187 | 108043 | case 222: /* between_op ::= BETWEEN */ yytestcase(yyruleno==222); |
| 108188 | 108044 | case 225: /* in_op ::= IN */ yytestcase(yyruleno==225); |
| 108189 | | -#line 153 "parse.y" |
| 108190 | 108045 | {yygotominor.yy4 = 0;} |
| 108191 | | -#line 2204 "parse.c" |
| 108192 | 108046 | break; |
| 108193 | 108047 | case 29: /* ifnotexists ::= IF NOT EXISTS */ |
| 108194 | 108048 | case 30: /* temp ::= TEMP */ yytestcase(yyruleno==30); |
| 108195 | 108049 | case 71: /* autoinc ::= AUTOINCR */ yytestcase(yyruleno==71); |
| 108196 | 108050 | case 86: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ yytestcase(yyruleno==86); |
| 108197 | 108051 | case 108: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==108); |
| 108198 | 108052 | case 119: /* distinct ::= DISTINCT */ yytestcase(yyruleno==119); |
| 108199 | 108053 | case 223: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==223); |
| 108200 | 108054 | case 226: /* in_op ::= NOT IN */ yytestcase(yyruleno==226); |
| 108201 | | -#line 154 "parse.y" |
| 108202 | 108055 | {yygotominor.yy4 = 1;} |
| 108203 | | -#line 2216 "parse.c" |
| 108204 | 108056 | break; |
| 108205 | 108057 | case 32: /* create_table_args ::= LP columnlist conslist_opt RP */ |
| 108206 | | -#line 160 "parse.y" |
| 108207 | 108058 | { |
| 108208 | 108059 | sqlite3EndTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0); |
| 108209 | 108060 | } |
| 108210 | | -#line 2223 "parse.c" |
| 108211 | 108061 | break; |
| 108212 | 108062 | case 33: /* create_table_args ::= AS select */ |
| 108213 | | -#line 163 "parse.y" |
| 108214 | 108063 | { |
| 108215 | 108064 | sqlite3EndTable(pParse,0,0,yymsp[0].minor.yy387); |
| 108216 | 108065 | sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy387); |
| 108217 | 108066 | } |
| 108218 | | -#line 2231 "parse.c" |
| 108219 | 108067 | break; |
| 108220 | 108068 | case 36: /* column ::= columnid type carglist */ |
| 108221 | | -#line 175 "parse.y" |
| 108222 | 108069 | { |
| 108223 | 108070 | yygotominor.yy0.z = yymsp[-2].minor.yy0.z; |
| 108224 | 108071 | yygotominor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-2].minor.yy0.z) + pParse->sLastToken.n; |
| 108225 | 108072 | } |
| 108226 | | -#line 2239 "parse.c" |
| 108227 | 108073 | break; |
| 108228 | 108074 | case 37: /* columnid ::= nm */ |
| 108229 | | -#line 179 "parse.y" |
| 108230 | 108075 | { |
| 108231 | 108076 | sqlite3AddColumn(pParse,&yymsp[0].minor.yy0); |
| 108232 | 108077 | yygotominor.yy0 = yymsp[0].minor.yy0; |
| 108233 | 108078 | } |
| 108234 | | -#line 2247 "parse.c" |
| 108235 | 108079 | break; |
| 108236 | 108080 | case 38: /* id ::= ID */ |
| 108237 | 108081 | case 39: /* id ::= INDEXED */ yytestcase(yyruleno==39); |
| 108238 | 108082 | case 40: /* ids ::= ID|STRING */ yytestcase(yyruleno==40); |
| 108239 | 108083 | case 41: /* nm ::= id */ yytestcase(yyruleno==41); |
| | @@ -108253,373 +108097,256 @@ |
| 108253 | 108097 | case 264: /* nmnum ::= DEFAULT */ yytestcase(yyruleno==264); |
| 108254 | 108098 | case 265: /* plus_num ::= plus_opt number */ yytestcase(yyruleno==265); |
| 108255 | 108099 | case 266: /* minus_num ::= MINUS number */ yytestcase(yyruleno==266); |
| 108256 | 108100 | case 267: /* number ::= INTEGER|FLOAT */ yytestcase(yyruleno==267); |
| 108257 | 108101 | case 285: /* trnm ::= nm */ yytestcase(yyruleno==285); |
| 108258 | | -#line 189 "parse.y" |
| 108259 | 108102 | {yygotominor.yy0 = yymsp[0].minor.yy0;} |
| 108260 | | -#line 2273 "parse.c" |
| 108261 | 108103 | break; |
| 108262 | 108104 | case 45: /* type ::= typetoken */ |
| 108263 | | -#line 251 "parse.y" |
| 108264 | 108105 | {sqlite3AddColumnType(pParse,&yymsp[0].minor.yy0);} |
| 108265 | | -#line 2278 "parse.c" |
| 108266 | 108106 | break; |
| 108267 | 108107 | case 47: /* typetoken ::= typename LP signed RP */ |
| 108268 | | -#line 253 "parse.y" |
| 108269 | 108108 | { |
| 108270 | 108109 | yygotominor.yy0.z = yymsp[-3].minor.yy0.z; |
| 108271 | 108110 | yygotominor.yy0.n = (int)(&yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-3].minor.yy0.z); |
| 108272 | 108111 | } |
| 108273 | | -#line 2286 "parse.c" |
| 108274 | 108112 | break; |
| 108275 | 108113 | case 48: /* typetoken ::= typename LP signed COMMA signed RP */ |
| 108276 | | -#line 257 "parse.y" |
| 108277 | 108114 | { |
| 108278 | 108115 | yygotominor.yy0.z = yymsp[-5].minor.yy0.z; |
| 108279 | 108116 | yygotominor.yy0.n = (int)(&yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-5].minor.yy0.z); |
| 108280 | 108117 | } |
| 108281 | | -#line 2294 "parse.c" |
| 108282 | 108118 | break; |
| 108283 | 108119 | case 50: /* typename ::= typename ids */ |
| 108284 | | -#line 263 "parse.y" |
| 108285 | 108120 | {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);} |
| 108286 | | -#line 2299 "parse.c" |
| 108287 | 108121 | break; |
| 108288 | 108122 | case 57: /* ccons ::= DEFAULT term */ |
| 108289 | 108123 | case 59: /* ccons ::= DEFAULT PLUS term */ yytestcase(yyruleno==59); |
| 108290 | | -#line 274 "parse.y" |
| 108291 | 108124 | {sqlite3AddDefaultValue(pParse,&yymsp[0].minor.yy118);} |
| 108292 | | -#line 2305 "parse.c" |
| 108293 | 108125 | break; |
| 108294 | 108126 | case 58: /* ccons ::= DEFAULT LP expr RP */ |
| 108295 | | -#line 275 "parse.y" |
| 108296 | 108127 | {sqlite3AddDefaultValue(pParse,&yymsp[-1].minor.yy118);} |
| 108297 | | -#line 2310 "parse.c" |
| 108298 | 108128 | break; |
| 108299 | 108129 | case 60: /* ccons ::= DEFAULT MINUS term */ |
| 108300 | | -#line 277 "parse.y" |
| 108301 | 108130 | { |
| 108302 | 108131 | ExprSpan v; |
| 108303 | 108132 | v.pExpr = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy118.pExpr, 0, 0); |
| 108304 | 108133 | v.zStart = yymsp[-1].minor.yy0.z; |
| 108305 | 108134 | v.zEnd = yymsp[0].minor.yy118.zEnd; |
| 108306 | 108135 | sqlite3AddDefaultValue(pParse,&v); |
| 108307 | 108136 | } |
| 108308 | | -#line 2321 "parse.c" |
| 108309 | 108137 | break; |
| 108310 | 108138 | case 61: /* ccons ::= DEFAULT id */ |
| 108311 | | -#line 284 "parse.y" |
| 108312 | 108139 | { |
| 108313 | 108140 | ExprSpan v; |
| 108314 | 108141 | spanExpr(&v, pParse, TK_STRING, &yymsp[0].minor.yy0); |
| 108315 | 108142 | sqlite3AddDefaultValue(pParse,&v); |
| 108316 | 108143 | } |
| 108317 | | -#line 2330 "parse.c" |
| 108318 | 108144 | break; |
| 108319 | 108145 | case 63: /* ccons ::= NOT NULL onconf */ |
| 108320 | | -#line 294 "parse.y" |
| 108321 | 108146 | {sqlite3AddNotNull(pParse, yymsp[0].minor.yy4);} |
| 108322 | | -#line 2335 "parse.c" |
| 108323 | 108147 | break; |
| 108324 | 108148 | case 64: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ |
| 108325 | | -#line 296 "parse.y" |
| 108326 | 108149 | {sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy4,yymsp[0].minor.yy4,yymsp[-2].minor.yy4);} |
| 108327 | | -#line 2340 "parse.c" |
| 108328 | 108150 | break; |
| 108329 | 108151 | case 65: /* ccons ::= UNIQUE onconf */ |
| 108330 | | -#line 297 "parse.y" |
| 108331 | 108152 | {sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy4,0,0,0,0);} |
| 108332 | | -#line 2345 "parse.c" |
| 108333 | 108153 | break; |
| 108334 | 108154 | case 66: /* ccons ::= CHECK LP expr RP */ |
| 108335 | | -#line 298 "parse.y" |
| 108336 | 108155 | {sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy118.pExpr);} |
| 108337 | | -#line 2350 "parse.c" |
| 108338 | 108156 | break; |
| 108339 | 108157 | case 67: /* ccons ::= REFERENCES nm idxlist_opt refargs */ |
| 108340 | | -#line 300 "parse.y" |
| 108341 | 108158 | {sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy322,yymsp[0].minor.yy4);} |
| 108342 | | -#line 2355 "parse.c" |
| 108343 | 108159 | break; |
| 108344 | 108160 | case 68: /* ccons ::= defer_subclause */ |
| 108345 | | -#line 301 "parse.y" |
| 108346 | 108161 | {sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy4);} |
| 108347 | | -#line 2360 "parse.c" |
| 108348 | 108162 | break; |
| 108349 | 108163 | case 69: /* ccons ::= COLLATE ids */ |
| 108350 | | -#line 302 "parse.y" |
| 108351 | 108164 | {sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);} |
| 108352 | | -#line 2365 "parse.c" |
| 108353 | 108165 | break; |
| 108354 | 108166 | case 72: /* refargs ::= */ |
| 108355 | | -#line 315 "parse.y" |
| 108356 | 108167 | { yygotominor.yy4 = OE_None*0x0101; /* EV: R-19803-45884 */} |
| 108357 | | -#line 2370 "parse.c" |
| 108358 | 108168 | break; |
| 108359 | 108169 | case 73: /* refargs ::= refargs refarg */ |
| 108360 | | -#line 316 "parse.y" |
| 108361 | 108170 | { yygotominor.yy4 = (yymsp[-1].minor.yy4 & ~yymsp[0].minor.yy215.mask) | yymsp[0].minor.yy215.value; } |
| 108362 | | -#line 2375 "parse.c" |
| 108363 | 108171 | break; |
| 108364 | 108172 | case 74: /* refarg ::= MATCH nm */ |
| 108365 | 108173 | case 75: /* refarg ::= ON INSERT refact */ yytestcase(yyruleno==75); |
| 108366 | | -#line 318 "parse.y" |
| 108367 | 108174 | { yygotominor.yy215.value = 0; yygotominor.yy215.mask = 0x000000; } |
| 108368 | | -#line 2381 "parse.c" |
| 108369 | 108175 | break; |
| 108370 | 108176 | case 76: /* refarg ::= ON DELETE refact */ |
| 108371 | | -#line 320 "parse.y" |
| 108372 | 108177 | { yygotominor.yy215.value = yymsp[0].minor.yy4; yygotominor.yy215.mask = 0x0000ff; } |
| 108373 | | -#line 2386 "parse.c" |
| 108374 | 108178 | break; |
| 108375 | 108179 | case 77: /* refarg ::= ON UPDATE refact */ |
| 108376 | | -#line 321 "parse.y" |
| 108377 | 108180 | { yygotominor.yy215.value = yymsp[0].minor.yy4<<8; yygotominor.yy215.mask = 0x00ff00; } |
| 108378 | | -#line 2391 "parse.c" |
| 108379 | 108181 | break; |
| 108380 | 108182 | case 78: /* refact ::= SET NULL */ |
| 108381 | | -#line 323 "parse.y" |
| 108382 | 108183 | { yygotominor.yy4 = OE_SetNull; /* EV: R-33326-45252 */} |
| 108383 | | -#line 2396 "parse.c" |
| 108384 | 108184 | break; |
| 108385 | 108185 | case 79: /* refact ::= SET DEFAULT */ |
| 108386 | | -#line 324 "parse.y" |
| 108387 | 108186 | { yygotominor.yy4 = OE_SetDflt; /* EV: R-33326-45252 */} |
| 108388 | | -#line 2401 "parse.c" |
| 108389 | 108187 | break; |
| 108390 | 108188 | case 80: /* refact ::= CASCADE */ |
| 108391 | | -#line 325 "parse.y" |
| 108392 | 108189 | { yygotominor.yy4 = OE_Cascade; /* EV: R-33326-45252 */} |
| 108393 | | -#line 2406 "parse.c" |
| 108394 | 108190 | break; |
| 108395 | 108191 | case 81: /* refact ::= RESTRICT */ |
| 108396 | | -#line 326 "parse.y" |
| 108397 | 108192 | { yygotominor.yy4 = OE_Restrict; /* EV: R-33326-45252 */} |
| 108398 | | -#line 2411 "parse.c" |
| 108399 | 108193 | break; |
| 108400 | 108194 | case 82: /* refact ::= NO ACTION */ |
| 108401 | | -#line 327 "parse.y" |
| 108402 | 108195 | { yygotominor.yy4 = OE_None; /* EV: R-33326-45252 */} |
| 108403 | | -#line 2416 "parse.c" |
| 108404 | 108196 | break; |
| 108405 | 108197 | case 84: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ |
| 108406 | 108198 | case 99: /* defer_subclause_opt ::= defer_subclause */ yytestcase(yyruleno==99); |
| 108407 | 108199 | case 101: /* onconf ::= ON CONFLICT resolvetype */ yytestcase(yyruleno==101); |
| 108408 | 108200 | case 104: /* resolvetype ::= raisetype */ yytestcase(yyruleno==104); |
| 108409 | | -#line 330 "parse.y" |
| 108410 | 108201 | {yygotominor.yy4 = yymsp[0].minor.yy4;} |
| 108411 | | -#line 2424 "parse.c" |
| 108412 | 108202 | break; |
| 108413 | 108203 | case 88: /* conslist_opt ::= */ |
| 108414 | | -#line 339 "parse.y" |
| 108415 | 108204 | {yygotominor.yy0.n = 0; yygotominor.yy0.z = 0;} |
| 108416 | | -#line 2429 "parse.c" |
| 108417 | 108205 | break; |
| 108418 | 108206 | case 89: /* conslist_opt ::= COMMA conslist */ |
| 108419 | | -#line 340 "parse.y" |
| 108420 | 108207 | {yygotominor.yy0 = yymsp[-1].minor.yy0;} |
| 108421 | | -#line 2434 "parse.c" |
| 108422 | 108208 | break; |
| 108423 | 108209 | case 94: /* tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf */ |
| 108424 | | -#line 346 "parse.y" |
| 108425 | 108210 | {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy322,yymsp[0].minor.yy4,yymsp[-2].minor.yy4,0);} |
| 108426 | | -#line 2439 "parse.c" |
| 108427 | 108211 | break; |
| 108428 | 108212 | case 95: /* tcons ::= UNIQUE LP idxlist RP onconf */ |
| 108429 | | -#line 348 "parse.y" |
| 108430 | 108213 | {sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy322,yymsp[0].minor.yy4,0,0,0,0);} |
| 108431 | | -#line 2444 "parse.c" |
| 108432 | 108214 | break; |
| 108433 | 108215 | case 96: /* tcons ::= CHECK LP expr RP onconf */ |
| 108434 | | -#line 350 "parse.y" |
| 108435 | 108216 | {sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy118.pExpr);} |
| 108436 | | -#line 2449 "parse.c" |
| 108437 | 108217 | break; |
| 108438 | 108218 | case 97: /* tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt */ |
| 108439 | | -#line 352 "parse.y" |
| 108440 | 108219 | { |
| 108441 | 108220 | sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy322, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy322, yymsp[-1].minor.yy4); |
| 108442 | 108221 | sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy4); |
| 108443 | 108222 | } |
| 108444 | | -#line 2457 "parse.c" |
| 108445 | 108223 | break; |
| 108446 | 108224 | case 100: /* onconf ::= */ |
| 108447 | | -#line 366 "parse.y" |
| 108448 | 108225 | {yygotominor.yy4 = OE_Default;} |
| 108449 | | -#line 2462 "parse.c" |
| 108450 | 108226 | break; |
| 108451 | 108227 | case 102: /* orconf ::= */ |
| 108452 | | -#line 368 "parse.y" |
| 108453 | 108228 | {yygotominor.yy210 = OE_Default;} |
| 108454 | | -#line 2467 "parse.c" |
| 108455 | 108229 | break; |
| 108456 | 108230 | case 103: /* orconf ::= OR resolvetype */ |
| 108457 | | -#line 369 "parse.y" |
| 108458 | 108231 | {yygotominor.yy210 = (u8)yymsp[0].minor.yy4;} |
| 108459 | | -#line 2472 "parse.c" |
| 108460 | 108232 | break; |
| 108461 | 108233 | case 105: /* resolvetype ::= IGNORE */ |
| 108462 | | -#line 371 "parse.y" |
| 108463 | 108234 | {yygotominor.yy4 = OE_Ignore;} |
| 108464 | | -#line 2477 "parse.c" |
| 108465 | 108235 | break; |
| 108466 | 108236 | case 106: /* resolvetype ::= REPLACE */ |
| 108467 | | -#line 372 "parse.y" |
| 108468 | 108237 | {yygotominor.yy4 = OE_Replace;} |
| 108469 | | -#line 2482 "parse.c" |
| 108470 | 108238 | break; |
| 108471 | 108239 | case 107: /* cmd ::= DROP TABLE ifexists fullname */ |
| 108472 | | -#line 376 "parse.y" |
| 108473 | 108240 | { |
| 108474 | 108241 | sqlite3DropTable(pParse, yymsp[0].minor.yy259, 0, yymsp[-1].minor.yy4); |
| 108475 | 108242 | } |
| 108476 | | -#line 2489 "parse.c" |
| 108477 | 108243 | break; |
| 108478 | 108244 | case 110: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm AS select */ |
| 108479 | | -#line 386 "parse.y" |
| 108480 | 108245 | { |
| 108481 | 108246 | sqlite3CreateView(pParse, &yymsp[-7].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, yymsp[0].minor.yy387, yymsp[-6].minor.yy4, yymsp[-4].minor.yy4); |
| 108482 | 108247 | } |
| 108483 | | -#line 2496 "parse.c" |
| 108484 | 108248 | break; |
| 108485 | 108249 | case 111: /* cmd ::= DROP VIEW ifexists fullname */ |
| 108486 | | -#line 389 "parse.y" |
| 108487 | 108250 | { |
| 108488 | 108251 | sqlite3DropTable(pParse, yymsp[0].minor.yy259, 1, yymsp[-1].minor.yy4); |
| 108489 | 108252 | } |
| 108490 | | -#line 2503 "parse.c" |
| 108491 | 108253 | break; |
| 108492 | 108254 | case 112: /* cmd ::= select */ |
| 108493 | | -#line 396 "parse.y" |
| 108494 | 108255 | { |
| 108495 | 108256 | SelectDest dest = {SRT_Output, 0, 0, 0, 0}; |
| 108496 | 108257 | sqlite3Select(pParse, yymsp[0].minor.yy387, &dest); |
| 108497 | 108258 | sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy387); |
| 108498 | 108259 | } |
| 108499 | | -#line 2512 "parse.c" |
| 108500 | 108260 | break; |
| 108501 | 108261 | case 113: /* select ::= oneselect */ |
| 108502 | | -#line 407 "parse.y" |
| 108503 | 108262 | {yygotominor.yy387 = yymsp[0].minor.yy387;} |
| 108504 | | -#line 2517 "parse.c" |
| 108505 | 108263 | break; |
| 108506 | 108264 | case 114: /* select ::= select multiselect_op oneselect */ |
| 108507 | | -#line 409 "parse.y" |
| 108508 | 108265 | { |
| 108509 | 108266 | if( yymsp[0].minor.yy387 ){ |
| 108510 | 108267 | yymsp[0].minor.yy387->op = (u8)yymsp[-1].minor.yy4; |
| 108511 | 108268 | yymsp[0].minor.yy387->pPrior = yymsp[-2].minor.yy387; |
| 108512 | 108269 | }else{ |
| 108513 | 108270 | sqlite3SelectDelete(pParse->db, yymsp[-2].minor.yy387); |
| 108514 | 108271 | } |
| 108515 | 108272 | yygotominor.yy387 = yymsp[0].minor.yy387; |
| 108516 | 108273 | } |
| 108517 | | -#line 2530 "parse.c" |
| 108518 | 108274 | break; |
| 108519 | 108275 | case 116: /* multiselect_op ::= UNION ALL */ |
| 108520 | | -#line 420 "parse.y" |
| 108521 | 108276 | {yygotominor.yy4 = TK_ALL;} |
| 108522 | | -#line 2535 "parse.c" |
| 108523 | 108277 | break; |
| 108524 | 108278 | case 118: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ |
| 108525 | | -#line 424 "parse.y" |
| 108526 | 108279 | { |
| 108527 | 108280 | yygotominor.yy387 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy322,yymsp[-5].minor.yy259,yymsp[-4].minor.yy314,yymsp[-3].minor.yy322,yymsp[-2].minor.yy314,yymsp[-1].minor.yy322,yymsp[-7].minor.yy4,yymsp[0].minor.yy292.pLimit,yymsp[0].minor.yy292.pOffset); |
| 108528 | 108281 | } |
| 108529 | | -#line 2542 "parse.c" |
| 108530 | 108282 | break; |
| 108531 | 108283 | case 122: /* sclp ::= selcollist COMMA */ |
| 108532 | 108284 | case 247: /* idxlist_opt ::= LP idxlist RP */ yytestcase(yyruleno==247); |
| 108533 | | -#line 445 "parse.y" |
| 108534 | 108285 | {yygotominor.yy322 = yymsp[-1].minor.yy322;} |
| 108535 | | -#line 2548 "parse.c" |
| 108536 | 108286 | break; |
| 108537 | 108287 | case 123: /* sclp ::= */ |
| 108538 | 108288 | case 151: /* orderby_opt ::= */ yytestcase(yyruleno==151); |
| 108539 | 108289 | case 159: /* groupby_opt ::= */ yytestcase(yyruleno==159); |
| 108540 | 108290 | case 240: /* exprlist ::= */ yytestcase(yyruleno==240); |
| 108541 | 108291 | case 246: /* idxlist_opt ::= */ yytestcase(yyruleno==246); |
| 108542 | | -#line 446 "parse.y" |
| 108543 | 108292 | {yygotominor.yy322 = 0;} |
| 108544 | | -#line 2557 "parse.c" |
| 108545 | 108293 | break; |
| 108546 | 108294 | case 124: /* selcollist ::= sclp expr as */ |
| 108547 | | -#line 447 "parse.y" |
| 108548 | 108295 | { |
| 108549 | 108296 | yygotominor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy322, yymsp[-1].minor.yy118.pExpr); |
| 108550 | 108297 | if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yygotominor.yy322, &yymsp[0].minor.yy0, 1); |
| 108551 | 108298 | sqlite3ExprListSetSpan(pParse,yygotominor.yy322,&yymsp[-1].minor.yy118); |
| 108552 | 108299 | } |
| 108553 | | -#line 2566 "parse.c" |
| 108554 | 108300 | break; |
| 108555 | 108301 | case 125: /* selcollist ::= sclp STAR */ |
| 108556 | | -#line 452 "parse.y" |
| 108557 | 108302 | { |
| 108558 | 108303 | Expr *p = sqlite3Expr(pParse->db, TK_ALL, 0); |
| 108559 | 108304 | yygotominor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-1].minor.yy322, p); |
| 108560 | 108305 | } |
| 108561 | | -#line 2574 "parse.c" |
| 108562 | 108306 | break; |
| 108563 | 108307 | case 126: /* selcollist ::= sclp nm DOT STAR */ |
| 108564 | | -#line 456 "parse.y" |
| 108565 | 108308 | { |
| 108566 | 108309 | Expr *pRight = sqlite3PExpr(pParse, TK_ALL, 0, 0, &yymsp[0].minor.yy0); |
| 108567 | 108310 | Expr *pLeft = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0); |
| 108568 | 108311 | Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight, 0); |
| 108569 | 108312 | yygotominor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322, pDot); |
| 108570 | 108313 | } |
| 108571 | | -#line 2584 "parse.c" |
| 108572 | 108314 | break; |
| 108573 | 108315 | case 129: /* as ::= */ |
| 108574 | | -#line 469 "parse.y" |
| 108575 | 108316 | {yygotominor.yy0.n = 0;} |
| 108576 | | -#line 2589 "parse.c" |
| 108577 | 108317 | break; |
| 108578 | 108318 | case 130: /* from ::= */ |
| 108579 | | -#line 481 "parse.y" |
| 108580 | 108319 | {yygotominor.yy259 = sqlite3DbMallocZero(pParse->db, sizeof(*yygotominor.yy259));} |
| 108581 | | -#line 2594 "parse.c" |
| 108582 | 108320 | break; |
| 108583 | 108321 | case 131: /* from ::= FROM seltablist */ |
| 108584 | | -#line 482 "parse.y" |
| 108585 | 108322 | { |
| 108586 | 108323 | yygotominor.yy259 = yymsp[0].minor.yy259; |
| 108587 | 108324 | sqlite3SrcListShiftJoinType(yygotominor.yy259); |
| 108588 | 108325 | } |
| 108589 | | -#line 2602 "parse.c" |
| 108590 | 108326 | break; |
| 108591 | 108327 | case 132: /* stl_prefix ::= seltablist joinop */ |
| 108592 | | -#line 490 "parse.y" |
| 108593 | 108328 | { |
| 108594 | 108329 | yygotominor.yy259 = yymsp[-1].minor.yy259; |
| 108595 | 108330 | if( ALWAYS(yygotominor.yy259 && yygotominor.yy259->nSrc>0) ) yygotominor.yy259->a[yygotominor.yy259->nSrc-1].jointype = (u8)yymsp[0].minor.yy4; |
| 108596 | 108331 | } |
| 108597 | | -#line 2610 "parse.c" |
| 108598 | 108332 | break; |
| 108599 | 108333 | case 133: /* stl_prefix ::= */ |
| 108600 | | -#line 494 "parse.y" |
| 108601 | 108334 | {yygotominor.yy259 = 0;} |
| 108602 | | -#line 2615 "parse.c" |
| 108603 | 108335 | break; |
| 108604 | 108336 | case 134: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ |
| 108605 | | -#line 495 "parse.y" |
| 108606 | 108337 | { |
| 108607 | 108338 | yygotominor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy259,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy314,yymsp[0].minor.yy384); |
| 108608 | 108339 | sqlite3SrcListIndexedBy(pParse, yygotominor.yy259, &yymsp[-2].minor.yy0); |
| 108609 | 108340 | } |
| 108610 | | -#line 2623 "parse.c" |
| 108611 | 108341 | break; |
| 108612 | 108342 | case 135: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */ |
| 108613 | | -#line 501 "parse.y" |
| 108614 | 108343 | { |
| 108615 | 108344 | yygotominor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy259,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy387,yymsp[-1].minor.yy314,yymsp[0].minor.yy384); |
| 108616 | 108345 | } |
| 108617 | | -#line 2630 "parse.c" |
| 108618 | 108346 | break; |
| 108619 | 108347 | case 136: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ |
| 108620 | | -#line 505 "parse.y" |
| 108621 | 108348 | { |
| 108622 | 108349 | if( yymsp[-6].minor.yy259==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy314==0 && yymsp[0].minor.yy384==0 ){ |
| 108623 | 108350 | yygotominor.yy259 = yymsp[-4].minor.yy259; |
| 108624 | 108351 | }else{ |
| 108625 | 108352 | Select *pSubquery; |
| | @@ -108626,260 +108353,180 @@ |
| 108626 | 108353 | sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy259); |
| 108627 | 108354 | pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy259,0,0,0,0,0,0,0); |
| 108628 | 108355 | yygotominor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy259,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy314,yymsp[0].minor.yy384); |
| 108629 | 108356 | } |
| 108630 | 108357 | } |
| 108631 | | -#line 2644 "parse.c" |
| 108632 | 108358 | break; |
| 108633 | 108359 | case 137: /* dbnm ::= */ |
| 108634 | 108360 | case 146: /* indexed_opt ::= */ yytestcase(yyruleno==146); |
| 108635 | | -#line 530 "parse.y" |
| 108636 | 108361 | {yygotominor.yy0.z=0; yygotominor.yy0.n=0;} |
| 108637 | | -#line 2650 "parse.c" |
| 108638 | 108362 | break; |
| 108639 | 108363 | case 139: /* fullname ::= nm dbnm */ |
| 108640 | | -#line 535 "parse.y" |
| 108641 | 108364 | {yygotominor.yy259 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);} |
| 108642 | | -#line 2655 "parse.c" |
| 108643 | 108365 | break; |
| 108644 | 108366 | case 140: /* joinop ::= COMMA|JOIN */ |
| 108645 | | -#line 539 "parse.y" |
| 108646 | 108367 | { yygotominor.yy4 = JT_INNER; } |
| 108647 | | -#line 2660 "parse.c" |
| 108648 | 108368 | break; |
| 108649 | 108369 | case 141: /* joinop ::= JOIN_KW JOIN */ |
| 108650 | | -#line 540 "parse.y" |
| 108651 | 108370 | { yygotominor.yy4 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); } |
| 108652 | | -#line 2665 "parse.c" |
| 108653 | 108371 | break; |
| 108654 | 108372 | case 142: /* joinop ::= JOIN_KW nm JOIN */ |
| 108655 | | -#line 541 "parse.y" |
| 108656 | 108373 | { yygotominor.yy4 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); } |
| 108657 | | -#line 2670 "parse.c" |
| 108658 | 108374 | break; |
| 108659 | 108375 | case 143: /* joinop ::= JOIN_KW nm nm JOIN */ |
| 108660 | | -#line 543 "parse.y" |
| 108661 | 108376 | { yygotominor.yy4 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); } |
| 108662 | | -#line 2675 "parse.c" |
| 108663 | 108377 | break; |
| 108664 | 108378 | case 144: /* on_opt ::= ON expr */ |
| 108665 | 108379 | case 155: /* sortitem ::= expr */ yytestcase(yyruleno==155); |
| 108666 | 108380 | case 162: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==162); |
| 108667 | 108381 | case 169: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==169); |
| 108668 | 108382 | case 235: /* case_else ::= ELSE expr */ yytestcase(yyruleno==235); |
| 108669 | 108383 | case 237: /* case_operand ::= expr */ yytestcase(yyruleno==237); |
| 108670 | | -#line 547 "parse.y" |
| 108671 | 108384 | {yygotominor.yy314 = yymsp[0].minor.yy118.pExpr;} |
| 108672 | | -#line 2685 "parse.c" |
| 108673 | 108385 | break; |
| 108674 | 108386 | case 145: /* on_opt ::= */ |
| 108675 | 108387 | case 161: /* having_opt ::= */ yytestcase(yyruleno==161); |
| 108676 | 108388 | case 168: /* where_opt ::= */ yytestcase(yyruleno==168); |
| 108677 | 108389 | case 236: /* case_else ::= */ yytestcase(yyruleno==236); |
| 108678 | 108390 | case 238: /* case_operand ::= */ yytestcase(yyruleno==238); |
| 108679 | | -#line 548 "parse.y" |
| 108680 | 108391 | {yygotominor.yy314 = 0;} |
| 108681 | | -#line 2694 "parse.c" |
| 108682 | 108392 | break; |
| 108683 | 108393 | case 148: /* indexed_opt ::= NOT INDEXED */ |
| 108684 | | -#line 563 "parse.y" |
| 108685 | 108394 | {yygotominor.yy0.z=0; yygotominor.yy0.n=1;} |
| 108686 | | -#line 2699 "parse.c" |
| 108687 | 108395 | break; |
| 108688 | 108396 | case 149: /* using_opt ::= USING LP inscollist RP */ |
| 108689 | 108397 | case 181: /* inscollist_opt ::= LP inscollist RP */ yytestcase(yyruleno==181); |
| 108690 | | -#line 567 "parse.y" |
| 108691 | 108398 | {yygotominor.yy384 = yymsp[-1].minor.yy384;} |
| 108692 | | -#line 2705 "parse.c" |
| 108693 | 108399 | break; |
| 108694 | 108400 | case 150: /* using_opt ::= */ |
| 108695 | 108401 | case 180: /* inscollist_opt ::= */ yytestcase(yyruleno==180); |
| 108696 | | -#line 568 "parse.y" |
| 108697 | 108402 | {yygotominor.yy384 = 0;} |
| 108698 | | -#line 2711 "parse.c" |
| 108699 | 108403 | break; |
| 108700 | 108404 | case 152: /* orderby_opt ::= ORDER BY sortlist */ |
| 108701 | 108405 | case 160: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==160); |
| 108702 | 108406 | case 239: /* exprlist ::= nexprlist */ yytestcase(yyruleno==239); |
| 108703 | | -#line 579 "parse.y" |
| 108704 | 108407 | {yygotominor.yy322 = yymsp[0].minor.yy322;} |
| 108705 | | -#line 2718 "parse.c" |
| 108706 | 108408 | break; |
| 108707 | 108409 | case 153: /* sortlist ::= sortlist COMMA sortitem sortorder */ |
| 108708 | | -#line 580 "parse.y" |
| 108709 | 108410 | { |
| 108710 | 108411 | yygotominor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322,yymsp[-1].minor.yy314); |
| 108711 | 108412 | if( yygotominor.yy322 ) yygotominor.yy322->a[yygotominor.yy322->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy4; |
| 108712 | 108413 | } |
| 108713 | | -#line 2726 "parse.c" |
| 108714 | 108414 | break; |
| 108715 | 108415 | case 154: /* sortlist ::= sortitem sortorder */ |
| 108716 | | -#line 584 "parse.y" |
| 108717 | 108416 | { |
| 108718 | 108417 | yygotominor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy314); |
| 108719 | 108418 | if( yygotominor.yy322 && ALWAYS(yygotominor.yy322->a) ) yygotominor.yy322->a[0].sortOrder = (u8)yymsp[0].minor.yy4; |
| 108720 | 108419 | } |
| 108721 | | -#line 2734 "parse.c" |
| 108722 | 108420 | break; |
| 108723 | 108421 | case 156: /* sortorder ::= ASC */ |
| 108724 | 108422 | case 158: /* sortorder ::= */ yytestcase(yyruleno==158); |
| 108725 | | -#line 592 "parse.y" |
| 108726 | 108423 | {yygotominor.yy4 = SQLITE_SO_ASC;} |
| 108727 | | -#line 2740 "parse.c" |
| 108728 | 108424 | break; |
| 108729 | 108425 | case 157: /* sortorder ::= DESC */ |
| 108730 | | -#line 593 "parse.y" |
| 108731 | 108426 | {yygotominor.yy4 = SQLITE_SO_DESC;} |
| 108732 | | -#line 2745 "parse.c" |
| 108733 | 108427 | break; |
| 108734 | 108428 | case 163: /* limit_opt ::= */ |
| 108735 | | -#line 619 "parse.y" |
| 108736 | 108429 | {yygotominor.yy292.pLimit = 0; yygotominor.yy292.pOffset = 0;} |
| 108737 | | -#line 2750 "parse.c" |
| 108738 | 108430 | break; |
| 108739 | 108431 | case 164: /* limit_opt ::= LIMIT expr */ |
| 108740 | | -#line 620 "parse.y" |
| 108741 | 108432 | {yygotominor.yy292.pLimit = yymsp[0].minor.yy118.pExpr; yygotominor.yy292.pOffset = 0;} |
| 108742 | | -#line 2755 "parse.c" |
| 108743 | 108433 | break; |
| 108744 | 108434 | case 165: /* limit_opt ::= LIMIT expr OFFSET expr */ |
| 108745 | | -#line 622 "parse.y" |
| 108746 | 108435 | {yygotominor.yy292.pLimit = yymsp[-2].minor.yy118.pExpr; yygotominor.yy292.pOffset = yymsp[0].minor.yy118.pExpr;} |
| 108747 | | -#line 2760 "parse.c" |
| 108748 | 108436 | break; |
| 108749 | 108437 | case 166: /* limit_opt ::= LIMIT expr COMMA expr */ |
| 108750 | | -#line 624 "parse.y" |
| 108751 | 108438 | {yygotominor.yy292.pOffset = yymsp[-2].minor.yy118.pExpr; yygotominor.yy292.pLimit = yymsp[0].minor.yy118.pExpr;} |
| 108752 | | -#line 2765 "parse.c" |
| 108753 | 108439 | break; |
| 108754 | 108440 | case 167: /* cmd ::= DELETE FROM fullname indexed_opt where_opt */ |
| 108755 | | -#line 637 "parse.y" |
| 108756 | 108441 | { |
| 108757 | 108442 | sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy259, &yymsp[-1].minor.yy0); |
| 108758 | 108443 | sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy259,yymsp[0].minor.yy314); |
| 108759 | 108444 | } |
| 108760 | | -#line 2773 "parse.c" |
| 108761 | 108445 | break; |
| 108762 | 108446 | case 170: /* cmd ::= UPDATE orconf fullname indexed_opt SET setlist where_opt */ |
| 108763 | | -#line 660 "parse.y" |
| 108764 | 108447 | { |
| 108765 | 108448 | sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy259, &yymsp[-3].minor.yy0); |
| 108766 | 108449 | sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy322,"set list"); |
| 108767 | 108450 | sqlite3Update(pParse,yymsp[-4].minor.yy259,yymsp[-1].minor.yy322,yymsp[0].minor.yy314,yymsp[-5].minor.yy210); |
| 108768 | 108451 | } |
| 108769 | | -#line 2782 "parse.c" |
| 108770 | 108452 | break; |
| 108771 | 108453 | case 171: /* setlist ::= setlist COMMA nm EQ expr */ |
| 108772 | | -#line 670 "parse.y" |
| 108773 | 108454 | { |
| 108774 | 108455 | yygotominor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy322, yymsp[0].minor.yy118.pExpr); |
| 108775 | 108456 | sqlite3ExprListSetName(pParse, yygotominor.yy322, &yymsp[-2].minor.yy0, 1); |
| 108776 | 108457 | } |
| 108777 | | -#line 2790 "parse.c" |
| 108778 | 108458 | break; |
| 108779 | 108459 | case 172: /* setlist ::= nm EQ expr */ |
| 108780 | | -#line 674 "parse.y" |
| 108781 | 108460 | { |
| 108782 | 108461 | yygotominor.yy322 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy118.pExpr); |
| 108783 | 108462 | sqlite3ExprListSetName(pParse, yygotominor.yy322, &yymsp[-2].minor.yy0, 1); |
| 108784 | 108463 | } |
| 108785 | | -#line 2798 "parse.c" |
| 108786 | 108464 | break; |
| 108787 | 108465 | case 173: /* cmd ::= insert_cmd INTO fullname inscollist_opt VALUES LP itemlist RP */ |
| 108788 | | -#line 683 "parse.y" |
| 108789 | 108466 | {sqlite3Insert(pParse, yymsp[-5].minor.yy259, yymsp[-1].minor.yy322, 0, yymsp[-4].minor.yy384, yymsp[-7].minor.yy210);} |
| 108790 | | -#line 2803 "parse.c" |
| 108791 | 108467 | break; |
| 108792 | 108468 | case 174: /* cmd ::= insert_cmd INTO fullname inscollist_opt select */ |
| 108793 | | -#line 685 "parse.y" |
| 108794 | 108469 | {sqlite3Insert(pParse, yymsp[-2].minor.yy259, 0, yymsp[0].minor.yy387, yymsp[-1].minor.yy384, yymsp[-4].minor.yy210);} |
| 108795 | | -#line 2808 "parse.c" |
| 108796 | 108470 | break; |
| 108797 | 108471 | case 175: /* cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUES */ |
| 108798 | | -#line 687 "parse.y" |
| 108799 | 108472 | {sqlite3Insert(pParse, yymsp[-3].minor.yy259, 0, 0, yymsp[-2].minor.yy384, yymsp[-5].minor.yy210);} |
| 108800 | | -#line 2813 "parse.c" |
| 108801 | 108473 | break; |
| 108802 | 108474 | case 176: /* insert_cmd ::= INSERT orconf */ |
| 108803 | | -#line 690 "parse.y" |
| 108804 | 108475 | {yygotominor.yy210 = yymsp[0].minor.yy210;} |
| 108805 | | -#line 2818 "parse.c" |
| 108806 | 108476 | break; |
| 108807 | 108477 | case 177: /* insert_cmd ::= REPLACE */ |
| 108808 | | -#line 691 "parse.y" |
| 108809 | 108478 | {yygotominor.yy210 = OE_Replace;} |
| 108810 | | -#line 2823 "parse.c" |
| 108811 | 108479 | break; |
| 108812 | 108480 | case 178: /* itemlist ::= itemlist COMMA expr */ |
| 108813 | 108481 | case 241: /* nexprlist ::= nexprlist COMMA expr */ yytestcase(yyruleno==241); |
| 108814 | | -#line 698 "parse.y" |
| 108815 | 108482 | {yygotominor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[0].minor.yy118.pExpr);} |
| 108816 | | -#line 2829 "parse.c" |
| 108817 | 108483 | break; |
| 108818 | 108484 | case 179: /* itemlist ::= expr */ |
| 108819 | 108485 | case 242: /* nexprlist ::= expr */ yytestcase(yyruleno==242); |
| 108820 | | -#line 700 "parse.y" |
| 108821 | 108486 | {yygotominor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy118.pExpr);} |
| 108822 | | -#line 2835 "parse.c" |
| 108823 | 108487 | break; |
| 108824 | 108488 | case 182: /* inscollist ::= inscollist COMMA nm */ |
| 108825 | | -#line 710 "parse.y" |
| 108826 | 108489 | {yygotominor.yy384 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy384,&yymsp[0].minor.yy0);} |
| 108827 | | -#line 2840 "parse.c" |
| 108828 | 108490 | break; |
| 108829 | 108491 | case 183: /* inscollist ::= nm */ |
| 108830 | | -#line 712 "parse.y" |
| 108831 | 108492 | {yygotominor.yy384 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0);} |
| 108832 | | -#line 2845 "parse.c" |
| 108833 | 108493 | break; |
| 108834 | 108494 | case 184: /* expr ::= term */ |
| 108835 | | -#line 743 "parse.y" |
| 108836 | 108495 | {yygotominor.yy118 = yymsp[0].minor.yy118;} |
| 108837 | | -#line 2850 "parse.c" |
| 108838 | 108496 | break; |
| 108839 | 108497 | case 185: /* expr ::= LP expr RP */ |
| 108840 | | -#line 744 "parse.y" |
| 108841 | 108498 | {yygotominor.yy118.pExpr = yymsp[-1].minor.yy118.pExpr; spanSet(&yygotominor.yy118,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);} |
| 108842 | | -#line 2855 "parse.c" |
| 108843 | 108499 | break; |
| 108844 | 108500 | case 186: /* term ::= NULL */ |
| 108845 | 108501 | case 191: /* term ::= INTEGER|FLOAT|BLOB */ yytestcase(yyruleno==191); |
| 108846 | 108502 | case 192: /* term ::= STRING */ yytestcase(yyruleno==192); |
| 108847 | | -#line 745 "parse.y" |
| 108848 | 108503 | {spanExpr(&yygotominor.yy118, pParse, yymsp[0].major, &yymsp[0].minor.yy0);} |
| 108849 | | -#line 2862 "parse.c" |
| 108850 | 108504 | break; |
| 108851 | 108505 | case 187: /* expr ::= id */ |
| 108852 | 108506 | case 188: /* expr ::= JOIN_KW */ yytestcase(yyruleno==188); |
| 108853 | | -#line 746 "parse.y" |
| 108854 | 108507 | {spanExpr(&yygotominor.yy118, pParse, TK_ID, &yymsp[0].minor.yy0);} |
| 108855 | | -#line 2868 "parse.c" |
| 108856 | 108508 | break; |
| 108857 | 108509 | case 189: /* expr ::= nm DOT nm */ |
| 108858 | | -#line 748 "parse.y" |
| 108859 | 108510 | { |
| 108860 | 108511 | Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0); |
| 108861 | 108512 | Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0); |
| 108862 | 108513 | yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp2, 0); |
| 108863 | 108514 | spanSet(&yygotominor.yy118,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); |
| 108864 | 108515 | } |
| 108865 | | -#line 2878 "parse.c" |
| 108866 | 108516 | break; |
| 108867 | 108517 | case 190: /* expr ::= nm DOT nm DOT nm */ |
| 108868 | | -#line 754 "parse.y" |
| 108869 | 108518 | { |
| 108870 | 108519 | Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-4].minor.yy0); |
| 108871 | 108520 | Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0); |
| 108872 | 108521 | Expr *temp3 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0); |
| 108873 | 108522 | Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3, 0); |
| 108874 | 108523 | yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp4, 0); |
| 108875 | 108524 | spanSet(&yygotominor.yy118,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); |
| 108876 | 108525 | } |
| 108877 | | -#line 2890 "parse.c" |
| 108878 | 108526 | break; |
| 108879 | 108527 | case 193: /* expr ::= REGISTER */ |
| 108880 | | -#line 764 "parse.y" |
| 108881 | 108528 | { |
| 108882 | 108529 | /* When doing a nested parse, one can include terms in an expression |
| 108883 | 108530 | ** that look like this: #1 #2 ... These terms refer to registers |
| 108884 | 108531 | ** in the virtual machine. #N is the N-th register. */ |
| 108885 | 108532 | if( pParse->nested==0 ){ |
| | @@ -108889,40 +108536,32 @@ |
| 108889 | 108536 | yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_REGISTER, 0, 0, &yymsp[0].minor.yy0); |
| 108890 | 108537 | if( yygotominor.yy118.pExpr ) sqlite3GetInt32(&yymsp[0].minor.yy0.z[1], &yygotominor.yy118.pExpr->iTable); |
| 108891 | 108538 | } |
| 108892 | 108539 | spanSet(&yygotominor.yy118, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0); |
| 108893 | 108540 | } |
| 108894 | | -#line 2907 "parse.c" |
| 108895 | 108541 | break; |
| 108896 | 108542 | case 194: /* expr ::= VARIABLE */ |
| 108897 | | -#line 777 "parse.y" |
| 108898 | 108543 | { |
| 108899 | 108544 | spanExpr(&yygotominor.yy118, pParse, TK_VARIABLE, &yymsp[0].minor.yy0); |
| 108900 | 108545 | sqlite3ExprAssignVarNumber(pParse, yygotominor.yy118.pExpr); |
| 108901 | 108546 | spanSet(&yygotominor.yy118, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0); |
| 108902 | 108547 | } |
| 108903 | | -#line 2916 "parse.c" |
| 108904 | 108548 | break; |
| 108905 | 108549 | case 195: /* expr ::= expr COLLATE ids */ |
| 108906 | | -#line 782 "parse.y" |
| 108907 | 108550 | { |
| 108908 | 108551 | yygotominor.yy118.pExpr = sqlite3ExprSetCollByToken(pParse, yymsp[-2].minor.yy118.pExpr, &yymsp[0].minor.yy0); |
| 108909 | 108552 | yygotominor.yy118.zStart = yymsp[-2].minor.yy118.zStart; |
| 108910 | 108553 | yygotominor.yy118.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; |
| 108911 | 108554 | } |
| 108912 | | -#line 2925 "parse.c" |
| 108913 | 108555 | break; |
| 108914 | 108556 | case 196: /* expr ::= CAST LP expr AS typetoken RP */ |
| 108915 | | -#line 788 "parse.y" |
| 108916 | 108557 | { |
| 108917 | 108558 | yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_CAST, yymsp[-3].minor.yy118.pExpr, 0, &yymsp[-1].minor.yy0); |
| 108918 | 108559 | spanSet(&yygotominor.yy118,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0); |
| 108919 | 108560 | } |
| 108920 | | -#line 2933 "parse.c" |
| 108921 | 108561 | break; |
| 108922 | 108562 | case 197: /* expr ::= ID LP distinct exprlist RP */ |
| 108923 | | -#line 793 "parse.y" |
| 108924 | 108563 | { |
| 108925 | 108564 | if( yymsp[-1].minor.yy322 && yymsp[-1].minor.yy322->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){ |
| 108926 | 108565 | sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0); |
| 108927 | 108566 | } |
| 108928 | 108567 | yygotominor.yy118.pExpr = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy322, &yymsp[-4].minor.yy0); |
| | @@ -108929,59 +108568,47 @@ |
| 108929 | 108568 | spanSet(&yygotominor.yy118,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); |
| 108930 | 108569 | if( yymsp[-2].minor.yy4 && yygotominor.yy118.pExpr ){ |
| 108931 | 108570 | yygotominor.yy118.pExpr->flags |= EP_Distinct; |
| 108932 | 108571 | } |
| 108933 | 108572 | } |
| 108934 | | -#line 2947 "parse.c" |
| 108935 | 108573 | break; |
| 108936 | 108574 | case 198: /* expr ::= ID LP STAR RP */ |
| 108937 | | -#line 803 "parse.y" |
| 108938 | 108575 | { |
| 108939 | 108576 | yygotominor.yy118.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0); |
| 108940 | 108577 | spanSet(&yygotominor.yy118,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); |
| 108941 | 108578 | } |
| 108942 | | -#line 2955 "parse.c" |
| 108943 | 108579 | break; |
| 108944 | 108580 | case 199: /* term ::= CTIME_KW */ |
| 108945 | | -#line 807 "parse.y" |
| 108946 | 108581 | { |
| 108947 | 108582 | /* The CURRENT_TIME, CURRENT_DATE, and CURRENT_TIMESTAMP values are |
| 108948 | 108583 | ** treated as functions that return constants */ |
| 108949 | 108584 | yygotominor.yy118.pExpr = sqlite3ExprFunction(pParse, 0,&yymsp[0].minor.yy0); |
| 108950 | 108585 | if( yygotominor.yy118.pExpr ){ |
| 108951 | 108586 | yygotominor.yy118.pExpr->op = TK_CONST_FUNC; |
| 108952 | 108587 | } |
| 108953 | 108588 | spanSet(&yygotominor.yy118, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0); |
| 108954 | 108589 | } |
| 108955 | | -#line 2968 "parse.c" |
| 108956 | 108590 | break; |
| 108957 | 108591 | case 200: /* expr ::= expr AND expr */ |
| 108958 | 108592 | case 201: /* expr ::= expr OR expr */ yytestcase(yyruleno==201); |
| 108959 | 108593 | case 202: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==202); |
| 108960 | 108594 | case 203: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==203); |
| 108961 | 108595 | case 204: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==204); |
| 108962 | 108596 | case 205: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==205); |
| 108963 | 108597 | case 206: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==206); |
| 108964 | 108598 | case 207: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==207); |
| 108965 | | -#line 834 "parse.y" |
| 108966 | 108599 | {spanBinaryExpr(&yygotominor.yy118,pParse,yymsp[-1].major,&yymsp[-2].minor.yy118,&yymsp[0].minor.yy118);} |
| 108967 | | -#line 2980 "parse.c" |
| 108968 | 108600 | break; |
| 108969 | 108601 | case 208: /* likeop ::= LIKE_KW */ |
| 108970 | 108602 | case 210: /* likeop ::= MATCH */ yytestcase(yyruleno==210); |
| 108971 | | -#line 847 "parse.y" |
| 108972 | 108603 | {yygotominor.yy342.eOperator = yymsp[0].minor.yy0; yygotominor.yy342.not = 0;} |
| 108973 | | -#line 2986 "parse.c" |
| 108974 | 108604 | break; |
| 108975 | 108605 | case 209: /* likeop ::= NOT LIKE_KW */ |
| 108976 | 108606 | case 211: /* likeop ::= NOT MATCH */ yytestcase(yyruleno==211); |
| 108977 | | -#line 848 "parse.y" |
| 108978 | 108607 | {yygotominor.yy342.eOperator = yymsp[0].minor.yy0; yygotominor.yy342.not = 1;} |
| 108979 | | -#line 2992 "parse.c" |
| 108980 | 108608 | break; |
| 108981 | 108609 | case 212: /* expr ::= expr likeop expr */ |
| 108982 | | -#line 851 "parse.y" |
| 108983 | 108610 | { |
| 108984 | 108611 | ExprList *pList; |
| 108985 | 108612 | pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy118.pExpr); |
| 108986 | 108613 | pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy118.pExpr); |
| 108987 | 108614 | yygotominor.yy118.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy342.eOperator); |
| | @@ -108988,14 +108615,12 @@ |
| 108988 | 108615 | if( yymsp[-1].minor.yy342.not ) yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy118.pExpr, 0, 0); |
| 108989 | 108616 | yygotominor.yy118.zStart = yymsp[-2].minor.yy118.zStart; |
| 108990 | 108617 | yygotominor.yy118.zEnd = yymsp[0].minor.yy118.zEnd; |
| 108991 | 108618 | if( yygotominor.yy118.pExpr ) yygotominor.yy118.pExpr->flags |= EP_InfixFunc; |
| 108992 | 108619 | } |
| 108993 | | -#line 3006 "parse.c" |
| 108994 | 108620 | break; |
| 108995 | 108621 | case 213: /* expr ::= expr likeop expr ESCAPE expr */ |
| 108996 | | -#line 861 "parse.y" |
| 108997 | 108622 | { |
| 108998 | 108623 | ExprList *pList; |
| 108999 | 108624 | pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy118.pExpr); |
| 109000 | 108625 | pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy118.pExpr); |
| 109001 | 108626 | pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy118.pExpr); |
| | @@ -109003,56 +108628,40 @@ |
| 109003 | 108628 | if( yymsp[-3].minor.yy342.not ) yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy118.pExpr, 0, 0); |
| 109004 | 108629 | yygotominor.yy118.zStart = yymsp[-4].minor.yy118.zStart; |
| 109005 | 108630 | yygotominor.yy118.zEnd = yymsp[0].minor.yy118.zEnd; |
| 109006 | 108631 | if( yygotominor.yy118.pExpr ) yygotominor.yy118.pExpr->flags |= EP_InfixFunc; |
| 109007 | 108632 | } |
| 109008 | | -#line 3021 "parse.c" |
| 109009 | 108633 | break; |
| 109010 | 108634 | case 214: /* expr ::= expr ISNULL|NOTNULL */ |
| 109011 | | -#line 889 "parse.y" |
| 109012 | 108635 | {spanUnaryPostfix(&yygotominor.yy118,pParse,yymsp[0].major,&yymsp[-1].minor.yy118,&yymsp[0].minor.yy0);} |
| 109013 | | -#line 3026 "parse.c" |
| 109014 | 108636 | break; |
| 109015 | 108637 | case 215: /* expr ::= expr NOT NULL */ |
| 109016 | | -#line 890 "parse.y" |
| 109017 | 108638 | {spanUnaryPostfix(&yygotominor.yy118,pParse,TK_NOTNULL,&yymsp[-2].minor.yy118,&yymsp[0].minor.yy0);} |
| 109018 | | -#line 3031 "parse.c" |
| 109019 | 108639 | break; |
| 109020 | 108640 | case 216: /* expr ::= expr IS expr */ |
| 109021 | | -#line 911 "parse.y" |
| 109022 | 108641 | { |
| 109023 | 108642 | spanBinaryExpr(&yygotominor.yy118,pParse,TK_IS,&yymsp[-2].minor.yy118,&yymsp[0].minor.yy118); |
| 109024 | 108643 | binaryToUnaryIfNull(pParse, yymsp[0].minor.yy118.pExpr, yygotominor.yy118.pExpr, TK_ISNULL); |
| 109025 | 108644 | } |
| 109026 | | -#line 3039 "parse.c" |
| 109027 | 108645 | break; |
| 109028 | 108646 | case 217: /* expr ::= expr IS NOT expr */ |
| 109029 | | -#line 915 "parse.y" |
| 109030 | 108647 | { |
| 109031 | 108648 | spanBinaryExpr(&yygotominor.yy118,pParse,TK_ISNOT,&yymsp[-3].minor.yy118,&yymsp[0].minor.yy118); |
| 109032 | 108649 | binaryToUnaryIfNull(pParse, yymsp[0].minor.yy118.pExpr, yygotominor.yy118.pExpr, TK_NOTNULL); |
| 109033 | 108650 | } |
| 109034 | | -#line 3047 "parse.c" |
| 109035 | 108651 | break; |
| 109036 | 108652 | case 218: /* expr ::= NOT expr */ |
| 109037 | 108653 | case 219: /* expr ::= BITNOT expr */ yytestcase(yyruleno==219); |
| 109038 | | -#line 938 "parse.y" |
| 109039 | 108654 | {spanUnaryPrefix(&yygotominor.yy118,pParse,yymsp[-1].major,&yymsp[0].minor.yy118,&yymsp[-1].minor.yy0);} |
| 109040 | | -#line 3053 "parse.c" |
| 109041 | 108655 | break; |
| 109042 | 108656 | case 220: /* expr ::= MINUS expr */ |
| 109043 | | -#line 941 "parse.y" |
| 109044 | 108657 | {spanUnaryPrefix(&yygotominor.yy118,pParse,TK_UMINUS,&yymsp[0].minor.yy118,&yymsp[-1].minor.yy0);} |
| 109045 | | -#line 3058 "parse.c" |
| 109046 | 108658 | break; |
| 109047 | 108659 | case 221: /* expr ::= PLUS expr */ |
| 109048 | | -#line 943 "parse.y" |
| 109049 | 108660 | {spanUnaryPrefix(&yygotominor.yy118,pParse,TK_UPLUS,&yymsp[0].minor.yy118,&yymsp[-1].minor.yy0);} |
| 109050 | | -#line 3063 "parse.c" |
| 109051 | 108661 | break; |
| 109052 | 108662 | case 224: /* expr ::= expr between_op expr AND expr */ |
| 109053 | | -#line 948 "parse.y" |
| 109054 | 108663 | { |
| 109055 | 108664 | ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy118.pExpr); |
| 109056 | 108665 | pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy118.pExpr); |
| 109057 | 108666 | yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy118.pExpr, 0, 0); |
| 109058 | 108667 | if( yygotominor.yy118.pExpr ){ |
| | @@ -109062,14 +108671,12 @@ |
| 109062 | 108671 | } |
| 109063 | 108672 | if( yymsp[-3].minor.yy4 ) yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy118.pExpr, 0, 0); |
| 109064 | 108673 | yygotominor.yy118.zStart = yymsp[-4].minor.yy118.zStart; |
| 109065 | 108674 | yygotominor.yy118.zEnd = yymsp[0].minor.yy118.zEnd; |
| 109066 | 108675 | } |
| 109067 | | -#line 3080 "parse.c" |
| 109068 | 108676 | break; |
| 109069 | 108677 | case 227: /* expr ::= expr in_op LP exprlist RP */ |
| 109070 | | -#line 965 "parse.y" |
| 109071 | 108678 | { |
| 109072 | 108679 | if( yymsp[-1].minor.yy322==0 ){ |
| 109073 | 108680 | /* Expressions of the form |
| 109074 | 108681 | ** |
| 109075 | 108682 | ** expr1 IN () |
| | @@ -109091,14 +108698,12 @@ |
| 109091 | 108698 | if( yymsp[-3].minor.yy4 ) yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy118.pExpr, 0, 0); |
| 109092 | 108699 | } |
| 109093 | 108700 | yygotominor.yy118.zStart = yymsp[-4].minor.yy118.zStart; |
| 109094 | 108701 | yygotominor.yy118.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; |
| 109095 | 108702 | } |
| 109096 | | -#line 3109 "parse.c" |
| 109097 | 108703 | break; |
| 109098 | 108704 | case 228: /* expr ::= LP select RP */ |
| 109099 | | -#line 990 "parse.y" |
| 109100 | 108705 | { |
| 109101 | 108706 | yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_SELECT, 0, 0, 0); |
| 109102 | 108707 | if( yygotominor.yy118.pExpr ){ |
| 109103 | 108708 | yygotominor.yy118.pExpr->x.pSelect = yymsp[-1].minor.yy387; |
| 109104 | 108709 | ExprSetProperty(yygotominor.yy118.pExpr, EP_xIsSelect); |
| | @@ -109107,14 +108712,12 @@ |
| 109107 | 108712 | sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy387); |
| 109108 | 108713 | } |
| 109109 | 108714 | yygotominor.yy118.zStart = yymsp[-2].minor.yy0.z; |
| 109110 | 108715 | yygotominor.yy118.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; |
| 109111 | 108716 | } |
| 109112 | | -#line 3125 "parse.c" |
| 109113 | 108717 | break; |
| 109114 | 108718 | case 229: /* expr ::= expr in_op LP select RP */ |
| 109115 | | -#line 1002 "parse.y" |
| 109116 | 108719 | { |
| 109117 | 108720 | yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy118.pExpr, 0, 0); |
| 109118 | 108721 | if( yygotominor.yy118.pExpr ){ |
| 109119 | 108722 | yygotominor.yy118.pExpr->x.pSelect = yymsp[-1].minor.yy387; |
| 109120 | 108723 | ExprSetProperty(yygotominor.yy118.pExpr, EP_xIsSelect); |
| | @@ -109124,14 +108727,12 @@ |
| 109124 | 108727 | } |
| 109125 | 108728 | if( yymsp[-3].minor.yy4 ) yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy118.pExpr, 0, 0); |
| 109126 | 108729 | yygotominor.yy118.zStart = yymsp[-4].minor.yy118.zStart; |
| 109127 | 108730 | yygotominor.yy118.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; |
| 109128 | 108731 | } |
| 109129 | | -#line 3142 "parse.c" |
| 109130 | 108732 | break; |
| 109131 | 108733 | case 230: /* expr ::= expr in_op nm dbnm */ |
| 109132 | | -#line 1015 "parse.y" |
| 109133 | 108734 | { |
| 109134 | 108735 | SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0); |
| 109135 | 108736 | yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-3].minor.yy118.pExpr, 0, 0); |
| 109136 | 108737 | if( yygotominor.yy118.pExpr ){ |
| 109137 | 108738 | yygotominor.yy118.pExpr->x.pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0,0); |
| | @@ -109142,14 +108743,12 @@ |
| 109142 | 108743 | } |
| 109143 | 108744 | if( yymsp[-2].minor.yy4 ) yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy118.pExpr, 0, 0); |
| 109144 | 108745 | yygotominor.yy118.zStart = yymsp[-3].minor.yy118.zStart; |
| 109145 | 108746 | yygotominor.yy118.zEnd = yymsp[0].minor.yy0.z ? &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] : &yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]; |
| 109146 | 108747 | } |
| 109147 | | -#line 3160 "parse.c" |
| 109148 | 108748 | break; |
| 109149 | 108749 | case 231: /* expr ::= EXISTS LP select RP */ |
| 109150 | | -#line 1029 "parse.y" |
| 109151 | 108750 | { |
| 109152 | 108751 | Expr *p = yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_EXISTS, 0, 0, 0); |
| 109153 | 108752 | if( p ){ |
| 109154 | 108753 | p->x.pSelect = yymsp[-1].minor.yy387; |
| 109155 | 108754 | ExprSetProperty(p, EP_xIsSelect); |
| | @@ -109158,14 +108757,12 @@ |
| 109158 | 108757 | sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy387); |
| 109159 | 108758 | } |
| 109160 | 108759 | yygotominor.yy118.zStart = yymsp[-3].minor.yy0.z; |
| 109161 | 108760 | yygotominor.yy118.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; |
| 109162 | 108761 | } |
| 109163 | | -#line 3176 "parse.c" |
| 109164 | 108762 | break; |
| 109165 | 108763 | case 232: /* expr ::= CASE case_operand case_exprlist case_else END */ |
| 109166 | | -#line 1044 "parse.y" |
| 109167 | 108764 | { |
| 109168 | 108765 | yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy314, yymsp[-1].minor.yy314, 0); |
| 109169 | 108766 | if( yygotominor.yy118.pExpr ){ |
| 109170 | 108767 | yygotominor.yy118.pExpr->x.pList = yymsp[-2].minor.yy322; |
| 109171 | 108768 | sqlite3ExprSetHeight(pParse, yygotominor.yy118.pExpr); |
| | @@ -109173,50 +108770,38 @@ |
| 109173 | 108770 | sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy322); |
| 109174 | 108771 | } |
| 109175 | 108772 | yygotominor.yy118.zStart = yymsp[-4].minor.yy0.z; |
| 109176 | 108773 | yygotominor.yy118.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; |
| 109177 | 108774 | } |
| 109178 | | -#line 3191 "parse.c" |
| 109179 | 108775 | break; |
| 109180 | 108776 | case 233: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ |
| 109181 | | -#line 1057 "parse.y" |
| 109182 | 108777 | { |
| 109183 | 108778 | yygotominor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[-2].minor.yy118.pExpr); |
| 109184 | 108779 | yygotominor.yy322 = sqlite3ExprListAppend(pParse,yygotominor.yy322, yymsp[0].minor.yy118.pExpr); |
| 109185 | 108780 | } |
| 109186 | | -#line 3199 "parse.c" |
| 109187 | 108781 | break; |
| 109188 | 108782 | case 234: /* case_exprlist ::= WHEN expr THEN expr */ |
| 109189 | | -#line 1061 "parse.y" |
| 109190 | 108783 | { |
| 109191 | 108784 | yygotominor.yy322 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy118.pExpr); |
| 109192 | 108785 | yygotominor.yy322 = sqlite3ExprListAppend(pParse,yygotominor.yy322, yymsp[0].minor.yy118.pExpr); |
| 109193 | 108786 | } |
| 109194 | | -#line 3207 "parse.c" |
| 109195 | 108787 | break; |
| 109196 | 108788 | case 243: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP */ |
| 109197 | | -#line 1090 "parse.y" |
| 109198 | 108789 | { |
| 109199 | 108790 | sqlite3CreateIndex(pParse, &yymsp[-6].minor.yy0, &yymsp[-5].minor.yy0, |
| 109200 | 108791 | sqlite3SrcListAppend(pParse->db,0,&yymsp[-3].minor.yy0,0), yymsp[-1].minor.yy322, yymsp[-9].minor.yy4, |
| 109201 | 108792 | &yymsp[-10].minor.yy0, &yymsp[0].minor.yy0, SQLITE_SO_ASC, yymsp[-7].minor.yy4); |
| 109202 | 108793 | } |
| 109203 | | -#line 3216 "parse.c" |
| 109204 | 108794 | break; |
| 109205 | 108795 | case 244: /* uniqueflag ::= UNIQUE */ |
| 109206 | 108796 | case 298: /* raisetype ::= ABORT */ yytestcase(yyruleno==298); |
| 109207 | | -#line 1097 "parse.y" |
| 109208 | 108797 | {yygotominor.yy4 = OE_Abort;} |
| 109209 | | -#line 3222 "parse.c" |
| 109210 | 108798 | break; |
| 109211 | 108799 | case 245: /* uniqueflag ::= */ |
| 109212 | | -#line 1098 "parse.y" |
| 109213 | 108800 | {yygotominor.yy4 = OE_None;} |
| 109214 | | -#line 3227 "parse.c" |
| 109215 | 108801 | break; |
| 109216 | 108802 | case 248: /* idxlist ::= idxlist COMMA nm collate sortorder */ |
| 109217 | | -#line 1107 "parse.y" |
| 109218 | 108803 | { |
| 109219 | 108804 | Expr *p = 0; |
| 109220 | 108805 | if( yymsp[-1].minor.yy0.n>0 ){ |
| 109221 | 108806 | p = sqlite3Expr(pParse->db, TK_COLUMN, 0); |
| 109222 | 108807 | sqlite3ExprSetCollByToken(pParse, p, &yymsp[-1].minor.yy0); |
| | @@ -109224,14 +108809,12 @@ |
| 109224 | 108809 | yygotominor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, p); |
| 109225 | 108810 | sqlite3ExprListSetName(pParse,yygotominor.yy322,&yymsp[-2].minor.yy0,1); |
| 109226 | 108811 | sqlite3ExprListCheckLength(pParse, yygotominor.yy322, "index"); |
| 109227 | 108812 | if( yygotominor.yy322 ) yygotominor.yy322->a[yygotominor.yy322->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy4; |
| 109228 | 108813 | } |
| 109229 | | -#line 3242 "parse.c" |
| 109230 | 108814 | break; |
| 109231 | 108815 | case 249: /* idxlist ::= nm collate sortorder */ |
| 109232 | | -#line 1118 "parse.y" |
| 109233 | 108816 | { |
| 109234 | 108817 | Expr *p = 0; |
| 109235 | 108818 | if( yymsp[-1].minor.yy0.n>0 ){ |
| 109236 | 108819 | p = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0); |
| 109237 | 108820 | sqlite3ExprSetCollByToken(pParse, p, &yymsp[-1].minor.yy0); |
| | @@ -109239,307 +108822,214 @@ |
| 109239 | 108822 | yygotominor.yy322 = sqlite3ExprListAppend(pParse,0, p); |
| 109240 | 108823 | sqlite3ExprListSetName(pParse, yygotominor.yy322, &yymsp[-2].minor.yy0, 1); |
| 109241 | 108824 | sqlite3ExprListCheckLength(pParse, yygotominor.yy322, "index"); |
| 109242 | 108825 | if( yygotominor.yy322 ) yygotominor.yy322->a[yygotominor.yy322->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy4; |
| 109243 | 108826 | } |
| 109244 | | -#line 3257 "parse.c" |
| 109245 | 108827 | break; |
| 109246 | 108828 | case 250: /* collate ::= */ |
| 109247 | | -#line 1131 "parse.y" |
| 109248 | 108829 | {yygotominor.yy0.z = 0; yygotominor.yy0.n = 0;} |
| 109249 | | -#line 3262 "parse.c" |
| 109250 | 108830 | break; |
| 109251 | 108831 | case 252: /* cmd ::= DROP INDEX ifexists fullname */ |
| 109252 | | -#line 1137 "parse.y" |
| 109253 | 108832 | {sqlite3DropIndex(pParse, yymsp[0].minor.yy259, yymsp[-1].minor.yy4);} |
| 109254 | | -#line 3267 "parse.c" |
| 109255 | 108833 | break; |
| 109256 | 108834 | case 253: /* cmd ::= VACUUM */ |
| 109257 | 108835 | case 254: /* cmd ::= VACUUM nm */ yytestcase(yyruleno==254); |
| 109258 | | -#line 1143 "parse.y" |
| 109259 | 108836 | {sqlite3Vacuum(pParse);} |
| 109260 | | -#line 3273 "parse.c" |
| 109261 | 108837 | break; |
| 109262 | 108838 | case 255: /* cmd ::= PRAGMA nm dbnm */ |
| 109263 | | -#line 1151 "parse.y" |
| 109264 | 108839 | {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);} |
| 109265 | | -#line 3278 "parse.c" |
| 109266 | 108840 | break; |
| 109267 | 108841 | case 256: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ |
| 109268 | | -#line 1152 "parse.y" |
| 109269 | 108842 | {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);} |
| 109270 | | -#line 3283 "parse.c" |
| 109271 | 108843 | break; |
| 109272 | 108844 | case 257: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ |
| 109273 | | -#line 1153 "parse.y" |
| 109274 | 108845 | {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);} |
| 109275 | | -#line 3288 "parse.c" |
| 109276 | 108846 | break; |
| 109277 | 108847 | case 258: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ |
| 109278 | | -#line 1155 "parse.y" |
| 109279 | 108848 | {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);} |
| 109280 | | -#line 3293 "parse.c" |
| 109281 | 108849 | break; |
| 109282 | 108850 | case 259: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ |
| 109283 | | -#line 1157 "parse.y" |
| 109284 | 108851 | {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);} |
| 109285 | | -#line 3298 "parse.c" |
| 109286 | 108852 | break; |
| 109287 | 108853 | case 270: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ |
| 109288 | | -#line 1175 "parse.y" |
| 109289 | 108854 | { |
| 109290 | 108855 | Token all; |
| 109291 | 108856 | all.z = yymsp[-3].minor.yy0.z; |
| 109292 | 108857 | all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n; |
| 109293 | 108858 | sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy203, &all); |
| 109294 | 108859 | } |
| 109295 | | -#line 3308 "parse.c" |
| 109296 | 108860 | break; |
| 109297 | 108861 | case 271: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ |
| 109298 | | -#line 1184 "parse.y" |
| 109299 | 108862 | { |
| 109300 | 108863 | sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy4, yymsp[-4].minor.yy90.a, yymsp[-4].minor.yy90.b, yymsp[-2].minor.yy259, yymsp[0].minor.yy314, yymsp[-10].minor.yy4, yymsp[-8].minor.yy4); |
| 109301 | 108864 | yygotominor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); |
| 109302 | 108865 | } |
| 109303 | | -#line 3316 "parse.c" |
| 109304 | 108866 | break; |
| 109305 | 108867 | case 272: /* trigger_time ::= BEFORE */ |
| 109306 | 108868 | case 275: /* trigger_time ::= */ yytestcase(yyruleno==275); |
| 109307 | | -#line 1190 "parse.y" |
| 109308 | 108869 | { yygotominor.yy4 = TK_BEFORE; } |
| 109309 | | -#line 3322 "parse.c" |
| 109310 | 108870 | break; |
| 109311 | 108871 | case 273: /* trigger_time ::= AFTER */ |
| 109312 | | -#line 1191 "parse.y" |
| 109313 | 108872 | { yygotominor.yy4 = TK_AFTER; } |
| 109314 | | -#line 3327 "parse.c" |
| 109315 | 108873 | break; |
| 109316 | 108874 | case 274: /* trigger_time ::= INSTEAD OF */ |
| 109317 | | -#line 1192 "parse.y" |
| 109318 | 108875 | { yygotominor.yy4 = TK_INSTEAD;} |
| 109319 | | -#line 3332 "parse.c" |
| 109320 | 108876 | break; |
| 109321 | 108877 | case 276: /* trigger_event ::= DELETE|INSERT */ |
| 109322 | 108878 | case 277: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==277); |
| 109323 | | -#line 1197 "parse.y" |
| 109324 | 108879 | {yygotominor.yy90.a = yymsp[0].major; yygotominor.yy90.b = 0;} |
| 109325 | | -#line 3338 "parse.c" |
| 109326 | 108880 | break; |
| 109327 | 108881 | case 278: /* trigger_event ::= UPDATE OF inscollist */ |
| 109328 | | -#line 1199 "parse.y" |
| 109329 | 108882 | {yygotominor.yy90.a = TK_UPDATE; yygotominor.yy90.b = yymsp[0].minor.yy384;} |
| 109330 | | -#line 3343 "parse.c" |
| 109331 | 108883 | break; |
| 109332 | 108884 | case 281: /* when_clause ::= */ |
| 109333 | 108885 | case 303: /* key_opt ::= */ yytestcase(yyruleno==303); |
| 109334 | | -#line 1206 "parse.y" |
| 109335 | 108886 | { yygotominor.yy314 = 0; } |
| 109336 | | -#line 3349 "parse.c" |
| 109337 | 108887 | break; |
| 109338 | 108888 | case 282: /* when_clause ::= WHEN expr */ |
| 109339 | 108889 | case 304: /* key_opt ::= KEY expr */ yytestcase(yyruleno==304); |
| 109340 | | -#line 1207 "parse.y" |
| 109341 | 108890 | { yygotominor.yy314 = yymsp[0].minor.yy118.pExpr; } |
| 109342 | | -#line 3355 "parse.c" |
| 109343 | 108891 | break; |
| 109344 | 108892 | case 283: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ |
| 109345 | | -#line 1211 "parse.y" |
| 109346 | 108893 | { |
| 109347 | 108894 | assert( yymsp[-2].minor.yy203!=0 ); |
| 109348 | 108895 | yymsp[-2].minor.yy203->pLast->pNext = yymsp[-1].minor.yy203; |
| 109349 | 108896 | yymsp[-2].minor.yy203->pLast = yymsp[-1].minor.yy203; |
| 109350 | 108897 | yygotominor.yy203 = yymsp[-2].minor.yy203; |
| 109351 | 108898 | } |
| 109352 | | -#line 3365 "parse.c" |
| 109353 | 108899 | break; |
| 109354 | 108900 | case 284: /* trigger_cmd_list ::= trigger_cmd SEMI */ |
| 109355 | | -#line 1217 "parse.y" |
| 109356 | 108901 | { |
| 109357 | 108902 | assert( yymsp[-1].minor.yy203!=0 ); |
| 109358 | 108903 | yymsp[-1].minor.yy203->pLast = yymsp[-1].minor.yy203; |
| 109359 | 108904 | yygotominor.yy203 = yymsp[-1].minor.yy203; |
| 109360 | 108905 | } |
| 109361 | | -#line 3374 "parse.c" |
| 109362 | 108906 | break; |
| 109363 | 108907 | case 286: /* trnm ::= nm DOT nm */ |
| 109364 | | -#line 1229 "parse.y" |
| 109365 | 108908 | { |
| 109366 | 108909 | yygotominor.yy0 = yymsp[0].minor.yy0; |
| 109367 | 108910 | sqlite3ErrorMsg(pParse, |
| 109368 | 108911 | "qualified table names are not allowed on INSERT, UPDATE, and DELETE " |
| 109369 | 108912 | "statements within triggers"); |
| 109370 | 108913 | } |
| 109371 | | -#line 3384 "parse.c" |
| 109372 | 108914 | break; |
| 109373 | 108915 | case 288: /* tridxby ::= INDEXED BY nm */ |
| 109374 | | -#line 1241 "parse.y" |
| 109375 | 108916 | { |
| 109376 | 108917 | sqlite3ErrorMsg(pParse, |
| 109377 | 108918 | "the INDEXED BY clause is not allowed on UPDATE or DELETE statements " |
| 109378 | 108919 | "within triggers"); |
| 109379 | 108920 | } |
| 109380 | | -#line 3393 "parse.c" |
| 109381 | 108921 | break; |
| 109382 | 108922 | case 289: /* tridxby ::= NOT INDEXED */ |
| 109383 | | -#line 1246 "parse.y" |
| 109384 | 108923 | { |
| 109385 | 108924 | sqlite3ErrorMsg(pParse, |
| 109386 | 108925 | "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements " |
| 109387 | 108926 | "within triggers"); |
| 109388 | 108927 | } |
| 109389 | | -#line 3402 "parse.c" |
| 109390 | 108928 | break; |
| 109391 | 108929 | case 290: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt */ |
| 109392 | | -#line 1259 "parse.y" |
| 109393 | 108930 | { yygotominor.yy203 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-4].minor.yy0, yymsp[-1].minor.yy322, yymsp[0].minor.yy314, yymsp[-5].minor.yy210); } |
| 109394 | | -#line 3407 "parse.c" |
| 109395 | 108931 | break; |
| 109396 | 108932 | case 291: /* trigger_cmd ::= insert_cmd INTO trnm inscollist_opt VALUES LP itemlist RP */ |
| 109397 | | -#line 1264 "parse.y" |
| 109398 | 108933 | {yygotominor.yy203 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy384, yymsp[-1].minor.yy322, 0, yymsp[-7].minor.yy210);} |
| 109399 | | -#line 3412 "parse.c" |
| 109400 | 108934 | break; |
| 109401 | 108935 | case 292: /* trigger_cmd ::= insert_cmd INTO trnm inscollist_opt select */ |
| 109402 | | -#line 1267 "parse.y" |
| 109403 | 108936 | {yygotominor.yy203 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy384, 0, yymsp[0].minor.yy387, yymsp[-4].minor.yy210);} |
| 109404 | | -#line 3417 "parse.c" |
| 109405 | 108937 | break; |
| 109406 | 108938 | case 293: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt */ |
| 109407 | | -#line 1271 "parse.y" |
| 109408 | 108939 | {yygotominor.yy203 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[0].minor.yy314);} |
| 109409 | | -#line 3422 "parse.c" |
| 109410 | 108940 | break; |
| 109411 | 108941 | case 294: /* trigger_cmd ::= select */ |
| 109412 | | -#line 1274 "parse.y" |
| 109413 | 108942 | {yygotominor.yy203 = sqlite3TriggerSelectStep(pParse->db, yymsp[0].minor.yy387); } |
| 109414 | | -#line 3427 "parse.c" |
| 109415 | 108943 | break; |
| 109416 | 108944 | case 295: /* expr ::= RAISE LP IGNORE RP */ |
| 109417 | | -#line 1277 "parse.y" |
| 109418 | 108945 | { |
| 109419 | 108946 | yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, 0); |
| 109420 | 108947 | if( yygotominor.yy118.pExpr ){ |
| 109421 | 108948 | yygotominor.yy118.pExpr->affinity = OE_Ignore; |
| 109422 | 108949 | } |
| 109423 | 108950 | yygotominor.yy118.zStart = yymsp[-3].minor.yy0.z; |
| 109424 | 108951 | yygotominor.yy118.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; |
| 109425 | 108952 | } |
| 109426 | | -#line 3439 "parse.c" |
| 109427 | 108953 | break; |
| 109428 | 108954 | case 296: /* expr ::= RAISE LP raisetype COMMA nm RP */ |
| 109429 | | -#line 1285 "parse.y" |
| 109430 | 108955 | { |
| 109431 | 108956 | yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, &yymsp[-1].minor.yy0); |
| 109432 | 108957 | if( yygotominor.yy118.pExpr ) { |
| 109433 | 108958 | yygotominor.yy118.pExpr->affinity = (char)yymsp[-3].minor.yy4; |
| 109434 | 108959 | } |
| 109435 | 108960 | yygotominor.yy118.zStart = yymsp[-5].minor.yy0.z; |
| 109436 | 108961 | yygotominor.yy118.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; |
| 109437 | 108962 | } |
| 109438 | | -#line 3451 "parse.c" |
| 109439 | 108963 | break; |
| 109440 | 108964 | case 297: /* raisetype ::= ROLLBACK */ |
| 109441 | | -#line 1296 "parse.y" |
| 109442 | 108965 | {yygotominor.yy4 = OE_Rollback;} |
| 109443 | | -#line 3456 "parse.c" |
| 109444 | 108966 | break; |
| 109445 | 108967 | case 299: /* raisetype ::= FAIL */ |
| 109446 | | -#line 1298 "parse.y" |
| 109447 | 108968 | {yygotominor.yy4 = OE_Fail;} |
| 109448 | | -#line 3461 "parse.c" |
| 109449 | 108969 | break; |
| 109450 | 108970 | case 300: /* cmd ::= DROP TRIGGER ifexists fullname */ |
| 109451 | | -#line 1303 "parse.y" |
| 109452 | 108971 | { |
| 109453 | 108972 | sqlite3DropTrigger(pParse,yymsp[0].minor.yy259,yymsp[-1].minor.yy4); |
| 109454 | 108973 | } |
| 109455 | | -#line 3468 "parse.c" |
| 109456 | 108974 | break; |
| 109457 | 108975 | case 301: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ |
| 109458 | | -#line 1310 "parse.y" |
| 109459 | 108976 | { |
| 109460 | 108977 | sqlite3Attach(pParse, yymsp[-3].minor.yy118.pExpr, yymsp[-1].minor.yy118.pExpr, yymsp[0].minor.yy314); |
| 109461 | 108978 | } |
| 109462 | | -#line 3475 "parse.c" |
| 109463 | 108979 | break; |
| 109464 | 108980 | case 302: /* cmd ::= DETACH database_kw_opt expr */ |
| 109465 | | -#line 1313 "parse.y" |
| 109466 | 108981 | { |
| 109467 | 108982 | sqlite3Detach(pParse, yymsp[0].minor.yy118.pExpr); |
| 109468 | 108983 | } |
| 109469 | | -#line 3482 "parse.c" |
| 109470 | 108984 | break; |
| 109471 | 108985 | case 307: /* cmd ::= REINDEX */ |
| 109472 | | -#line 1328 "parse.y" |
| 109473 | 108986 | {sqlite3Reindex(pParse, 0, 0);} |
| 109474 | | -#line 3487 "parse.c" |
| 109475 | 108987 | break; |
| 109476 | 108988 | case 308: /* cmd ::= REINDEX nm dbnm */ |
| 109477 | | -#line 1329 "parse.y" |
| 109478 | 108989 | {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} |
| 109479 | | -#line 3492 "parse.c" |
| 109480 | 108990 | break; |
| 109481 | 108991 | case 309: /* cmd ::= ANALYZE */ |
| 109482 | | -#line 1334 "parse.y" |
| 109483 | 108992 | {sqlite3Analyze(pParse, 0, 0);} |
| 109484 | | -#line 3497 "parse.c" |
| 109485 | 108993 | break; |
| 109486 | 108994 | case 310: /* cmd ::= ANALYZE nm dbnm */ |
| 109487 | | -#line 1335 "parse.y" |
| 109488 | 108995 | {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} |
| 109489 | | -#line 3502 "parse.c" |
| 109490 | 108996 | break; |
| 109491 | 108997 | case 311: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ |
| 109492 | | -#line 1340 "parse.y" |
| 109493 | 108998 | { |
| 109494 | 108999 | sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy259,&yymsp[0].minor.yy0); |
| 109495 | 109000 | } |
| 109496 | | -#line 3509 "parse.c" |
| 109497 | 109001 | break; |
| 109498 | 109002 | case 312: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt column */ |
| 109499 | | -#line 1343 "parse.y" |
| 109500 | 109003 | { |
| 109501 | 109004 | sqlite3AlterFinishAddColumn(pParse, &yymsp[0].minor.yy0); |
| 109502 | 109005 | } |
| 109503 | | -#line 3516 "parse.c" |
| 109504 | 109006 | break; |
| 109505 | 109007 | case 313: /* add_column_fullname ::= fullname */ |
| 109506 | | -#line 1346 "parse.y" |
| 109507 | 109008 | { |
| 109508 | 109009 | pParse->db->lookaside.bEnabled = 0; |
| 109509 | 109010 | sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy259); |
| 109510 | 109011 | } |
| 109511 | | -#line 3524 "parse.c" |
| 109512 | 109012 | break; |
| 109513 | 109013 | case 316: /* cmd ::= create_vtab */ |
| 109514 | | -#line 1356 "parse.y" |
| 109515 | 109014 | {sqlite3VtabFinishParse(pParse,0);} |
| 109516 | | -#line 3529 "parse.c" |
| 109517 | 109015 | break; |
| 109518 | 109016 | case 317: /* cmd ::= create_vtab LP vtabarglist RP */ |
| 109519 | | -#line 1357 "parse.y" |
| 109520 | 109017 | {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);} |
| 109521 | | -#line 3534 "parse.c" |
| 109522 | 109018 | break; |
| 109523 | 109019 | case 318: /* create_vtab ::= createkw VIRTUAL TABLE nm dbnm USING nm */ |
| 109524 | | -#line 1358 "parse.y" |
| 109525 | 109020 | { |
| 109526 | 109021 | sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); |
| 109527 | 109022 | } |
| 109528 | | -#line 3541 "parse.c" |
| 109529 | 109023 | break; |
| 109530 | 109024 | case 321: /* vtabarg ::= */ |
| 109531 | | -#line 1363 "parse.y" |
| 109532 | 109025 | {sqlite3VtabArgInit(pParse);} |
| 109533 | | -#line 3546 "parse.c" |
| 109534 | 109026 | break; |
| 109535 | 109027 | case 323: /* vtabargtoken ::= ANY */ |
| 109536 | 109028 | case 324: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==324); |
| 109537 | 109029 | case 325: /* lp ::= LP */ yytestcase(yyruleno==325); |
| 109538 | | -#line 1365 "parse.y" |
| 109539 | 109030 | {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);} |
| 109540 | | -#line 3553 "parse.c" |
| 109541 | 109031 | break; |
| 109542 | 109032 | default: |
| 109543 | 109033 | /* (0) input ::= cmdlist */ yytestcase(yyruleno==0); |
| 109544 | 109034 | /* (1) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==1); |
| 109545 | 109035 | /* (2) cmdlist ::= ecmd */ yytestcase(yyruleno==2); |
| | @@ -109637,17 +109127,15 @@ |
| 109637 | 109127 | int yymajor, /* The major type of the error token */ |
| 109638 | 109128 | YYMINORTYPE yyminor /* The minor type of the error token */ |
| 109639 | 109129 | ){ |
| 109640 | 109130 | sqlite3ParserARG_FETCH; |
| 109641 | 109131 | #define TOKEN (yyminor.yy0) |
| 109642 | | -#line 32 "parse.y" |
| 109643 | 109132 | |
| 109644 | 109133 | UNUSED_PARAMETER(yymajor); /* Silence some compiler warnings */ |
| 109645 | 109134 | assert( TOKEN.z[0] ); /* The tokenizer always gives us a token */ |
| 109646 | 109135 | sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &TOKEN); |
| 109647 | 109136 | pParse->parseError = 1; |
| 109648 | | -#line 3661 "parse.c" |
| 109649 | 109137 | sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument variable */ |
| 109650 | 109138 | } |
| 109651 | 109139 | |
| 109652 | 109140 | /* |
| 109653 | 109141 | ** The following is executed when the parser accepts |
| | @@ -109837,11 +109325,10 @@ |
| 109837 | 109325 | return; |
| 109838 | 109326 | } |
| 109839 | 109327 | |
| 109840 | 109328 | /************** End of parse.c ***********************************************/ |
| 109841 | 109329 | /************** Begin file tokenize.c ****************************************/ |
| 109842 | | -#line 1 "tsrc/tokenize.c" |
| 109843 | 109330 | /* |
| 109844 | 109331 | ** 2001 September 15 |
| 109845 | 109332 | ** |
| 109846 | 109333 | ** The author disclaims copyright to this source code. In place of |
| 109847 | 109334 | ** a legal notice, here is a blessing: |
| | @@ -109903,11 +109390,10 @@ |
| 109903 | 109390 | ** named keywordhash.h and then included into this source file by |
| 109904 | 109391 | ** the #include below. |
| 109905 | 109392 | */ |
| 109906 | 109393 | /************** Include keywordhash.h in the middle of tokenize.c ************/ |
| 109907 | 109394 | /************** Begin file keywordhash.h *************************************/ |
| 109908 | | -#line 1 "tsrc/keywordhash.h" |
| 109909 | 109395 | /***** This file contains automatically generated code ****** |
| 109910 | 109396 | ** |
| 109911 | 109397 | ** The code in this file has been automatically generated by |
| 109912 | 109398 | ** |
| 109913 | 109399 | ** sqlite/tool/mkkeywordhash.c |
| | @@ -110177,11 +109663,10 @@ |
| 110177 | 109663 | } |
| 110178 | 109664 | #define SQLITE_N_KEYWORD 121 |
| 110179 | 109665 | |
| 110180 | 109666 | /************** End of keywordhash.h *****************************************/ |
| 110181 | 109667 | /************** Continuing where we left off in tokenize.c *******************/ |
| 110182 | | -#line 66 "tsrc/tokenize.c" |
| 110183 | 109668 | |
| 110184 | 109669 | |
| 110185 | 109670 | /* |
| 110186 | 109671 | ** If X is a character that can be used in an identifier then |
| 110187 | 109672 | ** IdChar(X) will be true. Otherwise it is false. |
| | @@ -110642,11 +110127,10 @@ |
| 110642 | 110127 | return nErr; |
| 110643 | 110128 | } |
| 110644 | 110129 | |
| 110645 | 110130 | /************** End of tokenize.c ********************************************/ |
| 110646 | 110131 | /************** Begin file complete.c ****************************************/ |
| 110647 | | -#line 1 "tsrc/complete.c" |
| 110648 | 110132 | /* |
| 110649 | 110133 | ** 2001 September 15 |
| 110650 | 110134 | ** |
| 110651 | 110135 | ** The author disclaims copyright to this source code. In place of |
| 110652 | 110136 | ** a legal notice, here is a blessing: |
| | @@ -110928,11 +110412,10 @@ |
| 110928 | 110412 | #endif /* SQLITE_OMIT_UTF16 */ |
| 110929 | 110413 | #endif /* SQLITE_OMIT_COMPLETE */ |
| 110930 | 110414 | |
| 110931 | 110415 | /************** End of complete.c ********************************************/ |
| 110932 | 110416 | /************** Begin file main.c ********************************************/ |
| 110933 | | -#line 1 "tsrc/main.c" |
| 110934 | 110417 | /* |
| 110935 | 110418 | ** 2001 September 15 |
| 110936 | 110419 | ** |
| 110937 | 110420 | ** The author disclaims copyright to this source code. In place of |
| 110938 | 110421 | ** a legal notice, here is a blessing: |
| | @@ -110949,11 +110432,10 @@ |
| 110949 | 110432 | */ |
| 110950 | 110433 | |
| 110951 | 110434 | #ifdef SQLITE_ENABLE_FTS3 |
| 110952 | 110435 | /************** Include fts3.h in the middle of main.c ***********************/ |
| 110953 | 110436 | /************** Begin file fts3.h ********************************************/ |
| 110954 | | -#line 1 "tsrc/fts3.h" |
| 110955 | 110437 | /* |
| 110956 | 110438 | ** 2006 Oct 10 |
| 110957 | 110439 | ** |
| 110958 | 110440 | ** The author disclaims copyright to this source code. In place of |
| 110959 | 110441 | ** a legal notice, here is a blessing: |
| | @@ -110978,16 +110460,14 @@ |
| 110978 | 110460 | } /* extern "C" */ |
| 110979 | 110461 | #endif /* __cplusplus */ |
| 110980 | 110462 | |
| 110981 | 110463 | /************** End of fts3.h ************************************************/ |
| 110982 | 110464 | /************** Continuing where we left off in main.c ***********************/ |
| 110983 | | -#line 21 "tsrc/main.c" |
| 110984 | 110465 | #endif |
| 110985 | 110466 | #ifdef SQLITE_ENABLE_RTREE |
| 110986 | 110467 | /************** Include rtree.h in the middle of main.c **********************/ |
| 110987 | 110468 | /************** Begin file rtree.h *******************************************/ |
| 110988 | | -#line 1 "tsrc/rtree.h" |
| 110989 | 110469 | /* |
| 110990 | 110470 | ** 2008 May 26 |
| 110991 | 110471 | ** |
| 110992 | 110472 | ** The author disclaims copyright to this source code. In place of |
| 110993 | 110473 | ** a legal notice, here is a blessing: |
| | @@ -111012,16 +110492,14 @@ |
| 111012 | 110492 | } /* extern "C" */ |
| 111013 | 110493 | #endif /* __cplusplus */ |
| 111014 | 110494 | |
| 111015 | 110495 | /************** End of rtree.h ***********************************************/ |
| 111016 | 110496 | /************** Continuing where we left off in main.c ***********************/ |
| 111017 | | -#line 24 "tsrc/main.c" |
| 111018 | 110497 | #endif |
| 111019 | 110498 | #ifdef SQLITE_ENABLE_ICU |
| 111020 | 110499 | /************** Include sqliteicu.h in the middle of main.c ******************/ |
| 111021 | 110500 | /************** Begin file sqliteicu.h ***************************************/ |
| 111022 | | -#line 1 "tsrc/sqliteicu.h" |
| 111023 | 110501 | /* |
| 111024 | 110502 | ** 2008 May 26 |
| 111025 | 110503 | ** |
| 111026 | 110504 | ** The author disclaims copyright to this source code. In place of |
| 111027 | 110505 | ** a legal notice, here is a blessing: |
| | @@ -111047,11 +110525,10 @@ |
| 111047 | 110525 | #endif /* __cplusplus */ |
| 111048 | 110526 | |
| 111049 | 110527 | |
| 111050 | 110528 | /************** End of sqliteicu.h *******************************************/ |
| 111051 | 110529 | /************** Continuing where we left off in main.c ***********************/ |
| 111052 | | -#line 27 "tsrc/main.c" |
| 111053 | 110530 | #endif |
| 111054 | 110531 | |
| 111055 | 110532 | #ifndef SQLITE_AMALGAMATION |
| 111056 | 110533 | /* IMPLEMENTATION-OF: R-46656-45156 The sqlite3_version[] string constant |
| 111057 | 110534 | ** contains the text of SQLITE_VERSION macro. |
| | @@ -113978,11 +113455,10 @@ |
| 113978 | 113455 | return 0; |
| 113979 | 113456 | } |
| 113980 | 113457 | |
| 113981 | 113458 | /************** End of main.c ************************************************/ |
| 113982 | 113459 | /************** Begin file notify.c ******************************************/ |
| 113983 | | -#line 1 "tsrc/notify.c" |
| 113984 | 113460 | /* |
| 113985 | 113461 | ** 2009 March 3 |
| 113986 | 113462 | ** |
| 113987 | 113463 | ** The author disclaims copyright to this source code. In place of |
| 113988 | 113464 | ** a legal notice, here is a blessing: |
| | @@ -114312,11 +113788,10 @@ |
| 114312 | 113788 | } |
| 114313 | 113789 | #endif |
| 114314 | 113790 | |
| 114315 | 113791 | /************** End of notify.c **********************************************/ |
| 114316 | 113792 | /************** Begin file fts3.c ********************************************/ |
| 114317 | | -#line 1 "tsrc/fts3.c" |
| 114318 | 113793 | /* |
| 114319 | 113794 | ** 2006 Oct 10 |
| 114320 | 113795 | ** |
| 114321 | 113796 | ** The author disclaims copyright to this source code. In place of |
| 114322 | 113797 | ** a legal notice, here is a blessing: |
| | @@ -114609,11 +114084,10 @@ |
| 114609 | 114084 | ** into a single segment. |
| 114610 | 114085 | */ |
| 114611 | 114086 | |
| 114612 | 114087 | /************** Include fts3Int.h in the middle of fts3.c ********************/ |
| 114613 | 114088 | /************** Begin file fts3Int.h *****************************************/ |
| 114614 | | -#line 1 "tsrc/fts3Int.h" |
| 114615 | 114089 | /* |
| 114616 | 114090 | ** 2009 Nov 12 |
| 114617 | 114091 | ** |
| 114618 | 114092 | ** The author disclaims copyright to this source code. In place of |
| 114619 | 114093 | ** a legal notice, here is a blessing: |
| | @@ -114648,11 +114122,10 @@ |
| 114648 | 114122 | SQLITE_API extern const sqlite3_api_routines *sqlite3_api; |
| 114649 | 114123 | #endif |
| 114650 | 114124 | |
| 114651 | 114125 | /************** Include fts3_tokenizer.h in the middle of fts3Int.h **********/ |
| 114652 | 114126 | /************** Begin file fts3_tokenizer.h **********************************/ |
| 114653 | | -#line 1 "tsrc/fts3_tokenizer.h" |
| 114654 | 114127 | /* |
| 114655 | 114128 | ** 2006 July 10 |
| 114656 | 114129 | ** |
| 114657 | 114130 | ** The author disclaims copyright to this source code. |
| 114658 | 114131 | ** |
| | @@ -114803,14 +114276,12 @@ |
| 114803 | 114276 | |
| 114804 | 114277 | #endif /* _FTS3_TOKENIZER_H_ */ |
| 114805 | 114278 | |
| 114806 | 114279 | /************** End of fts3_tokenizer.h **************************************/ |
| 114807 | 114280 | /************** Continuing where we left off in fts3Int.h ********************/ |
| 114808 | | -#line 40 "tsrc/fts3Int.h" |
| 114809 | 114281 | /************** Include fts3_hash.h in the middle of fts3Int.h ***************/ |
| 114810 | 114282 | /************** Begin file fts3_hash.h ***************************************/ |
| 114811 | | -#line 1 "tsrc/fts3_hash.h" |
| 114812 | 114283 | /* |
| 114813 | 114284 | ** 2001 September 22 |
| 114814 | 114285 | ** |
| 114815 | 114286 | ** The author disclaims copyright to this source code. In place of |
| 114816 | 114287 | ** a legal notice, here is a blessing: |
| | @@ -114922,11 +114393,10 @@ |
| 114922 | 114393 | |
| 114923 | 114394 | #endif /* _FTS3_HASH_H_ */ |
| 114924 | 114395 | |
| 114925 | 114396 | /************** End of fts3_hash.h *******************************************/ |
| 114926 | 114397 | /************** Continuing where we left off in fts3Int.h ********************/ |
| 114927 | | -#line 41 "tsrc/fts3Int.h" |
| 114928 | 114398 | |
| 114929 | 114399 | /* |
| 114930 | 114400 | ** This constant controls how often segments are merged. Once there are |
| 114931 | 114401 | ** FTS3_MERGE_COUNT segments of level N, they are merged into a single |
| 114932 | 114402 | ** segment of level N+1. |
| | @@ -115399,11 +114869,10 @@ |
| 115399 | 114869 | #endif /* !SQLITE_CORE || SQLITE_ENABLE_FTS3 */ |
| 115400 | 114870 | #endif /* _FTSINT_H */ |
| 115401 | 114871 | |
| 115402 | 114872 | /************** End of fts3Int.h *********************************************/ |
| 115403 | 114873 | /************** Continuing where we left off in fts3.c ***********************/ |
| 115404 | | -#line 296 "tsrc/fts3.c" |
| 115405 | 114874 | #if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) |
| 115406 | 114875 | |
| 115407 | 114876 | #if defined(SQLITE_ENABLE_FTS3) && !defined(SQLITE_CORE) |
| 115408 | 114877 | # define SQLITE_CORE 1 |
| 115409 | 114878 | #endif |
| | @@ -119949,11 +119418,10 @@ |
| 119949 | 119418 | |
| 119950 | 119419 | #endif |
| 119951 | 119420 | |
| 119952 | 119421 | /************** End of fts3.c ************************************************/ |
| 119953 | 119422 | /************** Begin file fts3_aux.c ****************************************/ |
| 119954 | | -#line 1 "tsrc/fts3_aux.c" |
| 119955 | 119423 | /* |
| 119956 | 119424 | ** 2011 Jan 27 |
| 119957 | 119425 | ** |
| 119958 | 119426 | ** The author disclaims copyright to this source code. In place of |
| 119959 | 119427 | ** a legal notice, here is a blessing: |
| | @@ -120426,11 +119894,10 @@ |
| 120426 | 119894 | |
| 120427 | 119895 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) */ |
| 120428 | 119896 | |
| 120429 | 119897 | /************** End of fts3_aux.c ********************************************/ |
| 120430 | 119898 | /************** Begin file fts3_expr.c ***************************************/ |
| 120431 | | -#line 1 "tsrc/fts3_expr.c" |
| 120432 | 119899 | /* |
| 120433 | 119900 | ** 2008 Nov 28 |
| 120434 | 119901 | ** |
| 120435 | 119902 | ** The author disclaims copyright to this source code. In place of |
| 120436 | 119903 | ** a legal notice, here is a blessing: |
| | @@ -121393,11 +120860,10 @@ |
| 121393 | 120860 | #endif |
| 121394 | 120861 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) */ |
| 121395 | 120862 | |
| 121396 | 120863 | /************** End of fts3_expr.c *******************************************/ |
| 121397 | 120864 | /************** Begin file fts3_hash.c ***************************************/ |
| 121398 | | -#line 1 "tsrc/fts3_hash.c" |
| 121399 | 120865 | /* |
| 121400 | 120866 | ** 2001 September 22 |
| 121401 | 120867 | ** |
| 121402 | 120868 | ** The author disclaims copyright to this source code. In place of |
| 121403 | 120869 | ** a legal notice, here is a blessing: |
| | @@ -121778,11 +121244,10 @@ |
| 121778 | 121244 | |
| 121779 | 121245 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) */ |
| 121780 | 121246 | |
| 121781 | 121247 | /************** End of fts3_hash.c *******************************************/ |
| 121782 | 121248 | /************** Begin file fts3_porter.c *************************************/ |
| 121783 | | -#line 1 "tsrc/fts3_porter.c" |
| 121784 | 121249 | /* |
| 121785 | 121250 | ** 2006 September 30 |
| 121786 | 121251 | ** |
| 121787 | 121252 | ** The author disclaims copyright to this source code. In place of |
| 121788 | 121253 | ** a legal notice, here is a blessing: |
| | @@ -122425,11 +121890,10 @@ |
| 122425 | 121890 | |
| 122426 | 121891 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) */ |
| 122427 | 121892 | |
| 122428 | 121893 | /************** End of fts3_porter.c *****************************************/ |
| 122429 | 121894 | /************** Begin file fts3_tokenizer.c **********************************/ |
| 122430 | | -#line 1 "tsrc/fts3_tokenizer.c" |
| 122431 | 121895 | /* |
| 122432 | 121896 | ** 2007 June 22 |
| 122433 | 121897 | ** |
| 122434 | 121898 | ** The author disclaims copyright to this source code. In place of |
| 122435 | 121899 | ** a legal notice, here is a blessing: |
| | @@ -122917,11 +122381,10 @@ |
| 122917 | 122381 | |
| 122918 | 122382 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) */ |
| 122919 | 122383 | |
| 122920 | 122384 | /************** End of fts3_tokenizer.c **************************************/ |
| 122921 | 122385 | /************** Begin file fts3_tokenizer1.c *********************************/ |
| 122922 | | -#line 1 "tsrc/fts3_tokenizer1.c" |
| 122923 | 122386 | /* |
| 122924 | 122387 | ** 2006 Oct 10 |
| 122925 | 122388 | ** |
| 122926 | 122389 | ** The author disclaims copyright to this source code. In place of |
| 122927 | 122390 | ** a legal notice, here is a blessing: |
| | @@ -123152,11 +122615,10 @@ |
| 123152 | 122615 | |
| 123153 | 122616 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) */ |
| 123154 | 122617 | |
| 123155 | 122618 | /************** End of fts3_tokenizer1.c *************************************/ |
| 123156 | 122619 | /************** Begin file fts3_write.c **************************************/ |
| 123157 | | -#line 1 "tsrc/fts3_write.c" |
| 123158 | 122620 | /* |
| 123159 | 122621 | ** 2009 Oct 23 |
| 123160 | 122622 | ** |
| 123161 | 122623 | ** The author disclaims copyright to this source code. In place of |
| 123162 | 122624 | ** a legal notice, here is a blessing: |
| | @@ -126423,11 +125885,10 @@ |
| 126423 | 125885 | |
| 126424 | 125886 | #endif |
| 126425 | 125887 | |
| 126426 | 125888 | /************** End of fts3_write.c ******************************************/ |
| 126427 | 125889 | /************** Begin file fts3_snippet.c ************************************/ |
| 126428 | | -#line 1 "tsrc/fts3_snippet.c" |
| 126429 | 125890 | /* |
| 126430 | 125891 | ** 2009 Oct 23 |
| 126431 | 125892 | ** |
| 126432 | 125893 | ** The author disclaims copyright to this source code. In place of |
| 126433 | 125894 | ** a legal notice, here is a blessing: |
| | @@ -127925,11 +127386,10 @@ |
| 127925 | 127386 | |
| 127926 | 127387 | #endif |
| 127927 | 127388 | |
| 127928 | 127389 | /************** End of fts3_snippet.c ****************************************/ |
| 127929 | 127390 | /************** Begin file rtree.c *******************************************/ |
| 127930 | | -#line 1 "tsrc/rtree.c" |
| 127931 | 127391 | /* |
| 127932 | 127392 | ** 2001 September 15 |
| 127933 | 127393 | ** |
| 127934 | 127394 | ** The author disclaims copyright to this source code. In place of |
| 127935 | 127395 | ** a legal notice, here is a blessing: |
| | @@ -131207,11 +130667,10 @@ |
| 131207 | 130667 | |
| 131208 | 130668 | #endif |
| 131209 | 130669 | |
| 131210 | 130670 | /************** End of rtree.c ***********************************************/ |
| 131211 | 130671 | /************** Begin file icu.c *********************************************/ |
| 131212 | | -#line 1 "tsrc/icu.c" |
| 131213 | 130672 | /* |
| 131214 | 130673 | ** 2007 May 6 |
| 131215 | 130674 | ** |
| 131216 | 130675 | ** The author disclaims copyright to this source code. In place of |
| 131217 | 130676 | ** a legal notice, here is a blessing: |
| | @@ -131710,11 +131169,10 @@ |
| 131710 | 131169 | |
| 131711 | 131170 | #endif |
| 131712 | 131171 | |
| 131713 | 131172 | /************** End of icu.c *************************************************/ |
| 131714 | 131173 | /************** Begin file fts3_icu.c ****************************************/ |
| 131715 | | -#line 1 "tsrc/fts3_icu.c" |
| 131716 | 131174 | /* |
| 131717 | 131175 | ** 2007 June 22 |
| 131718 | 131176 | ** |
| 131719 | 131177 | ** The author disclaims copyright to this source code. In place of |
| 131720 | 131178 | ** a legal notice, here is a blessing: |
| 131721 | 131179 | |