mirror of
https://github.com/DBD-SQLite/DBD-SQLite
synced 2025-06-07 14:19:10 -04:00
Upgrade SQLite to 3.39.4
This commit is contained in:
parent
353f185cc5
commit
bacb65a77e
4 changed files with 6247 additions and 3731 deletions
|
@ -1074,7 +1074,7 @@ are limited by the typeless nature of the SQLite database.
|
||||||
=head1 SQLITE VERSION
|
=head1 SQLITE VERSION
|
||||||
|
|
||||||
DBD::SQLite is usually compiled with a bundled SQLite library
|
DBD::SQLite is usually compiled with a bundled SQLite library
|
||||||
(SQLite version S<3.38.0> as of this release) for consistency.
|
(SQLite version S<3.39.4> as of this release) for consistency.
|
||||||
However, a different version of SQLite may sometimes be used for
|
However, a different version of SQLite may sometimes be used for
|
||||||
some reasons like security, or some new experimental features.
|
some reasons like security, or some new experimental features.
|
||||||
|
|
||||||
|
|
52
sqlite3.h
52
sqlite3.h
|
@ -146,9 +146,9 @@ extern "C" {
|
||||||
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
|
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
|
||||||
** [sqlite_version()] and [sqlite_source_id()].
|
** [sqlite_version()] and [sqlite_source_id()].
|
||||||
*/
|
*/
|
||||||
#define SQLITE_VERSION "3.38.0"
|
#define SQLITE_VERSION "3.39.4"
|
||||||
#define SQLITE_VERSION_NUMBER 3038000
|
#define SQLITE_VERSION_NUMBER 3039004
|
||||||
#define SQLITE_SOURCE_ID "2022-02-22 18:58:40 40fa792d359f84c3b9e9d6623743e1a59826274e221df1bde8f47086968a1bab"
|
#define SQLITE_SOURCE_ID "2022-09-29 15:55:41 a29f9949895322123f7c38fbe94c649a9d6e6c9cd0c3b41c96d694552f26b309"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** CAPI3REF: Run-Time Library Version Numbers
|
** CAPI3REF: Run-Time Library Version Numbers
|
||||||
|
@ -4979,6 +4979,10 @@ SQLITE_API int sqlite3_data_count(sqlite3_stmt *pStmt);
|
||||||
** even empty strings, are always zero-terminated. ^The return
|
** even empty strings, are always zero-terminated. ^The return
|
||||||
** value from sqlite3_column_blob() for a zero-length BLOB is a NULL pointer.
|
** value from sqlite3_column_blob() for a zero-length BLOB is a NULL pointer.
|
||||||
**
|
**
|
||||||
|
** ^Strings returned by sqlite3_column_text16() always have the endianness
|
||||||
|
** which is native to the platform, regardless of the text encoding set
|
||||||
|
** for the database.
|
||||||
|
**
|
||||||
** <b>Warning:</b> ^The object returned by [sqlite3_column_value()] is an
|
** <b>Warning:</b> ^The object returned by [sqlite3_column_value()] is an
|
||||||
** [unprotected sqlite3_value] object. In a multithreaded environment,
|
** [unprotected sqlite3_value] object. In a multithreaded environment,
|
||||||
** an unprotected sqlite3_value object may only be used safely with
|
** an unprotected sqlite3_value object may only be used safely with
|
||||||
|
@ -4992,7 +4996,7 @@ SQLITE_API int sqlite3_data_count(sqlite3_stmt *pStmt);
|
||||||
** [application-defined SQL functions] or [virtual tables], not within
|
** [application-defined SQL functions] or [virtual tables], not within
|
||||||
** top-level application code.
|
** top-level application code.
|
||||||
**
|
**
|
||||||
** The these routines may attempt to convert the datatype of the result.
|
** These routines may attempt to convert the datatype of the result.
|
||||||
** ^For example, if the internal representation is FLOAT and a text result
|
** ^For example, if the internal representation is FLOAT and a text result
|
||||||
** is requested, [sqlite3_snprintf()] is used internally to perform the
|
** is requested, [sqlite3_snprintf()] is used internally to perform the
|
||||||
** conversion automatically. ^(The following table details the conversions
|
** conversion automatically. ^(The following table details the conversions
|
||||||
|
@ -5017,7 +5021,7 @@ SQLITE_API int sqlite3_data_count(sqlite3_stmt *pStmt);
|
||||||
** <tr><td> TEXT <td> BLOB <td> No change
|
** <tr><td> TEXT <td> BLOB <td> No change
|
||||||
** <tr><td> BLOB <td> INTEGER <td> [CAST] to INTEGER
|
** <tr><td> BLOB <td> INTEGER <td> [CAST] to INTEGER
|
||||||
** <tr><td> BLOB <td> FLOAT <td> [CAST] to REAL
|
** <tr><td> BLOB <td> FLOAT <td> [CAST] to REAL
|
||||||
** <tr><td> BLOB <td> TEXT <td> Add a zero terminator if needed
|
** <tr><td> BLOB <td> TEXT <td> [CAST] to TEXT, ensure zero terminator
|
||||||
** </table>
|
** </table>
|
||||||
** </blockquote>)^
|
** </blockquote>)^
|
||||||
**
|
**
|
||||||
|
@ -5589,7 +5593,8 @@ SQLITE_API unsigned int sqlite3_value_subtype(sqlite3_value*);
|
||||||
** object D and returns a pointer to that copy. ^The [sqlite3_value] returned
|
** object D and returns a pointer to that copy. ^The [sqlite3_value] returned
|
||||||
** is a [protected sqlite3_value] object even if the input is not.
|
** is a [protected sqlite3_value] object even if the input is not.
|
||||||
** ^The sqlite3_value_dup(V) interface returns NULL if V is NULL or if a
|
** ^The sqlite3_value_dup(V) interface returns NULL if V is NULL or if a
|
||||||
** memory allocation fails.
|
** memory allocation fails. ^If V is a [pointer value], then the result
|
||||||
|
** of sqlite3_value_dup(V) is a NULL value.
|
||||||
**
|
**
|
||||||
** ^The sqlite3_value_free(V) interface frees an [sqlite3_value] object
|
** ^The sqlite3_value_free(V) interface frees an [sqlite3_value] object
|
||||||
** previously obtained from [sqlite3_value_dup()]. ^If V is a NULL pointer
|
** previously obtained from [sqlite3_value_dup()]. ^If V is a NULL pointer
|
||||||
|
@ -6271,6 +6276,28 @@ SQLITE_API int sqlite3_get_autocommit(sqlite3*);
|
||||||
*/
|
*/
|
||||||
SQLITE_API sqlite3 *sqlite3_db_handle(sqlite3_stmt*);
|
SQLITE_API sqlite3 *sqlite3_db_handle(sqlite3_stmt*);
|
||||||
|
|
||||||
|
/*
|
||||||
|
** CAPI3REF: Return The Schema Name For A Database Connection
|
||||||
|
** METHOD: sqlite3
|
||||||
|
**
|
||||||
|
** ^The sqlite3_db_name(D,N) interface returns a pointer to the schema name
|
||||||
|
** for the N-th database on database connection D, or a NULL pointer of N is
|
||||||
|
** out of range. An N value of 0 means the main database file. An N of 1 is
|
||||||
|
** the "temp" schema. Larger values of N correspond to various ATTACH-ed
|
||||||
|
** databases.
|
||||||
|
**
|
||||||
|
** Space to hold the string that is returned by sqlite3_db_name() is managed
|
||||||
|
** by SQLite itself. The string might be deallocated by any operation that
|
||||||
|
** changes the schema, including [ATTACH] or [DETACH] or calls to
|
||||||
|
** [sqlite3_serialize()] or [sqlite3_deserialize()], even operations that
|
||||||
|
** occur on a different thread. Applications that need to
|
||||||
|
** remember the string long-term should make their own copy. Applications that
|
||||||
|
** are accessing the same database connection simultaneously on multiple
|
||||||
|
** threads should mutex-protect calls to this API and should make their own
|
||||||
|
** private copy of the result prior to releasing the mutex.
|
||||||
|
*/
|
||||||
|
SQLITE_API const char *sqlite3_db_name(sqlite3 *db, int N);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** CAPI3REF: Return The Filename For A Database Connection
|
** CAPI3REF: Return The Filename For A Database Connection
|
||||||
** METHOD: sqlite3
|
** METHOD: sqlite3
|
||||||
|
@ -9550,8 +9577,8 @@ SQLITE_API SQLITE_EXPERIMENTAL const char *sqlite3_vtab_collation(sqlite3_index_
|
||||||
** of a [virtual table] implementation. The result of calling this
|
** of a [virtual table] implementation. The result of calling this
|
||||||
** interface from outside of xBestIndex() is undefined and probably harmful.
|
** interface from outside of xBestIndex() is undefined and probably harmful.
|
||||||
**
|
**
|
||||||
** ^The sqlite3_vtab_distinct() interface returns an integer that is
|
** ^The sqlite3_vtab_distinct() interface returns an integer between 0 and
|
||||||
** either 0, 1, or 2. The integer returned by sqlite3_vtab_distinct()
|
** 3. The integer returned by sqlite3_vtab_distinct()
|
||||||
** gives the virtual table additional information about how the query
|
** gives the virtual table additional information about how the query
|
||||||
** planner wants the output to be ordered. As long as the virtual table
|
** planner wants the output to be ordered. As long as the virtual table
|
||||||
** can meet the ordering requirements of the query planner, it may set
|
** can meet the ordering requirements of the query planner, it may set
|
||||||
|
@ -9583,6 +9610,13 @@ SQLITE_API SQLITE_EXPERIMENTAL const char *sqlite3_vtab_collation(sqlite3_index_
|
||||||
** that have the same value for all columns identified by "aOrderBy".
|
** that have the same value for all columns identified by "aOrderBy".
|
||||||
** ^However omitting the extra rows is optional.
|
** ^However omitting the extra rows is optional.
|
||||||
** This mode is used for a DISTINCT query.
|
** This mode is used for a DISTINCT query.
|
||||||
|
** <li value="3"><p>
|
||||||
|
** ^(If the sqlite3_vtab_distinct() interface returns 3, that means
|
||||||
|
** that the query planner needs only distinct rows but it does need the
|
||||||
|
** rows to be sorted.)^ ^The virtual table implementation is free to omit
|
||||||
|
** rows that are identical in all aOrderBy columns, if it wants to, but
|
||||||
|
** it is not required to omit any rows. This mode is used for queries
|
||||||
|
** that have both DISTINCT and ORDER BY clauses.
|
||||||
** </ol>
|
** </ol>
|
||||||
**
|
**
|
||||||
** ^For the purposes of comparing virtual table output values to see if the
|
** ^For the purposes of comparing virtual table output values to see if the
|
||||||
|
@ -9767,7 +9801,7 @@ SQLITE_API int sqlite3_vtab_in_next(sqlite3_value *pVal, sqlite3_value **ppOut);
|
||||||
** ^When xBestIndex returns, the sqlite3_value object returned by
|
** ^When xBestIndex returns, the sqlite3_value object returned by
|
||||||
** sqlite3_vtab_rhs_value() is automatically deallocated.
|
** sqlite3_vtab_rhs_value() is automatically deallocated.
|
||||||
**
|
**
|
||||||
** The "_rhs_" in the name of this routine is an appreviation for
|
** The "_rhs_" in the name of this routine is an abbreviation for
|
||||||
** "Right-Hand Side".
|
** "Right-Hand Side".
|
||||||
*/
|
*/
|
||||||
SQLITE_API int sqlite3_vtab_rhs_value(sqlite3_index_info*, int, sqlite3_value **ppVal);
|
SQLITE_API int sqlite3_vtab_rhs_value(sqlite3_index_info*, int, sqlite3_value **ppVal);
|
||||||
|
|
12
sqlite3ext.h
12
sqlite3ext.h
|
@ -351,6 +351,12 @@ struct sqlite3_api_routines {
|
||||||
int (*vtab_in)(sqlite3_index_info*,int,int);
|
int (*vtab_in)(sqlite3_index_info*,int,int);
|
||||||
int (*vtab_in_first)(sqlite3_value*,sqlite3_value**);
|
int (*vtab_in_first)(sqlite3_value*,sqlite3_value**);
|
||||||
int (*vtab_in_next)(sqlite3_value*,sqlite3_value**);
|
int (*vtab_in_next)(sqlite3_value*,sqlite3_value**);
|
||||||
|
/* Version 3.39.0 and later */
|
||||||
|
int (*deserialize)(sqlite3*,const char*,unsigned char*,
|
||||||
|
sqlite3_int64,sqlite3_int64,unsigned);
|
||||||
|
unsigned char *(*serialize)(sqlite3*,const char *,sqlite3_int64*,
|
||||||
|
unsigned int);
|
||||||
|
const char *(*db_name)(sqlite3*,int);
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -669,6 +675,12 @@ typedef int (*sqlite3_loadext_entry)(
|
||||||
#define sqlite3_vtab_in sqlite3_api->vtab_in
|
#define sqlite3_vtab_in sqlite3_api->vtab_in
|
||||||
#define sqlite3_vtab_in_first sqlite3_api->vtab_in_first
|
#define sqlite3_vtab_in_first sqlite3_api->vtab_in_first
|
||||||
#define sqlite3_vtab_in_next sqlite3_api->vtab_in_next
|
#define sqlite3_vtab_in_next sqlite3_api->vtab_in_next
|
||||||
|
/* Version 3.39.0 and later */
|
||||||
|
#ifndef SQLITE_OMIT_DESERIALIZE
|
||||||
|
#define sqlite3_deserialize sqlite3_api->deserialize
|
||||||
|
#define sqlite3_serialize sqlite3_api->serialize
|
||||||
|
#endif
|
||||||
|
#define sqlite3_db_name sqlite3_api->db_name
|
||||||
#endif /* !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) */
|
#endif /* !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) */
|
||||||
|
|
||||||
#if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION)
|
#if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION)
|
||||||
|
|
Loading…
Add table
Reference in a new issue