|
|
@@ -121,9 +121,9 @@ extern "C" {
|
|
|
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
|
|
|
** [sqlite_version()] and [sqlite_source_id()].
|
|
|
*/
|
|
|
-#define SQLITE_VERSION "3.19.0"
|
|
|
-#define SQLITE_VERSION_NUMBER 3019000
|
|
|
-#define SQLITE_SOURCE_ID "2017-05-02 16:55:07 47cbb471d056c8e1834a5ca72491404a3bfb273b5ff7bdd84b98d263938ea874"
|
|
|
+#define SQLITE_VERSION "3.20.0"
|
|
|
+#define SQLITE_VERSION_NUMBER 3020000
|
|
|
+#define SQLITE_SOURCE_ID "2017-06-01 01:53:19 4c2458c1908181dc2f6bc594395c06d015fcbd78f5d3472f07a6a3909be9673c"
|
|
|
|
|
|
/*
|
|
|
** CAPI3REF: Run-Time Library Version Numbers
|
|
|
@@ -2704,6 +2704,7 @@ SQLITE_API void sqlite3_randomness(int N, void *P);
|
|
|
/*
|
|
|
** CAPI3REF: Compile-Time Authorization Callbacks
|
|
|
** METHOD: sqlite3
|
|
|
+** KEYWORDS: {authorizer callback}
|
|
|
**
|
|
|
** ^This routine registers an authorizer callback with a particular
|
|
|
** [database connection], supplied in the first argument.
|
|
|
@@ -2731,8 +2732,10 @@ SQLITE_API void sqlite3_randomness(int N, void *P);
|
|
|
** parameter to the sqlite3_set_authorizer() interface. ^The second parameter
|
|
|
** to the callback is an integer [SQLITE_COPY | action code] that specifies
|
|
|
** the particular action to be authorized. ^The third through sixth parameters
|
|
|
-** to the callback are zero-terminated strings that contain additional
|
|
|
-** details about the action to be authorized.
|
|
|
+** to the callback are either NULL pointers or zero-terminated strings
|
|
|
+** that contain additional details about the action to be authorized.
|
|
|
+** Applications must always be prepared to encounter a NULL pointer in any
|
|
|
+** of the third through the sixth parameters of the authorization callback.
|
|
|
**
|
|
|
** ^If the action code is [SQLITE_READ]
|
|
|
** and the callback returns [SQLITE_IGNORE] then the
|
|
|
@@ -2741,6 +2744,10 @@ SQLITE_API void sqlite3_randomness(int N, void *P);
|
|
|
** been read if [SQLITE_OK] had been returned. The [SQLITE_IGNORE]
|
|
|
** return can be used to deny an untrusted user access to individual
|
|
|
** columns of a table.
|
|
|
+** ^When a table is referenced by a [SELECT] but no column values are
|
|
|
+** extracted from that table (for example in a query like
|
|
|
+** "SELECT count(*) FROM tab") then the [SQLITE_READ] authorizer callback
|
|
|
+** is invoked once for that table with a column name that is an empty string.
|
|
|
** ^If the action code is [SQLITE_DELETE] and the callback returns
|
|
|
** [SQLITE_IGNORE] then the [DELETE] operation proceeds but the
|
|
|
** [truncate optimization] is disabled and all rows are deleted individually.
|
|
|
@@ -4791,10 +4798,11 @@ SQLITE_API void *sqlite3_db_user_data(sqlite3_context *context);
|
|
|
** the compiled regular expression can be reused on multiple
|
|
|
** invocations of the same function.
|
|
|
**
|
|
|
-** ^The sqlite3_get_auxdata() interface returns a pointer to the metadata
|
|
|
-** associated by the sqlite3_set_auxdata() function with the Nth argument
|
|
|
-** value to the application-defined function. ^If there is no metadata
|
|
|
-** associated with the function argument, this sqlite3_get_auxdata() interface
|
|
|
+** ^The sqlite3_get_auxdata(C,N) interface returns a pointer to the metadata
|
|
|
+** associated by the sqlite3_set_auxdata(C,N,P,X) function with the Nth argument
|
|
|
+** value to the application-defined function. ^N is zero for the left-most
|
|
|
+** function argument. ^If there is no metadata
|
|
|
+** associated with the function argument, the sqlite3_get_auxdata(C,N) interface
|
|
|
** returns a NULL pointer.
|
|
|
**
|
|
|
** ^The sqlite3_set_auxdata(C,N,P,X) interface saves P as metadata for the N-th
|
|
|
@@ -4825,6 +4833,10 @@ SQLITE_API void *sqlite3_db_user_data(sqlite3_context *context);
|
|
|
** function parameters that are compile-time constants, including literal
|
|
|
** values and [parameters] and expressions composed from the same.)^
|
|
|
**
|
|
|
+** The value of the N parameter to these interfaces should be non-negative.
|
|
|
+** Future enhancements may make use of negative N values to define new
|
|
|
+** kinds of function caching behavior.
|
|
|
+**
|
|
|
** These routines must be called from the same thread in which
|
|
|
** the SQL function is running.
|
|
|
*/
|
|
|
@@ -7160,6 +7172,12 @@ SQLITE_API int sqlite3_stmt_status(sqlite3_stmt*, int op,int resetFlg);
|
|
|
** used as a proxy for the total work done by the prepared statement.
|
|
|
** If the number of virtual machine operations exceeds 2147483647
|
|
|
** then the value returned by this statement status code is undefined.
|
|
|
+**
|
|
|
+** [[SQLITE_STMTSTATUS_MEMUSED]] <dt>SQLITE_STMTSTATUS_MEMUSED</dt>
|
|
|
+** <dd>^This is the approximate number of bytes of heap memory
|
|
|
+** used to store the prepared statement. ^This value is not actually
|
|
|
+** a counter, and so the resetFlg parameter to sqlite3_stmt_status()
|
|
|
+** is ignored when the opcode is SQLITE_STMTSTATUS_MEMUSED.
|
|
|
** </dd>
|
|
|
** </dl>
|
|
|
*/
|
|
|
@@ -7167,6 +7185,7 @@ SQLITE_API int sqlite3_stmt_status(sqlite3_stmt*, int op,int resetFlg);
|
|
|
#define SQLITE_STMTSTATUS_SORT 2
|
|
|
#define SQLITE_STMTSTATUS_AUTOINDEX 3
|
|
|
#define SQLITE_STMTSTATUS_VM_STEP 4
|
|
|
+#define SQLITE_STMTSTATUS_MEMUSED 5
|
|
|
|
|
|
/*
|
|
|
** CAPI3REF: Custom Page Cache Object
|
|
|
@@ -9423,7 +9442,7 @@ typedef struct sqlite3_changegroup sqlite3_changegroup;
|
|
|
** sqlite3changegroup_output() functions, also available are the streaming
|
|
|
** versions sqlite3changegroup_add_strm() and sqlite3changegroup_output_strm().
|
|
|
*/
|
|
|
-int sqlite3changegroup_new(sqlite3_changegroup **pp);
|
|
|
+SQLITE_API int sqlite3changegroup_new(sqlite3_changegroup **pp);
|
|
|
|
|
|
/*
|
|
|
** CAPI3REF: Add A Changeset To A Changegroup
|
|
|
@@ -9500,7 +9519,7 @@ int sqlite3changegroup_new(sqlite3_changegroup **pp);
|
|
|
**
|
|
|
** If no error occurs, SQLITE_OK is returned.
|
|
|
*/
|
|
|
-int sqlite3changegroup_add(sqlite3_changegroup*, int nData, void *pData);
|
|
|
+SQLITE_API int sqlite3changegroup_add(sqlite3_changegroup*, int nData, void *pData);
|
|
|
|
|
|
/*
|
|
|
** CAPI3REF: Obtain A Composite Changeset From A Changegroup
|
|
|
@@ -9526,7 +9545,7 @@ int sqlite3changegroup_add(sqlite3_changegroup*, int nData, void *pData);
|
|
|
** responsibility of the caller to eventually free the buffer using a
|
|
|
** call to sqlite3_free().
|
|
|
*/
|
|
|
-int sqlite3changegroup_output(
|
|
|
+SQLITE_API int sqlite3changegroup_output(
|
|
|
sqlite3_changegroup*,
|
|
|
int *pnData, /* OUT: Size of output buffer in bytes */
|
|
|
void **ppData /* OUT: Pointer to output buffer */
|
|
|
@@ -9535,7 +9554,7 @@ int sqlite3changegroup_output(
|
|
|
/*
|
|
|
** CAPI3REF: Delete A Changegroup Object
|
|
|
*/
|
|
|
-void sqlite3changegroup_delete(sqlite3_changegroup*);
|
|
|
+SQLITE_API void sqlite3changegroup_delete(sqlite3_changegroup*);
|
|
|
|
|
|
/*
|
|
|
** CAPI3REF: Apply A Changeset To A Database
|
|
|
@@ -9924,11 +9943,11 @@ SQLITE_API int sqlite3session_patchset_strm(
|
|
|
int (*xOutput)(void *pOut, const void *pData, int nData),
|
|
|
void *pOut
|
|
|
);
|
|
|
-int sqlite3changegroup_add_strm(sqlite3_changegroup*,
|
|
|
+SQLITE_API int sqlite3changegroup_add_strm(sqlite3_changegroup*,
|
|
|
int (*xInput)(void *pIn, void *pData, int *pnData),
|
|
|
void *pIn
|
|
|
);
|
|
|
-int sqlite3changegroup_output_strm(sqlite3_changegroup*,
|
|
|
+SQLITE_API int sqlite3changegroup_output_strm(sqlite3_changegroup*,
|
|
|
int (*xOutput)(void *pOut, const void *pData, int nData),
|
|
|
void *pOut
|
|
|
);
|