Fossil SCM

Update the built-in SQLite and SQL command shell to the latest from upstream.

drh 2017-06-24 13:38 trunk
Commit 42d151cc64f1a2f8ce5d022b4d3796dafe33b59225cf282a8da082ada79de36b
3 files changed +56 -56 +875 -508 +1 -1
+56 -56
--- src/shell.c
+++ src/shell.c
@@ -726,10 +726,65 @@
726726
upr = mid-1;
727727
}
728728
}
729729
return 0;
730730
}
731
+
732
+/*
733
+** SQL function: shell_add_schema(S,X)
734
+**
735
+** Add the schema name X to the CREATE statement in S and return the result.
736
+** Examples:
737
+**
738
+** CREATE TABLE t1(x) -> CREATE TABLE xyz.t1(x);
739
+**
740
+** Also works on
741
+**
742
+** CREATE INDEX
743
+** CREATE UNIQUE INDEX
744
+** CREATE VIEW
745
+** CREATE TRIGGER
746
+** CREATE VIRTUAL TABLE
747
+**
748
+** This UDF is used by the .schema command to insert the schema name of
749
+** attached databases into the middle of the sqlite_master.sql field.
750
+*/
751
+static void shellAddSchemaName(
752
+ sqlite3_context *pCtx,
753
+ int nVal,
754
+ sqlite3_value **apVal
755
+){
756
+ static const char *aPrefix[] = {
757
+ "TABLE",
758
+ "INDEX",
759
+ "UNIQUE INDEX",
760
+ "VIEW",
761
+ "TRIGGER",
762
+ "VIRTUAL TABLE"
763
+ };
764
+ int i = 0;
765
+ const char *zIn = (const char*)sqlite3_value_text(apVal[0]);
766
+ const char *zSchema = (const char*)sqlite3_value_text(apVal[1]);
767
+ assert( nVal==2 );
768
+ if( zIn!=0 && strncmp(zIn, "CREATE ", 7)==0 ){
769
+ for(i=0; i<sizeof(aPrefix)/sizeof(aPrefix[0]); i++){
770
+ int n = strlen30(aPrefix[i]);
771
+ if( strncmp(zIn+7, aPrefix[i], n)==0 && zIn[n+7]==' ' ){
772
+ char cQuote = quoteChar(zSchema);
773
+ char *z;
774
+ if( cQuote ){
775
+ z = sqlite3_mprintf("%.*s \"%w\".%s", n+7, zIn, zSchema, zIn+n+8);
776
+ }else{
777
+ z = sqlite3_mprintf("%.*s %s.%s", n+7, zIn, zSchema, zIn+n+8);
778
+ }
779
+ sqlite3_result_text(pCtx, z, -1, sqlite3_free);
780
+ return;
781
+ }
782
+ }
783
+ }
784
+ sqlite3_result_value(pCtx, apVal[0]);
785
+}
731786
732787
/******************************************************************************
733788
** SHA3 hash implementation copied from ../ext/misc/shathree.c
734789
*/
735790
typedef sqlite3_uint64 u64;
@@ -1183,65 +1238,10 @@
11831238
p->u.x[i+p->nRate] = p->u.x[i^p->ixMask];
11841239
}
11851240
return &p->u.x[p->nRate];
11861241
}
11871242
1188
-/*
1189
-** SQL function: shell_add_schema(S,X)
1190
-**
1191
-** Add the schema name X to the CREATE statement in S and return the result.
1192
-** Examples:
1193
-**
1194
-** CREATE TABLE t1(x) -> CREATE TABLE xyz.t1(x);
1195
-**
1196
-** Also works on
1197
-**
1198
-** CREATE INDEX
1199
-** CREATE UNIQUE INDEX
1200
-** CREATE VIEW
1201
-** CREATE TRIGGER
1202
-** CREATE VIRTUAL TABLE
1203
-**
1204
-** This UDF is used by the .schema command to insert the schema name of
1205
-** attached databases into the middle of the sqlite_master.sql field.
1206
-*/
1207
-static void shellAddSchemaName(
1208
- sqlite3_context *pCtx,
1209
- int nVal,
1210
- sqlite3_value **apVal
1211
-){
1212
- static const char *aPrefix[] = {
1213
- "TABLE",
1214
- "INDEX",
1215
- "UNIQUE INDEX",
1216
- "VIEW",
1217
- "TRIGGER",
1218
- "VIRTUAL TABLE"
1219
- };
1220
- int i = 0;
1221
- const char *zIn = (const char*)sqlite3_value_text(apVal[0]);
1222
- const char *zSchema = (const char*)sqlite3_value_text(apVal[1]);
1223
- assert( nVal==2 );
1224
- if( zIn!=0 && strncmp(zIn, "CREATE ", 7)==0 ){
1225
- for(i=0; i<sizeof(aPrefix)/sizeof(aPrefix[0]); i++){
1226
- int n = strlen30(aPrefix[i]);
1227
- if( strncmp(zIn+7, aPrefix[i], n)==0 && zIn[n+7]==' ' ){
1228
- char cQuote = quoteChar(zSchema);
1229
- char *z;
1230
- if( cQuote ){
1231
- z = sqlite3_mprintf("%.*s \"%w\".%s", n+7, zIn, zSchema, zIn+n+8);
1232
- }else{
1233
- z = sqlite3_mprintf("%.*s %s.%s", n+7, zIn, zSchema, zIn+n+8);
1234
- }
1235
- sqlite3_result_text(pCtx, z, -1, sqlite3_free);
1236
- return;
1237
- }
1238
- }
1239
- }
1240
- sqlite3_result_value(pCtx, apVal[0]);
1241
-}
1242
-
12431243
/*
12441244
** Implementation of the sha3(X,SIZE) function.
12451245
**
12461246
** Return a BLOB which is the SIZE-bit SHA3 hash of X. The default
12471247
** size is 256. If X is a BLOB, it is hashed as is.
@@ -2361,11 +2361,11 @@
23612361
p->zDestTable = 0;
23622362
}
23632363
if( zName==0 ) return;
23642364
cQuote = quoteChar(zName);
23652365
n = strlen30(zName);
2366
- if( cQuote ) n += 2;
2366
+ if( cQuote ) n += n+2;
23672367
z = p->zDestTable = malloc( n+1 );
23682368
if( z==0 ){
23692369
raw_printf(stderr,"Error: out of memory\n");
23702370
exit(1);
23712371
}
23722372
--- src/shell.c
+++ src/shell.c
@@ -726,10 +726,65 @@
726 upr = mid-1;
727 }
728 }
729 return 0;
730 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
731
732 /******************************************************************************
733 ** SHA3 hash implementation copied from ../ext/misc/shathree.c
734 */
735 typedef sqlite3_uint64 u64;
@@ -1183,65 +1238,10 @@
1183 p->u.x[i+p->nRate] = p->u.x[i^p->ixMask];
1184 }
1185 return &p->u.x[p->nRate];
1186 }
1187
1188 /*
1189 ** SQL function: shell_add_schema(S,X)
1190 **
1191 ** Add the schema name X to the CREATE statement in S and return the result.
1192 ** Examples:
1193 **
1194 ** CREATE TABLE t1(x) -> CREATE TABLE xyz.t1(x);
1195 **
1196 ** Also works on
1197 **
1198 ** CREATE INDEX
1199 ** CREATE UNIQUE INDEX
1200 ** CREATE VIEW
1201 ** CREATE TRIGGER
1202 ** CREATE VIRTUAL TABLE
1203 **
1204 ** This UDF is used by the .schema command to insert the schema name of
1205 ** attached databases into the middle of the sqlite_master.sql field.
1206 */
1207 static void shellAddSchemaName(
1208 sqlite3_context *pCtx,
1209 int nVal,
1210 sqlite3_value **apVal
1211 ){
1212 static const char *aPrefix[] = {
1213 "TABLE",
1214 "INDEX",
1215 "UNIQUE INDEX",
1216 "VIEW",
1217 "TRIGGER",
1218 "VIRTUAL TABLE"
1219 };
1220 int i = 0;
1221 const char *zIn = (const char*)sqlite3_value_text(apVal[0]);
1222 const char *zSchema = (const char*)sqlite3_value_text(apVal[1]);
1223 assert( nVal==2 );
1224 if( zIn!=0 && strncmp(zIn, "CREATE ", 7)==0 ){
1225 for(i=0; i<sizeof(aPrefix)/sizeof(aPrefix[0]); i++){
1226 int n = strlen30(aPrefix[i]);
1227 if( strncmp(zIn+7, aPrefix[i], n)==0 && zIn[n+7]==' ' ){
1228 char cQuote = quoteChar(zSchema);
1229 char *z;
1230 if( cQuote ){
1231 z = sqlite3_mprintf("%.*s \"%w\".%s", n+7, zIn, zSchema, zIn+n+8);
1232 }else{
1233 z = sqlite3_mprintf("%.*s %s.%s", n+7, zIn, zSchema, zIn+n+8);
1234 }
1235 sqlite3_result_text(pCtx, z, -1, sqlite3_free);
1236 return;
1237 }
1238 }
1239 }
1240 sqlite3_result_value(pCtx, apVal[0]);
1241 }
1242
1243 /*
1244 ** Implementation of the sha3(X,SIZE) function.
1245 **
1246 ** Return a BLOB which is the SIZE-bit SHA3 hash of X. The default
1247 ** size is 256. If X is a BLOB, it is hashed as is.
@@ -2361,11 +2361,11 @@
2361 p->zDestTable = 0;
2362 }
2363 if( zName==0 ) return;
2364 cQuote = quoteChar(zName);
2365 n = strlen30(zName);
2366 if( cQuote ) n += 2;
2367 z = p->zDestTable = malloc( n+1 );
2368 if( z==0 ){
2369 raw_printf(stderr,"Error: out of memory\n");
2370 exit(1);
2371 }
2372
--- src/shell.c
+++ src/shell.c
@@ -726,10 +726,65 @@
726 upr = mid-1;
727 }
728 }
729 return 0;
730 }
731
732 /*
733 ** SQL function: shell_add_schema(S,X)
734 **
735 ** Add the schema name X to the CREATE statement in S and return the result.
736 ** Examples:
737 **
738 ** CREATE TABLE t1(x) -> CREATE TABLE xyz.t1(x);
739 **
740 ** Also works on
741 **
742 ** CREATE INDEX
743 ** CREATE UNIQUE INDEX
744 ** CREATE VIEW
745 ** CREATE TRIGGER
746 ** CREATE VIRTUAL TABLE
747 **
748 ** This UDF is used by the .schema command to insert the schema name of
749 ** attached databases into the middle of the sqlite_master.sql field.
750 */
751 static void shellAddSchemaName(
752 sqlite3_context *pCtx,
753 int nVal,
754 sqlite3_value **apVal
755 ){
756 static const char *aPrefix[] = {
757 "TABLE",
758 "INDEX",
759 "UNIQUE INDEX",
760 "VIEW",
761 "TRIGGER",
762 "VIRTUAL TABLE"
763 };
764 int i = 0;
765 const char *zIn = (const char*)sqlite3_value_text(apVal[0]);
766 const char *zSchema = (const char*)sqlite3_value_text(apVal[1]);
767 assert( nVal==2 );
768 if( zIn!=0 && strncmp(zIn, "CREATE ", 7)==0 ){
769 for(i=0; i<sizeof(aPrefix)/sizeof(aPrefix[0]); i++){
770 int n = strlen30(aPrefix[i]);
771 if( strncmp(zIn+7, aPrefix[i], n)==0 && zIn[n+7]==' ' ){
772 char cQuote = quoteChar(zSchema);
773 char *z;
774 if( cQuote ){
775 z = sqlite3_mprintf("%.*s \"%w\".%s", n+7, zIn, zSchema, zIn+n+8);
776 }else{
777 z = sqlite3_mprintf("%.*s %s.%s", n+7, zIn, zSchema, zIn+n+8);
778 }
779 sqlite3_result_text(pCtx, z, -1, sqlite3_free);
780 return;
781 }
782 }
783 }
784 sqlite3_result_value(pCtx, apVal[0]);
785 }
786
787 /******************************************************************************
788 ** SHA3 hash implementation copied from ../ext/misc/shathree.c
789 */
790 typedef sqlite3_uint64 u64;
@@ -1183,65 +1238,10 @@
1238 p->u.x[i+p->nRate] = p->u.x[i^p->ixMask];
1239 }
1240 return &p->u.x[p->nRate];
1241 }
1242
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1243 /*
1244 ** Implementation of the sha3(X,SIZE) function.
1245 **
1246 ** Return a BLOB which is the SIZE-bit SHA3 hash of X. The default
1247 ** size is 256. If X is a BLOB, it is hashed as is.
@@ -2361,11 +2361,11 @@
2361 p->zDestTable = 0;
2362 }
2363 if( zName==0 ) return;
2364 cQuote = quoteChar(zName);
2365 n = strlen30(zName);
2366 if( cQuote ) n += n+2;
2367 z = p->zDestTable = malloc( n+1 );
2368 if( z==0 ){
2369 raw_printf(stderr,"Error: out of memory\n");
2370 exit(1);
2371 }
2372
+875 -508
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -20,10 +20,748 @@
2020
#define SQLITE_CORE 1
2121
#define SQLITE_AMALGAMATION 1
2222
#ifndef SQLITE_PRIVATE
2323
# define SQLITE_PRIVATE static
2424
#endif
25
+/************** Begin file ctime.c *******************************************/
26
+/*
27
+** 2010 February 23
28
+**
29
+** The author disclaims copyright to this source code. In place of
30
+** a legal notice, here is a blessing:
31
+**
32
+** May you do good and not evil.
33
+** May you find forgiveness for yourself and forgive others.
34
+** May you share freely, never taking more than you give.
35
+**
36
+*************************************************************************
37
+**
38
+** This file implements routines used to report what compile-time options
39
+** SQLite was built with.
40
+*/
41
+
42
+#ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS
43
+
44
+
45
+/* These macros are provided to "stringify" the value of the define
46
+** for those options in which the value is meaningful. */
47
+#define CTIMEOPT_VAL_(opt) #opt
48
+#define CTIMEOPT_VAL(opt) CTIMEOPT_VAL_(opt)
49
+
50
+/*
51
+** An array of names of all compile-time options. This array should
52
+** be sorted A-Z.
53
+**
54
+** This array looks large, but in a typical installation actually uses
55
+** only a handful of compile-time options, so most times this array is usually
56
+** rather short and uses little memory space.
57
+*/
58
+static const char * const sqlite3azCompileOpt[] = {
59
+
60
+/*
61
+** BEGIN CODE GENERATED BY tool/mkctime.tcl
62
+*/
63
+#if SQLITE_32BIT_ROWID
64
+ "32BIT_ROWID",
65
+#endif
66
+#if SQLITE_4_BYTE_ALIGNED_MALLOC
67
+ "4_BYTE_ALIGNED_MALLOC",
68
+#endif
69
+#if SQLITE_64BIT_STATS
70
+ "64BIT_STATS",
71
+#endif
72
+#if SQLITE_ALLOW_COVERING_INDEX_SCAN
73
+ "ALLOW_COVERING_INDEX_SCAN",
74
+#endif
75
+#if SQLITE_ALLOW_URI_AUTHORITY
76
+ "ALLOW_URI_AUTHORITY",
77
+#endif
78
+#ifdef SQLITE_BITMASK_TYPE
79
+ "BITMASK_TYPE=" CTIMEOPT_VAL(SQLITE_BITMASK_TYPE),
80
+#endif
81
+#if SQLITE_BUG_COMPATIBLE_20160819
82
+ "BUG_COMPATIBLE_20160819",
83
+#endif
84
+#if SQLITE_CASE_SENSITIVE_LIKE
85
+ "CASE_SENSITIVE_LIKE",
86
+#endif
87
+#if SQLITE_CHECK_PAGES
88
+ "CHECK_PAGES",
89
+#endif
90
+#if defined(__clang__) && defined(__clang_major__)
91
+ "COMPILER=clang-" CTIMEOPT_VAL(__clang_major__) "."
92
+ CTIMEOPT_VAL(__clang_minor__) "."
93
+ CTIMEOPT_VAL(__clang_patchlevel__),
94
+#elif defined(_MSC_VER)
95
+ "COMPILER=msvc-" CTIMEOPT_VAL(_MSC_VER),
96
+#elif defined(__GNUC__) && defined(__VERSION__)
97
+ "COMPILER=gcc-" __VERSION__,
98
+#endif
99
+#if SQLITE_COVERAGE_TEST
100
+ "COVERAGE_TEST",
101
+#endif
102
+#if SQLITE_DEBUG
103
+ "DEBUG",
104
+#endif
105
+#if SQLITE_DEFAULT_AUTOMATIC_INDEX
106
+ "DEFAULT_AUTOMATIC_INDEX",
107
+#endif
108
+#if SQLITE_DEFAULT_AUTOVACUUM
109
+ "DEFAULT_AUTOVACUUM",
110
+#endif
111
+#ifdef SQLITE_DEFAULT_CACHE_SIZE
112
+ "DEFAULT_CACHE_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_CACHE_SIZE),
113
+#endif
114
+#if SQLITE_DEFAULT_CKPTFULLFSYNC
115
+ "DEFAULT_CKPTFULLFSYNC",
116
+#endif
117
+#ifdef SQLITE_DEFAULT_FILE_FORMAT
118
+ "DEFAULT_FILE_FORMAT=" CTIMEOPT_VAL(SQLITE_DEFAULT_FILE_FORMAT),
119
+#endif
120
+#ifdef SQLITE_DEFAULT_FILE_PERMISSIONS
121
+ "DEFAULT_FILE_PERMISSIONS=" CTIMEOPT_VAL(SQLITE_DEFAULT_FILE_PERMISSIONS),
122
+#endif
123
+#if SQLITE_DEFAULT_FOREIGN_KEYS
124
+ "DEFAULT_FOREIGN_KEYS",
125
+#endif
126
+#ifdef SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT
127
+ "DEFAULT_JOURNAL_SIZE_LIMIT=" CTIMEOPT_VAL(SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT),
128
+#endif
129
+#ifdef SQLITE_DEFAULT_LOCKING_MODE
130
+ "DEFAULT_LOCKING_MODE=" CTIMEOPT_VAL(SQLITE_DEFAULT_LOCKING_MODE),
131
+#endif
132
+#ifdef SQLITE_DEFAULT_LOOKASIDE
133
+ "DEFAULT_LOOKASIDE=" CTIMEOPT_VAL(SQLITE_DEFAULT_LOOKASIDE),
134
+#endif
135
+#if SQLITE_DEFAULT_MEMSTATUS
136
+ "DEFAULT_MEMSTATUS",
137
+#endif
138
+#ifdef SQLITE_DEFAULT_MMAP_SIZE
139
+ "DEFAULT_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_MMAP_SIZE),
140
+#endif
141
+#ifdef SQLITE_DEFAULT_PAGE_SIZE
142
+ "DEFAULT_PAGE_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_PAGE_SIZE),
143
+#endif
144
+#ifdef SQLITE_DEFAULT_PCACHE_INITSZ
145
+ "DEFAULT_PCACHE_INITSZ=" CTIMEOPT_VAL(SQLITE_DEFAULT_PCACHE_INITSZ),
146
+#endif
147
+#ifdef SQLITE_DEFAULT_PROXYDIR_PERMISSIONS
148
+ "DEFAULT_PROXYDIR_PERMISSIONS=" CTIMEOPT_VAL(SQLITE_DEFAULT_PROXYDIR_PERMISSIONS),
149
+#endif
150
+#if SQLITE_DEFAULT_RECURSIVE_TRIGGERS
151
+ "DEFAULT_RECURSIVE_TRIGGERS",
152
+#endif
153
+#ifdef SQLITE_DEFAULT_ROWEST
154
+ "DEFAULT_ROWEST=" CTIMEOPT_VAL(SQLITE_DEFAULT_ROWEST),
155
+#endif
156
+#ifdef SQLITE_DEFAULT_SECTOR_SIZE
157
+ "DEFAULT_SECTOR_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_SECTOR_SIZE),
158
+#endif
159
+#ifdef SQLITE_DEFAULT_SYNCHRONOUS
160
+ "DEFAULT_SYNCHRONOUS=" CTIMEOPT_VAL(SQLITE_DEFAULT_SYNCHRONOUS),
161
+#endif
162
+#ifdef SQLITE_DEFAULT_WAL_AUTOCHECKPOINT
163
+ "DEFAULT_WAL_AUTOCHECKPOINT=" CTIMEOPT_VAL(SQLITE_DEFAULT_WAL_AUTOCHECKPOINT),
164
+#endif
165
+#ifdef SQLITE_DEFAULT_WAL_SYNCHRONOUS
166
+ "DEFAULT_WAL_SYNCHRONOUS=" CTIMEOPT_VAL(SQLITE_DEFAULT_WAL_SYNCHRONOUS),
167
+#endif
168
+#ifdef SQLITE_DEFAULT_WORKER_THREADS
169
+ "DEFAULT_WORKER_THREADS=" CTIMEOPT_VAL(SQLITE_DEFAULT_WORKER_THREADS),
170
+#endif
171
+#if SQLITE_DIRECT_OVERFLOW_READ
172
+ "DIRECT_OVERFLOW_READ",
173
+#endif
174
+#if SQLITE_DISABLE_DIRSYNC
175
+ "DISABLE_DIRSYNC",
176
+#endif
177
+#if SQLITE_DISABLE_FTS3_UNICODE
178
+ "DISABLE_FTS3_UNICODE",
179
+#endif
180
+#if SQLITE_DISABLE_FTS4_DEFERRED
181
+ "DISABLE_FTS4_DEFERRED",
182
+#endif
183
+#if SQLITE_DISABLE_INTRINSIC
184
+ "DISABLE_INTRINSIC",
185
+#endif
186
+#if SQLITE_DISABLE_LFS
187
+ "DISABLE_LFS",
188
+#endif
189
+#if SQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS
190
+ "DISABLE_PAGECACHE_OVERFLOW_STATS",
191
+#endif
192
+#if SQLITE_DISABLE_SKIPAHEAD_DISTINCT
193
+ "DISABLE_SKIPAHEAD_DISTINCT",
194
+#endif
195
+#ifdef SQLITE_ENABLE_8_3_NAMES
196
+ "ENABLE_8_3_NAMES=" CTIMEOPT_VAL(SQLITE_ENABLE_8_3_NAMES),
197
+#endif
198
+#if SQLITE_ENABLE_API_ARMOR
199
+ "ENABLE_API_ARMOR",
200
+#endif
201
+#if SQLITE_ENABLE_ATOMIC_WRITE
202
+ "ENABLE_ATOMIC_WRITE",
203
+#endif
204
+#if SQLITE_ENABLE_CEROD
205
+ "ENABLE_CEROD",
206
+#endif
207
+#if SQLITE_ENABLE_COLUMN_METADATA
208
+ "ENABLE_COLUMN_METADATA",
209
+#endif
210
+#if SQLITE_ENABLE_COLUMN_USED_MASK
211
+ "ENABLE_COLUMN_USED_MASK",
212
+#endif
213
+#if SQLITE_ENABLE_COSTMULT
214
+ "ENABLE_COSTMULT",
215
+#endif
216
+#if SQLITE_ENABLE_CURSOR_HINTS
217
+ "ENABLE_CURSOR_HINTS",
218
+#endif
219
+#if SQLITE_ENABLE_DBSTAT_VTAB
220
+ "ENABLE_DBSTAT_VTAB",
221
+#endif
222
+#if SQLITE_ENABLE_EXPENSIVE_ASSERT
223
+ "ENABLE_EXPENSIVE_ASSERT",
224
+#endif
225
+#if SQLITE_ENABLE_FTS1
226
+ "ENABLE_FTS1",
227
+#endif
228
+#if SQLITE_ENABLE_FTS2
229
+ "ENABLE_FTS2",
230
+#endif
231
+#if SQLITE_ENABLE_FTS3
232
+ "ENABLE_FTS3",
233
+#endif
234
+#if SQLITE_ENABLE_FTS3_PARENTHESIS
235
+ "ENABLE_FTS3_PARENTHESIS",
236
+#endif
237
+#if SQLITE_ENABLE_FTS3_TOKENIZER
238
+ "ENABLE_FTS3_TOKENIZER",
239
+#endif
240
+#if SQLITE_ENABLE_FTS4
241
+ "ENABLE_FTS4",
242
+#endif
243
+#if SQLITE_ENABLE_FTS5
244
+ "ENABLE_FTS5",
245
+#endif
246
+#if SQLITE_ENABLE_HIDDEN_COLUMNS
247
+ "ENABLE_HIDDEN_COLUMNS",
248
+#endif
249
+#if SQLITE_ENABLE_ICU
250
+ "ENABLE_ICU",
251
+#endif
252
+#if SQLITE_ENABLE_IOTRACE
253
+ "ENABLE_IOTRACE",
254
+#endif
255
+#if SQLITE_ENABLE_JSON1
256
+ "ENABLE_JSON1",
257
+#endif
258
+#if SQLITE_ENABLE_LOAD_EXTENSION
259
+ "ENABLE_LOAD_EXTENSION",
260
+#endif
261
+#ifdef SQLITE_ENABLE_LOCKING_STYLE
262
+ "ENABLE_LOCKING_STYLE=" CTIMEOPT_VAL(SQLITE_ENABLE_LOCKING_STYLE),
263
+#endif
264
+#if SQLITE_ENABLE_MEMORY_MANAGEMENT
265
+ "ENABLE_MEMORY_MANAGEMENT",
266
+#endif
267
+#if SQLITE_ENABLE_MEMSYS3
268
+ "ENABLE_MEMSYS3",
269
+#endif
270
+#if SQLITE_ENABLE_MEMSYS5
271
+ "ENABLE_MEMSYS5",
272
+#endif
273
+#if SQLITE_ENABLE_MULTIPLEX
274
+ "ENABLE_MULTIPLEX",
275
+#endif
276
+#if SQLITE_ENABLE_NULL_TRIM
277
+ "ENABLE_NULL_TRIM",
278
+#endif
279
+#if SQLITE_ENABLE_OVERSIZE_CELL_CHECK
280
+ "ENABLE_OVERSIZE_CELL_CHECK",
281
+#endif
282
+#if SQLITE_ENABLE_PREUPDATE_HOOK
283
+ "ENABLE_PREUPDATE_HOOK",
284
+#endif
285
+#if SQLITE_ENABLE_RBU
286
+ "ENABLE_RBU",
287
+#endif
288
+#if SQLITE_ENABLE_RTREE
289
+ "ENABLE_RTREE",
290
+#endif
291
+#if SQLITE_ENABLE_SELECTTRACE
292
+ "ENABLE_SELECTTRACE",
293
+#endif
294
+#if SQLITE_ENABLE_SESSION
295
+ "ENABLE_SESSION",
296
+#endif
297
+#if SQLITE_ENABLE_SNAPSHOT
298
+ "ENABLE_SNAPSHOT",
299
+#endif
300
+#if SQLITE_ENABLE_SQLLOG
301
+ "ENABLE_SQLLOG",
302
+#endif
303
+#if defined(SQLITE_ENABLE_STAT4)
304
+ "ENABLE_STAT4",
305
+#elif defined(SQLITE_ENABLE_STAT3)
306
+ "ENABLE_STAT3",
307
+#endif
308
+#if SQLITE_ENABLE_STMT_SCANSTATUS
309
+ "ENABLE_STMT_SCANSTATUS",
310
+#endif
311
+#if SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
312
+ "ENABLE_UNKNOWN_SQL_FUNCTION",
313
+#endif
314
+#if SQLITE_ENABLE_UNLOCK_NOTIFY
315
+ "ENABLE_UNLOCK_NOTIFY",
316
+#endif
317
+#if SQLITE_ENABLE_UPDATE_DELETE_LIMIT
318
+ "ENABLE_UPDATE_DELETE_LIMIT",
319
+#endif
320
+#if SQLITE_ENABLE_URI_00_ERROR
321
+ "ENABLE_URI_00_ERROR",
322
+#endif
323
+#if SQLITE_ENABLE_VFSTRACE
324
+ "ENABLE_VFSTRACE",
325
+#endif
326
+#if SQLITE_ENABLE_WHERETRACE
327
+ "ENABLE_WHERETRACE",
328
+#endif
329
+#if SQLITE_ENABLE_ZIPVFS
330
+ "ENABLE_ZIPVFS",
331
+#endif
332
+#if SQLITE_EXPLAIN_ESTIMATED_ROWS
333
+ "EXPLAIN_ESTIMATED_ROWS",
334
+#endif
335
+#if SQLITE_EXTRA_IFNULLROW
336
+ "EXTRA_IFNULLROW",
337
+#endif
338
+#ifdef SQLITE_EXTRA_INIT
339
+ "EXTRA_INIT=" CTIMEOPT_VAL(SQLITE_EXTRA_INIT),
340
+#endif
341
+#ifdef SQLITE_EXTRA_SHUTDOWN
342
+ "EXTRA_SHUTDOWN=" CTIMEOPT_VAL(SQLITE_EXTRA_SHUTDOWN),
343
+#endif
344
+#ifdef SQLITE_FTS3_MAX_EXPR_DEPTH
345
+ "FTS3_MAX_EXPR_DEPTH=" CTIMEOPT_VAL(SQLITE_FTS3_MAX_EXPR_DEPTH),
346
+#endif
347
+#if SQLITE_FTS5_ENABLE_TEST_MI
348
+ "FTS5_ENABLE_TEST_MI",
349
+#endif
350
+#if SQLITE_FTS5_NO_WITHOUT_ROWID
351
+ "FTS5_NO_WITHOUT_ROWID",
352
+#endif
353
+#if SQLITE_HAS_CODEC
354
+ "HAS_CODEC",
355
+#endif
356
+#if HAVE_ISNAN || SQLITE_HAVE_ISNAN
357
+ "HAVE_ISNAN",
358
+#endif
359
+#if SQLITE_HOMEGROWN_RECURSIVE_MUTEX
360
+ "HOMEGROWN_RECURSIVE_MUTEX",
361
+#endif
362
+#if SQLITE_IGNORE_AFP_LOCK_ERRORS
363
+ "IGNORE_AFP_LOCK_ERRORS",
364
+#endif
365
+#if SQLITE_IGNORE_FLOCK_LOCK_ERRORS
366
+ "IGNORE_FLOCK_LOCK_ERRORS",
367
+#endif
368
+#if SQLITE_INLINE_MEMCPY
369
+ "INLINE_MEMCPY",
370
+#endif
371
+#if SQLITE_INT64_TYPE
372
+ "INT64_TYPE",
373
+#endif
374
+#ifdef SQLITE_INTEGRITY_CHECK_ERROR_MAX
375
+ "INTEGRITY_CHECK_ERROR_MAX=" CTIMEOPT_VAL(SQLITE_INTEGRITY_CHECK_ERROR_MAX),
376
+#endif
377
+#if SQLITE_LIKE_DOESNT_MATCH_BLOBS
378
+ "LIKE_DOESNT_MATCH_BLOBS",
379
+#endif
380
+#if SQLITE_LOCK_TRACE
381
+ "LOCK_TRACE",
382
+#endif
383
+#if SQLITE_LOG_CACHE_SPILL
384
+ "LOG_CACHE_SPILL",
385
+#endif
386
+#ifdef SQLITE_MALLOC_SOFT_LIMIT
387
+ "MALLOC_SOFT_LIMIT=" CTIMEOPT_VAL(SQLITE_MALLOC_SOFT_LIMIT),
388
+#endif
389
+#ifdef SQLITE_MAX_ATTACHED
390
+ "MAX_ATTACHED=" CTIMEOPT_VAL(SQLITE_MAX_ATTACHED),
391
+#endif
392
+#ifdef SQLITE_MAX_COLUMN
393
+ "MAX_COLUMN=" CTIMEOPT_VAL(SQLITE_MAX_COLUMN),
394
+#endif
395
+#ifdef SQLITE_MAX_COMPOUND_SELECT
396
+ "MAX_COMPOUND_SELECT=" CTIMEOPT_VAL(SQLITE_MAX_COMPOUND_SELECT),
397
+#endif
398
+#ifdef SQLITE_MAX_DEFAULT_PAGE_SIZE
399
+ "MAX_DEFAULT_PAGE_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_DEFAULT_PAGE_SIZE),
400
+#endif
401
+#ifdef SQLITE_MAX_EXPR_DEPTH
402
+ "MAX_EXPR_DEPTH=" CTIMEOPT_VAL(SQLITE_MAX_EXPR_DEPTH),
403
+#endif
404
+#ifdef SQLITE_MAX_FUNCTION_ARG
405
+ "MAX_FUNCTION_ARG=" CTIMEOPT_VAL(SQLITE_MAX_FUNCTION_ARG),
406
+#endif
407
+#ifdef SQLITE_MAX_LENGTH
408
+ "MAX_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_LENGTH),
409
+#endif
410
+#ifdef SQLITE_MAX_LIKE_PATTERN_LENGTH
411
+ "MAX_LIKE_PATTERN_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_LIKE_PATTERN_LENGTH),
412
+#endif
413
+#ifdef SQLITE_MAX_MEMORY
414
+ "MAX_MEMORY=" CTIMEOPT_VAL(SQLITE_MAX_MEMORY),
415
+#endif
416
+#ifdef SQLITE_MAX_MMAP_SIZE
417
+ "MAX_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_MMAP_SIZE),
418
+#endif
419
+#ifdef SQLITE_MAX_MMAP_SIZE_
420
+ "MAX_MMAP_SIZE_=" CTIMEOPT_VAL(SQLITE_MAX_MMAP_SIZE_),
421
+#endif
422
+#ifdef SQLITE_MAX_PAGE_COUNT
423
+ "MAX_PAGE_COUNT=" CTIMEOPT_VAL(SQLITE_MAX_PAGE_COUNT),
424
+#endif
425
+#ifdef SQLITE_MAX_PAGE_SIZE
426
+ "MAX_PAGE_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_PAGE_SIZE),
427
+#endif
428
+#ifdef SQLITE_MAX_SCHEMA_RETRY
429
+ "MAX_SCHEMA_RETRY=" CTIMEOPT_VAL(SQLITE_MAX_SCHEMA_RETRY),
430
+#endif
431
+#ifdef SQLITE_MAX_SQL_LENGTH
432
+ "MAX_SQL_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_SQL_LENGTH),
433
+#endif
434
+#ifdef SQLITE_MAX_TRIGGER_DEPTH
435
+ "MAX_TRIGGER_DEPTH=" CTIMEOPT_VAL(SQLITE_MAX_TRIGGER_DEPTH),
436
+#endif
437
+#ifdef SQLITE_MAX_VARIABLE_NUMBER
438
+ "MAX_VARIABLE_NUMBER=" CTIMEOPT_VAL(SQLITE_MAX_VARIABLE_NUMBER),
439
+#endif
440
+#ifdef SQLITE_MAX_VDBE_OP
441
+ "MAX_VDBE_OP=" CTIMEOPT_VAL(SQLITE_MAX_VDBE_OP),
442
+#endif
443
+#ifdef SQLITE_MAX_WORKER_THREADS
444
+ "MAX_WORKER_THREADS=" CTIMEOPT_VAL(SQLITE_MAX_WORKER_THREADS),
445
+#endif
446
+#if SQLITE_MEMDEBUG
447
+ "MEMDEBUG",
448
+#endif
449
+#if SQLITE_MIXED_ENDIAN_64BIT_FLOAT
450
+ "MIXED_ENDIAN_64BIT_FLOAT",
451
+#endif
452
+#if SQLITE_MMAP_READWRITE
453
+ "MMAP_READWRITE",
454
+#endif
455
+#if SQLITE_MUTEX_NOOP
456
+ "MUTEX_NOOP",
457
+#endif
458
+#if SQLITE_MUTEX_NREF
459
+ "MUTEX_NREF",
460
+#endif
461
+#if SQLITE_MUTEX_OMIT
462
+ "MUTEX_OMIT",
463
+#endif
464
+#if SQLITE_MUTEX_PTHREADS
465
+ "MUTEX_PTHREADS",
466
+#endif
467
+#if SQLITE_MUTEX_W32
468
+ "MUTEX_W32",
469
+#endif
470
+#if SQLITE_NEED_ERR_NAME
471
+ "NEED_ERR_NAME",
472
+#endif
473
+#if SQLITE_NOINLINE
474
+ "NOINLINE",
475
+#endif
476
+#if SQLITE_NO_SYNC
477
+ "NO_SYNC",
478
+#endif
479
+#if SQLITE_OMIT_ALTERTABLE
480
+ "OMIT_ALTERTABLE",
481
+#endif
482
+#if SQLITE_OMIT_ANALYZE
483
+ "OMIT_ANALYZE",
484
+#endif
485
+#if SQLITE_OMIT_ATTACH
486
+ "OMIT_ATTACH",
487
+#endif
488
+#if SQLITE_OMIT_AUTHORIZATION
489
+ "OMIT_AUTHORIZATION",
490
+#endif
491
+#if SQLITE_OMIT_AUTOINCREMENT
492
+ "OMIT_AUTOINCREMENT",
493
+#endif
494
+#if SQLITE_OMIT_AUTOINIT
495
+ "OMIT_AUTOINIT",
496
+#endif
497
+#if SQLITE_OMIT_AUTOMATIC_INDEX
498
+ "OMIT_AUTOMATIC_INDEX",
499
+#endif
500
+#if SQLITE_OMIT_AUTORESET
501
+ "OMIT_AUTORESET",
502
+#endif
503
+#if SQLITE_OMIT_AUTOVACUUM
504
+ "OMIT_AUTOVACUUM",
505
+#endif
506
+#if SQLITE_OMIT_BETWEEN_OPTIMIZATION
507
+ "OMIT_BETWEEN_OPTIMIZATION",
508
+#endif
509
+#if SQLITE_OMIT_BLOB_LITERAL
510
+ "OMIT_BLOB_LITERAL",
511
+#endif
512
+#if SQLITE_OMIT_BTREECOUNT
513
+ "OMIT_BTREECOUNT",
514
+#endif
515
+#if SQLITE_OMIT_CAST
516
+ "OMIT_CAST",
517
+#endif
518
+#if SQLITE_OMIT_CHECK
519
+ "OMIT_CHECK",
520
+#endif
521
+#if SQLITE_OMIT_COMPLETE
522
+ "OMIT_COMPLETE",
523
+#endif
524
+#if SQLITE_OMIT_COMPOUND_SELECT
525
+ "OMIT_COMPOUND_SELECT",
526
+#endif
527
+#if SQLITE_OMIT_CONFLICT_CLAUSE
528
+ "OMIT_CONFLICT_CLAUSE",
529
+#endif
530
+#if SQLITE_OMIT_CTE
531
+ "OMIT_CTE",
532
+#endif
533
+#if SQLITE_OMIT_DATETIME_FUNCS
534
+ "OMIT_DATETIME_FUNCS",
535
+#endif
536
+#if SQLITE_OMIT_DECLTYPE
537
+ "OMIT_DECLTYPE",
538
+#endif
539
+#if SQLITE_OMIT_DEPRECATED
540
+ "OMIT_DEPRECATED",
541
+#endif
542
+#if SQLITE_OMIT_DISKIO
543
+ "OMIT_DISKIO",
544
+#endif
545
+#if SQLITE_OMIT_EXPLAIN
546
+ "OMIT_EXPLAIN",
547
+#endif
548
+#if SQLITE_OMIT_FLAG_PRAGMAS
549
+ "OMIT_FLAG_PRAGMAS",
550
+#endif
551
+#if SQLITE_OMIT_FLOATING_POINT
552
+ "OMIT_FLOATING_POINT",
553
+#endif
554
+#if SQLITE_OMIT_FOREIGN_KEY
555
+ "OMIT_FOREIGN_KEY",
556
+#endif
557
+#if SQLITE_OMIT_GET_TABLE
558
+ "OMIT_GET_TABLE",
559
+#endif
560
+#if SQLITE_OMIT_HEX_INTEGER
561
+ "OMIT_HEX_INTEGER",
562
+#endif
563
+#if SQLITE_OMIT_INCRBLOB
564
+ "OMIT_INCRBLOB",
565
+#endif
566
+#if SQLITE_OMIT_INTEGRITY_CHECK
567
+ "OMIT_INTEGRITY_CHECK",
568
+#endif
569
+#if SQLITE_OMIT_LIKE_OPTIMIZATION
570
+ "OMIT_LIKE_OPTIMIZATION",
571
+#endif
572
+#if SQLITE_OMIT_LOAD_EXTENSION
573
+ "OMIT_LOAD_EXTENSION",
574
+#endif
575
+#if SQLITE_OMIT_LOCALTIME
576
+ "OMIT_LOCALTIME",
577
+#endif
578
+#if SQLITE_OMIT_LOOKASIDE
579
+ "OMIT_LOOKASIDE",
580
+#endif
581
+#if SQLITE_OMIT_MEMORYDB
582
+ "OMIT_MEMORYDB",
583
+#endif
584
+#if SQLITE_OMIT_OR_OPTIMIZATION
585
+ "OMIT_OR_OPTIMIZATION",
586
+#endif
587
+#if SQLITE_OMIT_PAGER_PRAGMAS
588
+ "OMIT_PAGER_PRAGMAS",
589
+#endif
590
+#if SQLITE_OMIT_PARSER_TRACE
591
+ "OMIT_PARSER_TRACE",
592
+#endif
593
+#if SQLITE_OMIT_POPEN
594
+ "OMIT_POPEN",
595
+#endif
596
+#if SQLITE_OMIT_PRAGMA
597
+ "OMIT_PRAGMA",
598
+#endif
599
+#if SQLITE_OMIT_PROGRESS_CALLBACK
600
+ "OMIT_PROGRESS_CALLBACK",
601
+#endif
602
+#if SQLITE_OMIT_QUICKBALANCE
603
+ "OMIT_QUICKBALANCE",
604
+#endif
605
+#if SQLITE_OMIT_REINDEX
606
+ "OMIT_REINDEX",
607
+#endif
608
+#if SQLITE_OMIT_SCHEMA_PRAGMAS
609
+ "OMIT_SCHEMA_PRAGMAS",
610
+#endif
611
+#if SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS
612
+ "OMIT_SCHEMA_VERSION_PRAGMAS",
613
+#endif
614
+#if SQLITE_OMIT_SHARED_CACHE
615
+ "OMIT_SHARED_CACHE",
616
+#endif
617
+#if SQLITE_OMIT_SHUTDOWN_DIRECTORIES
618
+ "OMIT_SHUTDOWN_DIRECTORIES",
619
+#endif
620
+#if SQLITE_OMIT_SUBQUERY
621
+ "OMIT_SUBQUERY",
622
+#endif
623
+#if SQLITE_OMIT_TCL_VARIABLE
624
+ "OMIT_TCL_VARIABLE",
625
+#endif
626
+#if SQLITE_OMIT_TEMPDB
627
+ "OMIT_TEMPDB",
628
+#endif
629
+#if SQLITE_OMIT_TEST_CONTROL
630
+ "OMIT_TEST_CONTROL",
631
+#endif
632
+#if SQLITE_OMIT_TRACE
633
+ "OMIT_TRACE",
634
+#endif
635
+#if SQLITE_OMIT_TRIGGER
636
+ "OMIT_TRIGGER",
637
+#endif
638
+#if SQLITE_OMIT_TRUNCATE_OPTIMIZATION
639
+ "OMIT_TRUNCATE_OPTIMIZATION",
640
+#endif
641
+#if SQLITE_OMIT_UTF16
642
+ "OMIT_UTF16",
643
+#endif
644
+#if SQLITE_OMIT_VACUUM
645
+ "OMIT_VACUUM",
646
+#endif
647
+#if SQLITE_OMIT_VIEW
648
+ "OMIT_VIEW",
649
+#endif
650
+#if SQLITE_OMIT_VIRTUALTABLE
651
+ "OMIT_VIRTUALTABLE",
652
+#endif
653
+#if SQLITE_OMIT_WAL
654
+ "OMIT_WAL",
655
+#endif
656
+#if SQLITE_OMIT_WSD
657
+ "OMIT_WSD",
658
+#endif
659
+#if SQLITE_OMIT_XFER_OPT
660
+ "OMIT_XFER_OPT",
661
+#endif
662
+#if SQLITE_PCACHE_SEPARATE_HEADER
663
+ "PCACHE_SEPARATE_HEADER",
664
+#endif
665
+#if SQLITE_PERFORMANCE_TRACE
666
+ "PERFORMANCE_TRACE",
667
+#endif
668
+#if SQLITE_POWERSAFE_OVERWRITE
669
+ "POWERSAFE_OVERWRITE",
670
+#endif
671
+#if SQLITE_PREFER_PROXY_LOCKING
672
+ "PREFER_PROXY_LOCKING",
673
+#endif
674
+#if SQLITE_PROXY_DEBUG
675
+ "PROXY_DEBUG",
676
+#endif
677
+#if SQLITE_REVERSE_UNORDERED_SELECTS
678
+ "REVERSE_UNORDERED_SELECTS",
679
+#endif
680
+#if SQLITE_RTREE_INT_ONLY
681
+ "RTREE_INT_ONLY",
682
+#endif
683
+#if SQLITE_SECURE_DELETE
684
+ "SECURE_DELETE",
685
+#endif
686
+#if SQLITE_SMALL_STACK
687
+ "SMALL_STACK",
688
+#endif
689
+#ifdef SQLITE_SORTER_PMASZ
690
+ "SORTER_PMASZ=" CTIMEOPT_VAL(SQLITE_SORTER_PMASZ),
691
+#endif
692
+#if SQLITE_SOUNDEX
693
+ "SOUNDEX",
694
+#endif
695
+#ifdef SQLITE_STAT4_SAMPLES
696
+ "STAT4_SAMPLES=" CTIMEOPT_VAL(SQLITE_STAT4_SAMPLES),
697
+#endif
698
+#ifdef SQLITE_STMTJRNL_SPILL
699
+ "STMTJRNL_SPILL=" CTIMEOPT_VAL(SQLITE_STMTJRNL_SPILL),
700
+#endif
701
+#if SQLITE_SUBSTR_COMPATIBILITY
702
+ "SUBSTR_COMPATIBILITY",
703
+#endif
704
+#if SQLITE_SYSTEM_MALLOC
705
+ "SYSTEM_MALLOC",
706
+#endif
707
+#if SQLITE_TCL
708
+ "TCL",
709
+#endif
710
+#ifdef SQLITE_TEMP_STORE
711
+ "TEMP_STORE=" CTIMEOPT_VAL(SQLITE_TEMP_STORE),
712
+#endif
713
+#if SQLITE_TEST
714
+ "TEST",
715
+#endif
716
+#if defined(SQLITE_THREADSAFE)
717
+ "THREADSAFE=" CTIMEOPT_VAL(SQLITE_THREADSAFE),
718
+#elif defined(THREADSAFE)
719
+ "THREADSAFE=" CTIMEOPT_VAL(THREADSAFE),
720
+#else
721
+ "THREADSAFE=1",
722
+#endif
723
+#if SQLITE_UNLINK_AFTER_CLOSE
724
+ "UNLINK_AFTER_CLOSE",
725
+#endif
726
+#if SQLITE_UNTESTABLE
727
+ "UNTESTABLE",
728
+#endif
729
+#if SQLITE_USER_AUTHENTICATION
730
+ "USER_AUTHENTICATION",
731
+#endif
732
+#if SQLITE_USE_ALLOCA
733
+ "USE_ALLOCA",
734
+#endif
735
+#if SQLITE_USE_FCNTL_TRACE
736
+ "USE_FCNTL_TRACE",
737
+#endif
738
+#if SQLITE_USE_URI
739
+ "USE_URI",
740
+#endif
741
+#if SQLITE_VDBE_COVERAGE
742
+ "VDBE_COVERAGE",
743
+#endif
744
+#if SQLITE_WIN32_MALLOC
745
+ "WIN32_MALLOC",
746
+#endif
747
+#if SQLITE_ZERO_MALLOC
748
+ "ZERO_MALLOC",
749
+#endif
750
+/*
751
+** END CODE GENERATED BY tool/mkctime.tcl
752
+*/
753
+};
754
+
755
+SQLITE_PRIVATE const char **sqlite3CompileOptions(int *pnOpt){
756
+ *pnOpt = sizeof(sqlite3azCompileOpt) / sizeof(sqlite3azCompileOpt[0]);
757
+ return (const char**)sqlite3azCompileOpt;
758
+}
759
+
760
+#endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */
761
+
762
+/************** End of ctime.c ***********************************************/
25763
/************** Begin file sqliteInt.h ***************************************/
26764
/*
27765
** 2001 September 15
28766
**
29767
** The author disclaims copyright to this source code. In place of
@@ -398,11 +1136,11 @@
3981136
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
3991137
** [sqlite_version()] and [sqlite_source_id()].
4001138
*/
4011139
#define SQLITE_VERSION "3.20.0"
4021140
#define SQLITE_VERSION_NUMBER 3020000
403
-#define SQLITE_SOURCE_ID "2017-06-15 13:07:56 9afd7a2ffd3a39456190ad05e85ff6485298aae262d9e0698a58c1d73507a36f"
1141
+#define SQLITE_SOURCE_ID "2017-06-24 13:31:40 0583b84ab444db3ae3c93db619b67bf84b0305ab989200e77214e02ff2dc923a"
4041142
4051143
/*
4061144
** CAPI3REF: Run-Time Library Version Numbers
4071145
** KEYWORDS: sqlite3_version sqlite3_sourceid
4081146
**
@@ -11101,10 +11839,15 @@
1110111839
** threads can use SQLite as long as no two threads try to use the same
1110211840
** database connection at the same time.
1110311841
**
1110411842
** Older versions of SQLite used an optional THREADSAFE macro.
1110511843
** We support that for legacy.
11844
+**
11845
+** To ensure that the correct value of "THREADSAFE" is reported when querying
11846
+** for compile-time options at runtime (e.g. "PRAGMA compile_options"), this
11847
+** logic is partially replicated in ctime.c. If it is updated here, it should
11848
+** also be updated there.
1110611849
*/
1110711850
#if !defined(SQLITE_THREADSAFE)
1110811851
# if defined(THREADSAFE)
1110911852
# define SQLITE_THREADSAFE THREADSAFE
1111011853
# else
@@ -11691,11 +12434,10 @@
1169112434
** Provide a default value for SQLITE_TEMP_STORE in case it is not specified
1169212435
** on the command-line
1169312436
*/
1169412437
#ifndef SQLITE_TEMP_STORE
1169512438
# define SQLITE_TEMP_STORE 1
11696
-# define SQLITE_TEMP_STORE_xc 1 /* Exclude from ctime.c */
1169712439
#endif
1169812440
1169912441
/*
1170012442
** If no value has been provided for SQLITE_MAX_WORKER_THREADS, or if
1170112443
** SQLITE_TEMP_STORE is set to 3 (never use temporary files), set it
@@ -11992,21 +12734,19 @@
1199212734
|| defined(__DragonFly__)
1199312735
# define SQLITE_MAX_MMAP_SIZE 0x7fff0000 /* 2147418112 */
1199412736
# else
1199512737
# define SQLITE_MAX_MMAP_SIZE 0
1199612738
# endif
11997
-# define SQLITE_MAX_MMAP_SIZE_xc 1 /* exclude from ctime.c */
1199812739
#endif
1199912740
1200012741
/*
1200112742
** The default MMAP_SIZE is zero on all platforms. Or, even if a larger
1200212743
** default MMAP_SIZE is specified at compile-time, make sure that it does
1200312744
** not exceed the maximum mmap size.
1200412745
*/
1200512746
#ifndef SQLITE_DEFAULT_MMAP_SIZE
1200612747
# define SQLITE_DEFAULT_MMAP_SIZE 0
12007
-# define SQLITE_DEFAULT_MMAP_SIZE_xc 1 /* Exclude from ctime.c */
1200812748
#endif
1200912749
#if SQLITE_DEFAULT_MMAP_SIZE>SQLITE_MAX_MMAP_SIZE
1201012750
# undef SQLITE_DEFAULT_MMAP_SIZE
1201112751
# define SQLITE_DEFAULT_MMAP_SIZE SQLITE_MAX_MMAP_SIZE
1201212752
#endif
@@ -17157,10 +17897,12 @@
1715717897
SQLITE_PRIVATE int sqlite3ExprIsVector(Expr *pExpr);
1715817898
SQLITE_PRIVATE Expr *sqlite3VectorFieldSubexpr(Expr*, int);
1715917899
SQLITE_PRIVATE Expr *sqlite3ExprForVectorField(Parse*,Expr*,int);
1716017900
SQLITE_PRIVATE void sqlite3VectorErrorMsg(Parse*, Expr*);
1716117901
17902
+SQLITE_PRIVATE const char **sqlite3CompileOptions(int *pnOpt);
17903
+
1716217904
#endif /* SQLITEINT_H */
1716317905
1716417906
/************** End of sqliteInt.h *******************************************/
1716517907
/************** Begin file global.c ******************************************/
1716617908
/*
@@ -17461,476 +18203,10 @@
1746118203
** Name of the default collating sequence
1746218204
*/
1746318205
SQLITE_PRIVATE const char sqlite3StrBINARY[] = "BINARY";
1746418206
1746518207
/************** End of global.c **********************************************/
17466
-/************** Begin file ctime.c *******************************************/
17467
-/*
17468
-** 2010 February 23
17469
-**
17470
-** The author disclaims copyright to this source code. In place of
17471
-** a legal notice, here is a blessing:
17472
-**
17473
-** May you do good and not evil.
17474
-** May you find forgiveness for yourself and forgive others.
17475
-** May you share freely, never taking more than you give.
17476
-**
17477
-*************************************************************************
17478
-**
17479
-** This file implements routines used to report what compile-time options
17480
-** SQLite was built with.
17481
-*/
17482
-
17483
-#ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS
17484
-
17485
-/* #include "sqliteInt.h" */
17486
-
17487
-/*
17488
-** An array of names of all compile-time options. This array should
17489
-** be sorted A-Z.
17490
-**
17491
-** This array looks large, but in a typical installation actually uses
17492
-** only a handful of compile-time options, so most times this array is usually
17493
-** rather short and uses little memory space.
17494
-*/
17495
-static const char * const azCompileOpt[] = {
17496
-
17497
-/* These macros are provided to "stringify" the value of the define
17498
-** for those options in which the value is meaningful. */
17499
-#define CTIMEOPT_VAL_(opt) #opt
17500
-#define CTIMEOPT_VAL(opt) CTIMEOPT_VAL_(opt)
17501
-
17502
-#if SQLITE_32BIT_ROWID
17503
- "32BIT_ROWID",
17504
-#endif
17505
-#if SQLITE_4_BYTE_ALIGNED_MALLOC
17506
- "4_BYTE_ALIGNED_MALLOC",
17507
-#endif
17508
-#if SQLITE_CASE_SENSITIVE_LIKE
17509
- "CASE_SENSITIVE_LIKE",
17510
-#endif
17511
-#if SQLITE_CHECK_PAGES
17512
- "CHECK_PAGES",
17513
-#endif
17514
-#if defined(__clang__) && defined(__clang_major__)
17515
- "COMPILER=clang-" CTIMEOPT_VAL(__clang_major__) "."
17516
- CTIMEOPT_VAL(__clang_minor__) "."
17517
- CTIMEOPT_VAL(__clang_patchlevel__),
17518
-#elif defined(_MSC_VER)
17519
- "COMPILER=msvc-" CTIMEOPT_VAL(_MSC_VER),
17520
-#elif defined(__GNUC__) && defined(__VERSION__)
17521
- "COMPILER=gcc-" __VERSION__,
17522
-#endif
17523
-#if SQLITE_COVERAGE_TEST
17524
- "COVERAGE_TEST",
17525
-#endif
17526
-#ifdef SQLITE_DEBUG
17527
- "DEBUG",
17528
-#endif
17529
-#if SQLITE_DEFAULT_LOCKING_MODE
17530
- "DEFAULT_LOCKING_MODE=" CTIMEOPT_VAL(SQLITE_DEFAULT_LOCKING_MODE),
17531
-#endif
17532
-#if defined(SQLITE_DEFAULT_MMAP_SIZE) && !defined(SQLITE_DEFAULT_MMAP_SIZE_xc)
17533
- "DEFAULT_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_MMAP_SIZE),
17534
-#endif
17535
-#if SQLITE_DEFAULT_SYNCHRONOUS
17536
- "DEFAULT_SYNCHRONOUS=" CTIMEOPT_VAL(SQLITE_DEFAULT_SYNCHRONOUS),
17537
-#endif
17538
-#if SQLITE_DEFAULT_WAL_SYNCHRONOUS
17539
- "DEFAULT_WAL_SYNCHRONOUS=" CTIMEOPT_VAL(SQLITE_DEFAULT_WAL_SYNCHRONOUS),
17540
-#endif
17541
-#if SQLITE_DIRECT_OVERFLOW_READ
17542
- "DIRECT_OVERFLOW_READ",
17543
-#endif
17544
-#if SQLITE_DISABLE_DIRSYNC
17545
- "DISABLE_DIRSYNC",
17546
-#endif
17547
-#if SQLITE_DISABLE_LFS
17548
- "DISABLE_LFS",
17549
-#endif
17550
-#if SQLITE_ENABLE_8_3_NAMES
17551
- "ENABLE_8_3_NAMES=" CTIMEOPT_VAL(SQLITE_ENABLE_8_3_NAMES),
17552
-#endif
17553
-#if SQLITE_ENABLE_API_ARMOR
17554
- "ENABLE_API_ARMOR",
17555
-#endif
17556
-#if SQLITE_ENABLE_ATOMIC_WRITE
17557
- "ENABLE_ATOMIC_WRITE",
17558
-#endif
17559
-#if SQLITE_ENABLE_CEROD
17560
- "ENABLE_CEROD",
17561
-#endif
17562
-#if SQLITE_ENABLE_COLUMN_METADATA
17563
- "ENABLE_COLUMN_METADATA",
17564
-#endif
17565
-#if SQLITE_ENABLE_DBSTAT_VTAB
17566
- "ENABLE_DBSTAT_VTAB",
17567
-#endif
17568
-#if SQLITE_ENABLE_EXPENSIVE_ASSERT
17569
- "ENABLE_EXPENSIVE_ASSERT",
17570
-#endif
17571
-#if SQLITE_ENABLE_FTS1
17572
- "ENABLE_FTS1",
17573
-#endif
17574
-#if SQLITE_ENABLE_FTS2
17575
- "ENABLE_FTS2",
17576
-#endif
17577
-#if SQLITE_ENABLE_FTS3
17578
- "ENABLE_FTS3",
17579
-#endif
17580
-#if SQLITE_ENABLE_FTS3_PARENTHESIS
17581
- "ENABLE_FTS3_PARENTHESIS",
17582
-#endif
17583
-#if SQLITE_ENABLE_FTS4
17584
- "ENABLE_FTS4",
17585
-#endif
17586
-#if SQLITE_ENABLE_FTS5
17587
- "ENABLE_FTS5",
17588
-#endif
17589
-#if SQLITE_ENABLE_ICU
17590
- "ENABLE_ICU",
17591
-#endif
17592
-#if SQLITE_ENABLE_IOTRACE
17593
- "ENABLE_IOTRACE",
17594
-#endif
17595
-#if SQLITE_ENABLE_JSON1
17596
- "ENABLE_JSON1",
17597
-#endif
17598
-#if SQLITE_ENABLE_LOAD_EXTENSION
17599
- "ENABLE_LOAD_EXTENSION",
17600
-#endif
17601
-#if SQLITE_ENABLE_LOCKING_STYLE
17602
- "ENABLE_LOCKING_STYLE=" CTIMEOPT_VAL(SQLITE_ENABLE_LOCKING_STYLE),
17603
-#endif
17604
-#if SQLITE_ENABLE_MEMORY_MANAGEMENT
17605
- "ENABLE_MEMORY_MANAGEMENT",
17606
-#endif
17607
-#if SQLITE_ENABLE_MEMSYS3
17608
- "ENABLE_MEMSYS3",
17609
-#endif
17610
-#if SQLITE_ENABLE_MEMSYS5
17611
- "ENABLE_MEMSYS5",
17612
-#endif
17613
-#if SQLITE_ENABLE_OVERSIZE_CELL_CHECK
17614
- "ENABLE_OVERSIZE_CELL_CHECK",
17615
-#endif
17616
-#if SQLITE_ENABLE_RTREE
17617
- "ENABLE_RTREE",
17618
-#endif
17619
-#if defined(SQLITE_ENABLE_STAT4)
17620
- "ENABLE_STAT4",
17621
-#elif defined(SQLITE_ENABLE_STAT3)
17622
- "ENABLE_STAT3",
17623
-#endif
17624
-#if SQLITE_ENABLE_UNLOCK_NOTIFY
17625
- "ENABLE_UNLOCK_NOTIFY",
17626
-#endif
17627
-#if SQLITE_ENABLE_UPDATE_DELETE_LIMIT
17628
- "ENABLE_UPDATE_DELETE_LIMIT",
17629
-#endif
17630
-#if defined(SQLITE_ENABLE_URI_00_ERROR)
17631
- "ENABLE_URI_00_ERROR",
17632
-#endif
17633
-#if SQLITE_HAS_CODEC
17634
- "HAS_CODEC",
17635
-#endif
17636
-#if HAVE_ISNAN || SQLITE_HAVE_ISNAN
17637
- "HAVE_ISNAN",
17638
-#endif
17639
-#if SQLITE_HOMEGROWN_RECURSIVE_MUTEX
17640
- "HOMEGROWN_RECURSIVE_MUTEX",
17641
-#endif
17642
-#if SQLITE_IGNORE_AFP_LOCK_ERRORS
17643
- "IGNORE_AFP_LOCK_ERRORS",
17644
-#endif
17645
-#if SQLITE_IGNORE_FLOCK_LOCK_ERRORS
17646
- "IGNORE_FLOCK_LOCK_ERRORS",
17647
-#endif
17648
-#ifdef SQLITE_INT64_TYPE
17649
- "INT64_TYPE",
17650
-#endif
17651
-#ifdef SQLITE_LIKE_DOESNT_MATCH_BLOBS
17652
- "LIKE_DOESNT_MATCH_BLOBS",
17653
-#endif
17654
-#if SQLITE_LOCK_TRACE
17655
- "LOCK_TRACE",
17656
-#endif
17657
-#if defined(SQLITE_MAX_MMAP_SIZE) && !defined(SQLITE_MAX_MMAP_SIZE_xc)
17658
- "MAX_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_MMAP_SIZE),
17659
-#endif
17660
-#ifdef SQLITE_MAX_SCHEMA_RETRY
17661
- "MAX_SCHEMA_RETRY=" CTIMEOPT_VAL(SQLITE_MAX_SCHEMA_RETRY),
17662
-#endif
17663
-#if SQLITE_MEMDEBUG
17664
- "MEMDEBUG",
17665
-#endif
17666
-#if SQLITE_MIXED_ENDIAN_64BIT_FLOAT
17667
- "MIXED_ENDIAN_64BIT_FLOAT",
17668
-#endif
17669
-#if SQLITE_NO_SYNC
17670
- "NO_SYNC",
17671
-#endif
17672
-#if SQLITE_OMIT_ALTERTABLE
17673
- "OMIT_ALTERTABLE",
17674
-#endif
17675
-#if SQLITE_OMIT_ANALYZE
17676
- "OMIT_ANALYZE",
17677
-#endif
17678
-#if SQLITE_OMIT_ATTACH
17679
- "OMIT_ATTACH",
17680
-#endif
17681
-#if SQLITE_OMIT_AUTHORIZATION
17682
- "OMIT_AUTHORIZATION",
17683
-#endif
17684
-#if SQLITE_OMIT_AUTOINCREMENT
17685
- "OMIT_AUTOINCREMENT",
17686
-#endif
17687
-#if SQLITE_OMIT_AUTOINIT
17688
- "OMIT_AUTOINIT",
17689
-#endif
17690
-#if SQLITE_OMIT_AUTOMATIC_INDEX
17691
- "OMIT_AUTOMATIC_INDEX",
17692
-#endif
17693
-#if SQLITE_OMIT_AUTORESET
17694
- "OMIT_AUTORESET",
17695
-#endif
17696
-#if SQLITE_OMIT_AUTOVACUUM
17697
- "OMIT_AUTOVACUUM",
17698
-#endif
17699
-#if SQLITE_OMIT_BETWEEN_OPTIMIZATION
17700
- "OMIT_BETWEEN_OPTIMIZATION",
17701
-#endif
17702
-#if SQLITE_OMIT_BLOB_LITERAL
17703
- "OMIT_BLOB_LITERAL",
17704
-#endif
17705
-#if SQLITE_OMIT_BTREECOUNT
17706
- "OMIT_BTREECOUNT",
17707
-#endif
17708
-#if SQLITE_OMIT_CAST
17709
- "OMIT_CAST",
17710
-#endif
17711
-#if SQLITE_OMIT_CHECK
17712
- "OMIT_CHECK",
17713
-#endif
17714
-#if SQLITE_OMIT_COMPLETE
17715
- "OMIT_COMPLETE",
17716
-#endif
17717
-#if SQLITE_OMIT_COMPOUND_SELECT
17718
- "OMIT_COMPOUND_SELECT",
17719
-#endif
17720
-#if SQLITE_OMIT_CTE
17721
- "OMIT_CTE",
17722
-#endif
17723
-#if SQLITE_OMIT_DATETIME_FUNCS
17724
- "OMIT_DATETIME_FUNCS",
17725
-#endif
17726
-#if SQLITE_OMIT_DECLTYPE
17727
- "OMIT_DECLTYPE",
17728
-#endif
17729
-#if SQLITE_OMIT_DEPRECATED
17730
- "OMIT_DEPRECATED",
17731
-#endif
17732
-#if SQLITE_OMIT_DISKIO
17733
- "OMIT_DISKIO",
17734
-#endif
17735
-#if SQLITE_OMIT_EXPLAIN
17736
- "OMIT_EXPLAIN",
17737
-#endif
17738
-#if SQLITE_OMIT_FLAG_PRAGMAS
17739
- "OMIT_FLAG_PRAGMAS",
17740
-#endif
17741
-#if SQLITE_OMIT_FLOATING_POINT
17742
- "OMIT_FLOATING_POINT",
17743
-#endif
17744
-#if SQLITE_OMIT_FOREIGN_KEY
17745
- "OMIT_FOREIGN_KEY",
17746
-#endif
17747
-#if SQLITE_OMIT_GET_TABLE
17748
- "OMIT_GET_TABLE",
17749
-#endif
17750
-#if SQLITE_OMIT_INCRBLOB
17751
- "OMIT_INCRBLOB",
17752
-#endif
17753
-#if SQLITE_OMIT_INTEGRITY_CHECK
17754
- "OMIT_INTEGRITY_CHECK",
17755
-#endif
17756
-#if SQLITE_OMIT_LIKE_OPTIMIZATION
17757
- "OMIT_LIKE_OPTIMIZATION",
17758
-#endif
17759
-#if SQLITE_OMIT_LOAD_EXTENSION
17760
- "OMIT_LOAD_EXTENSION",
17761
-#endif
17762
-#if SQLITE_OMIT_LOCALTIME
17763
- "OMIT_LOCALTIME",
17764
-#endif
17765
-#if SQLITE_OMIT_LOOKASIDE
17766
- "OMIT_LOOKASIDE",
17767
-#endif
17768
-#if SQLITE_OMIT_MEMORYDB
17769
- "OMIT_MEMORYDB",
17770
-#endif
17771
-#if SQLITE_OMIT_OR_OPTIMIZATION
17772
- "OMIT_OR_OPTIMIZATION",
17773
-#endif
17774
-#if SQLITE_OMIT_PAGER_PRAGMAS
17775
- "OMIT_PAGER_PRAGMAS",
17776
-#endif
17777
-#if SQLITE_OMIT_PRAGMA
17778
- "OMIT_PRAGMA",
17779
-#endif
17780
-#if SQLITE_OMIT_PROGRESS_CALLBACK
17781
- "OMIT_PROGRESS_CALLBACK",
17782
-#endif
17783
-#if SQLITE_OMIT_QUICKBALANCE
17784
- "OMIT_QUICKBALANCE",
17785
-#endif
17786
-#if SQLITE_OMIT_REINDEX
17787
- "OMIT_REINDEX",
17788
-#endif
17789
-#if SQLITE_OMIT_SCHEMA_PRAGMAS
17790
- "OMIT_SCHEMA_PRAGMAS",
17791
-#endif
17792
-#if SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS
17793
- "OMIT_SCHEMA_VERSION_PRAGMAS",
17794
-#endif
17795
-#if SQLITE_OMIT_SHARED_CACHE
17796
- "OMIT_SHARED_CACHE",
17797
-#endif
17798
-#if SQLITE_OMIT_SUBQUERY
17799
- "OMIT_SUBQUERY",
17800
-#endif
17801
-#if SQLITE_OMIT_TCL_VARIABLE
17802
- "OMIT_TCL_VARIABLE",
17803
-#endif
17804
-#if SQLITE_OMIT_TEMPDB
17805
- "OMIT_TEMPDB",
17806
-#endif
17807
-#if SQLITE_OMIT_TRACE
17808
- "OMIT_TRACE",
17809
-#endif
17810
-#if SQLITE_OMIT_TRIGGER
17811
- "OMIT_TRIGGER",
17812
-#endif
17813
-#if SQLITE_OMIT_TRUNCATE_OPTIMIZATION
17814
- "OMIT_TRUNCATE_OPTIMIZATION",
17815
-#endif
17816
-#if SQLITE_OMIT_UTF16
17817
- "OMIT_UTF16",
17818
-#endif
17819
-#if SQLITE_OMIT_VACUUM
17820
- "OMIT_VACUUM",
17821
-#endif
17822
-#if SQLITE_OMIT_VIEW
17823
- "OMIT_VIEW",
17824
-#endif
17825
-#if SQLITE_OMIT_VIRTUALTABLE
17826
- "OMIT_VIRTUALTABLE",
17827
-#endif
17828
-#if SQLITE_OMIT_WAL
17829
- "OMIT_WAL",
17830
-#endif
17831
-#if SQLITE_OMIT_WSD
17832
- "OMIT_WSD",
17833
-#endif
17834
-#if SQLITE_OMIT_XFER_OPT
17835
- "OMIT_XFER_OPT",
17836
-#endif
17837
-#if SQLITE_PERFORMANCE_TRACE
17838
- "PERFORMANCE_TRACE",
17839
-#endif
17840
-#if SQLITE_PROXY_DEBUG
17841
- "PROXY_DEBUG",
17842
-#endif
17843
-#if SQLITE_RTREE_INT_ONLY
17844
- "RTREE_INT_ONLY",
17845
-#endif
17846
-#if SQLITE_SECURE_DELETE
17847
- "SECURE_DELETE",
17848
-#endif
17849
-#if SQLITE_SMALL_STACK
17850
- "SMALL_STACK",
17851
-#endif
17852
-#if SQLITE_SOUNDEX
17853
- "SOUNDEX",
17854
-#endif
17855
-#if SQLITE_SYSTEM_MALLOC
17856
- "SYSTEM_MALLOC",
17857
-#endif
17858
-#if SQLITE_TCL
17859
- "TCL",
17860
-#endif
17861
-#if defined(SQLITE_TEMP_STORE) && !defined(SQLITE_TEMP_STORE_xc)
17862
- "TEMP_STORE=" CTIMEOPT_VAL(SQLITE_TEMP_STORE),
17863
-#endif
17864
-#if SQLITE_TEST
17865
- "TEST",
17866
-#endif
17867
-#if defined(SQLITE_THREADSAFE)
17868
- "THREADSAFE=" CTIMEOPT_VAL(SQLITE_THREADSAFE),
17869
-#endif
17870
-#if SQLITE_UNTESTABLE
17871
- "UNTESTABLE"
17872
-#endif
17873
-#if SQLITE_USE_ALLOCA
17874
- "USE_ALLOCA",
17875
-#endif
17876
-#if SQLITE_USER_AUTHENTICATION
17877
- "USER_AUTHENTICATION",
17878
-#endif
17879
-#if SQLITE_WIN32_MALLOC
17880
- "WIN32_MALLOC",
17881
-#endif
17882
-#if SQLITE_ZERO_MALLOC
17883
- "ZERO_MALLOC"
17884
-#endif
17885
-};
17886
-
17887
-/*
17888
-** Given the name of a compile-time option, return true if that option
17889
-** was used and false if not.
17890
-**
17891
-** The name can optionally begin with "SQLITE_" but the "SQLITE_" prefix
17892
-** is not required for a match.
17893
-*/
17894
-SQLITE_API int sqlite3_compileoption_used(const char *zOptName){
17895
- int i, n;
17896
-
17897
-#if SQLITE_ENABLE_API_ARMOR
17898
- if( zOptName==0 ){
17899
- (void)SQLITE_MISUSE_BKPT;
17900
- return 0;
17901
- }
17902
-#endif
17903
- if( sqlite3StrNICmp(zOptName, "SQLITE_", 7)==0 ) zOptName += 7;
17904
- n = sqlite3Strlen30(zOptName);
17905
-
17906
- /* Since ArraySize(azCompileOpt) is normally in single digits, a
17907
- ** linear search is adequate. No need for a binary search. */
17908
- for(i=0; i<ArraySize(azCompileOpt); i++){
17909
- if( sqlite3StrNICmp(zOptName, azCompileOpt[i], n)==0
17910
- && sqlite3IsIdChar((unsigned char)azCompileOpt[i][n])==0
17911
- ){
17912
- return 1;
17913
- }
17914
- }
17915
- return 0;
17916
-}
17917
-
17918
-/*
17919
-** Return the N-th compile-time option string. If N is out of range,
17920
-** return a NULL pointer.
17921
-*/
17922
-SQLITE_API const char *sqlite3_compileoption_get(int N){
17923
- if( N>=0 && N<ArraySize(azCompileOpt) ){
17924
- return azCompileOpt[N];
17925
- }
17926
- return 0;
17927
-}
17928
-
17929
-#endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */
17930
-
17931
-/************** End of ctime.c ***********************************************/
1793218208
/************** Begin file status.c ******************************************/
1793318209
/*
1793418210
** 2008 June 18
1793518211
**
1793618212
** The author disclaims copyright to this source code. In place of
@@ -98938,11 +99214,12 @@
9893899214
const char *zName;
9893999215
const char *zFile;
9894099216
char *zPath = 0;
9894199217
char *zErr = 0;
9894299218
unsigned int flags;
98943
- Db *aNew;
99219
+ Db *aNew; /* New array of Db pointers */
99220
+ Db *pNew; /* Db object for the newly attached database */
9894499221
char *zErrDyn = 0;
9894599222
sqlite3_vfs *pVfs;
9894699223
9894799224
UNUSED_PARAMETER(NotUsed);
9894899225
@@ -98986,12 +99263,12 @@
9898699263
}else{
9898799264
aNew = sqlite3DbRealloc(db, db->aDb, sizeof(db->aDb[0])*(db->nDb+1) );
9898899265
if( aNew==0 ) return;
9898999266
}
9899099267
db->aDb = aNew;
98991
- aNew = &db->aDb[db->nDb];
98992
- memset(aNew, 0, sizeof(*aNew));
99268
+ pNew = &db->aDb[db->nDb];
99269
+ memset(pNew, 0, sizeof(*pNew));
9899399270
9899499271
/* Open the database file. If the btree is successfully opened, use
9899599272
** it to obtain the database schema. At this point the schema may
9899699273
** or may not be initialized.
9899799274
*/
@@ -99003,41 +99280,41 @@
9900399280
sqlite3_free(zErr);
9900499281
return;
9900599282
}
9900699283
assert( pVfs );
9900799284
flags |= SQLITE_OPEN_MAIN_DB;
99008
- rc = sqlite3BtreeOpen(pVfs, zPath, db, &aNew->pBt, 0, flags);
99285
+ rc = sqlite3BtreeOpen(pVfs, zPath, db, &pNew->pBt, 0, flags);
9900999286
sqlite3_free( zPath );
9901099287
db->nDb++;
9901199288
db->skipBtreeMutex = 0;
9901299289
if( rc==SQLITE_CONSTRAINT ){
9901399290
rc = SQLITE_ERROR;
9901499291
zErrDyn = sqlite3MPrintf(db, "database is already attached");
9901599292
}else if( rc==SQLITE_OK ){
9901699293
Pager *pPager;
99017
- aNew->pSchema = sqlite3SchemaGet(db, aNew->pBt);
99018
- if( !aNew->pSchema ){
99294
+ pNew->pSchema = sqlite3SchemaGet(db, pNew->pBt);
99295
+ if( !pNew->pSchema ){
9901999296
rc = SQLITE_NOMEM_BKPT;
99020
- }else if( aNew->pSchema->file_format && aNew->pSchema->enc!=ENC(db) ){
99297
+ }else if( pNew->pSchema->file_format && pNew->pSchema->enc!=ENC(db) ){
9902199298
zErrDyn = sqlite3MPrintf(db,
9902299299
"attached databases must use the same text encoding as main database");
9902399300
rc = SQLITE_ERROR;
9902499301
}
99025
- sqlite3BtreeEnter(aNew->pBt);
99026
- pPager = sqlite3BtreePager(aNew->pBt);
99302
+ sqlite3BtreeEnter(pNew->pBt);
99303
+ pPager = sqlite3BtreePager(pNew->pBt);
9902799304
sqlite3PagerLockingMode(pPager, db->dfltLockMode);
99028
- sqlite3BtreeSecureDelete(aNew->pBt,
99305
+ sqlite3BtreeSecureDelete(pNew->pBt,
9902999306
sqlite3BtreeSecureDelete(db->aDb[0].pBt,-1) );
9903099307
#ifndef SQLITE_OMIT_PAGER_PRAGMAS
99031
- sqlite3BtreeSetPagerFlags(aNew->pBt,
99308
+ sqlite3BtreeSetPagerFlags(pNew->pBt,
9903299309
PAGER_SYNCHRONOUS_FULL | (db->flags & PAGER_FLAGS_MASK));
9903399310
#endif
99034
- sqlite3BtreeLeave(aNew->pBt);
99311
+ sqlite3BtreeLeave(pNew->pBt);
9903599312
}
99036
- aNew->safety_level = SQLITE_DEFAULT_SYNCHRONOUS+1;
99037
- aNew->zDbSName = sqlite3DbStrDup(db, zName);
99038
- if( rc==SQLITE_OK && aNew->zDbSName==0 ){
99313
+ pNew->safety_level = SQLITE_DEFAULT_SYNCHRONOUS+1;
99314
+ pNew->zDbSName = sqlite3DbStrDup(db, zName);
99315
+ if( rc==SQLITE_OK && pNew->zDbSName==0 ){
9903999316
rc = SQLITE_NOMEM_BKPT;
9904099317
}
9904199318
9904299319
9904399320
#ifdef SQLITE_HAS_CODEC
@@ -108085,14 +108362,16 @@
108085108362
sqlite3ResolveExprNames(&sNameContext, pWhere);
108086108363
108087108364
/* Create VDBE to loop through the entries in pSrc that match the WHERE
108088108365
** clause. For each row found, increment either the deferred or immediate
108089108366
** foreign key constraint counter. */
108090
- pWInfo = sqlite3WhereBegin(pParse, pSrc, pWhere, 0, 0, 0, 0);
108091
- sqlite3VdbeAddOp2(v, OP_FkCounter, pFKey->isDeferred, nIncr);
108092
- if( pWInfo ){
108093
- sqlite3WhereEnd(pWInfo);
108367
+ if( pParse->nErr==0 ){
108368
+ pWInfo = sqlite3WhereBegin(pParse, pSrc, pWhere, 0, 0, 0, 0);
108369
+ sqlite3VdbeAddOp2(v, OP_FkCounter, pFKey->isDeferred, nIncr);
108370
+ if( pWInfo ){
108371
+ sqlite3WhereEnd(pWInfo);
108372
+ }
108094108373
}
108095108374
108096108375
/* Clean up the WHERE clause constructed above. */
108097108376
sqlite3ExprDelete(db, pWhere);
108098108377
if( iFkIfZero ){
@@ -112945,11 +113224,11 @@
112945113224
/* iArg: */ 0 },
112946113225
#endif
112947113226
#if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER)
112948113227
{/* zName: */ "foreign_key_check",
112949113228
/* ePragTyp: */ PragTyp_FOREIGN_KEY_CHECK,
112950
- /* ePragFlg: */ PragFlg_NeedSchema,
113229
+ /* ePragFlg: */ PragFlg_NeedSchema|PragFlg_Result0,
112951113230
/* ColNames: */ 39, 4,
112952113231
/* iArg: */ 0 },
112953113232
#endif
112954113233
#if !defined(SQLITE_OMIT_FOREIGN_KEY)
112955113234
{/* zName: */ "foreign_key_list",
@@ -113032,11 +113311,11 @@
113032113311
/* iArg: */ 1 },
113033113312
#endif
113034113313
#if !defined(SQLITE_OMIT_INTEGRITY_CHECK)
113035113314
{/* zName: */ "integrity_check",
113036113315
/* ePragTyp: */ PragTyp_INTEGRITY_CHECK,
113037
- /* ePragFlg: */ PragFlg_NeedSchema,
113316
+ /* ePragFlg: */ PragFlg_NeedSchema|PragFlg_Result0|PragFlg_Result1,
113038113317
/* ColNames: */ 0, 0,
113039113318
/* iArg: */ 0 },
113040113319
#endif
113041113320
#if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
113042113321
{/* zName: */ "journal_mode",
@@ -113127,11 +113406,11 @@
113127113406
/* iArg: */ SQLITE_QueryOnly },
113128113407
#endif
113129113408
#if !defined(SQLITE_OMIT_INTEGRITY_CHECK)
113130113409
{/* zName: */ "quick_check",
113131113410
/* ePragTyp: */ PragTyp_INTEGRITY_CHECK,
113132
- /* ePragFlg: */ PragFlg_NeedSchema,
113411
+ /* ePragFlg: */ PragFlg_NeedSchema|PragFlg_Result0|PragFlg_Result1,
113133113412
/* ColNames: */ 0, 0,
113134113413
/* iArg: */ 0 },
113135113414
#endif
113136113415
#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
113137113416
{/* zName: */ "read_uncommitted",
@@ -119765,13 +120044,16 @@
119765120044
ifNullRow.pLeft = pCopy;
119766120045
ifNullRow.iTable = pSubst->iNewTable;
119767120046
pCopy = &ifNullRow;
119768120047
}
119769120048
pNew = sqlite3ExprDup(db, pCopy, 0);
119770
- if( pNew && (pExpr->flags & EP_FromJoin) ){
120049
+ if( pNew && pSubst->isLeftJoin ){
120050
+ ExprSetProperty(pNew, EP_CanBeNull);
120051
+ }
120052
+ if( pNew && ExprHasProperty(pExpr,EP_FromJoin) ){
119771120053
pNew->iRightJoinTable = pExpr->iRightJoinTable;
119772
- pNew->flags |= EP_FromJoin;
120054
+ ExprSetProperty(pNew, EP_FromJoin);
119773120055
}
119774120056
sqlite3ExprDelete(db, pExpr);
119775120057
pExpr = pNew;
119776120058
}
119777120059
}
@@ -120060,11 +120342,11 @@
120060120342
**
120061120343
** which is not at all the same thing.
120062120344
**
120063120345
** If the subquery is the right operand of a LEFT JOIN, then the outer
120064120346
** query cannot be an aggregate. This is an artifact of the way aggregates
120065
- ** are processed - there is not mechanism to determine if the LEFT JOIN
120347
+ ** are processed - there is no mechanism to determine if the LEFT JOIN
120066120348
** table should be all-NULL.
120067120349
**
120068120350
** See also tickets #306, #350, and #3300.
120069120351
*/
120070120352
if( (pSubitem->fg.jointype & JT_OUTER)!=0 ){
@@ -124879,11 +125161,11 @@
124879125161
#ifdef SQLITE_HAS_CODEC
124880125162
if( db->nextPagesize ){
124881125163
extern void sqlite3CodecGetKey(sqlite3*, int, void**, int*);
124882125164
int nKey;
124883125165
char *zKey;
124884
- sqlite3CodecGetKey(db, 0, (void**)&zKey, &nKey);
125166
+ sqlite3CodecGetKey(db, iDb, (void**)&zKey, &nKey);
124885125167
if( nKey ) db->nextPagesize = 0;
124886125168
}
124887125169
#endif
124888125170
124889125171
sqlite3BtreeSetCacheSize(pTemp, db->aDb[iDb].pSchema->cache_size);
@@ -134744,10 +135026,35 @@
134744135026
#endif
134745135027
return 1;
134746135028
}
134747135029
return 0;
134748135030
}
135031
+
135032
+/*
135033
+** Helper function for exprIsDeterministic().
135034
+*/
135035
+static int exprNodeIsDeterministic(Walker *pWalker, Expr *pExpr){
135036
+ if( pExpr->op==TK_FUNCTION && ExprHasProperty(pExpr, EP_ConstFunc)==0 ){
135037
+ pWalker->eCode = 0;
135038
+ return WRC_Abort;
135039
+ }
135040
+ return WRC_Continue;
135041
+}
135042
+
135043
+/*
135044
+** Return true if the expression contains no non-deterministic SQL
135045
+** functions. Do not consider non-deterministic SQL functions that are
135046
+** part of sub-select statements.
135047
+*/
135048
+static int exprIsDeterministic(Expr *p){
135049
+ Walker w;
135050
+ memset(&w, 0, sizeof(w));
135051
+ w.eCode = 1;
135052
+ w.xExprCallback = exprNodeIsDeterministic;
135053
+ sqlite3WalkExpr(&w, p);
135054
+ return w.eCode;
135055
+}
134749135056
134750135057
/*
134751135058
** Generate the beginning of the loop used for WHERE clause processing.
134752135059
** The return value is a pointer to an opaque structure that contains
134753135060
** information needed to terminate the loop. Later, the calling routine
@@ -134943,21 +135250,10 @@
134943135250
*/
134944135251
initMaskSet(pMaskSet);
134945135252
sqlite3WhereClauseInit(&pWInfo->sWC, pWInfo);
134946135253
sqlite3WhereSplit(&pWInfo->sWC, pWhere, TK_AND);
134947135254
134948
- /* Special case: a WHERE clause that is constant. Evaluate the
134949
- ** expression and either jump over all of the code or fall thru.
134950
- */
134951
- for(ii=0; ii<sWLB.pWC->nTerm; ii++){
134952
- if( nTabList==0 || sqlite3ExprIsConstantNotJoin(sWLB.pWC->a[ii].pExpr) ){
134953
- sqlite3ExprIfFalse(pParse, sWLB.pWC->a[ii].pExpr, pWInfo->iBreak,
134954
- SQLITE_JUMPIFNULL);
134955
- sWLB.pWC->a[ii].wtFlags |= TERM_CODED;
134956
- }
134957
- }
134958
-
134959135255
/* Special case: No FROM clause
134960135256
*/
134961135257
if( nTabList==0 ){
134962135258
if( pOrderBy ) pWInfo->nOBSat = pOrderBy->nExpr;
134963135259
if( wctrlFlags & WHERE_WANT_DISTINCT ){
@@ -134991,10 +135287,29 @@
134991135287
#endif
134992135288
134993135289
/* Analyze all of the subexpressions. */
134994135290
sqlite3WhereExprAnalyze(pTabList, &pWInfo->sWC);
134995135291
if( db->mallocFailed ) goto whereBeginError;
135292
+
135293
+ /* Special case: WHERE terms that do not refer to any tables in the join
135294
+ ** (constant expressions). Evaluate each such term, and jump over all the
135295
+ ** generated code if the result is not true.
135296
+ **
135297
+ ** Do not do this if the expression contains non-deterministic functions
135298
+ ** that are not within a sub-select. This is not strictly required, but
135299
+ ** preserves SQLite's legacy behaviour in the following two cases:
135300
+ **
135301
+ ** FROM ... WHERE random()>0; -- eval random() once per row
135302
+ ** FROM ... WHERE (SELECT random())>0; -- eval random() once overall
135303
+ */
135304
+ for(ii=0; ii<sWLB.pWC->nTerm; ii++){
135305
+ WhereTerm *pT = &sWLB.pWC->a[ii];
135306
+ if( pT->prereqAll==0 && (nTabList==0 || exprIsDeterministic(pT->pExpr)) ){
135307
+ sqlite3ExprIfFalse(pParse, pT->pExpr, pWInfo->iBreak, SQLITE_JUMPIFNULL);
135308
+ pT->wtFlags |= TERM_CODED;
135309
+ }
135310
+ }
134996135311
134997135312
if( wctrlFlags & WHERE_WANT_DISTINCT ){
134998135313
if( isDistinctRedundant(pParse, pTabList, &pWInfo->sWC, pResultSet) ){
134999135314
/* The DISTINCT marking is pointless. Ignore it. */
135000135315
pWInfo->eDistinct = WHERE_DISTINCT_UNIQUE;
@@ -144646,10 +144961,62 @@
144646144961
SQLITE_API void sqlite3_snapshot_free(sqlite3_snapshot *pSnapshot){
144647144962
sqlite3_free(pSnapshot);
144648144963
}
144649144964
#endif /* SQLITE_ENABLE_SNAPSHOT */
144650144965
144966
+#ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS
144967
+/*
144968
+** Given the name of a compile-time option, return true if that option
144969
+** was used and false if not.
144970
+**
144971
+** The name can optionally begin with "SQLITE_" but the "SQLITE_" prefix
144972
+** is not required for a match.
144973
+*/
144974
+SQLITE_API int sqlite3_compileoption_used(const char *zOptName){
144975
+ int i, n;
144976
+ int nOpt;
144977
+ const char **azCompileOpt;
144978
+
144979
+#if SQLITE_ENABLE_API_ARMOR
144980
+ if( zOptName==0 ){
144981
+ (void)SQLITE_MISUSE_BKPT;
144982
+ return 0;
144983
+ }
144984
+#endif
144985
+
144986
+ azCompileOpt = sqlite3CompileOptions(&nOpt);
144987
+
144988
+ if( sqlite3StrNICmp(zOptName, "SQLITE_", 7)==0 ) zOptName += 7;
144989
+ n = sqlite3Strlen30(zOptName);
144990
+
144991
+ /* Since nOpt is normally in single digits, a linear search is
144992
+ ** adequate. No need for a binary search. */
144993
+ for(i=0; i<nOpt; i++){
144994
+ if( sqlite3StrNICmp(zOptName, azCompileOpt[i], n)==0
144995
+ && sqlite3IsIdChar((unsigned char)azCompileOpt[i][n])==0
144996
+ ){
144997
+ return 1;
144998
+ }
144999
+ }
145000
+ return 0;
145001
+}
145002
+
145003
+/*
145004
+** Return the N-th compile-time option string. If N is out of range,
145005
+** return a NULL pointer.
145006
+*/
145007
+SQLITE_API const char *sqlite3_compileoption_get(int N){
145008
+ int nOpt;
145009
+ const char **azCompileOpt;
145010
+ azCompileOpt = sqlite3CompileOptions(&nOpt);
145011
+ if( N>=0 && N<nOpt ){
145012
+ return azCompileOpt[N];
145013
+ }
145014
+ return 0;
145015
+}
145016
+#endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */
145017
+
144651145018
/************** End of main.c ************************************************/
144652145019
/************** Begin file notify.c ******************************************/
144653145020
/*
144654145021
** 2009 March 3
144655145022
**
@@ -199150,11 +199517,11 @@
199150199517
int nArg, /* Number of args */
199151199518
sqlite3_value **apUnused /* Function arguments */
199152199519
){
199153199520
assert( nArg==0 );
199154199521
UNUSED_PARAM2(nArg, apUnused);
199155
- sqlite3_result_text(pCtx, "fts5: 2017-06-13 04:31:54 35b34bdf0843b49be39e13ed212e918c2d45afdb8374b5cd02ba6d2d5b16b3b9", -1, SQLITE_TRANSIENT);
199522
+ sqlite3_result_text(pCtx, "fts5: 2017-06-24 13:31:40 0583b84ab444db3ae3c93db619b67bf84b0305ab989200e77214e02ff2dc923a", -1, SQLITE_TRANSIENT);
199156199523
}
199157199524
199158199525
static int fts5Init(sqlite3 *db){
199159199526
static const sqlite3_module fts5Mod = {
199160199527
/* iVersion */ 2,
199161199528
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -20,10 +20,748 @@
20 #define SQLITE_CORE 1
21 #define SQLITE_AMALGAMATION 1
22 #ifndef SQLITE_PRIVATE
23 # define SQLITE_PRIVATE static
24 #endif
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25 /************** Begin file sqliteInt.h ***************************************/
26 /*
27 ** 2001 September 15
28 **
29 ** The author disclaims copyright to this source code. In place of
@@ -398,11 +1136,11 @@
398 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
399 ** [sqlite_version()] and [sqlite_source_id()].
400 */
401 #define SQLITE_VERSION "3.20.0"
402 #define SQLITE_VERSION_NUMBER 3020000
403 #define SQLITE_SOURCE_ID "2017-06-15 13:07:56 9afd7a2ffd3a39456190ad05e85ff6485298aae262d9e0698a58c1d73507a36f"
404
405 /*
406 ** CAPI3REF: Run-Time Library Version Numbers
407 ** KEYWORDS: sqlite3_version sqlite3_sourceid
408 **
@@ -11101,10 +11839,15 @@
11101 ** threads can use SQLite as long as no two threads try to use the same
11102 ** database connection at the same time.
11103 **
11104 ** Older versions of SQLite used an optional THREADSAFE macro.
11105 ** We support that for legacy.
 
 
 
 
 
11106 */
11107 #if !defined(SQLITE_THREADSAFE)
11108 # if defined(THREADSAFE)
11109 # define SQLITE_THREADSAFE THREADSAFE
11110 # else
@@ -11691,11 +12434,10 @@
11691 ** Provide a default value for SQLITE_TEMP_STORE in case it is not specified
11692 ** on the command-line
11693 */
11694 #ifndef SQLITE_TEMP_STORE
11695 # define SQLITE_TEMP_STORE 1
11696 # define SQLITE_TEMP_STORE_xc 1 /* Exclude from ctime.c */
11697 #endif
11698
11699 /*
11700 ** If no value has been provided for SQLITE_MAX_WORKER_THREADS, or if
11701 ** SQLITE_TEMP_STORE is set to 3 (never use temporary files), set it
@@ -11992,21 +12734,19 @@
11992 || defined(__DragonFly__)
11993 # define SQLITE_MAX_MMAP_SIZE 0x7fff0000 /* 2147418112 */
11994 # else
11995 # define SQLITE_MAX_MMAP_SIZE 0
11996 # endif
11997 # define SQLITE_MAX_MMAP_SIZE_xc 1 /* exclude from ctime.c */
11998 #endif
11999
12000 /*
12001 ** The default MMAP_SIZE is zero on all platforms. Or, even if a larger
12002 ** default MMAP_SIZE is specified at compile-time, make sure that it does
12003 ** not exceed the maximum mmap size.
12004 */
12005 #ifndef SQLITE_DEFAULT_MMAP_SIZE
12006 # define SQLITE_DEFAULT_MMAP_SIZE 0
12007 # define SQLITE_DEFAULT_MMAP_SIZE_xc 1 /* Exclude from ctime.c */
12008 #endif
12009 #if SQLITE_DEFAULT_MMAP_SIZE>SQLITE_MAX_MMAP_SIZE
12010 # undef SQLITE_DEFAULT_MMAP_SIZE
12011 # define SQLITE_DEFAULT_MMAP_SIZE SQLITE_MAX_MMAP_SIZE
12012 #endif
@@ -17157,10 +17897,12 @@
17157 SQLITE_PRIVATE int sqlite3ExprIsVector(Expr *pExpr);
17158 SQLITE_PRIVATE Expr *sqlite3VectorFieldSubexpr(Expr*, int);
17159 SQLITE_PRIVATE Expr *sqlite3ExprForVectorField(Parse*,Expr*,int);
17160 SQLITE_PRIVATE void sqlite3VectorErrorMsg(Parse*, Expr*);
17161
 
 
17162 #endif /* SQLITEINT_H */
17163
17164 /************** End of sqliteInt.h *******************************************/
17165 /************** Begin file global.c ******************************************/
17166 /*
@@ -17461,476 +18203,10 @@
17461 ** Name of the default collating sequence
17462 */
17463 SQLITE_PRIVATE const char sqlite3StrBINARY[] = "BINARY";
17464
17465 /************** End of global.c **********************************************/
17466 /************** Begin file ctime.c *******************************************/
17467 /*
17468 ** 2010 February 23
17469 **
17470 ** The author disclaims copyright to this source code. In place of
17471 ** a legal notice, here is a blessing:
17472 **
17473 ** May you do good and not evil.
17474 ** May you find forgiveness for yourself and forgive others.
17475 ** May you share freely, never taking more than you give.
17476 **
17477 *************************************************************************
17478 **
17479 ** This file implements routines used to report what compile-time options
17480 ** SQLite was built with.
17481 */
17482
17483 #ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS
17484
17485 /* #include "sqliteInt.h" */
17486
17487 /*
17488 ** An array of names of all compile-time options. This array should
17489 ** be sorted A-Z.
17490 **
17491 ** This array looks large, but in a typical installation actually uses
17492 ** only a handful of compile-time options, so most times this array is usually
17493 ** rather short and uses little memory space.
17494 */
17495 static const char * const azCompileOpt[] = {
17496
17497 /* These macros are provided to "stringify" the value of the define
17498 ** for those options in which the value is meaningful. */
17499 #define CTIMEOPT_VAL_(opt) #opt
17500 #define CTIMEOPT_VAL(opt) CTIMEOPT_VAL_(opt)
17501
17502 #if SQLITE_32BIT_ROWID
17503 "32BIT_ROWID",
17504 #endif
17505 #if SQLITE_4_BYTE_ALIGNED_MALLOC
17506 "4_BYTE_ALIGNED_MALLOC",
17507 #endif
17508 #if SQLITE_CASE_SENSITIVE_LIKE
17509 "CASE_SENSITIVE_LIKE",
17510 #endif
17511 #if SQLITE_CHECK_PAGES
17512 "CHECK_PAGES",
17513 #endif
17514 #if defined(__clang__) && defined(__clang_major__)
17515 "COMPILER=clang-" CTIMEOPT_VAL(__clang_major__) "."
17516 CTIMEOPT_VAL(__clang_minor__) "."
17517 CTIMEOPT_VAL(__clang_patchlevel__),
17518 #elif defined(_MSC_VER)
17519 "COMPILER=msvc-" CTIMEOPT_VAL(_MSC_VER),
17520 #elif defined(__GNUC__) && defined(__VERSION__)
17521 "COMPILER=gcc-" __VERSION__,
17522 #endif
17523 #if SQLITE_COVERAGE_TEST
17524 "COVERAGE_TEST",
17525 #endif
17526 #ifdef SQLITE_DEBUG
17527 "DEBUG",
17528 #endif
17529 #if SQLITE_DEFAULT_LOCKING_MODE
17530 "DEFAULT_LOCKING_MODE=" CTIMEOPT_VAL(SQLITE_DEFAULT_LOCKING_MODE),
17531 #endif
17532 #if defined(SQLITE_DEFAULT_MMAP_SIZE) && !defined(SQLITE_DEFAULT_MMAP_SIZE_xc)
17533 "DEFAULT_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_MMAP_SIZE),
17534 #endif
17535 #if SQLITE_DEFAULT_SYNCHRONOUS
17536 "DEFAULT_SYNCHRONOUS=" CTIMEOPT_VAL(SQLITE_DEFAULT_SYNCHRONOUS),
17537 #endif
17538 #if SQLITE_DEFAULT_WAL_SYNCHRONOUS
17539 "DEFAULT_WAL_SYNCHRONOUS=" CTIMEOPT_VAL(SQLITE_DEFAULT_WAL_SYNCHRONOUS),
17540 #endif
17541 #if SQLITE_DIRECT_OVERFLOW_READ
17542 "DIRECT_OVERFLOW_READ",
17543 #endif
17544 #if SQLITE_DISABLE_DIRSYNC
17545 "DISABLE_DIRSYNC",
17546 #endif
17547 #if SQLITE_DISABLE_LFS
17548 "DISABLE_LFS",
17549 #endif
17550 #if SQLITE_ENABLE_8_3_NAMES
17551 "ENABLE_8_3_NAMES=" CTIMEOPT_VAL(SQLITE_ENABLE_8_3_NAMES),
17552 #endif
17553 #if SQLITE_ENABLE_API_ARMOR
17554 "ENABLE_API_ARMOR",
17555 #endif
17556 #if SQLITE_ENABLE_ATOMIC_WRITE
17557 "ENABLE_ATOMIC_WRITE",
17558 #endif
17559 #if SQLITE_ENABLE_CEROD
17560 "ENABLE_CEROD",
17561 #endif
17562 #if SQLITE_ENABLE_COLUMN_METADATA
17563 "ENABLE_COLUMN_METADATA",
17564 #endif
17565 #if SQLITE_ENABLE_DBSTAT_VTAB
17566 "ENABLE_DBSTAT_VTAB",
17567 #endif
17568 #if SQLITE_ENABLE_EXPENSIVE_ASSERT
17569 "ENABLE_EXPENSIVE_ASSERT",
17570 #endif
17571 #if SQLITE_ENABLE_FTS1
17572 "ENABLE_FTS1",
17573 #endif
17574 #if SQLITE_ENABLE_FTS2
17575 "ENABLE_FTS2",
17576 #endif
17577 #if SQLITE_ENABLE_FTS3
17578 "ENABLE_FTS3",
17579 #endif
17580 #if SQLITE_ENABLE_FTS3_PARENTHESIS
17581 "ENABLE_FTS3_PARENTHESIS",
17582 #endif
17583 #if SQLITE_ENABLE_FTS4
17584 "ENABLE_FTS4",
17585 #endif
17586 #if SQLITE_ENABLE_FTS5
17587 "ENABLE_FTS5",
17588 #endif
17589 #if SQLITE_ENABLE_ICU
17590 "ENABLE_ICU",
17591 #endif
17592 #if SQLITE_ENABLE_IOTRACE
17593 "ENABLE_IOTRACE",
17594 #endif
17595 #if SQLITE_ENABLE_JSON1
17596 "ENABLE_JSON1",
17597 #endif
17598 #if SQLITE_ENABLE_LOAD_EXTENSION
17599 "ENABLE_LOAD_EXTENSION",
17600 #endif
17601 #if SQLITE_ENABLE_LOCKING_STYLE
17602 "ENABLE_LOCKING_STYLE=" CTIMEOPT_VAL(SQLITE_ENABLE_LOCKING_STYLE),
17603 #endif
17604 #if SQLITE_ENABLE_MEMORY_MANAGEMENT
17605 "ENABLE_MEMORY_MANAGEMENT",
17606 #endif
17607 #if SQLITE_ENABLE_MEMSYS3
17608 "ENABLE_MEMSYS3",
17609 #endif
17610 #if SQLITE_ENABLE_MEMSYS5
17611 "ENABLE_MEMSYS5",
17612 #endif
17613 #if SQLITE_ENABLE_OVERSIZE_CELL_CHECK
17614 "ENABLE_OVERSIZE_CELL_CHECK",
17615 #endif
17616 #if SQLITE_ENABLE_RTREE
17617 "ENABLE_RTREE",
17618 #endif
17619 #if defined(SQLITE_ENABLE_STAT4)
17620 "ENABLE_STAT4",
17621 #elif defined(SQLITE_ENABLE_STAT3)
17622 "ENABLE_STAT3",
17623 #endif
17624 #if SQLITE_ENABLE_UNLOCK_NOTIFY
17625 "ENABLE_UNLOCK_NOTIFY",
17626 #endif
17627 #if SQLITE_ENABLE_UPDATE_DELETE_LIMIT
17628 "ENABLE_UPDATE_DELETE_LIMIT",
17629 #endif
17630 #if defined(SQLITE_ENABLE_URI_00_ERROR)
17631 "ENABLE_URI_00_ERROR",
17632 #endif
17633 #if SQLITE_HAS_CODEC
17634 "HAS_CODEC",
17635 #endif
17636 #if HAVE_ISNAN || SQLITE_HAVE_ISNAN
17637 "HAVE_ISNAN",
17638 #endif
17639 #if SQLITE_HOMEGROWN_RECURSIVE_MUTEX
17640 "HOMEGROWN_RECURSIVE_MUTEX",
17641 #endif
17642 #if SQLITE_IGNORE_AFP_LOCK_ERRORS
17643 "IGNORE_AFP_LOCK_ERRORS",
17644 #endif
17645 #if SQLITE_IGNORE_FLOCK_LOCK_ERRORS
17646 "IGNORE_FLOCK_LOCK_ERRORS",
17647 #endif
17648 #ifdef SQLITE_INT64_TYPE
17649 "INT64_TYPE",
17650 #endif
17651 #ifdef SQLITE_LIKE_DOESNT_MATCH_BLOBS
17652 "LIKE_DOESNT_MATCH_BLOBS",
17653 #endif
17654 #if SQLITE_LOCK_TRACE
17655 "LOCK_TRACE",
17656 #endif
17657 #if defined(SQLITE_MAX_MMAP_SIZE) && !defined(SQLITE_MAX_MMAP_SIZE_xc)
17658 "MAX_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_MMAP_SIZE),
17659 #endif
17660 #ifdef SQLITE_MAX_SCHEMA_RETRY
17661 "MAX_SCHEMA_RETRY=" CTIMEOPT_VAL(SQLITE_MAX_SCHEMA_RETRY),
17662 #endif
17663 #if SQLITE_MEMDEBUG
17664 "MEMDEBUG",
17665 #endif
17666 #if SQLITE_MIXED_ENDIAN_64BIT_FLOAT
17667 "MIXED_ENDIAN_64BIT_FLOAT",
17668 #endif
17669 #if SQLITE_NO_SYNC
17670 "NO_SYNC",
17671 #endif
17672 #if SQLITE_OMIT_ALTERTABLE
17673 "OMIT_ALTERTABLE",
17674 #endif
17675 #if SQLITE_OMIT_ANALYZE
17676 "OMIT_ANALYZE",
17677 #endif
17678 #if SQLITE_OMIT_ATTACH
17679 "OMIT_ATTACH",
17680 #endif
17681 #if SQLITE_OMIT_AUTHORIZATION
17682 "OMIT_AUTHORIZATION",
17683 #endif
17684 #if SQLITE_OMIT_AUTOINCREMENT
17685 "OMIT_AUTOINCREMENT",
17686 #endif
17687 #if SQLITE_OMIT_AUTOINIT
17688 "OMIT_AUTOINIT",
17689 #endif
17690 #if SQLITE_OMIT_AUTOMATIC_INDEX
17691 "OMIT_AUTOMATIC_INDEX",
17692 #endif
17693 #if SQLITE_OMIT_AUTORESET
17694 "OMIT_AUTORESET",
17695 #endif
17696 #if SQLITE_OMIT_AUTOVACUUM
17697 "OMIT_AUTOVACUUM",
17698 #endif
17699 #if SQLITE_OMIT_BETWEEN_OPTIMIZATION
17700 "OMIT_BETWEEN_OPTIMIZATION",
17701 #endif
17702 #if SQLITE_OMIT_BLOB_LITERAL
17703 "OMIT_BLOB_LITERAL",
17704 #endif
17705 #if SQLITE_OMIT_BTREECOUNT
17706 "OMIT_BTREECOUNT",
17707 #endif
17708 #if SQLITE_OMIT_CAST
17709 "OMIT_CAST",
17710 #endif
17711 #if SQLITE_OMIT_CHECK
17712 "OMIT_CHECK",
17713 #endif
17714 #if SQLITE_OMIT_COMPLETE
17715 "OMIT_COMPLETE",
17716 #endif
17717 #if SQLITE_OMIT_COMPOUND_SELECT
17718 "OMIT_COMPOUND_SELECT",
17719 #endif
17720 #if SQLITE_OMIT_CTE
17721 "OMIT_CTE",
17722 #endif
17723 #if SQLITE_OMIT_DATETIME_FUNCS
17724 "OMIT_DATETIME_FUNCS",
17725 #endif
17726 #if SQLITE_OMIT_DECLTYPE
17727 "OMIT_DECLTYPE",
17728 #endif
17729 #if SQLITE_OMIT_DEPRECATED
17730 "OMIT_DEPRECATED",
17731 #endif
17732 #if SQLITE_OMIT_DISKIO
17733 "OMIT_DISKIO",
17734 #endif
17735 #if SQLITE_OMIT_EXPLAIN
17736 "OMIT_EXPLAIN",
17737 #endif
17738 #if SQLITE_OMIT_FLAG_PRAGMAS
17739 "OMIT_FLAG_PRAGMAS",
17740 #endif
17741 #if SQLITE_OMIT_FLOATING_POINT
17742 "OMIT_FLOATING_POINT",
17743 #endif
17744 #if SQLITE_OMIT_FOREIGN_KEY
17745 "OMIT_FOREIGN_KEY",
17746 #endif
17747 #if SQLITE_OMIT_GET_TABLE
17748 "OMIT_GET_TABLE",
17749 #endif
17750 #if SQLITE_OMIT_INCRBLOB
17751 "OMIT_INCRBLOB",
17752 #endif
17753 #if SQLITE_OMIT_INTEGRITY_CHECK
17754 "OMIT_INTEGRITY_CHECK",
17755 #endif
17756 #if SQLITE_OMIT_LIKE_OPTIMIZATION
17757 "OMIT_LIKE_OPTIMIZATION",
17758 #endif
17759 #if SQLITE_OMIT_LOAD_EXTENSION
17760 "OMIT_LOAD_EXTENSION",
17761 #endif
17762 #if SQLITE_OMIT_LOCALTIME
17763 "OMIT_LOCALTIME",
17764 #endif
17765 #if SQLITE_OMIT_LOOKASIDE
17766 "OMIT_LOOKASIDE",
17767 #endif
17768 #if SQLITE_OMIT_MEMORYDB
17769 "OMIT_MEMORYDB",
17770 #endif
17771 #if SQLITE_OMIT_OR_OPTIMIZATION
17772 "OMIT_OR_OPTIMIZATION",
17773 #endif
17774 #if SQLITE_OMIT_PAGER_PRAGMAS
17775 "OMIT_PAGER_PRAGMAS",
17776 #endif
17777 #if SQLITE_OMIT_PRAGMA
17778 "OMIT_PRAGMA",
17779 #endif
17780 #if SQLITE_OMIT_PROGRESS_CALLBACK
17781 "OMIT_PROGRESS_CALLBACK",
17782 #endif
17783 #if SQLITE_OMIT_QUICKBALANCE
17784 "OMIT_QUICKBALANCE",
17785 #endif
17786 #if SQLITE_OMIT_REINDEX
17787 "OMIT_REINDEX",
17788 #endif
17789 #if SQLITE_OMIT_SCHEMA_PRAGMAS
17790 "OMIT_SCHEMA_PRAGMAS",
17791 #endif
17792 #if SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS
17793 "OMIT_SCHEMA_VERSION_PRAGMAS",
17794 #endif
17795 #if SQLITE_OMIT_SHARED_CACHE
17796 "OMIT_SHARED_CACHE",
17797 #endif
17798 #if SQLITE_OMIT_SUBQUERY
17799 "OMIT_SUBQUERY",
17800 #endif
17801 #if SQLITE_OMIT_TCL_VARIABLE
17802 "OMIT_TCL_VARIABLE",
17803 #endif
17804 #if SQLITE_OMIT_TEMPDB
17805 "OMIT_TEMPDB",
17806 #endif
17807 #if SQLITE_OMIT_TRACE
17808 "OMIT_TRACE",
17809 #endif
17810 #if SQLITE_OMIT_TRIGGER
17811 "OMIT_TRIGGER",
17812 #endif
17813 #if SQLITE_OMIT_TRUNCATE_OPTIMIZATION
17814 "OMIT_TRUNCATE_OPTIMIZATION",
17815 #endif
17816 #if SQLITE_OMIT_UTF16
17817 "OMIT_UTF16",
17818 #endif
17819 #if SQLITE_OMIT_VACUUM
17820 "OMIT_VACUUM",
17821 #endif
17822 #if SQLITE_OMIT_VIEW
17823 "OMIT_VIEW",
17824 #endif
17825 #if SQLITE_OMIT_VIRTUALTABLE
17826 "OMIT_VIRTUALTABLE",
17827 #endif
17828 #if SQLITE_OMIT_WAL
17829 "OMIT_WAL",
17830 #endif
17831 #if SQLITE_OMIT_WSD
17832 "OMIT_WSD",
17833 #endif
17834 #if SQLITE_OMIT_XFER_OPT
17835 "OMIT_XFER_OPT",
17836 #endif
17837 #if SQLITE_PERFORMANCE_TRACE
17838 "PERFORMANCE_TRACE",
17839 #endif
17840 #if SQLITE_PROXY_DEBUG
17841 "PROXY_DEBUG",
17842 #endif
17843 #if SQLITE_RTREE_INT_ONLY
17844 "RTREE_INT_ONLY",
17845 #endif
17846 #if SQLITE_SECURE_DELETE
17847 "SECURE_DELETE",
17848 #endif
17849 #if SQLITE_SMALL_STACK
17850 "SMALL_STACK",
17851 #endif
17852 #if SQLITE_SOUNDEX
17853 "SOUNDEX",
17854 #endif
17855 #if SQLITE_SYSTEM_MALLOC
17856 "SYSTEM_MALLOC",
17857 #endif
17858 #if SQLITE_TCL
17859 "TCL",
17860 #endif
17861 #if defined(SQLITE_TEMP_STORE) && !defined(SQLITE_TEMP_STORE_xc)
17862 "TEMP_STORE=" CTIMEOPT_VAL(SQLITE_TEMP_STORE),
17863 #endif
17864 #if SQLITE_TEST
17865 "TEST",
17866 #endif
17867 #if defined(SQLITE_THREADSAFE)
17868 "THREADSAFE=" CTIMEOPT_VAL(SQLITE_THREADSAFE),
17869 #endif
17870 #if SQLITE_UNTESTABLE
17871 "UNTESTABLE"
17872 #endif
17873 #if SQLITE_USE_ALLOCA
17874 "USE_ALLOCA",
17875 #endif
17876 #if SQLITE_USER_AUTHENTICATION
17877 "USER_AUTHENTICATION",
17878 #endif
17879 #if SQLITE_WIN32_MALLOC
17880 "WIN32_MALLOC",
17881 #endif
17882 #if SQLITE_ZERO_MALLOC
17883 "ZERO_MALLOC"
17884 #endif
17885 };
17886
17887 /*
17888 ** Given the name of a compile-time option, return true if that option
17889 ** was used and false if not.
17890 **
17891 ** The name can optionally begin with "SQLITE_" but the "SQLITE_" prefix
17892 ** is not required for a match.
17893 */
17894 SQLITE_API int sqlite3_compileoption_used(const char *zOptName){
17895 int i, n;
17896
17897 #if SQLITE_ENABLE_API_ARMOR
17898 if( zOptName==0 ){
17899 (void)SQLITE_MISUSE_BKPT;
17900 return 0;
17901 }
17902 #endif
17903 if( sqlite3StrNICmp(zOptName, "SQLITE_", 7)==0 ) zOptName += 7;
17904 n = sqlite3Strlen30(zOptName);
17905
17906 /* Since ArraySize(azCompileOpt) is normally in single digits, a
17907 ** linear search is adequate. No need for a binary search. */
17908 for(i=0; i<ArraySize(azCompileOpt); i++){
17909 if( sqlite3StrNICmp(zOptName, azCompileOpt[i], n)==0
17910 && sqlite3IsIdChar((unsigned char)azCompileOpt[i][n])==0
17911 ){
17912 return 1;
17913 }
17914 }
17915 return 0;
17916 }
17917
17918 /*
17919 ** Return the N-th compile-time option string. If N is out of range,
17920 ** return a NULL pointer.
17921 */
17922 SQLITE_API const char *sqlite3_compileoption_get(int N){
17923 if( N>=0 && N<ArraySize(azCompileOpt) ){
17924 return azCompileOpt[N];
17925 }
17926 return 0;
17927 }
17928
17929 #endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */
17930
17931 /************** End of ctime.c ***********************************************/
17932 /************** Begin file status.c ******************************************/
17933 /*
17934 ** 2008 June 18
17935 **
17936 ** The author disclaims copyright to this source code. In place of
@@ -98938,11 +99214,12 @@
98938 const char *zName;
98939 const char *zFile;
98940 char *zPath = 0;
98941 char *zErr = 0;
98942 unsigned int flags;
98943 Db *aNew;
 
98944 char *zErrDyn = 0;
98945 sqlite3_vfs *pVfs;
98946
98947 UNUSED_PARAMETER(NotUsed);
98948
@@ -98986,12 +99263,12 @@
98986 }else{
98987 aNew = sqlite3DbRealloc(db, db->aDb, sizeof(db->aDb[0])*(db->nDb+1) );
98988 if( aNew==0 ) return;
98989 }
98990 db->aDb = aNew;
98991 aNew = &db->aDb[db->nDb];
98992 memset(aNew, 0, sizeof(*aNew));
98993
98994 /* Open the database file. If the btree is successfully opened, use
98995 ** it to obtain the database schema. At this point the schema may
98996 ** or may not be initialized.
98997 */
@@ -99003,41 +99280,41 @@
99003 sqlite3_free(zErr);
99004 return;
99005 }
99006 assert( pVfs );
99007 flags |= SQLITE_OPEN_MAIN_DB;
99008 rc = sqlite3BtreeOpen(pVfs, zPath, db, &aNew->pBt, 0, flags);
99009 sqlite3_free( zPath );
99010 db->nDb++;
99011 db->skipBtreeMutex = 0;
99012 if( rc==SQLITE_CONSTRAINT ){
99013 rc = SQLITE_ERROR;
99014 zErrDyn = sqlite3MPrintf(db, "database is already attached");
99015 }else if( rc==SQLITE_OK ){
99016 Pager *pPager;
99017 aNew->pSchema = sqlite3SchemaGet(db, aNew->pBt);
99018 if( !aNew->pSchema ){
99019 rc = SQLITE_NOMEM_BKPT;
99020 }else if( aNew->pSchema->file_format && aNew->pSchema->enc!=ENC(db) ){
99021 zErrDyn = sqlite3MPrintf(db,
99022 "attached databases must use the same text encoding as main database");
99023 rc = SQLITE_ERROR;
99024 }
99025 sqlite3BtreeEnter(aNew->pBt);
99026 pPager = sqlite3BtreePager(aNew->pBt);
99027 sqlite3PagerLockingMode(pPager, db->dfltLockMode);
99028 sqlite3BtreeSecureDelete(aNew->pBt,
99029 sqlite3BtreeSecureDelete(db->aDb[0].pBt,-1) );
99030 #ifndef SQLITE_OMIT_PAGER_PRAGMAS
99031 sqlite3BtreeSetPagerFlags(aNew->pBt,
99032 PAGER_SYNCHRONOUS_FULL | (db->flags & PAGER_FLAGS_MASK));
99033 #endif
99034 sqlite3BtreeLeave(aNew->pBt);
99035 }
99036 aNew->safety_level = SQLITE_DEFAULT_SYNCHRONOUS+1;
99037 aNew->zDbSName = sqlite3DbStrDup(db, zName);
99038 if( rc==SQLITE_OK && aNew->zDbSName==0 ){
99039 rc = SQLITE_NOMEM_BKPT;
99040 }
99041
99042
99043 #ifdef SQLITE_HAS_CODEC
@@ -108085,14 +108362,16 @@
108085 sqlite3ResolveExprNames(&sNameContext, pWhere);
108086
108087 /* Create VDBE to loop through the entries in pSrc that match the WHERE
108088 ** clause. For each row found, increment either the deferred or immediate
108089 ** foreign key constraint counter. */
108090 pWInfo = sqlite3WhereBegin(pParse, pSrc, pWhere, 0, 0, 0, 0);
108091 sqlite3VdbeAddOp2(v, OP_FkCounter, pFKey->isDeferred, nIncr);
108092 if( pWInfo ){
108093 sqlite3WhereEnd(pWInfo);
 
 
108094 }
108095
108096 /* Clean up the WHERE clause constructed above. */
108097 sqlite3ExprDelete(db, pWhere);
108098 if( iFkIfZero ){
@@ -112945,11 +113224,11 @@
112945 /* iArg: */ 0 },
112946 #endif
112947 #if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER)
112948 {/* zName: */ "foreign_key_check",
112949 /* ePragTyp: */ PragTyp_FOREIGN_KEY_CHECK,
112950 /* ePragFlg: */ PragFlg_NeedSchema,
112951 /* ColNames: */ 39, 4,
112952 /* iArg: */ 0 },
112953 #endif
112954 #if !defined(SQLITE_OMIT_FOREIGN_KEY)
112955 {/* zName: */ "foreign_key_list",
@@ -113032,11 +113311,11 @@
113032 /* iArg: */ 1 },
113033 #endif
113034 #if !defined(SQLITE_OMIT_INTEGRITY_CHECK)
113035 {/* zName: */ "integrity_check",
113036 /* ePragTyp: */ PragTyp_INTEGRITY_CHECK,
113037 /* ePragFlg: */ PragFlg_NeedSchema,
113038 /* ColNames: */ 0, 0,
113039 /* iArg: */ 0 },
113040 #endif
113041 #if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
113042 {/* zName: */ "journal_mode",
@@ -113127,11 +113406,11 @@
113127 /* iArg: */ SQLITE_QueryOnly },
113128 #endif
113129 #if !defined(SQLITE_OMIT_INTEGRITY_CHECK)
113130 {/* zName: */ "quick_check",
113131 /* ePragTyp: */ PragTyp_INTEGRITY_CHECK,
113132 /* ePragFlg: */ PragFlg_NeedSchema,
113133 /* ColNames: */ 0, 0,
113134 /* iArg: */ 0 },
113135 #endif
113136 #if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
113137 {/* zName: */ "read_uncommitted",
@@ -119765,13 +120044,16 @@
119765 ifNullRow.pLeft = pCopy;
119766 ifNullRow.iTable = pSubst->iNewTable;
119767 pCopy = &ifNullRow;
119768 }
119769 pNew = sqlite3ExprDup(db, pCopy, 0);
119770 if( pNew && (pExpr->flags & EP_FromJoin) ){
 
 
 
119771 pNew->iRightJoinTable = pExpr->iRightJoinTable;
119772 pNew->flags |= EP_FromJoin;
119773 }
119774 sqlite3ExprDelete(db, pExpr);
119775 pExpr = pNew;
119776 }
119777 }
@@ -120060,11 +120342,11 @@
120060 **
120061 ** which is not at all the same thing.
120062 **
120063 ** If the subquery is the right operand of a LEFT JOIN, then the outer
120064 ** query cannot be an aggregate. This is an artifact of the way aggregates
120065 ** are processed - there is not mechanism to determine if the LEFT JOIN
120066 ** table should be all-NULL.
120067 **
120068 ** See also tickets #306, #350, and #3300.
120069 */
120070 if( (pSubitem->fg.jointype & JT_OUTER)!=0 ){
@@ -124879,11 +125161,11 @@
124879 #ifdef SQLITE_HAS_CODEC
124880 if( db->nextPagesize ){
124881 extern void sqlite3CodecGetKey(sqlite3*, int, void**, int*);
124882 int nKey;
124883 char *zKey;
124884 sqlite3CodecGetKey(db, 0, (void**)&zKey, &nKey);
124885 if( nKey ) db->nextPagesize = 0;
124886 }
124887 #endif
124888
124889 sqlite3BtreeSetCacheSize(pTemp, db->aDb[iDb].pSchema->cache_size);
@@ -134744,10 +135026,35 @@
134744 #endif
134745 return 1;
134746 }
134747 return 0;
134748 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
134749
134750 /*
134751 ** Generate the beginning of the loop used for WHERE clause processing.
134752 ** The return value is a pointer to an opaque structure that contains
134753 ** information needed to terminate the loop. Later, the calling routine
@@ -134943,21 +135250,10 @@
134943 */
134944 initMaskSet(pMaskSet);
134945 sqlite3WhereClauseInit(&pWInfo->sWC, pWInfo);
134946 sqlite3WhereSplit(&pWInfo->sWC, pWhere, TK_AND);
134947
134948 /* Special case: a WHERE clause that is constant. Evaluate the
134949 ** expression and either jump over all of the code or fall thru.
134950 */
134951 for(ii=0; ii<sWLB.pWC->nTerm; ii++){
134952 if( nTabList==0 || sqlite3ExprIsConstantNotJoin(sWLB.pWC->a[ii].pExpr) ){
134953 sqlite3ExprIfFalse(pParse, sWLB.pWC->a[ii].pExpr, pWInfo->iBreak,
134954 SQLITE_JUMPIFNULL);
134955 sWLB.pWC->a[ii].wtFlags |= TERM_CODED;
134956 }
134957 }
134958
134959 /* Special case: No FROM clause
134960 */
134961 if( nTabList==0 ){
134962 if( pOrderBy ) pWInfo->nOBSat = pOrderBy->nExpr;
134963 if( wctrlFlags & WHERE_WANT_DISTINCT ){
@@ -134991,10 +135287,29 @@
134991 #endif
134992
134993 /* Analyze all of the subexpressions. */
134994 sqlite3WhereExprAnalyze(pTabList, &pWInfo->sWC);
134995 if( db->mallocFailed ) goto whereBeginError;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
134996
134997 if( wctrlFlags & WHERE_WANT_DISTINCT ){
134998 if( isDistinctRedundant(pParse, pTabList, &pWInfo->sWC, pResultSet) ){
134999 /* The DISTINCT marking is pointless. Ignore it. */
135000 pWInfo->eDistinct = WHERE_DISTINCT_UNIQUE;
@@ -144646,10 +144961,62 @@
144646 SQLITE_API void sqlite3_snapshot_free(sqlite3_snapshot *pSnapshot){
144647 sqlite3_free(pSnapshot);
144648 }
144649 #endif /* SQLITE_ENABLE_SNAPSHOT */
144650
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
144651 /************** End of main.c ************************************************/
144652 /************** Begin file notify.c ******************************************/
144653 /*
144654 ** 2009 March 3
144655 **
@@ -199150,11 +199517,11 @@
199150 int nArg, /* Number of args */
199151 sqlite3_value **apUnused /* Function arguments */
199152 ){
199153 assert( nArg==0 );
199154 UNUSED_PARAM2(nArg, apUnused);
199155 sqlite3_result_text(pCtx, "fts5: 2017-06-13 04:31:54 35b34bdf0843b49be39e13ed212e918c2d45afdb8374b5cd02ba6d2d5b16b3b9", -1, SQLITE_TRANSIENT);
199156 }
199157
199158 static int fts5Init(sqlite3 *db){
199159 static const sqlite3_module fts5Mod = {
199160 /* iVersion */ 2,
199161
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -20,10 +20,748 @@
20 #define SQLITE_CORE 1
21 #define SQLITE_AMALGAMATION 1
22 #ifndef SQLITE_PRIVATE
23 # define SQLITE_PRIVATE static
24 #endif
25 /************** Begin file ctime.c *******************************************/
26 /*
27 ** 2010 February 23
28 **
29 ** The author disclaims copyright to this source code. In place of
30 ** a legal notice, here is a blessing:
31 **
32 ** May you do good and not evil.
33 ** May you find forgiveness for yourself and forgive others.
34 ** May you share freely, never taking more than you give.
35 **
36 *************************************************************************
37 **
38 ** This file implements routines used to report what compile-time options
39 ** SQLite was built with.
40 */
41
42 #ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS
43
44
45 /* These macros are provided to "stringify" the value of the define
46 ** for those options in which the value is meaningful. */
47 #define CTIMEOPT_VAL_(opt) #opt
48 #define CTIMEOPT_VAL(opt) CTIMEOPT_VAL_(opt)
49
50 /*
51 ** An array of names of all compile-time options. This array should
52 ** be sorted A-Z.
53 **
54 ** This array looks large, but in a typical installation actually uses
55 ** only a handful of compile-time options, so most times this array is usually
56 ** rather short and uses little memory space.
57 */
58 static const char * const sqlite3azCompileOpt[] = {
59
60 /*
61 ** BEGIN CODE GENERATED BY tool/mkctime.tcl
62 */
63 #if SQLITE_32BIT_ROWID
64 "32BIT_ROWID",
65 #endif
66 #if SQLITE_4_BYTE_ALIGNED_MALLOC
67 "4_BYTE_ALIGNED_MALLOC",
68 #endif
69 #if SQLITE_64BIT_STATS
70 "64BIT_STATS",
71 #endif
72 #if SQLITE_ALLOW_COVERING_INDEX_SCAN
73 "ALLOW_COVERING_INDEX_SCAN",
74 #endif
75 #if SQLITE_ALLOW_URI_AUTHORITY
76 "ALLOW_URI_AUTHORITY",
77 #endif
78 #ifdef SQLITE_BITMASK_TYPE
79 "BITMASK_TYPE=" CTIMEOPT_VAL(SQLITE_BITMASK_TYPE),
80 #endif
81 #if SQLITE_BUG_COMPATIBLE_20160819
82 "BUG_COMPATIBLE_20160819",
83 #endif
84 #if SQLITE_CASE_SENSITIVE_LIKE
85 "CASE_SENSITIVE_LIKE",
86 #endif
87 #if SQLITE_CHECK_PAGES
88 "CHECK_PAGES",
89 #endif
90 #if defined(__clang__) && defined(__clang_major__)
91 "COMPILER=clang-" CTIMEOPT_VAL(__clang_major__) "."
92 CTIMEOPT_VAL(__clang_minor__) "."
93 CTIMEOPT_VAL(__clang_patchlevel__),
94 #elif defined(_MSC_VER)
95 "COMPILER=msvc-" CTIMEOPT_VAL(_MSC_VER),
96 #elif defined(__GNUC__) && defined(__VERSION__)
97 "COMPILER=gcc-" __VERSION__,
98 #endif
99 #if SQLITE_COVERAGE_TEST
100 "COVERAGE_TEST",
101 #endif
102 #if SQLITE_DEBUG
103 "DEBUG",
104 #endif
105 #if SQLITE_DEFAULT_AUTOMATIC_INDEX
106 "DEFAULT_AUTOMATIC_INDEX",
107 #endif
108 #if SQLITE_DEFAULT_AUTOVACUUM
109 "DEFAULT_AUTOVACUUM",
110 #endif
111 #ifdef SQLITE_DEFAULT_CACHE_SIZE
112 "DEFAULT_CACHE_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_CACHE_SIZE),
113 #endif
114 #if SQLITE_DEFAULT_CKPTFULLFSYNC
115 "DEFAULT_CKPTFULLFSYNC",
116 #endif
117 #ifdef SQLITE_DEFAULT_FILE_FORMAT
118 "DEFAULT_FILE_FORMAT=" CTIMEOPT_VAL(SQLITE_DEFAULT_FILE_FORMAT),
119 #endif
120 #ifdef SQLITE_DEFAULT_FILE_PERMISSIONS
121 "DEFAULT_FILE_PERMISSIONS=" CTIMEOPT_VAL(SQLITE_DEFAULT_FILE_PERMISSIONS),
122 #endif
123 #if SQLITE_DEFAULT_FOREIGN_KEYS
124 "DEFAULT_FOREIGN_KEYS",
125 #endif
126 #ifdef SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT
127 "DEFAULT_JOURNAL_SIZE_LIMIT=" CTIMEOPT_VAL(SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT),
128 #endif
129 #ifdef SQLITE_DEFAULT_LOCKING_MODE
130 "DEFAULT_LOCKING_MODE=" CTIMEOPT_VAL(SQLITE_DEFAULT_LOCKING_MODE),
131 #endif
132 #ifdef SQLITE_DEFAULT_LOOKASIDE
133 "DEFAULT_LOOKASIDE=" CTIMEOPT_VAL(SQLITE_DEFAULT_LOOKASIDE),
134 #endif
135 #if SQLITE_DEFAULT_MEMSTATUS
136 "DEFAULT_MEMSTATUS",
137 #endif
138 #ifdef SQLITE_DEFAULT_MMAP_SIZE
139 "DEFAULT_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_MMAP_SIZE),
140 #endif
141 #ifdef SQLITE_DEFAULT_PAGE_SIZE
142 "DEFAULT_PAGE_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_PAGE_SIZE),
143 #endif
144 #ifdef SQLITE_DEFAULT_PCACHE_INITSZ
145 "DEFAULT_PCACHE_INITSZ=" CTIMEOPT_VAL(SQLITE_DEFAULT_PCACHE_INITSZ),
146 #endif
147 #ifdef SQLITE_DEFAULT_PROXYDIR_PERMISSIONS
148 "DEFAULT_PROXYDIR_PERMISSIONS=" CTIMEOPT_VAL(SQLITE_DEFAULT_PROXYDIR_PERMISSIONS),
149 #endif
150 #if SQLITE_DEFAULT_RECURSIVE_TRIGGERS
151 "DEFAULT_RECURSIVE_TRIGGERS",
152 #endif
153 #ifdef SQLITE_DEFAULT_ROWEST
154 "DEFAULT_ROWEST=" CTIMEOPT_VAL(SQLITE_DEFAULT_ROWEST),
155 #endif
156 #ifdef SQLITE_DEFAULT_SECTOR_SIZE
157 "DEFAULT_SECTOR_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_SECTOR_SIZE),
158 #endif
159 #ifdef SQLITE_DEFAULT_SYNCHRONOUS
160 "DEFAULT_SYNCHRONOUS=" CTIMEOPT_VAL(SQLITE_DEFAULT_SYNCHRONOUS),
161 #endif
162 #ifdef SQLITE_DEFAULT_WAL_AUTOCHECKPOINT
163 "DEFAULT_WAL_AUTOCHECKPOINT=" CTIMEOPT_VAL(SQLITE_DEFAULT_WAL_AUTOCHECKPOINT),
164 #endif
165 #ifdef SQLITE_DEFAULT_WAL_SYNCHRONOUS
166 "DEFAULT_WAL_SYNCHRONOUS=" CTIMEOPT_VAL(SQLITE_DEFAULT_WAL_SYNCHRONOUS),
167 #endif
168 #ifdef SQLITE_DEFAULT_WORKER_THREADS
169 "DEFAULT_WORKER_THREADS=" CTIMEOPT_VAL(SQLITE_DEFAULT_WORKER_THREADS),
170 #endif
171 #if SQLITE_DIRECT_OVERFLOW_READ
172 "DIRECT_OVERFLOW_READ",
173 #endif
174 #if SQLITE_DISABLE_DIRSYNC
175 "DISABLE_DIRSYNC",
176 #endif
177 #if SQLITE_DISABLE_FTS3_UNICODE
178 "DISABLE_FTS3_UNICODE",
179 #endif
180 #if SQLITE_DISABLE_FTS4_DEFERRED
181 "DISABLE_FTS4_DEFERRED",
182 #endif
183 #if SQLITE_DISABLE_INTRINSIC
184 "DISABLE_INTRINSIC",
185 #endif
186 #if SQLITE_DISABLE_LFS
187 "DISABLE_LFS",
188 #endif
189 #if SQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS
190 "DISABLE_PAGECACHE_OVERFLOW_STATS",
191 #endif
192 #if SQLITE_DISABLE_SKIPAHEAD_DISTINCT
193 "DISABLE_SKIPAHEAD_DISTINCT",
194 #endif
195 #ifdef SQLITE_ENABLE_8_3_NAMES
196 "ENABLE_8_3_NAMES=" CTIMEOPT_VAL(SQLITE_ENABLE_8_3_NAMES),
197 #endif
198 #if SQLITE_ENABLE_API_ARMOR
199 "ENABLE_API_ARMOR",
200 #endif
201 #if SQLITE_ENABLE_ATOMIC_WRITE
202 "ENABLE_ATOMIC_WRITE",
203 #endif
204 #if SQLITE_ENABLE_CEROD
205 "ENABLE_CEROD",
206 #endif
207 #if SQLITE_ENABLE_COLUMN_METADATA
208 "ENABLE_COLUMN_METADATA",
209 #endif
210 #if SQLITE_ENABLE_COLUMN_USED_MASK
211 "ENABLE_COLUMN_USED_MASK",
212 #endif
213 #if SQLITE_ENABLE_COSTMULT
214 "ENABLE_COSTMULT",
215 #endif
216 #if SQLITE_ENABLE_CURSOR_HINTS
217 "ENABLE_CURSOR_HINTS",
218 #endif
219 #if SQLITE_ENABLE_DBSTAT_VTAB
220 "ENABLE_DBSTAT_VTAB",
221 #endif
222 #if SQLITE_ENABLE_EXPENSIVE_ASSERT
223 "ENABLE_EXPENSIVE_ASSERT",
224 #endif
225 #if SQLITE_ENABLE_FTS1
226 "ENABLE_FTS1",
227 #endif
228 #if SQLITE_ENABLE_FTS2
229 "ENABLE_FTS2",
230 #endif
231 #if SQLITE_ENABLE_FTS3
232 "ENABLE_FTS3",
233 #endif
234 #if SQLITE_ENABLE_FTS3_PARENTHESIS
235 "ENABLE_FTS3_PARENTHESIS",
236 #endif
237 #if SQLITE_ENABLE_FTS3_TOKENIZER
238 "ENABLE_FTS3_TOKENIZER",
239 #endif
240 #if SQLITE_ENABLE_FTS4
241 "ENABLE_FTS4",
242 #endif
243 #if SQLITE_ENABLE_FTS5
244 "ENABLE_FTS5",
245 #endif
246 #if SQLITE_ENABLE_HIDDEN_COLUMNS
247 "ENABLE_HIDDEN_COLUMNS",
248 #endif
249 #if SQLITE_ENABLE_ICU
250 "ENABLE_ICU",
251 #endif
252 #if SQLITE_ENABLE_IOTRACE
253 "ENABLE_IOTRACE",
254 #endif
255 #if SQLITE_ENABLE_JSON1
256 "ENABLE_JSON1",
257 #endif
258 #if SQLITE_ENABLE_LOAD_EXTENSION
259 "ENABLE_LOAD_EXTENSION",
260 #endif
261 #ifdef SQLITE_ENABLE_LOCKING_STYLE
262 "ENABLE_LOCKING_STYLE=" CTIMEOPT_VAL(SQLITE_ENABLE_LOCKING_STYLE),
263 #endif
264 #if SQLITE_ENABLE_MEMORY_MANAGEMENT
265 "ENABLE_MEMORY_MANAGEMENT",
266 #endif
267 #if SQLITE_ENABLE_MEMSYS3
268 "ENABLE_MEMSYS3",
269 #endif
270 #if SQLITE_ENABLE_MEMSYS5
271 "ENABLE_MEMSYS5",
272 #endif
273 #if SQLITE_ENABLE_MULTIPLEX
274 "ENABLE_MULTIPLEX",
275 #endif
276 #if SQLITE_ENABLE_NULL_TRIM
277 "ENABLE_NULL_TRIM",
278 #endif
279 #if SQLITE_ENABLE_OVERSIZE_CELL_CHECK
280 "ENABLE_OVERSIZE_CELL_CHECK",
281 #endif
282 #if SQLITE_ENABLE_PREUPDATE_HOOK
283 "ENABLE_PREUPDATE_HOOK",
284 #endif
285 #if SQLITE_ENABLE_RBU
286 "ENABLE_RBU",
287 #endif
288 #if SQLITE_ENABLE_RTREE
289 "ENABLE_RTREE",
290 #endif
291 #if SQLITE_ENABLE_SELECTTRACE
292 "ENABLE_SELECTTRACE",
293 #endif
294 #if SQLITE_ENABLE_SESSION
295 "ENABLE_SESSION",
296 #endif
297 #if SQLITE_ENABLE_SNAPSHOT
298 "ENABLE_SNAPSHOT",
299 #endif
300 #if SQLITE_ENABLE_SQLLOG
301 "ENABLE_SQLLOG",
302 #endif
303 #if defined(SQLITE_ENABLE_STAT4)
304 "ENABLE_STAT4",
305 #elif defined(SQLITE_ENABLE_STAT3)
306 "ENABLE_STAT3",
307 #endif
308 #if SQLITE_ENABLE_STMT_SCANSTATUS
309 "ENABLE_STMT_SCANSTATUS",
310 #endif
311 #if SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
312 "ENABLE_UNKNOWN_SQL_FUNCTION",
313 #endif
314 #if SQLITE_ENABLE_UNLOCK_NOTIFY
315 "ENABLE_UNLOCK_NOTIFY",
316 #endif
317 #if SQLITE_ENABLE_UPDATE_DELETE_LIMIT
318 "ENABLE_UPDATE_DELETE_LIMIT",
319 #endif
320 #if SQLITE_ENABLE_URI_00_ERROR
321 "ENABLE_URI_00_ERROR",
322 #endif
323 #if SQLITE_ENABLE_VFSTRACE
324 "ENABLE_VFSTRACE",
325 #endif
326 #if SQLITE_ENABLE_WHERETRACE
327 "ENABLE_WHERETRACE",
328 #endif
329 #if SQLITE_ENABLE_ZIPVFS
330 "ENABLE_ZIPVFS",
331 #endif
332 #if SQLITE_EXPLAIN_ESTIMATED_ROWS
333 "EXPLAIN_ESTIMATED_ROWS",
334 #endif
335 #if SQLITE_EXTRA_IFNULLROW
336 "EXTRA_IFNULLROW",
337 #endif
338 #ifdef SQLITE_EXTRA_INIT
339 "EXTRA_INIT=" CTIMEOPT_VAL(SQLITE_EXTRA_INIT),
340 #endif
341 #ifdef SQLITE_EXTRA_SHUTDOWN
342 "EXTRA_SHUTDOWN=" CTIMEOPT_VAL(SQLITE_EXTRA_SHUTDOWN),
343 #endif
344 #ifdef SQLITE_FTS3_MAX_EXPR_DEPTH
345 "FTS3_MAX_EXPR_DEPTH=" CTIMEOPT_VAL(SQLITE_FTS3_MAX_EXPR_DEPTH),
346 #endif
347 #if SQLITE_FTS5_ENABLE_TEST_MI
348 "FTS5_ENABLE_TEST_MI",
349 #endif
350 #if SQLITE_FTS5_NO_WITHOUT_ROWID
351 "FTS5_NO_WITHOUT_ROWID",
352 #endif
353 #if SQLITE_HAS_CODEC
354 "HAS_CODEC",
355 #endif
356 #if HAVE_ISNAN || SQLITE_HAVE_ISNAN
357 "HAVE_ISNAN",
358 #endif
359 #if SQLITE_HOMEGROWN_RECURSIVE_MUTEX
360 "HOMEGROWN_RECURSIVE_MUTEX",
361 #endif
362 #if SQLITE_IGNORE_AFP_LOCK_ERRORS
363 "IGNORE_AFP_LOCK_ERRORS",
364 #endif
365 #if SQLITE_IGNORE_FLOCK_LOCK_ERRORS
366 "IGNORE_FLOCK_LOCK_ERRORS",
367 #endif
368 #if SQLITE_INLINE_MEMCPY
369 "INLINE_MEMCPY",
370 #endif
371 #if SQLITE_INT64_TYPE
372 "INT64_TYPE",
373 #endif
374 #ifdef SQLITE_INTEGRITY_CHECK_ERROR_MAX
375 "INTEGRITY_CHECK_ERROR_MAX=" CTIMEOPT_VAL(SQLITE_INTEGRITY_CHECK_ERROR_MAX),
376 #endif
377 #if SQLITE_LIKE_DOESNT_MATCH_BLOBS
378 "LIKE_DOESNT_MATCH_BLOBS",
379 #endif
380 #if SQLITE_LOCK_TRACE
381 "LOCK_TRACE",
382 #endif
383 #if SQLITE_LOG_CACHE_SPILL
384 "LOG_CACHE_SPILL",
385 #endif
386 #ifdef SQLITE_MALLOC_SOFT_LIMIT
387 "MALLOC_SOFT_LIMIT=" CTIMEOPT_VAL(SQLITE_MALLOC_SOFT_LIMIT),
388 #endif
389 #ifdef SQLITE_MAX_ATTACHED
390 "MAX_ATTACHED=" CTIMEOPT_VAL(SQLITE_MAX_ATTACHED),
391 #endif
392 #ifdef SQLITE_MAX_COLUMN
393 "MAX_COLUMN=" CTIMEOPT_VAL(SQLITE_MAX_COLUMN),
394 #endif
395 #ifdef SQLITE_MAX_COMPOUND_SELECT
396 "MAX_COMPOUND_SELECT=" CTIMEOPT_VAL(SQLITE_MAX_COMPOUND_SELECT),
397 #endif
398 #ifdef SQLITE_MAX_DEFAULT_PAGE_SIZE
399 "MAX_DEFAULT_PAGE_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_DEFAULT_PAGE_SIZE),
400 #endif
401 #ifdef SQLITE_MAX_EXPR_DEPTH
402 "MAX_EXPR_DEPTH=" CTIMEOPT_VAL(SQLITE_MAX_EXPR_DEPTH),
403 #endif
404 #ifdef SQLITE_MAX_FUNCTION_ARG
405 "MAX_FUNCTION_ARG=" CTIMEOPT_VAL(SQLITE_MAX_FUNCTION_ARG),
406 #endif
407 #ifdef SQLITE_MAX_LENGTH
408 "MAX_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_LENGTH),
409 #endif
410 #ifdef SQLITE_MAX_LIKE_PATTERN_LENGTH
411 "MAX_LIKE_PATTERN_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_LIKE_PATTERN_LENGTH),
412 #endif
413 #ifdef SQLITE_MAX_MEMORY
414 "MAX_MEMORY=" CTIMEOPT_VAL(SQLITE_MAX_MEMORY),
415 #endif
416 #ifdef SQLITE_MAX_MMAP_SIZE
417 "MAX_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_MMAP_SIZE),
418 #endif
419 #ifdef SQLITE_MAX_MMAP_SIZE_
420 "MAX_MMAP_SIZE_=" CTIMEOPT_VAL(SQLITE_MAX_MMAP_SIZE_),
421 #endif
422 #ifdef SQLITE_MAX_PAGE_COUNT
423 "MAX_PAGE_COUNT=" CTIMEOPT_VAL(SQLITE_MAX_PAGE_COUNT),
424 #endif
425 #ifdef SQLITE_MAX_PAGE_SIZE
426 "MAX_PAGE_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_PAGE_SIZE),
427 #endif
428 #ifdef SQLITE_MAX_SCHEMA_RETRY
429 "MAX_SCHEMA_RETRY=" CTIMEOPT_VAL(SQLITE_MAX_SCHEMA_RETRY),
430 #endif
431 #ifdef SQLITE_MAX_SQL_LENGTH
432 "MAX_SQL_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_SQL_LENGTH),
433 #endif
434 #ifdef SQLITE_MAX_TRIGGER_DEPTH
435 "MAX_TRIGGER_DEPTH=" CTIMEOPT_VAL(SQLITE_MAX_TRIGGER_DEPTH),
436 #endif
437 #ifdef SQLITE_MAX_VARIABLE_NUMBER
438 "MAX_VARIABLE_NUMBER=" CTIMEOPT_VAL(SQLITE_MAX_VARIABLE_NUMBER),
439 #endif
440 #ifdef SQLITE_MAX_VDBE_OP
441 "MAX_VDBE_OP=" CTIMEOPT_VAL(SQLITE_MAX_VDBE_OP),
442 #endif
443 #ifdef SQLITE_MAX_WORKER_THREADS
444 "MAX_WORKER_THREADS=" CTIMEOPT_VAL(SQLITE_MAX_WORKER_THREADS),
445 #endif
446 #if SQLITE_MEMDEBUG
447 "MEMDEBUG",
448 #endif
449 #if SQLITE_MIXED_ENDIAN_64BIT_FLOAT
450 "MIXED_ENDIAN_64BIT_FLOAT",
451 #endif
452 #if SQLITE_MMAP_READWRITE
453 "MMAP_READWRITE",
454 #endif
455 #if SQLITE_MUTEX_NOOP
456 "MUTEX_NOOP",
457 #endif
458 #if SQLITE_MUTEX_NREF
459 "MUTEX_NREF",
460 #endif
461 #if SQLITE_MUTEX_OMIT
462 "MUTEX_OMIT",
463 #endif
464 #if SQLITE_MUTEX_PTHREADS
465 "MUTEX_PTHREADS",
466 #endif
467 #if SQLITE_MUTEX_W32
468 "MUTEX_W32",
469 #endif
470 #if SQLITE_NEED_ERR_NAME
471 "NEED_ERR_NAME",
472 #endif
473 #if SQLITE_NOINLINE
474 "NOINLINE",
475 #endif
476 #if SQLITE_NO_SYNC
477 "NO_SYNC",
478 #endif
479 #if SQLITE_OMIT_ALTERTABLE
480 "OMIT_ALTERTABLE",
481 #endif
482 #if SQLITE_OMIT_ANALYZE
483 "OMIT_ANALYZE",
484 #endif
485 #if SQLITE_OMIT_ATTACH
486 "OMIT_ATTACH",
487 #endif
488 #if SQLITE_OMIT_AUTHORIZATION
489 "OMIT_AUTHORIZATION",
490 #endif
491 #if SQLITE_OMIT_AUTOINCREMENT
492 "OMIT_AUTOINCREMENT",
493 #endif
494 #if SQLITE_OMIT_AUTOINIT
495 "OMIT_AUTOINIT",
496 #endif
497 #if SQLITE_OMIT_AUTOMATIC_INDEX
498 "OMIT_AUTOMATIC_INDEX",
499 #endif
500 #if SQLITE_OMIT_AUTORESET
501 "OMIT_AUTORESET",
502 #endif
503 #if SQLITE_OMIT_AUTOVACUUM
504 "OMIT_AUTOVACUUM",
505 #endif
506 #if SQLITE_OMIT_BETWEEN_OPTIMIZATION
507 "OMIT_BETWEEN_OPTIMIZATION",
508 #endif
509 #if SQLITE_OMIT_BLOB_LITERAL
510 "OMIT_BLOB_LITERAL",
511 #endif
512 #if SQLITE_OMIT_BTREECOUNT
513 "OMIT_BTREECOUNT",
514 #endif
515 #if SQLITE_OMIT_CAST
516 "OMIT_CAST",
517 #endif
518 #if SQLITE_OMIT_CHECK
519 "OMIT_CHECK",
520 #endif
521 #if SQLITE_OMIT_COMPLETE
522 "OMIT_COMPLETE",
523 #endif
524 #if SQLITE_OMIT_COMPOUND_SELECT
525 "OMIT_COMPOUND_SELECT",
526 #endif
527 #if SQLITE_OMIT_CONFLICT_CLAUSE
528 "OMIT_CONFLICT_CLAUSE",
529 #endif
530 #if SQLITE_OMIT_CTE
531 "OMIT_CTE",
532 #endif
533 #if SQLITE_OMIT_DATETIME_FUNCS
534 "OMIT_DATETIME_FUNCS",
535 #endif
536 #if SQLITE_OMIT_DECLTYPE
537 "OMIT_DECLTYPE",
538 #endif
539 #if SQLITE_OMIT_DEPRECATED
540 "OMIT_DEPRECATED",
541 #endif
542 #if SQLITE_OMIT_DISKIO
543 "OMIT_DISKIO",
544 #endif
545 #if SQLITE_OMIT_EXPLAIN
546 "OMIT_EXPLAIN",
547 #endif
548 #if SQLITE_OMIT_FLAG_PRAGMAS
549 "OMIT_FLAG_PRAGMAS",
550 #endif
551 #if SQLITE_OMIT_FLOATING_POINT
552 "OMIT_FLOATING_POINT",
553 #endif
554 #if SQLITE_OMIT_FOREIGN_KEY
555 "OMIT_FOREIGN_KEY",
556 #endif
557 #if SQLITE_OMIT_GET_TABLE
558 "OMIT_GET_TABLE",
559 #endif
560 #if SQLITE_OMIT_HEX_INTEGER
561 "OMIT_HEX_INTEGER",
562 #endif
563 #if SQLITE_OMIT_INCRBLOB
564 "OMIT_INCRBLOB",
565 #endif
566 #if SQLITE_OMIT_INTEGRITY_CHECK
567 "OMIT_INTEGRITY_CHECK",
568 #endif
569 #if SQLITE_OMIT_LIKE_OPTIMIZATION
570 "OMIT_LIKE_OPTIMIZATION",
571 #endif
572 #if SQLITE_OMIT_LOAD_EXTENSION
573 "OMIT_LOAD_EXTENSION",
574 #endif
575 #if SQLITE_OMIT_LOCALTIME
576 "OMIT_LOCALTIME",
577 #endif
578 #if SQLITE_OMIT_LOOKASIDE
579 "OMIT_LOOKASIDE",
580 #endif
581 #if SQLITE_OMIT_MEMORYDB
582 "OMIT_MEMORYDB",
583 #endif
584 #if SQLITE_OMIT_OR_OPTIMIZATION
585 "OMIT_OR_OPTIMIZATION",
586 #endif
587 #if SQLITE_OMIT_PAGER_PRAGMAS
588 "OMIT_PAGER_PRAGMAS",
589 #endif
590 #if SQLITE_OMIT_PARSER_TRACE
591 "OMIT_PARSER_TRACE",
592 #endif
593 #if SQLITE_OMIT_POPEN
594 "OMIT_POPEN",
595 #endif
596 #if SQLITE_OMIT_PRAGMA
597 "OMIT_PRAGMA",
598 #endif
599 #if SQLITE_OMIT_PROGRESS_CALLBACK
600 "OMIT_PROGRESS_CALLBACK",
601 #endif
602 #if SQLITE_OMIT_QUICKBALANCE
603 "OMIT_QUICKBALANCE",
604 #endif
605 #if SQLITE_OMIT_REINDEX
606 "OMIT_REINDEX",
607 #endif
608 #if SQLITE_OMIT_SCHEMA_PRAGMAS
609 "OMIT_SCHEMA_PRAGMAS",
610 #endif
611 #if SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS
612 "OMIT_SCHEMA_VERSION_PRAGMAS",
613 #endif
614 #if SQLITE_OMIT_SHARED_CACHE
615 "OMIT_SHARED_CACHE",
616 #endif
617 #if SQLITE_OMIT_SHUTDOWN_DIRECTORIES
618 "OMIT_SHUTDOWN_DIRECTORIES",
619 #endif
620 #if SQLITE_OMIT_SUBQUERY
621 "OMIT_SUBQUERY",
622 #endif
623 #if SQLITE_OMIT_TCL_VARIABLE
624 "OMIT_TCL_VARIABLE",
625 #endif
626 #if SQLITE_OMIT_TEMPDB
627 "OMIT_TEMPDB",
628 #endif
629 #if SQLITE_OMIT_TEST_CONTROL
630 "OMIT_TEST_CONTROL",
631 #endif
632 #if SQLITE_OMIT_TRACE
633 "OMIT_TRACE",
634 #endif
635 #if SQLITE_OMIT_TRIGGER
636 "OMIT_TRIGGER",
637 #endif
638 #if SQLITE_OMIT_TRUNCATE_OPTIMIZATION
639 "OMIT_TRUNCATE_OPTIMIZATION",
640 #endif
641 #if SQLITE_OMIT_UTF16
642 "OMIT_UTF16",
643 #endif
644 #if SQLITE_OMIT_VACUUM
645 "OMIT_VACUUM",
646 #endif
647 #if SQLITE_OMIT_VIEW
648 "OMIT_VIEW",
649 #endif
650 #if SQLITE_OMIT_VIRTUALTABLE
651 "OMIT_VIRTUALTABLE",
652 #endif
653 #if SQLITE_OMIT_WAL
654 "OMIT_WAL",
655 #endif
656 #if SQLITE_OMIT_WSD
657 "OMIT_WSD",
658 #endif
659 #if SQLITE_OMIT_XFER_OPT
660 "OMIT_XFER_OPT",
661 #endif
662 #if SQLITE_PCACHE_SEPARATE_HEADER
663 "PCACHE_SEPARATE_HEADER",
664 #endif
665 #if SQLITE_PERFORMANCE_TRACE
666 "PERFORMANCE_TRACE",
667 #endif
668 #if SQLITE_POWERSAFE_OVERWRITE
669 "POWERSAFE_OVERWRITE",
670 #endif
671 #if SQLITE_PREFER_PROXY_LOCKING
672 "PREFER_PROXY_LOCKING",
673 #endif
674 #if SQLITE_PROXY_DEBUG
675 "PROXY_DEBUG",
676 #endif
677 #if SQLITE_REVERSE_UNORDERED_SELECTS
678 "REVERSE_UNORDERED_SELECTS",
679 #endif
680 #if SQLITE_RTREE_INT_ONLY
681 "RTREE_INT_ONLY",
682 #endif
683 #if SQLITE_SECURE_DELETE
684 "SECURE_DELETE",
685 #endif
686 #if SQLITE_SMALL_STACK
687 "SMALL_STACK",
688 #endif
689 #ifdef SQLITE_SORTER_PMASZ
690 "SORTER_PMASZ=" CTIMEOPT_VAL(SQLITE_SORTER_PMASZ),
691 #endif
692 #if SQLITE_SOUNDEX
693 "SOUNDEX",
694 #endif
695 #ifdef SQLITE_STAT4_SAMPLES
696 "STAT4_SAMPLES=" CTIMEOPT_VAL(SQLITE_STAT4_SAMPLES),
697 #endif
698 #ifdef SQLITE_STMTJRNL_SPILL
699 "STMTJRNL_SPILL=" CTIMEOPT_VAL(SQLITE_STMTJRNL_SPILL),
700 #endif
701 #if SQLITE_SUBSTR_COMPATIBILITY
702 "SUBSTR_COMPATIBILITY",
703 #endif
704 #if SQLITE_SYSTEM_MALLOC
705 "SYSTEM_MALLOC",
706 #endif
707 #if SQLITE_TCL
708 "TCL",
709 #endif
710 #ifdef SQLITE_TEMP_STORE
711 "TEMP_STORE=" CTIMEOPT_VAL(SQLITE_TEMP_STORE),
712 #endif
713 #if SQLITE_TEST
714 "TEST",
715 #endif
716 #if defined(SQLITE_THREADSAFE)
717 "THREADSAFE=" CTIMEOPT_VAL(SQLITE_THREADSAFE),
718 #elif defined(THREADSAFE)
719 "THREADSAFE=" CTIMEOPT_VAL(THREADSAFE),
720 #else
721 "THREADSAFE=1",
722 #endif
723 #if SQLITE_UNLINK_AFTER_CLOSE
724 "UNLINK_AFTER_CLOSE",
725 #endif
726 #if SQLITE_UNTESTABLE
727 "UNTESTABLE",
728 #endif
729 #if SQLITE_USER_AUTHENTICATION
730 "USER_AUTHENTICATION",
731 #endif
732 #if SQLITE_USE_ALLOCA
733 "USE_ALLOCA",
734 #endif
735 #if SQLITE_USE_FCNTL_TRACE
736 "USE_FCNTL_TRACE",
737 #endif
738 #if SQLITE_USE_URI
739 "USE_URI",
740 #endif
741 #if SQLITE_VDBE_COVERAGE
742 "VDBE_COVERAGE",
743 #endif
744 #if SQLITE_WIN32_MALLOC
745 "WIN32_MALLOC",
746 #endif
747 #if SQLITE_ZERO_MALLOC
748 "ZERO_MALLOC",
749 #endif
750 /*
751 ** END CODE GENERATED BY tool/mkctime.tcl
752 */
753 };
754
755 SQLITE_PRIVATE const char **sqlite3CompileOptions(int *pnOpt){
756 *pnOpt = sizeof(sqlite3azCompileOpt) / sizeof(sqlite3azCompileOpt[0]);
757 return (const char**)sqlite3azCompileOpt;
758 }
759
760 #endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */
761
762 /************** End of ctime.c ***********************************************/
763 /************** Begin file sqliteInt.h ***************************************/
764 /*
765 ** 2001 September 15
766 **
767 ** The author disclaims copyright to this source code. In place of
@@ -398,11 +1136,11 @@
1136 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
1137 ** [sqlite_version()] and [sqlite_source_id()].
1138 */
1139 #define SQLITE_VERSION "3.20.0"
1140 #define SQLITE_VERSION_NUMBER 3020000
1141 #define SQLITE_SOURCE_ID "2017-06-24 13:31:40 0583b84ab444db3ae3c93db619b67bf84b0305ab989200e77214e02ff2dc923a"
1142
1143 /*
1144 ** CAPI3REF: Run-Time Library Version Numbers
1145 ** KEYWORDS: sqlite3_version sqlite3_sourceid
1146 **
@@ -11101,10 +11839,15 @@
11839 ** threads can use SQLite as long as no two threads try to use the same
11840 ** database connection at the same time.
11841 **
11842 ** Older versions of SQLite used an optional THREADSAFE macro.
11843 ** We support that for legacy.
11844 **
11845 ** To ensure that the correct value of "THREADSAFE" is reported when querying
11846 ** for compile-time options at runtime (e.g. "PRAGMA compile_options"), this
11847 ** logic is partially replicated in ctime.c. If it is updated here, it should
11848 ** also be updated there.
11849 */
11850 #if !defined(SQLITE_THREADSAFE)
11851 # if defined(THREADSAFE)
11852 # define SQLITE_THREADSAFE THREADSAFE
11853 # else
@@ -11691,11 +12434,10 @@
12434 ** Provide a default value for SQLITE_TEMP_STORE in case it is not specified
12435 ** on the command-line
12436 */
12437 #ifndef SQLITE_TEMP_STORE
12438 # define SQLITE_TEMP_STORE 1
 
12439 #endif
12440
12441 /*
12442 ** If no value has been provided for SQLITE_MAX_WORKER_THREADS, or if
12443 ** SQLITE_TEMP_STORE is set to 3 (never use temporary files), set it
@@ -11992,21 +12734,19 @@
12734 || defined(__DragonFly__)
12735 # define SQLITE_MAX_MMAP_SIZE 0x7fff0000 /* 2147418112 */
12736 # else
12737 # define SQLITE_MAX_MMAP_SIZE 0
12738 # endif
 
12739 #endif
12740
12741 /*
12742 ** The default MMAP_SIZE is zero on all platforms. Or, even if a larger
12743 ** default MMAP_SIZE is specified at compile-time, make sure that it does
12744 ** not exceed the maximum mmap size.
12745 */
12746 #ifndef SQLITE_DEFAULT_MMAP_SIZE
12747 # define SQLITE_DEFAULT_MMAP_SIZE 0
 
12748 #endif
12749 #if SQLITE_DEFAULT_MMAP_SIZE>SQLITE_MAX_MMAP_SIZE
12750 # undef SQLITE_DEFAULT_MMAP_SIZE
12751 # define SQLITE_DEFAULT_MMAP_SIZE SQLITE_MAX_MMAP_SIZE
12752 #endif
@@ -17157,10 +17897,12 @@
17897 SQLITE_PRIVATE int sqlite3ExprIsVector(Expr *pExpr);
17898 SQLITE_PRIVATE Expr *sqlite3VectorFieldSubexpr(Expr*, int);
17899 SQLITE_PRIVATE Expr *sqlite3ExprForVectorField(Parse*,Expr*,int);
17900 SQLITE_PRIVATE void sqlite3VectorErrorMsg(Parse*, Expr*);
17901
17902 SQLITE_PRIVATE const char **sqlite3CompileOptions(int *pnOpt);
17903
17904 #endif /* SQLITEINT_H */
17905
17906 /************** End of sqliteInt.h *******************************************/
17907 /************** Begin file global.c ******************************************/
17908 /*
@@ -17461,476 +18203,10 @@
18203 ** Name of the default collating sequence
18204 */
18205 SQLITE_PRIVATE const char sqlite3StrBINARY[] = "BINARY";
18206
18207 /************** End of global.c **********************************************/
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18208 /************** Begin file status.c ******************************************/
18209 /*
18210 ** 2008 June 18
18211 **
18212 ** The author disclaims copyright to this source code. In place of
@@ -98938,11 +99214,12 @@
99214 const char *zName;
99215 const char *zFile;
99216 char *zPath = 0;
99217 char *zErr = 0;
99218 unsigned int flags;
99219 Db *aNew; /* New array of Db pointers */
99220 Db *pNew; /* Db object for the newly attached database */
99221 char *zErrDyn = 0;
99222 sqlite3_vfs *pVfs;
99223
99224 UNUSED_PARAMETER(NotUsed);
99225
@@ -98986,12 +99263,12 @@
99263 }else{
99264 aNew = sqlite3DbRealloc(db, db->aDb, sizeof(db->aDb[0])*(db->nDb+1) );
99265 if( aNew==0 ) return;
99266 }
99267 db->aDb = aNew;
99268 pNew = &db->aDb[db->nDb];
99269 memset(pNew, 0, sizeof(*pNew));
99270
99271 /* Open the database file. If the btree is successfully opened, use
99272 ** it to obtain the database schema. At this point the schema may
99273 ** or may not be initialized.
99274 */
@@ -99003,41 +99280,41 @@
99280 sqlite3_free(zErr);
99281 return;
99282 }
99283 assert( pVfs );
99284 flags |= SQLITE_OPEN_MAIN_DB;
99285 rc = sqlite3BtreeOpen(pVfs, zPath, db, &pNew->pBt, 0, flags);
99286 sqlite3_free( zPath );
99287 db->nDb++;
99288 db->skipBtreeMutex = 0;
99289 if( rc==SQLITE_CONSTRAINT ){
99290 rc = SQLITE_ERROR;
99291 zErrDyn = sqlite3MPrintf(db, "database is already attached");
99292 }else if( rc==SQLITE_OK ){
99293 Pager *pPager;
99294 pNew->pSchema = sqlite3SchemaGet(db, pNew->pBt);
99295 if( !pNew->pSchema ){
99296 rc = SQLITE_NOMEM_BKPT;
99297 }else if( pNew->pSchema->file_format && pNew->pSchema->enc!=ENC(db) ){
99298 zErrDyn = sqlite3MPrintf(db,
99299 "attached databases must use the same text encoding as main database");
99300 rc = SQLITE_ERROR;
99301 }
99302 sqlite3BtreeEnter(pNew->pBt);
99303 pPager = sqlite3BtreePager(pNew->pBt);
99304 sqlite3PagerLockingMode(pPager, db->dfltLockMode);
99305 sqlite3BtreeSecureDelete(pNew->pBt,
99306 sqlite3BtreeSecureDelete(db->aDb[0].pBt,-1) );
99307 #ifndef SQLITE_OMIT_PAGER_PRAGMAS
99308 sqlite3BtreeSetPagerFlags(pNew->pBt,
99309 PAGER_SYNCHRONOUS_FULL | (db->flags & PAGER_FLAGS_MASK));
99310 #endif
99311 sqlite3BtreeLeave(pNew->pBt);
99312 }
99313 pNew->safety_level = SQLITE_DEFAULT_SYNCHRONOUS+1;
99314 pNew->zDbSName = sqlite3DbStrDup(db, zName);
99315 if( rc==SQLITE_OK && pNew->zDbSName==0 ){
99316 rc = SQLITE_NOMEM_BKPT;
99317 }
99318
99319
99320 #ifdef SQLITE_HAS_CODEC
@@ -108085,14 +108362,16 @@
108362 sqlite3ResolveExprNames(&sNameContext, pWhere);
108363
108364 /* Create VDBE to loop through the entries in pSrc that match the WHERE
108365 ** clause. For each row found, increment either the deferred or immediate
108366 ** foreign key constraint counter. */
108367 if( pParse->nErr==0 ){
108368 pWInfo = sqlite3WhereBegin(pParse, pSrc, pWhere, 0, 0, 0, 0);
108369 sqlite3VdbeAddOp2(v, OP_FkCounter, pFKey->isDeferred, nIncr);
108370 if( pWInfo ){
108371 sqlite3WhereEnd(pWInfo);
108372 }
108373 }
108374
108375 /* Clean up the WHERE clause constructed above. */
108376 sqlite3ExprDelete(db, pWhere);
108377 if( iFkIfZero ){
@@ -112945,11 +113224,11 @@
113224 /* iArg: */ 0 },
113225 #endif
113226 #if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER)
113227 {/* zName: */ "foreign_key_check",
113228 /* ePragTyp: */ PragTyp_FOREIGN_KEY_CHECK,
113229 /* ePragFlg: */ PragFlg_NeedSchema|PragFlg_Result0,
113230 /* ColNames: */ 39, 4,
113231 /* iArg: */ 0 },
113232 #endif
113233 #if !defined(SQLITE_OMIT_FOREIGN_KEY)
113234 {/* zName: */ "foreign_key_list",
@@ -113032,11 +113311,11 @@
113311 /* iArg: */ 1 },
113312 #endif
113313 #if !defined(SQLITE_OMIT_INTEGRITY_CHECK)
113314 {/* zName: */ "integrity_check",
113315 /* ePragTyp: */ PragTyp_INTEGRITY_CHECK,
113316 /* ePragFlg: */ PragFlg_NeedSchema|PragFlg_Result0|PragFlg_Result1,
113317 /* ColNames: */ 0, 0,
113318 /* iArg: */ 0 },
113319 #endif
113320 #if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
113321 {/* zName: */ "journal_mode",
@@ -113127,11 +113406,11 @@
113406 /* iArg: */ SQLITE_QueryOnly },
113407 #endif
113408 #if !defined(SQLITE_OMIT_INTEGRITY_CHECK)
113409 {/* zName: */ "quick_check",
113410 /* ePragTyp: */ PragTyp_INTEGRITY_CHECK,
113411 /* ePragFlg: */ PragFlg_NeedSchema|PragFlg_Result0|PragFlg_Result1,
113412 /* ColNames: */ 0, 0,
113413 /* iArg: */ 0 },
113414 #endif
113415 #if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
113416 {/* zName: */ "read_uncommitted",
@@ -119765,13 +120044,16 @@
120044 ifNullRow.pLeft = pCopy;
120045 ifNullRow.iTable = pSubst->iNewTable;
120046 pCopy = &ifNullRow;
120047 }
120048 pNew = sqlite3ExprDup(db, pCopy, 0);
120049 if( pNew && pSubst->isLeftJoin ){
120050 ExprSetProperty(pNew, EP_CanBeNull);
120051 }
120052 if( pNew && ExprHasProperty(pExpr,EP_FromJoin) ){
120053 pNew->iRightJoinTable = pExpr->iRightJoinTable;
120054 ExprSetProperty(pNew, EP_FromJoin);
120055 }
120056 sqlite3ExprDelete(db, pExpr);
120057 pExpr = pNew;
120058 }
120059 }
@@ -120060,11 +120342,11 @@
120342 **
120343 ** which is not at all the same thing.
120344 **
120345 ** If the subquery is the right operand of a LEFT JOIN, then the outer
120346 ** query cannot be an aggregate. This is an artifact of the way aggregates
120347 ** are processed - there is no mechanism to determine if the LEFT JOIN
120348 ** table should be all-NULL.
120349 **
120350 ** See also tickets #306, #350, and #3300.
120351 */
120352 if( (pSubitem->fg.jointype & JT_OUTER)!=0 ){
@@ -124879,11 +125161,11 @@
125161 #ifdef SQLITE_HAS_CODEC
125162 if( db->nextPagesize ){
125163 extern void sqlite3CodecGetKey(sqlite3*, int, void**, int*);
125164 int nKey;
125165 char *zKey;
125166 sqlite3CodecGetKey(db, iDb, (void**)&zKey, &nKey);
125167 if( nKey ) db->nextPagesize = 0;
125168 }
125169 #endif
125170
125171 sqlite3BtreeSetCacheSize(pTemp, db->aDb[iDb].pSchema->cache_size);
@@ -134744,10 +135026,35 @@
135026 #endif
135027 return 1;
135028 }
135029 return 0;
135030 }
135031
135032 /*
135033 ** Helper function for exprIsDeterministic().
135034 */
135035 static int exprNodeIsDeterministic(Walker *pWalker, Expr *pExpr){
135036 if( pExpr->op==TK_FUNCTION && ExprHasProperty(pExpr, EP_ConstFunc)==0 ){
135037 pWalker->eCode = 0;
135038 return WRC_Abort;
135039 }
135040 return WRC_Continue;
135041 }
135042
135043 /*
135044 ** Return true if the expression contains no non-deterministic SQL
135045 ** functions. Do not consider non-deterministic SQL functions that are
135046 ** part of sub-select statements.
135047 */
135048 static int exprIsDeterministic(Expr *p){
135049 Walker w;
135050 memset(&w, 0, sizeof(w));
135051 w.eCode = 1;
135052 w.xExprCallback = exprNodeIsDeterministic;
135053 sqlite3WalkExpr(&w, p);
135054 return w.eCode;
135055 }
135056
135057 /*
135058 ** Generate the beginning of the loop used for WHERE clause processing.
135059 ** The return value is a pointer to an opaque structure that contains
135060 ** information needed to terminate the loop. Later, the calling routine
@@ -134943,21 +135250,10 @@
135250 */
135251 initMaskSet(pMaskSet);
135252 sqlite3WhereClauseInit(&pWInfo->sWC, pWInfo);
135253 sqlite3WhereSplit(&pWInfo->sWC, pWhere, TK_AND);
135254
 
 
 
 
 
 
 
 
 
 
 
135255 /* Special case: No FROM clause
135256 */
135257 if( nTabList==0 ){
135258 if( pOrderBy ) pWInfo->nOBSat = pOrderBy->nExpr;
135259 if( wctrlFlags & WHERE_WANT_DISTINCT ){
@@ -134991,10 +135287,29 @@
135287 #endif
135288
135289 /* Analyze all of the subexpressions. */
135290 sqlite3WhereExprAnalyze(pTabList, &pWInfo->sWC);
135291 if( db->mallocFailed ) goto whereBeginError;
135292
135293 /* Special case: WHERE terms that do not refer to any tables in the join
135294 ** (constant expressions). Evaluate each such term, and jump over all the
135295 ** generated code if the result is not true.
135296 **
135297 ** Do not do this if the expression contains non-deterministic functions
135298 ** that are not within a sub-select. This is not strictly required, but
135299 ** preserves SQLite's legacy behaviour in the following two cases:
135300 **
135301 ** FROM ... WHERE random()>0; -- eval random() once per row
135302 ** FROM ... WHERE (SELECT random())>0; -- eval random() once overall
135303 */
135304 for(ii=0; ii<sWLB.pWC->nTerm; ii++){
135305 WhereTerm *pT = &sWLB.pWC->a[ii];
135306 if( pT->prereqAll==0 && (nTabList==0 || exprIsDeterministic(pT->pExpr)) ){
135307 sqlite3ExprIfFalse(pParse, pT->pExpr, pWInfo->iBreak, SQLITE_JUMPIFNULL);
135308 pT->wtFlags |= TERM_CODED;
135309 }
135310 }
135311
135312 if( wctrlFlags & WHERE_WANT_DISTINCT ){
135313 if( isDistinctRedundant(pParse, pTabList, &pWInfo->sWC, pResultSet) ){
135314 /* The DISTINCT marking is pointless. Ignore it. */
135315 pWInfo->eDistinct = WHERE_DISTINCT_UNIQUE;
@@ -144646,10 +144961,62 @@
144961 SQLITE_API void sqlite3_snapshot_free(sqlite3_snapshot *pSnapshot){
144962 sqlite3_free(pSnapshot);
144963 }
144964 #endif /* SQLITE_ENABLE_SNAPSHOT */
144965
144966 #ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS
144967 /*
144968 ** Given the name of a compile-time option, return true if that option
144969 ** was used and false if not.
144970 **
144971 ** The name can optionally begin with "SQLITE_" but the "SQLITE_" prefix
144972 ** is not required for a match.
144973 */
144974 SQLITE_API int sqlite3_compileoption_used(const char *zOptName){
144975 int i, n;
144976 int nOpt;
144977 const char **azCompileOpt;
144978
144979 #if SQLITE_ENABLE_API_ARMOR
144980 if( zOptName==0 ){
144981 (void)SQLITE_MISUSE_BKPT;
144982 return 0;
144983 }
144984 #endif
144985
144986 azCompileOpt = sqlite3CompileOptions(&nOpt);
144987
144988 if( sqlite3StrNICmp(zOptName, "SQLITE_", 7)==0 ) zOptName += 7;
144989 n = sqlite3Strlen30(zOptName);
144990
144991 /* Since nOpt is normally in single digits, a linear search is
144992 ** adequate. No need for a binary search. */
144993 for(i=0; i<nOpt; i++){
144994 if( sqlite3StrNICmp(zOptName, azCompileOpt[i], n)==0
144995 && sqlite3IsIdChar((unsigned char)azCompileOpt[i][n])==0
144996 ){
144997 return 1;
144998 }
144999 }
145000 return 0;
145001 }
145002
145003 /*
145004 ** Return the N-th compile-time option string. If N is out of range,
145005 ** return a NULL pointer.
145006 */
145007 SQLITE_API const char *sqlite3_compileoption_get(int N){
145008 int nOpt;
145009 const char **azCompileOpt;
145010 azCompileOpt = sqlite3CompileOptions(&nOpt);
145011 if( N>=0 && N<nOpt ){
145012 return azCompileOpt[N];
145013 }
145014 return 0;
145015 }
145016 #endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */
145017
145018 /************** End of main.c ************************************************/
145019 /************** Begin file notify.c ******************************************/
145020 /*
145021 ** 2009 March 3
145022 **
@@ -199150,11 +199517,11 @@
199517 int nArg, /* Number of args */
199518 sqlite3_value **apUnused /* Function arguments */
199519 ){
199520 assert( nArg==0 );
199521 UNUSED_PARAM2(nArg, apUnused);
199522 sqlite3_result_text(pCtx, "fts5: 2017-06-24 13:31:40 0583b84ab444db3ae3c93db619b67bf84b0305ab989200e77214e02ff2dc923a", -1, SQLITE_TRANSIENT);
199523 }
199524
199525 static int fts5Init(sqlite3 *db){
199526 static const sqlite3_module fts5Mod = {
199527 /* iVersion */ 2,
199528
+1 -1
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -121,11 +121,11 @@
121121
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
122122
** [sqlite_version()] and [sqlite_source_id()].
123123
*/
124124
#define SQLITE_VERSION "3.20.0"
125125
#define SQLITE_VERSION_NUMBER 3020000
126
-#define SQLITE_SOURCE_ID "2017-06-15 13:07:56 9afd7a2ffd3a39456190ad05e85ff6485298aae262d9e0698a58c1d73507a36f"
126
+#define SQLITE_SOURCE_ID "2017-06-24 13:31:40 0583b84ab444db3ae3c93db619b67bf84b0305ab989200e77214e02ff2dc923a"
127127
128128
/*
129129
** CAPI3REF: Run-Time Library Version Numbers
130130
** KEYWORDS: sqlite3_version sqlite3_sourceid
131131
**
132132
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -121,11 +121,11 @@
121 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
122 ** [sqlite_version()] and [sqlite_source_id()].
123 */
124 #define SQLITE_VERSION "3.20.0"
125 #define SQLITE_VERSION_NUMBER 3020000
126 #define SQLITE_SOURCE_ID "2017-06-15 13:07:56 9afd7a2ffd3a39456190ad05e85ff6485298aae262d9e0698a58c1d73507a36f"
127
128 /*
129 ** CAPI3REF: Run-Time Library Version Numbers
130 ** KEYWORDS: sqlite3_version sqlite3_sourceid
131 **
132
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -121,11 +121,11 @@
121 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
122 ** [sqlite_version()] and [sqlite_source_id()].
123 */
124 #define SQLITE_VERSION "3.20.0"
125 #define SQLITE_VERSION_NUMBER 3020000
126 #define SQLITE_SOURCE_ID "2017-06-24 13:31:40 0583b84ab444db3ae3c93db619b67bf84b0305ab989200e77214e02ff2dc923a"
127
128 /*
129 ** CAPI3REF: Run-Time Library Version Numbers
130 ** KEYWORDS: sqlite3_version sqlite3_sourceid
131 **
132

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button