| | @@ -16,11 +16,11 @@ |
| 16 | 16 | ** if you want a wrapper to interface SQLite with your choice of programming |
| 17 | 17 | ** language. The code for the "sqlite3" command-line shell is also in a |
| 18 | 18 | ** separate file. This file contains only code for the core SQLite library. |
| 19 | 19 | ** |
| 20 | 20 | ** The content in this amalgamation comes from Fossil check-in |
| 21 | | -** 5495b12569c318d5020b4b5a625a392ef8e7 with changes in files: |
| 21 | +** 81202d2ab5963fdcf20555b6d0b31cc955ac with changes in files: |
| 22 | 22 | ** |
| 23 | 23 | ** |
| 24 | 24 | */ |
| 25 | 25 | #ifndef SQLITE_AMALGAMATION |
| 26 | 26 | #define SQLITE_CORE 1 |
| | @@ -27,11 +27,10 @@ |
| 27 | 27 | #define SQLITE_AMALGAMATION 1 |
| 28 | 28 | #ifndef SQLITE_PRIVATE |
| 29 | 29 | # define SQLITE_PRIVATE static |
| 30 | 30 | #endif |
| 31 | 31 | /************** Begin file sqliteInt.h ***************************************/ |
| 32 | | -#line 1 "tsrc/sqliteInt.h" |
| 33 | 32 | /* |
| 34 | 33 | ** 2001 September 15 |
| 35 | 34 | ** |
| 36 | 35 | ** The author disclaims copyright to this source code. In place of |
| 37 | 36 | ** a legal notice, here is a blessing: |
| | @@ -88,11 +87,10 @@ |
| 88 | 87 | ** compiler warnings due to subsequent content in this file and other files |
| 89 | 88 | ** that are included by this file. |
| 90 | 89 | */ |
| 91 | 90 | /************** Include msvc.h in the middle of sqliteInt.h ******************/ |
| 92 | 91 | /************** Begin file msvc.h ********************************************/ |
| 93 | | -#line 1 "tsrc/msvc.h" |
| 94 | 92 | /* |
| 95 | 93 | ** 2015 January 12 |
| 96 | 94 | ** |
| 97 | 95 | ** The author disclaims copyright to this source code. In place of |
| 98 | 96 | ** a legal notice, here is a blessing: |
| | @@ -137,18 +135,16 @@ |
| 137 | 135 | |
| 138 | 136 | #endif /* SQLITE_MSVC_H */ |
| 139 | 137 | |
| 140 | 138 | /************** End of msvc.h ************************************************/ |
| 141 | 139 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 142 | | -#line 60 "tsrc/sqliteInt.h" |
| 143 | 140 | |
| 144 | 141 | /* |
| 145 | 142 | ** Special setup for VxWorks |
| 146 | 143 | */ |
| 147 | 144 | /************** Include vxworks.h in the middle of sqliteInt.h ***************/ |
| 148 | 145 | /************** Begin file vxworks.h *****************************************/ |
| 149 | | -#line 1 "tsrc/vxworks.h" |
| 150 | 146 | /* |
| 151 | 147 | ** 2015-03-02 |
| 152 | 148 | ** |
| 153 | 149 | ** The author disclaims copyright to this source code. In place of |
| 154 | 150 | ** a legal notice, here is a blessing: |
| | @@ -180,11 +176,10 @@ |
| 180 | 176 | #define HAVE_LSTAT 1 |
| 181 | 177 | #endif /* defined(_WRS_KERNEL) */ |
| 182 | 178 | |
| 183 | 179 | /************** End of vxworks.h *********************************************/ |
| 184 | 180 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 185 | | -#line 65 "tsrc/sqliteInt.h" |
| 186 | 181 | |
| 187 | 182 | /* |
| 188 | 183 | ** These #defines should enable >2GB file support on POSIX if the |
| 189 | 184 | ** underlying operating system supports it. If the OS lacks |
| 190 | 185 | ** large file support, or if the OS is windows, these should be no-ops. |
| | @@ -320,11 +315,10 @@ |
| 320 | 315 | ** first in QNX. Also, the _USE_32BIT_TIME_T macro must appear first for |
| 321 | 316 | ** MinGW. |
| 322 | 317 | */ |
| 323 | 318 | /************** Include sqlite3.h in the middle of sqliteInt.h ***************/ |
| 324 | 319 | /************** Begin file sqlite3.h *****************************************/ |
| 325 | | -#line 1 "tsrc/sqlite3.h" |
| 326 | 320 | /* |
| 327 | 321 | ** 2001-09-15 |
| 328 | 322 | ** |
| 329 | 323 | ** The author disclaims copyright to this source code. In place of |
| 330 | 324 | ** a legal notice, here is a blessing: |
| | @@ -471,11 +465,11 @@ |
| 471 | 465 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 472 | 466 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 473 | 467 | */ |
| 474 | 468 | #define SQLITE_VERSION "3.48.0" |
| 475 | 469 | #define SQLITE_VERSION_NUMBER 3048000 |
| 476 | | -#define SQLITE_SOURCE_ID "2024-11-06 12:58:31 5495b12569c318d5020b4b5a625a392ef8e777b81c0200624fbbc2a6b5eddef9" |
| 470 | +#define SQLITE_SOURCE_ID "2024-11-14 19:34:28 81202d2ab5963fdcf20555b6d0b31cc955ac27f1cd87656faea5c0611c9a2ee8" |
| 477 | 471 | |
| 478 | 472 | /* |
| 479 | 473 | ** CAPI3REF: Run-Time Library Version Numbers |
| 480 | 474 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 481 | 475 | ** |
| | @@ -1423,10 +1417,15 @@ |
| 1423 | 1417 | ** The [SQLITE_FCNTL_WIN32_SET_HANDLE] opcode is used for debugging. This |
| 1424 | 1418 | ** opcode causes the xFileControl method to swap the file handle with the one |
| 1425 | 1419 | ** pointed to by the pArg argument. This capability is used during testing |
| 1426 | 1420 | ** and only needs to be supported when SQLITE_TEST is defined. |
| 1427 | 1421 | ** |
| 1422 | +** <li>[[SQLITE_FCNTL_NULL_IO]] |
| 1423 | +** The [SQLITE_FCNTL_NULL_IO] opcode sets the low-level file descriptor |
| 1424 | +** or file handle for the [sqlite3_file] object such that it will no longer |
| 1425 | +** read or write to the database file. |
| 1426 | +** |
| 1428 | 1427 | ** <li>[[SQLITE_FCNTL_WAL_BLOCK]] |
| 1429 | 1428 | ** The [SQLITE_FCNTL_WAL_BLOCK] is a signal to the VFS layer that it might |
| 1430 | 1429 | ** be advantageous to block on the next WAL lock if the lock is not immediately |
| 1431 | 1430 | ** available. The WAL subsystem issues this signal during rare |
| 1432 | 1431 | ** circumstances in order to fix a problem with priority inversion. |
| | @@ -1576,10 +1575,11 @@ |
| 1576 | 1575 | #define SQLITE_FCNTL_RESERVE_BYTES 38 |
| 1577 | 1576 | #define SQLITE_FCNTL_CKPT_START 39 |
| 1578 | 1577 | #define SQLITE_FCNTL_EXTERNAL_READER 40 |
| 1579 | 1578 | #define SQLITE_FCNTL_CKSM_FILE 41 |
| 1580 | 1579 | #define SQLITE_FCNTL_RESET_CACHE 42 |
| 1580 | +#define SQLITE_FCNTL_NULL_IO 43 |
| 1581 | 1581 | |
| 1582 | 1582 | /* deprecated names */ |
| 1583 | 1583 | #define SQLITE_GET_LOCKPROXYFILE SQLITE_FCNTL_GET_LOCKPROXYFILE |
| 1584 | 1584 | #define SQLITE_SET_LOCKPROXYFILE SQLITE_FCNTL_SET_LOCKPROXYFILE |
| 1585 | 1585 | #define SQLITE_LAST_ERRNO SQLITE_FCNTL_LAST_ERRNO |
| | @@ -2954,14 +2954,18 @@ |
| 2954 | 2954 | ** |
| 2955 | 2955 | ** ^These functions return the number of rows modified, inserted or |
| 2956 | 2956 | ** deleted by the most recently completed INSERT, UPDATE or DELETE |
| 2957 | 2957 | ** statement on the database connection specified by the only parameter. |
| 2958 | 2958 | ** The two functions are identical except for the type of the return value |
| 2959 | | -** and that if the number of rows modified by the most recent INSERT, UPDATE |
| 2959 | +** and that if the number of rows modified by the most recent INSERT, UPDATE, |
| 2960 | 2960 | ** or DELETE is greater than the maximum value supported by type "int", then |
| 2961 | 2961 | ** the return value of sqlite3_changes() is undefined. ^Executing any other |
| 2962 | 2962 | ** type of SQL statement does not modify the value returned by these functions. |
| 2963 | +** For the purposes of this interface, a CREATE TABLE AS SELECT statement |
| 2964 | +** does not count as an INSERT, UPDATE or DELETE statement and hence the rows |
| 2965 | +** added to the new table by the CREATE TABLE AS SELECT statement are not |
| 2966 | +** counted. |
| 2963 | 2967 | ** |
| 2964 | 2968 | ** ^Only changes made directly by the INSERT, UPDATE or DELETE statement are |
| 2965 | 2969 | ** considered - auxiliary changes caused by [CREATE TRIGGER | triggers], |
| 2966 | 2970 | ** [foreign key actions] or [REPLACE] constraint resolution are not counted. |
| 2967 | 2971 | ** |
| | @@ -13908,11 +13912,10 @@ |
| 13908 | 13912 | /******** End of fts5.h *********/ |
| 13909 | 13913 | #endif /* SQLITE3_H */ |
| 13910 | 13914 | |
| 13911 | 13915 | /************** End of sqlite3.h *********************************************/ |
| 13912 | 13916 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 13913 | | -#line 203 "tsrc/sqliteInt.h" |
| 13914 | 13917 | |
| 13915 | 13918 | /* |
| 13916 | 13919 | ** Reuse the STATIC_LRU for mutex access to sqlite3_temp_directory. |
| 13917 | 13920 | */ |
| 13918 | 13921 | #define SQLITE_MUTEX_STATIC_TEMPDIR SQLITE_MUTEX_STATIC_VFS1 |
| | @@ -13926,11 +13929,10 @@ |
| 13926 | 13929 | #define SQLITECONFIG_H 1 |
| 13927 | 13930 | #endif |
| 13928 | 13931 | |
| 13929 | 13932 | /************** Include sqliteLimit.h in the middle of sqliteInt.h ***********/ |
| 13930 | 13933 | /************** Begin file sqliteLimit.h *************************************/ |
| 13931 | | -#line 1 "tsrc/sqliteLimit.h" |
| 13932 | 13934 | /* |
| 13933 | 13935 | ** 2007 May 7 |
| 13934 | 13936 | ** |
| 13935 | 13937 | ** The author disclaims copyright to this source code. In place of |
| 13936 | 13938 | ** a legal notice, here is a blessing: |
| | @@ -13952,10 +13954,11 @@ |
| 13952 | 13954 | ** to count the size: 2^31-1 or 2147483647. |
| 13953 | 13955 | */ |
| 13954 | 13956 | #ifndef SQLITE_MAX_LENGTH |
| 13955 | 13957 | # define SQLITE_MAX_LENGTH 1000000000 |
| 13956 | 13958 | #endif |
| 13959 | +#define SQLITE_MIN_LENGTH 30 /* Minimum value for the length limit */ |
| 13957 | 13960 | |
| 13958 | 13961 | /* |
| 13959 | 13962 | ** This is the maximum number of |
| 13960 | 13963 | ** |
| 13961 | 13964 | ** * Columns in a table |
| | @@ -14140,11 +14143,10 @@ |
| 14140 | 14143 | # define SQLITE_MAX_TRIGGER_DEPTH 1000 |
| 14141 | 14144 | #endif |
| 14142 | 14145 | |
| 14143 | 14146 | /************** End of sqliteLimit.h *****************************************/ |
| 14144 | 14147 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 14145 | | -#line 219 "tsrc/sqliteInt.h" |
| 14146 | 14148 | |
| 14147 | 14149 | /* Disable nuisance warnings on Borland compilers */ |
| 14148 | 14150 | #if defined(__BORLANDC__) |
| 14149 | 14151 | #pragma warn -rch /* unreachable code */ |
| 14150 | 14152 | #pragma warn -ccc /* Condition is always true or false */ |
| | @@ -14558,11 +14560,10 @@ |
| 14558 | 14560 | #define likely(X) (X) |
| 14559 | 14561 | #define unlikely(X) (X) |
| 14560 | 14562 | |
| 14561 | 14563 | /************** Include hash.h in the middle of sqliteInt.h ******************/ |
| 14562 | 14564 | /************** Begin file hash.h ********************************************/ |
| 14563 | | -#line 1 "tsrc/hash.h" |
| 14564 | 14565 | /* |
| 14565 | 14566 | ** 2001 September 22 |
| 14566 | 14567 | ** |
| 14567 | 14568 | ** The author disclaims copyright to this source code. In place of |
| 14568 | 14569 | ** a legal notice, here is a blessing: |
| | @@ -14658,14 +14659,12 @@ |
| 14658 | 14659 | |
| 14659 | 14660 | #endif /* SQLITE_HASH_H */ |
| 14660 | 14661 | |
| 14661 | 14662 | /************** End of hash.h ************************************************/ |
| 14662 | 14663 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 14663 | | -#line 635 "tsrc/sqliteInt.h" |
| 14664 | 14664 | /************** Include parse.h in the middle of sqliteInt.h *****************/ |
| 14665 | 14665 | /************** Begin file parse.h *******************************************/ |
| 14666 | | -#line 1 "tsrc/parse.h" |
| 14667 | 14666 | #define TK_SEMI 1 |
| 14668 | 14667 | #define TK_EXPLAIN 2 |
| 14669 | 14668 | #define TK_QUERY 3 |
| 14670 | 14669 | #define TK_PLAN 4 |
| 14671 | 14670 | #define TK_BEGIN 5 |
| | @@ -14850,11 +14849,10 @@ |
| 14850 | 14849 | #define TK_SPACE 184 |
| 14851 | 14850 | #define TK_ILLEGAL 185 |
| 14852 | 14851 | |
| 14853 | 14852 | /************** End of parse.h ***********************************************/ |
| 14854 | 14853 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 14855 | | -#line 636 "tsrc/sqliteInt.h" |
| 14856 | 14854 | #include <stdio.h> |
| 14857 | 14855 | #include <stdlib.h> |
| 14858 | 14856 | #include <string.h> |
| 14859 | 14857 | #include <assert.h> |
| 14860 | 14858 | #include <stddef.h> |
| | @@ -15616,11 +15614,10 @@ |
| 15616 | 15614 | ** "BusyHandler" typedefs. vdbe.h also requires a few of the opaque |
| 15617 | 15615 | ** pointer types (i.e. FuncDef) defined above. |
| 15618 | 15616 | */ |
| 15619 | 15617 | /************** Include os.h in the middle of sqliteInt.h ********************/ |
| 15620 | 15618 | /************** Begin file os.h **********************************************/ |
| 15621 | | -#line 1 "tsrc/os.h" |
| 15622 | 15619 | /* |
| 15623 | 15620 | ** 2001 September 16 |
| 15624 | 15621 | ** |
| 15625 | 15622 | ** The author disclaims copyright to this source code. In place of |
| 15626 | 15623 | ** a legal notice, here is a blessing: |
| | @@ -15645,11 +15642,10 @@ |
| 15645 | 15642 | ** Attempt to automatically detect the operating system and setup the |
| 15646 | 15643 | ** necessary pre-processor macros for it. |
| 15647 | 15644 | */ |
| 15648 | 15645 | /************** Include os_setup.h in the middle of os.h *********************/ |
| 15649 | 15646 | /************** Begin file os_setup.h ****************************************/ |
| 15650 | | -#line 1 "tsrc/os_setup.h" |
| 15651 | 15647 | /* |
| 15652 | 15648 | ** 2013 November 25 |
| 15653 | 15649 | ** |
| 15654 | 15650 | ** The author disclaims copyright to this source code. In place of |
| 15655 | 15651 | ** a legal notice, here is a blessing: |
| | @@ -15740,11 +15736,10 @@ |
| 15740 | 15736 | |
| 15741 | 15737 | #endif /* SQLITE_OS_SETUP_H */ |
| 15742 | 15738 | |
| 15743 | 15739 | /************** End of os_setup.h ********************************************/ |
| 15744 | 15740 | /************** Continuing where we left off in os.h *************************/ |
| 15745 | | -#line 28 "tsrc/os.h" |
| 15746 | 15741 | |
| 15747 | 15742 | /* If the SET_FULLSYNC macro is not defined above, then make it |
| 15748 | 15743 | ** a no-op |
| 15749 | 15744 | */ |
| 15750 | 15745 | #ifndef SET_FULLSYNC |
| | @@ -15942,14 +15937,12 @@ |
| 15942 | 15937 | |
| 15943 | 15938 | #endif /* _SQLITE_OS_H_ */ |
| 15944 | 15939 | |
| 15945 | 15940 | /************** End of os.h **************************************************/ |
| 15946 | 15941 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 15947 | | -#line 1400 "tsrc/sqliteInt.h" |
| 15948 | 15942 | /************** Include pager.h in the middle of sqliteInt.h *****************/ |
| 15949 | 15943 | /************** Begin file pager.h *******************************************/ |
| 15950 | | -#line 1 "tsrc/pager.h" |
| 15951 | 15944 | /* |
| 15952 | 15945 | ** 2001 September 15 |
| 15953 | 15946 | ** |
| 15954 | 15947 | ** The author disclaims copyright to this source code. In place of |
| 15955 | 15948 | ** a legal notice, here is a blessing: |
| | @@ -16196,14 +16189,12 @@ |
| 16196 | 16189 | |
| 16197 | 16190 | #endif /* SQLITE_PAGER_H */ |
| 16198 | 16191 | |
| 16199 | 16192 | /************** End of pager.h ***********************************************/ |
| 16200 | 16193 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 16201 | | -#line 1401 "tsrc/sqliteInt.h" |
| 16202 | 16194 | /************** Include btree.h in the middle of sqliteInt.h *****************/ |
| 16203 | 16195 | /************** Begin file btree.h *******************************************/ |
| 16204 | | -#line 1 "tsrc/btree.h" |
| 16205 | 16196 | /* |
| 16206 | 16197 | ** 2001 September 15 |
| 16207 | 16198 | ** |
| 16208 | 16199 | ** The author disclaims copyright to this source code. In place of |
| 16209 | 16200 | ** a legal notice, here is a blessing: |
| | @@ -16627,14 +16618,12 @@ |
| 16627 | 16618 | |
| 16628 | 16619 | #endif /* SQLITE_BTREE_H */ |
| 16629 | 16620 | |
| 16630 | 16621 | /************** End of btree.h ***********************************************/ |
| 16631 | 16622 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 16632 | | -#line 1402 "tsrc/sqliteInt.h" |
| 16633 | 16623 | /************** Include vdbe.h in the middle of sqliteInt.h ******************/ |
| 16634 | 16624 | /************** Begin file vdbe.h ********************************************/ |
| 16635 | | -#line 1 "tsrc/vdbe.h" |
| 16636 | 16625 | /* |
| 16637 | 16626 | ** 2001 September 15 |
| 16638 | 16627 | ** |
| 16639 | 16628 | ** The author disclaims copyright to this source code. In place of |
| 16640 | 16629 | ** a legal notice, here is a blessing: |
| | @@ -16814,11 +16803,10 @@ |
| 16814 | 16803 | ** The makefile scans the vdbe.c source file and creates the "opcodes.h" |
| 16815 | 16804 | ** header file that defines a number for each opcode used by the VDBE. |
| 16816 | 16805 | */ |
| 16817 | 16806 | /************** Include opcodes.h in the middle of vdbe.h ********************/ |
| 16818 | 16807 | /************** Begin file opcodes.h *****************************************/ |
| 16819 | | -#line 1 "tsrc/opcodes.h" |
| 16820 | 16808 | /* Automatically generated. Do not edit */ |
| 16821 | 16809 | /* See the tool/mkopcodeh.tcl script for details */ |
| 16822 | 16810 | #define OP_Savepoint 0 |
| 16823 | 16811 | #define OP_AutoCommit 1 |
| 16824 | 16812 | #define OP_Transaction 2 |
| | @@ -17056,11 +17044,10 @@ |
| 17056 | 17044 | */ |
| 17057 | 17045 | #define SQLITE_MX_JUMP_OPCODE 64 /* Maximum JUMP opcode */ |
| 17058 | 17046 | |
| 17059 | 17047 | /************** End of opcodes.h *********************************************/ |
| 17060 | 17048 | /************** Continuing where we left off in vdbe.h ***********************/ |
| 17061 | | -#line 183 "tsrc/vdbe.h" |
| 17062 | 17049 | |
| 17063 | 17050 | /* |
| 17064 | 17051 | ** Additional non-public SQLITE_PREPARE_* flags |
| 17065 | 17052 | */ |
| 17066 | 17053 | #define SQLITE_PREPARE_SAVESQL 0x80 /* Preserve SQL text */ |
| | @@ -17306,14 +17293,12 @@ |
| 17306 | 17293 | |
| 17307 | 17294 | #endif /* SQLITE_VDBE_H */ |
| 17308 | 17295 | |
| 17309 | 17296 | /************** End of vdbe.h ************************************************/ |
| 17310 | 17297 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 17311 | | -#line 1403 "tsrc/sqliteInt.h" |
| 17312 | 17298 | /************** Include pcache.h in the middle of sqliteInt.h ****************/ |
| 17313 | 17299 | /************** Begin file pcache.h ******************************************/ |
| 17314 | | -#line 1 "tsrc/pcache.h" |
| 17315 | 17300 | /* |
| 17316 | 17301 | ** 2008 August 05 |
| 17317 | 17302 | ** |
| 17318 | 17303 | ** The author disclaims copyright to this source code. In place of |
| 17319 | 17304 | ** a legal notice, here is a blessing: |
| | @@ -17503,14 +17488,12 @@ |
| 17503 | 17488 | |
| 17504 | 17489 | #endif /* _PCACHE_H_ */ |
| 17505 | 17490 | |
| 17506 | 17491 | /************** End of pcache.h **********************************************/ |
| 17507 | 17492 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 17508 | | -#line 1404 "tsrc/sqliteInt.h" |
| 17509 | 17493 | /************** Include mutex.h in the middle of sqliteInt.h *****************/ |
| 17510 | 17494 | /************** Begin file mutex.h *******************************************/ |
| 17511 | | -#line 1 "tsrc/mutex.h" |
| 17512 | 17495 | /* |
| 17513 | 17496 | ** 2007 August 28 |
| 17514 | 17497 | ** |
| 17515 | 17498 | ** The author disclaims copyright to this source code. In place of |
| 17516 | 17499 | ** a legal notice, here is a blessing: |
| | @@ -17581,11 +17564,10 @@ |
| 17581 | 17564 | SQLITE_API int sqlite3_mutex_held(sqlite3_mutex*); |
| 17582 | 17565 | #endif /* defined(SQLITE_MUTEX_OMIT) */ |
| 17583 | 17566 | |
| 17584 | 17567 | /************** End of mutex.h ***********************************************/ |
| 17585 | 17568 | /************** Continuing where we left off in sqliteInt.h ******************/ |
| 17586 | | -#line 1405 "tsrc/sqliteInt.h" |
| 17587 | 17569 | |
| 17588 | 17570 | /* The SQLITE_EXTRA_DURABLE compile-time option used to set the default |
| 17589 | 17571 | ** synchronous setting to EXTRA. It is no longer supported. |
| 17590 | 17572 | */ |
| 17591 | 17573 | #ifdef SQLITE_EXTRA_DURABLE |
| | @@ -21982,11 +21964,10 @@ |
| 21982 | 21964 | |
| 21983 | 21965 | #endif /* SQLITEINT_H */ |
| 21984 | 21966 | |
| 21985 | 21967 | /************** End of sqliteInt.h *******************************************/ |
| 21986 | 21968 | /************** Begin file os_common.h ***************************************/ |
| 21987 | | -#line 1 "tsrc/os_common.h" |
| 21988 | 21969 | /* |
| 21989 | 21970 | ** 2004 May 22 |
| 21990 | 21971 | ** |
| 21991 | 21972 | ** The author disclaims copyright to this source code. In place of |
| 21992 | 21973 | ** a legal notice, here is a blessing: |
| | @@ -22085,11 +22066,10 @@ |
| 22085 | 22066 | |
| 22086 | 22067 | #endif /* !defined(_OS_COMMON_H_) */ |
| 22087 | 22068 | |
| 22088 | 22069 | /************** End of os_common.h *******************************************/ |
| 22089 | 22070 | /************** Begin file ctime.c *******************************************/ |
| 22090 | | -#line 1 "tsrc/ctime.c" |
| 22091 | 22071 | /* DO NOT EDIT! |
| 22092 | 22072 | ** This file is automatically generated by the script in the canonical |
| 22093 | 22073 | ** SQLite source tree at tool/mkctimec.tcl. |
| 22094 | 22074 | ** |
| 22095 | 22075 | ** To modify this header, edit any of the various lists in that script |
| | @@ -22885,11 +22865,10 @@ |
| 22885 | 22865 | |
| 22886 | 22866 | #endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */ |
| 22887 | 22867 | |
| 22888 | 22868 | /************** End of ctime.c ***********************************************/ |
| 22889 | 22869 | /************** Begin file global.c ******************************************/ |
| 22890 | | -#line 1 "tsrc/global.c" |
| 22891 | 22870 | /* |
| 22892 | 22871 | ** 2008 June 13 |
| 22893 | 22872 | ** |
| 22894 | 22873 | ** The author disclaims copyright to this source code. In place of |
| 22895 | 22874 | ** a legal notice, here is a blessing: |
| | @@ -23290,11 +23269,10 @@ |
| 23290 | 23269 | "TEXT" |
| 23291 | 23270 | }; |
| 23292 | 23271 | |
| 23293 | 23272 | /************** End of global.c **********************************************/ |
| 23294 | 23273 | /************** Begin file status.c ******************************************/ |
| 23295 | | -#line 1 "tsrc/status.c" |
| 23296 | 23274 | /* |
| 23297 | 23275 | ** 2008 June 18 |
| 23298 | 23276 | ** |
| 23299 | 23277 | ** The author disclaims copyright to this source code. In place of |
| 23300 | 23278 | ** a legal notice, here is a blessing: |
| | @@ -23309,11 +23287,10 @@ |
| 23309 | 23287 | ** functionality. |
| 23310 | 23288 | */ |
| 23311 | 23289 | /* #include "sqliteInt.h" */ |
| 23312 | 23290 | /************** Include vdbeInt.h in the middle of status.c ******************/ |
| 23313 | 23291 | /************** Begin file vdbeInt.h *****************************************/ |
| 23314 | | -#line 1 "tsrc/vdbeInt.h" |
| 23315 | 23292 | /* |
| 23316 | 23293 | ** 2003 September 6 |
| 23317 | 23294 | ** |
| 23318 | 23295 | ** The author disclaims copyright to this source code. In place of |
| 23319 | 23296 | ** a legal notice, here is a blessing: |
| | @@ -24046,11 +24023,10 @@ |
| 24046 | 24023 | |
| 24047 | 24024 | #endif /* !defined(SQLITE_VDBEINT_H) */ |
| 24048 | 24025 | |
| 24049 | 24026 | /************** End of vdbeInt.h *********************************************/ |
| 24050 | 24027 | /************** Continuing where we left off in status.c *********************/ |
| 24051 | | -#line 18 "tsrc/status.c" |
| 24052 | 24028 | |
| 24053 | 24029 | /* |
| 24054 | 24030 | ** Variables in which to record status information. |
| 24055 | 24031 | */ |
| 24056 | 24032 | #if SQLITE_PTRSIZE>4 |
| | @@ -24431,11 +24407,10 @@ |
| 24431 | 24407 | return rc; |
| 24432 | 24408 | } |
| 24433 | 24409 | |
| 24434 | 24410 | /************** End of status.c **********************************************/ |
| 24435 | 24411 | /************** Begin file date.c ********************************************/ |
| 24436 | | -#line 1 "tsrc/date.c" |
| 24437 | 24412 | /* |
| 24438 | 24413 | ** 2003 October 31 |
| 24439 | 24414 | ** |
| 24440 | 24415 | ** The author disclaims copyright to this source code. In place of |
| 24441 | 24416 | ** a legal notice, here is a blessing: |
| | @@ -26250,11 +26225,10 @@ |
| 26250 | 26225 | sqlite3InsertBuiltinFuncs(aDateTimeFuncs, ArraySize(aDateTimeFuncs)); |
| 26251 | 26226 | } |
| 26252 | 26227 | |
| 26253 | 26228 | /************** End of date.c ************************************************/ |
| 26254 | 26229 | /************** Begin file os.c **********************************************/ |
| 26255 | | -#line 1 "tsrc/os.c" |
| 26256 | 26230 | /* |
| 26257 | 26231 | ** 2005 November 29 |
| 26258 | 26232 | ** |
| 26259 | 26233 | ** The author disclaims copyright to this source code. In place of |
| 26260 | 26234 | ** a legal notice, here is a blessing: |
| | @@ -26701,11 +26675,10 @@ |
| 26701 | 26675 | return SQLITE_OK; |
| 26702 | 26676 | } |
| 26703 | 26677 | |
| 26704 | 26678 | /************** End of os.c **************************************************/ |
| 26705 | 26679 | /************** Begin file fault.c *******************************************/ |
| 26706 | | -#line 1 "tsrc/fault.c" |
| 26707 | 26680 | /* |
| 26708 | 26681 | ** 2008 Jan 22 |
| 26709 | 26682 | ** |
| 26710 | 26683 | ** The author disclaims copyright to this source code. In place of |
| 26711 | 26684 | ** a legal notice, here is a blessing: |
| | @@ -26792,11 +26765,10 @@ |
| 26792 | 26765 | |
| 26793 | 26766 | #endif /* #ifndef SQLITE_UNTESTABLE */ |
| 26794 | 26767 | |
| 26795 | 26768 | /************** End of fault.c ***********************************************/ |
| 26796 | 26769 | /************** Begin file mem0.c ********************************************/ |
| 26797 | | -#line 1 "tsrc/mem0.c" |
| 26798 | 26770 | /* |
| 26799 | 26771 | ** 2008 October 28 |
| 26800 | 26772 | ** |
| 26801 | 26773 | ** The author disclaims copyright to this source code. In place of |
| 26802 | 26774 | ** a legal notice, here is a blessing: |
| | @@ -26855,11 +26827,10 @@ |
| 26855 | 26827 | |
| 26856 | 26828 | #endif /* SQLITE_ZERO_MALLOC */ |
| 26857 | 26829 | |
| 26858 | 26830 | /************** End of mem0.c ************************************************/ |
| 26859 | 26831 | /************** Begin file mem1.c ********************************************/ |
| 26860 | | -#line 1 "tsrc/mem1.c" |
| 26861 | 26832 | /* |
| 26862 | 26833 | ** 2007 August 14 |
| 26863 | 26834 | ** |
| 26864 | 26835 | ** The author disclaims copyright to this source code. In place of |
| 26865 | 26836 | ** a legal notice, here is a blessing: |
| | @@ -27150,11 +27121,10 @@ |
| 27150 | 27121 | |
| 27151 | 27122 | #endif /* SQLITE_SYSTEM_MALLOC */ |
| 27152 | 27123 | |
| 27153 | 27124 | /************** End of mem1.c ************************************************/ |
| 27154 | 27125 | /************** Begin file mem2.c ********************************************/ |
| 27155 | | -#line 1 "tsrc/mem2.c" |
| 27156 | 27126 | /* |
| 27157 | 27127 | ** 2007 August 15 |
| 27158 | 27128 | ** |
| 27159 | 27129 | ** The author disclaims copyright to this source code. In place of |
| 27160 | 27130 | ** a legal notice, here is a blessing: |
| | @@ -27682,11 +27652,10 @@ |
| 27682 | 27652 | |
| 27683 | 27653 | #endif /* SQLITE_MEMDEBUG */ |
| 27684 | 27654 | |
| 27685 | 27655 | /************** End of mem2.c ************************************************/ |
| 27686 | 27656 | /************** Begin file mem3.c ********************************************/ |
| 27687 | | -#line 1 "tsrc/mem3.c" |
| 27688 | 27657 | /* |
| 27689 | 27658 | ** 2007 October 14 |
| 27690 | 27659 | ** |
| 27691 | 27660 | ** The author disclaims copyright to this source code. In place of |
| 27692 | 27661 | ** a legal notice, here is a blessing: |
| | @@ -28373,11 +28342,10 @@ |
| 28373 | 28342 | |
| 28374 | 28343 | #endif /* SQLITE_ENABLE_MEMSYS3 */ |
| 28375 | 28344 | |
| 28376 | 28345 | /************** End of mem3.c ************************************************/ |
| 28377 | 28346 | /************** Begin file mem5.c ********************************************/ |
| 28378 | | -#line 1 "tsrc/mem5.c" |
| 28379 | 28347 | /* |
| 28380 | 28348 | ** 2007 October 14 |
| 28381 | 28349 | ** |
| 28382 | 28350 | ** The author disclaims copyright to this source code. In place of |
| 28383 | 28351 | ** a legal notice, here is a blessing: |
| | @@ -28962,11 +28930,10 @@ |
| 28962 | 28930 | |
| 28963 | 28931 | #endif /* SQLITE_ENABLE_MEMSYS5 */ |
| 28964 | 28932 | |
| 28965 | 28933 | /************** End of mem5.c ************************************************/ |
| 28966 | 28934 | /************** Begin file mutex.c *******************************************/ |
| 28967 | | -#line 1 "tsrc/mutex.c" |
| 28968 | 28935 | /* |
| 28969 | 28936 | ** 2007 August 14 |
| 28970 | 28937 | ** |
| 28971 | 28938 | ** The author disclaims copyright to this source code. In place of |
| 28972 | 28939 | ** a legal notice, here is a blessing: |
| | @@ -29340,11 +29307,10 @@ |
| 29340 | 29307 | |
| 29341 | 29308 | #endif /* !defined(SQLITE_MUTEX_OMIT) */ |
| 29342 | 29309 | |
| 29343 | 29310 | /************** End of mutex.c ***********************************************/ |
| 29344 | 29311 | /************** Begin file mutex_noop.c **************************************/ |
| 29345 | | -#line 1 "tsrc/mutex_noop.c" |
| 29346 | 29312 | /* |
| 29347 | 29313 | ** 2008 October 07 |
| 29348 | 29314 | ** |
| 29349 | 29315 | ** The author disclaims copyright to this source code. In place of |
| 29350 | 29316 | ** a legal notice, here is a blessing: |
| | @@ -29559,11 +29525,10 @@ |
| 29559 | 29525 | #endif /* defined(SQLITE_MUTEX_NOOP) */ |
| 29560 | 29526 | #endif /* !defined(SQLITE_MUTEX_OMIT) */ |
| 29561 | 29527 | |
| 29562 | 29528 | /************** End of mutex_noop.c ******************************************/ |
| 29563 | 29529 | /************** Begin file mutex_unix.c **************************************/ |
| 29564 | | -#line 1 "tsrc/mutex_unix.c" |
| 29565 | 29530 | /* |
| 29566 | 29531 | ** 2007 August 28 |
| 29567 | 29532 | ** |
| 29568 | 29533 | ** The author disclaims copyright to this source code. In place of |
| 29569 | 29534 | ** a legal notice, here is a blessing: |
| | @@ -29957,11 +29922,10 @@ |
| 29957 | 29922 | |
| 29958 | 29923 | #endif /* SQLITE_MUTEX_PTHREADS */ |
| 29959 | 29924 | |
| 29960 | 29925 | /************** End of mutex_unix.c ******************************************/ |
| 29961 | 29926 | /************** Begin file mutex_w32.c ***************************************/ |
| 29962 | | -#line 1 "tsrc/mutex_w32.c" |
| 29963 | 29927 | /* |
| 29964 | 29928 | ** 2007 August 14 |
| 29965 | 29929 | ** |
| 29966 | 29930 | ** The author disclaims copyright to this source code. In place of |
| 29967 | 29931 | ** a legal notice, here is a blessing: |
| | @@ -29984,11 +29948,10 @@ |
| 29984 | 29948 | /* |
| 29985 | 29949 | ** Include the header file for the Windows VFS. |
| 29986 | 29950 | */ |
| 29987 | 29951 | /************** Include os_win.h in the middle of mutex_w32.c ****************/ |
| 29988 | 29952 | /************** Begin file os_win.h ******************************************/ |
| 29989 | | -#line 1 "tsrc/os_win.h" |
| 29990 | 29953 | /* |
| 29991 | 29954 | ** 2013 November 25 |
| 29992 | 29955 | ** |
| 29993 | 29956 | ** The author disclaims copyright to this source code. In place of |
| 29994 | 29957 | ** a legal notice, here is a blessing: |
| | @@ -30076,11 +30039,10 @@ |
| 30076 | 30039 | |
| 30077 | 30040 | #endif /* SQLITE_OS_WIN_H */ |
| 30078 | 30041 | |
| 30079 | 30042 | /************** End of os_win.h **********************************************/ |
| 30080 | 30043 | /************** Continuing where we left off in mutex_w32.c ******************/ |
| 30081 | | -#line 26 "tsrc/mutex_w32.c" |
| 30082 | 30044 | #endif |
| 30083 | 30045 | |
| 30084 | 30046 | /* |
| 30085 | 30047 | ** The code in this file is only used if we are compiling multithreaded |
| 30086 | 30048 | ** on a Win32 system. |
| | @@ -30454,11 +30416,10 @@ |
| 30454 | 30416 | |
| 30455 | 30417 | #endif /* SQLITE_MUTEX_W32 */ |
| 30456 | 30418 | |
| 30457 | 30419 | /************** End of mutex_w32.c *******************************************/ |
| 30458 | 30420 | /************** Begin file malloc.c ******************************************/ |
| 30459 | | -#line 1 "tsrc/malloc.c" |
| 30460 | 30421 | /* |
| 30461 | 30422 | ** 2001 September 15 |
| 30462 | 30423 | ** |
| 30463 | 30424 | ** The author disclaims copyright to this source code. In place of |
| 30464 | 30425 | ** a legal notice, here is a blessing: |
| | @@ -31378,11 +31339,10 @@ |
| 31378 | 31339 | return 0; |
| 31379 | 31340 | } |
| 31380 | 31341 | |
| 31381 | 31342 | /************** End of malloc.c **********************************************/ |
| 31382 | 31343 | /************** Begin file printf.c ******************************************/ |
| 31383 | | -#line 1 "tsrc/printf.c" |
| 31384 | 31344 | /* |
| 31385 | 31345 | ** The "printf" code that follows dates from the 1980's. It is in |
| 31386 | 31346 | ** the public domain. |
| 31387 | 31347 | ** |
| 31388 | 31348 | ************************************************************************** |
| | @@ -32828,11 +32788,10 @@ |
| 32828 | 32788 | } |
| 32829 | 32789 | } |
| 32830 | 32790 | |
| 32831 | 32791 | /************** End of printf.c **********************************************/ |
| 32832 | 32792 | /************** Begin file treeview.c ****************************************/ |
| 32833 | | -#line 1 "tsrc/treeview.c" |
| 32834 | 32793 | /* |
| 32835 | 32794 | ** 2015-06-08 |
| 32836 | 32795 | ** |
| 32837 | 32796 | ** The author disclaims copyright to this source code. In place of |
| 32838 | 32797 | ** a legal notice, here is a blessing: |
| | @@ -34160,11 +34119,10 @@ |
| 34160 | 34119 | |
| 34161 | 34120 | #endif /* SQLITE_DEBUG */ |
| 34162 | 34121 | |
| 34163 | 34122 | /************** End of treeview.c ********************************************/ |
| 34164 | 34123 | /************** Begin file random.c ******************************************/ |
| 34165 | | -#line 1 "tsrc/random.c" |
| 34166 | 34124 | /* |
| 34167 | 34125 | ** 2001 September 15 |
| 34168 | 34126 | ** |
| 34169 | 34127 | ** The author disclaims copyright to this source code. In place of |
| 34170 | 34128 | ** a legal notice, here is a blessing: |
| | @@ -34321,11 +34279,10 @@ |
| 34321 | 34279 | } |
| 34322 | 34280 | #endif /* SQLITE_UNTESTABLE */ |
| 34323 | 34281 | |
| 34324 | 34282 | /************** End of random.c **********************************************/ |
| 34325 | 34283 | /************** Begin file threads.c *****************************************/ |
| 34326 | | -#line 1 "tsrc/threads.c" |
| 34327 | 34284 | /* |
| 34328 | 34285 | ** 2012 July 21 |
| 34329 | 34286 | ** |
| 34330 | 34287 | ** The author disclaims copyright to this source code. In place of |
| 34331 | 34288 | ** a legal notice, here is a blessing: |
| | @@ -34599,11 +34556,10 @@ |
| 34599 | 34556 | /****************************** End Single-Threaded *************************/ |
| 34600 | 34557 | #endif /* SQLITE_MAX_WORKER_THREADS>0 */ |
| 34601 | 34558 | |
| 34602 | 34559 | /************** End of threads.c *********************************************/ |
| 34603 | 34560 | /************** Begin file utf.c *********************************************/ |
| 34604 | | -#line 1 "tsrc/utf.c" |
| 34605 | 34561 | /* |
| 34606 | 34562 | ** 2004 April 13 |
| 34607 | 34563 | ** |
| 34608 | 34564 | ** The author disclaims copyright to this source code. In place of |
| 34609 | 34565 | ** a legal notice, here is a blessing: |
| | @@ -35171,11 +35127,10 @@ |
| 35171 | 35127 | #endif /* SQLITE_TEST */ |
| 35172 | 35128 | #endif /* SQLITE_OMIT_UTF16 */ |
| 35173 | 35129 | |
| 35174 | 35130 | /************** End of utf.c *************************************************/ |
| 35175 | 35131 | /************** Begin file util.c ********************************************/ |
| 35176 | | -#line 1 "tsrc/util.c" |
| 35177 | 35132 | /* |
| 35178 | 35133 | ** 2001 September 15 |
| 35179 | 35134 | ** |
| 35180 | 35135 | ** The author disclaims copyright to this source code. In place of |
| 35181 | 35136 | ** a legal notice, here is a blessing: |
| | @@ -37023,11 +36978,10 @@ |
| 37023 | 36978 | return 0; |
| 37024 | 36979 | } |
| 37025 | 36980 | |
| 37026 | 36981 | /************** End of util.c ************************************************/ |
| 37027 | 36982 | /************** Begin file hash.c ********************************************/ |
| 37028 | | -#line 1 "tsrc/hash.c" |
| 37029 | 36983 | /* |
| 37030 | 36984 | ** 2001 September 22 |
| 37031 | 36985 | ** |
| 37032 | 36986 | ** The author disclaims copyright to this source code. In place of |
| 37033 | 36987 | ** a legal notice, here is a blessing: |
| | @@ -37297,11 +37251,10 @@ |
| 37297 | 37251 | return 0; |
| 37298 | 37252 | } |
| 37299 | 37253 | |
| 37300 | 37254 | /************** End of hash.c ************************************************/ |
| 37301 | 37255 | /************** Begin file opcodes.c *****************************************/ |
| 37302 | | -#line 1 "tsrc/opcodes.c" |
| 37303 | 37256 | /* Automatically generated. Do not edit */ |
| 37304 | 37257 | /* See the tool/mkopcodec.tcl script for details. */ |
| 37305 | 37258 | #if !defined(SQLITE_OMIT_EXPLAIN) \ |
| 37306 | 37259 | || defined(VDBE_PROFILE) \ |
| 37307 | 37260 | || defined(SQLITE_DEBUG) |
| | @@ -37507,11 +37460,10 @@ |
| 37507 | 37460 | } |
| 37508 | 37461 | #endif |
| 37509 | 37462 | |
| 37510 | 37463 | /************** End of opcodes.c *********************************************/ |
| 37511 | 37464 | /************** Begin file os_kv.c *******************************************/ |
| 37512 | | -#line 1 "tsrc/os_kv.c" |
| 37513 | 37465 | /* |
| 37514 | 37466 | ** 2022-09-06 |
| 37515 | 37467 | ** |
| 37516 | 37468 | ** The author disclaims copyright to this source code. In place of |
| 37517 | 37469 | ** a legal notice, here is a blessing: |
| | @@ -38490,11 +38442,10 @@ |
| 38490 | 38442 | } |
| 38491 | 38443 | #endif |
| 38492 | 38444 | |
| 38493 | 38445 | /************** End of os_kv.c ***********************************************/ |
| 38494 | 38446 | /************** Begin file os_unix.c *****************************************/ |
| 38495 | | -#line 1 "tsrc/os_unix.c" |
| 38496 | 38447 | /* |
| 38497 | 38448 | ** 2004 May 22 |
| 38498 | 38449 | ** |
| 38499 | 38450 | ** The author disclaims copyright to this source code. In place of |
| 38500 | 38451 | ** a legal notice, here is a blessing: |
| | @@ -42480,10 +42431,15 @@ |
| 42480 | 42431 | int rc = osIoctl(pFile->h, F2FS_IOC_ABORT_VOLATILE_WRITE); |
| 42481 | 42432 | return rc ? SQLITE_IOERR_ROLLBACK_ATOMIC : SQLITE_OK; |
| 42482 | 42433 | } |
| 42483 | 42434 | #endif /* __linux__ && SQLITE_ENABLE_BATCH_ATOMIC_WRITE */ |
| 42484 | 42435 | |
| 42436 | + case SQLITE_FCNTL_NULL_IO: { |
| 42437 | + osClose(pFile->h); |
| 42438 | + pFile->h = -1; |
| 42439 | + return SQLITE_OK; |
| 42440 | + } |
| 42485 | 42441 | case SQLITE_FCNTL_LOCKSTATE: { |
| 42486 | 42442 | *(int*)pArg = pFile->eFileLock; |
| 42487 | 42443 | return SQLITE_OK; |
| 42488 | 42444 | } |
| 42489 | 42445 | case SQLITE_FCNTL_LAST_ERRNO: { |
| | @@ -46760,11 +46716,10 @@ |
| 46760 | 46716 | |
| 46761 | 46717 | #endif /* SQLITE_OS_UNIX */ |
| 46762 | 46718 | |
| 46763 | 46719 | /************** End of os_unix.c *********************************************/ |
| 46764 | 46720 | /************** Begin file os_win.c ******************************************/ |
| 46765 | | -#line 1 "tsrc/os_win.c" |
| 46766 | 46721 | /* |
| 46767 | 46722 | ** 2004 May 22 |
| 46768 | 46723 | ** |
| 46769 | 46724 | ** The author disclaims copyright to this source code. In place of |
| 46770 | 46725 | ** a legal notice, here is a blessing: |
| | @@ -50362,10 +50317,15 @@ |
| 50362 | 50317 | OSTRACE(("FCNTL oldFile=%p, newFile=%p, rc=SQLITE_OK\n", |
| 50363 | 50318 | hOldFile, pFile->h)); |
| 50364 | 50319 | return SQLITE_OK; |
| 50365 | 50320 | } |
| 50366 | 50321 | #endif |
| 50322 | + case SQLITE_FCNTL_NULL_IO: { |
| 50323 | + (void)osCloseHandle(pFile->h); |
| 50324 | + pFile->h = NULL; |
| 50325 | + return SQLITE_OK; |
| 50326 | + } |
| 50367 | 50327 | case SQLITE_FCNTL_TEMPFILENAME: { |
| 50368 | 50328 | char *zTFile = 0; |
| 50369 | 50329 | int rc = winGetTempname(pFile->pVfs, &zTFile); |
| 50370 | 50330 | if( rc==SQLITE_OK ){ |
| 50371 | 50331 | *(char**)pArg = zTFile; |
| | @@ -52975,11 +52935,10 @@ |
| 52975 | 52935 | |
| 52976 | 52936 | #endif /* SQLITE_OS_WIN */ |
| 52977 | 52937 | |
| 52978 | 52938 | /************** End of os_win.c **********************************************/ |
| 52979 | 52939 | /************** Begin file memdb.c *******************************************/ |
| 52980 | | -#line 1 "tsrc/memdb.c" |
| 52981 | 52940 | /* |
| 52982 | 52941 | ** 2016-09-07 |
| 52983 | 52942 | ** |
| 52984 | 52943 | ** The author disclaims copyright to this source code. In place of |
| 52985 | 52944 | ** a legal notice, here is a blessing: |
| | @@ -53915,11 +53874,10 @@ |
| 53915 | 53874 | } |
| 53916 | 53875 | #endif /* SQLITE_OMIT_DESERIALIZE */ |
| 53917 | 53876 | |
| 53918 | 53877 | /************** End of memdb.c ***********************************************/ |
| 53919 | 53878 | /************** Begin file bitvec.c ******************************************/ |
| 53920 | | -#line 1 "tsrc/bitvec.c" |
| 53921 | 53879 | /* |
| 53922 | 53880 | ** 2008 February 16 |
| 53923 | 53881 | ** |
| 53924 | 53882 | ** The author disclaims copyright to this source code. In place of |
| 53925 | 53883 | ** a legal notice, here is a blessing: |
| | @@ -54330,11 +54288,10 @@ |
| 54330 | 54288 | } |
| 54331 | 54289 | #endif /* SQLITE_UNTESTABLE */ |
| 54332 | 54290 | |
| 54333 | 54291 | /************** End of bitvec.c **********************************************/ |
| 54334 | 54292 | /************** Begin file pcache.c ******************************************/ |
| 54335 | | -#line 1 "tsrc/pcache.c" |
| 54336 | 54293 | /* |
| 54337 | 54294 | ** 2008 August 05 |
| 54338 | 54295 | ** |
| 54339 | 54296 | ** The author disclaims copyright to this source code. In place of |
| 54340 | 54297 | ** a legal notice, here is a blessing: |
| | @@ -55270,11 +55227,10 @@ |
| 55270 | 55227 | } |
| 55271 | 55228 | #endif |
| 55272 | 55229 | |
| 55273 | 55230 | /************** End of pcache.c **********************************************/ |
| 55274 | 55231 | /************** Begin file pcache1.c *****************************************/ |
| 55275 | | -#line 1 "tsrc/pcache1.c" |
| 55276 | 55232 | /* |
| 55277 | 55233 | ** 2008 November 05 |
| 55278 | 55234 | ** |
| 55279 | 55235 | ** The author disclaims copyright to this source code. In place of |
| 55280 | 55236 | ** a legal notice, here is a blessing: |
| | @@ -56556,11 +56512,10 @@ |
| 56556 | 56512 | } |
| 56557 | 56513 | #endif |
| 56558 | 56514 | |
| 56559 | 56515 | /************** End of pcache1.c *********************************************/ |
| 56560 | 56516 | /************** Begin file rowset.c ******************************************/ |
| 56561 | | -#line 1 "tsrc/rowset.c" |
| 56562 | 56517 | /* |
| 56563 | 56518 | ** 2008 December 3 |
| 56564 | 56519 | ** |
| 56565 | 56520 | ** The author disclaims copyright to this source code. In place of |
| 56566 | 56521 | ** a legal notice, here is a blessing: |
| | @@ -57062,11 +57017,10 @@ |
| 57062 | 57017 | return 0; |
| 57063 | 57018 | } |
| 57064 | 57019 | |
| 57065 | 57020 | /************** End of rowset.c **********************************************/ |
| 57066 | 57021 | /************** Begin file pager.c *******************************************/ |
| 57067 | | -#line 1 "tsrc/pager.c" |
| 57068 | 57022 | /* |
| 57069 | 57023 | ** 2001 September 15 |
| 57070 | 57024 | ** |
| 57071 | 57025 | ** The author disclaims copyright to this source code. In place of |
| 57072 | 57026 | ** a legal notice, here is a blessing: |
| | @@ -57087,11 +57041,10 @@ |
| 57087 | 57041 | */ |
| 57088 | 57042 | #ifndef SQLITE_OMIT_DISKIO |
| 57089 | 57043 | /* #include "sqliteInt.h" */ |
| 57090 | 57044 | /************** Include wal.h in the middle of pager.c ***********************/ |
| 57091 | 57045 | /************** Begin file wal.h *********************************************/ |
| 57092 | | -#line 1 "tsrc/wal.h" |
| 57093 | 57046 | /* |
| 57094 | 57047 | ** 2010 February 1 |
| 57095 | 57048 | ** |
| 57096 | 57049 | ** The author disclaims copyright to this source code. In place of |
| 57097 | 57050 | ** a legal notice, here is a blessing: |
| | @@ -57251,11 +57204,10 @@ |
| 57251 | 57204 | #endif /* ifndef SQLITE_OMIT_WAL */ |
| 57252 | 57205 | #endif /* SQLITE_WAL_H */ |
| 57253 | 57206 | |
| 57254 | 57207 | /************** End of wal.h *************************************************/ |
| 57255 | 57208 | /************** Continuing where we left off in pager.c **********************/ |
| 57256 | | -#line 24 "tsrc/pager.c" |
| 57257 | 57209 | |
| 57258 | 57210 | |
| 57259 | 57211 | /******************* NOTES ON THE DESIGN OF THE PAGER ************************ |
| 57260 | 57212 | ** |
| 57261 | 57213 | ** This comment block describes invariants that hold when using a rollback |
| | @@ -65041,11 +64993,10 @@ |
| 65041 | 64993 | |
| 65042 | 64994 | #endif /* SQLITE_OMIT_DISKIO */ |
| 65043 | 64995 | |
| 65044 | 64996 | /************** End of pager.c ***********************************************/ |
| 65045 | 64997 | /************** Begin file wal.c *********************************************/ |
| 65046 | | -#line 1 "tsrc/wal.c" |
| 65047 | 64998 | /* |
| 65048 | 64999 | ** 2010 February 1 |
| 65049 | 65000 | ** |
| 65050 | 65001 | ** The author disclaims copyright to this source code. In place of |
| 65051 | 65002 | ** a legal notice, here is a blessing: |
| | @@ -69638,11 +69589,10 @@ |
| 69638 | 69589 | |
| 69639 | 69590 | #endif /* #ifndef SQLITE_OMIT_WAL */ |
| 69640 | 69591 | |
| 69641 | 69592 | /************** End of wal.c *************************************************/ |
| 69642 | 69593 | /************** Begin file btmutex.c *****************************************/ |
| 69643 | | -#line 1 "tsrc/btmutex.c" |
| 69644 | 69594 | /* |
| 69645 | 69595 | ** 2007 August 27 |
| 69646 | 69596 | ** |
| 69647 | 69597 | ** The author disclaims copyright to this source code. In place of |
| 69648 | 69598 | ** a legal notice, here is a blessing: |
| | @@ -69658,11 +69608,10 @@ |
| 69658 | 69608 | ** big and we want to break it down some. This packaged seemed like |
| 69659 | 69609 | ** a good breakout. |
| 69660 | 69610 | */ |
| 69661 | 69611 | /************** Include btreeInt.h in the middle of btmutex.c ****************/ |
| 69662 | 69612 | /************** Begin file btreeInt.h ****************************************/ |
| 69663 | | -#line 1 "tsrc/btreeInt.h" |
| 69664 | 69613 | /* |
| 69665 | 69614 | ** 2004 April 6 |
| 69666 | 69615 | ** |
| 69667 | 69616 | ** The author disclaims copyright to this source code. In place of |
| 69668 | 69617 | ** a legal notice, here is a blessing: |
| | @@ -70396,11 +70345,10 @@ |
| 70396 | 70345 | # define get2byteAligned(x) ((x)[0]<<8 | (x)[1]) |
| 70397 | 70346 | #endif |
| 70398 | 70347 | |
| 70399 | 70348 | /************** End of btreeInt.h ********************************************/ |
| 70400 | 70349 | /************** Continuing where we left off in btmutex.c ********************/ |
| 70401 | | -#line 19 "tsrc/btmutex.c" |
| 70402 | 70350 | #ifndef SQLITE_OMIT_SHARED_CACHE |
| 70403 | 70351 | #if SQLITE_THREADSAFE |
| 70404 | 70352 | |
| 70405 | 70353 | /* |
| 70406 | 70354 | ** Obtain the BtShared mutex associated with B-Tree handle p. Also, |
| | @@ -70691,11 +70639,10 @@ |
| 70691 | 70639 | |
| 70692 | 70640 | #endif /* ifndef SQLITE_OMIT_SHARED_CACHE */ |
| 70693 | 70641 | |
| 70694 | 70642 | /************** End of btmutex.c *********************************************/ |
| 70695 | 70643 | /************** Begin file btree.c *******************************************/ |
| 70696 | | -#line 1 "tsrc/btree.c" |
| 70697 | 70644 | /* |
| 70698 | 70645 | ** 2004 April 6 |
| 70699 | 70646 | ** |
| 70700 | 70647 | ** The author disclaims copyright to this source code. In place of |
| 70701 | 70648 | ** a legal notice, here is a blessing: |
| | @@ -82186,11 +82133,10 @@ |
| 82186 | 82133 | } |
| 82187 | 82134 | #endif |
| 82188 | 82135 | |
| 82189 | 82136 | /************** End of btree.c ***********************************************/ |
| 82190 | 82137 | /************** Begin file backup.c ******************************************/ |
| 82191 | | -#line 1 "tsrc/backup.c" |
| 82192 | 82138 | /* |
| 82193 | 82139 | ** 2009 January 28 |
| 82194 | 82140 | ** |
| 82195 | 82141 | ** The author disclaims copyright to this source code. In place of |
| 82196 | 82142 | ** a legal notice, here is a blessing: |
| | @@ -82957,11 +82903,10 @@ |
| 82957 | 82903 | } |
| 82958 | 82904 | #endif /* SQLITE_OMIT_VACUUM */ |
| 82959 | 82905 | |
| 82960 | 82906 | /************** End of backup.c **********************************************/ |
| 82961 | 82907 | /************** Begin file vdbemem.c *****************************************/ |
| 82962 | | -#line 1 "tsrc/vdbemem.c" |
| 82963 | 82908 | /* |
| 82964 | 82909 | ** 2004 May 26 |
| 82965 | 82910 | ** |
| 82966 | 82911 | ** The author disclaims copyright to this source code. In place of |
| 82967 | 82912 | ** a legal notice, here is a blessing: |
| | @@ -85014,11 +84959,10 @@ |
| 85014 | 84959 | return valueBytes(pVal, enc); |
| 85015 | 84960 | } |
| 85016 | 84961 | |
| 85017 | 84962 | /************** End of vdbemem.c *********************************************/ |
| 85018 | 84963 | /************** Begin file vdbeaux.c *****************************************/ |
| 85019 | | -#line 1 "tsrc/vdbeaux.c" |
| 85020 | 84964 | /* |
| 85021 | 84965 | ** 2003 September 6 |
| 85022 | 84966 | ** |
| 85023 | 84967 | ** The author disclaims copyright to this source code. In place of |
| 85024 | 84968 | ** a legal notice, here is a blessing: |
| | @@ -90566,11 +90510,10 @@ |
| 90566 | 90510 | } |
| 90567 | 90511 | #endif /* SQLITE_ENABLE_PREUPDATE_HOOK */ |
| 90568 | 90512 | |
| 90569 | 90513 | /************** End of vdbeaux.c *********************************************/ |
| 90570 | 90514 | /************** Begin file vdbeapi.c *****************************************/ |
| 90571 | | -#line 1 "tsrc/vdbeapi.c" |
| 90572 | 90515 | /* |
| 90573 | 90516 | ** 2004 May 26 |
| 90574 | 90517 | ** |
| 90575 | 90518 | ** The author disclaims copyright to this source code. In place of |
| 90576 | 90519 | ** a legal notice, here is a blessing: |
| | @@ -93153,11 +93096,10 @@ |
| 93153 | 93096 | } |
| 93154 | 93097 | #endif /* SQLITE_ENABLE_STMT_SCANSTATUS */ |
| 93155 | 93098 | |
| 93156 | 93099 | /************** End of vdbeapi.c *********************************************/ |
| 93157 | 93100 | /************** Begin file vdbetrace.c ***************************************/ |
| 93158 | | -#line 1 "tsrc/vdbetrace.c" |
| 93159 | 93101 | /* |
| 93160 | 93102 | ** 2009 November 25 |
| 93161 | 93103 | ** |
| 93162 | 93104 | ** The author disclaims copyright to this source code. In place of |
| 93163 | 93105 | ** a legal notice, here is a blessing: |
| | @@ -93349,11 +93291,10 @@ |
| 93349 | 93291 | |
| 93350 | 93292 | #endif /* #ifndef SQLITE_OMIT_TRACE */ |
| 93351 | 93293 | |
| 93352 | 93294 | /************** End of vdbetrace.c *******************************************/ |
| 93353 | 93295 | /************** Begin file vdbe.c ********************************************/ |
| 93354 | | -#line 1 "tsrc/vdbe.c" |
| 93355 | 93296 | /* |
| 93356 | 93297 | ** 2001 September 15 |
| 93357 | 93298 | ** |
| 93358 | 93299 | ** The author disclaims copyright to this source code. In place of |
| 93359 | 93300 | ** a legal notice, here is a blessing: |
| | @@ -93381,11 +93322,10 @@ |
| 93381 | 93322 | #if defined(VDBE_PROFILE) \ |
| 93382 | 93323 | || defined(SQLITE_PERFORMANCE_TRACE) \ |
| 93383 | 93324 | || defined(SQLITE_ENABLE_STMT_SCANSTATUS) |
| 93384 | 93325 | /************** Include hwtime.h in the middle of vdbe.c *********************/ |
| 93385 | 93326 | /************** Begin file hwtime.h ******************************************/ |
| 93386 | | -#line 1 "tsrc/hwtime.h" |
| 93387 | 93327 | /* |
| 93388 | 93328 | ** 2008 May 27 |
| 93389 | 93329 | ** |
| 93390 | 93330 | ** The author disclaims copyright to this source code. In place of |
| 93391 | 93331 | ** a legal notice, here is a blessing: |
| | @@ -93470,11 +93410,10 @@ |
| 93470 | 93410 | |
| 93471 | 93411 | #endif /* !defined(SQLITE_HWTIME_H) */ |
| 93472 | 93412 | |
| 93473 | 93413 | /************** End of hwtime.h **********************************************/ |
| 93474 | 93414 | /************** Continuing where we left off in vdbe.c ***********************/ |
| 93475 | | -#line 31 "tsrc/vdbe.c" |
| 93476 | 93415 | #endif |
| 93477 | 93416 | |
| 93478 | 93417 | /* |
| 93479 | 93418 | ** Invoke this macro on memory cells just prior to changing the |
| 93480 | 93419 | ** value of the cell. This macro verifies that shallow copies are |
| | @@ -102664,11 +102603,10 @@ |
| 102664 | 102603 | } |
| 102665 | 102604 | |
| 102666 | 102605 | |
| 102667 | 102606 | /************** End of vdbe.c ************************************************/ |
| 102668 | 102607 | /************** Begin file vdbeblob.c ****************************************/ |
| 102669 | | -#line 1 "tsrc/vdbeblob.c" |
| 102670 | 102608 | /* |
| 102671 | 102609 | ** 2007 May 1 |
| 102672 | 102610 | ** |
| 102673 | 102611 | ** The author disclaims copyright to this source code. In place of |
| 102674 | 102612 | ** a legal notice, here is a blessing: |
| | @@ -103188,11 +103126,10 @@ |
| 103188 | 103126 | |
| 103189 | 103127 | #endif /* #ifndef SQLITE_OMIT_INCRBLOB */ |
| 103190 | 103128 | |
| 103191 | 103129 | /************** End of vdbeblob.c ********************************************/ |
| 103192 | 103130 | /************** Begin file vdbesort.c ****************************************/ |
| 103193 | | -#line 1 "tsrc/vdbesort.c" |
| 103194 | 103131 | /* |
| 103195 | 103132 | ** 2011-07-09 |
| 103196 | 103133 | ** |
| 103197 | 103134 | ** The author disclaims copyright to this source code. In place of |
| 103198 | 103135 | ** a legal notice, here is a blessing: |
| | @@ -105959,11 +105896,10 @@ |
| 105959 | 105896 | return SQLITE_OK; |
| 105960 | 105897 | } |
| 105961 | 105898 | |
| 105962 | 105899 | /************** End of vdbesort.c ********************************************/ |
| 105963 | 105900 | /************** Begin file vdbevtab.c ****************************************/ |
| 105964 | | -#line 1 "tsrc/vdbevtab.c" |
| 105965 | 105901 | /* |
| 105966 | 105902 | ** 2020-03-23 |
| 105967 | 105903 | ** |
| 105968 | 105904 | ** The author disclaims copyright to this source code. In place of |
| 105969 | 105905 | ** a legal notice, here is a blessing: |
| | @@ -106409,11 +106345,10 @@ |
| 106409 | 106345 | SQLITE_PRIVATE int sqlite3VdbeBytecodeVtabInit(sqlite3 *db){ return SQLITE_OK; } |
| 106410 | 106346 | #endif /* SQLITE_ENABLE_BYTECODE_VTAB */ |
| 106411 | 106347 | |
| 106412 | 106348 | /************** End of vdbevtab.c ********************************************/ |
| 106413 | 106349 | /************** Begin file memjournal.c **************************************/ |
| 106414 | | -#line 1 "tsrc/memjournal.c" |
| 106415 | 106350 | /* |
| 106416 | 106351 | ** 2008 October 7 |
| 106417 | 106352 | ** |
| 106418 | 106353 | ** The author disclaims copyright to this source code. In place of |
| 106419 | 106354 | ** a legal notice, here is a blessing: |
| | @@ -106853,11 +106788,10 @@ |
| 106853 | 106788 | return MAX(pVfs->szOsFile, (int)sizeof(MemJournal)); |
| 106854 | 106789 | } |
| 106855 | 106790 | |
| 106856 | 106791 | /************** End of memjournal.c ******************************************/ |
| 106857 | 106792 | /************** Begin file walker.c ******************************************/ |
| 106858 | | -#line 1 "tsrc/walker.c" |
| 106859 | 106793 | /* |
| 106860 | 106794 | ** 2008 August 16 |
| 106861 | 106795 | ** |
| 106862 | 106796 | ** The author disclaims copyright to this source code. In place of |
| 106863 | 106797 | ** a legal notice, here is a blessing: |
| | @@ -107118,11 +107052,10 @@ |
| 107118 | 107052 | return WRC_Continue; |
| 107119 | 107053 | } |
| 107120 | 107054 | |
| 107121 | 107055 | /************** End of walker.c **********************************************/ |
| 107122 | 107056 | /************** Begin file resolve.c *****************************************/ |
| 107123 | | -#line 1 "tsrc/resolve.c" |
| 107124 | 107057 | /* |
| 107125 | 107058 | ** 2008 August 18 |
| 107126 | 107059 | ** |
| 107127 | 107060 | ** The author disclaims copyright to this source code. In place of |
| 107128 | 107061 | ** a legal notice, here is a blessing: |
| | @@ -109440,11 +109373,10 @@ |
| 109440 | 109373 | return rc; |
| 109441 | 109374 | } |
| 109442 | 109375 | |
| 109443 | 109376 | /************** End of resolve.c *********************************************/ |
| 109444 | 109377 | /************** Begin file expr.c ********************************************/ |
| 109445 | | -#line 1 "tsrc/expr.c" |
| 109446 | 109378 | /* |
| 109447 | 109379 | ** 2001 September 15 |
| 109448 | 109380 | ** |
| 109449 | 109381 | ** The author disclaims copyright to this source code. In place of |
| 109450 | 109382 | ** a legal notice, here is a blessing: |
| | @@ -116770,11 +116702,10 @@ |
| 116770 | 116702 | } |
| 116771 | 116703 | #endif /* SQLITE_DEBUG */ |
| 116772 | 116704 | |
| 116773 | 116705 | /************** End of expr.c ************************************************/ |
| 116774 | 116706 | /************** Begin file alter.c *******************************************/ |
| 116775 | | -#line 1 "tsrc/alter.c" |
| 116776 | 116707 | /* |
| 116777 | 116708 | ** 2005 February 15 |
| 116778 | 116709 | ** |
| 116779 | 116710 | ** The author disclaims copyright to this source code. In place of |
| 116780 | 116711 | ** a legal notice, here is a blessing: |
| | @@ -119090,11 +119021,10 @@ |
| 119090 | 119021 | } |
| 119091 | 119022 | #endif /* SQLITE_ALTER_TABLE */ |
| 119092 | 119023 | |
| 119093 | 119024 | /************** End of alter.c ***********************************************/ |
| 119094 | 119025 | /************** Begin file analyze.c *****************************************/ |
| 119095 | | -#line 1 "tsrc/analyze.c" |
| 119096 | 119026 | /* |
| 119097 | 119027 | ** 2005-07-08 |
| 119098 | 119028 | ** |
| 119099 | 119029 | ** The author disclaims copyright to this source code. In place of |
| 119100 | 119030 | ** a legal notice, here is a blessing: |
| | @@ -121115,11 +121045,10 @@ |
| 121115 | 121045 | |
| 121116 | 121046 | #endif /* SQLITE_OMIT_ANALYZE */ |
| 121117 | 121047 | |
| 121118 | 121048 | /************** End of analyze.c *********************************************/ |
| 121119 | 121049 | /************** Begin file attach.c ******************************************/ |
| 121120 | | -#line 1 "tsrc/attach.c" |
| 121121 | 121050 | /* |
| 121122 | 121051 | ** 2003 April 6 |
| 121123 | 121052 | ** |
| 121124 | 121053 | ** The author disclaims copyright to this source code. In place of |
| 121125 | 121054 | ** a legal notice, here is a blessing: |
| | @@ -121728,11 +121657,10 @@ |
| 121728 | 121657 | } |
| 121729 | 121658 | #endif |
| 121730 | 121659 | |
| 121731 | 121660 | /************** End of attach.c **********************************************/ |
| 121732 | 121661 | /************** Begin file auth.c ********************************************/ |
| 121733 | | -#line 1 "tsrc/auth.c" |
| 121734 | 121662 | /* |
| 121735 | 121663 | ** 2003 January 11 |
| 121736 | 121664 | ** |
| 121737 | 121665 | ** The author disclaims copyright to this source code. In place of |
| 121738 | 121666 | ** a legal notice, here is a blessing: |
| | @@ -121992,11 +121920,10 @@ |
| 121992 | 121920 | |
| 121993 | 121921 | #endif /* SQLITE_OMIT_AUTHORIZATION */ |
| 121994 | 121922 | |
| 121995 | 121923 | /************** End of auth.c ************************************************/ |
| 121996 | 121924 | /************** Begin file build.c *******************************************/ |
| 121997 | | -#line 1 "tsrc/build.c" |
| 121998 | 121925 | /* |
| 121999 | 121926 | ** 2001 September 15 |
| 122000 | 121927 | ** |
| 122001 | 121928 | ** The author disclaims copyright to this source code. In place of |
| 122002 | 121929 | ** a legal notice, here is a blessing: |
| | @@ -127763,11 +127690,10 @@ |
| 127763 | 127690 | } |
| 127764 | 127691 | #endif /* !defined(SQLITE_OMIT_CTE) */ |
| 127765 | 127692 | |
| 127766 | 127693 | /************** End of build.c ***********************************************/ |
| 127767 | 127694 | /************** Begin file callback.c ****************************************/ |
| 127768 | | -#line 1 "tsrc/callback.c" |
| 127769 | 127695 | /* |
| 127770 | 127696 | ** 2005 May 23 |
| 127771 | 127697 | ** |
| 127772 | 127698 | ** The author disclaims copyright to this source code. In place of |
| 127773 | 127699 | ** a legal notice, here is a blessing: |
| | @@ -128307,11 +128233,10 @@ |
| 128307 | 128233 | return p; |
| 128308 | 128234 | } |
| 128309 | 128235 | |
| 128310 | 128236 | /************** End of callback.c ********************************************/ |
| 128311 | 128237 | /************** Begin file delete.c ******************************************/ |
| 128312 | | -#line 1 "tsrc/delete.c" |
| 128313 | 128238 | /* |
| 128314 | 128239 | ** 2001 September 15 |
| 128315 | 128240 | ** |
| 128316 | 128241 | ** The author disclaims copyright to this source code. In place of |
| 128317 | 128242 | ** a legal notice, here is a blessing: |
| | @@ -129341,11 +129266,10 @@ |
| 129341 | 129266 | } |
| 129342 | 129267 | } |
| 129343 | 129268 | |
| 129344 | 129269 | /************** End of delete.c **********************************************/ |
| 129345 | 129270 | /************** Begin file func.c ********************************************/ |
| 129346 | | -#line 1 "tsrc/func.c" |
| 129347 | 129271 | /* |
| 129348 | 129272 | ** 2002 February 23 |
| 129349 | 129273 | ** |
| 129350 | 129274 | ** The author disclaims copyright to this source code. In place of |
| 129351 | 129275 | ** a legal notice, here is a blessing: |
| | @@ -132188,11 +132112,10 @@ |
| 132188 | 132112 | #endif |
| 132189 | 132113 | } |
| 132190 | 132114 | |
| 132191 | 132115 | /************** End of func.c ************************************************/ |
| 132192 | 132116 | /************** Begin file fkey.c ********************************************/ |
| 132193 | | -#line 1 "tsrc/fkey.c" |
| 132194 | 132117 | /* |
| 132195 | 132118 | ** |
| 132196 | 132119 | ** The author disclaims copyright to this source code. In place of |
| 132197 | 132120 | ** a legal notice, here is a blessing: |
| 132198 | 132121 | ** |
| | @@ -133676,11 +133599,10 @@ |
| 133676 | 133599 | } |
| 133677 | 133600 | #endif /* ifndef SQLITE_OMIT_FOREIGN_KEY */ |
| 133678 | 133601 | |
| 133679 | 133602 | /************** End of fkey.c ************************************************/ |
| 133680 | 133603 | /************** Begin file insert.c ******************************************/ |
| 133681 | | -#line 1 "tsrc/insert.c" |
| 133682 | 133604 | /* |
| 133683 | 133605 | ** 2001 September 15 |
| 133684 | 133606 | ** |
| 133685 | 133607 | ** The author disclaims copyright to this source code. In place of |
| 133686 | 133608 | ** a legal notice, here is a blessing: |
| | @@ -137072,11 +136994,10 @@ |
| 137072 | 136994 | } |
| 137073 | 136995 | #endif /* SQLITE_OMIT_XFER_OPT */ |
| 137074 | 136996 | |
| 137075 | 136997 | /************** End of insert.c **********************************************/ |
| 137076 | 136998 | /************** Begin file legacy.c ******************************************/ |
| 137077 | | -#line 1 "tsrc/legacy.c" |
| 137078 | 136999 | /* |
| 137079 | 137000 | ** 2001 September 15 |
| 137080 | 137001 | ** |
| 137081 | 137002 | ** The author disclaims copyright to this source code. In place of |
| 137082 | 137003 | ** a legal notice, here is a blessing: |
| | @@ -137217,11 +137138,10 @@ |
| 137217 | 137138 | return rc; |
| 137218 | 137139 | } |
| 137219 | 137140 | |
| 137220 | 137141 | /************** End of legacy.c **********************************************/ |
| 137221 | 137142 | /************** Begin file loadext.c *****************************************/ |
| 137222 | | -#line 1 "tsrc/loadext.c" |
| 137223 | 137143 | /* |
| 137224 | 137144 | ** 2006 June 7 |
| 137225 | 137145 | ** |
| 137226 | 137146 | ** The author disclaims copyright to this source code. In place of |
| 137227 | 137147 | ** a legal notice, here is a blessing: |
| | @@ -137238,11 +137158,10 @@ |
| 137238 | 137158 | #ifndef SQLITE_CORE |
| 137239 | 137159 | #define SQLITE_CORE 1 /* Disable the API redefinition in sqlite3ext.h */ |
| 137240 | 137160 | #endif |
| 137241 | 137161 | /************** Include sqlite3ext.h in the middle of loadext.c **************/ |
| 137242 | 137162 | /************** Begin file sqlite3ext.h **************************************/ |
| 137243 | | -#line 1 "tsrc/sqlite3ext.h" |
| 137244 | 137163 | /* |
| 137245 | 137164 | ** 2006 June 7 |
| 137246 | 137165 | ** |
| 137247 | 137166 | ** The author disclaims copyright to this source code. In place of |
| 137248 | 137167 | ** a legal notice, here is a blessing: |
| | @@ -137961,11 +137880,10 @@ |
| 137961 | 137880 | |
| 137962 | 137881 | #endif /* SQLITE3EXT_H */ |
| 137963 | 137882 | |
| 137964 | 137883 | /************** End of sqlite3ext.h ******************************************/ |
| 137965 | 137884 | /************** Continuing where we left off in loadext.c ********************/ |
| 137966 | | -#line 20 "tsrc/loadext.c" |
| 137967 | 137885 | /* #include "sqliteInt.h" */ |
| 137968 | 137886 | |
| 137969 | 137887 | #ifndef SQLITE_OMIT_LOAD_EXTENSION |
| 137970 | 137888 | /* |
| 137971 | 137889 | ** Some API routines are omitted when various features are |
| | @@ -138867,11 +138785,10 @@ |
| 138867 | 138785 | } |
| 138868 | 138786 | } |
| 138869 | 138787 | |
| 138870 | 138788 | /************** End of loadext.c *********************************************/ |
| 138871 | 138789 | /************** Begin file pragma.c ******************************************/ |
| 138872 | | -#line 1 "tsrc/pragma.c" |
| 138873 | 138790 | /* |
| 138874 | 138791 | ** 2003 April 6 |
| 138875 | 138792 | ** |
| 138876 | 138793 | ** The author disclaims copyright to this source code. In place of |
| 138877 | 138794 | ** a legal notice, here is a blessing: |
| | @@ -138900,11 +138817,10 @@ |
| 138900 | 138817 | ** lexicographical order to facility a binary search of the pragma name. |
| 138901 | 138818 | ** Do not edit pragma.h directly. Edit and rerun the script in at |
| 138902 | 138819 | ** ../tool/mkpragmatab.tcl. */ |
| 138903 | 138820 | /************** Include pragma.h in the middle of pragma.c *******************/ |
| 138904 | 138821 | /************** Begin file pragma.h ******************************************/ |
| 138905 | | -#line 1 "tsrc/pragma.h" |
| 138906 | 138822 | /* DO NOT EDIT! |
| 138907 | 138823 | ** This file is automatically generated by the script at |
| 138908 | 138824 | ** ../tool/mkpragmatab.tcl. To update the set of pragmas, edit |
| 138909 | 138825 | ** that script and rerun it. |
| 138910 | 138826 | */ |
| | @@ -139564,11 +139480,10 @@ |
| 139564 | 139480 | }; |
| 139565 | 139481 | /* Number of pragmas: 68 on by default, 78 total. */ |
| 139566 | 139482 | |
| 139567 | 139483 | /************** End of pragma.h **********************************************/ |
| 139568 | 139484 | /************** Continuing where we left off in pragma.c *********************/ |
| 139569 | | -#line 32 "tsrc/pragma.c" |
| 139570 | 139485 | |
| 139571 | 139486 | /* |
| 139572 | 139487 | ** When the 0x10 bit of PRAGMA optimize is set, any ANALYZE commands |
| 139573 | 139488 | ** will be run with an analysis_limit set to the lessor of the value of |
| 139574 | 139489 | ** the following macro or to the actual analysis_limit if it is non-zero, |
| | @@ -142608,11 +142523,10 @@ |
| 142608 | 142523 | |
| 142609 | 142524 | #endif /* SQLITE_OMIT_PRAGMA */ |
| 142610 | 142525 | |
| 142611 | 142526 | /************** End of pragma.c **********************************************/ |
| 142612 | 142527 | /************** Begin file prepare.c *****************************************/ |
| 142613 | | -#line 1 "tsrc/prepare.c" |
| 142614 | 142528 | /* |
| 142615 | 142529 | ** 2005 May 25 |
| 142616 | 142530 | ** |
| 142617 | 142531 | ** The author disclaims copyright to this source code. In place of |
| 142618 | 142532 | ** a legal notice, here is a blessing: |
| | @@ -143702,11 +143616,10 @@ |
| 143702 | 143616 | |
| 143703 | 143617 | #endif /* SQLITE_OMIT_UTF16 */ |
| 143704 | 143618 | |
| 143705 | 143619 | /************** End of prepare.c *********************************************/ |
| 143706 | 143620 | /************** Begin file select.c ******************************************/ |
| 143707 | | -#line 1 "tsrc/select.c" |
| 143708 | 143621 | /* |
| 143709 | 143622 | ** 2001 September 15 |
| 143710 | 143623 | ** |
| 143711 | 143624 | ** The author disclaims copyright to this source code. In place of |
| 143712 | 143625 | ** a legal notice, here is a blessing: |
| | @@ -152475,11 +152388,10 @@ |
| 152475 | 152388 | return rc; |
| 152476 | 152389 | } |
| 152477 | 152390 | |
| 152478 | 152391 | /************** End of select.c **********************************************/ |
| 152479 | 152392 | /************** Begin file table.c *******************************************/ |
| 152480 | | -#line 1 "tsrc/table.c" |
| 152481 | 152393 | /* |
| 152482 | 152394 | ** 2001 September 15 |
| 152483 | 152395 | ** |
| 152484 | 152396 | ** The author disclaims copyright to this source code. In place of |
| 152485 | 152397 | ** a legal notice, here is a blessing: |
| | @@ -152677,11 +152589,10 @@ |
| 152677 | 152589 | |
| 152678 | 152590 | #endif /* SQLITE_OMIT_GET_TABLE */ |
| 152679 | 152591 | |
| 152680 | 152592 | /************** End of table.c ***********************************************/ |
| 152681 | 152593 | /************** Begin file trigger.c *****************************************/ |
| 152682 | | -#line 1 "tsrc/trigger.c" |
| 152683 | 152594 | /* |
| 152684 | 152595 | ** |
| 152685 | 152596 | ** The author disclaims copyright to this source code. In place of |
| 152686 | 152597 | ** a legal notice, here is a blessing: |
| 152687 | 152598 | ** |
| | @@ -154244,11 +154155,10 @@ |
| 154244 | 154155 | |
| 154245 | 154156 | #endif /* !defined(SQLITE_OMIT_TRIGGER) */ |
| 154246 | 154157 | |
| 154247 | 154158 | /************** End of trigger.c *********************************************/ |
| 154248 | 154159 | /************** Begin file update.c ******************************************/ |
| 154249 | | -#line 1 "tsrc/update.c" |
| 154250 | 154160 | /* |
| 154251 | 154161 | ** 2001 September 15 |
| 154252 | 154162 | ** |
| 154253 | 154163 | ** The author disclaims copyright to this source code. In place of |
| 154254 | 154164 | ** a legal notice, here is a blessing: |
| | @@ -155616,11 +155526,10 @@ |
| 155616 | 155526 | } |
| 155617 | 155527 | #endif /* SQLITE_OMIT_VIRTUALTABLE */ |
| 155618 | 155528 | |
| 155619 | 155529 | /************** End of update.c **********************************************/ |
| 155620 | 155530 | /************** Begin file upsert.c ******************************************/ |
| 155621 | | -#line 1 "tsrc/upsert.c" |
| 155622 | 155531 | /* |
| 155623 | 155532 | ** 2018-04-12 |
| 155624 | 155533 | ** |
| 155625 | 155534 | ** The author disclaims copyright to this source code. In place of |
| 155626 | 155535 | ** a legal notice, here is a blessing: |
| | @@ -155949,11 +155858,10 @@ |
| 155949 | 155858 | |
| 155950 | 155859 | #endif /* SQLITE_OMIT_UPSERT */ |
| 155951 | 155860 | |
| 155952 | 155861 | /************** End of upsert.c **********************************************/ |
| 155953 | 155862 | /************** Begin file vacuum.c ******************************************/ |
| 155954 | | -#line 1 "tsrc/vacuum.c" |
| 155955 | 155863 | /* |
| 155956 | 155864 | ** 2003 April 6 |
| 155957 | 155865 | ** |
| 155958 | 155866 | ** The author disclaims copyright to this source code. In place of |
| 155959 | 155867 | ** a legal notice, here is a blessing: |
| | @@ -156371,11 +156279,10 @@ |
| 156371 | 156279 | |
| 156372 | 156280 | #endif /* SQLITE_OMIT_VACUUM && SQLITE_OMIT_ATTACH */ |
| 156373 | 156281 | |
| 156374 | 156282 | /************** End of vacuum.c **********************************************/ |
| 156375 | 156283 | /************** Begin file vtab.c ********************************************/ |
| 156376 | | -#line 1 "tsrc/vtab.c" |
| 156377 | 156284 | /* |
| 156378 | 156285 | ** 2006 June 10 |
| 156379 | 156286 | ** |
| 156380 | 156287 | ** The author disclaims copyright to this source code. In place of |
| 156381 | 156288 | ** a legal notice, here is a blessing: |
| | @@ -157749,11 +157656,10 @@ |
| 157749 | 157656 | |
| 157750 | 157657 | #endif /* SQLITE_OMIT_VIRTUALTABLE */ |
| 157751 | 157658 | |
| 157752 | 157659 | /************** End of vtab.c ************************************************/ |
| 157753 | 157660 | /************** Begin file wherecode.c ***************************************/ |
| 157754 | | -#line 1 "tsrc/wherecode.c" |
| 157755 | 157661 | /* |
| 157756 | 157662 | ** 2015-06-06 |
| 157757 | 157663 | ** |
| 157758 | 157664 | ** The author disclaims copyright to this source code. In place of |
| 157759 | 157665 | ** a legal notice, here is a blessing: |
| | @@ -157772,11 +157678,10 @@ |
| 157772 | 157678 | ** file retains the code that does query planning and analysis. |
| 157773 | 157679 | */ |
| 157774 | 157680 | /* #include "sqliteInt.h" */ |
| 157775 | 157681 | /************** Include whereInt.h in the middle of wherecode.c **************/ |
| 157776 | 157682 | /************** Begin file whereInt.h ****************************************/ |
| 157777 | | -#line 1 "tsrc/whereInt.h" |
| 157778 | 157683 | /* |
| 157779 | 157684 | ** 2013-11-12 |
| 157780 | 157685 | ** |
| 157781 | 157686 | ** The author disclaims copyright to this source code. In place of |
| 157782 | 157687 | ** a legal notice, here is a blessing: |
| | @@ -158429,11 +158334,10 @@ |
| 158429 | 158334 | |
| 158430 | 158335 | #endif /* !defined(SQLITE_WHEREINT_H) */ |
| 158431 | 158336 | |
| 158432 | 158337 | /************** End of whereInt.h ********************************************/ |
| 158433 | 158338 | /************** Continuing where we left off in wherecode.c ******************/ |
| 158434 | | -#line 22 "tsrc/wherecode.c" |
| 158435 | 158339 | |
| 158436 | 158340 | #ifndef SQLITE_OMIT_EXPLAIN |
| 158437 | 158341 | |
| 158438 | 158342 | /* |
| 158439 | 158343 | ** Return the name of the i-th column of the pIdx index. |
| | @@ -161352,11 +161256,10 @@ |
| 161352 | 161256 | pParse->withinRJSubrtn--; |
| 161353 | 161257 | } |
| 161354 | 161258 | |
| 161355 | 161259 | /************** End of wherecode.c *******************************************/ |
| 161356 | 161260 | /************** Begin file whereexpr.c ***************************************/ |
| 161357 | | -#line 1 "tsrc/whereexpr.c" |
| 161358 | 161261 | /* |
| 161359 | 161262 | ** 2015-06-08 |
| 161360 | 161263 | ** |
| 161361 | 161264 | ** The author disclaims copyright to this source code. In place of |
| 161362 | 161265 | ** a legal notice, here is a blessing: |
| | @@ -163258,11 +163161,10 @@ |
| 163258 | 163161 | } |
| 163259 | 163162 | } |
| 163260 | 163163 | |
| 163261 | 163164 | /************** End of whereexpr.c *******************************************/ |
| 163262 | 163165 | /************** Begin file where.c *******************************************/ |
| 163263 | | -#line 1 "tsrc/where.c" |
| 163264 | 163166 | /* |
| 163265 | 163167 | ** 2001 September 15 |
| 163266 | 163168 | ** |
| 163267 | 163169 | ** The author disclaims copyright to this source code. In place of |
| 163268 | 163170 | ** a legal notice, here is a blessing: |
| | @@ -170759,11 +170661,10 @@ |
| 170759 | 170661 | return; |
| 170760 | 170662 | } |
| 170761 | 170663 | |
| 170762 | 170664 | /************** End of where.c ***********************************************/ |
| 170763 | 170665 | /************** Begin file window.c ******************************************/ |
| 170764 | | -#line 1 "tsrc/window.c" |
| 170765 | 170666 | /* |
| 170766 | 170667 | ** 2018 May 08 |
| 170767 | 170668 | ** |
| 170768 | 170669 | ** The author disclaims copyright to this source code. In place of |
| 170769 | 170670 | ** a legal notice, here is a blessing: |
| | @@ -172432,10 +172333,11 @@ |
| 172432 | 172333 | for(pWin=pMWin; pWin; pWin=pWin->pNextWin){ |
| 172433 | 172334 | FuncDef *pFunc = pWin->pWFunc; |
| 172434 | 172335 | int regArg; |
| 172435 | 172336 | int nArg = pWin->bExprArgs ? 0 : windowArgCount(pWin); |
| 172436 | 172337 | int i; |
| 172338 | + int addrIf = 0; |
| 172437 | 172339 | |
| 172438 | 172340 | assert( bInverse==0 || pWin->eStart!=TK_UNBOUNDED ); |
| 172439 | 172341 | |
| 172440 | 172342 | /* All OVER clauses in the same window function aggregate step must |
| 172441 | 172343 | ** be the same. */ |
| | @@ -172447,10 +172349,22 @@ |
| 172447 | 172349 | }else{ |
| 172448 | 172350 | sqlite3VdbeAddOp3(v, OP_Column, pMWin->iEphCsr, pWin->iArgCol+i, reg+i); |
| 172449 | 172351 | } |
| 172450 | 172352 | } |
| 172451 | 172353 | regArg = reg; |
| 172354 | + |
| 172355 | + if( pWin->pFilter ){ |
| 172356 | + int regTmp; |
| 172357 | + assert( ExprUseXList(pWin->pOwner) ); |
| 172358 | + assert( pWin->bExprArgs || !nArg ||nArg==pWin->pOwner->x.pList->nExpr ); |
| 172359 | + assert( pWin->bExprArgs || nArg ||pWin->pOwner->x.pList==0 ); |
| 172360 | + regTmp = sqlite3GetTempReg(pParse); |
| 172361 | + sqlite3VdbeAddOp3(v, OP_Column, csr, pWin->iArgCol+nArg,regTmp); |
| 172362 | + addrIf = sqlite3VdbeAddOp3(v, OP_IfNot, regTmp, 0, 1); |
| 172363 | + VdbeCoverage(v); |
| 172364 | + sqlite3ReleaseTempReg(pParse, regTmp); |
| 172365 | + } |
| 172452 | 172366 | |
| 172453 | 172367 | if( pMWin->regStartRowid==0 |
| 172454 | 172368 | && (pFunc->funcFlags & SQLITE_FUNC_MINMAX) |
| 172455 | 172369 | && (pWin->eStart!=TK_UNBOUNDED) |
| 172456 | 172370 | ){ |
| | @@ -172467,29 +172381,17 @@ |
| 172467 | 172381 | sqlite3VdbeAddOp1(v, OP_Delete, pWin->csrApp); |
| 172468 | 172382 | sqlite3VdbeJumpHere(v, sqlite3VdbeCurrentAddr(v)-2); |
| 172469 | 172383 | } |
| 172470 | 172384 | sqlite3VdbeJumpHere(v, addrIsNull); |
| 172471 | 172385 | }else if( pWin->regApp ){ |
| 172386 | + assert( pWin->pFilter==0 ); |
| 172472 | 172387 | assert( pFunc->zName==nth_valueName |
| 172473 | 172388 | || pFunc->zName==first_valueName |
| 172474 | 172389 | ); |
| 172475 | 172390 | assert( bInverse==0 || bInverse==1 ); |
| 172476 | 172391 | sqlite3VdbeAddOp2(v, OP_AddImm, pWin->regApp+1-bInverse, 1); |
| 172477 | 172392 | }else if( pFunc->xSFunc!=noopStepFunc ){ |
| 172478 | | - int addrIf = 0; |
| 172479 | | - if( pWin->pFilter ){ |
| 172480 | | - int regTmp; |
| 172481 | | - assert( ExprUseXList(pWin->pOwner) ); |
| 172482 | | - assert( pWin->bExprArgs || !nArg ||nArg==pWin->pOwner->x.pList->nExpr ); |
| 172483 | | - assert( pWin->bExprArgs || nArg ||pWin->pOwner->x.pList==0 ); |
| 172484 | | - regTmp = sqlite3GetTempReg(pParse); |
| 172485 | | - sqlite3VdbeAddOp3(v, OP_Column, csr, pWin->iArgCol+nArg,regTmp); |
| 172486 | | - addrIf = sqlite3VdbeAddOp3(v, OP_IfNot, regTmp, 0, 1); |
| 172487 | | - VdbeCoverage(v); |
| 172488 | | - sqlite3ReleaseTempReg(pParse, regTmp); |
| 172489 | | - } |
| 172490 | | - |
| 172491 | 172393 | if( pWin->bExprArgs ){ |
| 172492 | 172394 | int iOp = sqlite3VdbeCurrentAddr(v); |
| 172493 | 172395 | int iEnd; |
| 172494 | 172396 | |
| 172495 | 172397 | assert( ExprUseXList(pWin->pOwner) ); |
| | @@ -172516,12 +172418,13 @@ |
| 172516 | 172418 | sqlite3VdbeAppendP4(v, pFunc, P4_FUNCDEF); |
| 172517 | 172419 | sqlite3VdbeChangeP5(v, (u8)nArg); |
| 172518 | 172420 | if( pWin->bExprArgs ){ |
| 172519 | 172421 | sqlite3ReleaseTempRange(pParse, regArg, nArg); |
| 172520 | 172422 | } |
| 172521 | | - if( addrIf ) sqlite3VdbeJumpHere(v, addrIf); |
| 172522 | 172423 | } |
| 172424 | + |
| 172425 | + if( addrIf ) sqlite3VdbeJumpHere(v, addrIf); |
| 172523 | 172426 | } |
| 172524 | 172427 | } |
| 172525 | 172428 | |
| 172526 | 172429 | /* |
| 172527 | 172430 | ** Values that may be passed as the second argument to windowCodeOp(). |
| | @@ -173869,11 +173772,10 @@ |
| 173869 | 173772 | |
| 173870 | 173773 | #endif /* SQLITE_OMIT_WINDOWFUNC */ |
| 173871 | 173774 | |
| 173872 | 173775 | /************** End of window.c **********************************************/ |
| 173873 | 173776 | /************** Begin file parse.c *******************************************/ |
| 173874 | | -#line 1 "tsrc/parse.c" |
| 173875 | 173777 | /* This file is automatically generated by Lemon from input grammar |
| 173876 | 173778 | ** source file "parse.y". |
| 173877 | 173779 | */ |
| 173878 | 173780 | /* |
| 173879 | 173781 | ** 2001-09-15 |
| | @@ -173893,11 +173795,10 @@ |
| 173893 | 173795 | ** That input file is processed by Lemon to generate a C-language |
| 173894 | 173796 | ** implementation of a parser for the given grammar. You might be reading |
| 173895 | 173797 | ** this comment as part of the translated C-code. Edits should be made |
| 173896 | 173798 | ** to the original parse.y sources. |
| 173897 | 173799 | */ |
| 173898 | | -#line 62 "parse.y" |
| 173899 | 173800 | |
| 173900 | 173801 | /* #include "sqliteInt.h" */ |
| 173901 | 173802 | |
| 173902 | 173803 | /* |
| 173903 | 173804 | ** Disable all error recovery processing in the parser push-down |
| | @@ -173977,11 +173878,10 @@ |
| 173977 | 173878 | sqlite3ExprListDelete(pParse->db, pOrderBy); |
| 173978 | 173879 | sqlite3ExprDelete(pParse->db, pLimit); |
| 173979 | 173880 | } |
| 173980 | 173881 | #endif /* SQLITE_ENABLE_UPDATE_DELETE_LIMIT */ |
| 173981 | 173882 | |
| 173982 | | -#line 517 "parse.y" |
| 173983 | 173883 | |
| 173984 | 173884 | /* |
| 173985 | 173885 | ** For a compound SELECT statement, make sure p->pPrior->pNext==p for |
| 173986 | 173886 | ** all elements in the list. And make sure list length does not exceed |
| 173987 | 173887 | ** SQLITE_LIMIT_COMPOUND_SELECT. |
| | @@ -174032,11 +173932,10 @@ |
| 174032 | 173932 | ** testing. |
| 174033 | 173933 | */ |
| 174034 | 173934 | static void *parserStackRealloc(void *pOld, sqlite3_uint64 newSize){ |
| 174035 | 173935 | return sqlite3FaultSim(700) ? 0 : sqlite3_realloc(pOld, newSize); |
| 174036 | 173936 | } |
| 174037 | | -#line 1085 "parse.y" |
| 174038 | 173937 | |
| 174039 | 173938 | |
| 174040 | 173939 | /* Construct a new Expr object from a single token */ |
| 174041 | 173940 | static Expr *tokenExpr(Parse *pParse, int op, Token t){ |
| 174042 | 173941 | Expr *p = sqlite3DbMallocRawNN(pParse->db, sizeof(Expr)+t.n+1); |
| | @@ -174069,11 +173968,10 @@ |
| 174069 | 173968 | } |
| 174070 | 173969 | } |
| 174071 | 173970 | return p; |
| 174072 | 173971 | } |
| 174073 | 173972 | |
| 174074 | | -#line 1329 "parse.y" |
| 174075 | 173973 | |
| 174076 | 173974 | /* A routine to convert a binary TK_IS or TK_ISNOT expression into a |
| 174077 | 173975 | ** unary TK_ISNULL or TK_NOTNULL expression. */ |
| 174078 | 173976 | static void binaryToUnaryIfNull(Parse *pParse, Expr *pY, Expr *pA, int op){ |
| 174079 | 173977 | sqlite3 *db = pParse->db; |
| | @@ -174081,11 +173979,10 @@ |
| 174081 | 173979 | pA->op = (u8)op; |
| 174082 | 173980 | sqlite3ExprDelete(db, pA->pRight); |
| 174083 | 173981 | pA->pRight = 0; |
| 174084 | 173982 | } |
| 174085 | 173983 | } |
| 174086 | | -#line 1564 "parse.y" |
| 174087 | 173984 | |
| 174088 | 173985 | /* Add a single new term to an ExprList that is used to store a |
| 174089 | 173986 | ** list of identifiers. Report an error if the ID list contains |
| 174090 | 173987 | ** a COLLATE clause or an ASC or DESC keyword, except ignore the |
| 174091 | 173988 | ** error while parsing a legacy schema. |
| | @@ -174105,16 +174002,14 @@ |
| 174105 | 174002 | pIdToken->n, pIdToken->z); |
| 174106 | 174003 | } |
| 174107 | 174004 | sqlite3ExprListSetName(pParse, p, pIdToken, 1); |
| 174108 | 174005 | return p; |
| 174109 | 174006 | } |
| 174110 | | -#line 2048 "parse.y" |
| 174111 | 174007 | |
| 174112 | 174008 | #if TK_SPAN>255 |
| 174113 | 174009 | # error too many tokens in the grammar |
| 174114 | 174010 | #endif |
| 174115 | | -#line 267 "parse.sql" |
| 174116 | 174011 | /**************** End of %include directives **********************************/ |
| 174117 | 174012 | /* These constants specify the various numeric values for terminal symbols. |
| 174118 | 174013 | ***************** Begin token definitions *************************************/ |
| 174119 | 174014 | #ifndef TK_SEMI |
| 174120 | 174015 | #define TK_SEMI 1 |
| | @@ -176295,13 +176190,11 @@ |
| 176295 | 176190 | case 240: /* selectnowith */ |
| 176296 | 176191 | case 241: /* oneselect */ |
| 176297 | 176192 | case 253: /* values */ |
| 176298 | 176193 | case 255: /* mvalues */ |
| 176299 | 176194 | { |
| 176300 | | -#line 511 "parse.y" |
| 176301 | 176195 | sqlite3SelectDelete(pParse->db, (yypminor->yy555)); |
| 176302 | | -#line 2453 "parse.sql" |
| 176303 | 176196 | } |
| 176304 | 176197 | break; |
| 176305 | 176198 | case 217: /* term */ |
| 176306 | 176199 | case 218: /* expr */ |
| 176307 | 176200 | case 247: /* where_opt */ |
| | @@ -176312,13 +176205,11 @@ |
| 176312 | 176205 | case 285: /* vinto */ |
| 176313 | 176206 | case 292: /* when_clause */ |
| 176314 | 176207 | case 297: /* key_opt */ |
| 176315 | 176208 | case 314: /* filter_clause */ |
| 176316 | 176209 | { |
| 176317 | | -#line 1083 "parse.y" |
| 176318 | 176210 | sqlite3ExprDelete(pParse->db, (yypminor->yy454)); |
| 176319 | | -#line 2470 "parse.sql" |
| 176320 | 176211 | } |
| 176321 | 176212 | break; |
| 176322 | 176213 | case 222: /* eidlist_opt */ |
| 176323 | 176214 | case 232: /* sortlist */ |
| 176324 | 176215 | case 233: /* eidlist */ |
| | @@ -176331,82 +176222,64 @@ |
| 176331 | 176222 | case 270: /* setlist */ |
| 176332 | 176223 | case 279: /* paren_exprlist */ |
| 176333 | 176224 | case 281: /* case_exprlist */ |
| 176334 | 176225 | case 313: /* part_opt */ |
| 176335 | 176226 | { |
| 176336 | | -#line 1562 "parse.y" |
| 176337 | 176227 | sqlite3ExprListDelete(pParse->db, (yypminor->yy14)); |
| 176338 | | -#line 2489 "parse.sql" |
| 176339 | 176228 | } |
| 176340 | 176229 | break; |
| 176341 | 176230 | case 239: /* fullname */ |
| 176342 | 176231 | case 246: /* from */ |
| 176343 | 176232 | case 258: /* seltablist */ |
| 176344 | 176233 | case 259: /* stl_prefix */ |
| 176345 | 176234 | case 264: /* xfullname */ |
| 176346 | 176235 | { |
| 176347 | | -#line 789 "parse.y" |
| 176348 | 176236 | sqlite3SrcListDelete(pParse->db, (yypminor->yy203)); |
| 176349 | | -#line 2500 "parse.sql" |
| 176350 | 176237 | } |
| 176351 | 176238 | break; |
| 176352 | 176239 | case 242: /* wqlist */ |
| 176353 | 176240 | { |
| 176354 | | -#line 1849 "parse.y" |
| 176355 | 176241 | sqlite3WithDelete(pParse->db, (yypminor->yy59)); |
| 176356 | | -#line 2507 "parse.sql" |
| 176357 | 176242 | } |
| 176358 | 176243 | break; |
| 176359 | 176244 | case 252: /* window_clause */ |
| 176360 | 176245 | case 309: /* windowdefn_list */ |
| 176361 | 176246 | { |
| 176362 | | -#line 1977 "parse.y" |
| 176363 | 176247 | sqlite3WindowListDelete(pParse->db, (yypminor->yy211)); |
| 176364 | | -#line 2515 "parse.sql" |
| 176365 | 176248 | } |
| 176366 | 176249 | break; |
| 176367 | 176250 | case 265: /* idlist */ |
| 176368 | 176251 | case 272: /* idlist_opt */ |
| 176369 | 176252 | { |
| 176370 | | -#line 1068 "parse.y" |
| 176371 | 176253 | sqlite3IdListDelete(pParse->db, (yypminor->yy132)); |
| 176372 | | -#line 2523 "parse.sql" |
| 176373 | 176254 | } |
| 176374 | 176255 | break; |
| 176375 | 176256 | case 275: /* filter_over */ |
| 176376 | 176257 | case 310: /* windowdefn */ |
| 176377 | 176258 | case 311: /* window */ |
| 176378 | 176259 | case 312: /* frame_opt */ |
| 176379 | 176260 | case 315: /* over_clause */ |
| 176380 | 176261 | { |
| 176381 | | -#line 1916 "parse.y" |
| 176382 | 176262 | sqlite3WindowDelete(pParse->db, (yypminor->yy211)); |
| 176383 | | -#line 2534 "parse.sql" |
| 176384 | 176263 | } |
| 176385 | 176264 | break; |
| 176386 | 176265 | case 288: /* trigger_cmd_list */ |
| 176387 | 176266 | case 293: /* trigger_cmd */ |
| 176388 | 176267 | { |
| 176389 | | -#line 1677 "parse.y" |
| 176390 | 176268 | sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy427)); |
| 176391 | | -#line 2542 "parse.sql" |
| 176392 | 176269 | } |
| 176393 | 176270 | break; |
| 176394 | 176271 | case 290: /* trigger_event */ |
| 176395 | 176272 | { |
| 176396 | | -#line 1663 "parse.y" |
| 176397 | 176273 | sqlite3IdListDelete(pParse->db, (yypminor->yy286).b); |
| 176398 | | -#line 2549 "parse.sql" |
| 176399 | 176274 | } |
| 176400 | 176275 | break; |
| 176401 | 176276 | case 317: /* frame_bound */ |
| 176402 | 176277 | case 318: /* frame_bound_s */ |
| 176403 | 176278 | case 319: /* frame_bound_e */ |
| 176404 | 176279 | { |
| 176405 | | -#line 1921 "parse.y" |
| 176406 | 176280 | sqlite3ExprDelete(pParse->db, (yypminor->yy509).pExpr); |
| 176407 | | -#line 2558 "parse.sql" |
| 176408 | 176281 | } |
| 176409 | 176282 | break; |
| 176410 | 176283 | /********* End destructor definitions *****************************************/ |
| 176411 | 176284 | default: break; /* If no destructor action specified: do nothing */ |
| 176412 | 176285 | } |
| | @@ -176637,14 +176510,12 @@ |
| 176637 | 176510 | #endif |
| 176638 | 176511 | while( yypParser->yytos>yypParser->yystack ) yy_pop_parser_stack(yypParser); |
| 176639 | 176512 | /* Here code is inserted which will execute if the parser |
| 176640 | 176513 | ** stack every overflows */ |
| 176641 | 176514 | /******** Begin %stack_overflow code ******************************************/ |
| 176642 | | -#line 51 "parse.y" |
| 176643 | 176515 | |
| 176644 | 176516 | sqlite3OomFault(pParse->db); |
| 176645 | | -#line 2796 "parse.sql" |
| 176646 | 176517 | /******** End %stack_overflow code ********************************************/ |
| 176647 | 176518 | sqlite3ParserARG_STORE /* Suppress warning about unused %extra_argument var */ |
| 176648 | 176519 | sqlite3ParserCTX_STORE |
| 176649 | 176520 | } |
| 176650 | 176521 | |
| | @@ -177571,481 +177442,330 @@ |
| 177571 | 177442 | ** break; |
| 177572 | 177443 | */ |
| 177573 | 177444 | /********** Begin reduce actions **********************************************/ |
| 177574 | 177445 | YYMINORTYPE yylhsminor; |
| 177575 | 177446 | case 0: /* explain ::= EXPLAIN */ |
| 177576 | | -#line 155 "parse.y" |
| 177577 | 177447 | { if( pParse->pReprepare==0 ) pParse->explain = 1; } |
| 177578 | | -#line 3729 "parse.sql" |
| 177579 | 177448 | break; |
| 177580 | 177449 | case 1: /* explain ::= EXPLAIN QUERY PLAN */ |
| 177581 | | -#line 156 "parse.y" |
| 177582 | 177450 | { if( pParse->pReprepare==0 ) pParse->explain = 2; } |
| 177583 | | -#line 3734 "parse.sql" |
| 177584 | 177451 | break; |
| 177585 | 177452 | case 2: /* cmdx ::= cmd */ |
| 177586 | | -#line 158 "parse.y" |
| 177587 | 177453 | { sqlite3FinishCoding(pParse); } |
| 177588 | | -#line 3739 "parse.sql" |
| 177589 | 177454 | break; |
| 177590 | 177455 | case 3: /* cmd ::= BEGIN transtype trans_opt */ |
| 177591 | | -#line 163 "parse.y" |
| 177592 | 177456 | {sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy144);} |
| 177593 | | -#line 3744 "parse.sql" |
| 177594 | 177457 | break; |
| 177595 | 177458 | case 4: /* transtype ::= */ |
| 177596 | | -#line 168 "parse.y" |
| 177597 | 177459 | {yymsp[1].minor.yy144 = TK_DEFERRED;} |
| 177598 | | -#line 3749 "parse.sql" |
| 177599 | 177460 | break; |
| 177600 | 177461 | case 5: /* transtype ::= DEFERRED */ |
| 177601 | 177462 | case 6: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==6); |
| 177602 | 177463 | case 7: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==7); |
| 177603 | 177464 | case 324: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==324); |
| 177604 | | -#line 169 "parse.y" |
| 177605 | 177465 | {yymsp[0].minor.yy144 = yymsp[0].major; /*A-overwrites-X*/} |
| 177606 | | -#line 3757 "parse.sql" |
| 177607 | 177466 | break; |
| 177608 | 177467 | case 8: /* cmd ::= COMMIT|END trans_opt */ |
| 177609 | 177468 | case 9: /* cmd ::= ROLLBACK trans_opt */ yytestcase(yyruleno==9); |
| 177610 | | -#line 172 "parse.y" |
| 177611 | 177469 | {sqlite3EndTransaction(pParse,yymsp[-1].major);} |
| 177612 | | -#line 3763 "parse.sql" |
| 177613 | 177470 | break; |
| 177614 | 177471 | case 10: /* cmd ::= SAVEPOINT nm */ |
| 177615 | | -#line 177 "parse.y" |
| 177616 | 177472 | { |
| 177617 | 177473 | sqlite3Savepoint(pParse, SAVEPOINT_BEGIN, &yymsp[0].minor.yy0); |
| 177618 | 177474 | } |
| 177619 | | -#line 3770 "parse.sql" |
| 177620 | 177475 | break; |
| 177621 | 177476 | case 11: /* cmd ::= RELEASE savepoint_opt nm */ |
| 177622 | | -#line 180 "parse.y" |
| 177623 | 177477 | { |
| 177624 | 177478 | sqlite3Savepoint(pParse, SAVEPOINT_RELEASE, &yymsp[0].minor.yy0); |
| 177625 | 177479 | } |
| 177626 | | -#line 3777 "parse.sql" |
| 177627 | 177480 | break; |
| 177628 | 177481 | case 12: /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ |
| 177629 | | -#line 183 "parse.y" |
| 177630 | 177482 | { |
| 177631 | 177483 | sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0); |
| 177632 | 177484 | } |
| 177633 | | -#line 3784 "parse.sql" |
| 177634 | 177485 | break; |
| 177635 | 177486 | case 13: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ |
| 177636 | | -#line 190 "parse.y" |
| 177637 | 177487 | { |
| 177638 | 177488 | sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy144,0,0,yymsp[-2].minor.yy144); |
| 177639 | 177489 | } |
| 177640 | | -#line 3791 "parse.sql" |
| 177641 | 177490 | break; |
| 177642 | 177491 | case 14: /* createkw ::= CREATE */ |
| 177643 | | -#line 193 "parse.y" |
| 177644 | 177492 | {disableLookaside(pParse);} |
| 177645 | | -#line 3796 "parse.sql" |
| 177646 | 177493 | break; |
| 177647 | 177494 | case 15: /* ifnotexists ::= */ |
| 177648 | 177495 | case 18: /* temp ::= */ yytestcase(yyruleno==18); |
| 177649 | 177496 | case 47: /* autoinc ::= */ yytestcase(yyruleno==47); |
| 177650 | 177497 | case 62: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==62); |
| 177651 | 177498 | case 72: /* defer_subclause_opt ::= */ yytestcase(yyruleno==72); |
| 177652 | 177499 | case 81: /* ifexists ::= */ yytestcase(yyruleno==81); |
| 177653 | 177500 | case 100: /* distinct ::= */ yytestcase(yyruleno==100); |
| 177654 | 177501 | case 246: /* collate ::= */ yytestcase(yyruleno==246); |
| 177655 | | -#line 196 "parse.y" |
| 177656 | 177502 | {yymsp[1].minor.yy144 = 0;} |
| 177657 | | -#line 3808 "parse.sql" |
| 177658 | 177503 | break; |
| 177659 | 177504 | case 16: /* ifnotexists ::= IF NOT EXISTS */ |
| 177660 | | -#line 197 "parse.y" |
| 177661 | 177505 | {yymsp[-2].minor.yy144 = 1;} |
| 177662 | | -#line 3813 "parse.sql" |
| 177663 | 177506 | break; |
| 177664 | 177507 | case 17: /* temp ::= TEMP */ |
| 177665 | | -#line 200 "parse.y" |
| 177666 | 177508 | {yymsp[0].minor.yy144 = pParse->db->init.busy==0;} |
| 177667 | | -#line 3818 "parse.sql" |
| 177668 | 177509 | break; |
| 177669 | 177510 | case 19: /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */ |
| 177670 | | -#line 203 "parse.y" |
| 177671 | 177511 | { |
| 177672 | 177512 | sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy391,0); |
| 177673 | 177513 | } |
| 177674 | | -#line 3825 "parse.sql" |
| 177675 | 177514 | break; |
| 177676 | 177515 | case 20: /* create_table_args ::= AS select */ |
| 177677 | | -#line 206 "parse.y" |
| 177678 | 177516 | { |
| 177679 | 177517 | sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy555); |
| 177680 | 177518 | sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy555); |
| 177681 | 177519 | } |
| 177682 | | -#line 3833 "parse.sql" |
| 177683 | 177520 | break; |
| 177684 | 177521 | case 21: /* table_option_set ::= */ |
| 177685 | | -#line 212 "parse.y" |
| 177686 | 177522 | {yymsp[1].minor.yy391 = 0;} |
| 177687 | | -#line 3838 "parse.sql" |
| 177688 | 177523 | break; |
| 177689 | 177524 | case 22: /* table_option_set ::= table_option_set COMMA table_option */ |
| 177690 | | -#line 214 "parse.y" |
| 177691 | 177525 | {yylhsminor.yy391 = yymsp[-2].minor.yy391|yymsp[0].minor.yy391;} |
| 177692 | | -#line 3843 "parse.sql" |
| 177693 | 177526 | yymsp[-2].minor.yy391 = yylhsminor.yy391; |
| 177694 | 177527 | break; |
| 177695 | 177528 | case 23: /* table_option ::= WITHOUT nm */ |
| 177696 | | -#line 215 "parse.y" |
| 177697 | 177529 | { |
| 177698 | 177530 | if( yymsp[0].minor.yy0.n==5 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"rowid",5)==0 ){ |
| 177699 | 177531 | yymsp[-1].minor.yy391 = TF_WithoutRowid | TF_NoVisibleRowid; |
| 177700 | 177532 | }else{ |
| 177701 | 177533 | yymsp[-1].minor.yy391 = 0; |
| 177702 | 177534 | sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z); |
| 177703 | 177535 | } |
| 177704 | 177536 | } |
| 177705 | | -#line 3856 "parse.sql" |
| 177706 | 177537 | break; |
| 177707 | 177538 | case 24: /* table_option ::= nm */ |
| 177708 | | -#line 223 "parse.y" |
| 177709 | 177539 | { |
| 177710 | 177540 | if( yymsp[0].minor.yy0.n==6 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"strict",6)==0 ){ |
| 177711 | 177541 | yylhsminor.yy391 = TF_Strict; |
| 177712 | 177542 | }else{ |
| 177713 | 177543 | yylhsminor.yy391 = 0; |
| 177714 | 177544 | sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z); |
| 177715 | 177545 | } |
| 177716 | 177546 | } |
| 177717 | | -#line 3868 "parse.sql" |
| 177718 | 177547 | yymsp[0].minor.yy391 = yylhsminor.yy391; |
| 177719 | 177548 | break; |
| 177720 | 177549 | case 25: /* columnname ::= nm typetoken */ |
| 177721 | | -#line 233 "parse.y" |
| 177722 | 177550 | {sqlite3AddColumn(pParse,yymsp[-1].minor.yy0,yymsp[0].minor.yy0);} |
| 177723 | | -#line 3874 "parse.sql" |
| 177724 | 177551 | break; |
| 177725 | 177552 | case 26: /* typetoken ::= */ |
| 177726 | 177553 | case 65: /* conslist_opt ::= */ yytestcase(yyruleno==65); |
| 177727 | 177554 | case 106: /* as ::= */ yytestcase(yyruleno==106); |
| 177728 | | -#line 327 "parse.y" |
| 177729 | 177555 | {yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.z = 0;} |
| 177730 | | -#line 3881 "parse.sql" |
| 177731 | 177556 | break; |
| 177732 | 177557 | case 27: /* typetoken ::= typename LP signed RP */ |
| 177733 | | -#line 329 "parse.y" |
| 177734 | 177558 | { |
| 177735 | 177559 | yymsp[-3].minor.yy0.n = (int)(&yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-3].minor.yy0.z); |
| 177736 | 177560 | } |
| 177737 | | -#line 3888 "parse.sql" |
| 177738 | 177561 | break; |
| 177739 | 177562 | case 28: /* typetoken ::= typename LP signed COMMA signed RP */ |
| 177740 | | -#line 332 "parse.y" |
| 177741 | 177563 | { |
| 177742 | 177564 | yymsp[-5].minor.yy0.n = (int)(&yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-5].minor.yy0.z); |
| 177743 | 177565 | } |
| 177744 | | -#line 3895 "parse.sql" |
| 177745 | 177566 | break; |
| 177746 | 177567 | case 29: /* typename ::= typename ID|STRING */ |
| 177747 | | -#line 337 "parse.y" |
| 177748 | 177568 | {yymsp[-1].minor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);} |
| 177749 | | -#line 3900 "parse.sql" |
| 177750 | 177569 | break; |
| 177751 | 177570 | case 30: /* scanpt ::= */ |
| 177752 | | -#line 355 "parse.y" |
| 177753 | 177571 | { |
| 177754 | 177572 | assert( yyLookahead!=YYNOCODE ); |
| 177755 | 177573 | yymsp[1].minor.yy168 = yyLookaheadToken.z; |
| 177756 | 177574 | } |
| 177757 | | -#line 3908 "parse.sql" |
| 177758 | 177575 | break; |
| 177759 | 177576 | case 31: /* scantok ::= */ |
| 177760 | | -#line 359 "parse.y" |
| 177761 | 177577 | { |
| 177762 | 177578 | assert( yyLookahead!=YYNOCODE ); |
| 177763 | 177579 | yymsp[1].minor.yy0 = yyLookaheadToken; |
| 177764 | 177580 | } |
| 177765 | | -#line 3916 "parse.sql" |
| 177766 | 177581 | break; |
| 177767 | 177582 | case 32: /* ccons ::= CONSTRAINT nm */ |
| 177768 | 177583 | case 67: /* tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==67); |
| 177769 | | -#line 369 "parse.y" |
| 177770 | 177584 | {pParse->constraintName = yymsp[0].minor.yy0;} |
| 177771 | | -#line 3922 "parse.sql" |
| 177772 | 177585 | break; |
| 177773 | 177586 | case 33: /* ccons ::= DEFAULT scantok term */ |
| 177774 | | -#line 371 "parse.y" |
| 177775 | 177587 | {sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy454,yymsp[-1].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} |
| 177776 | | -#line 3927 "parse.sql" |
| 177777 | 177588 | break; |
| 177778 | 177589 | case 34: /* ccons ::= DEFAULT LP expr RP */ |
| 177779 | | -#line 373 "parse.y" |
| 177780 | 177590 | {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy454,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);} |
| 177781 | | -#line 3932 "parse.sql" |
| 177782 | 177591 | break; |
| 177783 | 177592 | case 35: /* ccons ::= DEFAULT PLUS scantok term */ |
| 177784 | | -#line 375 "parse.y" |
| 177785 | 177593 | {sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy454,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} |
| 177786 | | -#line 3937 "parse.sql" |
| 177787 | 177594 | break; |
| 177788 | 177595 | case 36: /* ccons ::= DEFAULT MINUS scantok term */ |
| 177789 | | -#line 376 "parse.y" |
| 177790 | 177596 | { |
| 177791 | 177597 | Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy454, 0); |
| 177792 | 177598 | sqlite3AddDefaultValue(pParse,p,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]); |
| 177793 | 177599 | } |
| 177794 | | -#line 3945 "parse.sql" |
| 177795 | 177600 | break; |
| 177796 | 177601 | case 37: /* ccons ::= DEFAULT scantok ID|INDEXED */ |
| 177797 | | -#line 380 "parse.y" |
| 177798 | 177602 | { |
| 177799 | 177603 | Expr *p = tokenExpr(pParse, TK_STRING, yymsp[0].minor.yy0); |
| 177800 | 177604 | if( p ){ |
| 177801 | 177605 | sqlite3ExprIdToTrueFalse(p); |
| 177802 | 177606 | testcase( p->op==TK_TRUEFALSE && sqlite3ExprTruthValue(p) ); |
| 177803 | 177607 | } |
| 177804 | 177608 | sqlite3AddDefaultValue(pParse,p,yymsp[0].minor.yy0.z,yymsp[0].minor.yy0.z+yymsp[0].minor.yy0.n); |
| 177805 | 177609 | } |
| 177806 | | -#line 3957 "parse.sql" |
| 177807 | 177610 | break; |
| 177808 | 177611 | case 38: /* ccons ::= NOT NULL onconf */ |
| 177809 | | -#line 393 "parse.y" |
| 177810 | 177612 | {sqlite3AddNotNull(pParse, yymsp[0].minor.yy144);} |
| 177811 | | -#line 3962 "parse.sql" |
| 177812 | 177613 | break; |
| 177813 | 177614 | case 39: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ |
| 177814 | | -#line 395 "parse.y" |
| 177815 | 177615 | {sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy144,yymsp[0].minor.yy144,yymsp[-2].minor.yy144);} |
| 177816 | | -#line 3967 "parse.sql" |
| 177817 | 177616 | break; |
| 177818 | 177617 | case 40: /* ccons ::= UNIQUE onconf */ |
| 177819 | | -#line 396 "parse.y" |
| 177820 | 177618 | {sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy144,0,0,0,0, |
| 177821 | 177619 | SQLITE_IDXTYPE_UNIQUE);} |
| 177822 | | -#line 3973 "parse.sql" |
| 177823 | 177620 | break; |
| 177824 | 177621 | case 41: /* ccons ::= CHECK LP expr RP */ |
| 177825 | | -#line 398 "parse.y" |
| 177826 | 177622 | {sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy454,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy0.z);} |
| 177827 | | -#line 3978 "parse.sql" |
| 177828 | 177623 | break; |
| 177829 | 177624 | case 42: /* ccons ::= REFERENCES nm eidlist_opt refargs */ |
| 177830 | | -#line 400 "parse.y" |
| 177831 | 177625 | {sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy14,yymsp[0].minor.yy144);} |
| 177832 | | -#line 3983 "parse.sql" |
| 177833 | 177626 | break; |
| 177834 | 177627 | case 43: /* ccons ::= defer_subclause */ |
| 177835 | | -#line 401 "parse.y" |
| 177836 | 177628 | {sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy144);} |
| 177837 | | -#line 3988 "parse.sql" |
| 177838 | 177629 | break; |
| 177839 | 177630 | case 44: /* ccons ::= COLLATE ID|STRING */ |
| 177840 | | -#line 402 "parse.y" |
| 177841 | 177631 | {sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);} |
| 177842 | | -#line 3993 "parse.sql" |
| 177843 | 177632 | break; |
| 177844 | 177633 | case 45: /* generated ::= LP expr RP */ |
| 177845 | | -#line 405 "parse.y" |
| 177846 | 177634 | {sqlite3AddGenerated(pParse,yymsp[-1].minor.yy454,0);} |
| 177847 | | -#line 3998 "parse.sql" |
| 177848 | 177635 | break; |
| 177849 | 177636 | case 46: /* generated ::= LP expr RP ID */ |
| 177850 | | -#line 406 "parse.y" |
| 177851 | 177637 | {sqlite3AddGenerated(pParse,yymsp[-2].minor.yy454,&yymsp[0].minor.yy0);} |
| 177852 | | -#line 4003 "parse.sql" |
| 177853 | 177638 | break; |
| 177854 | 177639 | case 48: /* autoinc ::= AUTOINCR */ |
| 177855 | | -#line 411 "parse.y" |
| 177856 | 177640 | {yymsp[0].minor.yy144 = 1;} |
| 177857 | | -#line 4008 "parse.sql" |
| 177858 | 177641 | break; |
| 177859 | 177642 | case 49: /* refargs ::= */ |
| 177860 | | -#line 419 "parse.y" |
| 177861 | 177643 | { yymsp[1].minor.yy144 = OE_None*0x0101; /* EV: R-19803-45884 */} |
| 177862 | | -#line 4013 "parse.sql" |
| 177863 | 177644 | break; |
| 177864 | 177645 | case 50: /* refargs ::= refargs refarg */ |
| 177865 | | -#line 420 "parse.y" |
| 177866 | 177646 | { yymsp[-1].minor.yy144 = (yymsp[-1].minor.yy144 & ~yymsp[0].minor.yy383.mask) | yymsp[0].minor.yy383.value; } |
| 177867 | | -#line 4018 "parse.sql" |
| 177868 | 177647 | break; |
| 177869 | 177648 | case 51: /* refarg ::= MATCH nm */ |
| 177870 | | -#line 422 "parse.y" |
| 177871 | 177649 | { yymsp[-1].minor.yy383.value = 0; yymsp[-1].minor.yy383.mask = 0x000000; } |
| 177872 | | -#line 4023 "parse.sql" |
| 177873 | 177650 | break; |
| 177874 | 177651 | case 52: /* refarg ::= ON INSERT refact */ |
| 177875 | | -#line 423 "parse.y" |
| 177876 | 177652 | { yymsp[-2].minor.yy383.value = 0; yymsp[-2].minor.yy383.mask = 0x000000; } |
| 177877 | | -#line 4028 "parse.sql" |
| 177878 | 177653 | break; |
| 177879 | 177654 | case 53: /* refarg ::= ON DELETE refact */ |
| 177880 | | -#line 424 "parse.y" |
| 177881 | 177655 | { yymsp[-2].minor.yy383.value = yymsp[0].minor.yy144; yymsp[-2].minor.yy383.mask = 0x0000ff; } |
| 177882 | | -#line 4033 "parse.sql" |
| 177883 | 177656 | break; |
| 177884 | 177657 | case 54: /* refarg ::= ON UPDATE refact */ |
| 177885 | | -#line 425 "parse.y" |
| 177886 | 177658 | { yymsp[-2].minor.yy383.value = yymsp[0].minor.yy144<<8; yymsp[-2].minor.yy383.mask = 0x00ff00; } |
| 177887 | | -#line 4038 "parse.sql" |
| 177888 | 177659 | break; |
| 177889 | 177660 | case 55: /* refact ::= SET NULL */ |
| 177890 | | -#line 427 "parse.y" |
| 177891 | 177661 | { yymsp[-1].minor.yy144 = OE_SetNull; /* EV: R-33326-45252 */} |
| 177892 | | -#line 4043 "parse.sql" |
| 177893 | 177662 | break; |
| 177894 | 177663 | case 56: /* refact ::= SET DEFAULT */ |
| 177895 | | -#line 428 "parse.y" |
| 177896 | 177664 | { yymsp[-1].minor.yy144 = OE_SetDflt; /* EV: R-33326-45252 */} |
| 177897 | | -#line 4048 "parse.sql" |
| 177898 | 177665 | break; |
| 177899 | 177666 | case 57: /* refact ::= CASCADE */ |
| 177900 | | -#line 429 "parse.y" |
| 177901 | 177667 | { yymsp[0].minor.yy144 = OE_Cascade; /* EV: R-33326-45252 */} |
| 177902 | | -#line 4053 "parse.sql" |
| 177903 | 177668 | break; |
| 177904 | 177669 | case 58: /* refact ::= RESTRICT */ |
| 177905 | | -#line 430 "parse.y" |
| 177906 | 177670 | { yymsp[0].minor.yy144 = OE_Restrict; /* EV: R-33326-45252 */} |
| 177907 | | -#line 4058 "parse.sql" |
| 177908 | 177671 | break; |
| 177909 | 177672 | case 59: /* refact ::= NO ACTION */ |
| 177910 | | -#line 431 "parse.y" |
| 177911 | 177673 | { yymsp[-1].minor.yy144 = OE_None; /* EV: R-33326-45252 */} |
| 177912 | | -#line 4063 "parse.sql" |
| 177913 | 177674 | break; |
| 177914 | 177675 | case 60: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ |
| 177915 | | -#line 433 "parse.y" |
| 177916 | 177676 | {yymsp[-2].minor.yy144 = 0;} |
| 177917 | | -#line 4068 "parse.sql" |
| 177918 | 177677 | break; |
| 177919 | 177678 | case 61: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ |
| 177920 | 177679 | case 76: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==76); |
| 177921 | 177680 | case 173: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==173); |
| 177922 | | -#line 434 "parse.y" |
| 177923 | 177681 | {yymsp[-1].minor.yy144 = yymsp[0].minor.yy144;} |
| 177924 | | -#line 4075 "parse.sql" |
| 177925 | 177682 | break; |
| 177926 | 177683 | case 63: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ |
| 177927 | 177684 | case 80: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==80); |
| 177928 | 177685 | case 219: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==219); |
| 177929 | 177686 | case 222: /* in_op ::= NOT IN */ yytestcase(yyruleno==222); |
| 177930 | 177687 | case 247: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==247); |
| 177931 | | -#line 437 "parse.y" |
| 177932 | 177688 | {yymsp[-1].minor.yy144 = 1;} |
| 177933 | | -#line 4084 "parse.sql" |
| 177934 | 177689 | break; |
| 177935 | 177690 | case 64: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ |
| 177936 | | -#line 438 "parse.y" |
| 177937 | 177691 | {yymsp[-1].minor.yy144 = 0;} |
| 177938 | | -#line 4089 "parse.sql" |
| 177939 | 177692 | break; |
| 177940 | 177693 | case 66: /* tconscomma ::= COMMA */ |
| 177941 | | -#line 444 "parse.y" |
| 177942 | 177694 | {pParse->constraintName.n = 0;} |
| 177943 | | -#line 4094 "parse.sql" |
| 177944 | 177695 | break; |
| 177945 | 177696 | case 68: /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ |
| 177946 | | -#line 448 "parse.y" |
| 177947 | 177697 | {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy14,yymsp[0].minor.yy144,yymsp[-2].minor.yy144,0);} |
| 177948 | | -#line 4099 "parse.sql" |
| 177949 | 177698 | break; |
| 177950 | 177699 | case 69: /* tcons ::= UNIQUE LP sortlist RP onconf */ |
| 177951 | | -#line 450 "parse.y" |
| 177952 | 177700 | {sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy14,yymsp[0].minor.yy144,0,0,0,0, |
| 177953 | 177701 | SQLITE_IDXTYPE_UNIQUE);} |
| 177954 | | -#line 4105 "parse.sql" |
| 177955 | 177702 | break; |
| 177956 | 177703 | case 70: /* tcons ::= CHECK LP expr RP onconf */ |
| 177957 | | -#line 453 "parse.y" |
| 177958 | 177704 | {sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy454,yymsp[-3].minor.yy0.z,yymsp[-1].minor.yy0.z);} |
| 177959 | | -#line 4110 "parse.sql" |
| 177960 | 177705 | break; |
| 177961 | 177706 | case 71: /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ |
| 177962 | | -#line 455 "parse.y" |
| 177963 | 177707 | { |
| 177964 | 177708 | sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy14, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy14, yymsp[-1].minor.yy144); |
| 177965 | 177709 | sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy144); |
| 177966 | 177710 | } |
| 177967 | | -#line 4118 "parse.sql" |
| 177968 | 177711 | break; |
| 177969 | 177712 | case 73: /* onconf ::= */ |
| 177970 | 177713 | case 75: /* orconf ::= */ yytestcase(yyruleno==75); |
| 177971 | | -#line 469 "parse.y" |
| 177972 | 177714 | {yymsp[1].minor.yy144 = OE_Default;} |
| 177973 | | -#line 4124 "parse.sql" |
| 177974 | 177715 | break; |
| 177975 | 177716 | case 74: /* onconf ::= ON CONFLICT resolvetype */ |
| 177976 | | -#line 470 "parse.y" |
| 177977 | 177717 | {yymsp[-2].minor.yy144 = yymsp[0].minor.yy144;} |
| 177978 | | -#line 4129 "parse.sql" |
| 177979 | 177718 | break; |
| 177980 | 177719 | case 77: /* resolvetype ::= IGNORE */ |
| 177981 | | -#line 474 "parse.y" |
| 177982 | 177720 | {yymsp[0].minor.yy144 = OE_Ignore;} |
| 177983 | | -#line 4134 "parse.sql" |
| 177984 | 177721 | break; |
| 177985 | 177722 | case 78: /* resolvetype ::= REPLACE */ |
| 177986 | 177723 | case 174: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==174); |
| 177987 | | -#line 475 "parse.y" |
| 177988 | 177724 | {yymsp[0].minor.yy144 = OE_Replace;} |
| 177989 | | -#line 4140 "parse.sql" |
| 177990 | 177725 | break; |
| 177991 | 177726 | case 79: /* cmd ::= DROP TABLE ifexists fullname */ |
| 177992 | | -#line 479 "parse.y" |
| 177993 | 177727 | { |
| 177994 | 177728 | sqlite3DropTable(pParse, yymsp[0].minor.yy203, 0, yymsp[-1].minor.yy144); |
| 177995 | 177729 | } |
| 177996 | | -#line 4147 "parse.sql" |
| 177997 | 177730 | break; |
| 177998 | 177731 | case 82: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ |
| 177999 | | -#line 490 "parse.y" |
| 178000 | 177732 | { |
| 178001 | 177733 | sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy14, yymsp[0].minor.yy555, yymsp[-7].minor.yy144, yymsp[-5].minor.yy144); |
| 178002 | 177734 | } |
| 178003 | | -#line 4154 "parse.sql" |
| 178004 | 177735 | break; |
| 178005 | 177736 | case 83: /* cmd ::= DROP VIEW ifexists fullname */ |
| 178006 | | -#line 493 "parse.y" |
| 178007 | 177737 | { |
| 178008 | 177738 | sqlite3DropTable(pParse, yymsp[0].minor.yy203, 1, yymsp[-1].minor.yy144); |
| 178009 | 177739 | } |
| 178010 | | -#line 4161 "parse.sql" |
| 178011 | 177740 | break; |
| 178012 | 177741 | case 84: /* cmd ::= select */ |
| 178013 | | -#line 500 "parse.y" |
| 178014 | 177742 | { |
| 178015 | 177743 | SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0, 0}; |
| 178016 | 177744 | if( (pParse->db->mDbFlags & DBFLAG_EncodingFixed)!=0 |
| 178017 | 177745 | || sqlite3ReadSchema(pParse)==SQLITE_OK |
| 178018 | 177746 | ){ |
| 178019 | 177747 | sqlite3Select(pParse, yymsp[0].minor.yy555, &dest); |
| 178020 | 177748 | } |
| 178021 | 177749 | sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy555); |
| 178022 | 177750 | } |
| 178023 | | -#line 4174 "parse.sql" |
| 178024 | 177751 | break; |
| 178025 | 177752 | case 85: /* select ::= WITH wqlist selectnowith */ |
| 178026 | | -#line 574 "parse.y" |
| 178027 | 177753 | {yymsp[-2].minor.yy555 = attachWithToSelect(pParse,yymsp[0].minor.yy555,yymsp[-1].minor.yy59);} |
| 178028 | | -#line 4179 "parse.sql" |
| 178029 | 177754 | break; |
| 178030 | 177755 | case 86: /* select ::= WITH RECURSIVE wqlist selectnowith */ |
| 178031 | | -#line 576 "parse.y" |
| 178032 | 177756 | {yymsp[-3].minor.yy555 = attachWithToSelect(pParse,yymsp[0].minor.yy555,yymsp[-1].minor.yy59);} |
| 178033 | | -#line 4184 "parse.sql" |
| 178034 | 177757 | break; |
| 178035 | 177758 | case 87: /* select ::= selectnowith */ |
| 178036 | | -#line 579 "parse.y" |
| 178037 | 177759 | { |
| 178038 | 177760 | Select *p = yymsp[0].minor.yy555; |
| 178039 | 177761 | if( p ){ |
| 178040 | 177762 | parserDoubleLinkSelect(pParse, p); |
| 178041 | 177763 | } |
| 178042 | 177764 | } |
| 178043 | | -#line 4194 "parse.sql" |
| 178044 | 177765 | break; |
| 178045 | 177766 | case 88: /* selectnowith ::= selectnowith multiselect_op oneselect */ |
| 178046 | | -#line 588 "parse.y" |
| 178047 | 177767 | { |
| 178048 | 177768 | Select *pRhs = yymsp[0].minor.yy555; |
| 178049 | 177769 | Select *pLhs = yymsp[-2].minor.yy555; |
| 178050 | 177770 | if( pRhs && pRhs->pPrior ){ |
| 178051 | 177771 | SrcList *pFrom; |
| | @@ -178064,175 +177784,131 @@ |
| 178064 | 177784 | }else{ |
| 178065 | 177785 | sqlite3SelectDelete(pParse->db, pLhs); |
| 178066 | 177786 | } |
| 178067 | 177787 | yymsp[-2].minor.yy555 = pRhs; |
| 178068 | 177788 | } |
| 178069 | | -#line 4220 "parse.sql" |
| 178070 | 177789 | break; |
| 178071 | 177790 | case 89: /* multiselect_op ::= UNION */ |
| 178072 | 177791 | case 91: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==91); |
| 178073 | | -#line 611 "parse.y" |
| 178074 | 177792 | {yymsp[0].minor.yy144 = yymsp[0].major; /*A-overwrites-OP*/} |
| 178075 | | -#line 4226 "parse.sql" |
| 178076 | 177793 | break; |
| 178077 | 177794 | case 90: /* multiselect_op ::= UNION ALL */ |
| 178078 | | -#line 612 "parse.y" |
| 178079 | 177795 | {yymsp[-1].minor.yy144 = TK_ALL;} |
| 178080 | | -#line 4231 "parse.sql" |
| 178081 | 177796 | break; |
| 178082 | 177797 | case 92: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ |
| 178083 | | -#line 618 "parse.y" |
| 178084 | 177798 | { |
| 178085 | 177799 | yymsp[-8].minor.yy555 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy14,yymsp[-5].minor.yy203,yymsp[-4].minor.yy454,yymsp[-3].minor.yy14,yymsp[-2].minor.yy454,yymsp[-1].minor.yy14,yymsp[-7].minor.yy144,yymsp[0].minor.yy454); |
| 178086 | 177800 | } |
| 178087 | | -#line 4238 "parse.sql" |
| 178088 | 177801 | break; |
| 178089 | 177802 | case 93: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ |
| 178090 | | -#line 624 "parse.y" |
| 178091 | 177803 | { |
| 178092 | 177804 | yymsp[-9].minor.yy555 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy14,yymsp[-6].minor.yy203,yymsp[-5].minor.yy454,yymsp[-4].minor.yy14,yymsp[-3].minor.yy454,yymsp[-1].minor.yy14,yymsp[-8].minor.yy144,yymsp[0].minor.yy454); |
| 178093 | 177805 | if( yymsp[-9].minor.yy555 ){ |
| 178094 | 177806 | yymsp[-9].minor.yy555->pWinDefn = yymsp[-2].minor.yy211; |
| 178095 | 177807 | }else{ |
| 178096 | 177808 | sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy211); |
| 178097 | 177809 | } |
| 178098 | 177810 | } |
| 178099 | | -#line 4250 "parse.sql" |
| 178100 | 177811 | break; |
| 178101 | 177812 | case 94: /* values ::= VALUES LP nexprlist RP */ |
| 178102 | | -#line 640 "parse.y" |
| 178103 | 177813 | { |
| 178104 | 177814 | yymsp[-3].minor.yy555 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy14,0,0,0,0,0,SF_Values,0); |
| 178105 | 177815 | } |
| 178106 | | -#line 4257 "parse.sql" |
| 178107 | 177816 | break; |
| 178108 | 177817 | case 95: /* oneselect ::= mvalues */ |
| 178109 | | -#line 647 "parse.y" |
| 178110 | 177818 | { |
| 178111 | 177819 | sqlite3MultiValuesEnd(pParse, yymsp[0].minor.yy555); |
| 178112 | 177820 | } |
| 178113 | | -#line 4264 "parse.sql" |
| 178114 | 177821 | break; |
| 178115 | 177822 | case 96: /* mvalues ::= values COMMA LP nexprlist RP */ |
| 178116 | 177823 | case 97: /* mvalues ::= mvalues COMMA LP nexprlist RP */ yytestcase(yyruleno==97); |
| 178117 | | -#line 651 "parse.y" |
| 178118 | 177824 | { |
| 178119 | 177825 | yymsp[-4].minor.yy555 = sqlite3MultiValues(pParse, yymsp[-4].minor.yy555, yymsp[-1].minor.yy14); |
| 178120 | 177826 | } |
| 178121 | | -#line 4272 "parse.sql" |
| 178122 | 177827 | break; |
| 178123 | 177828 | case 98: /* distinct ::= DISTINCT */ |
| 178124 | | -#line 662 "parse.y" |
| 178125 | 177829 | {yymsp[0].minor.yy144 = SF_Distinct;} |
| 178126 | | -#line 4277 "parse.sql" |
| 178127 | 177830 | break; |
| 178128 | 177831 | case 99: /* distinct ::= ALL */ |
| 178129 | | -#line 663 "parse.y" |
| 178130 | 177832 | {yymsp[0].minor.yy144 = SF_All;} |
| 178131 | | -#line 4282 "parse.sql" |
| 178132 | 177833 | break; |
| 178133 | 177834 | case 101: /* sclp ::= */ |
| 178134 | 177835 | case 134: /* orderby_opt ::= */ yytestcase(yyruleno==134); |
| 178135 | 177836 | case 144: /* groupby_opt ::= */ yytestcase(yyruleno==144); |
| 178136 | 177837 | case 234: /* exprlist ::= */ yytestcase(yyruleno==234); |
| 178137 | 177838 | case 237: /* paren_exprlist ::= */ yytestcase(yyruleno==237); |
| 178138 | 177839 | case 242: /* eidlist_opt ::= */ yytestcase(yyruleno==242); |
| 178139 | | -#line 676 "parse.y" |
| 178140 | 177840 | {yymsp[1].minor.yy14 = 0;} |
| 178141 | | -#line 4292 "parse.sql" |
| 178142 | 177841 | break; |
| 178143 | 177842 | case 102: /* selcollist ::= sclp scanpt expr scanpt as */ |
| 178144 | | -#line 677 "parse.y" |
| 178145 | 177843 | { |
| 178146 | 177844 | yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy14, yymsp[-2].minor.yy454); |
| 178147 | 177845 | if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy14, &yymsp[0].minor.yy0, 1); |
| 178148 | 177846 | sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy14,yymsp[-3].minor.yy168,yymsp[-1].minor.yy168); |
| 178149 | 177847 | } |
| 178150 | | -#line 4301 "parse.sql" |
| 178151 | 177848 | break; |
| 178152 | 177849 | case 103: /* selcollist ::= sclp scanpt STAR */ |
| 178153 | | -#line 682 "parse.y" |
| 178154 | 177850 | { |
| 178155 | 177851 | Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0); |
| 178156 | 177852 | sqlite3ExprSetErrorOffset(p, (int)(yymsp[0].minor.yy0.z - pParse->zTail)); |
| 178157 | 177853 | yymsp[-2].minor.yy14 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy14, p); |
| 178158 | 177854 | } |
| 178159 | | -#line 4310 "parse.sql" |
| 178160 | 177855 | break; |
| 178161 | 177856 | case 104: /* selcollist ::= sclp scanpt nm DOT STAR */ |
| 178162 | | -#line 687 "parse.y" |
| 178163 | 177857 | { |
| 178164 | 177858 | Expr *pRight, *pLeft, *pDot; |
| 178165 | 177859 | pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0); |
| 178166 | 177860 | sqlite3ExprSetErrorOffset(pRight, (int)(yymsp[0].minor.yy0.z - pParse->zTail)); |
| 178167 | 177861 | pLeft = tokenExpr(pParse, TK_ID, yymsp[-2].minor.yy0); |
| 178168 | 177862 | pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight); |
| 178169 | 177863 | yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14, pDot); |
| 178170 | 177864 | } |
| 178171 | | -#line 4322 "parse.sql" |
| 178172 | 177865 | break; |
| 178173 | 177866 | case 105: /* as ::= AS nm */ |
| 178174 | 177867 | case 117: /* dbnm ::= DOT nm */ yytestcase(yyruleno==117); |
| 178175 | 177868 | case 258: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==258); |
| 178176 | 177869 | case 259: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==259); |
| 178177 | | -#line 700 "parse.y" |
| 178178 | 177870 | {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;} |
| 178179 | | -#line 4330 "parse.sql" |
| 178180 | 177871 | break; |
| 178181 | 177872 | case 107: /* from ::= */ |
| 178182 | 177873 | case 110: /* stl_prefix ::= */ yytestcase(yyruleno==110); |
| 178183 | | -#line 714 "parse.y" |
| 178184 | 177874 | {yymsp[1].minor.yy203 = 0;} |
| 178185 | | -#line 4336 "parse.sql" |
| 178186 | 177875 | break; |
| 178187 | 177876 | case 108: /* from ::= FROM seltablist */ |
| 178188 | | -#line 715 "parse.y" |
| 178189 | 177877 | { |
| 178190 | 177878 | yymsp[-1].minor.yy203 = yymsp[0].minor.yy203; |
| 178191 | 177879 | sqlite3SrcListShiftJoinType(pParse,yymsp[-1].minor.yy203); |
| 178192 | 177880 | } |
| 178193 | | -#line 4344 "parse.sql" |
| 178194 | 177881 | break; |
| 178195 | 177882 | case 109: /* stl_prefix ::= seltablist joinop */ |
| 178196 | | -#line 723 "parse.y" |
| 178197 | 177883 | { |
| 178198 | 177884 | if( ALWAYS(yymsp[-1].minor.yy203 && yymsp[-1].minor.yy203->nSrc>0) ) yymsp[-1].minor.yy203->a[yymsp[-1].minor.yy203->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy144; |
| 178199 | 177885 | } |
| 178200 | | -#line 4351 "parse.sql" |
| 178201 | 177886 | break; |
| 178202 | 177887 | case 111: /* seltablist ::= stl_prefix nm dbnm as on_using */ |
| 178203 | | -#line 727 "parse.y" |
| 178204 | 177888 | { |
| 178205 | 177889 | yymsp[-4].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-4].minor.yy203,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy269); |
| 178206 | 177890 | } |
| 178207 | | -#line 4358 "parse.sql" |
| 178208 | 177891 | break; |
| 178209 | 177892 | case 112: /* seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ |
| 178210 | | -#line 730 "parse.y" |
| 178211 | 177893 | { |
| 178212 | 177894 | yymsp[-5].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy203,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,0,&yymsp[0].minor.yy269); |
| 178213 | 177895 | sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy203, &yymsp[-1].minor.yy0); |
| 178214 | 177896 | } |
| 178215 | | -#line 4366 "parse.sql" |
| 178216 | 177897 | break; |
| 178217 | 177898 | case 113: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ |
| 178218 | | -#line 734 "parse.y" |
| 178219 | 177899 | { |
| 178220 | 177900 | yymsp[-7].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-7].minor.yy203,&yymsp[-6].minor.yy0,&yymsp[-5].minor.yy0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy269); |
| 178221 | 177901 | sqlite3SrcListFuncArgs(pParse, yymsp[-7].minor.yy203, yymsp[-3].minor.yy14); |
| 178222 | 177902 | } |
| 178223 | | -#line 4374 "parse.sql" |
| 178224 | 177903 | break; |
| 178225 | 177904 | case 114: /* seltablist ::= stl_prefix LP select RP as on_using */ |
| 178226 | | -#line 739 "parse.y" |
| 178227 | 177905 | { |
| 178228 | 177906 | yymsp[-5].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy203,0,0,&yymsp[-1].minor.yy0,yymsp[-3].minor.yy555,&yymsp[0].minor.yy269); |
| 178229 | 177907 | } |
| 178230 | | -#line 4381 "parse.sql" |
| 178231 | 177908 | break; |
| 178232 | 177909 | case 115: /* seltablist ::= stl_prefix LP seltablist RP as on_using */ |
| 178233 | | -#line 742 "parse.y" |
| 178234 | 177910 | { |
| 178235 | 177911 | if( yymsp[-5].minor.yy203==0 && yymsp[-1].minor.yy0.n==0 && yymsp[0].minor.yy269.pOn==0 && yymsp[0].minor.yy269.pUsing==0 ){ |
| 178236 | 177912 | yymsp[-5].minor.yy203 = yymsp[-3].minor.yy203; |
| 178237 | 177913 | }else if( ALWAYS(yymsp[-3].minor.yy203!=0) && yymsp[-3].minor.yy203->nSrc==1 ){ |
| 178238 | 177914 | yymsp[-5].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy203,0,0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy269); |
| | @@ -178269,210 +177945,144 @@ |
| 178269 | 177945 | sqlite3SrcListShiftJoinType(pParse,yymsp[-3].minor.yy203); |
| 178270 | 177946 | pSubquery = sqlite3SelectNew(pParse,0,yymsp[-3].minor.yy203,0,0,0,0,SF_NestedFrom,0); |
| 178271 | 177947 | yymsp[-5].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy203,0,0,&yymsp[-1].minor.yy0,pSubquery,&yymsp[0].minor.yy269); |
| 178272 | 177948 | } |
| 178273 | 177949 | } |
| 178274 | | -#line 4425 "parse.sql" |
| 178275 | 177950 | break; |
| 178276 | 177951 | case 116: /* dbnm ::= */ |
| 178277 | 177952 | case 131: /* indexed_opt ::= */ yytestcase(yyruleno==131); |
| 178278 | | -#line 785 "parse.y" |
| 178279 | 177953 | {yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;} |
| 178280 | | -#line 4431 "parse.sql" |
| 178281 | 177954 | break; |
| 178282 | 177955 | case 118: /* fullname ::= nm */ |
| 178283 | | -#line 790 "parse.y" |
| 178284 | 177956 | { |
| 178285 | 177957 | yylhsminor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); |
| 178286 | 177958 | if( IN_RENAME_OBJECT && yylhsminor.yy203 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy203->a[0].zName, &yymsp[0].minor.yy0); |
| 178287 | 177959 | } |
| 178288 | | -#line 4439 "parse.sql" |
| 178289 | 177960 | yymsp[0].minor.yy203 = yylhsminor.yy203; |
| 178290 | 177961 | break; |
| 178291 | 177962 | case 119: /* fullname ::= nm DOT nm */ |
| 178292 | | -#line 794 "parse.y" |
| 178293 | 177963 | { |
| 178294 | 177964 | yylhsminor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); |
| 178295 | 177965 | if( IN_RENAME_OBJECT && yylhsminor.yy203 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy203->a[0].zName, &yymsp[0].minor.yy0); |
| 178296 | 177966 | } |
| 178297 | | -#line 4448 "parse.sql" |
| 178298 | 177967 | yymsp[-2].minor.yy203 = yylhsminor.yy203; |
| 178299 | 177968 | break; |
| 178300 | 177969 | case 120: /* xfullname ::= nm */ |
| 178301 | | -#line 802 "parse.y" |
| 178302 | 177970 | {yymsp[0].minor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/} |
| 178303 | | -#line 4454 "parse.sql" |
| 178304 | 177971 | break; |
| 178305 | 177972 | case 121: /* xfullname ::= nm DOT nm */ |
| 178306 | | -#line 804 "parse.y" |
| 178307 | 177973 | {yymsp[-2].minor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/} |
| 178308 | | -#line 4459 "parse.sql" |
| 178309 | 177974 | break; |
| 178310 | 177975 | case 122: /* xfullname ::= nm DOT nm AS nm */ |
| 178311 | | -#line 805 "parse.y" |
| 178312 | 177976 | { |
| 178313 | 177977 | yymsp[-4].minor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/ |
| 178314 | 177978 | if( yymsp[-4].minor.yy203 ) yymsp[-4].minor.yy203->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); |
| 178315 | 177979 | } |
| 178316 | | -#line 4467 "parse.sql" |
| 178317 | 177980 | break; |
| 178318 | 177981 | case 123: /* xfullname ::= nm AS nm */ |
| 178319 | | -#line 809 "parse.y" |
| 178320 | 177982 | { |
| 178321 | 177983 | yymsp[-2].minor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/ |
| 178322 | 177984 | if( yymsp[-2].minor.yy203 ) yymsp[-2].minor.yy203->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); |
| 178323 | 177985 | } |
| 178324 | | -#line 4475 "parse.sql" |
| 178325 | 177986 | break; |
| 178326 | 177987 | case 124: /* joinop ::= COMMA|JOIN */ |
| 178327 | | -#line 815 "parse.y" |
| 178328 | 177988 | { yymsp[0].minor.yy144 = JT_INNER; } |
| 178329 | | -#line 4480 "parse.sql" |
| 178330 | 177989 | break; |
| 178331 | 177990 | case 125: /* joinop ::= JOIN_KW JOIN */ |
| 178332 | | -#line 817 "parse.y" |
| 178333 | 177991 | {yymsp[-1].minor.yy144 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/} |
| 178334 | | -#line 4485 "parse.sql" |
| 178335 | 177992 | break; |
| 178336 | 177993 | case 126: /* joinop ::= JOIN_KW nm JOIN */ |
| 178337 | | -#line 819 "parse.y" |
| 178338 | 177994 | {yymsp[-2].minor.yy144 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/} |
| 178339 | | -#line 4490 "parse.sql" |
| 178340 | 177995 | break; |
| 178341 | 177996 | case 127: /* joinop ::= JOIN_KW nm nm JOIN */ |
| 178342 | | -#line 821 "parse.y" |
| 178343 | 177997 | {yymsp[-3].minor.yy144 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/} |
| 178344 | | -#line 4495 "parse.sql" |
| 178345 | 177998 | break; |
| 178346 | 177999 | case 128: /* on_using ::= ON expr */ |
| 178347 | | -#line 842 "parse.y" |
| 178348 | 178000 | {yymsp[-1].minor.yy269.pOn = yymsp[0].minor.yy454; yymsp[-1].minor.yy269.pUsing = 0;} |
| 178349 | | -#line 4500 "parse.sql" |
| 178350 | 178001 | break; |
| 178351 | 178002 | case 129: /* on_using ::= USING LP idlist RP */ |
| 178352 | | -#line 843 "parse.y" |
| 178353 | 178003 | {yymsp[-3].minor.yy269.pOn = 0; yymsp[-3].minor.yy269.pUsing = yymsp[-1].minor.yy132;} |
| 178354 | | -#line 4505 "parse.sql" |
| 178355 | 178004 | break; |
| 178356 | 178005 | case 130: /* on_using ::= */ |
| 178357 | | -#line 844 "parse.y" |
| 178358 | 178006 | {yymsp[1].minor.yy269.pOn = 0; yymsp[1].minor.yy269.pUsing = 0;} |
| 178359 | | -#line 4510 "parse.sql" |
| 178360 | 178007 | break; |
| 178361 | 178008 | case 132: /* indexed_by ::= INDEXED BY nm */ |
| 178362 | | -#line 860 "parse.y" |
| 178363 | 178009 | {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;} |
| 178364 | | -#line 4515 "parse.sql" |
| 178365 | 178010 | break; |
| 178366 | 178011 | case 133: /* indexed_by ::= NOT INDEXED */ |
| 178367 | | -#line 861 "parse.y" |
| 178368 | 178012 | {yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;} |
| 178369 | | -#line 4520 "parse.sql" |
| 178370 | 178013 | break; |
| 178371 | 178014 | case 135: /* orderby_opt ::= ORDER BY sortlist */ |
| 178372 | 178015 | case 145: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==145); |
| 178373 | | -#line 874 "parse.y" |
| 178374 | 178016 | {yymsp[-2].minor.yy14 = yymsp[0].minor.yy14;} |
| 178375 | | -#line 4526 "parse.sql" |
| 178376 | 178017 | break; |
| 178377 | 178018 | case 136: /* sortlist ::= sortlist COMMA expr sortorder nulls */ |
| 178378 | | -#line 875 "parse.y" |
| 178379 | 178019 | { |
| 178380 | 178020 | yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14,yymsp[-2].minor.yy454); |
| 178381 | 178021 | sqlite3ExprListSetSortOrder(yymsp[-4].minor.yy14,yymsp[-1].minor.yy144,yymsp[0].minor.yy144); |
| 178382 | 178022 | } |
| 178383 | | -#line 4534 "parse.sql" |
| 178384 | 178023 | break; |
| 178385 | 178024 | case 137: /* sortlist ::= expr sortorder nulls */ |
| 178386 | | -#line 879 "parse.y" |
| 178387 | 178025 | { |
| 178388 | 178026 | yymsp[-2].minor.yy14 = sqlite3ExprListAppend(pParse,0,yymsp[-2].minor.yy454); /*A-overwrites-Y*/ |
| 178389 | 178027 | sqlite3ExprListSetSortOrder(yymsp[-2].minor.yy14,yymsp[-1].minor.yy144,yymsp[0].minor.yy144); |
| 178390 | 178028 | } |
| 178391 | | -#line 4542 "parse.sql" |
| 178392 | 178029 | break; |
| 178393 | 178030 | case 138: /* sortorder ::= ASC */ |
| 178394 | | -#line 886 "parse.y" |
| 178395 | 178031 | {yymsp[0].minor.yy144 = SQLITE_SO_ASC;} |
| 178396 | | -#line 4547 "parse.sql" |
| 178397 | 178032 | break; |
| 178398 | 178033 | case 139: /* sortorder ::= DESC */ |
| 178399 | | -#line 887 "parse.y" |
| 178400 | 178034 | {yymsp[0].minor.yy144 = SQLITE_SO_DESC;} |
| 178401 | | -#line 4552 "parse.sql" |
| 178402 | 178035 | break; |
| 178403 | 178036 | case 140: /* sortorder ::= */ |
| 178404 | 178037 | case 143: /* nulls ::= */ yytestcase(yyruleno==143); |
| 178405 | | -#line 888 "parse.y" |
| 178406 | 178038 | {yymsp[1].minor.yy144 = SQLITE_SO_UNDEFINED;} |
| 178407 | | -#line 4558 "parse.sql" |
| 178408 | 178039 | break; |
| 178409 | 178040 | case 141: /* nulls ::= NULLS FIRST */ |
| 178410 | | -#line 891 "parse.y" |
| 178411 | 178041 | {yymsp[-1].minor.yy144 = SQLITE_SO_ASC;} |
| 178412 | | -#line 4563 "parse.sql" |
| 178413 | 178042 | break; |
| 178414 | 178043 | case 142: /* nulls ::= NULLS LAST */ |
| 178415 | | -#line 892 "parse.y" |
| 178416 | 178044 | {yymsp[-1].minor.yy144 = SQLITE_SO_DESC;} |
| 178417 | | -#line 4568 "parse.sql" |
| 178418 | 178045 | break; |
| 178419 | 178046 | case 146: /* having_opt ::= */ |
| 178420 | 178047 | case 148: /* limit_opt ::= */ yytestcase(yyruleno==148); |
| 178421 | 178048 | case 153: /* where_opt ::= */ yytestcase(yyruleno==153); |
| 178422 | 178049 | case 155: /* where_opt_ret ::= */ yytestcase(yyruleno==155); |
| 178423 | 178050 | case 232: /* case_else ::= */ yytestcase(yyruleno==232); |
| 178424 | 178051 | case 233: /* case_operand ::= */ yytestcase(yyruleno==233); |
| 178425 | 178052 | case 252: /* vinto ::= */ yytestcase(yyruleno==252); |
| 178426 | | -#line 902 "parse.y" |
| 178427 | 178053 | {yymsp[1].minor.yy454 = 0;} |
| 178428 | | -#line 4579 "parse.sql" |
| 178429 | 178054 | break; |
| 178430 | 178055 | case 147: /* having_opt ::= HAVING expr */ |
| 178431 | 178056 | case 154: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==154); |
| 178432 | 178057 | case 156: /* where_opt_ret ::= WHERE expr */ yytestcase(yyruleno==156); |
| 178433 | 178058 | case 231: /* case_else ::= ELSE expr */ yytestcase(yyruleno==231); |
| 178434 | 178059 | case 251: /* vinto ::= INTO expr */ yytestcase(yyruleno==251); |
| 178435 | | -#line 903 "parse.y" |
| 178436 | 178060 | {yymsp[-1].minor.yy454 = yymsp[0].minor.yy454;} |
| 178437 | | -#line 4588 "parse.sql" |
| 178438 | 178061 | break; |
| 178439 | 178062 | case 149: /* limit_opt ::= LIMIT expr */ |
| 178440 | | -#line 917 "parse.y" |
| 178441 | 178063 | {yymsp[-1].minor.yy454 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy454,0);} |
| 178442 | | -#line 4593 "parse.sql" |
| 178443 | 178064 | break; |
| 178444 | 178065 | case 150: /* limit_opt ::= LIMIT expr OFFSET expr */ |
| 178445 | | -#line 919 "parse.y" |
| 178446 | 178066 | {yymsp[-3].minor.yy454 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy454,yymsp[0].minor.yy454);} |
| 178447 | | -#line 4598 "parse.sql" |
| 178448 | 178067 | break; |
| 178449 | 178068 | case 151: /* limit_opt ::= LIMIT expr COMMA expr */ |
| 178450 | | -#line 921 "parse.y" |
| 178451 | 178069 | {yymsp[-3].minor.yy454 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy454,yymsp[-2].minor.yy454);} |
| 178452 | | -#line 4603 "parse.sql" |
| 178453 | 178070 | break; |
| 178454 | 178071 | case 152: /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ |
| 178455 | | -#line 939 "parse.y" |
| 178456 | 178072 | { |
| 178457 | 178073 | sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy203, &yymsp[-1].minor.yy0); |
| 178458 | 178074 | sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy203,yymsp[0].minor.yy454,0,0); |
| 178459 | 178075 | } |
| 178460 | | -#line 4611 "parse.sql" |
| 178461 | 178076 | break; |
| 178462 | 178077 | case 157: /* where_opt_ret ::= RETURNING selcollist */ |
| 178463 | | -#line 955 "parse.y" |
| 178464 | 178078 | {sqlite3AddReturning(pParse,yymsp[0].minor.yy14); yymsp[-1].minor.yy454 = 0;} |
| 178465 | | -#line 4616 "parse.sql" |
| 178466 | 178079 | break; |
| 178467 | 178080 | case 158: /* where_opt_ret ::= WHERE expr RETURNING selcollist */ |
| 178468 | | -#line 957 "parse.y" |
| 178469 | 178081 | {sqlite3AddReturning(pParse,yymsp[0].minor.yy14); yymsp[-3].minor.yy454 = yymsp[-2].minor.yy454;} |
| 178470 | | -#line 4621 "parse.sql" |
| 178471 | 178082 | break; |
| 178472 | 178083 | case 159: /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ |
| 178473 | | -#line 989 "parse.y" |
| 178474 | 178084 | { |
| 178475 | 178085 | sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy203, &yymsp[-4].minor.yy0); |
| 178476 | 178086 | sqlite3ExprListCheckLength(pParse,yymsp[-2].minor.yy14,"set list"); |
| 178477 | 178087 | if( yymsp[-1].minor.yy203 ){ |
| 178478 | 178088 | SrcList *pFromClause = yymsp[-1].minor.yy203; |
| | @@ -178486,134 +178096,92 @@ |
| 178486 | 178096 | } |
| 178487 | 178097 | yymsp[-5].minor.yy203 = sqlite3SrcListAppendList(pParse, yymsp[-5].minor.yy203, pFromClause); |
| 178488 | 178098 | } |
| 178489 | 178099 | sqlite3Update(pParse,yymsp[-5].minor.yy203,yymsp[-2].minor.yy14,yymsp[0].minor.yy454,yymsp[-6].minor.yy144,0,0,0); |
| 178490 | 178100 | } |
| 178491 | | -#line 4642 "parse.sql" |
| 178492 | 178101 | break; |
| 178493 | 178102 | case 160: /* setlist ::= setlist COMMA nm EQ expr */ |
| 178494 | | -#line 1013 "parse.y" |
| 178495 | 178103 | { |
| 178496 | 178104 | yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy14, yymsp[0].minor.yy454); |
| 178497 | 178105 | sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy14, &yymsp[-2].minor.yy0, 1); |
| 178498 | 178106 | } |
| 178499 | | -#line 4650 "parse.sql" |
| 178500 | 178107 | break; |
| 178501 | 178108 | case 161: /* setlist ::= setlist COMMA LP idlist RP EQ expr */ |
| 178502 | | -#line 1017 "parse.y" |
| 178503 | 178109 | { |
| 178504 | 178110 | yymsp[-6].minor.yy14 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy14, yymsp[-3].minor.yy132, yymsp[0].minor.yy454); |
| 178505 | 178111 | } |
| 178506 | | -#line 4657 "parse.sql" |
| 178507 | 178112 | break; |
| 178508 | 178113 | case 162: /* setlist ::= nm EQ expr */ |
| 178509 | | -#line 1020 "parse.y" |
| 178510 | 178114 | { |
| 178511 | 178115 | yylhsminor.yy14 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy454); |
| 178512 | 178116 | sqlite3ExprListSetName(pParse, yylhsminor.yy14, &yymsp[-2].minor.yy0, 1); |
| 178513 | 178117 | } |
| 178514 | | -#line 4665 "parse.sql" |
| 178515 | 178118 | yymsp[-2].minor.yy14 = yylhsminor.yy14; |
| 178516 | 178119 | break; |
| 178517 | 178120 | case 163: /* setlist ::= LP idlist RP EQ expr */ |
| 178518 | | -#line 1024 "parse.y" |
| 178519 | 178121 | { |
| 178520 | 178122 | yymsp[-4].minor.yy14 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy132, yymsp[0].minor.yy454); |
| 178521 | 178123 | } |
| 178522 | | -#line 4673 "parse.sql" |
| 178523 | 178124 | break; |
| 178524 | 178125 | case 164: /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ |
| 178525 | | -#line 1031 "parse.y" |
| 178526 | 178126 | { |
| 178527 | 178127 | sqlite3Insert(pParse, yymsp[-3].minor.yy203, yymsp[-1].minor.yy555, yymsp[-2].minor.yy132, yymsp[-5].minor.yy144, yymsp[0].minor.yy122); |
| 178528 | 178128 | } |
| 178529 | | -#line 4680 "parse.sql" |
| 178530 | 178129 | break; |
| 178531 | 178130 | case 165: /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ |
| 178532 | | -#line 1035 "parse.y" |
| 178533 | 178131 | { |
| 178534 | 178132 | sqlite3Insert(pParse, yymsp[-4].minor.yy203, 0, yymsp[-3].minor.yy132, yymsp[-6].minor.yy144, 0); |
| 178535 | 178133 | } |
| 178536 | | -#line 4687 "parse.sql" |
| 178537 | 178134 | break; |
| 178538 | 178135 | case 166: /* upsert ::= */ |
| 178539 | | -#line 1046 "parse.y" |
| 178540 | 178136 | { yymsp[1].minor.yy122 = 0; } |
| 178541 | | -#line 4692 "parse.sql" |
| 178542 | 178137 | break; |
| 178543 | 178138 | case 167: /* upsert ::= RETURNING selcollist */ |
| 178544 | | -#line 1047 "parse.y" |
| 178545 | 178139 | { yymsp[-1].minor.yy122 = 0; sqlite3AddReturning(pParse,yymsp[0].minor.yy14); } |
| 178546 | | -#line 4697 "parse.sql" |
| 178547 | 178140 | break; |
| 178548 | 178141 | case 168: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ |
| 178549 | | -#line 1050 "parse.y" |
| 178550 | 178142 | { yymsp[-11].minor.yy122 = sqlite3UpsertNew(pParse->db,yymsp[-8].minor.yy14,yymsp[-6].minor.yy454,yymsp[-2].minor.yy14,yymsp[-1].minor.yy454,yymsp[0].minor.yy122);} |
| 178551 | | -#line 4702 "parse.sql" |
| 178552 | 178143 | break; |
| 178553 | 178144 | case 169: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ |
| 178554 | | -#line 1052 "parse.y" |
| 178555 | 178145 | { yymsp[-8].minor.yy122 = sqlite3UpsertNew(pParse->db,yymsp[-5].minor.yy14,yymsp[-3].minor.yy454,0,0,yymsp[0].minor.yy122); } |
| 178556 | | -#line 4707 "parse.sql" |
| 178557 | 178146 | break; |
| 178558 | 178147 | case 170: /* upsert ::= ON CONFLICT DO NOTHING returning */ |
| 178559 | | -#line 1054 "parse.y" |
| 178560 | 178148 | { yymsp[-4].minor.yy122 = sqlite3UpsertNew(pParse->db,0,0,0,0,0); } |
| 178561 | | -#line 4712 "parse.sql" |
| 178562 | 178149 | break; |
| 178563 | 178150 | case 171: /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ |
| 178564 | | -#line 1056 "parse.y" |
| 178565 | 178151 | { yymsp[-7].minor.yy122 = sqlite3UpsertNew(pParse->db,0,0,yymsp[-2].minor.yy14,yymsp[-1].minor.yy454,0);} |
| 178566 | | -#line 4717 "parse.sql" |
| 178567 | 178152 | break; |
| 178568 | 178153 | case 172: /* returning ::= RETURNING selcollist */ |
| 178569 | | -#line 1058 "parse.y" |
| 178570 | 178154 | {sqlite3AddReturning(pParse,yymsp[0].minor.yy14);} |
| 178571 | | -#line 4722 "parse.sql" |
| 178572 | 178155 | break; |
| 178573 | 178156 | case 175: /* idlist_opt ::= */ |
| 178574 | | -#line 1070 "parse.y" |
| 178575 | 178157 | {yymsp[1].minor.yy132 = 0;} |
| 178576 | | -#line 4727 "parse.sql" |
| 178577 | 178158 | break; |
| 178578 | 178159 | case 176: /* idlist_opt ::= LP idlist RP */ |
| 178579 | | -#line 1071 "parse.y" |
| 178580 | 178160 | {yymsp[-2].minor.yy132 = yymsp[-1].minor.yy132;} |
| 178581 | | -#line 4732 "parse.sql" |
| 178582 | 178161 | break; |
| 178583 | 178162 | case 177: /* idlist ::= idlist COMMA nm */ |
| 178584 | | -#line 1073 "parse.y" |
| 178585 | 178163 | {yymsp[-2].minor.yy132 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy132,&yymsp[0].minor.yy0);} |
| 178586 | | -#line 4737 "parse.sql" |
| 178587 | 178164 | break; |
| 178588 | 178165 | case 178: /* idlist ::= nm */ |
| 178589 | | -#line 1075 "parse.y" |
| 178590 | 178166 | {yymsp[0].minor.yy132 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/} |
| 178591 | | -#line 4742 "parse.sql" |
| 178592 | 178167 | break; |
| 178593 | 178168 | case 179: /* expr ::= LP expr RP */ |
| 178594 | | -#line 1124 "parse.y" |
| 178595 | 178169 | {yymsp[-2].minor.yy454 = yymsp[-1].minor.yy454;} |
| 178596 | | -#line 4747 "parse.sql" |
| 178597 | 178170 | break; |
| 178598 | 178171 | case 180: /* expr ::= ID|INDEXED|JOIN_KW */ |
| 178599 | | -#line 1125 "parse.y" |
| 178600 | 178172 | {yymsp[0].minor.yy454=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/} |
| 178601 | | -#line 4752 "parse.sql" |
| 178602 | 178173 | break; |
| 178603 | 178174 | case 181: /* expr ::= nm DOT nm */ |
| 178604 | | -#line 1126 "parse.y" |
| 178605 | 178175 | { |
| 178606 | 178176 | Expr *temp1 = tokenExpr(pParse,TK_ID,yymsp[-2].minor.yy0); |
| 178607 | 178177 | Expr *temp2 = tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); |
| 178608 | 178178 | yylhsminor.yy454 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2); |
| 178609 | 178179 | } |
| 178610 | | -#line 4761 "parse.sql" |
| 178611 | 178180 | yymsp[-2].minor.yy454 = yylhsminor.yy454; |
| 178612 | 178181 | break; |
| 178613 | 178182 | case 182: /* expr ::= nm DOT nm DOT nm */ |
| 178614 | | -#line 1131 "parse.y" |
| 178615 | 178183 | { |
| 178616 | 178184 | Expr *temp1 = tokenExpr(pParse,TK_ID,yymsp[-4].minor.yy0); |
| 178617 | 178185 | Expr *temp2 = tokenExpr(pParse,TK_ID,yymsp[-2].minor.yy0); |
| 178618 | 178186 | Expr *temp3 = tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); |
| 178619 | 178187 | Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3); |
| | @@ -178620,30 +178188,24 @@ |
| 178620 | 178188 | if( IN_RENAME_OBJECT ){ |
| 178621 | 178189 | sqlite3RenameTokenRemap(pParse, 0, temp1); |
| 178622 | 178190 | } |
| 178623 | 178191 | yylhsminor.yy454 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4); |
| 178624 | 178192 | } |
| 178625 | | -#line 4776 "parse.sql" |
| 178626 | 178193 | yymsp[-4].minor.yy454 = yylhsminor.yy454; |
| 178627 | 178194 | break; |
| 178628 | 178195 | case 183: /* term ::= NULL|FLOAT|BLOB */ |
| 178629 | 178196 | case 184: /* term ::= STRING */ yytestcase(yyruleno==184); |
| 178630 | | -#line 1141 "parse.y" |
| 178631 | 178197 | {yymsp[0].minor.yy454=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/} |
| 178632 | | -#line 4783 "parse.sql" |
| 178633 | 178198 | break; |
| 178634 | 178199 | case 185: /* term ::= INTEGER */ |
| 178635 | | -#line 1143 "parse.y" |
| 178636 | 178200 | { |
| 178637 | 178201 | yylhsminor.yy454 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1); |
| 178638 | 178202 | if( yylhsminor.yy454 ) yylhsminor.yy454->w.iOfst = (int)(yymsp[0].minor.yy0.z - pParse->zTail); |
| 178639 | 178203 | } |
| 178640 | | -#line 4791 "parse.sql" |
| 178641 | 178204 | yymsp[0].minor.yy454 = yylhsminor.yy454; |
| 178642 | 178205 | break; |
| 178643 | 178206 | case 186: /* expr ::= VARIABLE */ |
| 178644 | | -#line 1147 "parse.y" |
| 178645 | 178207 | { |
| 178646 | 178208 | if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){ |
| 178647 | 178209 | u32 n = yymsp[0].minor.yy0.n; |
| 178648 | 178210 | yymsp[0].minor.yy454 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0); |
| 178649 | 178211 | sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy454, n); |
| | @@ -178660,90 +178222,70 @@ |
| 178660 | 178222 | yymsp[0].minor.yy454 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0); |
| 178661 | 178223 | if( yymsp[0].minor.yy454 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy454->iTable); |
| 178662 | 178224 | } |
| 178663 | 178225 | } |
| 178664 | 178226 | } |
| 178665 | | -#line 4816 "parse.sql" |
| 178666 | 178227 | break; |
| 178667 | 178228 | case 187: /* expr ::= expr COLLATE ID|STRING */ |
| 178668 | | -#line 1167 "parse.y" |
| 178669 | 178229 | { |
| 178670 | 178230 | yymsp[-2].minor.yy454 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy454, &yymsp[0].minor.yy0, 1); |
| 178671 | 178231 | } |
| 178672 | | -#line 4823 "parse.sql" |
| 178673 | 178232 | break; |
| 178674 | 178233 | case 188: /* expr ::= CAST LP expr AS typetoken RP */ |
| 178675 | | -#line 1171 "parse.y" |
| 178676 | 178234 | { |
| 178677 | 178235 | yymsp[-5].minor.yy454 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1); |
| 178678 | 178236 | sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy454, yymsp[-3].minor.yy454, 0); |
| 178679 | 178237 | } |
| 178680 | | -#line 4831 "parse.sql" |
| 178681 | 178238 | break; |
| 178682 | 178239 | case 189: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ |
| 178683 | | -#line 1178 "parse.y" |
| 178684 | 178240 | { |
| 178685 | 178241 | yylhsminor.yy454 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy14, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy144); |
| 178686 | 178242 | } |
| 178687 | | -#line 4838 "parse.sql" |
| 178688 | 178243 | yymsp[-4].minor.yy454 = yylhsminor.yy454; |
| 178689 | 178244 | break; |
| 178690 | 178245 | case 190: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ |
| 178691 | | -#line 1181 "parse.y" |
| 178692 | 178246 | { |
| 178693 | 178247 | yylhsminor.yy454 = sqlite3ExprFunction(pParse, yymsp[-4].minor.yy14, &yymsp[-7].minor.yy0, yymsp[-5].minor.yy144); |
| 178694 | 178248 | sqlite3ExprAddFunctionOrderBy(pParse, yylhsminor.yy454, yymsp[-1].minor.yy14); |
| 178695 | 178249 | } |
| 178696 | | -#line 4847 "parse.sql" |
| 178697 | 178250 | yymsp[-7].minor.yy454 = yylhsminor.yy454; |
| 178698 | 178251 | break; |
| 178699 | 178252 | case 191: /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ |
| 178700 | | -#line 1185 "parse.y" |
| 178701 | 178253 | { |
| 178702 | 178254 | yylhsminor.yy454 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0); |
| 178703 | 178255 | } |
| 178704 | | -#line 4855 "parse.sql" |
| 178705 | 178256 | yymsp[-3].minor.yy454 = yylhsminor.yy454; |
| 178706 | 178257 | break; |
| 178707 | 178258 | case 192: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ |
| 178708 | | -#line 1249 "parse.y" |
| 178709 | 178259 | { |
| 178710 | 178260 | yylhsminor.yy454 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy14, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy144); |
| 178711 | 178261 | sqlite3WindowAttach(pParse, yylhsminor.yy454, yymsp[0].minor.yy211); |
| 178712 | 178262 | } |
| 178713 | | -#line 4864 "parse.sql" |
| 178714 | 178263 | yymsp[-5].minor.yy454 = yylhsminor.yy454; |
| 178715 | 178264 | break; |
| 178716 | 178265 | case 193: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ |
| 178717 | | -#line 1253 "parse.y" |
| 178718 | 178266 | { |
| 178719 | 178267 | yylhsminor.yy454 = sqlite3ExprFunction(pParse, yymsp[-5].minor.yy14, &yymsp[-8].minor.yy0, yymsp[-6].minor.yy144); |
| 178720 | 178268 | sqlite3WindowAttach(pParse, yylhsminor.yy454, yymsp[0].minor.yy211); |
| 178721 | 178269 | sqlite3ExprAddFunctionOrderBy(pParse, yylhsminor.yy454, yymsp[-2].minor.yy14); |
| 178722 | 178270 | } |
| 178723 | | -#line 4874 "parse.sql" |
| 178724 | 178271 | yymsp[-8].minor.yy454 = yylhsminor.yy454; |
| 178725 | 178272 | break; |
| 178726 | 178273 | case 194: /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ |
| 178727 | | -#line 1258 "parse.y" |
| 178728 | 178274 | { |
| 178729 | 178275 | yylhsminor.yy454 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0); |
| 178730 | 178276 | sqlite3WindowAttach(pParse, yylhsminor.yy454, yymsp[0].minor.yy211); |
| 178731 | 178277 | } |
| 178732 | | -#line 4883 "parse.sql" |
| 178733 | 178278 | yymsp[-4].minor.yy454 = yylhsminor.yy454; |
| 178734 | 178279 | break; |
| 178735 | 178280 | case 195: /* term ::= CTIME_KW */ |
| 178736 | | -#line 1272 "parse.y" |
| 178737 | 178281 | { |
| 178738 | 178282 | yylhsminor.yy454 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0); |
| 178739 | 178283 | } |
| 178740 | | -#line 4891 "parse.sql" |
| 178741 | 178284 | yymsp[0].minor.yy454 = yylhsminor.yy454; |
| 178742 | 178285 | break; |
| 178743 | 178286 | case 196: /* expr ::= LP nexprlist COMMA expr RP */ |
| 178744 | | -#line 1276 "parse.y" |
| 178745 | 178287 | { |
| 178746 | 178288 | ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy14, yymsp[-1].minor.yy454); |
| 178747 | 178289 | yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0); |
| 178748 | 178290 | if( yymsp[-4].minor.yy454 ){ |
| 178749 | 178291 | yymsp[-4].minor.yy454->x.pList = pList; |
| | @@ -178752,35 +178294,27 @@ |
| 178752 | 178294 | } |
| 178753 | 178295 | }else{ |
| 178754 | 178296 | sqlite3ExprListDelete(pParse->db, pList); |
| 178755 | 178297 | } |
| 178756 | 178298 | } |
| 178757 | | -#line 4908 "parse.sql" |
| 178758 | 178299 | break; |
| 178759 | 178300 | case 197: /* expr ::= expr AND expr */ |
| 178760 | | -#line 1289 "parse.y" |
| 178761 | 178301 | {yymsp[-2].minor.yy454=sqlite3ExprAnd(pParse,yymsp[-2].minor.yy454,yymsp[0].minor.yy454);} |
| 178762 | | -#line 4913 "parse.sql" |
| 178763 | 178302 | break; |
| 178764 | 178303 | case 198: /* expr ::= expr OR expr */ |
| 178765 | 178304 | case 199: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==199); |
| 178766 | 178305 | case 200: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==200); |
| 178767 | 178306 | case 201: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==201); |
| 178768 | 178307 | case 202: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==202); |
| 178769 | 178308 | case 203: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==203); |
| 178770 | 178309 | case 204: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==204); |
| 178771 | | -#line 1290 "parse.y" |
| 178772 | 178310 | {yymsp[-2].minor.yy454=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy454,yymsp[0].minor.yy454);} |
| 178773 | | -#line 4924 "parse.sql" |
| 178774 | 178311 | break; |
| 178775 | 178312 | case 205: /* likeop ::= NOT LIKE_KW|MATCH */ |
| 178776 | | -#line 1303 "parse.y" |
| 178777 | 178313 | {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/} |
| 178778 | | -#line 4929 "parse.sql" |
| 178779 | 178314 | break; |
| 178780 | 178315 | case 206: /* expr ::= expr likeop expr */ |
| 178781 | | -#line 1304 "parse.y" |
| 178782 | 178316 | { |
| 178783 | 178317 | ExprList *pList; |
| 178784 | 178318 | int bNot = yymsp[-1].minor.yy0.n & 0x80000000; |
| 178785 | 178319 | yymsp[-1].minor.yy0.n &= 0x7fffffff; |
| 178786 | 178320 | pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy454); |
| | @@ -178787,14 +178321,12 @@ |
| 178787 | 178321 | pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy454); |
| 178788 | 178322 | yymsp[-2].minor.yy454 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0); |
| 178789 | 178323 | if( bNot ) yymsp[-2].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy454, 0); |
| 178790 | 178324 | if( yymsp[-2].minor.yy454 ) yymsp[-2].minor.yy454->flags |= EP_InfixFunc; |
| 178791 | 178325 | } |
| 178792 | | -#line 4943 "parse.sql" |
| 178793 | 178326 | break; |
| 178794 | 178327 | case 207: /* expr ::= expr likeop expr ESCAPE expr */ |
| 178795 | | -#line 1314 "parse.y" |
| 178796 | 178328 | { |
| 178797 | 178329 | ExprList *pList; |
| 178798 | 178330 | int bNot = yymsp[-3].minor.yy0.n & 0x80000000; |
| 178799 | 178331 | yymsp[-3].minor.yy0.n &= 0x7fffffff; |
| 178800 | 178332 | pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy454); |
| | @@ -178802,62 +178334,46 @@ |
| 178802 | 178334 | pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy454); |
| 178803 | 178335 | yymsp[-4].minor.yy454 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0); |
| 178804 | 178336 | if( bNot ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0); |
| 178805 | 178337 | if( yymsp[-4].minor.yy454 ) yymsp[-4].minor.yy454->flags |= EP_InfixFunc; |
| 178806 | 178338 | } |
| 178807 | | -#line 4958 "parse.sql" |
| 178808 | 178339 | break; |
| 178809 | 178340 | case 208: /* expr ::= expr ISNULL|NOTNULL */ |
| 178810 | | -#line 1326 "parse.y" |
| 178811 | 178341 | {yymsp[-1].minor.yy454 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy454,0);} |
| 178812 | | -#line 4963 "parse.sql" |
| 178813 | 178342 | break; |
| 178814 | 178343 | case 209: /* expr ::= expr NOT NULL */ |
| 178815 | | -#line 1327 "parse.y" |
| 178816 | 178344 | {yymsp[-2].minor.yy454 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy454,0);} |
| 178817 | | -#line 4968 "parse.sql" |
| 178818 | 178345 | break; |
| 178819 | 178346 | case 210: /* expr ::= expr IS expr */ |
| 178820 | | -#line 1348 "parse.y" |
| 178821 | 178347 | { |
| 178822 | 178348 | yymsp[-2].minor.yy454 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy454,yymsp[0].minor.yy454); |
| 178823 | 178349 | binaryToUnaryIfNull(pParse, yymsp[0].minor.yy454, yymsp[-2].minor.yy454, TK_ISNULL); |
| 178824 | 178350 | } |
| 178825 | | -#line 4976 "parse.sql" |
| 178826 | 178351 | break; |
| 178827 | 178352 | case 211: /* expr ::= expr IS NOT expr */ |
| 178828 | | -#line 1352 "parse.y" |
| 178829 | 178353 | { |
| 178830 | 178354 | yymsp[-3].minor.yy454 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy454,yymsp[0].minor.yy454); |
| 178831 | 178355 | binaryToUnaryIfNull(pParse, yymsp[0].minor.yy454, yymsp[-3].minor.yy454, TK_NOTNULL); |
| 178832 | 178356 | } |
| 178833 | | -#line 4984 "parse.sql" |
| 178834 | 178357 | break; |
| 178835 | 178358 | case 212: /* expr ::= expr IS NOT DISTINCT FROM expr */ |
| 178836 | | -#line 1356 "parse.y" |
| 178837 | 178359 | { |
| 178838 | 178360 | yymsp[-5].minor.yy454 = sqlite3PExpr(pParse,TK_IS,yymsp[-5].minor.yy454,yymsp[0].minor.yy454); |
| 178839 | 178361 | binaryToUnaryIfNull(pParse, yymsp[0].minor.yy454, yymsp[-5].minor.yy454, TK_ISNULL); |
| 178840 | 178362 | } |
| 178841 | | -#line 4992 "parse.sql" |
| 178842 | 178363 | break; |
| 178843 | 178364 | case 213: /* expr ::= expr IS DISTINCT FROM expr */ |
| 178844 | | -#line 1360 "parse.y" |
| 178845 | 178365 | { |
| 178846 | 178366 | yymsp[-4].minor.yy454 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-4].minor.yy454,yymsp[0].minor.yy454); |
| 178847 | 178367 | binaryToUnaryIfNull(pParse, yymsp[0].minor.yy454, yymsp[-4].minor.yy454, TK_NOTNULL); |
| 178848 | 178368 | } |
| 178849 | | -#line 5000 "parse.sql" |
| 178850 | 178369 | break; |
| 178851 | 178370 | case 214: /* expr ::= NOT expr */ |
| 178852 | 178371 | case 215: /* expr ::= BITNOT expr */ yytestcase(yyruleno==215); |
| 178853 | | -#line 1366 "parse.y" |
| 178854 | 178372 | {yymsp[-1].minor.yy454 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy454, 0);/*A-overwrites-B*/} |
| 178855 | | -#line 5006 "parse.sql" |
| 178856 | 178373 | break; |
| 178857 | 178374 | case 216: /* expr ::= PLUS|MINUS expr */ |
| 178858 | | -#line 1369 "parse.y" |
| 178859 | 178375 | { |
| 178860 | 178376 | Expr *p = yymsp[0].minor.yy454; |
| 178861 | 178377 | u8 op = yymsp[-1].major + (TK_UPLUS-TK_PLUS); |
| 178862 | 178378 | assert( TK_UPLUS>TK_PLUS ); |
| 178863 | 178379 | assert( TK_UMINUS == TK_MINUS + (TK_UPLUS - TK_PLUS) ); |
| | @@ -178867,30 +178383,24 @@ |
| 178867 | 178383 | }else{ |
| 178868 | 178384 | yymsp[-1].minor.yy454 = sqlite3PExpr(pParse, op, p, 0); |
| 178869 | 178385 | /*A-overwrites-B*/ |
| 178870 | 178386 | } |
| 178871 | 178387 | } |
| 178872 | | -#line 5023 "parse.sql" |
| 178873 | 178388 | break; |
| 178874 | 178389 | case 217: /* expr ::= expr PTR expr */ |
| 178875 | | -#line 1383 "parse.y" |
| 178876 | 178390 | { |
| 178877 | 178391 | ExprList *pList = sqlite3ExprListAppend(pParse, 0, yymsp[-2].minor.yy454); |
| 178878 | 178392 | pList = sqlite3ExprListAppend(pParse, pList, yymsp[0].minor.yy454); |
| 178879 | 178393 | yylhsminor.yy454 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0); |
| 178880 | 178394 | } |
| 178881 | | -#line 5032 "parse.sql" |
| 178882 | 178395 | yymsp[-2].minor.yy454 = yylhsminor.yy454; |
| 178883 | 178396 | break; |
| 178884 | 178397 | case 218: /* between_op ::= BETWEEN */ |
| 178885 | 178398 | case 221: /* in_op ::= IN */ yytestcase(yyruleno==221); |
| 178886 | | -#line 1390 "parse.y" |
| 178887 | 178399 | {yymsp[0].minor.yy144 = 0;} |
| 178888 | | -#line 5039 "parse.sql" |
| 178889 | 178400 | break; |
| 178890 | 178401 | case 220: /* expr ::= expr between_op expr AND expr */ |
| 178891 | | -#line 1392 "parse.y" |
| 178892 | 178402 | { |
| 178893 | 178403 | ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy454); |
| 178894 | 178404 | pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy454); |
| 178895 | 178405 | yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy454, 0); |
| 178896 | 178406 | if( yymsp[-4].minor.yy454 ){ |
| | @@ -178898,14 +178408,12 @@ |
| 178898 | 178408 | }else{ |
| 178899 | 178409 | sqlite3ExprListDelete(pParse->db, pList); |
| 178900 | 178410 | } |
| 178901 | 178411 | if( yymsp[-3].minor.yy144 ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0); |
| 178902 | 178412 | } |
| 178903 | | -#line 5054 "parse.sql" |
| 178904 | 178413 | break; |
| 178905 | 178414 | case 223: /* expr ::= expr in_op LP exprlist RP */ |
| 178906 | | -#line 1407 "parse.y" |
| 178907 | 178415 | { |
| 178908 | 178416 | if( yymsp[-1].minor.yy14==0 ){ |
| 178909 | 178417 | /* Expressions of the form |
| 178910 | 178418 | ** |
| 178911 | 178419 | ** expr1 IN () |
| | @@ -178946,52 +178454,42 @@ |
| 178946 | 178454 | } |
| 178947 | 178455 | } |
| 178948 | 178456 | if( yymsp[-3].minor.yy144 ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0); |
| 178949 | 178457 | } |
| 178950 | 178458 | } |
| 178951 | | -#line 5102 "parse.sql" |
| 178952 | 178459 | break; |
| 178953 | 178460 | case 224: /* expr ::= LP select RP */ |
| 178954 | | -#line 1451 "parse.y" |
| 178955 | 178461 | { |
| 178956 | 178462 | yymsp[-2].minor.yy454 = sqlite3PExpr(pParse, TK_SELECT, 0, 0); |
| 178957 | 178463 | sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy454, yymsp[-1].minor.yy555); |
| 178958 | 178464 | } |
| 178959 | | -#line 5110 "parse.sql" |
| 178960 | 178465 | break; |
| 178961 | 178466 | case 225: /* expr ::= expr in_op LP select RP */ |
| 178962 | | -#line 1455 "parse.y" |
| 178963 | 178467 | { |
| 178964 | 178468 | yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy454, 0); |
| 178965 | 178469 | sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy454, yymsp[-1].minor.yy555); |
| 178966 | 178470 | if( yymsp[-3].minor.yy144 ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0); |
| 178967 | 178471 | } |
| 178968 | | -#line 5119 "parse.sql" |
| 178969 | 178472 | break; |
| 178970 | 178473 | case 226: /* expr ::= expr in_op nm dbnm paren_exprlist */ |
| 178971 | | -#line 1460 "parse.y" |
| 178972 | 178474 | { |
| 178973 | 178475 | SrcList *pSrc = sqlite3SrcListAppend(pParse, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); |
| 178974 | 178476 | Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0); |
| 178975 | 178477 | if( yymsp[0].minor.yy14 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy14); |
| 178976 | 178478 | yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy454, 0); |
| 178977 | 178479 | sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy454, pSelect); |
| 178978 | 178480 | if( yymsp[-3].minor.yy144 ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0); |
| 178979 | 178481 | } |
| 178980 | | -#line 5131 "parse.sql" |
| 178981 | 178482 | break; |
| 178982 | 178483 | case 227: /* expr ::= EXISTS LP select RP */ |
| 178983 | | -#line 1468 "parse.y" |
| 178984 | 178484 | { |
| 178985 | 178485 | Expr *p; |
| 178986 | 178486 | p = yymsp[-3].minor.yy454 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0); |
| 178987 | 178487 | sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy555); |
| 178988 | 178488 | } |
| 178989 | | -#line 5140 "parse.sql" |
| 178990 | 178489 | break; |
| 178991 | 178490 | case 228: /* expr ::= CASE case_operand case_exprlist case_else END */ |
| 178992 | | -#line 1476 "parse.y" |
| 178993 | 178491 | { |
| 178994 | 178492 | yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy454, 0); |
| 178995 | 178493 | if( yymsp[-4].minor.yy454 ){ |
| 178996 | 178494 | yymsp[-4].minor.yy454->x.pList = yymsp[-1].minor.yy454 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy14,yymsp[-1].minor.yy454) : yymsp[-2].minor.yy14; |
| 178997 | 178495 | sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy454); |
| | @@ -178998,627 +178496,446 @@ |
| 178998 | 178496 | }else{ |
| 178999 | 178497 | sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy14); |
| 179000 | 178498 | sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy454); |
| 179001 | 178499 | } |
| 179002 | 178500 | } |
| 179003 | | -#line 5154 "parse.sql" |
| 179004 | 178501 | break; |
| 179005 | 178502 | case 229: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ |
| 179006 | | -#line 1488 "parse.y" |
| 179007 | 178503 | { |
| 179008 | 178504 | yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14, yymsp[-2].minor.yy454); |
| 179009 | 178505 | yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14, yymsp[0].minor.yy454); |
| 179010 | 178506 | } |
| 179011 | | -#line 5162 "parse.sql" |
| 179012 | 178507 | break; |
| 179013 | 178508 | case 230: /* case_exprlist ::= WHEN expr THEN expr */ |
| 179014 | | -#line 1492 "parse.y" |
| 179015 | 178509 | { |
| 179016 | 178510 | yymsp[-3].minor.yy14 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy454); |
| 179017 | 178511 | yymsp[-3].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy14, yymsp[0].minor.yy454); |
| 179018 | 178512 | } |
| 179019 | | -#line 5170 "parse.sql" |
| 179020 | 178513 | break; |
| 179021 | 178514 | case 235: /* nexprlist ::= nexprlist COMMA expr */ |
| 179022 | | -#line 1513 "parse.y" |
| 179023 | 178515 | {yymsp[-2].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy14,yymsp[0].minor.yy454);} |
| 179024 | | -#line 5175 "parse.sql" |
| 179025 | 178516 | break; |
| 179026 | 178517 | case 236: /* nexprlist ::= expr */ |
| 179027 | | -#line 1515 "parse.y" |
| 179028 | 178518 | {yymsp[0].minor.yy14 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy454); /*A-overwrites-Y*/} |
| 179029 | | -#line 5180 "parse.sql" |
| 179030 | 178519 | break; |
| 179031 | 178520 | case 238: /* paren_exprlist ::= LP exprlist RP */ |
| 179032 | 178521 | case 243: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==243); |
| 179033 | | -#line 1523 "parse.y" |
| 179034 | 178522 | {yymsp[-2].minor.yy14 = yymsp[-1].minor.yy14;} |
| 179035 | | -#line 5186 "parse.sql" |
| 179036 | 178523 | break; |
| 179037 | 178524 | case 239: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ |
| 179038 | | -#line 1530 "parse.y" |
| 179039 | 178525 | { |
| 179040 | 178526 | sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, |
| 179041 | 178527 | sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy14, yymsp[-10].minor.yy144, |
| 179042 | 178528 | &yymsp[-11].minor.yy0, yymsp[0].minor.yy454, SQLITE_SO_ASC, yymsp[-8].minor.yy144, SQLITE_IDXTYPE_APPDEF); |
| 179043 | 178529 | if( IN_RENAME_OBJECT && pParse->pNewIndex ){ |
| 179044 | 178530 | sqlite3RenameTokenMap(pParse, pParse->pNewIndex->zName, &yymsp[-4].minor.yy0); |
| 179045 | 178531 | } |
| 179046 | 178532 | } |
| 179047 | | -#line 5198 "parse.sql" |
| 179048 | 178533 | break; |
| 179049 | 178534 | case 240: /* uniqueflag ::= UNIQUE */ |
| 179050 | 178535 | case 282: /* raisetype ::= ABORT */ yytestcase(yyruleno==282); |
| 179051 | | -#line 1540 "parse.y" |
| 179052 | 178536 | {yymsp[0].minor.yy144 = OE_Abort;} |
| 179053 | | -#line 5204 "parse.sql" |
| 179054 | 178537 | break; |
| 179055 | 178538 | case 241: /* uniqueflag ::= */ |
| 179056 | | -#line 1541 "parse.y" |
| 179057 | 178539 | {yymsp[1].minor.yy144 = OE_None;} |
| 179058 | | -#line 5209 "parse.sql" |
| 179059 | 178540 | break; |
| 179060 | 178541 | case 244: /* eidlist ::= eidlist COMMA nm collate sortorder */ |
| 179061 | | -#line 1591 "parse.y" |
| 179062 | 178542 | { |
| 179063 | 178543 | yymsp[-4].minor.yy14 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy14, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy144, yymsp[0].minor.yy144); |
| 179064 | 178544 | } |
| 179065 | | -#line 5216 "parse.sql" |
| 179066 | 178545 | break; |
| 179067 | 178546 | case 245: /* eidlist ::= nm collate sortorder */ |
| 179068 | | -#line 1594 "parse.y" |
| 179069 | 178547 | { |
| 179070 | 178548 | yymsp[-2].minor.yy14 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy144, yymsp[0].minor.yy144); /*A-overwrites-Y*/ |
| 179071 | 178549 | } |
| 179072 | | -#line 5223 "parse.sql" |
| 179073 | 178550 | break; |
| 179074 | 178551 | case 248: /* cmd ::= DROP INDEX ifexists fullname */ |
| 179075 | | -#line 1605 "parse.y" |
| 179076 | 178552 | {sqlite3DropIndex(pParse, yymsp[0].minor.yy203, yymsp[-1].minor.yy144);} |
| 179077 | | -#line 5228 "parse.sql" |
| 179078 | 178553 | break; |
| 179079 | 178554 | case 249: /* cmd ::= VACUUM vinto */ |
| 179080 | | -#line 1612 "parse.y" |
| 179081 | 178555 | {sqlite3Vacuum(pParse,0,yymsp[0].minor.yy454);} |
| 179082 | | -#line 5233 "parse.sql" |
| 179083 | 178556 | break; |
| 179084 | 178557 | case 250: /* cmd ::= VACUUM nm vinto */ |
| 179085 | | -#line 1613 "parse.y" |
| 179086 | 178558 | {sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy454);} |
| 179087 | | -#line 5238 "parse.sql" |
| 179088 | 178559 | break; |
| 179089 | 178560 | case 253: /* cmd ::= PRAGMA nm dbnm */ |
| 179090 | | -#line 1621 "parse.y" |
| 179091 | 178561 | {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);} |
| 179092 | | -#line 5243 "parse.sql" |
| 179093 | 178562 | break; |
| 179094 | 178563 | case 254: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ |
| 179095 | | -#line 1622 "parse.y" |
| 179096 | 178564 | {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);} |
| 179097 | | -#line 5248 "parse.sql" |
| 179098 | 178565 | break; |
| 179099 | 178566 | case 255: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ |
| 179100 | | -#line 1623 "parse.y" |
| 179101 | 178567 | {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);} |
| 179102 | | -#line 5253 "parse.sql" |
| 179103 | 178568 | break; |
| 179104 | 178569 | case 256: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ |
| 179105 | | -#line 1625 "parse.y" |
| 179106 | 178570 | {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);} |
| 179107 | | -#line 5258 "parse.sql" |
| 179108 | 178571 | break; |
| 179109 | 178572 | case 257: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ |
| 179110 | | -#line 1627 "parse.y" |
| 179111 | 178573 | {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);} |
| 179112 | | -#line 5263 "parse.sql" |
| 179113 | 178574 | break; |
| 179114 | 178575 | case 260: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ |
| 179115 | | -#line 1643 "parse.y" |
| 179116 | 178576 | { |
| 179117 | 178577 | Token all; |
| 179118 | 178578 | all.z = yymsp[-3].minor.yy0.z; |
| 179119 | 178579 | all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n; |
| 179120 | 178580 | sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy427, &all); |
| 179121 | 178581 | } |
| 179122 | | -#line 5273 "parse.sql" |
| 179123 | 178582 | break; |
| 179124 | 178583 | case 261: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ |
| 179125 | | -#line 1652 "parse.y" |
| 179126 | 178584 | { |
| 179127 | 178585 | sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy144, yymsp[-4].minor.yy286.a, yymsp[-4].minor.yy286.b, yymsp[-2].minor.yy203, yymsp[0].minor.yy454, yymsp[-10].minor.yy144, yymsp[-8].minor.yy144); |
| 179128 | 178586 | yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/ |
| 179129 | 178587 | } |
| 179130 | | -#line 5281 "parse.sql" |
| 179131 | 178588 | break; |
| 179132 | 178589 | case 262: /* trigger_time ::= BEFORE|AFTER */ |
| 179133 | | -#line 1658 "parse.y" |
| 179134 | 178590 | { yymsp[0].minor.yy144 = yymsp[0].major; /*A-overwrites-X*/ } |
| 179135 | | -#line 5286 "parse.sql" |
| 179136 | 178591 | break; |
| 179137 | 178592 | case 263: /* trigger_time ::= INSTEAD OF */ |
| 179138 | | -#line 1659 "parse.y" |
| 179139 | 178593 | { yymsp[-1].minor.yy144 = TK_INSTEAD;} |
| 179140 | | -#line 5291 "parse.sql" |
| 179141 | 178594 | break; |
| 179142 | 178595 | case 264: /* trigger_time ::= */ |
| 179143 | | -#line 1660 "parse.y" |
| 179144 | 178596 | { yymsp[1].minor.yy144 = TK_BEFORE; } |
| 179145 | | -#line 5296 "parse.sql" |
| 179146 | 178597 | break; |
| 179147 | 178598 | case 265: /* trigger_event ::= DELETE|INSERT */ |
| 179148 | 178599 | case 266: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==266); |
| 179149 | | -#line 1664 "parse.y" |
| 179150 | 178600 | {yymsp[0].minor.yy286.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy286.b = 0;} |
| 179151 | | -#line 5302 "parse.sql" |
| 179152 | 178601 | break; |
| 179153 | 178602 | case 267: /* trigger_event ::= UPDATE OF idlist */ |
| 179154 | | -#line 1666 "parse.y" |
| 179155 | 178603 | {yymsp[-2].minor.yy286.a = TK_UPDATE; yymsp[-2].minor.yy286.b = yymsp[0].minor.yy132;} |
| 179156 | | -#line 5307 "parse.sql" |
| 179157 | 178604 | break; |
| 179158 | 178605 | case 268: /* when_clause ::= */ |
| 179159 | 178606 | case 287: /* key_opt ::= */ yytestcase(yyruleno==287); |
| 179160 | | -#line 1673 "parse.y" |
| 179161 | 178607 | { yymsp[1].minor.yy454 = 0; } |
| 179162 | | -#line 5313 "parse.sql" |
| 179163 | 178608 | break; |
| 179164 | 178609 | case 269: /* when_clause ::= WHEN expr */ |
| 179165 | 178610 | case 288: /* key_opt ::= KEY expr */ yytestcase(yyruleno==288); |
| 179166 | | -#line 1674 "parse.y" |
| 179167 | 178611 | { yymsp[-1].minor.yy454 = yymsp[0].minor.yy454; } |
| 179168 | | -#line 5319 "parse.sql" |
| 179169 | 178612 | break; |
| 179170 | 178613 | case 270: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ |
| 179171 | | -#line 1678 "parse.y" |
| 179172 | 178614 | { |
| 179173 | 178615 | assert( yymsp[-2].minor.yy427!=0 ); |
| 179174 | 178616 | yymsp[-2].minor.yy427->pLast->pNext = yymsp[-1].minor.yy427; |
| 179175 | 178617 | yymsp[-2].minor.yy427->pLast = yymsp[-1].minor.yy427; |
| 179176 | 178618 | } |
| 179177 | | -#line 5328 "parse.sql" |
| 179178 | 178619 | break; |
| 179179 | 178620 | case 271: /* trigger_cmd_list ::= trigger_cmd SEMI */ |
| 179180 | | -#line 1683 "parse.y" |
| 179181 | 178621 | { |
| 179182 | 178622 | assert( yymsp[-1].minor.yy427!=0 ); |
| 179183 | 178623 | yymsp[-1].minor.yy427->pLast = yymsp[-1].minor.yy427; |
| 179184 | 178624 | } |
| 179185 | | -#line 5336 "parse.sql" |
| 179186 | 178625 | break; |
| 179187 | 178626 | case 272: /* trnm ::= nm DOT nm */ |
| 179188 | | -#line 1694 "parse.y" |
| 179189 | 178627 | { |
| 179190 | 178628 | yymsp[-2].minor.yy0 = yymsp[0].minor.yy0; |
| 179191 | 178629 | sqlite3ErrorMsg(pParse, |
| 179192 | 178630 | "qualified table names are not allowed on INSERT, UPDATE, and DELETE " |
| 179193 | 178631 | "statements within triggers"); |
| 179194 | 178632 | } |
| 179195 | | -#line 5346 "parse.sql" |
| 179196 | 178633 | break; |
| 179197 | 178634 | case 273: /* tridxby ::= INDEXED BY nm */ |
| 179198 | | -#line 1706 "parse.y" |
| 179199 | 178635 | { |
| 179200 | 178636 | sqlite3ErrorMsg(pParse, |
| 179201 | 178637 | "the INDEXED BY clause is not allowed on UPDATE or DELETE statements " |
| 179202 | 178638 | "within triggers"); |
| 179203 | 178639 | } |
| 179204 | | -#line 5355 "parse.sql" |
| 179205 | 178640 | break; |
| 179206 | 178641 | case 274: /* tridxby ::= NOT INDEXED */ |
| 179207 | | -#line 1711 "parse.y" |
| 179208 | 178642 | { |
| 179209 | 178643 | sqlite3ErrorMsg(pParse, |
| 179210 | 178644 | "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements " |
| 179211 | 178645 | "within triggers"); |
| 179212 | 178646 | } |
| 179213 | | -#line 5364 "parse.sql" |
| 179214 | 178647 | break; |
| 179215 | 178648 | case 275: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ |
| 179216 | | -#line 1724 "parse.y" |
| 179217 | 178649 | {yylhsminor.yy427 = sqlite3TriggerUpdateStep(pParse, &yymsp[-6].minor.yy0, yymsp[-2].minor.yy203, yymsp[-3].minor.yy14, yymsp[-1].minor.yy454, yymsp[-7].minor.yy144, yymsp[-8].minor.yy0.z, yymsp[0].minor.yy168);} |
| 179218 | | -#line 5369 "parse.sql" |
| 179219 | 178650 | yymsp[-8].minor.yy427 = yylhsminor.yy427; |
| 179220 | 178651 | break; |
| 179221 | 178652 | case 276: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ |
| 179222 | | -#line 1728 "parse.y" |
| 179223 | 178653 | { |
| 179224 | 178654 | yylhsminor.yy427 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy132,yymsp[-2].minor.yy555,yymsp[-6].minor.yy144,yymsp[-1].minor.yy122,yymsp[-7].minor.yy168,yymsp[0].minor.yy168);/*yylhsminor.yy427-overwrites-yymsp[-6].minor.yy144*/ |
| 179225 | 178655 | } |
| 179226 | | -#line 5377 "parse.sql" |
| 179227 | 178656 | yymsp[-7].minor.yy427 = yylhsminor.yy427; |
| 179228 | 178657 | break; |
| 179229 | 178658 | case 277: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ |
| 179230 | | -#line 1733 "parse.y" |
| 179231 | 178659 | {yylhsminor.yy427 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy454, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy168);} |
| 179232 | | -#line 5383 "parse.sql" |
| 179233 | 178660 | yymsp[-5].minor.yy427 = yylhsminor.yy427; |
| 179234 | 178661 | break; |
| 179235 | 178662 | case 278: /* trigger_cmd ::= scanpt select scanpt */ |
| 179236 | | -#line 1737 "parse.y" |
| 179237 | 178663 | {yylhsminor.yy427 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy555, yymsp[-2].minor.yy168, yymsp[0].minor.yy168); /*yylhsminor.yy427-overwrites-yymsp[-1].minor.yy555*/} |
| 179238 | | -#line 5389 "parse.sql" |
| 179239 | 178664 | yymsp[-2].minor.yy427 = yylhsminor.yy427; |
| 179240 | 178665 | break; |
| 179241 | 178666 | case 279: /* expr ::= RAISE LP IGNORE RP */ |
| 179242 | | -#line 1740 "parse.y" |
| 179243 | 178667 | { |
| 179244 | 178668 | yymsp[-3].minor.yy454 = sqlite3PExpr(pParse, TK_RAISE, 0, 0); |
| 179245 | 178669 | if( yymsp[-3].minor.yy454 ){ |
| 179246 | 178670 | yymsp[-3].minor.yy454->affExpr = OE_Ignore; |
| 179247 | 178671 | } |
| 179248 | 178672 | } |
| 179249 | | -#line 5400 "parse.sql" |
| 179250 | 178673 | break; |
| 179251 | 178674 | case 280: /* expr ::= RAISE LP raisetype COMMA expr RP */ |
| 179252 | | -#line 1746 "parse.y" |
| 179253 | 178675 | { |
| 179254 | 178676 | yymsp[-5].minor.yy454 = sqlite3PExpr(pParse, TK_RAISE, yymsp[-1].minor.yy454, 0); |
| 179255 | 178677 | if( yymsp[-5].minor.yy454 ) { |
| 179256 | 178678 | yymsp[-5].minor.yy454->affExpr = (char)yymsp[-3].minor.yy144; |
| 179257 | 178679 | } |
| 179258 | 178680 | } |
| 179259 | | -#line 5410 "parse.sql" |
| 179260 | 178681 | break; |
| 179261 | 178682 | case 281: /* raisetype ::= ROLLBACK */ |
| 179262 | | -#line 1755 "parse.y" |
| 179263 | 178683 | {yymsp[0].minor.yy144 = OE_Rollback;} |
| 179264 | | -#line 5415 "parse.sql" |
| 179265 | 178684 | break; |
| 179266 | 178685 | case 283: /* raisetype ::= FAIL */ |
| 179267 | | -#line 1757 "parse.y" |
| 179268 | 178686 | {yymsp[0].minor.yy144 = OE_Fail;} |
| 179269 | | -#line 5420 "parse.sql" |
| 179270 | 178687 | break; |
| 179271 | 178688 | case 284: /* cmd ::= DROP TRIGGER ifexists fullname */ |
| 179272 | | -#line 1762 "parse.y" |
| 179273 | 178689 | { |
| 179274 | 178690 | sqlite3DropTrigger(pParse,yymsp[0].minor.yy203,yymsp[-1].minor.yy144); |
| 179275 | 178691 | } |
| 179276 | | -#line 5427 "parse.sql" |
| 179277 | 178692 | break; |
| 179278 | 178693 | case 285: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ |
| 179279 | | -#line 1769 "parse.y" |
| 179280 | 178694 | { |
| 179281 | 178695 | sqlite3Attach(pParse, yymsp[-3].minor.yy454, yymsp[-1].minor.yy454, yymsp[0].minor.yy454); |
| 179282 | 178696 | } |
| 179283 | | -#line 5434 "parse.sql" |
| 179284 | 178697 | break; |
| 179285 | 178698 | case 286: /* cmd ::= DETACH database_kw_opt expr */ |
| 179286 | | -#line 1772 "parse.y" |
| 179287 | 178699 | { |
| 179288 | 178700 | sqlite3Detach(pParse, yymsp[0].minor.yy454); |
| 179289 | 178701 | } |
| 179290 | | -#line 5441 "parse.sql" |
| 179291 | 178702 | break; |
| 179292 | 178703 | case 289: /* cmd ::= REINDEX */ |
| 179293 | | -#line 1787 "parse.y" |
| 179294 | 178704 | {sqlite3Reindex(pParse, 0, 0);} |
| 179295 | | -#line 5446 "parse.sql" |
| 179296 | 178705 | break; |
| 179297 | 178706 | case 290: /* cmd ::= REINDEX nm dbnm */ |
| 179298 | | -#line 1788 "parse.y" |
| 179299 | 178707 | {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} |
| 179300 | | -#line 5451 "parse.sql" |
| 179301 | 178708 | break; |
| 179302 | 178709 | case 291: /* cmd ::= ANALYZE */ |
| 179303 | | -#line 1793 "parse.y" |
| 179304 | 178710 | {sqlite3Analyze(pParse, 0, 0);} |
| 179305 | | -#line 5456 "parse.sql" |
| 179306 | 178711 | break; |
| 179307 | 178712 | case 292: /* cmd ::= ANALYZE nm dbnm */ |
| 179308 | | -#line 1794 "parse.y" |
| 179309 | 178713 | {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} |
| 179310 | | -#line 5461 "parse.sql" |
| 179311 | 178714 | break; |
| 179312 | 178715 | case 293: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ |
| 179313 | | -#line 1800 "parse.y" |
| 179314 | 178716 | { |
| 179315 | 178717 | sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy203,&yymsp[0].minor.yy0); |
| 179316 | 178718 | } |
| 179317 | | -#line 5468 "parse.sql" |
| 179318 | 178719 | break; |
| 179319 | 178720 | case 294: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ |
| 179320 | | -#line 1804 "parse.y" |
| 179321 | 178721 | { |
| 179322 | 178722 | yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n; |
| 179323 | 178723 | sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0); |
| 179324 | 178724 | } |
| 179325 | | -#line 5476 "parse.sql" |
| 179326 | 178725 | break; |
| 179327 | 178726 | case 295: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ |
| 179328 | | -#line 1808 "parse.y" |
| 179329 | 178727 | { |
| 179330 | 178728 | sqlite3AlterDropColumn(pParse, yymsp[-3].minor.yy203, &yymsp[0].minor.yy0); |
| 179331 | 178729 | } |
| 179332 | | -#line 5483 "parse.sql" |
| 179333 | 178730 | break; |
| 179334 | 178731 | case 296: /* add_column_fullname ::= fullname */ |
| 179335 | | -#line 1812 "parse.y" |
| 179336 | 178732 | { |
| 179337 | 178733 | disableLookaside(pParse); |
| 179338 | 178734 | sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy203); |
| 179339 | 178735 | } |
| 179340 | | -#line 5491 "parse.sql" |
| 179341 | 178736 | break; |
| 179342 | 178737 | case 297: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ |
| 179343 | | -#line 1816 "parse.y" |
| 179344 | 178738 | { |
| 179345 | 178739 | sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy203, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); |
| 179346 | 178740 | } |
| 179347 | | -#line 5498 "parse.sql" |
| 179348 | 178741 | break; |
| 179349 | 178742 | case 298: /* cmd ::= create_vtab */ |
| 179350 | | -#line 1828 "parse.y" |
| 179351 | 178743 | {sqlite3VtabFinishParse(pParse,0);} |
| 179352 | | -#line 5503 "parse.sql" |
| 179353 | 178744 | break; |
| 179354 | 178745 | case 299: /* cmd ::= create_vtab LP vtabarglist RP */ |
| 179355 | | -#line 1829 "parse.y" |
| 179356 | 178746 | {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);} |
| 179357 | | -#line 5508 "parse.sql" |
| 179358 | 178747 | break; |
| 179359 | 178748 | case 300: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ |
| 179360 | | -#line 1831 "parse.y" |
| 179361 | 178749 | { |
| 179362 | 178750 | sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy144); |
| 179363 | 178751 | } |
| 179364 | | -#line 5515 "parse.sql" |
| 179365 | 178752 | break; |
| 179366 | 178753 | case 301: /* vtabarg ::= */ |
| 179367 | | -#line 1836 "parse.y" |
| 179368 | 178754 | {sqlite3VtabArgInit(pParse);} |
| 179369 | | -#line 5520 "parse.sql" |
| 179370 | 178755 | break; |
| 179371 | 178756 | case 302: /* vtabargtoken ::= ANY */ |
| 179372 | 178757 | case 303: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==303); |
| 179373 | 178758 | case 304: /* lp ::= LP */ yytestcase(yyruleno==304); |
| 179374 | | -#line 1838 "parse.y" |
| 179375 | 178759 | {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);} |
| 179376 | | -#line 5527 "parse.sql" |
| 179377 | 178760 | break; |
| 179378 | 178761 | case 305: /* with ::= WITH wqlist */ |
| 179379 | 178762 | case 306: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==306); |
| 179380 | | -#line 1855 "parse.y" |
| 179381 | 178763 | { sqlite3WithPush(pParse, yymsp[0].minor.yy59, 1); } |
| 179382 | | -#line 5533 "parse.sql" |
| 179383 | 178764 | break; |
| 179384 | 178765 | case 307: /* wqas ::= AS */ |
| 179385 | | -#line 1859 "parse.y" |
| 179386 | 178766 | {yymsp[0].minor.yy462 = M10d_Any;} |
| 179387 | | -#line 5538 "parse.sql" |
| 179388 | 178767 | break; |
| 179389 | 178768 | case 308: /* wqas ::= AS MATERIALIZED */ |
| 179390 | | -#line 1860 "parse.y" |
| 179391 | 178769 | {yymsp[-1].minor.yy462 = M10d_Yes;} |
| 179392 | | -#line 5543 "parse.sql" |
| 179393 | 178770 | break; |
| 179394 | 178771 | case 309: /* wqas ::= AS NOT MATERIALIZED */ |
| 179395 | | -#line 1861 "parse.y" |
| 179396 | 178772 | {yymsp[-2].minor.yy462 = M10d_No;} |
| 179397 | | -#line 5548 "parse.sql" |
| 179398 | 178773 | break; |
| 179399 | 178774 | case 310: /* wqitem ::= withnm eidlist_opt wqas LP select RP */ |
| 179400 | | -#line 1862 "parse.y" |
| 179401 | 178775 | { |
| 179402 | 178776 | yymsp[-5].minor.yy67 = sqlite3CteNew(pParse, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy14, yymsp[-1].minor.yy555, yymsp[-3].minor.yy462); /*A-overwrites-X*/ |
| 179403 | 178777 | } |
| 179404 | | -#line 5555 "parse.sql" |
| 179405 | 178778 | break; |
| 179406 | 178779 | case 311: /* withnm ::= nm */ |
| 179407 | | -#line 1865 "parse.y" |
| 179408 | 178780 | {pParse->bHasWith = 1;} |
| 179409 | | -#line 5560 "parse.sql" |
| 179410 | 178781 | break; |
| 179411 | 178782 | case 312: /* wqlist ::= wqitem */ |
| 179412 | | -#line 1866 "parse.y" |
| 179413 | 178783 | { |
| 179414 | 178784 | yymsp[0].minor.yy59 = sqlite3WithAdd(pParse, 0, yymsp[0].minor.yy67); /*A-overwrites-X*/ |
| 179415 | 178785 | } |
| 179416 | | -#line 5567 "parse.sql" |
| 179417 | 178786 | break; |
| 179418 | 178787 | case 313: /* wqlist ::= wqlist COMMA wqitem */ |
| 179419 | | -#line 1869 "parse.y" |
| 179420 | 178788 | { |
| 179421 | 178789 | yymsp[-2].minor.yy59 = sqlite3WithAdd(pParse, yymsp[-2].minor.yy59, yymsp[0].minor.yy67); |
| 179422 | 178790 | } |
| 179423 | | -#line 5574 "parse.sql" |
| 179424 | 178791 | break; |
| 179425 | 178792 | case 314: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ |
| 179426 | | -#line 1884 "parse.y" |
| 179427 | 178793 | { |
| 179428 | 178794 | assert( yymsp[0].minor.yy211!=0 ); |
| 179429 | 178795 | sqlite3WindowChain(pParse, yymsp[0].minor.yy211, yymsp[-2].minor.yy211); |
| 179430 | 178796 | yymsp[0].minor.yy211->pNextWin = yymsp[-2].minor.yy211; |
| 179431 | 178797 | yylhsminor.yy211 = yymsp[0].minor.yy211; |
| 179432 | 178798 | } |
| 179433 | | -#line 5584 "parse.sql" |
| 179434 | 178799 | yymsp[-2].minor.yy211 = yylhsminor.yy211; |
| 179435 | 178800 | break; |
| 179436 | 178801 | case 315: /* windowdefn ::= nm AS LP window RP */ |
| 179437 | | -#line 1893 "parse.y" |
| 179438 | 178802 | { |
| 179439 | 178803 | if( ALWAYS(yymsp[-1].minor.yy211) ){ |
| 179440 | 178804 | yymsp[-1].minor.yy211->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n); |
| 179441 | 178805 | } |
| 179442 | 178806 | yylhsminor.yy211 = yymsp[-1].minor.yy211; |
| 179443 | 178807 | } |
| 179444 | | -#line 5595 "parse.sql" |
| 179445 | 178808 | yymsp[-4].minor.yy211 = yylhsminor.yy211; |
| 179446 | 178809 | break; |
| 179447 | 178810 | case 316: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ |
| 179448 | | -#line 1927 "parse.y" |
| 179449 | 178811 | { |
| 179450 | 178812 | yymsp[-4].minor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, yymsp[-2].minor.yy14, yymsp[-1].minor.yy14, 0); |
| 179451 | 178813 | } |
| 179452 | | -#line 5603 "parse.sql" |
| 179453 | 178814 | break; |
| 179454 | 178815 | case 317: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ |
| 179455 | | -#line 1930 "parse.y" |
| 179456 | 178816 | { |
| 179457 | 178817 | yylhsminor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, yymsp[-2].minor.yy14, yymsp[-1].minor.yy14, &yymsp[-5].minor.yy0); |
| 179458 | 178818 | } |
| 179459 | | -#line 5610 "parse.sql" |
| 179460 | 178819 | yymsp[-5].minor.yy211 = yylhsminor.yy211; |
| 179461 | 178820 | break; |
| 179462 | 178821 | case 318: /* window ::= ORDER BY sortlist frame_opt */ |
| 179463 | | -#line 1933 "parse.y" |
| 179464 | 178822 | { |
| 179465 | 178823 | yymsp[-3].minor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, 0, yymsp[-1].minor.yy14, 0); |
| 179466 | 178824 | } |
| 179467 | | -#line 5618 "parse.sql" |
| 179468 | 178825 | break; |
| 179469 | 178826 | case 319: /* window ::= nm ORDER BY sortlist frame_opt */ |
| 179470 | | -#line 1936 "parse.y" |
| 179471 | 178827 | { |
| 179472 | 178828 | yylhsminor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, 0, yymsp[-1].minor.yy14, &yymsp[-4].minor.yy0); |
| 179473 | 178829 | } |
| 179474 | | -#line 5625 "parse.sql" |
| 179475 | 178830 | yymsp[-4].minor.yy211 = yylhsminor.yy211; |
| 179476 | 178831 | break; |
| 179477 | 178832 | case 320: /* window ::= nm frame_opt */ |
| 179478 | | -#line 1940 "parse.y" |
| 179479 | 178833 | { |
| 179480 | 178834 | yylhsminor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, 0, 0, &yymsp[-1].minor.yy0); |
| 179481 | 178835 | } |
| 179482 | | -#line 5633 "parse.sql" |
| 179483 | 178836 | yymsp[-1].minor.yy211 = yylhsminor.yy211; |
| 179484 | 178837 | break; |
| 179485 | 178838 | case 321: /* frame_opt ::= */ |
| 179486 | | -#line 1944 "parse.y" |
| 179487 | 178839 | { |
| 179488 | 178840 | yymsp[1].minor.yy211 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0); |
| 179489 | 178841 | } |
| 179490 | | -#line 5641 "parse.sql" |
| 179491 | 178842 | break; |
| 179492 | 178843 | case 322: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ |
| 179493 | | -#line 1947 "parse.y" |
| 179494 | 178844 | { |
| 179495 | 178845 | yylhsminor.yy211 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy144, yymsp[-1].minor.yy509.eType, yymsp[-1].minor.yy509.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy462); |
| 179496 | 178846 | } |
| 179497 | | -#line 5648 "parse.sql" |
| 179498 | 178847 | yymsp[-2].minor.yy211 = yylhsminor.yy211; |
| 179499 | 178848 | break; |
| 179500 | 178849 | case 323: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ |
| 179501 | | -#line 1951 "parse.y" |
| 179502 | 178850 | { |
| 179503 | 178851 | yylhsminor.yy211 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy144, yymsp[-3].minor.yy509.eType, yymsp[-3].minor.yy509.pExpr, yymsp[-1].minor.yy509.eType, yymsp[-1].minor.yy509.pExpr, yymsp[0].minor.yy462); |
| 179504 | 178852 | } |
| 179505 | | -#line 5656 "parse.sql" |
| 179506 | 178853 | yymsp[-5].minor.yy211 = yylhsminor.yy211; |
| 179507 | 178854 | break; |
| 179508 | 178855 | case 325: /* frame_bound_s ::= frame_bound */ |
| 179509 | 178856 | case 327: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==327); |
| 179510 | | -#line 1957 "parse.y" |
| 179511 | 178857 | {yylhsminor.yy509 = yymsp[0].minor.yy509;} |
| 179512 | | -#line 5663 "parse.sql" |
| 179513 | 178858 | yymsp[0].minor.yy509 = yylhsminor.yy509; |
| 179514 | 178859 | break; |
| 179515 | 178860 | case 326: /* frame_bound_s ::= UNBOUNDED PRECEDING */ |
| 179516 | 178861 | case 328: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==328); |
| 179517 | 178862 | case 330: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==330); |
| 179518 | | -#line 1958 "parse.y" |
| 179519 | 178863 | {yylhsminor.yy509.eType = yymsp[-1].major; yylhsminor.yy509.pExpr = 0;} |
| 179520 | | -#line 5671 "parse.sql" |
| 179521 | 178864 | yymsp[-1].minor.yy509 = yylhsminor.yy509; |
| 179522 | 178865 | break; |
| 179523 | 178866 | case 329: /* frame_bound ::= expr PRECEDING|FOLLOWING */ |
| 179524 | | -#line 1963 "parse.y" |
| 179525 | 178867 | {yylhsminor.yy509.eType = yymsp[0].major; yylhsminor.yy509.pExpr = yymsp[-1].minor.yy454;} |
| 179526 | | -#line 5677 "parse.sql" |
| 179527 | 178868 | yymsp[-1].minor.yy509 = yylhsminor.yy509; |
| 179528 | 178869 | break; |
| 179529 | 178870 | case 331: /* frame_exclude_opt ::= */ |
| 179530 | | -#line 1967 "parse.y" |
| 179531 | 178871 | {yymsp[1].minor.yy462 = 0;} |
| 179532 | | -#line 5683 "parse.sql" |
| 179533 | 178872 | break; |
| 179534 | 178873 | case 332: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ |
| 179535 | | -#line 1968 "parse.y" |
| 179536 | 178874 | {yymsp[-1].minor.yy462 = yymsp[0].minor.yy462;} |
| 179537 | | -#line 5688 "parse.sql" |
| 179538 | 178875 | break; |
| 179539 | 178876 | case 333: /* frame_exclude ::= NO OTHERS */ |
| 179540 | 178877 | case 334: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==334); |
| 179541 | | -#line 1971 "parse.y" |
| 179542 | 178878 | {yymsp[-1].minor.yy462 = yymsp[-1].major; /*A-overwrites-X*/} |
| 179543 | | -#line 5694 "parse.sql" |
| 179544 | 178879 | break; |
| 179545 | 178880 | case 335: /* frame_exclude ::= GROUP|TIES */ |
| 179546 | | -#line 1973 "parse.y" |
| 179547 | 178881 | {yymsp[0].minor.yy462 = yymsp[0].major; /*A-overwrites-X*/} |
| 179548 | | -#line 5699 "parse.sql" |
| 179549 | 178882 | break; |
| 179550 | 178883 | case 336: /* window_clause ::= WINDOW windowdefn_list */ |
| 179551 | | -#line 1978 "parse.y" |
| 179552 | 178884 | { yymsp[-1].minor.yy211 = yymsp[0].minor.yy211; } |
| 179553 | | -#line 5704 "parse.sql" |
| 179554 | 178885 | break; |
| 179555 | 178886 | case 337: /* filter_over ::= filter_clause over_clause */ |
| 179556 | | -#line 1980 "parse.y" |
| 179557 | 178887 | { |
| 179558 | 178888 | if( yymsp[0].minor.yy211 ){ |
| 179559 | 178889 | yymsp[0].minor.yy211->pFilter = yymsp[-1].minor.yy454; |
| 179560 | 178890 | }else{ |
| 179561 | 178891 | sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy454); |
| 179562 | 178892 | } |
| 179563 | 178893 | yylhsminor.yy211 = yymsp[0].minor.yy211; |
| 179564 | 178894 | } |
| 179565 | | -#line 5716 "parse.sql" |
| 179566 | 178895 | yymsp[-1].minor.yy211 = yylhsminor.yy211; |
| 179567 | 178896 | break; |
| 179568 | 178897 | case 338: /* filter_over ::= over_clause */ |
| 179569 | | -#line 1988 "parse.y" |
| 179570 | 178898 | { |
| 179571 | 178899 | yylhsminor.yy211 = yymsp[0].minor.yy211; |
| 179572 | 178900 | } |
| 179573 | | -#line 5724 "parse.sql" |
| 179574 | 178901 | yymsp[0].minor.yy211 = yylhsminor.yy211; |
| 179575 | 178902 | break; |
| 179576 | 178903 | case 339: /* filter_over ::= filter_clause */ |
| 179577 | | -#line 1991 "parse.y" |
| 179578 | 178904 | { |
| 179579 | 178905 | yylhsminor.yy211 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); |
| 179580 | 178906 | if( yylhsminor.yy211 ){ |
| 179581 | 178907 | yylhsminor.yy211->eFrmType = TK_FILTER; |
| 179582 | 178908 | yylhsminor.yy211->pFilter = yymsp[0].minor.yy454; |
| 179583 | 178909 | }else{ |
| 179584 | 178910 | sqlite3ExprDelete(pParse->db, yymsp[0].minor.yy454); |
| 179585 | 178911 | } |
| 179586 | 178912 | } |
| 179587 | | -#line 5738 "parse.sql" |
| 179588 | 178913 | yymsp[0].minor.yy211 = yylhsminor.yy211; |
| 179589 | 178914 | break; |
| 179590 | 178915 | case 340: /* over_clause ::= OVER LP window RP */ |
| 179591 | | -#line 2001 "parse.y" |
| 179592 | 178916 | { |
| 179593 | 178917 | yymsp[-3].minor.yy211 = yymsp[-1].minor.yy211; |
| 179594 | 178918 | assert( yymsp[-3].minor.yy211!=0 ); |
| 179595 | 178919 | } |
| 179596 | | -#line 5747 "parse.sql" |
| 179597 | 178920 | break; |
| 179598 | 178921 | case 341: /* over_clause ::= OVER nm */ |
| 179599 | | -#line 2005 "parse.y" |
| 179600 | 178922 | { |
| 179601 | 178923 | yymsp[-1].minor.yy211 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); |
| 179602 | 178924 | if( yymsp[-1].minor.yy211 ){ |
| 179603 | 178925 | yymsp[-1].minor.yy211->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n); |
| 179604 | 178926 | } |
| 179605 | 178927 | } |
| 179606 | | -#line 5757 "parse.sql" |
| 179607 | 178928 | break; |
| 179608 | 178929 | case 342: /* filter_clause ::= FILTER LP WHERE expr RP */ |
| 179609 | | -#line 2012 "parse.y" |
| 179610 | 178930 | { yymsp[-4].minor.yy454 = yymsp[-1].minor.yy454; } |
| 179611 | | -#line 5762 "parse.sql" |
| 179612 | 178931 | break; |
| 179613 | 178932 | case 343: /* term ::= QNUMBER */ |
| 179614 | | -#line 2038 "parse.y" |
| 179615 | 178933 | { |
| 179616 | 178934 | yylhsminor.yy454=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); |
| 179617 | 178935 | sqlite3DequoteNumber(pParse, yylhsminor.yy454); |
| 179618 | 178936 | } |
| 179619 | | -#line 5770 "parse.sql" |
| 179620 | 178937 | yymsp[0].minor.yy454 = yylhsminor.yy454; |
| 179621 | 178938 | break; |
| 179622 | 178939 | default: |
| 179623 | 178940 | /* (344) input ::= cmdlist */ yytestcase(yyruleno==344); |
| 179624 | 178941 | /* (345) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==345); |
| | @@ -179742,19 +179059,17 @@ |
| 179742 | 179059 | ){ |
| 179743 | 179060 | sqlite3ParserARG_FETCH |
| 179744 | 179061 | sqlite3ParserCTX_FETCH |
| 179745 | 179062 | #define TOKEN yyminor |
| 179746 | 179063 | /************ Begin %syntax_error code ****************************************/ |
| 179747 | | -#line 43 "parse.y" |
| 179748 | 179064 | |
| 179749 | 179065 | UNUSED_PARAMETER(yymajor); /* Silence some compiler warnings */ |
| 179750 | 179066 | if( TOKEN.z[0] ){ |
| 179751 | 179067 | sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &TOKEN); |
| 179752 | 179068 | }else{ |
| 179753 | 179069 | sqlite3ErrorMsg(pParse, "incomplete input"); |
| 179754 | 179070 | } |
| 179755 | | -#line 5906 "parse.sql" |
| 179756 | 179071 | /************ End %syntax_error code ******************************************/ |
| 179757 | 179072 | sqlite3ParserARG_STORE /* Suppress warning about unused %extra_argument variable */ |
| 179758 | 179073 | sqlite3ParserCTX_STORE |
| 179759 | 179074 | } |
| 179760 | 179075 | |
| | @@ -180022,11 +179337,10 @@ |
| 180022 | 179337 | #endif |
| 180023 | 179338 | } |
| 180024 | 179339 | |
| 180025 | 179340 | /************** End of parse.c ***********************************************/ |
| 180026 | 179341 | /************** Begin file tokenize.c ****************************************/ |
| 180027 | | -#line 1 "tsrc/tokenize.c" |
| 180028 | 179342 | /* |
| 180029 | 179343 | ** 2001 September 15 |
| 180030 | 179344 | ** |
| 180031 | 179345 | ** The author disclaims copyright to this source code. In place of |
| 180032 | 179346 | ** a legal notice, here is a blessing: |
| | @@ -180172,11 +179486,10 @@ |
| 180172 | 179486 | ** named keywordhash.h and then included into this source file by |
| 180173 | 179487 | ** the #include below. |
| 180174 | 179488 | */ |
| 180175 | 179489 | /************** Include keywordhash.h in the middle of tokenize.c ************/ |
| 180176 | 179490 | /************** Begin file keywordhash.h *************************************/ |
| 180177 | | -#line 1 "tsrc/keywordhash.h" |
| 180178 | 179491 | /***** This file contains automatically generated code ****** |
| 180179 | 179492 | ** |
| 180180 | 179493 | ** The code in this file has been automatically generated by |
| 180181 | 179494 | ** |
| 180182 | 179495 | ** sqlite/tool/mkkeywordhash.c |
| | @@ -180658,11 +179971,10 @@ |
| 180658 | 179971 | return TK_ID!=sqlite3KeywordCode((const u8*)zName, nName); |
| 180659 | 179972 | } |
| 180660 | 179973 | |
| 180661 | 179974 | /************** End of keywordhash.h *****************************************/ |
| 180662 | 179975 | /************** Continuing where we left off in tokenize.c *******************/ |
| 180663 | | -#line 149 "tsrc/tokenize.c" |
| 180664 | 179976 | |
| 180665 | 179977 | |
| 180666 | 179978 | /* |
| 180667 | 179979 | ** If X is a character that can be used in an identifier then |
| 180668 | 179980 | ** IdChar(X) will be true. Otherwise it is false. |
| | @@ -181402,11 +180714,10 @@ |
| 181402 | 180714 | } |
| 181403 | 180715 | #endif /* SQLITE_ENABLE_NORMALIZE */ |
| 181404 | 180716 | |
| 181405 | 180717 | /************** End of tokenize.c ********************************************/ |
| 181406 | 180718 | /************** Begin file complete.c ****************************************/ |
| 181407 | | -#line 1 "tsrc/complete.c" |
| 181408 | 180719 | /* |
| 181409 | 180720 | ** 2001 September 15 |
| 181410 | 180721 | ** |
| 181411 | 180722 | ** The author disclaims copyright to this source code. In place of |
| 181412 | 180723 | ** a legal notice, here is a blessing: |
| | @@ -181696,11 +181007,10 @@ |
| 181696 | 181007 | #endif /* SQLITE_OMIT_UTF16 */ |
| 181697 | 181008 | #endif /* SQLITE_OMIT_COMPLETE */ |
| 181698 | 181009 | |
| 181699 | 181010 | /************** End of complete.c ********************************************/ |
| 181700 | 181011 | /************** Begin file main.c ********************************************/ |
| 181701 | | -#line 1 "tsrc/main.c" |
| 181702 | 181012 | /* |
| 181703 | 181013 | ** 2001 September 15 |
| 181704 | 181014 | ** |
| 181705 | 181015 | ** The author disclaims copyright to this source code. In place of |
| 181706 | 181016 | ** a legal notice, here is a blessing: |
| | @@ -181718,11 +181028,10 @@ |
| 181718 | 181028 | /* #include "sqliteInt.h" */ |
| 181719 | 181029 | |
| 181720 | 181030 | #ifdef SQLITE_ENABLE_FTS3 |
| 181721 | 181031 | /************** Include fts3.h in the middle of main.c ***********************/ |
| 181722 | 181032 | /************** Begin file fts3.h ********************************************/ |
| 181723 | | -#line 1 "tsrc/fts3.h" |
| 181724 | 181033 | /* |
| 181725 | 181034 | ** 2006 Oct 10 |
| 181726 | 181035 | ** |
| 181727 | 181036 | ** The author disclaims copyright to this source code. In place of |
| 181728 | 181037 | ** a legal notice, here is a blessing: |
| | @@ -181748,16 +181057,14 @@ |
| 181748 | 181057 | } /* extern "C" */ |
| 181749 | 181058 | #endif /* __cplusplus */ |
| 181750 | 181059 | |
| 181751 | 181060 | /************** End of fts3.h ************************************************/ |
| 181752 | 181061 | /************** Continuing where we left off in main.c ***********************/ |
| 181753 | | -#line 21 "tsrc/main.c" |
| 181754 | 181062 | #endif |
| 181755 | 181063 | #ifdef SQLITE_ENABLE_RTREE |
| 181756 | 181064 | /************** Include rtree.h in the middle of main.c **********************/ |
| 181757 | 181065 | /************** Begin file rtree.h *******************************************/ |
| 181758 | | -#line 1 "tsrc/rtree.h" |
| 181759 | 181066 | /* |
| 181760 | 181067 | ** 2008 May 26 |
| 181761 | 181068 | ** |
| 181762 | 181069 | ** The author disclaims copyright to this source code. In place of |
| 181763 | 181070 | ** a legal notice, here is a blessing: |
| | @@ -181787,16 +181094,14 @@ |
| 181787 | 181094 | } /* extern "C" */ |
| 181788 | 181095 | #endif /* __cplusplus */ |
| 181789 | 181096 | |
| 181790 | 181097 | /************** End of rtree.h ***********************************************/ |
| 181791 | 181098 | /************** Continuing where we left off in main.c ***********************/ |
| 181792 | | -#line 24 "tsrc/main.c" |
| 181793 | 181099 | #endif |
| 181794 | 181100 | #if defined(SQLITE_ENABLE_ICU) || defined(SQLITE_ENABLE_ICU_COLLATIONS) |
| 181795 | 181101 | /************** Include sqliteicu.h in the middle of main.c ******************/ |
| 181796 | 181102 | /************** Begin file sqliteicu.h ***************************************/ |
| 181797 | | -#line 1 "tsrc/sqliteicu.h" |
| 181798 | 181103 | /* |
| 181799 | 181104 | ** 2008 May 26 |
| 181800 | 181105 | ** |
| 181801 | 181106 | ** The author disclaims copyright to this source code. In place of |
| 181802 | 181107 | ** a legal notice, here is a blessing: |
| | @@ -181822,11 +181127,10 @@ |
| 181822 | 181127 | } /* extern "C" */ |
| 181823 | 181128 | #endif /* __cplusplus */ |
| 181824 | 181129 | |
| 181825 | 181130 | /************** End of sqliteicu.h *******************************************/ |
| 181826 | 181131 | /************** Continuing where we left off in main.c ***********************/ |
| 181827 | | -#line 27 "tsrc/main.c" |
| 181828 | 181132 | #endif |
| 181829 | 181133 | |
| 181830 | 181134 | /* |
| 181831 | 181135 | ** This is an extension initializer that is a no-op and always |
| 181832 | 181136 | ** succeeds, except that it fails if the fault-simulation is set |
| | @@ -184724,12 +184028,12 @@ |
| 184724 | 184028 | } |
| 184725 | 184029 | oldLimit = db->aLimit[limitId]; |
| 184726 | 184030 | if( newLimit>=0 ){ /* IMP: R-52476-28732 */ |
| 184727 | 184031 | if( newLimit>aHardLimit[limitId] ){ |
| 184728 | 184032 | newLimit = aHardLimit[limitId]; /* IMP: R-51463-25634 */ |
| 184729 | | - }else if( newLimit<1 && limitId==SQLITE_LIMIT_LENGTH ){ |
| 184730 | | - newLimit = 1; |
| 184033 | + }else if( newLimit<SQLITE_MIN_LENGTH && limitId==SQLITE_LIMIT_LENGTH ){ |
| 184034 | + newLimit = SQLITE_MIN_LENGTH; |
| 184731 | 184035 | } |
| 184732 | 184036 | db->aLimit[limitId] = newLimit; |
| 184733 | 184037 | } |
| 184734 | 184038 | return oldLimit; /* IMP: R-53341-35419 */ |
| 184735 | 184039 | } |
| | @@ -186873,11 +186177,10 @@ |
| 186873 | 186177 | } |
| 186874 | 186178 | #endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */ |
| 186875 | 186179 | |
| 186876 | 186180 | /************** End of main.c ************************************************/ |
| 186877 | 186181 | /************** Begin file notify.c ******************************************/ |
| 186878 | | -#line 1 "tsrc/notify.c" |
| 186879 | 186182 | /* |
| 186880 | 186183 | ** 2009 March 3 |
| 186881 | 186184 | ** |
| 186882 | 186185 | ** The author disclaims copyright to this source code. In place of |
| 186883 | 186186 | ** a legal notice, here is a blessing: |
| | @@ -187212,11 +186515,10 @@ |
| 187212 | 186515 | } |
| 187213 | 186516 | #endif |
| 187214 | 186517 | |
| 187215 | 186518 | /************** End of notify.c **********************************************/ |
| 187216 | 186519 | /************** Begin file fts3.c ********************************************/ |
| 187217 | | -#line 1 "tsrc/fts3.c" |
| 187218 | 186520 | /* |
| 187219 | 186521 | ** 2006 Oct 10 |
| 187220 | 186522 | ** |
| 187221 | 186523 | ** The author disclaims copyright to this source code. In place of |
| 187222 | 186524 | ** a legal notice, here is a blessing: |
| | @@ -187505,11 +186807,10 @@ |
| 187505 | 186807 | ** older data. |
| 187506 | 186808 | */ |
| 187507 | 186809 | |
| 187508 | 186810 | /************** Include fts3Int.h in the middle of fts3.c ********************/ |
| 187509 | 186811 | /************** Begin file fts3Int.h *****************************************/ |
| 187510 | | -#line 1 "tsrc/fts3Int.h" |
| 187511 | 186812 | /* |
| 187512 | 186813 | ** 2009 Nov 12 |
| 187513 | 186814 | ** |
| 187514 | 186815 | ** The author disclaims copyright to this source code. In place of |
| 187515 | 186816 | ** a legal notice, here is a blessing: |
| | @@ -187552,11 +186853,10 @@ |
| 187552 | 186853 | #endif |
| 187553 | 186854 | |
| 187554 | 186855 | /* #include "sqlite3.h" */ |
| 187555 | 186856 | /************** Include fts3_tokenizer.h in the middle of fts3Int.h **********/ |
| 187556 | 186857 | /************** Begin file fts3_tokenizer.h **********************************/ |
| 187557 | | -#line 1 "tsrc/fts3_tokenizer.h" |
| 187558 | 186858 | /* |
| 187559 | 186859 | ** 2006 July 10 |
| 187560 | 186860 | ** |
| 187561 | 186861 | ** The author disclaims copyright to this source code. |
| 187562 | 186862 | ** |
| | @@ -187717,14 +187017,12 @@ |
| 187717 | 187017 | |
| 187718 | 187018 | #endif /* _FTS3_TOKENIZER_H_ */ |
| 187719 | 187019 | |
| 187720 | 187020 | /************** End of fts3_tokenizer.h **************************************/ |
| 187721 | 187021 | /************** Continuing where we left off in fts3Int.h ********************/ |
| 187722 | | -#line 46 "tsrc/fts3Int.h" |
| 187723 | 187022 | /************** Include fts3_hash.h in the middle of fts3Int.h ***************/ |
| 187724 | 187023 | /************** Begin file fts3_hash.h ***************************************/ |
| 187725 | | -#line 1 "tsrc/fts3_hash.h" |
| 187726 | 187024 | /* |
| 187727 | 187025 | ** 2001 September 22 |
| 187728 | 187026 | ** |
| 187729 | 187027 | ** The author disclaims copyright to this source code. In place of |
| 187730 | 187028 | ** a legal notice, here is a blessing: |
| | @@ -187836,11 +187134,10 @@ |
| 187836 | 187134 | |
| 187837 | 187135 | #endif /* _FTS3_HASH_H_ */ |
| 187838 | 187136 | |
| 187839 | 187137 | /************** End of fts3_hash.h *******************************************/ |
| 187840 | 187138 | /************** Continuing where we left off in fts3Int.h ********************/ |
| 187841 | | -#line 47 "tsrc/fts3Int.h" |
| 187842 | 187139 | |
| 187843 | 187140 | /* |
| 187844 | 187141 | ** This constant determines the maximum depth of an FTS expression tree |
| 187845 | 187142 | ** that the library will create and use. FTS uses recursion to perform |
| 187846 | 187143 | ** various operations on the query tree, so the disadvantage of a large |
| | @@ -188453,11 +187750,10 @@ |
| 188453 | 187750 | #endif /* !SQLITE_CORE || SQLITE_ENABLE_FTS3 */ |
| 188454 | 187751 | #endif /* _FTSINT_H */ |
| 188455 | 187752 | |
| 188456 | 187753 | /************** End of fts3Int.h *********************************************/ |
| 188457 | 187754 | /************** Continuing where we left off in fts3.c ***********************/ |
| 188458 | | -#line 292 "tsrc/fts3.c" |
| 188459 | 187755 | #if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) |
| 188460 | 187756 | |
| 188461 | 187757 | #if defined(SQLITE_ENABLE_FTS3) && !defined(SQLITE_CORE) |
| 188462 | 187758 | # define SQLITE_CORE 1 |
| 188463 | 187759 | #endif |
| | @@ -190509,14 +189805,19 @@ |
| 190509 | 189805 | |
| 190510 | 189806 | assert_fts3_nc( p!=0 && *p1!=0 && *p2!=0 ); |
| 190511 | 189807 | if( *p1==POS_COLUMN ){ |
| 190512 | 189808 | p1++; |
| 190513 | 189809 | p1 += fts3GetVarint32(p1, &iCol1); |
| 189810 | + /* iCol1==0 indicates corruption. Column 0 does not have a POS_COLUMN |
| 189811 | + ** entry, so this is actually end-of-doclist. */ |
| 189812 | + if( iCol1==0 ) return 0; |
| 190514 | 189813 | } |
| 190515 | 189814 | if( *p2==POS_COLUMN ){ |
| 190516 | 189815 | p2++; |
| 190517 | 189816 | p2 += fts3GetVarint32(p2, &iCol2); |
| 189817 | + /* As above, iCol2==0 indicates corruption. */ |
| 189818 | + if( iCol2==0 ) return 0; |
| 190518 | 189819 | } |
| 190519 | 189820 | |
| 190520 | 189821 | while( 1 ){ |
| 190521 | 189822 | if( iCol1==iCol2 ){ |
| 190522 | 189823 | char *pSave = p; |
| | @@ -193683,11 +192984,11 @@ |
| 193683 | 192984 | for(p=pExpr; p->pLeft; p=p->pLeft){ |
| 193684 | 192985 | assert( p->pRight->pPhrase->doclist.nList>0 ); |
| 193685 | 192986 | nTmp += p->pRight->pPhrase->doclist.nList; |
| 193686 | 192987 | } |
| 193687 | 192988 | nTmp += p->pPhrase->doclist.nList; |
| 193688 | | - aTmp = sqlite3_malloc64(nTmp*2); |
| 192989 | + aTmp = sqlite3_malloc64(nTmp*2 + FTS3_VARINT_MAX); |
| 193689 | 192990 | if( !aTmp ){ |
| 193690 | 192991 | *pRc = SQLITE_NOMEM; |
| 193691 | 192992 | res = 0; |
| 193692 | 192993 | }else{ |
| 193693 | 192994 | char *aPoslist = p->pPhrase->doclist.pList; |
| | @@ -194355,11 +193656,10 @@ |
| 194355 | 193656 | |
| 194356 | 193657 | #endif |
| 194357 | 193658 | |
| 194358 | 193659 | /************** End of fts3.c ************************************************/ |
| 194359 | 193660 | /************** Begin file fts3_aux.c ****************************************/ |
| 194360 | | -#line 1 "tsrc/fts3_aux.c" |
| 194361 | 193661 | /* |
| 194362 | 193662 | ** 2011 Jan 27 |
| 194363 | 193663 | ** |
| 194364 | 193664 | ** The author disclaims copyright to this source code. In place of |
| 194365 | 193665 | ** a legal notice, here is a blessing: |
| | @@ -194916,11 +194216,10 @@ |
| 194916 | 194216 | |
| 194917 | 194217 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) */ |
| 194918 | 194218 | |
| 194919 | 194219 | /************** End of fts3_aux.c ********************************************/ |
| 194920 | 194220 | /************** Begin file fts3_expr.c ***************************************/ |
| 194921 | | -#line 1 "tsrc/fts3_expr.c" |
| 194922 | 194221 | /* |
| 194923 | 194222 | ** 2008 Nov 28 |
| 194924 | 194223 | ** |
| 194925 | 194224 | ** The author disclaims copyright to this source code. In place of |
| 194926 | 194225 | ** a legal notice, here is a blessing: |
| | @@ -196213,11 +195512,10 @@ |
| 196213 | 195512 | #endif |
| 196214 | 195513 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) */ |
| 196215 | 195514 | |
| 196216 | 195515 | /************** End of fts3_expr.c *******************************************/ |
| 196217 | 195516 | /************** Begin file fts3_hash.c ***************************************/ |
| 196218 | | -#line 1 "tsrc/fts3_hash.c" |
| 196219 | 195517 | /* |
| 196220 | 195518 | ** 2001 September 22 |
| 196221 | 195519 | ** |
| 196222 | 195520 | ** The author disclaims copyright to this source code. In place of |
| 196223 | 195521 | ** a legal notice, here is a blessing: |
| | @@ -196600,11 +195898,10 @@ |
| 196600 | 195898 | |
| 196601 | 195899 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) */ |
| 196602 | 195900 | |
| 196603 | 195901 | /************** End of fts3_hash.c *******************************************/ |
| 196604 | 195902 | /************** Begin file fts3_porter.c *************************************/ |
| 196605 | | -#line 1 "tsrc/fts3_porter.c" |
| 196606 | 195903 | /* |
| 196607 | 195904 | ** 2006 September 30 |
| 196608 | 195905 | ** |
| 196609 | 195906 | ** The author disclaims copyright to this source code. In place of |
| 196610 | 195907 | ** a legal notice, here is a blessing: |
| | @@ -197266,11 +196563,10 @@ |
| 197266 | 196563 | |
| 197267 | 196564 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) */ |
| 197268 | 196565 | |
| 197269 | 196566 | /************** End of fts3_porter.c *****************************************/ |
| 197270 | 196567 | /************** Begin file fts3_tokenizer.c **********************************/ |
| 197271 | | -#line 1 "tsrc/fts3_tokenizer.c" |
| 197272 | 196568 | /* |
| 197273 | 196569 | ** 2007 June 22 |
| 197274 | 196570 | ** |
| 197275 | 196571 | ** The author disclaims copyright to this source code. In place of |
| 197276 | 196572 | ** a legal notice, here is a blessing: |
| | @@ -197786,11 +197082,10 @@ |
| 197786 | 197082 | |
| 197787 | 197083 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) */ |
| 197788 | 197084 | |
| 197789 | 197085 | /************** End of fts3_tokenizer.c **************************************/ |
| 197790 | 197086 | /************** Begin file fts3_tokenizer1.c *********************************/ |
| 197791 | | -#line 1 "tsrc/fts3_tokenizer1.c" |
| 197792 | 197087 | /* |
| 197793 | 197088 | ** 2006 Oct 10 |
| 197794 | 197089 | ** |
| 197795 | 197090 | ** The author disclaims copyright to this source code. In place of |
| 197796 | 197091 | ** a legal notice, here is a blessing: |
| | @@ -198024,11 +197319,10 @@ |
| 198024 | 197319 | |
| 198025 | 197320 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) */ |
| 198026 | 197321 | |
| 198027 | 197322 | /************** End of fts3_tokenizer1.c *************************************/ |
| 198028 | 197323 | /************** Begin file fts3_tokenize_vtab.c ******************************/ |
| 198029 | | -#line 1 "tsrc/fts3_tokenize_vtab.c" |
| 198030 | 197324 | /* |
| 198031 | 197325 | ** 2013 Apr 22 |
| 198032 | 197326 | ** |
| 198033 | 197327 | ** The author disclaims copyright to this source code. In place of |
| 198034 | 197328 | ** a legal notice, here is a blessing: |
| | @@ -198487,11 +197781,10 @@ |
| 198487 | 197781 | |
| 198488 | 197782 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) */ |
| 198489 | 197783 | |
| 198490 | 197784 | /************** End of fts3_tokenize_vtab.c **********************************/ |
| 198491 | 197785 | /************** Begin file fts3_write.c **************************************/ |
| 198492 | | -#line 1 "tsrc/fts3_write.c" |
| 198493 | 197786 | /* |
| 198494 | 197787 | ** 2009 Oct 23 |
| 198495 | 197788 | ** |
| 198496 | 197789 | ** The author disclaims copyright to this source code. In place of |
| 198497 | 197790 | ** a legal notice, here is a blessing: |
| | @@ -204325,11 +203618,10 @@ |
| 204325 | 203618 | |
| 204326 | 203619 | #endif |
| 204327 | 203620 | |
| 204328 | 203621 | /************** End of fts3_write.c ******************************************/ |
| 204329 | 203622 | /************** Begin file fts3_snippet.c ************************************/ |
| 204330 | | -#line 1 "tsrc/fts3_snippet.c" |
| 204331 | 203623 | /* |
| 204332 | 203624 | ** 2009 Oct 23 |
| 204333 | 203625 | ** |
| 204334 | 203626 | ** The author disclaims copyright to this source code. In place of |
| 204335 | 203627 | ** a legal notice, here is a blessing: |
| | @@ -206085,11 +205377,10 @@ |
| 206085 | 205377 | |
| 206086 | 205378 | #endif |
| 206087 | 205379 | |
| 206088 | 205380 | /************** End of fts3_snippet.c ****************************************/ |
| 206089 | 205381 | /************** Begin file fts3_unicode.c ************************************/ |
| 206090 | | -#line 1 "tsrc/fts3_unicode.c" |
| 206091 | 205382 | /* |
| 206092 | 205383 | ** 2012 May 24 |
| 206093 | 205384 | ** |
| 206094 | 205385 | ** The author disclaims copyright to this source code. In place of |
| 206095 | 205386 | ** a legal notice, here is a blessing: |
| | @@ -206486,11 +205777,10 @@ |
| 206486 | 205777 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) */ |
| 206487 | 205778 | #endif /* ifndef SQLITE_DISABLE_FTS3_UNICODE */ |
| 206488 | 205779 | |
| 206489 | 205780 | /************** End of fts3_unicode.c ****************************************/ |
| 206490 | 205781 | /************** Begin file fts3_unicode2.c ***********************************/ |
| 206491 | | -#line 1 "tsrc/fts3_unicode2.c" |
| 206492 | 205782 | /* |
| 206493 | 205783 | ** 2012-05-25 |
| 206494 | 205784 | ** |
| 206495 | 205785 | ** The author disclaims copyright to this source code. In place of |
| 206496 | 205786 | ** a legal notice, here is a blessing: |
| | @@ -206873,11 +206163,10 @@ |
| 206873 | 206163 | #endif /* defined(SQLITE_ENABLE_FTS3) || defined(SQLITE_ENABLE_FTS4) */ |
| 206874 | 206164 | #endif /* !defined(SQLITE_DISABLE_FTS3_UNICODE) */ |
| 206875 | 206165 | |
| 206876 | 206166 | /************** End of fts3_unicode2.c ***************************************/ |
| 206877 | 206167 | /************** Begin file json.c ********************************************/ |
| 206878 | | -#line 1 "tsrc/json.c" |
| 206879 | 206168 | /* |
| 206880 | 206169 | ** 2015-08-12 |
| 206881 | 206170 | ** |
| 206882 | 206171 | ** The author disclaims copyright to this source code. In place of |
| 206883 | 206172 | ** a legal notice, here is a blessing: |
| | @@ -212343,11 +211632,10 @@ |
| 212343 | 211632 | } |
| 212344 | 211633 | #endif /* !defined(SQLITE_OMIT_VIRTUALTABLE) && !defined(SQLITE_OMIT_JSON) */ |
| 212345 | 211634 | |
| 212346 | 211635 | /************** End of json.c ************************************************/ |
| 212347 | 211636 | /************** Begin file rtree.c *******************************************/ |
| 212348 | | -#line 1 "tsrc/rtree.c" |
| 212349 | 211637 | /* |
| 212350 | 211638 | ** 2001 September 15 |
| 212351 | 211639 | ** |
| 212352 | 211640 | ** The author disclaims copyright to this source code. In place of |
| 212353 | 211641 | ** a legal notice, here is a blessing: |
| | @@ -216632,11 +215920,10 @@ |
| 216632 | 215920 | |
| 216633 | 215921 | /* Conditionally include the geopoly code */ |
| 216634 | 215922 | #ifdef SQLITE_ENABLE_GEOPOLY |
| 216635 | 215923 | /************** Include geopoly.c in the middle of rtree.c *******************/ |
| 216636 | 215924 | /************** Begin file geopoly.c *****************************************/ |
| 216637 | | -#line 1 "tsrc/geopoly.c" |
| 216638 | 215925 | /* |
| 216639 | 215926 | ** 2018-05-25 |
| 216640 | 215927 | ** |
| 216641 | 215928 | ** The author disclaims copyright to this source code. In place of |
| 216642 | 215929 | ** a legal notice, here is a blessing: |
| | @@ -218475,11 +217762,10 @@ |
| 218475 | 217762 | return rc; |
| 218476 | 217763 | } |
| 218477 | 217764 | |
| 218478 | 217765 | /************** End of geopoly.c *********************************************/ |
| 218479 | 217766 | /************** Continuing where we left off in rtree.c **********************/ |
| 218480 | | -#line 4288 "tsrc/rtree.c" |
| 218481 | 217767 | #endif |
| 218482 | 217768 | |
| 218483 | 217769 | /* |
| 218484 | 217770 | ** Register the r-tree module with database handle db. This creates the |
| 218485 | 217771 | ** virtual table module "rtree" and the debugging/analysis scalar |
| | @@ -218658,11 +217944,10 @@ |
| 218658 | 217944 | |
| 218659 | 217945 | #endif |
| 218660 | 217946 | |
| 218661 | 217947 | /************** End of rtree.c ***********************************************/ |
| 218662 | 217948 | /************** Begin file icu.c *********************************************/ |
| 218663 | | -#line 1 "tsrc/icu.c" |
| 218664 | 217949 | /* |
| 218665 | 217950 | ** 2007 May 6 |
| 218666 | 217951 | ** |
| 218667 | 217952 | ** The author disclaims copyright to this source code. In place of |
| 218668 | 217953 | ** a legal notice, here is a blessing: |
| | @@ -219250,11 +218535,10 @@ |
| 219250 | 218535 | |
| 219251 | 218536 | #endif |
| 219252 | 218537 | |
| 219253 | 218538 | /************** End of icu.c *************************************************/ |
| 219254 | 218539 | /************** Begin file fts3_icu.c ****************************************/ |
| 219255 | | -#line 1 "tsrc/fts3_icu.c" |
| 219256 | 218540 | /* |
| 219257 | 218541 | ** 2007 June 22 |
| 219258 | 218542 | ** |
| 219259 | 218543 | ** The author disclaims copyright to this source code. In place of |
| 219260 | 218544 | ** a legal notice, here is a blessing: |
| | @@ -219516,11 +218800,10 @@ |
| 219516 | 218800 | #endif /* defined(SQLITE_ENABLE_ICU) */ |
| 219517 | 218801 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) */ |
| 219518 | 218802 | |
| 219519 | 218803 | /************** End of fts3_icu.c ********************************************/ |
| 219520 | 218804 | /************** Begin file sqlite3rbu.c **************************************/ |
| 219521 | | -#line 1 "tsrc/sqlite3rbu.c" |
| 219522 | 218805 | /* |
| 219523 | 218806 | ** 2014 August 30 |
| 219524 | 218807 | ** |
| 219525 | 218808 | ** The author disclaims copyright to this source code. In place of |
| 219526 | 218809 | ** a legal notice, here is a blessing: |
| | @@ -219608,11 +218891,10 @@ |
| 219608 | 218891 | /* #include "sqlite3.h" */ |
| 219609 | 218892 | |
| 219610 | 218893 | #if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_RBU) |
| 219611 | 218894 | /************** Include sqlite3rbu.h in the middle of sqlite3rbu.c ***********/ |
| 219612 | 218895 | /************** Begin file sqlite3rbu.h **************************************/ |
| 219613 | | -#line 1 "tsrc/sqlite3rbu.h" |
| 219614 | 218896 | /* |
| 219615 | 218897 | ** 2014 August 30 |
| 219616 | 218898 | ** |
| 219617 | 218899 | ** The author disclaims copyright to this source code. In place of |
| 219618 | 218900 | ** a legal notice, here is a blessing: |
| | @@ -220245,11 +219527,10 @@ |
| 220245 | 219527 | |
| 220246 | 219528 | #endif /* _SQLITE3RBU_H */ |
| 220247 | 219529 | |
| 220248 | 219530 | /************** End of sqlite3rbu.h ******************************************/ |
| 220249 | 219531 | /************** Continuing where we left off in sqlite3rbu.c *****************/ |
| 220250 | | -#line 91 "tsrc/sqlite3rbu.c" |
| 220251 | 219532 | |
| 220252 | 219533 | #if defined(_WIN32_WCE) |
| 220253 | 219534 | /* #include "windows.h" */ |
| 220254 | 219535 | #endif |
| 220255 | 219536 | |
| | @@ -225606,11 +224887,10 @@ |
| 225606 | 224887 | |
| 225607 | 224888 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_RBU) */ |
| 225608 | 224889 | |
| 225609 | 224890 | /************** End of sqlite3rbu.c ******************************************/ |
| 225610 | 224891 | /************** Begin file dbstat.c ******************************************/ |
| 225611 | | -#line 1 "tsrc/dbstat.c" |
| 225612 | 224892 | /* |
| 225613 | 224893 | ** 2010 July 12 |
| 225614 | 224894 | ** |
| 225615 | 224895 | ** The author disclaims copyright to this source code. In place of |
| 225616 | 224896 | ** a legal notice, here is a blessing: |
| | @@ -226516,11 +225796,10 @@ |
| 226516 | 225796 | SQLITE_PRIVATE int sqlite3DbstatRegister(sqlite3 *db){ return SQLITE_OK; } |
| 226517 | 225797 | #endif /* SQLITE_ENABLE_DBSTAT_VTAB */ |
| 226518 | 225798 | |
| 226519 | 225799 | /************** End of dbstat.c **********************************************/ |
| 226520 | 225800 | /************** Begin file dbpage.c ******************************************/ |
| 226521 | | -#line 1 "tsrc/dbpage.c" |
| 226522 | 225801 | /* |
| 226523 | 225802 | ** 2017-10-11 |
| 226524 | 225803 | ** |
| 226525 | 225804 | ** The author disclaims copyright to this source code. In place of |
| 226526 | 225805 | ** a legal notice, here is a blessing: |
| | @@ -226999,11 +226278,10 @@ |
| 226999 | 226278 | SQLITE_PRIVATE int sqlite3DbpageRegister(sqlite3 *db){ return SQLITE_OK; } |
| 227000 | 226279 | #endif /* SQLITE_ENABLE_DBSTAT_VTAB */ |
| 227001 | 226280 | |
| 227002 | 226281 | /************** End of dbpage.c **********************************************/ |
| 227003 | 226282 | /************** Begin file sqlite3session.c **********************************/ |
| 227004 | | -#line 1 "tsrc/sqlite3session.c" |
| 227005 | 226283 | |
| 227006 | 226284 | #if defined(SQLITE_ENABLE_SESSION) && defined(SQLITE_ENABLE_PREUPDATE_HOOK) |
| 227007 | 226285 | /* #include "sqlite3session.h" */ |
| 227008 | 226286 | /* #include <assert.h> */ |
| 227009 | 226287 | /* #include <string.h> */ |
| | @@ -233539,11 +232817,10 @@ |
| 233539 | 232817 | |
| 233540 | 232818 | #endif /* SQLITE_ENABLE_SESSION && SQLITE_ENABLE_PREUPDATE_HOOK */ |
| 233541 | 232819 | |
| 233542 | 232820 | /************** End of sqlite3session.c **************************************/ |
| 233543 | 232821 | /************** Begin file fts5.c ********************************************/ |
| 233544 | | -#line 1 "tsrc/fts5.c" |
| 233545 | 232822 | |
| 233546 | 232823 | /* |
| 233547 | 232824 | ** This, the "fts5.c" source file, is a composite file that is itself |
| 233548 | 232825 | ** assembled from the following files: |
| 233549 | 232826 | ** |
| | @@ -233577,11 +232854,10 @@ |
| 233577 | 232854 | /* #include <stdint.h> */ |
| 233578 | 232855 | #endif |
| 233579 | 232856 | #ifdef HAVE_INTTYPES_H |
| 233580 | 232857 | /* #include <inttypes.h> */ |
| 233581 | 232858 | #endif |
| 233582 | | -#line 1 "fts5.h" |
| 233583 | 232859 | /* |
| 233584 | 232860 | ** 2014 May 31 |
| 233585 | 232861 | ** |
| 233586 | 232862 | ** The author disclaims copyright to this source code. In place of |
| 233587 | 232863 | ** a legal notice, here is a blessing: |
| | @@ -234318,11 +233594,10 @@ |
| 234318 | 233594 | } /* end of the 'extern "C"' block */ |
| 234319 | 233595 | #endif |
| 234320 | 233596 | |
| 234321 | 233597 | #endif /* _FTS5_H */ |
| 234322 | 233598 | |
| 234323 | | -#line 1 "fts5Int.h" |
| 234324 | 233599 | /* |
| 234325 | 233600 | ** 2014 May 31 |
| 234326 | 233601 | ** |
| 234327 | 233602 | ** The author disclaims copyright to this source code. In place of |
| 234328 | 233603 | ** a legal notice, here is a blessing: |
| | @@ -235258,11 +234533,10 @@ |
| 235258 | 234533 | ** End of interface to code in fts5_unicode2.c. |
| 235259 | 234534 | **************************************************************************/ |
| 235260 | 234535 | |
| 235261 | 234536 | #endif |
| 235262 | 234537 | |
| 235263 | | -#line 1 "fts5parse.h" |
| 235264 | 234538 | #define FTS5_OR 1 |
| 235265 | 234539 | #define FTS5_AND 2 |
| 235266 | 234540 | #define FTS5_NOT 3 |
| 235267 | 234541 | #define FTS5_TERM 4 |
| 235268 | 234542 | #define FTS5_COLON 5 |
| | @@ -235275,11 +234549,10 @@ |
| 235275 | 234549 | #define FTS5_CARET 12 |
| 235276 | 234550 | #define FTS5_COMMA 13 |
| 235277 | 234551 | #define FTS5_PLUS 14 |
| 235278 | 234552 | #define FTS5_STAR 15 |
| 235279 | 234553 | |
| 235280 | | -#line 1 "fts5parse.c" |
| 235281 | 234554 | /* This file is automatically generated by Lemon from input grammar |
| 235282 | 234555 | ** source file "fts5parse.y". |
| 235283 | 234556 | */ |
| 235284 | 234557 | /* |
| 235285 | 234558 | ** 2000-05-29 |
| | @@ -235304,11 +234577,10 @@ |
| 235304 | 234577 | ** |
| 235305 | 234578 | ** The following is the concatenation of all %include directives from the |
| 235306 | 234579 | ** input grammar file: |
| 235307 | 234580 | */ |
| 235308 | 234581 | /************ Begin %include sections from the grammar ************************/ |
| 235309 | | -#line 47 "fts5parse.y" |
| 235310 | 234582 | |
| 235311 | 234583 | /* #include "fts5Int.h" */ |
| 235312 | 234584 | /* #include "fts5parse.h" */ |
| 235313 | 234585 | |
| 235314 | 234586 | /* |
| | @@ -235332,11 +234604,10 @@ |
| 235332 | 234604 | ** Alternative datatype for the argument to the malloc() routine passed |
| 235333 | 234605 | ** into sqlite3ParserAlloc(). The default is size_t. |
| 235334 | 234606 | */ |
| 235335 | 234607 | #define fts5YYMALLOCARGTYPE u64 |
| 235336 | 234608 | |
| 235337 | | -#line 58 "fts5parse.sql" |
| 235338 | 234609 | /**************** End of %include directives **********************************/ |
| 235339 | 234610 | /* These constants specify the various numeric values for terminal symbols. |
| 235340 | 234611 | ***************** Begin token definitions *************************************/ |
| 235341 | 234612 | #ifndef FTS5_OR |
| 235342 | 234613 | #define FTS5_OR 1 |
| | @@ -235879,45 +235150,35 @@ |
| 235879 | 235150 | ** inside the C code. |
| 235880 | 235151 | */ |
| 235881 | 235152 | /********* Begin destructor definitions ***************************************/ |
| 235882 | 235153 | case 16: /* input */ |
| 235883 | 235154 | { |
| 235884 | | -#line 83 "fts5parse.y" |
| 235885 | 235155 | (void)pParse; |
| 235886 | | -#line 606 "fts5parse.sql" |
| 235887 | 235156 | } |
| 235888 | 235157 | break; |
| 235889 | 235158 | case 17: /* expr */ |
| 235890 | 235159 | case 18: /* cnearset */ |
| 235891 | 235160 | case 19: /* exprlist */ |
| 235892 | 235161 | { |
| 235893 | | -#line 89 "fts5parse.y" |
| 235894 | 235162 | sqlite3Fts5ParseNodeFree((fts5yypminor->fts5yy24)); |
| 235895 | | -#line 615 "fts5parse.sql" |
| 235896 | 235163 | } |
| 235897 | 235164 | break; |
| 235898 | 235165 | case 20: /* colset */ |
| 235899 | 235166 | case 21: /* colsetlist */ |
| 235900 | 235167 | { |
| 235901 | | -#line 93 "fts5parse.y" |
| 235902 | 235168 | sqlite3_free((fts5yypminor->fts5yy11)); |
| 235903 | | -#line 623 "fts5parse.sql" |
| 235904 | 235169 | } |
| 235905 | 235170 | break; |
| 235906 | 235171 | case 22: /* nearset */ |
| 235907 | 235172 | case 23: /* nearphrases */ |
| 235908 | 235173 | { |
| 235909 | | -#line 148 "fts5parse.y" |
| 235910 | 235174 | sqlite3Fts5ParseNearsetFree((fts5yypminor->fts5yy46)); |
| 235911 | | -#line 631 "fts5parse.sql" |
| 235912 | 235175 | } |
| 235913 | 235176 | break; |
| 235914 | 235177 | case 24: /* phrase */ |
| 235915 | 235178 | { |
| 235916 | | -#line 183 "fts5parse.y" |
| 235917 | 235179 | sqlite3Fts5ParsePhraseFree((fts5yypminor->fts5yy53)); |
| 235918 | | -#line 638 "fts5parse.sql" |
| 235919 | 235180 | } |
| 235920 | 235181 | break; |
| 235921 | 235182 | /********* End destructor definitions *****************************************/ |
| 235922 | 235183 | default: break; /* If no destructor action specified: do nothing */ |
| 235923 | 235184 | } |
| | @@ -236148,14 +235409,12 @@ |
| 236148 | 235409 | #endif |
| 236149 | 235410 | while( fts5yypParser->fts5yytos>fts5yypParser->fts5yystack ) fts5yy_pop_parser_stack(fts5yypParser); |
| 236150 | 235411 | /* Here code is inserted which will execute if the parser |
| 236151 | 235412 | ** stack every overflows */ |
| 236152 | 235413 | /******** Begin %stack_overflow code ******************************************/ |
| 236153 | | -#line 36 "fts5parse.y" |
| 236154 | 235414 | |
| 236155 | 235415 | sqlite3Fts5ParseError(pParse, "fts5: parser stack overflow"); |
| 236156 | | -#line 876 "fts5parse.sql" |
| 236157 | 235416 | /******** End %stack_overflow code ********************************************/ |
| 236158 | 235417 | sqlite3Fts5ParserARG_STORE /* Suppress warning about unused %extra_argument var */ |
| 236159 | 235418 | sqlite3Fts5ParserCTX_STORE |
| 236160 | 235419 | } |
| 236161 | 235420 | |
| | @@ -236320,202 +235579,148 @@ |
| 236320 | 235579 | ** break; |
| 236321 | 235580 | */ |
| 236322 | 235581 | /********** Begin reduce actions **********************************************/ |
| 236323 | 235582 | fts5YYMINORTYPE fts5yylhsminor; |
| 236324 | 235583 | case 0: /* input ::= expr */ |
| 236325 | | -#line 82 "fts5parse.y" |
| 236326 | 235584 | { sqlite3Fts5ParseFinished(pParse, fts5yymsp[0].minor.fts5yy24); } |
| 236327 | | -#line 1047 "fts5parse.sql" |
| 236328 | 235585 | break; |
| 236329 | 235586 | case 1: /* colset ::= MINUS LCP colsetlist RCP */ |
| 236330 | | -#line 97 "fts5parse.y" |
| 236331 | 235587 | { |
| 236332 | 235588 | fts5yymsp[-3].minor.fts5yy11 = sqlite3Fts5ParseColsetInvert(pParse, fts5yymsp[-1].minor.fts5yy11); |
| 236333 | 235589 | } |
| 236334 | | -#line 1054 "fts5parse.sql" |
| 236335 | 235590 | break; |
| 236336 | 235591 | case 2: /* colset ::= LCP colsetlist RCP */ |
| 236337 | | -#line 100 "fts5parse.y" |
| 236338 | 235592 | { fts5yymsp[-2].minor.fts5yy11 = fts5yymsp[-1].minor.fts5yy11; } |
| 236339 | | -#line 1059 "fts5parse.sql" |
| 236340 | 235593 | break; |
| 236341 | 235594 | case 3: /* colset ::= STRING */ |
| 236342 | | -#line 101 "fts5parse.y" |
| 236343 | 235595 | { |
| 236344 | 235596 | fts5yylhsminor.fts5yy11 = sqlite3Fts5ParseColset(pParse, 0, &fts5yymsp[0].minor.fts5yy0); |
| 236345 | 235597 | } |
| 236346 | | -#line 1066 "fts5parse.sql" |
| 236347 | 235598 | fts5yymsp[0].minor.fts5yy11 = fts5yylhsminor.fts5yy11; |
| 236348 | 235599 | break; |
| 236349 | 235600 | case 4: /* colset ::= MINUS STRING */ |
| 236350 | | -#line 104 "fts5parse.y" |
| 236351 | 235601 | { |
| 236352 | 235602 | fts5yymsp[-1].minor.fts5yy11 = sqlite3Fts5ParseColset(pParse, 0, &fts5yymsp[0].minor.fts5yy0); |
| 236353 | 235603 | fts5yymsp[-1].minor.fts5yy11 = sqlite3Fts5ParseColsetInvert(pParse, fts5yymsp[-1].minor.fts5yy11); |
| 236354 | 235604 | } |
| 236355 | | -#line 1075 "fts5parse.sql" |
| 236356 | 235605 | break; |
| 236357 | 235606 | case 5: /* colsetlist ::= colsetlist STRING */ |
| 236358 | | -#line 109 "fts5parse.y" |
| 236359 | 235607 | { |
| 236360 | 235608 | fts5yylhsminor.fts5yy11 = sqlite3Fts5ParseColset(pParse, fts5yymsp[-1].minor.fts5yy11, &fts5yymsp[0].minor.fts5yy0); } |
| 236361 | | -#line 1081 "fts5parse.sql" |
| 236362 | 235609 | fts5yymsp[-1].minor.fts5yy11 = fts5yylhsminor.fts5yy11; |
| 236363 | 235610 | break; |
| 236364 | 235611 | case 6: /* colsetlist ::= STRING */ |
| 236365 | | -#line 111 "fts5parse.y" |
| 236366 | 235612 | { |
| 236367 | 235613 | fts5yylhsminor.fts5yy11 = sqlite3Fts5ParseColset(pParse, 0, &fts5yymsp[0].minor.fts5yy0); |
| 236368 | 235614 | } |
| 236369 | | -#line 1089 "fts5parse.sql" |
| 236370 | 235615 | fts5yymsp[0].minor.fts5yy11 = fts5yylhsminor.fts5yy11; |
| 236371 | 235616 | break; |
| 236372 | 235617 | case 7: /* expr ::= expr AND expr */ |
| 236373 | | -#line 115 "fts5parse.y" |
| 236374 | 235618 | { |
| 236375 | 235619 | fts5yylhsminor.fts5yy24 = sqlite3Fts5ParseNode(pParse, FTS5_AND, fts5yymsp[-2].minor.fts5yy24, fts5yymsp[0].minor.fts5yy24, 0); |
| 236376 | 235620 | } |
| 236377 | | -#line 1097 "fts5parse.sql" |
| 236378 | 235621 | fts5yymsp[-2].minor.fts5yy24 = fts5yylhsminor.fts5yy24; |
| 236379 | 235622 | break; |
| 236380 | 235623 | case 8: /* expr ::= expr OR expr */ |
| 236381 | | -#line 118 "fts5parse.y" |
| 236382 | 235624 | { |
| 236383 | 235625 | fts5yylhsminor.fts5yy24 = sqlite3Fts5ParseNode(pParse, FTS5_OR, fts5yymsp[-2].minor.fts5yy24, fts5yymsp[0].minor.fts5yy24, 0); |
| 236384 | 235626 | } |
| 236385 | | -#line 1105 "fts5parse.sql" |
| 236386 | 235627 | fts5yymsp[-2].minor.fts5yy24 = fts5yylhsminor.fts5yy24; |
| 236387 | 235628 | break; |
| 236388 | 235629 | case 9: /* expr ::= expr NOT expr */ |
| 236389 | | -#line 121 "fts5parse.y" |
| 236390 | 235630 | { |
| 236391 | 235631 | fts5yylhsminor.fts5yy24 = sqlite3Fts5ParseNode(pParse, FTS5_NOT, fts5yymsp[-2].minor.fts5yy24, fts5yymsp[0].minor.fts5yy24, 0); |
| 236392 | 235632 | } |
| 236393 | | -#line 1113 "fts5parse.sql" |
| 236394 | 235633 | fts5yymsp[-2].minor.fts5yy24 = fts5yylhsminor.fts5yy24; |
| 236395 | 235634 | break; |
| 236396 | 235635 | case 10: /* expr ::= colset COLON LP expr RP */ |
| 236397 | | -#line 125 "fts5parse.y" |
| 236398 | 235636 | { |
| 236399 | 235637 | sqlite3Fts5ParseSetColset(pParse, fts5yymsp[-1].minor.fts5yy24, fts5yymsp[-4].minor.fts5yy11); |
| 236400 | 235638 | fts5yylhsminor.fts5yy24 = fts5yymsp[-1].minor.fts5yy24; |
| 236401 | 235639 | } |
| 236402 | | -#line 1122 "fts5parse.sql" |
| 236403 | 235640 | fts5yymsp[-4].minor.fts5yy24 = fts5yylhsminor.fts5yy24; |
| 236404 | 235641 | break; |
| 236405 | 235642 | case 11: /* expr ::= LP expr RP */ |
| 236406 | | -#line 129 "fts5parse.y" |
| 236407 | 235643 | {fts5yymsp[-2].minor.fts5yy24 = fts5yymsp[-1].minor.fts5yy24;} |
| 236408 | | -#line 1128 "fts5parse.sql" |
| 236409 | 235644 | break; |
| 236410 | 235645 | case 12: /* expr ::= exprlist */ |
| 236411 | 235646 | case 13: /* exprlist ::= cnearset */ fts5yytestcase(fts5yyruleno==13); |
| 236412 | | -#line 130 "fts5parse.y" |
| 236413 | 235647 | {fts5yylhsminor.fts5yy24 = fts5yymsp[0].minor.fts5yy24;} |
| 236414 | | -#line 1134 "fts5parse.sql" |
| 236415 | 235648 | fts5yymsp[0].minor.fts5yy24 = fts5yylhsminor.fts5yy24; |
| 236416 | 235649 | break; |
| 236417 | 235650 | case 14: /* exprlist ::= exprlist cnearset */ |
| 236418 | | -#line 133 "fts5parse.y" |
| 236419 | 235651 | { |
| 236420 | 235652 | fts5yylhsminor.fts5yy24 = sqlite3Fts5ParseImplicitAnd(pParse, fts5yymsp[-1].minor.fts5yy24, fts5yymsp[0].minor.fts5yy24); |
| 236421 | 235653 | } |
| 236422 | | -#line 1142 "fts5parse.sql" |
| 236423 | 235654 | fts5yymsp[-1].minor.fts5yy24 = fts5yylhsminor.fts5yy24; |
| 236424 | 235655 | break; |
| 236425 | 235656 | case 15: /* cnearset ::= nearset */ |
| 236426 | | -#line 137 "fts5parse.y" |
| 236427 | 235657 | { |
| 236428 | 235658 | fts5yylhsminor.fts5yy24 = sqlite3Fts5ParseNode(pParse, FTS5_STRING, 0, 0, fts5yymsp[0].minor.fts5yy46); |
| 236429 | 235659 | } |
| 236430 | | -#line 1150 "fts5parse.sql" |
| 236431 | 235660 | fts5yymsp[0].minor.fts5yy24 = fts5yylhsminor.fts5yy24; |
| 236432 | 235661 | break; |
| 236433 | 235662 | case 16: /* cnearset ::= colset COLON nearset */ |
| 236434 | | -#line 140 "fts5parse.y" |
| 236435 | 235663 | { |
| 236436 | 235664 | fts5yylhsminor.fts5yy24 = sqlite3Fts5ParseNode(pParse, FTS5_STRING, 0, 0, fts5yymsp[0].minor.fts5yy46); |
| 236437 | 235665 | sqlite3Fts5ParseSetColset(pParse, fts5yylhsminor.fts5yy24, fts5yymsp[-2].minor.fts5yy11); |
| 236438 | 235666 | } |
| 236439 | | -#line 1159 "fts5parse.sql" |
| 236440 | 235667 | fts5yymsp[-2].minor.fts5yy24 = fts5yylhsminor.fts5yy24; |
| 236441 | 235668 | break; |
| 236442 | 235669 | case 17: /* nearset ::= phrase */ |
| 236443 | | -#line 151 "fts5parse.y" |
| 236444 | 235670 | { fts5yylhsminor.fts5yy46 = sqlite3Fts5ParseNearset(pParse, 0, fts5yymsp[0].minor.fts5yy53); } |
| 236445 | | -#line 1165 "fts5parse.sql" |
| 236446 | 235671 | fts5yymsp[0].minor.fts5yy46 = fts5yylhsminor.fts5yy46; |
| 236447 | 235672 | break; |
| 236448 | 235673 | case 18: /* nearset ::= CARET phrase */ |
| 236449 | | -#line 152 "fts5parse.y" |
| 236450 | 235674 | { |
| 236451 | 235675 | sqlite3Fts5ParseSetCaret(fts5yymsp[0].minor.fts5yy53); |
| 236452 | 235676 | fts5yymsp[-1].minor.fts5yy46 = sqlite3Fts5ParseNearset(pParse, 0, fts5yymsp[0].minor.fts5yy53); |
| 236453 | 235677 | } |
| 236454 | | -#line 1174 "fts5parse.sql" |
| 236455 | 235678 | break; |
| 236456 | 235679 | case 19: /* nearset ::= STRING LP nearphrases neardist_opt RP */ |
| 236457 | | -#line 156 "fts5parse.y" |
| 236458 | 235680 | { |
| 236459 | 235681 | sqlite3Fts5ParseNear(pParse, &fts5yymsp[-4].minor.fts5yy0); |
| 236460 | 235682 | sqlite3Fts5ParseSetDistance(pParse, fts5yymsp[-2].minor.fts5yy46, &fts5yymsp[-1].minor.fts5yy0); |
| 236461 | 235683 | fts5yylhsminor.fts5yy46 = fts5yymsp[-2].minor.fts5yy46; |
| 236462 | 235684 | } |
| 236463 | | -#line 1183 "fts5parse.sql" |
| 236464 | 235685 | fts5yymsp[-4].minor.fts5yy46 = fts5yylhsminor.fts5yy46; |
| 236465 | 235686 | break; |
| 236466 | 235687 | case 20: /* nearphrases ::= phrase */ |
| 236467 | | -#line 162 "fts5parse.y" |
| 236468 | 235688 | { |
| 236469 | 235689 | fts5yylhsminor.fts5yy46 = sqlite3Fts5ParseNearset(pParse, 0, fts5yymsp[0].minor.fts5yy53); |
| 236470 | 235690 | } |
| 236471 | | -#line 1191 "fts5parse.sql" |
| 236472 | 235691 | fts5yymsp[0].minor.fts5yy46 = fts5yylhsminor.fts5yy46; |
| 236473 | 235692 | break; |
| 236474 | 235693 | case 21: /* nearphrases ::= nearphrases phrase */ |
| 236475 | | -#line 165 "fts5parse.y" |
| 236476 | 235694 | { |
| 236477 | 235695 | fts5yylhsminor.fts5yy46 = sqlite3Fts5ParseNearset(pParse, fts5yymsp[-1].minor.fts5yy46, fts5yymsp[0].minor.fts5yy53); |
| 236478 | 235696 | } |
| 236479 | | -#line 1199 "fts5parse.sql" |
| 236480 | 235697 | fts5yymsp[-1].minor.fts5yy46 = fts5yylhsminor.fts5yy46; |
| 236481 | 235698 | break; |
| 236482 | 235699 | case 22: /* neardist_opt ::= */ |
| 236483 | | -#line 172 "fts5parse.y" |
| 236484 | 235700 | { fts5yymsp[1].minor.fts5yy0.p = 0; fts5yymsp[1].minor.fts5yy0.n = 0; } |
| 236485 | | -#line 1205 "fts5parse.sql" |
| 236486 | 235701 | break; |
| 236487 | 235702 | case 23: /* neardist_opt ::= COMMA STRING */ |
| 236488 | | -#line 173 "fts5parse.y" |
| 236489 | 235703 | { fts5yymsp[-1].minor.fts5yy0 = fts5yymsp[0].minor.fts5yy0; } |
| 236490 | | -#line 1210 "fts5parse.sql" |
| 236491 | 235704 | break; |
| 236492 | 235705 | case 24: /* phrase ::= phrase PLUS STRING star_opt */ |
| 236493 | | -#line 185 "fts5parse.y" |
| 236494 | 235706 | { |
| 236495 | 235707 | fts5yylhsminor.fts5yy53 = sqlite3Fts5ParseTerm(pParse, fts5yymsp[-3].minor.fts5yy53, &fts5yymsp[-1].minor.fts5yy0, fts5yymsp[0].minor.fts5yy4); |
| 236496 | 235708 | } |
| 236497 | | -#line 1217 "fts5parse.sql" |
| 236498 | 235709 | fts5yymsp[-3].minor.fts5yy53 = fts5yylhsminor.fts5yy53; |
| 236499 | 235710 | break; |
| 236500 | 235711 | case 25: /* phrase ::= STRING star_opt */ |
| 236501 | | -#line 188 "fts5parse.y" |
| 236502 | 235712 | { |
| 236503 | 235713 | fts5yylhsminor.fts5yy53 = sqlite3Fts5ParseTerm(pParse, 0, &fts5yymsp[-1].minor.fts5yy0, fts5yymsp[0].minor.fts5yy4); |
| 236504 | 235714 | } |
| 236505 | | -#line 1225 "fts5parse.sql" |
| 236506 | 235715 | fts5yymsp[-1].minor.fts5yy53 = fts5yylhsminor.fts5yy53; |
| 236507 | 235716 | break; |
| 236508 | 235717 | case 26: /* star_opt ::= STAR */ |
| 236509 | | -#line 196 "fts5parse.y" |
| 236510 | 235718 | { fts5yymsp[0].minor.fts5yy4 = 1; } |
| 236511 | | -#line 1231 "fts5parse.sql" |
| 236512 | 235719 | break; |
| 236513 | 235720 | case 27: /* star_opt ::= */ |
| 236514 | | -#line 197 "fts5parse.y" |
| 236515 | 235721 | { fts5yymsp[1].minor.fts5yy4 = 0; } |
| 236516 | | -#line 1236 "fts5parse.sql" |
| 236517 | 235722 | break; |
| 236518 | 235723 | default: |
| 236519 | 235724 | break; |
| 236520 | 235725 | /********** End reduce actions ************************************************/ |
| 236521 | 235726 | }; |
| | @@ -236573,17 +235778,15 @@ |
| 236573 | 235778 | ){ |
| 236574 | 235779 | sqlite3Fts5ParserARG_FETCH |
| 236575 | 235780 | sqlite3Fts5ParserCTX_FETCH |
| 236576 | 235781 | #define FTS5TOKEN fts5yyminor |
| 236577 | 235782 | /************ Begin %syntax_error code ****************************************/ |
| 236578 | | -#line 30 "fts5parse.y" |
| 236579 | 235783 | |
| 236580 | 235784 | UNUSED_PARAM(fts5yymajor); /* Silence a compiler warning */ |
| 236581 | 235785 | sqlite3Fts5ParseError( |
| 236582 | 235786 | pParse, "fts5: syntax error near \"%.*s\"",FTS5TOKEN.n,FTS5TOKEN.p |
| 236583 | 235787 | ); |
| 236584 | | -#line 1304 "fts5parse.sql" |
| 236585 | 235788 | /************ End %syntax_error code ******************************************/ |
| 236586 | 235789 | sqlite3Fts5ParserARG_STORE /* Suppress warning about unused %extra_argument variable */ |
| 236587 | 235790 | sqlite3Fts5ParserCTX_STORE |
| 236588 | 235791 | } |
| 236589 | 235792 | |
| | @@ -236849,11 +236052,10 @@ |
| 236849 | 236052 | (void)iToken; |
| 236850 | 236053 | return 0; |
| 236851 | 236054 | #endif |
| 236852 | 236055 | } |
| 236853 | 236056 | |
| 236854 | | -#line 1 "fts5_aux.c" |
| 236855 | 236057 | /* |
| 236856 | 236058 | ** 2014 May 31 |
| 236857 | 236059 | ** |
| 236858 | 236060 | ** The author disclaims copyright to this source code. In place of |
| 236859 | 236061 | ** a legal notice, here is a blessing: |
| | @@ -237672,11 +236874,10 @@ |
| 237672 | 236874 | } |
| 237673 | 236875 | |
| 237674 | 236876 | return rc; |
| 237675 | 236877 | } |
| 237676 | 236878 | |
| 237677 | | -#line 1 "fts5_buffer.c" |
| 237678 | 236879 | /* |
| 237679 | 236880 | ** 2014 May 31 |
| 237680 | 236881 | ** |
| 237681 | 236882 | ** The author disclaims copyright to this source code. In place of |
| 237682 | 236883 | ** a legal notice, here is a blessing: |
| | @@ -238085,11 +237286,10 @@ |
| 238085 | 237286 | } |
| 238086 | 237287 | sqlite3_free(p); |
| 238087 | 237288 | } |
| 238088 | 237289 | } |
| 238089 | 237290 | |
| 238090 | | -#line 1 "fts5_config.c" |
| 238091 | 237291 | /* |
| 238092 | 237292 | ** 2014 Jun 09 |
| 238093 | 237293 | ** |
| 238094 | 237294 | ** The author disclaims copyright to this source code. In place of |
| 238095 | 237295 | ** a legal notice, here is a blessing: |
| | @@ -239201,11 +238401,10 @@ |
| 239201 | 238401 | va_end(ap); |
| 239202 | 238402 | } |
| 239203 | 238403 | |
| 239204 | 238404 | |
| 239205 | 238405 | |
| 239206 | | -#line 1 "fts5_expr.c" |
| 239207 | 238406 | /* |
| 239208 | 238407 | ** 2014 May 31 |
| 239209 | 238408 | ** |
| 239210 | 238409 | ** The author disclaims copyright to this source code. In place of |
| 239211 | 238410 | ** a legal notice, here is a blessing: |
| | @@ -242470,11 +241669,10 @@ |
| 242470 | 241669 | sqlite3Fts5IndexIterClearTokendata(pT->pIter); |
| 242471 | 241670 | } |
| 242472 | 241671 | } |
| 242473 | 241672 | } |
| 242474 | 241673 | |
| 242475 | | -#line 1 "fts5_hash.c" |
| 242476 | 241674 | /* |
| 242477 | 241675 | ** 2014 August 11 |
| 242478 | 241676 | ** |
| 242479 | 241677 | ** The author disclaims copyright to this source code. In place of |
| 242480 | 241678 | ** a legal notice, here is a blessing: |
| | @@ -243062,11 +242260,10 @@ |
| 243062 | 242260 | *ppDoclist = 0; |
| 243063 | 242261 | *pnDoclist = 0; |
| 243064 | 242262 | } |
| 243065 | 242263 | } |
| 243066 | 242264 | |
| 243067 | | -#line 1 "fts5_index.c" |
| 243068 | 242265 | /* |
| 243069 | 242266 | ** 2014 May 31 |
| 243070 | 242267 | ** |
| 243071 | 242268 | ** The author disclaims copyright to this source code. In place of |
| 243072 | 242269 | ** a legal notice, here is a blessing: |
| | @@ -252140,11 +251337,10 @@ |
| 252140 | 251337 | fts5StructureInvalidate(p); |
| 252141 | 251338 | } |
| 252142 | 251339 | return fts5IndexReturn(p); |
| 252143 | 251340 | } |
| 252144 | 251341 | |
| 252145 | | -#line 1 "fts5_main.c" |
| 252146 | 251342 | /* |
| 252147 | 251343 | ** 2014 Jun 09 |
| 252148 | 251344 | ** |
| 252149 | 251345 | ** The author disclaims copyright to this source code. In place of |
| 252150 | 251346 | ** a legal notice, here is a blessing: |
| | @@ -252775,10 +251971,11 @@ |
| 252775 | 251971 | ){ |
| 252776 | 251972 | /* A MATCH operator or equivalent */ |
| 252777 | 251973 | if( p->usable==0 || iCol<0 ){ |
| 252778 | 251974 | /* As there exists an unusable MATCH constraint this is an |
| 252779 | 251975 | ** unusable plan. Return SQLITE_CONSTRAINT. */ |
| 251976 | + idxStr[iIdxStr] = 0; |
| 252780 | 251977 | return SQLITE_CONSTRAINT; |
| 252781 | 251978 | }else{ |
| 252782 | 251979 | if( iCol==nCol+1 ){ |
| 252783 | 251980 | if( bSeenRank ) continue; |
| 252784 | 251981 | idxStr[iIdxStr++] = 'r'; |
| | @@ -255730,11 +254927,11 @@ |
| 255730 | 254927 | int nArg, /* Number of args */ |
| 255731 | 254928 | sqlite3_value **apUnused /* Function arguments */ |
| 255732 | 254929 | ){ |
| 255733 | 254930 | assert( nArg==0 ); |
| 255734 | 254931 | UNUSED_PARAM2(nArg, apUnused); |
| 255735 | | - sqlite3_result_text(pCtx, "fts5: 2024-11-06 12:58:31 5495b12569c318d5020b4b5a625a392ef8e777b81c0200624fbbc2a6b5eddef9", -1, SQLITE_TRANSIENT); |
| 254932 | + sqlite3_result_text(pCtx, "fts5: 2024-11-14 19:34:28 81202d2ab5963fdcf20555b6d0b31cc955ac27f1cd87656faea5c0611c9a2ee8", -1, SQLITE_TRANSIENT); |
| 255736 | 254933 | } |
| 255737 | 254934 | |
| 255738 | 254935 | /* |
| 255739 | 254936 | ** Implementation of fts5_locale(LOCALE, TEXT) function. |
| 255740 | 254937 | ** |
| | @@ -255983,11 +255180,10 @@ |
| 255983 | 255180 | SQLITE_PRIVATE int sqlite3Fts5Init(sqlite3 *db){ |
| 255984 | 255181 | return fts5Init(db); |
| 255985 | 255182 | } |
| 255986 | 255183 | #endif |
| 255987 | 255184 | |
| 255988 | | -#line 1 "fts5_storage.c" |
| 255989 | 255185 | /* |
| 255990 | 255186 | ** 2014 May 31 |
| 255991 | 255187 | ** |
| 255992 | 255188 | ** The author disclaims copyright to this source code. In place of |
| 255993 | 255189 | ** a legal notice, here is a blessing: |
| | @@ -257497,11 +256693,10 @@ |
| 257497 | 256693 | } |
| 257498 | 256694 | } |
| 257499 | 256695 | return rc; |
| 257500 | 256696 | } |
| 257501 | 256697 | |
| 257502 | | -#line 1 "fts5_tokenize.c" |
| 257503 | 256698 | /* |
| 257504 | 256699 | ** 2014 May 31 |
| 257505 | 256700 | ** |
| 257506 | 256701 | ** The author disclaims copyright to this source code. In place of |
| 257507 | 256702 | ** a legal notice, here is a blessing: |
| | @@ -258854,21 +258049,21 @@ |
| 258854 | 258049 | char aBuf[32]; |
| 258855 | 258050 | char *zOut = aBuf; |
| 258856 | 258051 | int ii; |
| 258857 | 258052 | const unsigned char *zIn = (const unsigned char*)pText; |
| 258858 | 258053 | const unsigned char *zEof = &zIn[nText]; |
| 258859 | | - u32 iCode; |
| 258054 | + u32 iCode = 0; |
| 258860 | 258055 | int aStart[3]; /* Input offset of each character in aBuf[] */ |
| 258861 | 258056 | |
| 258862 | 258057 | UNUSED_PARAM(unusedFlags); |
| 258863 | 258058 | |
| 258864 | 258059 | /* Populate aBuf[] with the characters for the first trigram. */ |
| 258865 | 258060 | for(ii=0; ii<3; ii++){ |
| 258866 | 258061 | do { |
| 258867 | 258062 | aStart[ii] = zIn - (const unsigned char*)pText; |
| 258063 | + if( zIn>=zEof ) return SQLITE_OK; |
| 258868 | 258064 | READ_UTF8(zIn, zEof, iCode); |
| 258869 | | - if( iCode==0 ) return SQLITE_OK; |
| 258870 | 258065 | if( p->bFold ) iCode = sqlite3Fts5UnicodeFold(iCode, p->iFoldParam); |
| 258871 | 258066 | }while( iCode==0 ); |
| 258872 | 258067 | WRITE_UTF8(zOut, iCode); |
| 258873 | 258068 | } |
| 258874 | 258069 | |
| | @@ -258885,12 +258080,15 @@ |
| 258885 | 258080 | const char *z1; |
| 258886 | 258081 | |
| 258887 | 258082 | /* Read characters from the input up until the first non-diacritic */ |
| 258888 | 258083 | do { |
| 258889 | 258084 | iNext = zIn - (const unsigned char*)pText; |
| 258085 | + if( zIn>=zEof ){ |
| 258086 | + iCode = 0; |
| 258087 | + break; |
| 258088 | + } |
| 258890 | 258089 | READ_UTF8(zIn, zEof, iCode); |
| 258891 | | - if( iCode==0 ) break; |
| 258892 | 258090 | if( p->bFold ) iCode = sqlite3Fts5UnicodeFold(iCode, p->iFoldParam); |
| 258893 | 258091 | }while( iCode==0 ); |
| 258894 | 258092 | |
| 258895 | 258093 | /* Pass the current trigram back to fts5 */ |
| 258896 | 258094 | rc = xToken(pCtx, 0, aBuf, zOut-aBuf, aStart[0], iNext); |
| | @@ -258986,11 +258184,10 @@ |
| 258986 | 258184 | ); |
| 258987 | 258185 | } |
| 258988 | 258186 | return rc; |
| 258989 | 258187 | } |
| 258990 | 258188 | |
| 258991 | | -#line 1 "fts5_unicode2.c" |
| 258992 | 258189 | /* |
| 258993 | 258190 | ** 2012-05-25 |
| 258994 | 258191 | ** |
| 258995 | 258192 | ** The author disclaims copyright to this source code. In place of |
| 258996 | 258193 | ** a legal notice, here is a blessing: |
| | @@ -259769,11 +258966,10 @@ |
| 259769 | 258966 | } |
| 259770 | 258967 | aAscii[0] = 0; /* 0x00 is never a token character */ |
| 259771 | 258968 | } |
| 259772 | 258969 | |
| 259773 | 258970 | |
| 259774 | | -#line 1 "fts5_varint.c" |
| 259775 | 258971 | /* |
| 259776 | 258972 | ** 2015 May 30 |
| 259777 | 258973 | ** |
| 259778 | 258974 | ** The author disclaims copyright to this source code. In place of |
| 259779 | 258975 | ** a legal notice, here is a blessing: |
| | @@ -260115,11 +259311,10 @@ |
| 260115 | 259311 | if( iVal<(1 << 21) ) return 3; |
| 260116 | 259312 | if( iVal<(1 << 28) ) return 4; |
| 260117 | 259313 | return 5; |
| 260118 | 259314 | } |
| 260119 | 259315 | |
| 260120 | | -#line 1 "fts5_vocab.c" |
| 260121 | 259316 | /* |
| 260122 | 259317 | ** 2015 May 08 |
| 260123 | 259318 | ** |
| 260124 | 259319 | ** The author disclaims copyright to this source code. In place of |
| 260125 | 259320 | ** a legal notice, here is a blessing: |
| | @@ -260931,11 +260126,10 @@ |
| 260931 | 260126 | /* Here ends the fts5.c composite file. */ |
| 260932 | 260127 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS5) */ |
| 260933 | 260128 | |
| 260934 | 260129 | /************** End of fts5.c ************************************************/ |
| 260935 | 260130 | /************** Begin file stmt.c ********************************************/ |
| 260936 | | -#line 1 "tsrc/stmt.c" |
| 260937 | 260131 | /* |
| 260938 | 260132 | ** 2017-05-31 |
| 260939 | 260133 | ** |
| 260940 | 260134 | ** The author disclaims copyright to this source code. In place of |
| 260941 | 260135 | ** a legal notice, here is a blessing: |
| 260942 | 260136 | |