mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 508104 - Upgrade to SQLite 3.6.16
This contains the changes to SQLite code for the upgrade. --HG-- extra : rebase_source : be2ba260664dc80824dc6e2cd87f9e28beea9635
This commit is contained in:
parent
1a212f752a
commit
68406d2ef0
11442
db/sqlite3/src/sqlite3.c
11442
db/sqlite3/src/sqlite3.c
File diff suppressed because it is too large
Load Diff
@ -30,7 +30,7 @@
|
||||
** the version number) and changes its name to "sqlite3.h" as
|
||||
** part of the build process.
|
||||
**
|
||||
** @(#) $Id: sqlite.h.in,v 1.447 2009/04/30 15:59:56 drh Exp $
|
||||
** @(#) $Id: sqlite.h.in,v 1.458 2009/06/19 22:50:31 drh Exp $
|
||||
*/
|
||||
#ifndef _SQLITE3_H_
|
||||
#define _SQLITE3_H_
|
||||
@ -99,8 +99,8 @@ extern "C" {
|
||||
**
|
||||
** Requirements: [H10011] [H10014]
|
||||
*/
|
||||
#define SQLITE_VERSION "3.6.14.2"
|
||||
#define SQLITE_VERSION_NUMBER 3006014
|
||||
#define SQLITE_VERSION "3.6.16"
|
||||
#define SQLITE_VERSION_NUMBER 3006016
|
||||
|
||||
/*
|
||||
** CAPI3REF: Run-Time Library Version Numbers {H10020} <S60100>
|
||||
@ -392,20 +392,20 @@ int sqlite3_exec(
|
||||
** in the 4th parameter to the xOpen method of the
|
||||
** [sqlite3_vfs] object.
|
||||
*/
|
||||
#define SQLITE_OPEN_READONLY 0x00000001
|
||||
#define SQLITE_OPEN_READWRITE 0x00000002
|
||||
#define SQLITE_OPEN_CREATE 0x00000004
|
||||
#define SQLITE_OPEN_DELETEONCLOSE 0x00000008
|
||||
#define SQLITE_OPEN_EXCLUSIVE 0x00000010
|
||||
#define SQLITE_OPEN_MAIN_DB 0x00000100
|
||||
#define SQLITE_OPEN_TEMP_DB 0x00000200
|
||||
#define SQLITE_OPEN_TRANSIENT_DB 0x00000400
|
||||
#define SQLITE_OPEN_MAIN_JOURNAL 0x00000800
|
||||
#define SQLITE_OPEN_TEMP_JOURNAL 0x00001000
|
||||
#define SQLITE_OPEN_SUBJOURNAL 0x00002000
|
||||
#define SQLITE_OPEN_MASTER_JOURNAL 0x00004000
|
||||
#define SQLITE_OPEN_NOMUTEX 0x00008000
|
||||
#define SQLITE_OPEN_FULLMUTEX 0x00010000
|
||||
#define SQLITE_OPEN_READONLY 0x00000001 /* Ok for sqlite3_open_v2() */
|
||||
#define SQLITE_OPEN_READWRITE 0x00000002 /* Ok for sqlite3_open_v2() */
|
||||
#define SQLITE_OPEN_CREATE 0x00000004 /* Ok for sqlite3_open_v2() */
|
||||
#define SQLITE_OPEN_DELETEONCLOSE 0x00000008 /* VFS only */
|
||||
#define SQLITE_OPEN_EXCLUSIVE 0x00000010 /* VFS only */
|
||||
#define SQLITE_OPEN_MAIN_DB 0x00000100 /* VFS only */
|
||||
#define SQLITE_OPEN_TEMP_DB 0x00000200 /* VFS only */
|
||||
#define SQLITE_OPEN_TRANSIENT_DB 0x00000400 /* VFS only */
|
||||
#define SQLITE_OPEN_MAIN_JOURNAL 0x00000800 /* VFS only */
|
||||
#define SQLITE_OPEN_TEMP_JOURNAL 0x00001000 /* VFS only */
|
||||
#define SQLITE_OPEN_SUBJOURNAL 0x00002000 /* VFS only */
|
||||
#define SQLITE_OPEN_MASTER_JOURNAL 0x00004000 /* VFS only */
|
||||
#define SQLITE_OPEN_NOMUTEX 0x00008000 /* Ok for sqlite3_open_v2() */
|
||||
#define SQLITE_OPEN_FULLMUTEX 0x00010000 /* Ok for sqlite3_open_v2() */
|
||||
|
||||
/*
|
||||
** CAPI3REF: Device Characteristics {H10240} <H11120>
|
||||
@ -494,6 +494,12 @@ struct sqlite3_file {
|
||||
** This object defines the methods used to perform various operations
|
||||
** against the open file represented by the [sqlite3_file] object.
|
||||
**
|
||||
** If the xOpen method sets the sqlite3_file.pMethods element
|
||||
** to a non-NULL pointer, then the sqlite3_io_methods.xClose method
|
||||
** may be invoked even if the xOpen reported that it failed. The
|
||||
** only way to prevent a call to xClose following a failed xOpen
|
||||
** is for the xOpen to set the sqlite3_file.pMethods element to NULL.
|
||||
**
|
||||
** The flags argument to xSync may be one of [SQLITE_SYNC_NORMAL] or
|
||||
** [SQLITE_SYNC_FULL]. The first choice is the normal fsync().
|
||||
** The second choice is a Mac OS X style fullsync. The [SQLITE_SYNC_DATAONLY]
|
||||
@ -654,11 +660,11 @@ typedef struct sqlite3_mutex sqlite3_mutex;
|
||||
** is either a NULL pointer or string obtained
|
||||
** from xFullPathname(). SQLite further guarantees that
|
||||
** the string will be valid and unchanged until xClose() is
|
||||
** called. Because of the previous sentense,
|
||||
** called. Because of the previous sentence,
|
||||
** the [sqlite3_file] can safely store a pointer to the
|
||||
** filename if it needs to remember the filename for some reason.
|
||||
** If the zFilename parameter is xOpen is a NULL pointer then xOpen
|
||||
** must invite its own temporary name for the file. Whenever the
|
||||
** must invent its own temporary name for the file. Whenever the
|
||||
** xFilename parameter is NULL it will also be the case that the
|
||||
** flags parameter will include [SQLITE_OPEN_DELETEONCLOSE].
|
||||
**
|
||||
@ -702,14 +708,24 @@ typedef struct sqlite3_mutex sqlite3_mutex;
|
||||
** deleted when it is closed. The [SQLITE_OPEN_DELETEONCLOSE]
|
||||
** will be set for TEMP databases, journals and for subjournals.
|
||||
**
|
||||
** The [SQLITE_OPEN_EXCLUSIVE] flag means the file should be opened
|
||||
** for exclusive access. This flag is set for all files except
|
||||
** for the main database file.
|
||||
** The [SQLITE_OPEN_EXCLUSIVE] flag is always used in conjunction
|
||||
** with the [SQLITE_OPEN_CREATE] flag, which are both directly
|
||||
** analogous to the O_EXCL and O_CREAT flags of the POSIX open()
|
||||
** API. The SQLITE_OPEN_EXCLUSIVE flag, when paired with the
|
||||
** SQLITE_OPEN_CREATE, is used to indicate that file should always
|
||||
** be created, and that it is an error if it already exists.
|
||||
** It is <i>not</i> used to indicate the file should be opened
|
||||
** for exclusive access.
|
||||
**
|
||||
** At least szOsFile bytes of memory are allocated by SQLite
|
||||
** to hold the [sqlite3_file] structure passed as the third
|
||||
** argument to xOpen. The xOpen method does not have to
|
||||
** allocate the structure; it should just fill it in.
|
||||
** allocate the structure; it should just fill it in. Note that
|
||||
** the xOpen method must set the sqlite3_file.pMethods to either
|
||||
** a valid [sqlite3_io_methods] object or to NULL. xOpen must do
|
||||
** this even if the open fails. SQLite expects that the sqlite3_file.pMethods
|
||||
** element will be valid after xOpen returns regardless of the success
|
||||
** or failure of the xOpen call.
|
||||
**
|
||||
** The flags argument to xAccess() may be [SQLITE_ACCESS_EXISTS]
|
||||
** to test for the existence of a file, or [SQLITE_ACCESS_READWRITE] to
|
||||
@ -1031,12 +1047,14 @@ struct sqlite3_mem_methods {
|
||||
**
|
||||
** <dt>SQLITE_CONFIG_SCRATCH</dt>
|
||||
** <dd>This option specifies a static memory buffer that SQLite can use for
|
||||
** scratch memory. There are three arguments: A pointer to the memory, the
|
||||
** size of each scratch buffer (sz), and the number of buffers (N). The sz
|
||||
** scratch memory. There are three arguments: A pointer an 8-byte
|
||||
** aligned memory buffer from which the scrach allocations will be
|
||||
** drawn, the size of each scratch allocation (sz),
|
||||
** and the maximum number of scratch allocations (N). The sz
|
||||
** argument must be a multiple of 16. The sz parameter should be a few bytes
|
||||
** larger than the actual scratch space required due internal overhead.
|
||||
** The first
|
||||
** argument should point to an allocation of at least sz*N bytes of memory.
|
||||
** larger than the actual scratch space required due to internal overhead.
|
||||
** The first argument should pointer to an 8-byte aligned buffer
|
||||
** of at least sz*N bytes of memory.
|
||||
** SQLite will use no more than one scratch buffer at once per thread, so
|
||||
** N should be set to the expected maximum number of threads. The sz
|
||||
** parameter should be 6 times the size of the largest database page size.
|
||||
@ -1050,29 +1068,37 @@ struct sqlite3_mem_methods {
|
||||
** the database page cache with the default page cache implemenation.
|
||||
** This configuration should not be used if an application-define page
|
||||
** cache implementation is loaded using the SQLITE_CONFIG_PCACHE option.
|
||||
** There are three arguments to this option: A pointer to the
|
||||
** There are three arguments to this option: A pointer to 8-byte aligned
|
||||
** memory, the size of each page buffer (sz), and the number of pages (N).
|
||||
** The sz argument must be a power of two between 512 and 32768. The first
|
||||
** The sz argument should be the size of the largest database page
|
||||
** (a power of two between 512 and 32768) plus a little extra for each
|
||||
** page header. The page header size is 20 to 40 bytes depending on
|
||||
** the host architecture. It is harmless, apart from the wasted memory,
|
||||
** to make sz a little too large. The first
|
||||
** argument should point to an allocation of at least sz*N bytes of memory.
|
||||
** SQLite will use the memory provided by the first argument to satisfy its
|
||||
** memory needs for the first N pages that it adds to cache. If additional
|
||||
** page cache memory is needed beyond what is provided by this option, then
|
||||
** SQLite goes to [sqlite3_malloc()] for the additional storage space.
|
||||
** The implementation might use one or more of the N buffers to hold
|
||||
** memory accounting information. </dd>
|
||||
** memory accounting information. The pointer in the first argument must
|
||||
** be aligned to an 8-byte boundary or subsequent behavior of SQLite
|
||||
** will be undefined.</dd>
|
||||
**
|
||||
** <dt>SQLITE_CONFIG_HEAP</dt>
|
||||
** <dd>This option specifies a static memory buffer that SQLite will use
|
||||
** for all of its dynamic memory allocation needs beyond those provided
|
||||
** for by [SQLITE_CONFIG_SCRATCH] and [SQLITE_CONFIG_PAGECACHE].
|
||||
** There are three arguments: A pointer to the memory, the number of
|
||||
** bytes in the memory buffer, and the minimum allocation size. If
|
||||
** the first pointer (the memory pointer) is NULL, then SQLite reverts
|
||||
** There are three arguments: An 8-byte aligned pointer to the memory,
|
||||
** the number of bytes in the memory buffer, and the minimum allocation size.
|
||||
** If the first pointer (the memory pointer) is NULL, then SQLite reverts
|
||||
** to using its default memory allocator (the system malloc() implementation),
|
||||
** undoing any prior invocation of [SQLITE_CONFIG_MALLOC]. If the
|
||||
** memory pointer is not NULL and either [SQLITE_ENABLE_MEMSYS3] or
|
||||
** [SQLITE_ENABLE_MEMSYS5] are defined, then the alternative memory
|
||||
** allocator is engaged to handle all of SQLites memory allocation needs.</dd>
|
||||
** allocator is engaged to handle all of SQLites memory allocation needs.
|
||||
** The first pointer (the memory pointer) must be aligned to an 8-byte
|
||||
** boundary or subsequent behavior of SQLite will be undefined.</dd>
|
||||
**
|
||||
** <dt>SQLITE_CONFIG_MUTEX</dt>
|
||||
** <dd>This option takes a single argument which is a pointer to an
|
||||
@ -1143,9 +1169,9 @@ struct sqlite3_mem_methods {
|
||||
** <dd>This option takes three additional arguments that determine the
|
||||
** [lookaside memory allocator] configuration for the [database connection].
|
||||
** The first argument (the third parameter to [sqlite3_db_config()] is a
|
||||
** pointer to a memory buffer to use for lookaside memory. The first
|
||||
** argument may be NULL in which case SQLite will allocate the lookaside
|
||||
** buffer itself using [sqlite3_malloc()]. The second argument is the
|
||||
** pointer to an 8-byte aligned memory buffer to use for lookaside memory.
|
||||
** The first argument may be NULL in which case SQLite will allocate the
|
||||
** lookaside buffer itself using [sqlite3_malloc()]. The second argument is the
|
||||
** size of each lookaside buffer slot and the third argument is the number of
|
||||
** slots. The size of the buffer in the first argument must be greater than
|
||||
** or equal to the product of the second and third arguments.</dd>
|
||||
@ -1277,9 +1303,9 @@ int sqlite3_changes(sqlite3*);
|
||||
** [CREATE TRIGGER | trigger] contexts. However,
|
||||
** the count does not include changes used to implement [REPLACE] constraints,
|
||||
** do rollbacks or ABORT processing, or [DROP TABLE] processing. The
|
||||
** count does not rows of views that fire an [INSTEAD OF trigger], though if
|
||||
** the INSTEAD OF trigger makes changes of its own, those changes are
|
||||
** counted.
|
||||
** count does not include rows of views that fire an [INSTEAD OF trigger],
|
||||
** though if the INSTEAD OF trigger makes changes of its own, those changes
|
||||
** are counted.
|
||||
** The changes are counted as soon as the statement that makes them is
|
||||
** completed (when the statement handle is passed to [sqlite3_reset()] or
|
||||
** [sqlite3_finalize()]).
|
||||
@ -3069,8 +3095,11 @@ int sqlite3_reset(sqlite3_stmt *pStmt);
|
||||
**
|
||||
** The third parameter (nArg)
|
||||
** is the number of arguments that the SQL function or
|
||||
** aggregate takes. If this parameter is negative, then the SQL function or
|
||||
** aggregate may take any number of arguments.
|
||||
** aggregate takes. If this parameter is -1, then the SQL function or
|
||||
** aggregate may take any number of arguments between 0 and the limit
|
||||
** set by [sqlite3_limit]([SQLITE_LIMIT_FUNCTION_ARG]). If the third
|
||||
** parameter is less than -1 or greater than 127 then the behavior is
|
||||
** undefined.
|
||||
**
|
||||
** The fourth parameter, eTextRep, specifies what
|
||||
** [SQLITE_UTF8 | text encoding] this SQL function prefers for
|
||||
@ -3121,7 +3150,7 @@ int sqlite3_reset(sqlite3_stmt *pStmt);
|
||||
** statement in which the function is running.
|
||||
**
|
||||
** Requirements:
|
||||
** [H16103] [H16106] [H16109] [H16112] [H16118] [H16121] [H16124] [H16127]
|
||||
** [H16103] [H16106] [H16109] [H16112] [H16118] [H16121] [H16127]
|
||||
** [H16130] [H16133] [H16136] [H16139] [H16142]
|
||||
*/
|
||||
int sqlite3_create_function(
|
||||
@ -3736,11 +3765,11 @@ sqlite3_stmt *sqlite3_next_stmt(sqlite3 *pDb, sqlite3_stmt *pStmt);
|
||||
** CAPI3REF: Commit And Rollback Notification Callbacks {H12950} <S60400>
|
||||
**
|
||||
** The sqlite3_commit_hook() interface registers a callback
|
||||
** function to be invoked whenever a transaction is committed.
|
||||
** function to be invoked whenever a transaction is [COMMIT | committed].
|
||||
** Any callback set by a previous call to sqlite3_commit_hook()
|
||||
** for the same database connection is overridden.
|
||||
** The sqlite3_rollback_hook() interface registers a callback
|
||||
** function to be invoked whenever a transaction is committed.
|
||||
** function to be invoked whenever a transaction is [ROLLBACK | rolled back].
|
||||
** Any callback set by a previous call to sqlite3_commit_hook()
|
||||
** for the same database connection is overridden.
|
||||
** The pArg argument is passed through to the callback.
|
||||
@ -3760,6 +3789,12 @@ sqlite3_stmt *sqlite3_next_stmt(sqlite3 *pDb, sqlite3_stmt *pStmt);
|
||||
**
|
||||
** Registering a NULL function disables the callback.
|
||||
**
|
||||
** When the commit hook callback routine returns zero, the [COMMIT]
|
||||
** operation is allowed to continue normally. If the commit hook
|
||||
** returns non-zero, then the [COMMIT] is converted into a [ROLLBACK].
|
||||
** The rollback hook is invoked on a rollback that results from a commit
|
||||
** hook returning non-zero, just as it would be with any other rollback.
|
||||
**
|
||||
** For the purposes of this API, a transaction is said to have been
|
||||
** rolled back if an explicit "ROLLBACK" statement is executed, or
|
||||
** an error or constraint causes an implicit rollback to occur.
|
||||
@ -3769,6 +3804,8 @@ sqlite3_stmt *sqlite3_next_stmt(sqlite3 *pDb, sqlite3_stmt *pStmt);
|
||||
** rolled back because a commit callback returned non-zero.
|
||||
** <todo> Check on this </todo>
|
||||
**
|
||||
** See also the [sqlite3_update_hook()] interface.
|
||||
**
|
||||
** Requirements:
|
||||
** [H12951] [H12952] [H12953] [H12954] [H12955]
|
||||
** [H12961] [H12962] [H12963] [H12964]
|
||||
@ -3800,6 +3837,13 @@ void *sqlite3_rollback_hook(sqlite3*, void(*)(void *), void*);
|
||||
** The update hook is not invoked when internal system tables are
|
||||
** modified (i.e. sqlite_master and sqlite_sequence).
|
||||
**
|
||||
** In the current implementation, the update hook
|
||||
** is not invoked when duplication rows are deleted because of an
|
||||
** [ON CONFLICT | ON CONFLICT REPLACE] clause. Nor is the update hook
|
||||
** invoked when rows are deleted using the [truncate optimization].
|
||||
** The exceptions defined in this paragraph might change in a future
|
||||
** release of SQLite.
|
||||
**
|
||||
** The update hook implementation must not do anything that will modify
|
||||
** the database connection that invoked the update hook. Any actions
|
||||
** to modify the database connection must be deferred until after the
|
||||
@ -3810,6 +3854,9 @@ void *sqlite3_rollback_hook(sqlite3*, void(*)(void *), void*);
|
||||
** If another function was previously registered, its pArg value
|
||||
** is returned. Otherwise NULL is returned.
|
||||
**
|
||||
** See also the [sqlite3_commit_hook()] and [sqlite3_rollback_hook()]
|
||||
** interfaces.
|
||||
**
|
||||
** Requirements:
|
||||
** [H12971] [H12973] [H12975] [H12977] [H12979] [H12981] [H12983] [H12986]
|
||||
*/
|
||||
@ -4379,7 +4426,7 @@ typedef struct sqlite3_blob sqlite3_blob;
|
||||
** SELECT zColumn FROM zDb.zTable WHERE [rowid] = iRow;
|
||||
** </pre> {END}
|
||||
**
|
||||
** If the flags parameter is non-zero, the the BLOB is opened for read
|
||||
** If the flags parameter is non-zero, then the BLOB is opened for read
|
||||
** and write access. If it is zero, the BLOB is opened for read access.
|
||||
**
|
||||
** Note that the database name is not the filename that contains
|
||||
@ -4389,10 +4436,13 @@ typedef struct sqlite3_blob sqlite3_blob;
|
||||
** For TEMP tables, the database name is "temp".
|
||||
**
|
||||
** On success, [SQLITE_OK] is returned and the new [BLOB handle] is written
|
||||
** to *ppBlob. Otherwise an [error code] is returned and any value written
|
||||
** to *ppBlob should not be used by the caller.
|
||||
** to *ppBlob. Otherwise an [error code] is returned and *ppBlob is set
|
||||
** to be a null pointer.
|
||||
** This function sets the [database connection] error code and message
|
||||
** accessible via [sqlite3_errcode()] and [sqlite3_errmsg()].
|
||||
** accessible via [sqlite3_errcode()] and [sqlite3_errmsg()] and related
|
||||
** functions. Note that the *ppBlob variable is always initialized in a
|
||||
** way that makes it safe to invoke [sqlite3_blob_close()] on *ppBlob
|
||||
** regardless of the success or failure of this routine.
|
||||
**
|
||||
** If the row that a BLOB handle points to is modified by an
|
||||
** [UPDATE], [DELETE], or by [ON CONFLICT] side-effects
|
||||
@ -4405,6 +4455,19 @@ typedef struct sqlite3_blob sqlite3_blob;
|
||||
** rollback by the expiration of the BLOB. Such changes will eventually
|
||||
** commit if the transaction continues to completion.
|
||||
**
|
||||
** Use the [sqlite3_blob_bytes()] interface to determine the size of
|
||||
** the opened blob. The size of a blob may not be changed by this
|
||||
** underface. Use the [UPDATE] SQL command to change the size of a
|
||||
** blob.
|
||||
**
|
||||
** The [sqlite3_bind_zeroblob()] and [sqlite3_result_zeroblob()] interfaces
|
||||
** and the built-in [zeroblob] SQL function can be used, if desired,
|
||||
** to create an empty, zero-filled blob in which to read or write using
|
||||
** this interface.
|
||||
**
|
||||
** To avoid a resource leak, every open [BLOB handle] should eventually
|
||||
** be released by a call to [sqlite3_blob_close()].
|
||||
**
|
||||
** Requirements:
|
||||
** [H17813] [H17814] [H17816] [H17819] [H17821] [H17824]
|
||||
*/
|
||||
@ -4427,16 +4490,19 @@ int sqlite3_blob_open(
|
||||
** if there are no other BLOBs, no pending prepared statements, and the
|
||||
** database connection is in [autocommit mode].
|
||||
** If any writes were made to the BLOB, they might be held in cache
|
||||
** until the close operation if they will fit. {END}
|
||||
** until the close operation if they will fit.
|
||||
**
|
||||
** Closing the BLOB often forces the changes
|
||||
** out to disk and so if any I/O errors occur, they will likely occur
|
||||
** at the time when the BLOB is closed. {H17833} Any errors that occur during
|
||||
** at the time when the BLOB is closed. Any errors that occur during
|
||||
** closing are reported as a non-zero return value.
|
||||
**
|
||||
** The BLOB is closed unconditionally. Even if this routine returns
|
||||
** an error code, the BLOB is still closed.
|
||||
**
|
||||
** Calling this routine with a null pointer (which as would be returned
|
||||
** by failed call to [sqlite3_blob_open()]) is a harmless no-op.
|
||||
**
|
||||
** Requirements:
|
||||
** [H17833] [H17836] [H17839]
|
||||
*/
|
||||
@ -4445,8 +4511,15 @@ int sqlite3_blob_close(sqlite3_blob *);
|
||||
/*
|
||||
** CAPI3REF: Return The Size Of An Open BLOB {H17840} <S30230>
|
||||
**
|
||||
** Returns the size in bytes of the BLOB accessible via the open
|
||||
** []BLOB handle] in its only argument.
|
||||
** Returns the size in bytes of the BLOB accessible via the
|
||||
** successfully opened [BLOB handle] in its only argument. The
|
||||
** incremental blob I/O routines can only read or overwriting existing
|
||||
** blob content; they cannot change the size of a blob.
|
||||
**
|
||||
** This routine only works on a [BLOB handle] which has been created
|
||||
** by a prior successful call to [sqlite3_blob_open()] and which has not
|
||||
** been closed by [sqlite3_blob_close()]. Passing any other pointer in
|
||||
** to this routine results in undefined and probably undesirable behavior.
|
||||
**
|
||||
** Requirements:
|
||||
** [H17843]
|
||||
@ -4463,6 +4536,8 @@ int sqlite3_blob_bytes(sqlite3_blob *);
|
||||
** If offset iOffset is less than N bytes from the end of the BLOB,
|
||||
** [SQLITE_ERROR] is returned and no data is read. If N or iOffset is
|
||||
** less than zero, [SQLITE_ERROR] is returned and no data is read.
|
||||
** The size of the blob (and hence the maximum value of N+iOffset)
|
||||
** can be determined using the [sqlite3_blob_bytes()] interface.
|
||||
**
|
||||
** An attempt to read from an expired [BLOB handle] fails with an
|
||||
** error code of [SQLITE_ABORT].
|
||||
@ -4470,6 +4545,13 @@ int sqlite3_blob_bytes(sqlite3_blob *);
|
||||
** On success, SQLITE_OK is returned.
|
||||
** Otherwise, an [error code] or an [extended error code] is returned.
|
||||
**
|
||||
** This routine only works on a [BLOB handle] which has been created
|
||||
** by a prior successful call to [sqlite3_blob_open()] and which has not
|
||||
** been closed by [sqlite3_blob_close()]. Passing any other pointer in
|
||||
** to this routine results in undefined and probably undesirable behavior.
|
||||
**
|
||||
** See also: [sqlite3_blob_write()].
|
||||
**
|
||||
** Requirements:
|
||||
** [H17853] [H17856] [H17859] [H17862] [H17863] [H17865] [H17868]
|
||||
*/
|
||||
@ -4491,6 +4573,8 @@ int sqlite3_blob_read(sqlite3_blob *, void *Z, int N, int iOffset);
|
||||
** If offset iOffset is less than N bytes from the end of the BLOB,
|
||||
** [SQLITE_ERROR] is returned and no data is written. If N is
|
||||
** less than zero [SQLITE_ERROR] is returned and no data is written.
|
||||
** The size of the BLOB (and hence the maximum value of N+iOffset)
|
||||
** can be determined using the [sqlite3_blob_bytes()] interface.
|
||||
**
|
||||
** An attempt to write to an expired [BLOB handle] fails with an
|
||||
** error code of [SQLITE_ABORT]. Writes to the BLOB that occurred
|
||||
@ -4502,6 +4586,13 @@ int sqlite3_blob_read(sqlite3_blob *, void *Z, int N, int iOffset);
|
||||
** On success, SQLITE_OK is returned.
|
||||
** Otherwise, an [error code] or an [extended error code] is returned.
|
||||
**
|
||||
** This routine only works on a [BLOB handle] which has been created
|
||||
** by a prior successful call to [sqlite3_blob_open()] and which has not
|
||||
** been closed by [sqlite3_blob_close()]. Passing any other pointer in
|
||||
** to this routine results in undefined and probably undesirable behavior.
|
||||
**
|
||||
** See also: [sqlite3_blob_read()].
|
||||
**
|
||||
** Requirements:
|
||||
** [H17873] [H17874] [H17875] [H17876] [H17877] [H17879] [H17882] [H17885]
|
||||
** [H17888]
|
||||
@ -4852,6 +4943,8 @@ int sqlite3_test_control(int op, ...);
|
||||
#define SQLITE_TESTCTRL_FAULT_INSTALL 9
|
||||
#define SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS 10
|
||||
#define SQLITE_TESTCTRL_PENDING_BYTE 11
|
||||
#define SQLITE_TESTCTRL_ASSERT 12
|
||||
#define SQLITE_TESTCTRL_ALWAYS 13
|
||||
|
||||
/*
|
||||
** CAPI3REF: SQLite Runtime Status {H17200} <S60200>
|
||||
|
Loading…
Reference in New Issue
Block a user