mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-12 13:01:09 +03:00
Elaborate on the open-in-read-only fallback behavior of the SQLITE_OPEN_READWRITE flag, per user request. Unrelated trailing EOL whitespace cleanups.
FossilOrigin-Name: 1003144fc192e1531e1bc968d7e1d0ccc7ad31e501180f90e1479565a4abfb96
This commit is contained in:
12
manifest
12
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Remove\sthe\sJS-side\sSQLITE_WASM_DEALLOC\ssanity\scheck\swhich\striggers\sthe\sproblem\smentioned\sin\s[688c5c13d156]\sand\s[ae0196d86ee8],\sfor\sreasons\scovered\sin\sthe\scode\scomments,\sper\sdiscussion\sin\s[forum:e5b20e1feb|forum\spost\se5b20e1feb].
|
C Elaborate\son\sthe\sopen-in-read-only\sfallback\sbehavior\sof\sthe\sSQLITE_OPEN_READWRITE\sflag,\sper\suser\srequest.\sUnrelated\strailing\sEOL\swhitespace\scleanups.
|
||||||
D 2023-01-04T03:14:06.615
|
D 2023-01-04T11:57:27.127
|
||||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||||
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
||||||
@@ -647,7 +647,7 @@ F src/resolve.c efea4e5fbecfd6d0a9071b0be0d952620991673391b6ffaaf4c277b0bb674633
|
|||||||
F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
|
F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
|
||||||
F src/select.c 83de67e4857be2866d048c98e93f65461d8a0408ca4ce88fec68ebfe030997ae
|
F src/select.c 83de67e4857be2866d048c98e93f65461d8a0408ca4ce88fec68ebfe030997ae
|
||||||
F src/shell.c.in 01816a1e0eb3a2e9a9a4b11570d68058969c88b2ec5ecaf80c57d6ca1b8d46a4
|
F src/shell.c.in 01816a1e0eb3a2e9a9a4b11570d68058969c88b2ec5ecaf80c57d6ca1b8d46a4
|
||||||
F src/sqlite.h.in 7982c691e4647071a6df1ef45e7d704613225259414e153939b0928a9952a1ae
|
F src/sqlite.h.in 973f6b2e9a6599b14eec6f88212d83a1d4e888bf62086e46b0580614f78cea7c
|
||||||
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
|
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
|
||||||
F src/sqlite3ext.h c4b9fa7a7e2bcdf850cfeb4b8a91d5ec47b7a00033bc996fd2ee96cbf2741f5f
|
F src/sqlite3ext.h c4b9fa7a7e2bcdf850cfeb4b8a91d5ec47b7a00033bc996fd2ee96cbf2741f5f
|
||||||
F src/sqliteInt.h e0c0fdb6a475c8dcf94c48bc0521c7381ae28239ce9a23d8fbfdea249c0d2899
|
F src/sqliteInt.h e0c0fdb6a475c8dcf94c48bc0521c7381ae28239ce9a23d8fbfdea249c0d2899
|
||||||
@@ -2067,8 +2067,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
|||||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||||
P a19597b4fd2530a89363992b9179f9f3f0621a6e3861a91324f29311aafe09b9
|
P 65ff3200c6009a1649fc108d7ce36f5c014185ba46bbf98471ec86eaeb572656
|
||||||
R cf7736aed38ba8edc7ed369b784dbcd1
|
R ff536d5b4bd68ee026a95d2a22179954
|
||||||
U stephan
|
U stephan
|
||||||
Z 0d48cca09eb0bd8b01ad4e4900dbb440
|
Z 24f9760adb78b1f8854f3748c7f5f544
|
||||||
# Remove this line to create a well-formed Fossil manifest.
|
# Remove this line to create a well-formed Fossil manifest.
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
65ff3200c6009a1649fc108d7ce36f5c014185ba46bbf98471ec86eaeb572656
|
1003144fc192e1531e1bc968d7e1d0ccc7ad31e501180f90e1479565a4abfb96
|
||||||
127
src/sqlite.h.in
127
src/sqlite.h.in
@@ -174,8 +174,8 @@ extern "C" {
|
|||||||
** function is provided for use in DLLs since DLL users usually do not have
|
** function is provided for use in DLLs since DLL users usually do not have
|
||||||
** direct access to string constants within the DLL. ^The
|
** direct access to string constants within the DLL. ^The
|
||||||
** sqlite3_libversion_number() function returns an integer equal to
|
** sqlite3_libversion_number() function returns an integer equal to
|
||||||
** [SQLITE_VERSION_NUMBER]. ^(The sqlite3_sourceid() function returns
|
** [SQLITE_VERSION_NUMBER]. ^(The sqlite3_sourceid() function returns
|
||||||
** a pointer to a string constant whose value is the same as the
|
** a pointer to a string constant whose value is the same as the
|
||||||
** [SQLITE_SOURCE_ID] C preprocessor macro. Except if SQLite is built
|
** [SQLITE_SOURCE_ID] C preprocessor macro. Except if SQLite is built
|
||||||
** using an edited copy of [the amalgamation], then the last four characters
|
** using an edited copy of [the amalgamation], then the last four characters
|
||||||
** of the hash might be different from [SQLITE_SOURCE_ID].)^
|
** of the hash might be different from [SQLITE_SOURCE_ID].)^
|
||||||
@@ -190,20 +190,20 @@ int sqlite3_libversion_number(void);
|
|||||||
/*
|
/*
|
||||||
** CAPI3REF: Run-Time Library Compilation Options Diagnostics
|
** CAPI3REF: Run-Time Library Compilation Options Diagnostics
|
||||||
**
|
**
|
||||||
** ^The sqlite3_compileoption_used() function returns 0 or 1
|
** ^The sqlite3_compileoption_used() function returns 0 or 1
|
||||||
** indicating whether the specified option was defined at
|
** indicating whether the specified option was defined at
|
||||||
** compile time. ^The SQLITE_ prefix may be omitted from the
|
** compile time. ^The SQLITE_ prefix may be omitted from the
|
||||||
** option name passed to sqlite3_compileoption_used().
|
** option name passed to sqlite3_compileoption_used().
|
||||||
**
|
**
|
||||||
** ^The sqlite3_compileoption_get() function allows iterating
|
** ^The sqlite3_compileoption_get() function allows iterating
|
||||||
** over the list of options that were defined at compile time by
|
** over the list of options that were defined at compile time by
|
||||||
** returning the N-th compile time option string. ^If N is out of range,
|
** returning the N-th compile time option string. ^If N is out of range,
|
||||||
** sqlite3_compileoption_get() returns a NULL pointer. ^The SQLITE_
|
** sqlite3_compileoption_get() returns a NULL pointer. ^The SQLITE_
|
||||||
** prefix is omitted from any strings returned by
|
** prefix is omitted from any strings returned by
|
||||||
** sqlite3_compileoption_get().
|
** sqlite3_compileoption_get().
|
||||||
**
|
**
|
||||||
** ^Support for the diagnostic functions sqlite3_compileoption_used()
|
** ^Support for the diagnostic functions sqlite3_compileoption_used()
|
||||||
** and sqlite3_compileoption_get() may be omitted by specifying the
|
** and sqlite3_compileoption_get() may be omitted by specifying the
|
||||||
** [SQLITE_OMIT_COMPILEOPTION_DIAGS] option at compile time.
|
** [SQLITE_OMIT_COMPILEOPTION_DIAGS] option at compile time.
|
||||||
**
|
**
|
||||||
** See also: SQL functions [sqlite_compileoption_used()] and
|
** See also: SQL functions [sqlite_compileoption_used()] and
|
||||||
@@ -227,7 +227,7 @@ const char *sqlite3_compileoption_get(int N);
|
|||||||
** SQLite can be compiled with or without mutexes. When
|
** SQLite can be compiled with or without mutexes. When
|
||||||
** the [SQLITE_THREADSAFE] C preprocessor macro is 1 or 2, mutexes
|
** the [SQLITE_THREADSAFE] C preprocessor macro is 1 or 2, mutexes
|
||||||
** are enabled and SQLite is threadsafe. When the
|
** are enabled and SQLite is threadsafe. When the
|
||||||
** [SQLITE_THREADSAFE] macro is 0,
|
** [SQLITE_THREADSAFE] macro is 0,
|
||||||
** the mutexes are omitted. Without the mutexes, it is not safe
|
** the mutexes are omitted. Without the mutexes, it is not safe
|
||||||
** to use SQLite concurrently from more than one thread.
|
** to use SQLite concurrently from more than one thread.
|
||||||
**
|
**
|
||||||
@@ -284,14 +284,14 @@ typedef struct sqlite3 sqlite3;
|
|||||||
**
|
**
|
||||||
** ^The sqlite3_int64 and sqlite_int64 types can store integer values
|
** ^The sqlite3_int64 and sqlite_int64 types can store integer values
|
||||||
** between -9223372036854775808 and +9223372036854775807 inclusive. ^The
|
** between -9223372036854775808 and +9223372036854775807 inclusive. ^The
|
||||||
** sqlite3_uint64 and sqlite_uint64 types can store integer values
|
** sqlite3_uint64 and sqlite_uint64 types can store integer values
|
||||||
** between 0 and +18446744073709551615 inclusive.
|
** between 0 and +18446744073709551615 inclusive.
|
||||||
*/
|
*/
|
||||||
#ifdef SQLITE_INT64_TYPE
|
#ifdef SQLITE_INT64_TYPE
|
||||||
typedef SQLITE_INT64_TYPE sqlite_int64;
|
typedef SQLITE_INT64_TYPE sqlite_int64;
|
||||||
# ifdef SQLITE_UINT64_TYPE
|
# ifdef SQLITE_UINT64_TYPE
|
||||||
typedef SQLITE_UINT64_TYPE sqlite_uint64;
|
typedef SQLITE_UINT64_TYPE sqlite_uint64;
|
||||||
# else
|
# else
|
||||||
typedef unsigned SQLITE_INT64_TYPE sqlite_uint64;
|
typedef unsigned SQLITE_INT64_TYPE sqlite_uint64;
|
||||||
# endif
|
# endif
|
||||||
#elif defined(_MSC_VER) || defined(__BORLANDC__)
|
#elif defined(_MSC_VER) || defined(__BORLANDC__)
|
||||||
@@ -323,7 +323,7 @@ typedef sqlite_uint64 sqlite3_uint64;
|
|||||||
** resources are deallocated.
|
** resources are deallocated.
|
||||||
**
|
**
|
||||||
** Ideally, applications should [sqlite3_finalize | finalize] all
|
** Ideally, applications should [sqlite3_finalize | finalize] all
|
||||||
** [prepared statements], [sqlite3_blob_close | close] all [BLOB handles], and
|
** [prepared statements], [sqlite3_blob_close | close] all [BLOB handles], and
|
||||||
** [sqlite3_backup_finish | finish] all [sqlite3_backup] objects associated
|
** [sqlite3_backup_finish | finish] all [sqlite3_backup] objects associated
|
||||||
** with the [sqlite3] object prior to attempting to close the object.
|
** with the [sqlite3] object prior to attempting to close the object.
|
||||||
** ^If the database connection is associated with unfinalized prepared
|
** ^If the database connection is associated with unfinalized prepared
|
||||||
@@ -367,7 +367,7 @@ typedef int (*sqlite3_callback)(void*,int,char**, char**);
|
|||||||
** The sqlite3_exec() interface is a convenience wrapper around
|
** The sqlite3_exec() interface is a convenience wrapper around
|
||||||
** [sqlite3_prepare_v2()], [sqlite3_step()], and [sqlite3_finalize()],
|
** [sqlite3_prepare_v2()], [sqlite3_step()], and [sqlite3_finalize()],
|
||||||
** that allows an application to run multiple statements of SQL
|
** that allows an application to run multiple statements of SQL
|
||||||
** without having to use a lot of C code.
|
** without having to use a lot of C code.
|
||||||
**
|
**
|
||||||
** ^The sqlite3_exec() interface runs zero or more UTF-8 encoded,
|
** ^The sqlite3_exec() interface runs zero or more UTF-8 encoded,
|
||||||
** semicolon-separate SQL statements passed into its 2nd argument,
|
** semicolon-separate SQL statements passed into its 2nd argument,
|
||||||
@@ -407,7 +407,7 @@ typedef int (*sqlite3_callback)(void*,int,char**, char**);
|
|||||||
** from [sqlite3_column_name()].
|
** from [sqlite3_column_name()].
|
||||||
**
|
**
|
||||||
** ^If the 2nd parameter to sqlite3_exec() is a NULL pointer, a pointer
|
** ^If the 2nd parameter to sqlite3_exec() is a NULL pointer, a pointer
|
||||||
** to an empty string, or a pointer that contains only whitespace and/or
|
** to an empty string, or a pointer that contains only whitespace and/or
|
||||||
** SQL comments, then no SQL statements are evaluated and the database
|
** SQL comments, then no SQL statements are evaluated and the database
|
||||||
** is not changed.
|
** is not changed.
|
||||||
**
|
**
|
||||||
@@ -766,7 +766,7 @@ struct sqlite3_file {
|
|||||||
** requested lock, then the call to xLock() is a no-op.
|
** requested lock, then the call to xLock() is a no-op.
|
||||||
** xUnlock() downgrades the database file lock to either SHARED or NONE.
|
** xUnlock() downgrades the database file lock to either SHARED or NONE.
|
||||||
* If the lock is already at or below the requested lock state, then the call
|
* If the lock is already at or below the requested lock state, then the call
|
||||||
** to xUnlock() is a no-op.
|
** to xUnlock() is a no-op.
|
||||||
** The xCheckReservedLock() method checks whether any database connection,
|
** The xCheckReservedLock() method checks whether any database connection,
|
||||||
** either in this process or in some other process, is holding a RESERVED,
|
** either in this process or in some other process, is holding a RESERVED,
|
||||||
** PENDING, or EXCLUSIVE lock on the file. It returns true
|
** PENDING, or EXCLUSIVE lock on the file. It returns true
|
||||||
@@ -894,7 +894,7 @@ struct sqlite3_io_methods {
|
|||||||
** <li>[[SQLITE_FCNTL_CHUNK_SIZE]]
|
** <li>[[SQLITE_FCNTL_CHUNK_SIZE]]
|
||||||
** The [SQLITE_FCNTL_CHUNK_SIZE] opcode is used to request that the VFS
|
** The [SQLITE_FCNTL_CHUNK_SIZE] opcode is used to request that the VFS
|
||||||
** extends and truncates the database file in chunks of a size specified
|
** extends and truncates the database file in chunks of a size specified
|
||||||
** by the user. The fourth argument to [sqlite3_file_control()] should
|
** by the user. The fourth argument to [sqlite3_file_control()] should
|
||||||
** point to an integer (type int) containing the new chunk-size to use
|
** point to an integer (type int) containing the new chunk-size to use
|
||||||
** for the nominated database. Allocating database file space in large
|
** for the nominated database. Allocating database file space in large
|
||||||
** chunks (say 1MB at a time), may reduce file-system fragmentation and
|
** chunks (say 1MB at a time), may reduce file-system fragmentation and
|
||||||
@@ -917,24 +917,24 @@ struct sqlite3_io_methods {
|
|||||||
** <li>[[SQLITE_FCNTL_SYNC]]
|
** <li>[[SQLITE_FCNTL_SYNC]]
|
||||||
** The [SQLITE_FCNTL_SYNC] opcode is generated internally by SQLite and
|
** The [SQLITE_FCNTL_SYNC] opcode is generated internally by SQLite and
|
||||||
** sent to the VFS immediately before the xSync method is invoked on a
|
** sent to the VFS immediately before the xSync method is invoked on a
|
||||||
** database file descriptor. Or, if the xSync method is not invoked
|
** database file descriptor. Or, if the xSync method is not invoked
|
||||||
** because the user has configured SQLite with
|
** because the user has configured SQLite with
|
||||||
** [PRAGMA synchronous | PRAGMA synchronous=OFF] it is invoked in place
|
** [PRAGMA synchronous | PRAGMA synchronous=OFF] it is invoked in place
|
||||||
** of the xSync method. In most cases, the pointer argument passed with
|
** of the xSync method. In most cases, the pointer argument passed with
|
||||||
** this file-control is NULL. However, if the database file is being synced
|
** this file-control is NULL. However, if the database file is being synced
|
||||||
** as part of a multi-database commit, the argument points to a nul-terminated
|
** as part of a multi-database commit, the argument points to a nul-terminated
|
||||||
** string containing the transactions super-journal file name. VFSes that
|
** string containing the transactions super-journal file name. VFSes that
|
||||||
** do not need this signal should silently ignore this opcode. Applications
|
** do not need this signal should silently ignore this opcode. Applications
|
||||||
** should not call [sqlite3_file_control()] with this opcode as doing so may
|
** should not call [sqlite3_file_control()] with this opcode as doing so may
|
||||||
** disrupt the operation of the specialized VFSes that do require it.
|
** disrupt the operation of the specialized VFSes that do require it.
|
||||||
**
|
**
|
||||||
** <li>[[SQLITE_FCNTL_COMMIT_PHASETWO]]
|
** <li>[[SQLITE_FCNTL_COMMIT_PHASETWO]]
|
||||||
** The [SQLITE_FCNTL_COMMIT_PHASETWO] opcode is generated internally by SQLite
|
** The [SQLITE_FCNTL_COMMIT_PHASETWO] opcode is generated internally by SQLite
|
||||||
** and sent to the VFS after a transaction has been committed immediately
|
** and sent to the VFS after a transaction has been committed immediately
|
||||||
** but before the database is unlocked. VFSes that do not need this signal
|
** but before the database is unlocked. VFSes that do not need this signal
|
||||||
** should silently ignore this opcode. Applications should not call
|
** should silently ignore this opcode. Applications should not call
|
||||||
** [sqlite3_file_control()] with this opcode as doing so may disrupt the
|
** [sqlite3_file_control()] with this opcode as doing so may disrupt the
|
||||||
** operation of the specialized VFSes that do require it.
|
** operation of the specialized VFSes that do require it.
|
||||||
**
|
**
|
||||||
** <li>[[SQLITE_FCNTL_WIN32_AV_RETRY]]
|
** <li>[[SQLITE_FCNTL_WIN32_AV_RETRY]]
|
||||||
** ^The [SQLITE_FCNTL_WIN32_AV_RETRY] opcode is used to configure automatic
|
** ^The [SQLITE_FCNTL_WIN32_AV_RETRY] opcode is used to configure automatic
|
||||||
@@ -1007,7 +1007,7 @@ struct sqlite3_io_methods {
|
|||||||
** upper-most shim only.
|
** upper-most shim only.
|
||||||
**
|
**
|
||||||
** <li>[[SQLITE_FCNTL_PRAGMA]]
|
** <li>[[SQLITE_FCNTL_PRAGMA]]
|
||||||
** ^Whenever a [PRAGMA] statement is parsed, an [SQLITE_FCNTL_PRAGMA]
|
** ^Whenever a [PRAGMA] statement is parsed, an [SQLITE_FCNTL_PRAGMA]
|
||||||
** file control is sent to the open [sqlite3_file] object corresponding
|
** file control is sent to the open [sqlite3_file] object corresponding
|
||||||
** to the database file to which the pragma statement refers. ^The argument
|
** to the database file to which the pragma statement refers. ^The argument
|
||||||
** to the [SQLITE_FCNTL_PRAGMA] file control is an array of
|
** to the [SQLITE_FCNTL_PRAGMA] file control is an array of
|
||||||
@@ -1018,7 +1018,7 @@ struct sqlite3_io_methods {
|
|||||||
** of the char** argument point to a string obtained from [sqlite3_mprintf()]
|
** of the char** argument point to a string obtained from [sqlite3_mprintf()]
|
||||||
** or the equivalent and that string will become the result of the pragma or
|
** or the equivalent and that string will become the result of the pragma or
|
||||||
** the error message if the pragma fails. ^If the
|
** the error message if the pragma fails. ^If the
|
||||||
** [SQLITE_FCNTL_PRAGMA] file control returns [SQLITE_NOTFOUND], then normal
|
** [SQLITE_FCNTL_PRAGMA] file control returns [SQLITE_NOTFOUND], then normal
|
||||||
** [PRAGMA] processing continues. ^If the [SQLITE_FCNTL_PRAGMA]
|
** [PRAGMA] processing continues. ^If the [SQLITE_FCNTL_PRAGMA]
|
||||||
** file control returns [SQLITE_OK], then the parser assumes that the
|
** file control returns [SQLITE_OK], then the parser assumes that the
|
||||||
** VFS has handled the PRAGMA itself and the parser generates a no-op
|
** VFS has handled the PRAGMA itself and the parser generates a no-op
|
||||||
@@ -1058,7 +1058,7 @@ struct sqlite3_io_methods {
|
|||||||
** The argument is a pointer to a value of type sqlite3_int64 that
|
** The argument is a pointer to a value of type sqlite3_int64 that
|
||||||
** is an advisory maximum number of bytes in the file to memory map. The
|
** is an advisory maximum number of bytes in the file to memory map. The
|
||||||
** pointer is overwritten with the old value. The limit is not changed if
|
** pointer is overwritten with the old value. The limit is not changed if
|
||||||
** the value originally pointed to is negative, and so the current limit
|
** the value originally pointed to is negative, and so the current limit
|
||||||
** can be queried by passing in a pointer to a negative number. This
|
** can be queried by passing in a pointer to a negative number. This
|
||||||
** file-control is used internally to implement [PRAGMA mmap_size].
|
** file-control is used internally to implement [PRAGMA mmap_size].
|
||||||
**
|
**
|
||||||
@@ -1102,7 +1102,7 @@ struct sqlite3_io_methods {
|
|||||||
** <li>[[SQLITE_FCNTL_RBU]]
|
** <li>[[SQLITE_FCNTL_RBU]]
|
||||||
** The [SQLITE_FCNTL_RBU] opcode is implemented by the special VFS used by
|
** The [SQLITE_FCNTL_RBU] opcode is implemented by the special VFS used by
|
||||||
** the RBU extension only. All other VFS should return SQLITE_NOTFOUND for
|
** the RBU extension only. All other VFS should return SQLITE_NOTFOUND for
|
||||||
** this opcode.
|
** this opcode.
|
||||||
**
|
**
|
||||||
** <li>[[SQLITE_FCNTL_BEGIN_ATOMIC_WRITE]]
|
** <li>[[SQLITE_FCNTL_BEGIN_ATOMIC_WRITE]]
|
||||||
** If the [SQLITE_FCNTL_BEGIN_ATOMIC_WRITE] opcode returns SQLITE_OK, then
|
** If the [SQLITE_FCNTL_BEGIN_ATOMIC_WRITE] opcode returns SQLITE_OK, then
|
||||||
@@ -1119,7 +1119,7 @@ struct sqlite3_io_methods {
|
|||||||
**
|
**
|
||||||
** <li>[[SQLITE_FCNTL_COMMIT_ATOMIC_WRITE]]
|
** <li>[[SQLITE_FCNTL_COMMIT_ATOMIC_WRITE]]
|
||||||
** The [SQLITE_FCNTL_COMMIT_ATOMIC_WRITE] opcode causes all write
|
** The [SQLITE_FCNTL_COMMIT_ATOMIC_WRITE] opcode causes all write
|
||||||
** operations since the previous successful call to
|
** operations since the previous successful call to
|
||||||
** [SQLITE_FCNTL_BEGIN_ATOMIC_WRITE] to be performed atomically.
|
** [SQLITE_FCNTL_BEGIN_ATOMIC_WRITE] to be performed atomically.
|
||||||
** This file control returns [SQLITE_OK] if and only if the writes were
|
** This file control returns [SQLITE_OK] if and only if the writes were
|
||||||
** all performed successfully and have been committed to persistent storage.
|
** all performed successfully and have been committed to persistent storage.
|
||||||
@@ -1131,7 +1131,7 @@ struct sqlite3_io_methods {
|
|||||||
**
|
**
|
||||||
** <li>[[SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE]]
|
** <li>[[SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE]]
|
||||||
** The [SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE] opcode causes all write
|
** The [SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE] opcode causes all write
|
||||||
** operations since the previous successful call to
|
** operations since the previous successful call to
|
||||||
** [SQLITE_FCNTL_BEGIN_ATOMIC_WRITE] to be rolled back.
|
** [SQLITE_FCNTL_BEGIN_ATOMIC_WRITE] to be rolled back.
|
||||||
** ^This file control takes the file descriptor out of batch write mode
|
** ^This file control takes the file descriptor out of batch write mode
|
||||||
** so that all subsequent write operations are independent.
|
** so that all subsequent write operations are independent.
|
||||||
@@ -1140,8 +1140,8 @@ struct sqlite3_io_methods {
|
|||||||
**
|
**
|
||||||
** <li>[[SQLITE_FCNTL_LOCK_TIMEOUT]]
|
** <li>[[SQLITE_FCNTL_LOCK_TIMEOUT]]
|
||||||
** The [SQLITE_FCNTL_LOCK_TIMEOUT] opcode is used to configure a VFS
|
** The [SQLITE_FCNTL_LOCK_TIMEOUT] opcode is used to configure a VFS
|
||||||
** to block for up to M milliseconds before failing when attempting to
|
** to block for up to M milliseconds before failing when attempting to
|
||||||
** obtain a file lock using the xLock or xShmLock methods of the VFS.
|
** obtain a file lock using the xLock or xShmLock methods of the VFS.
|
||||||
** The parameter is a pointer to a 32-bit signed integer that contains
|
** The parameter is a pointer to a 32-bit signed integer that contains
|
||||||
** the value that M is to be set to. Before returning, the 32-bit signed
|
** the value that M is to be set to. Before returning, the 32-bit signed
|
||||||
** integer is overwritten with the previous value of M.
|
** integer is overwritten with the previous value of M.
|
||||||
@@ -1345,14 +1345,14 @@ typedef const char *sqlite3_filename;
|
|||||||
** the [sqlite3_file] can safely store a pointer to the
|
** the [sqlite3_file] can safely store a pointer to the
|
||||||
** filename if it needs to remember the filename for some reason.
|
** filename if it needs to remember the filename for some reason.
|
||||||
** If the zFilename parameter to xOpen is a NULL pointer then xOpen
|
** If the zFilename parameter to xOpen is a NULL pointer then xOpen
|
||||||
** must invent 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
|
** xFilename parameter is NULL it will also be the case that the
|
||||||
** flags parameter will include [SQLITE_OPEN_DELETEONCLOSE].
|
** flags parameter will include [SQLITE_OPEN_DELETEONCLOSE].
|
||||||
**
|
**
|
||||||
** The flags argument to xOpen() includes all bits set in
|
** The flags argument to xOpen() includes all bits set in
|
||||||
** the flags argument to [sqlite3_open_v2()]. Or if [sqlite3_open()]
|
** the flags argument to [sqlite3_open_v2()]. Or if [sqlite3_open()]
|
||||||
** or [sqlite3_open16()] is used, then flags includes at least
|
** or [sqlite3_open16()] is used, then flags includes at least
|
||||||
** [SQLITE_OPEN_READWRITE] | [SQLITE_OPEN_CREATE].
|
** [SQLITE_OPEN_READWRITE] | [SQLITE_OPEN_CREATE].
|
||||||
** If xOpen() opens a file read-only then it sets *pOutFlags to
|
** If xOpen() opens a file read-only then it sets *pOutFlags to
|
||||||
** include [SQLITE_OPEN_READONLY]. Other bits in *pOutFlags may be set.
|
** include [SQLITE_OPEN_READONLY]. Other bits in *pOutFlags may be set.
|
||||||
**
|
**
|
||||||
@@ -1394,10 +1394,10 @@ typedef const char *sqlite3_filename;
|
|||||||
** ^The [SQLITE_OPEN_EXCLUSIVE] flag is always used in conjunction
|
** ^The [SQLITE_OPEN_EXCLUSIVE] flag is always used in conjunction
|
||||||
** with the [SQLITE_OPEN_CREATE] flag, which are both directly
|
** with the [SQLITE_OPEN_CREATE] flag, which are both directly
|
||||||
** analogous to the O_EXCL and O_CREAT flags of the POSIX open()
|
** analogous to the O_EXCL and O_CREAT flags of the POSIX open()
|
||||||
** API. The SQLITE_OPEN_EXCLUSIVE flag, when paired with the
|
** API. The SQLITE_OPEN_EXCLUSIVE flag, when paired with the
|
||||||
** SQLITE_OPEN_CREATE, is used to indicate that file should always
|
** SQLITE_OPEN_CREATE, is used to indicate that file should always
|
||||||
** be created, and that it is an error if it already exists.
|
** 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
|
** It is <i>not</i> used to indicate the file should be opened
|
||||||
** for exclusive access.
|
** for exclusive access.
|
||||||
**
|
**
|
||||||
** ^At least szOsFile bytes of memory are allocated by SQLite
|
** ^At least szOsFile bytes of memory are allocated by SQLite
|
||||||
@@ -1421,7 +1421,7 @@ typedef const char *sqlite3_filename;
|
|||||||
** non-zero error code if there is an I/O error or if the name of
|
** non-zero error code if there is an I/O error or if the name of
|
||||||
** the file given in the second argument is illegal. If SQLITE_OK
|
** the file given in the second argument is illegal. If SQLITE_OK
|
||||||
** is returned, then non-zero or zero is written into *pResOut to indicate
|
** is returned, then non-zero or zero is written into *pResOut to indicate
|
||||||
** whether or not the file is accessible.
|
** whether or not the file is accessible.
|
||||||
**
|
**
|
||||||
** ^SQLite will always allocate at least mxPathname+1 bytes for the
|
** ^SQLite will always allocate at least mxPathname+1 bytes for the
|
||||||
** output buffer xFullPathname. The exact size of the output buffer
|
** output buffer xFullPathname. The exact size of the output buffer
|
||||||
@@ -1441,16 +1441,16 @@ typedef const char *sqlite3_filename;
|
|||||||
** method returns a Julian Day Number for the current date and time as
|
** method returns a Julian Day Number for the current date and time as
|
||||||
** a floating point value.
|
** a floating point value.
|
||||||
** ^The xCurrentTimeInt64() method returns, as an integer, the Julian
|
** ^The xCurrentTimeInt64() method returns, as an integer, the Julian
|
||||||
** Day Number multiplied by 86400000 (the number of milliseconds in
|
** Day Number multiplied by 86400000 (the number of milliseconds in
|
||||||
** a 24-hour day).
|
** a 24-hour day).
|
||||||
** ^SQLite will use the xCurrentTimeInt64() method to get the current
|
** ^SQLite will use the xCurrentTimeInt64() method to get the current
|
||||||
** date and time if that method is available (if iVersion is 2 or
|
** date and time if that method is available (if iVersion is 2 or
|
||||||
** greater and the function pointer is not NULL) and will fall back
|
** greater and the function pointer is not NULL) and will fall back
|
||||||
** to xCurrentTime() if xCurrentTimeInt64() is unavailable.
|
** to xCurrentTime() if xCurrentTimeInt64() is unavailable.
|
||||||
**
|
**
|
||||||
** ^The xSetSystemCall(), xGetSystemCall(), and xNestSystemCall() interfaces
|
** ^The xSetSystemCall(), xGetSystemCall(), and xNestSystemCall() interfaces
|
||||||
** are not used by the SQLite core. These optional interfaces are provided
|
** are not used by the SQLite core. These optional interfaces are provided
|
||||||
** by some VFSes to facilitate testing of the VFS code. By overriding
|
** by some VFSes to facilitate testing of the VFS code. By overriding
|
||||||
** system calls with functions under its control, a test program can
|
** system calls with functions under its control, a test program can
|
||||||
** simulate faults and error conditions that would otherwise be difficult
|
** simulate faults and error conditions that would otherwise be difficult
|
||||||
** or impossible to induce. The set of system calls that can be overridden
|
** or impossible to induce. The set of system calls that can be overridden
|
||||||
@@ -1541,7 +1541,7 @@ struct sqlite3_vfs {
|
|||||||
** </ul>
|
** </ul>
|
||||||
**
|
**
|
||||||
** When unlocking, the same SHARED or EXCLUSIVE flag must be supplied as
|
** When unlocking, the same SHARED or EXCLUSIVE flag must be supplied as
|
||||||
** was given on the corresponding lock.
|
** was given on the corresponding lock.
|
||||||
**
|
**
|
||||||
** The xShmLock method can transition between unlocked and SHARED or
|
** The xShmLock method can transition between unlocked and SHARED or
|
||||||
** between unlocked and EXCLUSIVE. It cannot transition between SHARED
|
** between unlocked and EXCLUSIVE. It cannot transition between SHARED
|
||||||
@@ -1704,7 +1704,7 @@ int sqlite3_db_config(sqlite3*, int op, ...);
|
|||||||
** This object is used in only one place in the SQLite interface.
|
** This object is used in only one place in the SQLite interface.
|
||||||
** A pointer to an instance of this object is the argument to
|
** A pointer to an instance of this object is the argument to
|
||||||
** [sqlite3_config()] when the configuration option is
|
** [sqlite3_config()] when the configuration option is
|
||||||
** [SQLITE_CONFIG_MALLOC] or [SQLITE_CONFIG_GETMALLOC].
|
** [SQLITE_CONFIG_MALLOC] or [SQLITE_CONFIG_GETMALLOC].
|
||||||
** By creating an instance of this object
|
** By creating an instance of this object
|
||||||
** and passing it to [sqlite3_config]([SQLITE_CONFIG_MALLOC])
|
** and passing it to [sqlite3_config]([SQLITE_CONFIG_MALLOC])
|
||||||
** during configuration, an application can specify an alternative
|
** during configuration, an application can specify an alternative
|
||||||
@@ -1827,7 +1827,7 @@ struct sqlite3_mem_methods {
|
|||||||
** SQLITE_CONFIG_SERIALIZED configuration option.</dd>
|
** SQLITE_CONFIG_SERIALIZED configuration option.</dd>
|
||||||
**
|
**
|
||||||
** [[SQLITE_CONFIG_MALLOC]] <dt>SQLITE_CONFIG_MALLOC</dt>
|
** [[SQLITE_CONFIG_MALLOC]] <dt>SQLITE_CONFIG_MALLOC</dt>
|
||||||
** <dd> ^(The SQLITE_CONFIG_MALLOC option takes a single argument which is
|
** <dd> ^(The SQLITE_CONFIG_MALLOC option takes a single argument which is
|
||||||
** a pointer to an instance of the [sqlite3_mem_methods] structure.
|
** a pointer to an instance of the [sqlite3_mem_methods] structure.
|
||||||
** The argument specifies
|
** The argument specifies
|
||||||
** alternative low-level memory allocation routines to be used in place of
|
** alternative low-level memory allocation routines to be used in place of
|
||||||
@@ -1878,7 +1878,7 @@ struct sqlite3_mem_methods {
|
|||||||
** [[SQLITE_CONFIG_PAGECACHE]] <dt>SQLITE_CONFIG_PAGECACHE</dt>
|
** [[SQLITE_CONFIG_PAGECACHE]] <dt>SQLITE_CONFIG_PAGECACHE</dt>
|
||||||
** <dd> ^The SQLITE_CONFIG_PAGECACHE option specifies a memory pool
|
** <dd> ^The SQLITE_CONFIG_PAGECACHE option specifies a memory pool
|
||||||
** that SQLite can use for the database page cache with the default page
|
** that SQLite can use for the database page cache with the default page
|
||||||
** cache implementation.
|
** cache implementation.
|
||||||
** This configuration option is a no-op if an application-defined page
|
** This configuration option is a no-op if an application-defined page
|
||||||
** cache implementation is loaded using the [SQLITE_CONFIG_PCACHE2].
|
** cache implementation is loaded using the [SQLITE_CONFIG_PCACHE2].
|
||||||
** ^There are three arguments to SQLITE_CONFIG_PAGECACHE: A pointer to
|
** ^There are three arguments to SQLITE_CONFIG_PAGECACHE: A pointer to
|
||||||
@@ -1906,7 +1906,7 @@ struct sqlite3_mem_methods {
|
|||||||
** additional cache line. </dd>
|
** additional cache line. </dd>
|
||||||
**
|
**
|
||||||
** [[SQLITE_CONFIG_HEAP]] <dt>SQLITE_CONFIG_HEAP</dt>
|
** [[SQLITE_CONFIG_HEAP]] <dt>SQLITE_CONFIG_HEAP</dt>
|
||||||
** <dd> ^The SQLITE_CONFIG_HEAP option specifies a static memory buffer
|
** <dd> ^The SQLITE_CONFIG_HEAP option specifies a static memory buffer
|
||||||
** that SQLite will use for all of its dynamic memory allocation needs
|
** that SQLite will use for all of its dynamic memory allocation needs
|
||||||
** beyond those provided for by [SQLITE_CONFIG_PAGECACHE].
|
** beyond those provided for by [SQLITE_CONFIG_PAGECACHE].
|
||||||
** ^The SQLITE_CONFIG_HEAP option is only available if SQLite is compiled
|
** ^The SQLITE_CONFIG_HEAP option is only available if SQLite is compiled
|
||||||
@@ -1961,7 +1961,7 @@ struct sqlite3_mem_methods {
|
|||||||
** configuration on individual connections.)^ </dd>
|
** configuration on individual connections.)^ </dd>
|
||||||
**
|
**
|
||||||
** [[SQLITE_CONFIG_PCACHE2]] <dt>SQLITE_CONFIG_PCACHE2</dt>
|
** [[SQLITE_CONFIG_PCACHE2]] <dt>SQLITE_CONFIG_PCACHE2</dt>
|
||||||
** <dd> ^(The SQLITE_CONFIG_PCACHE2 option takes a single argument which is
|
** <dd> ^(The SQLITE_CONFIG_PCACHE2 option takes a single argument which is
|
||||||
** a pointer to an [sqlite3_pcache_methods2] object. This object specifies
|
** a pointer to an [sqlite3_pcache_methods2] object. This object specifies
|
||||||
** the interface to a custom page cache implementation.)^
|
** the interface to a custom page cache implementation.)^
|
||||||
** ^SQLite makes a copy of the [sqlite3_pcache_methods2] object.</dd>
|
** ^SQLite makes a copy of the [sqlite3_pcache_methods2] object.</dd>
|
||||||
@@ -1975,7 +1975,7 @@ struct sqlite3_mem_methods {
|
|||||||
** <dd> The SQLITE_CONFIG_LOG option is used to configure the SQLite
|
** <dd> The SQLITE_CONFIG_LOG option is used to configure the SQLite
|
||||||
** global [error log].
|
** global [error log].
|
||||||
** (^The SQLITE_CONFIG_LOG option takes two arguments: a pointer to a
|
** (^The SQLITE_CONFIG_LOG option takes two arguments: a pointer to a
|
||||||
** function with a call signature of void(*)(void*,int,const char*),
|
** function with a call signature of void(*)(void*,int,const char*),
|
||||||
** and a pointer to void. ^If the function pointer is not NULL, it is
|
** and a pointer to void. ^If the function pointer is not NULL, it is
|
||||||
** invoked by [sqlite3_log()] to process each logging event. ^If the
|
** invoked by [sqlite3_log()] to process each logging event. ^If the
|
||||||
** function pointer is NULL, the [sqlite3_log()] interface becomes a no-op.
|
** function pointer is NULL, the [sqlite3_log()] interface becomes a no-op.
|
||||||
@@ -2084,7 +2084,7 @@ struct sqlite3_mem_methods {
|
|||||||
** [[SQLITE_CONFIG_STMTJRNL_SPILL]]
|
** [[SQLITE_CONFIG_STMTJRNL_SPILL]]
|
||||||
** <dt>SQLITE_CONFIG_STMTJRNL_SPILL
|
** <dt>SQLITE_CONFIG_STMTJRNL_SPILL
|
||||||
** <dd>^The SQLITE_CONFIG_STMTJRNL_SPILL option takes a single parameter which
|
** <dd>^The SQLITE_CONFIG_STMTJRNL_SPILL option takes a single parameter which
|
||||||
** becomes the [statement journal] spill-to-disk threshold.
|
** becomes the [statement journal] spill-to-disk threshold.
|
||||||
** [Statement journals] are held in memory until their size (in bytes)
|
** [Statement journals] are held in memory until their size (in bytes)
|
||||||
** exceeds this threshold, at which point they are written to disk.
|
** exceeds this threshold, at which point they are written to disk.
|
||||||
** Or if the threshold is -1, statement journals are always held
|
** Or if the threshold is -1, statement journals are always held
|
||||||
@@ -2106,7 +2106,7 @@ struct sqlite3_mem_methods {
|
|||||||
** than the configured sorter-reference size threshold - then a reference
|
** than the configured sorter-reference size threshold - then a reference
|
||||||
** is stored in each sorted record and the required column values loaded
|
** is stored in each sorted record and the required column values loaded
|
||||||
** from the database as records are returned in sorted order. The default
|
** from the database as records are returned in sorted order. The default
|
||||||
** value for this option is to never use this optimization. Specifying a
|
** value for this option is to never use this optimization. Specifying a
|
||||||
** negative value for this option restores the default behaviour.
|
** negative value for this option restores the default behaviour.
|
||||||
** This option is only available if SQLite is compiled with the
|
** This option is only available if SQLite is compiled with the
|
||||||
** [SQLITE_ENABLE_SORTER_REFERENCES] compile-time option.
|
** [SQLITE_ENABLE_SORTER_REFERENCES] compile-time option.
|
||||||
@@ -2134,7 +2134,7 @@ struct sqlite3_mem_methods {
|
|||||||
#define SQLITE_CONFIG_MEMSTATUS 9 /* boolean */
|
#define SQLITE_CONFIG_MEMSTATUS 9 /* boolean */
|
||||||
#define SQLITE_CONFIG_MUTEX 10 /* sqlite3_mutex_methods* */
|
#define SQLITE_CONFIG_MUTEX 10 /* sqlite3_mutex_methods* */
|
||||||
#define SQLITE_CONFIG_GETMUTEX 11 /* sqlite3_mutex_methods* */
|
#define SQLITE_CONFIG_GETMUTEX 11 /* sqlite3_mutex_methods* */
|
||||||
/* previously SQLITE_CONFIG_CHUNKALLOC 12 which is now unused. */
|
/* previously SQLITE_CONFIG_CHUNKALLOC 12 which is now unused. */
|
||||||
#define SQLITE_CONFIG_LOOKASIDE 13 /* int int */
|
#define SQLITE_CONFIG_LOOKASIDE 13 /* int int */
|
||||||
#define SQLITE_CONFIG_PCACHE 14 /* no-op */
|
#define SQLITE_CONFIG_PCACHE 14 /* no-op */
|
||||||
#define SQLITE_CONFIG_GETPCACHE 15 /* no-op */
|
#define SQLITE_CONFIG_GETPCACHE 15 /* no-op */
|
||||||
@@ -2169,7 +2169,7 @@ struct sqlite3_mem_methods {
|
|||||||
** <dl>
|
** <dl>
|
||||||
** [[SQLITE_DBCONFIG_LOOKASIDE]]
|
** [[SQLITE_DBCONFIG_LOOKASIDE]]
|
||||||
** <dt>SQLITE_DBCONFIG_LOOKASIDE</dt>
|
** <dt>SQLITE_DBCONFIG_LOOKASIDE</dt>
|
||||||
** <dd> ^This option takes three additional arguments that determine the
|
** <dd> ^This option takes three additional arguments that determine the
|
||||||
** [lookaside memory allocator] configuration for the [database connection].
|
** [lookaside memory allocator] configuration for the [database connection].
|
||||||
** ^The first argument (the third parameter to [sqlite3_db_config()] is a
|
** ^The first argument (the third parameter to [sqlite3_db_config()] is a
|
||||||
** pointer to a memory buffer to use for lookaside memory.
|
** pointer to a memory buffer to use for lookaside memory.
|
||||||
@@ -2187,7 +2187,7 @@ struct sqlite3_mem_methods {
|
|||||||
** when the "current value" returned by
|
** when the "current value" returned by
|
||||||
** [sqlite3_db_status](D,[SQLITE_DBSTATUS_LOOKASIDE_USED],...) is zero.
|
** [sqlite3_db_status](D,[SQLITE_DBSTATUS_LOOKASIDE_USED],...) is zero.
|
||||||
** Any attempt to change the lookaside memory configuration when lookaside
|
** Any attempt to change the lookaside memory configuration when lookaside
|
||||||
** memory is in use leaves the configuration unchanged and returns
|
** memory is in use leaves the configuration unchanged and returns
|
||||||
** [SQLITE_BUSY].)^</dd>
|
** [SQLITE_BUSY].)^</dd>
|
||||||
**
|
**
|
||||||
** [[SQLITE_DBCONFIG_ENABLE_FKEY]]
|
** [[SQLITE_DBCONFIG_ENABLE_FKEY]]
|
||||||
@@ -3394,7 +3394,7 @@ void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);
|
|||||||
** CAPI3REF: Opening A New Database Connection
|
** CAPI3REF: Opening A New Database Connection
|
||||||
** CONSTRUCTOR: sqlite3
|
** CONSTRUCTOR: sqlite3
|
||||||
**
|
**
|
||||||
** ^These routines open an SQLite database file as specified by the
|
** ^These routines open an SQLite database file as specified by the
|
||||||
** filename argument. ^The filename argument is interpreted as UTF-8 for
|
** filename argument. ^The filename argument is interpreted as UTF-8 for
|
||||||
** sqlite3_open() and sqlite3_open_v2() and as UTF-16 in the native byte
|
** sqlite3_open() and sqlite3_open_v2() and as UTF-16 in the native byte
|
||||||
** order for sqlite3_open16(). ^(A [database connection] handle is usually
|
** order for sqlite3_open16(). ^(A [database connection] handle is usually
|
||||||
@@ -3423,13 +3423,18 @@ void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);
|
|||||||
**
|
**
|
||||||
** <dl>
|
** <dl>
|
||||||
** ^(<dt>[SQLITE_OPEN_READONLY]</dt>
|
** ^(<dt>[SQLITE_OPEN_READONLY]</dt>
|
||||||
** <dd>The database is opened in read-only mode. If the database does not
|
** <dd>The database is opened in read-only mode. If the database does
|
||||||
** already exist, an error is returned.</dd>)^
|
** not already exist, an error is returned.</dd>)^
|
||||||
**
|
**
|
||||||
** ^(<dt>[SQLITE_OPEN_READWRITE]</dt>
|
** ^(<dt>[SQLITE_OPEN_READWRITE]</dt>
|
||||||
** <dd>The database is opened for reading and writing if possible, or reading
|
** <dd>The database is opened for reading and writing if possible, or
|
||||||
** only if the file is write protected by the operating system. In either
|
** reading only if the file is write protected by the operating
|
||||||
** case the database must already exist, otherwise an error is returned.</dd>)^
|
** system. In either case the database must already exist, otherwise
|
||||||
|
** an error is returned. For historical reasons, if opening in
|
||||||
|
** read-write mode fails due to OS-level permissions, an attempt is
|
||||||
|
** made to open it in read-only mode. [sqlite3_db_readonly()] can be
|
||||||
|
** used to determine whether the database is actually
|
||||||
|
** read-write.</dd>)^
|
||||||
**
|
**
|
||||||
** ^(<dt>[SQLITE_OPEN_READWRITE] | [SQLITE_OPEN_CREATE]</dt>
|
** ^(<dt>[SQLITE_OPEN_READWRITE] | [SQLITE_OPEN_CREATE]</dt>
|
||||||
** <dd>The database is opened for reading and writing, and is created if
|
** <dd>The database is opened for reading and writing, and is created if
|
||||||
|
|||||||
Reference in New Issue
Block a user