diff --git a/manifest b/manifest index a7f4529138..9453421d5f 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Change\sthe\smakefiles\sso\sthat\s"make\stest"\snow\sruns\sthe\sveryquick.test\sscript\sinstead\sof\squick.test.\sAlso\smodify\sveryquick.test\sto\sreuse\sthe\scode\sin\squick.test.\sveryquick.test\sis\snow\sthe\ssame\sas\squick.test\sexcept\sthat\sit\somits\sall\stesting\srelated\sto\smalloc\sand\sIO\serror\ssimulation.\s(CVS\s5308) -D 2008-06-25T17:54:53 +C Documentation\supdates.\s\sNo\schanges\sto\scode.\s(CVS\s5309) +D 2008-06-26T02:53:02 F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7 F Makefile.in dcf0ecf664a31c257f540d32e5d69a09edf962f0 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -142,7 +142,7 @@ F src/printf.c 8b063da9dcde26b7c500a01444b718d86f21bc6e F src/random.c 5c754319d38abdd6acd74601ee0105504adc508a F src/select.c 79f60dc4a7e90bb907c7a2cca42f45276d1ead99 F src/shell.c 61fa61932ed52825720ebfd3f8381b8d550ef766 -F src/sqlite.h.in b5c731b88ab1275396920103b5ecbefba200d423 +F src/sqlite.h.in 0dfa5d11d2c063ef551cbc9f3933295857e420fc F src/sqlite3ext.h f162a72daef5ebf8b211fe8c0ec96e85d22fbf9b F src/sqliteInt.h 55d1a6c155eaad745d8e4b7f373f5904337fbaf1 F src/sqliteLimit.h f435e728c6b620ef7312814d660a81f9356eb5c8 @@ -594,7 +594,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81 F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 1dbced29de5f59ba2ebf877edcadf171540374d1 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e -P 8fa33b79d7369ec5777fd9ad3349f0fa31b98fd6 -R 1a6c7219f503b204e4bc313620ed4688 -U danielk1977 -Z 2704037bd54444a7717bec83b4f04306 +P 8c65146ea0e77e8e31fffc467806b1edf91fb4db +R 8d998f8b6233260e7b79c9834ce4d483 +U drh +Z 275bbf775c9970112c0cc3209800d9b5 diff --git a/manifest.uuid b/manifest.uuid index 808d17b87c..16036d471d 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -8c65146ea0e77e8e31fffc467806b1edf91fb4db \ No newline at end of file +cdc4e75a9f1e3c79ade92344cf32a4225222d44f \ No newline at end of file diff --git a/src/sqlite.h.in b/src/sqlite.h.in index 39ab45b73b..0e2793fb4c 100644 --- a/src/sqlite.h.in +++ b/src/sqlite.h.in @@ -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.357 2008/06/25 14:26:08 danielk1977 Exp $ +** @(#) $Id: sqlite.h.in,v 1.358 2008/06/26 02:53:02 drh Exp $ */ #ifndef _SQLITE3_H_ #define _SQLITE3_H_ @@ -83,11 +83,11 @@ extern "C" { ** ** INVARIANTS: ** -** {F10011} The SQLITE_VERSION #define in the sqlite3.h header file -** evaluates to a string literal that is the SQLite version +** {F10011} The SQLITE_VERSION #define in the sqlite3.h header file shall +** evaluate to a string literal that is the SQLite version ** with which the header file is associated. ** -** {F10014} The SQLITE_VERSION_NUMBER #define resolves to an integer +** {F10014} The SQLITE_VERSION_NUMBER #define shall resolve to an integer ** with the value (X*1000000 + Y*1000 + Z) where X, Y, and Z ** are the major version, minor version, and release number. */ @@ -112,13 +112,13 @@ extern "C" { ** ** INVARIANTS: ** -** {F10021} The [sqlite3_libversion_number()] interface returns +** {F10021} The [sqlite3_libversion_number()] interface shall return ** an integer equal to [SQLITE_VERSION_NUMBER]. ** -** {F10022} The [sqlite3_version] string constant contains +** {F10022} The [sqlite3_version] string constant shall contain ** the text of the [SQLITE_VERSION] string. ** -** {F10023} The [sqlite3_libversion()] function returns +** {F10023} The [sqlite3_libversion()] function shall return ** a pointer to the [sqlite3_version] string constant. */ SQLITE_EXTERN const char sqlite3_version[]; @@ -129,7 +129,7 @@ int sqlite3_libversion_number(void); ** CAPI3REF: Test To See If The Library Is Threadsafe {F10100} ** ** SQLite can be compiled with or without mutexes. When -** the SQLITE_THREADSAFE C preprocessor macro is true, mutexes +** the [SQLITE_THREADSAFE] C preprocessor macro is true, mutexes ** are enabled and SQLite is threadsafe. When that macro is false, ** the mutexes are omitted. Without the mutexes, it is not safe ** to use SQLite concurrently from more than one thread. @@ -141,13 +141,30 @@ int sqlite3_libversion_number(void); ** ** This interface can be used by a program to make sure that the ** version of SQLite that it is linking against was compiled with -** the desired setting of the SQLITE_THREADSAFE macro. +** the desired setting of the [SQLITE_THREADSAFE] macro. +** +** This interface only reports on the compile-time mutex setting +** of the [SQLITE_THREADSAFE] flag. If SQLite is compiled with +** SQLITE_THREADSAFE=1 then mutexes are enabled by default but +** can be fully or partially disabled using a call to [sqlite3_config()] +** with the verbs [SQLITE_CONFIG_SINGLETHREAD], [SQLITE_CONFIG_MULTITHREAD], +** or [SQLITE_CONFIG_MUTEX]. The return value of this function shows +** only the default compile-time setting, not any run-time changes +** to that setting. ** ** INVARIANTS: ** -** {F10101} The [sqlite3_threadsafe()] function returns nonzero if -** SQLite was compiled with its mutexes enabled or zero -** if SQLite was compiled with mutexes disabled. +** {F10101} The [sqlite3_threadsafe()] function shall return nonzero if +** SQLite was compiled with the its mutexes enabled by default +** or zero if SQLite was compiled such that mutexes are +** permanently disabled. +** +** {F10102} The value returned by the [sqlite3_threadsafe()] function +** shall not change when mutex setting are modified at +** runtime using the [sqlite3_config()] interface and +** especially the [SQLITE_CONFIG_SINGLETHREAD], +** [SQLITE_CONFIG_MULTITHREAD], [SQLITE_CONFIG_SERIALIZED], +** and [SQLITE_CONFIG_MUTEX] verbs. */ int sqlite3_threadsafe(void); @@ -179,10 +196,10 @@ typedef struct sqlite3 sqlite3; ** ** INVARIANTS: ** -** {F10201} The [sqlite_int64] and [sqlite3_int64] types specify +** {F10201} The [sqlite_int64] and [sqlite3_int64] type shall specify ** a 64-bit signed integer. ** -** {F10202} The [sqlite_uint64] and [sqlite3_uint64] types specify +** {F10202} The [sqlite_uint64] and [sqlite3_uint64] type shall specify ** a 64-bit unsigned integer. */ #ifdef SQLITE_INT64_TYPE @@ -230,32 +247,32 @@ typedef sqlite_uint64 sqlite3_uint64; ** ** INVARIANTS: ** -** {F12011} The [sqlite3_close()] interface destroys an [sqlite3] object -** allocated by a prior call to [sqlite3_open()], -** [sqlite3_open16()], or [sqlite3_open_v2()]. +** {F12011} A successful call to [sqlite3_close(C)] shall destroy the +** [database connection] object C. ** -** {F12012} The [sqlite3_close()] function releases all memory used by the -** connection and closes all open files. +** {F12012} A successful call to [sqlite3_close(C)] shall return SQLITE_OK. ** -** {F12013} If the database connection contains [prepared statements] that -** have not been [sqlite3_finalize | finalized], -** then [sqlite3_close()] returns [SQLITE_BUSY] and leaves -** the connection open. +** {F12013} A successful call to [sqlite3_close(C)] shall release all +** memory and system resources associated with [database connection] +** C. ** -** {F12014} Passing sqlite3_close() a NULL pointer is a harmless no-op. +** {F12014} A call to [sqlite3_close(C)] on a [database connection] C that +** has one or more open [prepared statements] shall fail with +** an [SQLITE_BUSY] error code. ** -** {F12019} When [sqlite3_close()] is invoked on a [database connection] +** {F12015} A call to [sqlite3_close(C)] where C is a NULL pointer shall +** return SQLITE_OK. +** +** {F12019} When [sqlite3_close(C)] is invoked on a [database connection] C ** that has a pending transaction, the transaction shall be ** rolled back. ** ** LIMITATIONS: ** -** {U12015} The parameter to [sqlite3_close()] must be an [sqlite3] object -** pointer previously obtained from [sqlite3_open()] or the -** equivalent, or NULL. -** -** {U12016} The parameter to [sqlite3_close()] must not have been previously -** closed. +** {A12016} The C parameter to [sqlite3_close(C)] must be either a NULL +** pointer or an [sqlite3] object pointer previously obtained +** from [sqlite3_open()], [sqlite3_open16()], or +** [sqlite3_open_v2()], and not previously closed. */ int sqlite3_close(sqlite3 *); @@ -296,9 +313,9 @@ typedef int (*sqlite3_callback)(void*,int,char**, char**); ** INVARIANTS: ** ** {F12101} A successful invocation of [sqlite3_exec(D,S,C,A,E)] -** shall evaluate all of the UTF-8 encoded, semicolon-separated -** SQL statements in the zero-terminated string S within the -** context of the [database connection] D. +** shall sequentially evaluate all of the UTF-8 encoded, +** semicolon-separated SQL statements in the zero-terminated +** string S within the context of the [database connection] D. ** ** {F12102} If the S parameter to [sqlite3_exec(D,S,C,A,E)] is NULL then ** the actions of the interface shall be the same as if the @@ -322,25 +339,24 @@ typedef int (*sqlite3_callback)(void*,int,char**, char**); ** {F12113} The [sqlite3_exec()] routine shall pass its 4th parameter through ** as the 1st parameter of the callback. ** -** {F12116} The [sqlite3_exec()] routine sets the 2nd parameter of its +** {F12116} The [sqlite3_exec()] routine shall set the 2nd parameter of its ** callback to be the number of columns in the current row of ** result. ** -** {F12119} The [sqlite3_exec()] routine sets the 3rd parameter of its +** {F12119} The [sqlite3_exec()] routine shall set the 3rd parameter of its ** callback to be an array of pointers to strings holding the ** values for each column in the current result set row as ** obtained from [sqlite3_column_text()]. ** -** {F12122} The [sqlite3_exec()] routine sets the 4th parameter of its +** {F12122} The [sqlite3_exec()] routine shall set the 4th parameter of its ** callback to be an array of pointers to strings holding the ** names of result columns as obtained from [sqlite3_column_name()]. ** ** {F12125} If the 3rd parameter to [sqlite3_exec()] is NULL then -** [sqlite3_exec()] never invokes a callback. All query -** results are silently discarded. +** [sqlite3_exec()] shall silently discard query results. ** ** {F12131} If an error occurs while parsing or evaluating any of the SQL -** handed in the S parameter of [sqlite3_exec(D,S,C,A,E)] and if +** statements in the S parameter of [sqlite3_exec(D,S,C,A,E)] and if ** the E parameter is not NULL, then [sqlite3_exec()] shall store ** in *E an appropriate error message written into memory obtained ** from [sqlite3_malloc()]. @@ -360,17 +376,17 @@ typedef int (*sqlite3_callback)(void*,int,char**, char**); ** ** LIMITATIONS: ** -** {U12141} The first parameter to [sqlite3_exec()] must be an valid and open +** {A12141} The first parameter to [sqlite3_exec()] must be an valid and open ** [database connection]. ** -** {U12142} The database connection must not be closed while +** {A12142} The database connection must not be closed while ** [sqlite3_exec()] is running. ** -** {U12143} The calling function should use [sqlite3_free()] to free +** {A12143} The calling function should use [sqlite3_free()] to free ** the memory that *errmsg is left pointing at once the error ** message is no longer needed. ** -** {U12145} The SQL statement text in the 2nd parameter to [sqlite3_exec()] +** {A12145} The SQL statement text in the 2nd parameter to [sqlite3_exec()] ** must remain unchanged while [sqlite3_exec()] is running. */ int sqlite3_exec( @@ -389,6 +405,8 @@ int sqlite3_exec( ** Many SQLite functions return an integer result code from the set shown ** here in order to indicates success or failure. ** +** New error codes may be added in future versions of SQLite. +** ** See also: [SQLITE_IOERR_READ | extended result codes] */ #define SQLITE_OK 0 /* Successful result */ @@ -448,14 +466,14 @@ int sqlite3_exec( ** ** INVARIANTS: ** -** {F10223} The symbolic name for an extended result code always contains +** {F10223} The symbolic name for an extended result code shall contains ** a related primary result code as a prefix. ** -** {F10224} Primary result code names contain a single "_" character. +** {F10224} Primary result code names shall contain a single "_" character. ** -** {F10225} Extended result code names contain two or more "_" characters. +** {F10225} Extended result code names shall contain two or more "_" characters. ** -** {F10226} The numeric value of an extended result code contains the +** {F10226} The numeric value of an extended result code shall contain the ** numeric value of its corresponding primary result code in ** its least significant 8 bits. */ @@ -575,9 +593,11 @@ struct sqlite3_file { /* ** CAPI3REF: OS Interface File Virtual Methods Object {F11120} ** -** Every file opened by the [sqlite3_vfs] xOpen method contains a pointer to -** an instance of this object. This object defines the -** methods used to perform various operations against the open file. +** Every file opened by the [sqlite3_vfs] xOpen method populates an +** [sqlite3_file] object (or, more commonly, a subclass of the +** [sqlite3_file] object) with a pointer to an instance of this object. +** This object defines the methods used to perform various operations +** against the open file represented by the [sqlite3_file] object. ** ** The flags argument to xSync may be one of [SQLITE_SYNC_NORMAL] or ** [SQLITE_SYNC_FULL]. The first choice is the normal fsync(). @@ -701,7 +721,10 @@ typedef struct sqlite3_mutex sqlite3_mutex; ** ** The value of the iVersion field is initially 1 but may be larger in ** future versions of SQLite. Additional fields may be appended to this -** object when the iVersion value is increased. +** object when the iVersion value is increased. Note that the structure +** of the sqlite3_vfs object changes in the transaction between +** SQLite version 3.5.9 and 3.6.0 and yet the iVersion field was not +** modified. ** ** The szOsFile field is the size of the subclassed [sqlite3_file] ** structure used by this VFS. mxPathname is the maximum length of @@ -711,7 +734,8 @@ typedef struct sqlite3_mutex sqlite3_mutex; ** the pNext pointer. The [sqlite3_vfs_register()] ** and [sqlite3_vfs_unregister()] interfaces manage this list ** in a thread-safe way. The [sqlite3_vfs_find()] interface -** searches the list. +** searches the list. Neither the application code nor the VFS +** implementation should use the pNext pointer. ** ** The pNext field is the only field in the sqlite3_vfs ** structure that SQLite will ever modify. SQLite will only access @@ -722,11 +746,17 @@ typedef struct sqlite3_mutex sqlite3_mutex; ** The zName field holds the name of the VFS module. The name must ** be unique across all VFS modules. ** -** {F11141} SQLite will guarantee that the zFilename string passed to -** xOpen() is a full pathname as generated by xFullPathname() and -** that the string will be valid and unchanged until xClose() is -** called. {END} So the [sqlite3_file] can store a pointer to the +** {F11141} SQLite will guarantee that the zFilename parameter to xOpen +** 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. {END} Becasue of the previous sentense, +** 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 +** xFilename parameter is NULL it will also be the case that the +** flags parameter will include [SQLITE_OPEN_DELETEONCLOSE]. ** ** {F11142} The flags argument to xOpen() includes all bits set in ** the flags argument to [sqlite3_open_v2()]. Or if [sqlite3_open()] @@ -846,7 +876,7 @@ struct sqlite3_vfs { ** CAPI3REF: Initialize The SQLite Library {F10130} ** ** The sqlite3_initialize() routine initializes the -** SQLite library prior to use. The sqlite3_shutdown() routine +** SQLite library. The sqlite3_shutdown() routine ** deallocates any resources that were allocated by sqlite3_initialize(). ** ** A call to sqlite3_initialize() is an "effective" call if it is @@ -854,13 +884,7 @@ struct sqlite3_vfs { ** the process, or if it is the first time sqlite3_initialize() is invoked ** following a call to sqlite3_shutdown(). Only an effective call ** of sqlite3_initialize() does any initialization. All other calls -** are harmless no-ops. In other words, -** the sqlite3_initialize() routine may be called multiple times -** without consequence. Second and subsequent evaluations of -** sqlite3_initialize() are no-ops. The sqlite3_initialize() routine -** only works the first time it is called for a process, or the first -** time it is called after sqlite3_shutdown(). In all other cases, -** sqlite3_initialize() returns SQLITE_OK without doing any real work. +** are harmless no-ops. ** ** Among other things, sqlite3_initialize() shall invoke ** sqlite3_os_init(). Similarly, sqlite3_shutdown() @@ -950,9 +974,9 @@ int sqlite3_config(int, ...); ** ** This object is used in only one place in the SQLite interface. ** 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]. By creating an instance of this object -** and passing it to [sqlite3_config] during configuration, an +** and passing it to [sqlite3_config()] during configuration, an ** application can specify an alternative memory allocation subsystem ** for SQLite to use for all of its dynamic memory needs. ** @@ -965,7 +989,7 @@ int sqlite3_config(int, ...); ** order to verify that SQLite recovers gracefully from such ** conditions. ** -** The xMalloc, xFree, and xRealloc methods should work like the +** The xMalloc, xFree, and xRealloc methods must work like the ** malloc(), free(), and realloc() functions from the standard library. ** ** xSize should return the allocated size of a memory allocation @@ -1021,7 +1045,7 @@ struct sqlite3_mem_methods { ** all mutexes including the recursive ** mutexes on [database connection] and [prepared statement] objects. ** In this mode (which is the default when SQLite is compiled with -** SQLITE_THREADSAFE=1) the SQLite library will itself serialize access +** [SQLITE_THREADSAFE=1]) the SQLite library will itself serialize access ** to [database connections] and [prepared statements] so that the ** application is free to use the same [database connection] or the ** same [prepared statement] in different threads at the same time. @@ -1121,7 +1145,7 @@ struct sqlite3_mem_methods { ** to the SQLITE_CONFIG_MEMSYS3 option. The "memsys5" allocator differs ** from the "memsys3" allocator in that it rounds all allocations up to ** the next largest power of two. Although this is sometimes more wasteful -** than the procudures used by memsys3, it guarantees an upper limit on +** than the procedures used by memsys3, it guarantees an upper limit on ** internal fragmentation. ** */ @@ -1203,7 +1227,7 @@ int sqlite3_extended_result_codes(sqlite3*, int onoff); ** ** LIMITATIONS: ** -** {U12232} If a separate thread performs a new INSERT on the same +** {A12232} If a separate thread performs a new INSERT on the same ** database connection while the [sqlite3_last_insert_rowid()] ** function is running and thus changes the last insert rowid, ** then the value returned by [sqlite3_last_insert_rowid()] is @@ -1276,7 +1300,7 @@ sqlite3_int64 sqlite3_last_insert_rowid(sqlite3*); ** ** LIMITATIONS: ** -** {U12252} If a separate thread makes changes on the same database connection +** {A12252} If a separate thread makes changes on the same database connection ** while [sqlite3_changes()] is running then the value returned ** is unpredictable and not meaningful. */ @@ -1318,7 +1342,7 @@ int sqlite3_changes(sqlite3*); ** ** LIMITATIONS: ** -** {U12264} If a separate thread makes changes on the same database connection +** {A12264} If a separate thread makes changes on the same database connection ** while [sqlite3_total_changes()] is running then the value ** returned is unpredictable and not meaningful. */ @@ -1361,7 +1385,7 @@ int sqlite3_total_changes(sqlite3*); ** ** LIMITATIONS: ** -** {U12279} If the database connection closes while [sqlite3_interrupt()] +** {A12279} If the database connection closes while [sqlite3_interrupt()] ** is running then bad things will likely happen. */ void sqlite3_interrupt(sqlite3*); @@ -1392,10 +1416,10 @@ void sqlite3_interrupt(sqlite3*); ** ** LIMITATIONS: ** -** {U10512} The input to sqlite3_complete() must be a zero-terminated +** {A10512} The input to sqlite3_complete() must be a zero-terminated ** UTF-8 string. ** -** {U10513} The input to sqlite3_complete16() must be a zero-terminated +** {A10513} The input to sqlite3_complete16() must be a zero-terminated ** UTF-16 string in native byte order. */ int sqlite3_complete(const char *sql); @@ -1482,7 +1506,7 @@ int sqlite3_complete16(const void *sql); ** ** LIMITATIONS: ** -** {U12319} A busy handler should not close the database connection +** {A12319} A busy handler should not close the database connection ** or [prepared statement] that invoked the busy handler. */ int sqlite3_busy_handler(sqlite3*, int(*)(void*,int), void*); @@ -1846,12 +1870,12 @@ char *sqlite3_snprintf(int,char*,const char*, ...); ** ** LIMITATIONS: ** -** {U17350} The pointer arguments to [sqlite3_free()] and [sqlite3_realloc()] +** {A17350} The pointer arguments to [sqlite3_free()] and [sqlite3_realloc()] ** must be either NULL or else pointers obtained from a prior ** invocation of [sqlite3_malloc()] or [sqlite3_realloc()] that have ** not yet been released. ** -** {U17351} The application must not read or write any part of +** {A17351} The application must not read or write any part of ** a block of memory after it has been released using ** [sqlite3_free()] or [sqlite3_realloc()]. */ @@ -2595,7 +2619,7 @@ int sqlite3_limit(sqlite3*, int id, int newVal); ** executed using [sqlite3_step()]. If there is an error, *ppStmt is set ** to NULL. If the input text contains no SQL (if the input is an empty ** string or a comment) then *ppStmt is set to NULL. -** {U13018} The calling procedure is responsible for deleting the compiled +** {A13018} The calling procedure is responsible for deleting the compiled ** SQL statement using [sqlite3_finalize()] after it has finished with it. ** ** On success, [SQLITE_OK] is returned, otherwise an [error code] is returned. @@ -2738,7 +2762,7 @@ const char *sqlite3_sql(sqlite3_stmt *pStmt); ** a mutex is held. A internal mutex is held for a protected ** sqlite3_value object but no mutex is held for an unprotected ** sqlite3_value object. If SQLite is compiled to be single-threaded -** (with SQLITE_THREADSAFE=0 and with [sqlite3_threadsafe()] returning 0) +** (with [SQLITE_THREADSAFE=0] and with [sqlite3_threadsafe()] returning 0) ** then there is no distinction between protected and unprotected ** sqlite3_value objects and they can be used interchangeably. However, ** for maximum code portability it is recommended that applications @@ -3135,7 +3159,7 @@ const void *sqlite3_column_name16(sqlite3_stmt*, int N); ** These APIs are only available if the library was compiled with the ** SQLITE_ENABLE_COLUMN_METADATA preprocessor symbol defined. ** -** {U13751} +** {A13751} ** If two or more threads call one or more of these routines against the same ** prepared statement and column at the same time then the results are ** undefined. @@ -3187,7 +3211,7 @@ const void *sqlite3_column_name16(sqlite3_stmt*, int N); ** ** LIMITATIONS: ** -** {U13751} If two or more threads call one or more +** {A13751} If two or more threads call one or more ** [sqlite3_column_database_name | column metadata interfaces] ** for the same [prepared statement] and result column ** at the same time then the results are undefined. @@ -4621,7 +4645,7 @@ SQLITE_EXTERN char *sqlite3_temp_directory; ** ** LIMITATIONS: ** -** {U12936} If another thread changes the autocommit status of the database +** {A12936} If another thread changes the autocommit status of the database ** connection while this routine is running, then the return value ** is undefined. */ @@ -5733,8 +5757,8 @@ int sqlite3_vfs_unregister(sqlite3_vfs*); ** ** {F17019} The sqlite3_mutex_free() routine deallocates a previously ** allocated dynamic mutex. {F17020} SQLite is careful to deallocate every -** dynamic mutex that it allocates. {U17021} The dynamic mutexes must not be in -** use when they are deallocated. {U17022} Attempting to deallocate a static +** dynamic mutex that it allocates. {A17021} The dynamic mutexes must not be in +** use when they are deallocated. {A17022} Attempting to deallocate a static ** mutex results in undefined behavior. {F17023} SQLite never deallocates ** a static mutex. {END} ** @@ -5746,7 +5770,7 @@ int sqlite3_vfs_unregister(sqlite3_vfs*); ** SQLITE_MUTEX_RECURSIVE can be entered multiple times by the same thread. ** {F17027} In such cases the, ** mutex must be exited an equal number of times before another thread -** can enter. {U17028} If the same thread tries to enter any other +** can enter. {A17028} If the same thread tries to enter any other ** kind of mutex more than once, the behavior is undefined. ** {F17029} SQLite will never exhibit ** such behavior in its own use of mutexes. @@ -5757,7 +5781,7 @@ int sqlite3_vfs_unregister(sqlite3_vfs*); ** sqlite3_mutex_try() as an optimization so this is acceptable behavior. ** ** {F17031} The sqlite3_mutex_leave() routine exits a mutex that was -** previously entered by the same thread. {U17032} The behavior +** previously entered by the same thread. {A17032} The behavior ** is undefined if the mutex is not currently entered by the ** calling thread or is not currently allocated. {F17033} SQLite will ** never do either. {END} @@ -5845,7 +5869,7 @@ struct sqlite3_mutex_methods { ** never uses these routines except inside an assert() and applications ** are advised to follow the lead of the core. {F17082} The core only ** provides implementations for these routines when it is compiled -** with the SQLITE_DEBUG flag. {U17087} External mutex implementations +** with the SQLITE_DEBUG flag. {A17087} External mutex implementations ** are only required to provide these routines if SQLITE_DEBUG is ** defined and if NDEBUG is not defined. ** @@ -5901,8 +5925,8 @@ int sqlite3_mutex_notheld(sqlite3_mutex*); ** {F11306} If the second parameter (zDbName) does not match the name of any ** open database file, then SQLITE_ERROR is returned. {F11307} This error ** code is not remembered and will not be recalled by [sqlite3_errcode()] -** or [sqlite3_errmsg()]. {U11308} The underlying xFileControl method might -** also return SQLITE_ERROR. {U11309} There is no way to distinguish between +** or [sqlite3_errmsg()]. {A11308} The underlying xFileControl method might +** also return SQLITE_ERROR. {A11309} There is no way to distinguish between ** an incorrect zDbName and an SQLITE_ERROR return from the underlying ** xFileControl method. {END} **