Fossil SCM

Update the built-in SQLite to the 3.14 first beta.

drh 2016-08-01 17:09 trunk
Commit f475b943eb84c23be3c833052735d0b4b3c72a76
3 files changed +2 +28 -34 +15 -10
--- src/shell.c
+++ src/shell.c
@@ -2548,10 +2548,12 @@
25482548
void *pArg,
25492549
void *pP,
25502550
void *pX
25512551
){
25522552
FILE *f = (FILE*)pArg;
2553
+ UNUSED_PARAMETER(mType);
2554
+ UNUSED_PARAMETER(pP);
25532555
if( f ){
25542556
const char *z = (const char*)pX;
25552557
int i = (int)strlen(z);
25562558
while( i>0 && z[i-1]==';' ){ i--; }
25572559
utf8_printf(f, "%.*s;\n", i, z);
25582560
--- src/shell.c
+++ src/shell.c
@@ -2548,10 +2548,12 @@
2548 void *pArg,
2549 void *pP,
2550 void *pX
2551 ){
2552 FILE *f = (FILE*)pArg;
 
 
2553 if( f ){
2554 const char *z = (const char*)pX;
2555 int i = (int)strlen(z);
2556 while( i>0 && z[i-1]==';' ){ i--; }
2557 utf8_printf(f, "%.*s;\n", i, z);
2558
--- src/shell.c
+++ src/shell.c
@@ -2548,10 +2548,12 @@
2548 void *pArg,
2549 void *pP,
2550 void *pX
2551 ){
2552 FILE *f = (FILE*)pArg;
2553 UNUSED_PARAMETER(mType);
2554 UNUSED_PARAMETER(pP);
2555 if( f ){
2556 const char *z = (const char*)pX;
2557 int i = (int)strlen(z);
2558 while( i>0 && z[i-1]==';' ){ i--; }
2559 utf8_printf(f, "%.*s;\n", i, z);
2560
+28 -34
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -380,11 +380,11 @@
380380
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
381381
** [sqlite_version()] and [sqlite_source_id()].
382382
*/
383383
#define SQLITE_VERSION "3.14.0"
384384
#define SQLITE_VERSION_NUMBER 3014000
385
-#define SQLITE_SOURCE_ID "2016-07-29 04:12:18 544c990afd3b64064cc4d970ec5d7eb23eeb9914"
385
+#define SQLITE_SOURCE_ID "2016-08-01 17:06:44 90d2c490fc2ed4e073711b84f989ca4d496dcfb5"
386386
387387
/*
388388
** CAPI3REF: Run-Time Library Version Numbers
389389
** KEYWORDS: sqlite3_version, sqlite3_sourceid
390390
**
@@ -1303,10 +1303,20 @@
13031303
**
13041304
** Mutexes are created using [sqlite3_mutex_alloc()].
13051305
*/
13061306
typedef struct sqlite3_mutex sqlite3_mutex;
13071307
1308
+/*
1309
+** CAPI3REF: Loadable Extension Thunk
1310
+**
1311
+** A pointer to the opaque sqlite3_api_routines structure is passed as
1312
+** the third parameter to entry points of [loadable extensions]. This
1313
+** structure must be typedefed in order to work around compiler warnings
1314
+** on some platforms.
1315
+*/
1316
+typedef struct sqlite3_api_routines sqlite3_api_routines;
1317
+
13081318
/*
13091319
** CAPI3REF: OS Interface Object
13101320
**
13111321
** An instance of the sqlite3_vfs object defines the interface between
13121322
** the SQLite core and the underlying operating system. The "vfs"
@@ -2500,11 +2510,11 @@
25002510
** result in undefined behavior.
25012511
**
25022512
** A busy handler must not close the database connection
25032513
** or [prepared statement] that invoked the busy handler.
25042514
*/
2505
-SQLITE_API int SQLITE_APICALL sqlite3_busy_handler(sqlite3*, int(SQLITE_CALLBACK *)(void*,int), void*);
2515
+SQLITE_API int SQLITE_APICALL sqlite3_busy_handler(sqlite3*,int(SQLITE_CALLBACK *)(void*,int),void*);
25062516
25072517
/*
25082518
** CAPI3REF: Set A Busy Timeout
25092519
** METHOD: sqlite3
25102520
**
@@ -5939,11 +5949,11 @@
59395949
** xEntryPoint() is the entry point for a statically linked [SQLite extension]
59405950
** that is to be automatically loaded into all new database connections.
59415951
**
59425952
** ^(Even though the function prototype shows that xEntryPoint() takes
59435953
** no arguments and returns void, SQLite invokes xEntryPoint() with three
5944
-** arguments and expects and integer result as if the signature of the
5954
+** arguments and expects an integer result as if the signature of the
59455955
** entry point where as follows:
59465956
**
59475957
** <blockquote><pre>
59485958
** &nbsp; int xEntryPoint(
59495959
** &nbsp; sqlite3 *db,
@@ -5965,14 +5975,11 @@
59655975
** will be called more than once for each database connection that is opened.
59665976
**
59675977
** See also: [sqlite3_reset_auto_extension()]
59685978
** and [sqlite3_cancel_auto_extension()]
59695979
*/
5970
-typedef struct sqlite3_api_routines sqlite3_api_routines;
5971
-SQLITE_API int SQLITE_APICALL sqlite3_auto_extension(
5972
- int (SQLITE_CALLBACK *xEntryPoint)(sqlite3 *, char **, const sqlite3_api_routines *)
5973
-);
5980
+SQLITE_API int SQLITE_APICALL sqlite3_auto_extension(void(SQLITE_CALLBACK *xEntryPoint)(void));
59745981
59755982
/*
59765983
** CAPI3REF: Cancel Automatic Extension Loading
59775984
**
59785985
** ^The [sqlite3_cancel_auto_extension(X)] interface unregisters the
@@ -5980,13 +5987,11 @@
59805987
** [sqlite3_auto_extension(X)]. ^The [sqlite3_cancel_auto_extension(X)]
59815988
** routine returns 1 if initialization routine X was successfully
59825989
** unregistered and it returns 0 if X was not on the list of initialization
59835990
** routines.
59845991
*/
5985
-SQLITE_API int SQLITE_APICALL sqlite3_cancel_auto_extension(
5986
- int (SQLITE_CALLBACK *xEntryPoint)(sqlite3 *, char **, const sqlite3_api_routines *)
5987
-);
5992
+SQLITE_API int SQLITE_APICALL sqlite3_cancel_auto_extension(void(SQLITE_CALLBACK *xEntryPoint)(void));
59885993
59895994
/*
59905995
** CAPI3REF: Reset Automatic Extension Loading
59915996
**
59925997
** ^This interface disables all automatic extensions previously
@@ -10889,11 +10894,11 @@
1088910894
** Make sure that the compiler intrinsics we desire are enabled when
1089010895
** compiling with an appropriate version of MSVC unless prevented by
1089110896
** the SQLITE_DISABLE_INTRINSIC define.
1089210897
*/
1089310898
#if !defined(SQLITE_DISABLE_INTRINSIC)
10894
-# if defined(_MSC_VER) && _MSC_VER>=1300
10899
+# if defined(_MSC_VER) && _MSC_VER>=1400
1089510900
# if !defined(_WIN32_WCE)
1089610901
# include <intrin.h>
1089710902
# pragma intrinsic(_byteswap_ushort)
1089810903
# pragma intrinsic(_byteswap_ulong)
1089910904
# pragma intrinsic(_ReadWriteBarrier)
@@ -108767,12 +108772,10 @@
108767108772
*/
108768108773
#ifndef SQLITE3EXT_H
108769108774
#define SQLITE3EXT_H
108770108775
/* #include "sqlite3.h" */
108771108776
108772
-typedef struct sqlite3_api_routines sqlite3_api_routines;
108773
-
108774108777
/*
108775108778
** The following structure holds pointers to all of the SQLite API
108776108779
** routines.
108777108780
**
108778108781
** WARNING: In order to maintain backwards compatibility, add new
@@ -108999,17 +109002,16 @@
108999109002
sqlite3_int64 (*uri_int64)(const char*,const char*,sqlite3_int64);
109000109003
const char *(*uri_parameter)(const char*,const char*);
109001109004
char *(*vsnprintf)(int,char*,const char*,va_list);
109002109005
int (*wal_checkpoint_v2)(sqlite3*,const char*,int,int*,int*);
109003109006
/* Version 3.8.7 and later */
109004
- int (*auto_extension)(int(*)(sqlite3*,char**,const sqlite3_api_routines*));
109007
+ int (*auto_extension)(void(*)(void));
109005109008
int (*bind_blob64)(sqlite3_stmt*,int,const void*,sqlite3_uint64,
109006109009
void(*)(void*));
109007109010
int (*bind_text64)(sqlite3_stmt*,int,const char*,sqlite3_uint64,
109008109011
void(*)(void*),unsigned char);
109009
- int (*cancel_auto_extension)(int(*)(sqlite3*,char**,
109010
- const sqlite3_api_routines*));
109012
+ int (*cancel_auto_extension)(void(*)(void));
109011109013
int (*load_extension)(sqlite3*,const char*,const char*,char**);
109012109014
void *(*malloc64)(sqlite3_uint64);
109013109015
sqlite3_uint64 (*msize)(void*);
109014109016
void *(*realloc64)(void*,sqlite3_uint64);
109015109017
void (*reset_auto_extension)(void);
@@ -109316,19 +109318,10 @@
109316109318
/************** Continuing where we left off in loadext.c ********************/
109317109319
/* #include "sqliteInt.h" */
109318109320
/* #include <string.h> */
109319109321
109320109322
#ifndef SQLITE_OMIT_LOAD_EXTENSION
109321
-/*
109322
-** This is the function signature used for all extension entry points.
109323
-*/
109324
-typedef int (*sqlite3_loadext_entry)(
109325
- sqlite3 *db, /* Handle to the database. */
109326
- char **pzErrMsg, /* Used to set error string on failure. */
109327
- const sqlite3_api_routines *pThunk /* Extension API function pointers. */
109328
-);
109329
-
109330109323
/*
109331109324
** Some API routines are omitted when various features are
109332109325
** excluded from a build of SQLite. Substitute a NULL pointer
109333109326
** for any missing APIs.
109334109327
*/
@@ -109971,11 +109964,11 @@
109971109964
/*
109972109965
** Register a statically linked extension that is automatically
109973109966
** loaded by every new database connection.
109974109967
*/
109975109968
SQLITE_API int SQLITE_APICALL sqlite3_auto_extension(
109976
- int (*xInit)(sqlite3 *, char **, const sqlite3_api_routines *)
109969
+ void (*xInit)(void)
109977109970
){
109978109971
int rc = SQLITE_OK;
109979109972
#ifndef SQLITE_OMIT_AUTOINIT
109980109973
rc = sqlite3_initialize();
109981109974
if( rc ){
@@ -109988,21 +109981,21 @@
109988109981
sqlite3_mutex *mutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER);
109989109982
#endif
109990109983
wsdAutoextInit;
109991109984
sqlite3_mutex_enter(mutex);
109992109985
for(i=0; i<wsdAutoext.nExt; i++){
109993
- if( wsdAutoext.aExt[i]==(void*)xInit ) break;
109986
+ if( wsdAutoext.aExt[i]==xInit ) break;
109994109987
}
109995109988
if( i==wsdAutoext.nExt ){
109996109989
u64 nByte = (wsdAutoext.nExt+1)*sizeof(wsdAutoext.aExt[0]);
109997109990
void (**aNew)(void);
109998109991
aNew = sqlite3_realloc64(wsdAutoext.aExt, nByte);
109999109992
if( aNew==0 ){
110000109993
rc = SQLITE_NOMEM_BKPT;
110001109994
}else{
110002109995
wsdAutoext.aExt = aNew;
110003
- wsdAutoext.aExt[wsdAutoext.nExt] = (void*)xInit;
109996
+ wsdAutoext.aExt[wsdAutoext.nExt] = xInit;
110004109997
wsdAutoext.nExt++;
110005109998
}
110006109999
}
110007110000
sqlite3_mutex_leave(mutex);
110008110001
assert( (rc&0xff)==rc );
@@ -110018,21 +110011,21 @@
110018110011
**
110019110012
** Return 1 if xInit was found on the list and removed. Return 0 if xInit
110020110013
** was not on the list.
110021110014
*/
110022110015
SQLITE_API int SQLITE_APICALL sqlite3_cancel_auto_extension(
110023
- int (*xInit)(sqlite3 *, char **, const sqlite3_api_routines *)
110016
+ void (*xInit)(void)
110024110017
){
110025110018
#if SQLITE_THREADSAFE
110026110019
sqlite3_mutex *mutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER);
110027110020
#endif
110028110021
int i;
110029110022
int n = 0;
110030110023
wsdAutoextInit;
110031110024
sqlite3_mutex_enter(mutex);
110032110025
for(i=(int)wsdAutoext.nExt-1; i>=0; i--){
110033
- if( wsdAutoext.aExt[i]==(void*)xInit ){
110026
+ if( wsdAutoext.aExt[i]==xInit ){
110034110027
wsdAutoext.nExt--;
110035110028
wsdAutoext.aExt[i] = wsdAutoext.aExt[wsdAutoext.nExt];
110036110029
n++;
110037110030
break;
110038110031
}
@@ -129423,13 +129416,13 @@
129423129416
** satisfied using just the index, and that do not require a
129424129417
** table lookup. */
129425129418
LogEst nLookup = rSize + 16; /* Base cost: N*3 */
129426129419
int ii;
129427129420
int iCur = pSrc->iCursor;
129428
- WhereClause *pWC = &pWInfo->sWC;
129429
- for(ii=0; ii<pWC->nTerm; ii++){
129430
- WhereTerm *pTerm = &pWC->a[ii];
129421
+ WhereClause *pWC2 = &pWInfo->sWC;
129422
+ for(ii=0; ii<pWC2->nTerm; ii++){
129423
+ WhereTerm *pTerm = &pWC2->a[ii];
129431129424
if( !sqlite3ExprCoveredByIndex(pTerm->pExpr, iCur, pProbe) ){
129432129425
break;
129433129426
}
129434129427
/* pTerm can be evaluated using just the index. So reduce
129435129428
** the expected number of table lookups accordingly */
@@ -176142,10 +176135,11 @@
176142176135
sqlite3_context *ctx,
176143176136
int argc,
176144176137
sqlite3_value **argv
176145176138
){
176146176139
JsonString jx;
176140
+ UNUSED_PARAM(argc);
176147176141
176148176142
jsonInit(&jx, ctx);
176149176143
jsonAppendValue(&jx, argv[0]);
176150176144
jsonResult(&jx);
176151176145
sqlite3_result_subtype(ctx, JSON_SUBTYPE);
@@ -193951,11 +193945,11 @@
193951193945
int nArg, /* Number of args */
193952193946
sqlite3_value **apUnused /* Function arguments */
193953193947
){
193954193948
assert( nArg==0 );
193955193949
UNUSED_PARAM2(nArg, apUnused);
193956
- sqlite3_result_text(pCtx, "fts5: 2016-07-29 04:12:18 544c990afd3b64064cc4d970ec5d7eb23eeb9914", -1, SQLITE_TRANSIENT);
193950
+ sqlite3_result_text(pCtx, "fts5: 2016-07-30 18:54:54 390a38a142d36d2c57b3f21aab72edcde450125d", -1, SQLITE_TRANSIENT);
193957193951
}
193958193952
193959193953
static int fts5Init(sqlite3 *db){
193960193954
static const sqlite3_module fts5Mod = {
193961193955
/* iVersion */ 2,
193962193956
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -380,11 +380,11 @@
380 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
381 ** [sqlite_version()] and [sqlite_source_id()].
382 */
383 #define SQLITE_VERSION "3.14.0"
384 #define SQLITE_VERSION_NUMBER 3014000
385 #define SQLITE_SOURCE_ID "2016-07-29 04:12:18 544c990afd3b64064cc4d970ec5d7eb23eeb9914"
386
387 /*
388 ** CAPI3REF: Run-Time Library Version Numbers
389 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
390 **
@@ -1303,10 +1303,20 @@
1303 **
1304 ** Mutexes are created using [sqlite3_mutex_alloc()].
1305 */
1306 typedef struct sqlite3_mutex sqlite3_mutex;
1307
 
 
 
 
 
 
 
 
 
 
1308 /*
1309 ** CAPI3REF: OS Interface Object
1310 **
1311 ** An instance of the sqlite3_vfs object defines the interface between
1312 ** the SQLite core and the underlying operating system. The "vfs"
@@ -2500,11 +2510,11 @@
2500 ** result in undefined behavior.
2501 **
2502 ** A busy handler must not close the database connection
2503 ** or [prepared statement] that invoked the busy handler.
2504 */
2505 SQLITE_API int SQLITE_APICALL sqlite3_busy_handler(sqlite3*, int(SQLITE_CALLBACK *)(void*,int), void*);
2506
2507 /*
2508 ** CAPI3REF: Set A Busy Timeout
2509 ** METHOD: sqlite3
2510 **
@@ -5939,11 +5949,11 @@
5939 ** xEntryPoint() is the entry point for a statically linked [SQLite extension]
5940 ** that is to be automatically loaded into all new database connections.
5941 **
5942 ** ^(Even though the function prototype shows that xEntryPoint() takes
5943 ** no arguments and returns void, SQLite invokes xEntryPoint() with three
5944 ** arguments and expects and integer result as if the signature of the
5945 ** entry point where as follows:
5946 **
5947 ** <blockquote><pre>
5948 ** &nbsp; int xEntryPoint(
5949 ** &nbsp; sqlite3 *db,
@@ -5965,14 +5975,11 @@
5965 ** will be called more than once for each database connection that is opened.
5966 **
5967 ** See also: [sqlite3_reset_auto_extension()]
5968 ** and [sqlite3_cancel_auto_extension()]
5969 */
5970 typedef struct sqlite3_api_routines sqlite3_api_routines;
5971 SQLITE_API int SQLITE_APICALL sqlite3_auto_extension(
5972 int (SQLITE_CALLBACK *xEntryPoint)(sqlite3 *, char **, const sqlite3_api_routines *)
5973 );
5974
5975 /*
5976 ** CAPI3REF: Cancel Automatic Extension Loading
5977 **
5978 ** ^The [sqlite3_cancel_auto_extension(X)] interface unregisters the
@@ -5980,13 +5987,11 @@
5980 ** [sqlite3_auto_extension(X)]. ^The [sqlite3_cancel_auto_extension(X)]
5981 ** routine returns 1 if initialization routine X was successfully
5982 ** unregistered and it returns 0 if X was not on the list of initialization
5983 ** routines.
5984 */
5985 SQLITE_API int SQLITE_APICALL sqlite3_cancel_auto_extension(
5986 int (SQLITE_CALLBACK *xEntryPoint)(sqlite3 *, char **, const sqlite3_api_routines *)
5987 );
5988
5989 /*
5990 ** CAPI3REF: Reset Automatic Extension Loading
5991 **
5992 ** ^This interface disables all automatic extensions previously
@@ -10889,11 +10894,11 @@
10889 ** Make sure that the compiler intrinsics we desire are enabled when
10890 ** compiling with an appropriate version of MSVC unless prevented by
10891 ** the SQLITE_DISABLE_INTRINSIC define.
10892 */
10893 #if !defined(SQLITE_DISABLE_INTRINSIC)
10894 # if defined(_MSC_VER) && _MSC_VER>=1300
10895 # if !defined(_WIN32_WCE)
10896 # include <intrin.h>
10897 # pragma intrinsic(_byteswap_ushort)
10898 # pragma intrinsic(_byteswap_ulong)
10899 # pragma intrinsic(_ReadWriteBarrier)
@@ -108767,12 +108772,10 @@
108767 */
108768 #ifndef SQLITE3EXT_H
108769 #define SQLITE3EXT_H
108770 /* #include "sqlite3.h" */
108771
108772 typedef struct sqlite3_api_routines sqlite3_api_routines;
108773
108774 /*
108775 ** The following structure holds pointers to all of the SQLite API
108776 ** routines.
108777 **
108778 ** WARNING: In order to maintain backwards compatibility, add new
@@ -108999,17 +109002,16 @@
108999 sqlite3_int64 (*uri_int64)(const char*,const char*,sqlite3_int64);
109000 const char *(*uri_parameter)(const char*,const char*);
109001 char *(*vsnprintf)(int,char*,const char*,va_list);
109002 int (*wal_checkpoint_v2)(sqlite3*,const char*,int,int*,int*);
109003 /* Version 3.8.7 and later */
109004 int (*auto_extension)(int(*)(sqlite3*,char**,const sqlite3_api_routines*));
109005 int (*bind_blob64)(sqlite3_stmt*,int,const void*,sqlite3_uint64,
109006 void(*)(void*));
109007 int (*bind_text64)(sqlite3_stmt*,int,const char*,sqlite3_uint64,
109008 void(*)(void*),unsigned char);
109009 int (*cancel_auto_extension)(int(*)(sqlite3*,char**,
109010 const sqlite3_api_routines*));
109011 int (*load_extension)(sqlite3*,const char*,const char*,char**);
109012 void *(*malloc64)(sqlite3_uint64);
109013 sqlite3_uint64 (*msize)(void*);
109014 void *(*realloc64)(void*,sqlite3_uint64);
109015 void (*reset_auto_extension)(void);
@@ -109316,19 +109318,10 @@
109316 /************** Continuing where we left off in loadext.c ********************/
109317 /* #include "sqliteInt.h" */
109318 /* #include <string.h> */
109319
109320 #ifndef SQLITE_OMIT_LOAD_EXTENSION
109321 /*
109322 ** This is the function signature used for all extension entry points.
109323 */
109324 typedef int (*sqlite3_loadext_entry)(
109325 sqlite3 *db, /* Handle to the database. */
109326 char **pzErrMsg, /* Used to set error string on failure. */
109327 const sqlite3_api_routines *pThunk /* Extension API function pointers. */
109328 );
109329
109330 /*
109331 ** Some API routines are omitted when various features are
109332 ** excluded from a build of SQLite. Substitute a NULL pointer
109333 ** for any missing APIs.
109334 */
@@ -109971,11 +109964,11 @@
109971 /*
109972 ** Register a statically linked extension that is automatically
109973 ** loaded by every new database connection.
109974 */
109975 SQLITE_API int SQLITE_APICALL sqlite3_auto_extension(
109976 int (*xInit)(sqlite3 *, char **, const sqlite3_api_routines *)
109977 ){
109978 int rc = SQLITE_OK;
109979 #ifndef SQLITE_OMIT_AUTOINIT
109980 rc = sqlite3_initialize();
109981 if( rc ){
@@ -109988,21 +109981,21 @@
109988 sqlite3_mutex *mutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER);
109989 #endif
109990 wsdAutoextInit;
109991 sqlite3_mutex_enter(mutex);
109992 for(i=0; i<wsdAutoext.nExt; i++){
109993 if( wsdAutoext.aExt[i]==(void*)xInit ) break;
109994 }
109995 if( i==wsdAutoext.nExt ){
109996 u64 nByte = (wsdAutoext.nExt+1)*sizeof(wsdAutoext.aExt[0]);
109997 void (**aNew)(void);
109998 aNew = sqlite3_realloc64(wsdAutoext.aExt, nByte);
109999 if( aNew==0 ){
110000 rc = SQLITE_NOMEM_BKPT;
110001 }else{
110002 wsdAutoext.aExt = aNew;
110003 wsdAutoext.aExt[wsdAutoext.nExt] = (void*)xInit;
110004 wsdAutoext.nExt++;
110005 }
110006 }
110007 sqlite3_mutex_leave(mutex);
110008 assert( (rc&0xff)==rc );
@@ -110018,21 +110011,21 @@
110018 **
110019 ** Return 1 if xInit was found on the list and removed. Return 0 if xInit
110020 ** was not on the list.
110021 */
110022 SQLITE_API int SQLITE_APICALL sqlite3_cancel_auto_extension(
110023 int (*xInit)(sqlite3 *, char **, const sqlite3_api_routines *)
110024 ){
110025 #if SQLITE_THREADSAFE
110026 sqlite3_mutex *mutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER);
110027 #endif
110028 int i;
110029 int n = 0;
110030 wsdAutoextInit;
110031 sqlite3_mutex_enter(mutex);
110032 for(i=(int)wsdAutoext.nExt-1; i>=0; i--){
110033 if( wsdAutoext.aExt[i]==(void*)xInit ){
110034 wsdAutoext.nExt--;
110035 wsdAutoext.aExt[i] = wsdAutoext.aExt[wsdAutoext.nExt];
110036 n++;
110037 break;
110038 }
@@ -129423,13 +129416,13 @@
129423 ** satisfied using just the index, and that do not require a
129424 ** table lookup. */
129425 LogEst nLookup = rSize + 16; /* Base cost: N*3 */
129426 int ii;
129427 int iCur = pSrc->iCursor;
129428 WhereClause *pWC = &pWInfo->sWC;
129429 for(ii=0; ii<pWC->nTerm; ii++){
129430 WhereTerm *pTerm = &pWC->a[ii];
129431 if( !sqlite3ExprCoveredByIndex(pTerm->pExpr, iCur, pProbe) ){
129432 break;
129433 }
129434 /* pTerm can be evaluated using just the index. So reduce
129435 ** the expected number of table lookups accordingly */
@@ -176142,10 +176135,11 @@
176142 sqlite3_context *ctx,
176143 int argc,
176144 sqlite3_value **argv
176145 ){
176146 JsonString jx;
 
176147
176148 jsonInit(&jx, ctx);
176149 jsonAppendValue(&jx, argv[0]);
176150 jsonResult(&jx);
176151 sqlite3_result_subtype(ctx, JSON_SUBTYPE);
@@ -193951,11 +193945,11 @@
193951 int nArg, /* Number of args */
193952 sqlite3_value **apUnused /* Function arguments */
193953 ){
193954 assert( nArg==0 );
193955 UNUSED_PARAM2(nArg, apUnused);
193956 sqlite3_result_text(pCtx, "fts5: 2016-07-29 04:12:18 544c990afd3b64064cc4d970ec5d7eb23eeb9914", -1, SQLITE_TRANSIENT);
193957 }
193958
193959 static int fts5Init(sqlite3 *db){
193960 static const sqlite3_module fts5Mod = {
193961 /* iVersion */ 2,
193962
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -380,11 +380,11 @@
380 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
381 ** [sqlite_version()] and [sqlite_source_id()].
382 */
383 #define SQLITE_VERSION "3.14.0"
384 #define SQLITE_VERSION_NUMBER 3014000
385 #define SQLITE_SOURCE_ID "2016-08-01 17:06:44 90d2c490fc2ed4e073711b84f989ca4d496dcfb5"
386
387 /*
388 ** CAPI3REF: Run-Time Library Version Numbers
389 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
390 **
@@ -1303,10 +1303,20 @@
1303 **
1304 ** Mutexes are created using [sqlite3_mutex_alloc()].
1305 */
1306 typedef struct sqlite3_mutex sqlite3_mutex;
1307
1308 /*
1309 ** CAPI3REF: Loadable Extension Thunk
1310 **
1311 ** A pointer to the opaque sqlite3_api_routines structure is passed as
1312 ** the third parameter to entry points of [loadable extensions]. This
1313 ** structure must be typedefed in order to work around compiler warnings
1314 ** on some platforms.
1315 */
1316 typedef struct sqlite3_api_routines sqlite3_api_routines;
1317
1318 /*
1319 ** CAPI3REF: OS Interface Object
1320 **
1321 ** An instance of the sqlite3_vfs object defines the interface between
1322 ** the SQLite core and the underlying operating system. The "vfs"
@@ -2500,11 +2510,11 @@
2510 ** result in undefined behavior.
2511 **
2512 ** A busy handler must not close the database connection
2513 ** or [prepared statement] that invoked the busy handler.
2514 */
2515 SQLITE_API int SQLITE_APICALL sqlite3_busy_handler(sqlite3*,int(SQLITE_CALLBACK *)(void*,int),void*);
2516
2517 /*
2518 ** CAPI3REF: Set A Busy Timeout
2519 ** METHOD: sqlite3
2520 **
@@ -5939,11 +5949,11 @@
5949 ** xEntryPoint() is the entry point for a statically linked [SQLite extension]
5950 ** that is to be automatically loaded into all new database connections.
5951 **
5952 ** ^(Even though the function prototype shows that xEntryPoint() takes
5953 ** no arguments and returns void, SQLite invokes xEntryPoint() with three
5954 ** arguments and expects an integer result as if the signature of the
5955 ** entry point where as follows:
5956 **
5957 ** <blockquote><pre>
5958 ** &nbsp; int xEntryPoint(
5959 ** &nbsp; sqlite3 *db,
@@ -5965,14 +5975,11 @@
5975 ** will be called more than once for each database connection that is opened.
5976 **
5977 ** See also: [sqlite3_reset_auto_extension()]
5978 ** and [sqlite3_cancel_auto_extension()]
5979 */
5980 SQLITE_API int SQLITE_APICALL sqlite3_auto_extension(void(SQLITE_CALLBACK *xEntryPoint)(void));
 
 
 
5981
5982 /*
5983 ** CAPI3REF: Cancel Automatic Extension Loading
5984 **
5985 ** ^The [sqlite3_cancel_auto_extension(X)] interface unregisters the
@@ -5980,13 +5987,11 @@
5987 ** [sqlite3_auto_extension(X)]. ^The [sqlite3_cancel_auto_extension(X)]
5988 ** routine returns 1 if initialization routine X was successfully
5989 ** unregistered and it returns 0 if X was not on the list of initialization
5990 ** routines.
5991 */
5992 SQLITE_API int SQLITE_APICALL sqlite3_cancel_auto_extension(void(SQLITE_CALLBACK *xEntryPoint)(void));
 
 
5993
5994 /*
5995 ** CAPI3REF: Reset Automatic Extension Loading
5996 **
5997 ** ^This interface disables all automatic extensions previously
@@ -10889,11 +10894,11 @@
10894 ** Make sure that the compiler intrinsics we desire are enabled when
10895 ** compiling with an appropriate version of MSVC unless prevented by
10896 ** the SQLITE_DISABLE_INTRINSIC define.
10897 */
10898 #if !defined(SQLITE_DISABLE_INTRINSIC)
10899 # if defined(_MSC_VER) && _MSC_VER>=1400
10900 # if !defined(_WIN32_WCE)
10901 # include <intrin.h>
10902 # pragma intrinsic(_byteswap_ushort)
10903 # pragma intrinsic(_byteswap_ulong)
10904 # pragma intrinsic(_ReadWriteBarrier)
@@ -108767,12 +108772,10 @@
108772 */
108773 #ifndef SQLITE3EXT_H
108774 #define SQLITE3EXT_H
108775 /* #include "sqlite3.h" */
108776
 
 
108777 /*
108778 ** The following structure holds pointers to all of the SQLite API
108779 ** routines.
108780 **
108781 ** WARNING: In order to maintain backwards compatibility, add new
@@ -108999,17 +109002,16 @@
109002 sqlite3_int64 (*uri_int64)(const char*,const char*,sqlite3_int64);
109003 const char *(*uri_parameter)(const char*,const char*);
109004 char *(*vsnprintf)(int,char*,const char*,va_list);
109005 int (*wal_checkpoint_v2)(sqlite3*,const char*,int,int*,int*);
109006 /* Version 3.8.7 and later */
109007 int (*auto_extension)(void(*)(void));
109008 int (*bind_blob64)(sqlite3_stmt*,int,const void*,sqlite3_uint64,
109009 void(*)(void*));
109010 int (*bind_text64)(sqlite3_stmt*,int,const char*,sqlite3_uint64,
109011 void(*)(void*),unsigned char);
109012 int (*cancel_auto_extension)(void(*)(void));
 
109013 int (*load_extension)(sqlite3*,const char*,const char*,char**);
109014 void *(*malloc64)(sqlite3_uint64);
109015 sqlite3_uint64 (*msize)(void*);
109016 void *(*realloc64)(void*,sqlite3_uint64);
109017 void (*reset_auto_extension)(void);
@@ -109316,19 +109318,10 @@
109318 /************** Continuing where we left off in loadext.c ********************/
109319 /* #include "sqliteInt.h" */
109320 /* #include <string.h> */
109321
109322 #ifndef SQLITE_OMIT_LOAD_EXTENSION
 
 
 
 
 
 
 
 
 
109323 /*
109324 ** Some API routines are omitted when various features are
109325 ** excluded from a build of SQLite. Substitute a NULL pointer
109326 ** for any missing APIs.
109327 */
@@ -109971,11 +109964,11 @@
109964 /*
109965 ** Register a statically linked extension that is automatically
109966 ** loaded by every new database connection.
109967 */
109968 SQLITE_API int SQLITE_APICALL sqlite3_auto_extension(
109969 void (*xInit)(void)
109970 ){
109971 int rc = SQLITE_OK;
109972 #ifndef SQLITE_OMIT_AUTOINIT
109973 rc = sqlite3_initialize();
109974 if( rc ){
@@ -109988,21 +109981,21 @@
109981 sqlite3_mutex *mutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER);
109982 #endif
109983 wsdAutoextInit;
109984 sqlite3_mutex_enter(mutex);
109985 for(i=0; i<wsdAutoext.nExt; i++){
109986 if( wsdAutoext.aExt[i]==xInit ) break;
109987 }
109988 if( i==wsdAutoext.nExt ){
109989 u64 nByte = (wsdAutoext.nExt+1)*sizeof(wsdAutoext.aExt[0]);
109990 void (**aNew)(void);
109991 aNew = sqlite3_realloc64(wsdAutoext.aExt, nByte);
109992 if( aNew==0 ){
109993 rc = SQLITE_NOMEM_BKPT;
109994 }else{
109995 wsdAutoext.aExt = aNew;
109996 wsdAutoext.aExt[wsdAutoext.nExt] = xInit;
109997 wsdAutoext.nExt++;
109998 }
109999 }
110000 sqlite3_mutex_leave(mutex);
110001 assert( (rc&0xff)==rc );
@@ -110018,21 +110011,21 @@
110011 **
110012 ** Return 1 if xInit was found on the list and removed. Return 0 if xInit
110013 ** was not on the list.
110014 */
110015 SQLITE_API int SQLITE_APICALL sqlite3_cancel_auto_extension(
110016 void (*xInit)(void)
110017 ){
110018 #if SQLITE_THREADSAFE
110019 sqlite3_mutex *mutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER);
110020 #endif
110021 int i;
110022 int n = 0;
110023 wsdAutoextInit;
110024 sqlite3_mutex_enter(mutex);
110025 for(i=(int)wsdAutoext.nExt-1; i>=0; i--){
110026 if( wsdAutoext.aExt[i]==xInit ){
110027 wsdAutoext.nExt--;
110028 wsdAutoext.aExt[i] = wsdAutoext.aExt[wsdAutoext.nExt];
110029 n++;
110030 break;
110031 }
@@ -129423,13 +129416,13 @@
129416 ** satisfied using just the index, and that do not require a
129417 ** table lookup. */
129418 LogEst nLookup = rSize + 16; /* Base cost: N*3 */
129419 int ii;
129420 int iCur = pSrc->iCursor;
129421 WhereClause *pWC2 = &pWInfo->sWC;
129422 for(ii=0; ii<pWC2->nTerm; ii++){
129423 WhereTerm *pTerm = &pWC2->a[ii];
129424 if( !sqlite3ExprCoveredByIndex(pTerm->pExpr, iCur, pProbe) ){
129425 break;
129426 }
129427 /* pTerm can be evaluated using just the index. So reduce
129428 ** the expected number of table lookups accordingly */
@@ -176142,10 +176135,11 @@
176135 sqlite3_context *ctx,
176136 int argc,
176137 sqlite3_value **argv
176138 ){
176139 JsonString jx;
176140 UNUSED_PARAM(argc);
176141
176142 jsonInit(&jx, ctx);
176143 jsonAppendValue(&jx, argv[0]);
176144 jsonResult(&jx);
176145 sqlite3_result_subtype(ctx, JSON_SUBTYPE);
@@ -193951,11 +193945,11 @@
193945 int nArg, /* Number of args */
193946 sqlite3_value **apUnused /* Function arguments */
193947 ){
193948 assert( nArg==0 );
193949 UNUSED_PARAM2(nArg, apUnused);
193950 sqlite3_result_text(pCtx, "fts5: 2016-07-30 18:54:54 390a38a142d36d2c57b3f21aab72edcde450125d", -1, SQLITE_TRANSIENT);
193951 }
193952
193953 static int fts5Init(sqlite3 *db){
193954 static const sqlite3_module fts5Mod = {
193955 /* iVersion */ 2,
193956
+15 -10
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -120,11 +120,11 @@
120120
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
121121
** [sqlite_version()] and [sqlite_source_id()].
122122
*/
123123
#define SQLITE_VERSION "3.14.0"
124124
#define SQLITE_VERSION_NUMBER 3014000
125
-#define SQLITE_SOURCE_ID "2016-07-29 04:12:18 544c990afd3b64064cc4d970ec5d7eb23eeb9914"
125
+#define SQLITE_SOURCE_ID "2016-08-01 17:06:44 90d2c490fc2ed4e073711b84f989ca4d496dcfb5"
126126
127127
/*
128128
** CAPI3REF: Run-Time Library Version Numbers
129129
** KEYWORDS: sqlite3_version, sqlite3_sourceid
130130
**
@@ -1043,10 +1043,20 @@
10431043
**
10441044
** Mutexes are created using [sqlite3_mutex_alloc()].
10451045
*/
10461046
typedef struct sqlite3_mutex sqlite3_mutex;
10471047
1048
+/*
1049
+** CAPI3REF: Loadable Extension Thunk
1050
+**
1051
+** A pointer to the opaque sqlite3_api_routines structure is passed as
1052
+** the third parameter to entry points of [loadable extensions]. This
1053
+** structure must be typedefed in order to work around compiler warnings
1054
+** on some platforms.
1055
+*/
1056
+typedef struct sqlite3_api_routines sqlite3_api_routines;
1057
+
10481058
/*
10491059
** CAPI3REF: OS Interface Object
10501060
**
10511061
** An instance of the sqlite3_vfs object defines the interface between
10521062
** the SQLite core and the underlying operating system. The "vfs"
@@ -2240,11 +2250,11 @@
22402250
** result in undefined behavior.
22412251
**
22422252
** A busy handler must not close the database connection
22432253
** or [prepared statement] that invoked the busy handler.
22442254
*/
2245
-SQLITE_API int SQLITE_APICALL sqlite3_busy_handler(sqlite3*, int(SQLITE_CALLBACK *)(void*,int), void*);
2255
+SQLITE_API int SQLITE_APICALL sqlite3_busy_handler(sqlite3*,int(SQLITE_CALLBACK *)(void*,int),void*);
22462256
22472257
/*
22482258
** CAPI3REF: Set A Busy Timeout
22492259
** METHOD: sqlite3
22502260
**
@@ -5679,11 +5689,11 @@
56795689
** xEntryPoint() is the entry point for a statically linked [SQLite extension]
56805690
** that is to be automatically loaded into all new database connections.
56815691
**
56825692
** ^(Even though the function prototype shows that xEntryPoint() takes
56835693
** no arguments and returns void, SQLite invokes xEntryPoint() with three
5684
-** arguments and expects and integer result as if the signature of the
5694
+** arguments and expects an integer result as if the signature of the
56855695
** entry point where as follows:
56865696
**
56875697
** <blockquote><pre>
56885698
** &nbsp; int xEntryPoint(
56895699
** &nbsp; sqlite3 *db,
@@ -5705,14 +5715,11 @@
57055715
** will be called more than once for each database connection that is opened.
57065716
**
57075717
** See also: [sqlite3_reset_auto_extension()]
57085718
** and [sqlite3_cancel_auto_extension()]
57095719
*/
5710
-typedef struct sqlite3_api_routines sqlite3_api_routines;
5711
-SQLITE_API int SQLITE_APICALL sqlite3_auto_extension(
5712
- int (SQLITE_CALLBACK *xEntryPoint)(sqlite3 *, char **, const sqlite3_api_routines *)
5713
-);
5720
+SQLITE_API int SQLITE_APICALL sqlite3_auto_extension(void(SQLITE_CALLBACK *xEntryPoint)(void));
57145721
57155722
/*
57165723
** CAPI3REF: Cancel Automatic Extension Loading
57175724
**
57185725
** ^The [sqlite3_cancel_auto_extension(X)] interface unregisters the
@@ -5720,13 +5727,11 @@
57205727
** [sqlite3_auto_extension(X)]. ^The [sqlite3_cancel_auto_extension(X)]
57215728
** routine returns 1 if initialization routine X was successfully
57225729
** unregistered and it returns 0 if X was not on the list of initialization
57235730
** routines.
57245731
*/
5725
-SQLITE_API int SQLITE_APICALL sqlite3_cancel_auto_extension(
5726
- int (SQLITE_CALLBACK *xEntryPoint)(sqlite3 *, char **, const sqlite3_api_routines *)
5727
-);
5732
+SQLITE_API int SQLITE_APICALL sqlite3_cancel_auto_extension(void(SQLITE_CALLBACK *xEntryPoint)(void));
57285733
57295734
/*
57305735
** CAPI3REF: Reset Automatic Extension Loading
57315736
**
57325737
** ^This interface disables all automatic extensions previously
57335738
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -120,11 +120,11 @@
120 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
121 ** [sqlite_version()] and [sqlite_source_id()].
122 */
123 #define SQLITE_VERSION "3.14.0"
124 #define SQLITE_VERSION_NUMBER 3014000
125 #define SQLITE_SOURCE_ID "2016-07-29 04:12:18 544c990afd3b64064cc4d970ec5d7eb23eeb9914"
126
127 /*
128 ** CAPI3REF: Run-Time Library Version Numbers
129 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
130 **
@@ -1043,10 +1043,20 @@
1043 **
1044 ** Mutexes are created using [sqlite3_mutex_alloc()].
1045 */
1046 typedef struct sqlite3_mutex sqlite3_mutex;
1047
 
 
 
 
 
 
 
 
 
 
1048 /*
1049 ** CAPI3REF: OS Interface Object
1050 **
1051 ** An instance of the sqlite3_vfs object defines the interface between
1052 ** the SQLite core and the underlying operating system. The "vfs"
@@ -2240,11 +2250,11 @@
2240 ** result in undefined behavior.
2241 **
2242 ** A busy handler must not close the database connection
2243 ** or [prepared statement] that invoked the busy handler.
2244 */
2245 SQLITE_API int SQLITE_APICALL sqlite3_busy_handler(sqlite3*, int(SQLITE_CALLBACK *)(void*,int), void*);
2246
2247 /*
2248 ** CAPI3REF: Set A Busy Timeout
2249 ** METHOD: sqlite3
2250 **
@@ -5679,11 +5689,11 @@
5679 ** xEntryPoint() is the entry point for a statically linked [SQLite extension]
5680 ** that is to be automatically loaded into all new database connections.
5681 **
5682 ** ^(Even though the function prototype shows that xEntryPoint() takes
5683 ** no arguments and returns void, SQLite invokes xEntryPoint() with three
5684 ** arguments and expects and integer result as if the signature of the
5685 ** entry point where as follows:
5686 **
5687 ** <blockquote><pre>
5688 ** &nbsp; int xEntryPoint(
5689 ** &nbsp; sqlite3 *db,
@@ -5705,14 +5715,11 @@
5705 ** will be called more than once for each database connection that is opened.
5706 **
5707 ** See also: [sqlite3_reset_auto_extension()]
5708 ** and [sqlite3_cancel_auto_extension()]
5709 */
5710 typedef struct sqlite3_api_routines sqlite3_api_routines;
5711 SQLITE_API int SQLITE_APICALL sqlite3_auto_extension(
5712 int (SQLITE_CALLBACK *xEntryPoint)(sqlite3 *, char **, const sqlite3_api_routines *)
5713 );
5714
5715 /*
5716 ** CAPI3REF: Cancel Automatic Extension Loading
5717 **
5718 ** ^The [sqlite3_cancel_auto_extension(X)] interface unregisters the
@@ -5720,13 +5727,11 @@
5720 ** [sqlite3_auto_extension(X)]. ^The [sqlite3_cancel_auto_extension(X)]
5721 ** routine returns 1 if initialization routine X was successfully
5722 ** unregistered and it returns 0 if X was not on the list of initialization
5723 ** routines.
5724 */
5725 SQLITE_API int SQLITE_APICALL sqlite3_cancel_auto_extension(
5726 int (SQLITE_CALLBACK *xEntryPoint)(sqlite3 *, char **, const sqlite3_api_routines *)
5727 );
5728
5729 /*
5730 ** CAPI3REF: Reset Automatic Extension Loading
5731 **
5732 ** ^This interface disables all automatic extensions previously
5733
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -120,11 +120,11 @@
120 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
121 ** [sqlite_version()] and [sqlite_source_id()].
122 */
123 #define SQLITE_VERSION "3.14.0"
124 #define SQLITE_VERSION_NUMBER 3014000
125 #define SQLITE_SOURCE_ID "2016-08-01 17:06:44 90d2c490fc2ed4e073711b84f989ca4d496dcfb5"
126
127 /*
128 ** CAPI3REF: Run-Time Library Version Numbers
129 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
130 **
@@ -1043,10 +1043,20 @@
1043 **
1044 ** Mutexes are created using [sqlite3_mutex_alloc()].
1045 */
1046 typedef struct sqlite3_mutex sqlite3_mutex;
1047
1048 /*
1049 ** CAPI3REF: Loadable Extension Thunk
1050 **
1051 ** A pointer to the opaque sqlite3_api_routines structure is passed as
1052 ** the third parameter to entry points of [loadable extensions]. This
1053 ** structure must be typedefed in order to work around compiler warnings
1054 ** on some platforms.
1055 */
1056 typedef struct sqlite3_api_routines sqlite3_api_routines;
1057
1058 /*
1059 ** CAPI3REF: OS Interface Object
1060 **
1061 ** An instance of the sqlite3_vfs object defines the interface between
1062 ** the SQLite core and the underlying operating system. The "vfs"
@@ -2240,11 +2250,11 @@
2250 ** result in undefined behavior.
2251 **
2252 ** A busy handler must not close the database connection
2253 ** or [prepared statement] that invoked the busy handler.
2254 */
2255 SQLITE_API int SQLITE_APICALL sqlite3_busy_handler(sqlite3*,int(SQLITE_CALLBACK *)(void*,int),void*);
2256
2257 /*
2258 ** CAPI3REF: Set A Busy Timeout
2259 ** METHOD: sqlite3
2260 **
@@ -5679,11 +5689,11 @@
5689 ** xEntryPoint() is the entry point for a statically linked [SQLite extension]
5690 ** that is to be automatically loaded into all new database connections.
5691 **
5692 ** ^(Even though the function prototype shows that xEntryPoint() takes
5693 ** no arguments and returns void, SQLite invokes xEntryPoint() with three
5694 ** arguments and expects an integer result as if the signature of the
5695 ** entry point where as follows:
5696 **
5697 ** <blockquote><pre>
5698 ** &nbsp; int xEntryPoint(
5699 ** &nbsp; sqlite3 *db,
@@ -5705,14 +5715,11 @@
5715 ** will be called more than once for each database connection that is opened.
5716 **
5717 ** See also: [sqlite3_reset_auto_extension()]
5718 ** and [sqlite3_cancel_auto_extension()]
5719 */
5720 SQLITE_API int SQLITE_APICALL sqlite3_auto_extension(void(SQLITE_CALLBACK *xEntryPoint)(void));
 
 
 
5721
5722 /*
5723 ** CAPI3REF: Cancel Automatic Extension Loading
5724 **
5725 ** ^The [sqlite3_cancel_auto_extension(X)] interface unregisters the
@@ -5720,13 +5727,11 @@
5727 ** [sqlite3_auto_extension(X)]. ^The [sqlite3_cancel_auto_extension(X)]
5728 ** routine returns 1 if initialization routine X was successfully
5729 ** unregistered and it returns 0 if X was not on the list of initialization
5730 ** routines.
5731 */
5732 SQLITE_API int SQLITE_APICALL sqlite3_cancel_auto_extension(void(SQLITE_CALLBACK *xEntryPoint)(void));
 
 
5733
5734 /*
5735 ** CAPI3REF: Reset Automatic Extension Loading
5736 **
5737 ** ^This interface disables all automatic extensions previously
5738

Keyboard Shortcuts

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