|
|
@@ -125,7 +125,7 @@ extern "C" {
|
|
|
*/
|
|
|
#define SQLITE_VERSION "3.36.0"
|
|
|
#define SQLITE_VERSION_NUMBER 3036000
|
|
|
-#define SQLITE_SOURCE_ID "2021-04-27 17:18:10 ff3538ae37a02f4f36a15cddd1245171e724aac9c84b2e576980fd380630alt1"
|
|
|
+#define SQLITE_SOURCE_ID "2021-06-16 19:23:24 7bd55eee1ac63cf6d5699ce85bc5a29bf51afdf7a80bce44937fa833947aalt1"
|
|
|
|
|
|
/*
|
|
|
** CAPI3REF: Run-Time Library Version Numbers
|
|
|
@@ -1143,6 +1143,10 @@ struct sqlite3_io_methods {
|
|
|
** other process. This opcode cannot be used to detect transactions opened
|
|
|
** by clients within the current process, only within other processes.
|
|
|
** </ul>
|
|
|
+**
|
|
|
+** <li>[[SQLITE_FCNTL_CKSM_FILE]]
|
|
|
+** Used by the cksmvfs VFS module only.
|
|
|
+** </ul>
|
|
|
*/
|
|
|
#define SQLITE_FCNTL_LOCKSTATE 1
|
|
|
#define SQLITE_FCNTL_GET_LOCKPROXYFILE 2
|
|
|
@@ -1182,8 +1186,8 @@ struct sqlite3_io_methods {
|
|
|
#define SQLITE_FCNTL_CKPT_DONE 37
|
|
|
#define SQLITE_FCNTL_RESERVE_BYTES 38
|
|
|
#define SQLITE_FCNTL_CKPT_START 39
|
|
|
-
|
|
|
#define SQLITE_FCNTL_EXTERNAL_READER 40
|
|
|
+#define SQLITE_FCNTL_CKSM_FILE 41
|
|
|
|
|
|
/* deprecated names */
|
|
|
#define SQLITE_GET_LOCKPROXYFILE SQLITE_FCNTL_GET_LOCKPROXYFILE
|
|
|
@@ -4215,6 +4219,15 @@ SQLITE_API const char *sqlite3_normalized_sql(sqlite3_stmt *pStmt);
|
|
|
** [BEGIN] merely sets internal flags, but the [BEGIN|BEGIN IMMEDIATE] and
|
|
|
** [BEGIN|BEGIN EXCLUSIVE] commands do touch the database and so
|
|
|
** sqlite3_stmt_readonly() returns false for those commands.
|
|
|
+**
|
|
|
+** ^This routine returns false if there is any possibility that the
|
|
|
+** statement might change the database file. ^A false return does
|
|
|
+** not guarantee that the statement will change the database file.
|
|
|
+** ^For example, an UPDATE statement might have a WHERE clause that
|
|
|
+** makes it a no-op, but the sqlite3_stmt_readonly() result would still
|
|
|
+** be false. ^Similarly, a CREATE TABLE IF NOT EXISTS statement is a
|
|
|
+** read-only no-op if the table already exists, but
|
|
|
+** sqlite3_stmt_readonly() still returns false for such a statement.
|
|
|
*/
|
|
|
SQLITE_API int sqlite3_stmt_readonly(sqlite3_stmt *pStmt);
|
|
|
|
|
|
@@ -4384,18 +4397,22 @@ typedef struct sqlite3_context sqlite3_context;
|
|
|
** contain embedded NULs. The result of expressions involving strings
|
|
|
** with embedded NULs is undefined.
|
|
|
**
|
|
|
-** ^The fifth argument to the BLOB and string binding interfaces
|
|
|
-** is a destructor used to dispose of the BLOB or
|
|
|
-** string after SQLite has finished with it. ^The destructor is called
|
|
|
-** to dispose of the BLOB or string even if the call to the bind API fails,
|
|
|
-** except the destructor is not called if the third parameter is a NULL
|
|
|
-** pointer or the fourth parameter is negative.
|
|
|
-** ^If the fifth argument is
|
|
|
-** the special value [SQLITE_STATIC], then SQLite assumes that the
|
|
|
-** information is in static, unmanaged space and does not need to be freed.
|
|
|
-** ^If the fifth argument has the value [SQLITE_TRANSIENT], then
|
|
|
-** SQLite makes its own private copy of the data immediately, before
|
|
|
-** the sqlite3_bind_*() routine returns.
|
|
|
+** ^The fifth argument to the BLOB and string binding interfaces controls
|
|
|
+** or indicates the lifetime of the object referenced by the third parameter.
|
|
|
+** These three options exist:
|
|
|
+** ^ (1) A destructor to dispose of the BLOB or string after SQLite has finished
|
|
|
+** with it may be passed. ^It is called to dispose of the BLOB or string even
|
|
|
+** if the call to the bind API fails, except the destructor is not called if
|
|
|
+** the third parameter is a NULL pointer or the fourth parameter is negative.
|
|
|
+** ^ (2) The special constant, [SQLITE_STATIC], may be passsed to indicate that
|
|
|
+** the application remains responsible for disposing of the object. ^In this
|
|
|
+** case, the object and the provided pointer to it must remain valid until
|
|
|
+** either the prepared statement is finalized or the same SQL parameter is
|
|
|
+** bound to something else, whichever occurs sooner.
|
|
|
+** ^ (3) The constant, [SQLITE_TRANSIENT], may be passed to indicate that the
|
|
|
+** object is to be copied prior to the return from sqlite3_bind_*(). ^The
|
|
|
+** object and pointer to it must remain valid until then. ^SQLite will then
|
|
|
+** manage the lifetime of its private copy.
|
|
|
**
|
|
|
** ^The sixth argument to sqlite3_bind_text64() must be one of
|
|
|
** [SQLITE_UTF8], [SQLITE_UTF16], [SQLITE_UTF16BE], or [SQLITE_UTF16LE]
|
|
|
@@ -5137,7 +5154,6 @@ SQLITE_API int sqlite3_reset(sqlite3_stmt *pStmt);
|
|
|
** within VIEWs, TRIGGERs, CHECK constraints, generated column expressions,
|
|
|
** index expressions, or the WHERE clause of partial indexes.
|
|
|
**
|
|
|
-** <span style="background-color:#ffff90;">
|
|
|
** For best security, the [SQLITE_DIRECTONLY] flag is recommended for
|
|
|
** all application-defined SQL functions that do not need to be
|
|
|
** used inside of triggers, view, CHECK constraints, or other elements of
|
|
|
@@ -5147,7 +5163,6 @@ SQLITE_API int sqlite3_reset(sqlite3_stmt *pStmt);
|
|
|
** a database file to include invocations of the function with parameters
|
|
|
** chosen by the attacker, which the application will then execute when
|
|
|
** the database file is opened and read.
|
|
|
-** </span>
|
|
|
**
|
|
|
** ^(The fifth parameter is an arbitrary pointer. The implementation of the
|
|
|
** function can gain access to this pointer using [sqlite3_user_data()].)^
|
|
|
@@ -7861,7 +7876,8 @@ SQLITE_API int sqlite3_test_control(int op, ...);
|
|
|
#define SQLITE_TESTCTRL_EXTRA_SCHEMA_CHECKS 29
|
|
|
#define SQLITE_TESTCTRL_SEEK_COUNT 30
|
|
|
#define SQLITE_TESTCTRL_TRACEFLAGS 31
|
|
|
-#define SQLITE_TESTCTRL_LAST 31 /* Largest TESTCTRL */
|
|
|
+#define SQLITE_TESTCTRL_TUNE 32
|
|
|
+#define SQLITE_TESTCTRL_LAST 32 /* Largest TESTCTRL */
|
|
|
|
|
|
/*
|
|
|
** CAPI3REF: SQL Keyword Checking
|
|
|
@@ -9881,8 +9897,8 @@ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_recover(sqlite3 *db, const c
|
|
|
** SQLITE_SERIALIZE_NOCOPY bit is omitted from argument F if a memory
|
|
|
** allocation error occurs.
|
|
|
**
|
|
|
-** This interface is only available if SQLite is compiled with the
|
|
|
-** [SQLITE_ENABLE_DESERIALIZE] option.
|
|
|
+** This interface is omitted if SQLite is compiled with the
|
|
|
+** [SQLITE_OMIT_DESERIALIZE] option.
|
|
|
*/
|
|
|
SQLITE_API unsigned char *sqlite3_serialize(
|
|
|
sqlite3 *db, /* The database connection */
|
|
|
@@ -9933,8 +9949,8 @@ SQLITE_API unsigned char *sqlite3_serialize(
|
|
|
** SQLITE_DESERIALIZE_FREEONCLOSE bit is set in argument F, then
|
|
|
** [sqlite3_free()] is invoked on argument P prior to returning.
|
|
|
**
|
|
|
-** This interface is only available if SQLite is compiled with the
|
|
|
-** [SQLITE_ENABLE_DESERIALIZE] option.
|
|
|
+** This interface is omitted if SQLite is compiled with the
|
|
|
+** [SQLITE_OMIT_DESERIALIZE] option.
|
|
|
*/
|
|
|
SQLITE_API int sqlite3_deserialize(
|
|
|
sqlite3 *db, /* The database connection */
|
|
|
@@ -10190,14 +10206,11 @@ SQLITE_API void sqlite3session_delete(sqlite3_session *pSession);
|
|
|
** This method is used to configure a session object after it has been
|
|
|
** created. At present the only valid value for the second parameter is
|
|
|
** [SQLITE_SESSION_OBJCONFIG_SIZE].
|
|
|
-*/
|
|
|
-SQLITE_API int sqlite3session_object_config(sqlite3_session*, int op, void *pArg);
|
|
|
-
|
|
|
-/*
|
|
|
-** CAPI3REF: Arguments for sqlite3session_object_config()
|
|
|
+**
|
|
|
+** Arguments for sqlite3session_object_config()
|
|
|
**
|
|
|
** The following values may passed as the the 4th parameter to
|
|
|
-** [sqlite3session_object_config].
|
|
|
+** sqlite3session_object_config().
|
|
|
**
|
|
|
** <dt>SQLITE_SESSION_OBJCONFIG_SIZE <dd>
|
|
|
** This option is used to set, clear or query the flag that enables
|
|
|
@@ -10213,6 +10226,10 @@ SQLITE_API int sqlite3session_object_config(sqlite3_session*, int op, void *pArg
|
|
|
** It is an error (SQLITE_MISUSE) to attempt to modify this setting after
|
|
|
** the first table has been attached to the session object.
|
|
|
*/
|
|
|
+SQLITE_API int sqlite3session_object_config(sqlite3_session*, int op, void *pArg);
|
|
|
+
|
|
|
+/*
|
|
|
+*/
|
|
|
#define SQLITE_SESSION_OBJCONFIG_SIZE 1
|
|
|
|
|
|
/*
|
|
|
@@ -10460,11 +10477,11 @@ SQLITE_API int sqlite3session_changeset(
|
|
|
|
|
|
/*
|
|
|
** CAPI3REF: Return An Upper-limit For The Size Of The Changeset
|
|
|
-** METHOD: sqlite3session_changeset_size()
|
|
|
+** METHOD: sqlite3_session
|
|
|
**
|
|
|
** By default, this function always returns 0. For it to return
|
|
|
** a useful result, the sqlite3_session object must have been configured
|
|
|
-** to enable this API using [sqlite3session_object_config()] with the
|
|
|
+** to enable this API using sqlite3session_object_config() with the
|
|
|
** SQLITE_SESSION_OBJCONFIG_SIZE verb.
|
|
|
**
|
|
|
** When enabled, this function returns an upper limit, in bytes, for the size
|