3131
3232#define SQLITE3MC_VERSION_MAJOR 2
3333#define SQLITE3MC_VERSION_MINOR 0
34- #define SQLITE3MC_VERSION_RELEASE 2
34+ #define SQLITE3MC_VERSION_RELEASE 3
3535#define SQLITE3MC_VERSION_SUBRELEASE 0
36- #define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 2.0.2 "
36+ #define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 2.0.3 "
3737
3838#endif /* SQLITE3MC_VERSION_H_ */
3939/*** End of #include "sqlite3mc_version.h" ***/
@@ -192,9 +192,9 @@ extern "C" {
192192** [sqlite3_libversion_number()], [sqlite3_sourceid()],
193193** [sqlite_version()] and [sqlite_source_id()].
194194*/
195- #define SQLITE_VERSION "3.48 .0"
196- #define SQLITE_VERSION_NUMBER 3048000
197- #define SQLITE_SOURCE_ID "2025-01-14 11:05:00 d2fe6b05f38d9d7cd78c5d252e99ac59f1aea071d669830c1ffe4e8966e84010 "
195+ #define SQLITE_VERSION "3.49 .0"
196+ #define SQLITE_VERSION_NUMBER 3049000
197+ #define SQLITE_SOURCE_ID "2025-02-06 11:55:18 4a7dd425dc2a0e5082a9049c9b4a9d4f199a71583d014c24b4cfe276c5a77cde "
198198
199199/*
200200** CAPI3REF: Run-Time Library Version Numbers
@@ -2257,7 +2257,15 @@ struct sqlite3_mem_methods {
22572257** CAPI3REF: Database Connection Configuration Options
22582258**
22592259** These constants are the available integer configuration options that
2260- ** can be passed as the second argument to the [sqlite3_db_config()] interface.
2260+ ** can be passed as the second parameter to the [sqlite3_db_config()] interface.
2261+ **
2262+ ** The [sqlite3_db_config()] interface is a var-args functions. It takes a
2263+ ** variable number of parameters, though always at least two. The number of
2264+ ** parameters passed into sqlite3_db_config() depends on which of these
2265+ ** constants is given as the second parameter. This documentation page
2266+ ** refers to parameters beyond the second as "arguments". Thus, when this
2267+ ** page says "the N-th argument" it means "the N-th parameter past the
2268+ ** configuration option" or "the (N+2)-th parameter to sqlite3_db_config()".
22612269**
22622270** New configuration options may be added in future releases of SQLite.
22632271** Existing configuration options might be discontinued. Applications
@@ -2269,8 +2277,14 @@ struct sqlite3_mem_methods {
22692277** <dl>
22702278** [[SQLITE_DBCONFIG_LOOKASIDE]]
22712279** <dt>SQLITE_DBCONFIG_LOOKASIDE</dt>
2272- ** <dd> ^This option takes three additional arguments that determine the
2273- ** [lookaside memory allocator] configuration for the [database connection].
2280+ ** <dd> The SQLITE_DBCONFIG_LOOKASIDE option is used to adjust the
2281+ ** configuration of the lookaside memory allocator within a database
2282+ ** connection.
2283+ ** The arguments to the SQLITE_DBCONFIG_LOOKASIDE option are <i>not</i>
2284+ ** in the [DBCONFIG arguments|usual format].
2285+ ** The SQLITE_DBCONFIG_LOOKASIDE option takes three arguments, not two,
2286+ ** so that a call to [sqlite3_db_config()] that uses SQLITE_DBCONFIG_LOOKASIDE
2287+ ** should have a total of five parameters.
22742288** ^The first argument (the third parameter to [sqlite3_db_config()] is a
22752289** pointer to a memory buffer to use for lookaside memory.
22762290** ^The first argument after the SQLITE_DBCONFIG_LOOKASIDE verb
@@ -2293,7 +2307,8 @@ struct sqlite3_mem_methods {
22932307** [[SQLITE_DBCONFIG_ENABLE_FKEY]]
22942308** <dt>SQLITE_DBCONFIG_ENABLE_FKEY</dt>
22952309** <dd> ^This option is used to enable or disable the enforcement of
2296- ** [foreign key constraints]. There should be two additional arguments.
2310+ ** [foreign key constraints]. This is the same setting that is
2311+ ** enabled or disabled by the [PRAGMA foreign_keys] statement.
22972312** The first argument is an integer which is 0 to disable FK enforcement,
22982313** positive to enable FK enforcement or negative to leave FK enforcement
22992314** unchanged. The second parameter is a pointer to an integer into which
@@ -2315,13 +2330,13 @@ struct sqlite3_mem_methods {
23152330** <p>Originally this option disabled all triggers. ^(However, since
23162331** SQLite version 3.35.0, TEMP triggers are still allowed even if
23172332** this option is off. So, in other words, this option now only disables
2318- ** triggers in the main database schema or in the schemas of ATTACH-ed
2333+ ** triggers in the main database schema or in the schemas of [ ATTACH] -ed
23192334** databases.)^ </dd>
23202335**
23212336** [[SQLITE_DBCONFIG_ENABLE_VIEW]]
23222337** <dt>SQLITE_DBCONFIG_ENABLE_VIEW</dt>
23232338** <dd> ^This option is used to enable or disable [CREATE VIEW | views].
2324- ** There should be two additional arguments.
2339+ ** There must be two additional arguments.
23252340** The first argument is an integer which is 0 to disable views,
23262341** positive to enable views or negative to leave the setting unchanged.
23272342** The second parameter is a pointer to an integer into which
@@ -2340,7 +2355,7 @@ struct sqlite3_mem_methods {
23402355** <dd> ^This option is used to enable or disable the
23412356** [fts3_tokenizer()] function which is part of the
23422357** [FTS3] full-text search engine extension.
2343- ** There should be two additional arguments.
2358+ ** There must be two additional arguments.
23442359** The first argument is an integer which is 0 to disable fts3_tokenizer() or
23452360** positive to enable fts3_tokenizer() or negative to leave the setting
23462361** unchanged.
@@ -2355,7 +2370,7 @@ struct sqlite3_mem_methods {
23552370** interface independently of the [load_extension()] SQL function.
23562371** The [sqlite3_enable_load_extension()] API enables or disables both the
23572372** C-API [sqlite3_load_extension()] and the SQL function [load_extension()].
2358- ** There should be two additional arguments.
2373+ ** There must be two additional arguments.
23592374** When the first argument to this interface is 1, then only the C-API is
23602375** enabled and the SQL function remains disabled. If the first argument to
23612376** this interface is 0, then both the C-API and the SQL function are disabled.
@@ -2369,23 +2384,30 @@ struct sqlite3_mem_methods {
23692384**
23702385** [[SQLITE_DBCONFIG_MAINDBNAME]] <dt>SQLITE_DBCONFIG_MAINDBNAME</dt>
23712386** <dd> ^This option is used to change the name of the "main" database
2372- ** schema. ^The sole argument is a pointer to a constant UTF8 string
2373- ** which will become the new schema name in place of "main". ^SQLite
2374- ** does not make a copy of the new main schema name string, so the application
2375- ** must ensure that the argument passed into this DBCONFIG option is unchanged
2376- ** until after the database connection closes.
2387+ ** schema. This option does not follow the
2388+ ** [DBCONFIG arguments|usual SQLITE_DBCONFIG argument format].
2389+ ** This option takes exactly one additional argument so that the
2390+ ** [sqlite3_db_config()] call has a total of three parameters. The
2391+ ** extra argument must be a pointer to a constant UTF8 string which
2392+ ** will become the new schema name in place of "main". ^SQLite does
2393+ ** not make a copy of the new main schema name string, so the application
2394+ ** must ensure that the argument passed into SQLITE_DBCONFIG MAINDBNAME
2395+ ** is unchanged until after the database connection closes.
23772396** </dd>
23782397**
23792398** [[SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE]]
23802399** <dt>SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE</dt>
2381- ** <dd> Usually, when a database in wal mode is closed or detached from a
2382- ** database handle, SQLite checks if this will mean that there are now no
2383- ** connections at all to the database. If so, it performs a checkpoint
2384- ** operation before closing the connection. This option may be used to
2385- ** override this behavior. The first parameter passed to this operation
2386- ** is an integer - positive to disable checkpoints-on-close, or zero (the
2387- ** default) to enable them, and negative to leave the setting unchanged.
2388- ** The second parameter is a pointer to an integer
2400+ ** <dd> Usually, when a database in [WAL mode] is closed or detached from a
2401+ ** database handle, SQLite checks if if there are other connections to the
2402+ ** same database, and if there are no other database connection (if the
2403+ ** connection being closed is the last open connection to the database),
2404+ ** then SQLite performs a [checkpoint] before closing the connection and
2405+ ** deletes the WAL file. The SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE option can
2406+ ** be used to override that behavior. The first argument passed to this
2407+ ** operation (the third parameter to [sqlite3_db_config()]) is an integer
2408+ ** which is positive to disable checkpoints-on-close, or zero (the default)
2409+ ** to enable them, and negative to leave the setting unchanged.
2410+ ** The second argument (the fourth parameter) is a pointer to an integer
23892411** into which is written 0 or 1 to indicate whether checkpoints-on-close
23902412** have been disabled - 0 if they are not disabled, 1 if they are.
23912413** </dd>
@@ -2546,7 +2568,7 @@ struct sqlite3_mem_methods {
25462568** statistics. For statistics to be collected, the flag must be set on
25472569** the database handle both when the SQL statement is prepared and when it
25482570** is stepped. The flag is set (collection of statistics is enabled)
2549- ** by default. This option takes two arguments: an integer and a pointer to
2571+ ** by default. <p> This option takes two arguments: an integer and a pointer to
25502572** an integer.. The first argument is 1, 0, or -1 to enable, disable, or
25512573** leave unchanged the statement scanstatus option. If the second argument
25522574** is not NULL, then the value of the statement scanstatus setting after
@@ -2560,7 +2582,7 @@ struct sqlite3_mem_methods {
25602582** in which tables and indexes are scanned so that the scans start at the end
25612583** and work toward the beginning rather than starting at the beginning and
25622584** working toward the end. Setting SQLITE_DBCONFIG_REVERSE_SCANORDER is the
2563- ** same as setting [PRAGMA reverse_unordered_selects]. This option takes
2585+ ** same as setting [PRAGMA reverse_unordered_selects]. <p> This option takes
25642586** two arguments which are an integer and a pointer to an integer. The first
25652587** argument is 1, 0, or -1 to enable, disable, or leave unchanged the
25662588** reverse scan order flag, respectively. If the second argument is not NULL,
@@ -2569,7 +2591,76 @@ struct sqlite3_mem_methods {
25692591** first argument.
25702592** </dd>
25712593**
2594+ ** [[SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE]]
2595+ ** <dt>SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE</dt>
2596+ ** <dd>The SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE option enables or disables
2597+ ** the ability of the [ATTACH DATABASE] SQL command to create a new database
2598+ ** file if the database filed named in the ATTACH command does not already
2599+ ** exist. This ability of ATTACH to create a new database is enabled by
2600+ ** default. Applications can disable or reenable the ability for ATTACH to
2601+ ** create new database files using this DBCONFIG option.<p>
2602+ ** This option takes two arguments which are an integer and a pointer
2603+ ** to an integer. The first argument is 1, 0, or -1 to enable, disable, or
2604+ ** leave unchanged the attach-create flag, respectively. If the second
2605+ ** argument is not NULL, then 0 or 1 is written into the integer that the
2606+ ** second argument points to depending on if the attach-create flag is set
2607+ ** after processing the first argument.
2608+ ** </dd>
2609+ **
2610+ ** [[SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE]]
2611+ ** <dt>SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE</dt>
2612+ ** <dd>The SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE option enables or disables the
2613+ ** ability of the [ATTACH DATABASE] SQL command to open a database for writing.
2614+ ** This capability is enabled by default. Applications can disable or
2615+ ** reenable this capability using the current DBCONFIG option. If the
2616+ ** the this capability is disabled, the [ATTACH] command will still work,
2617+ ** but the database will be opened read-only. If this option is disabled,
2618+ ** then the ability to create a new database using [ATTACH] is also disabled,
2619+ ** regardless of the value of the [SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE]
2620+ ** option.<p>
2621+ ** This option takes two arguments which are an integer and a pointer
2622+ ** to an integer. The first argument is 1, 0, or -1 to enable, disable, or
2623+ ** leave unchanged the ability to ATTACH another database for writing,
2624+ ** respectively. If the second argument is not NULL, then 0 or 1 is written
2625+ ** into the integer to which the second argument points, depending on whether
2626+ ** the ability to ATTACH a read/write database is enabled or disabled
2627+ ** after processing the first argument.
2628+ ** </dd>
2629+ **
2630+ ** [[SQLITE_DBCONFIG_ENABLE_COMMENTS]]
2631+ ** <dt>SQLITE_DBCONFIG_ENABLE_COMMENTS</dt>
2632+ ** <dd>The SQLITE_DBCONFIG_ENABLE_COMMENTS option enables or disables the
2633+ ** ability to include comments in SQL text. Comments are enabled by default.
2634+ ** An application can disable or reenable comments in SQL text using this
2635+ ** DBCONFIG option.<p>
2636+ ** This option takes two arguments which are an integer and a pointer
2637+ ** to an integer. The first argument is 1, 0, or -1 to enable, disable, or
2638+ ** leave unchanged the ability to use comments in SQL text,
2639+ ** respectively. If the second argument is not NULL, then 0 or 1 is written
2640+ ** into the integer that the second argument points to depending on if
2641+ ** comments are allowed in SQL text after processing the first argument.
2642+ ** </dd>
2643+ **
25722644** </dl>
2645+ **
2646+ ** [[DBCONFIG arguments]] <h3>Arguments To SQLITE_DBCONFIG Options</h3>
2647+ **
2648+ ** <p>Most of the SQLITE_DBCONFIG options take two arguments, so that the
2649+ ** overall call to [sqlite3_db_config()] has a total of four parameters.
2650+ ** The first argument (the third parameter to sqlite3_db_config()) is a integer.
2651+ ** The second argument is a pointer to an integer. If the first argument is 1,
2652+ ** then the option becomes enabled. If the first integer argument is 0, then the
2653+ ** option is disabled. If the first argument is -1, then the option setting
2654+ ** is unchanged. The second argument, the pointer to an integer, may be NULL.
2655+ ** If the second argument is not NULL, then a value of 0 or 1 is written into
2656+ ** the integer to which the second argument points, depending on whether the
2657+ ** setting is disabled or enabled after applying any changes specified by
2658+ ** the first argument.
2659+ **
2660+ ** <p>While most SQLITE_DBCONFIG options use the argument format
2661+ ** described in the previous paragraph, the [SQLITE_DBCONFIG_MAINDBNAME]
2662+ ** and [SQLITE_DBCONFIG_LOOKASIDE] options are different. See the
2663+ ** documentation of those exceptional options for details.
25732664*/
25742665#define SQLITE_DBCONFIG_MAINDBNAME 1000 /* const char* */
25752666#define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */
@@ -2591,7 +2682,10 @@ struct sqlite3_mem_methods {
25912682#define SQLITE_DBCONFIG_TRUSTED_SCHEMA 1017 /* int int* */
25922683#define SQLITE_DBCONFIG_STMT_SCANSTATUS 1018 /* int int* */
25932684#define SQLITE_DBCONFIG_REVERSE_SCANORDER 1019 /* int int* */
2594- #define SQLITE_DBCONFIG_MAX 1019 /* Largest DBCONFIG */
2685+ #define SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE 1020 /* int int* */
2686+ #define SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE 1021 /* int int* */
2687+ #define SQLITE_DBCONFIG_ENABLE_COMMENTS 1022 /* int int* */
2688+ #define SQLITE_DBCONFIG_MAX 1022 /* Largest DBCONFIG */
25952689
25962690/*
25972691** CAPI3REF: Enable Or Disable Extended Result Codes
@@ -10794,8 +10888,9 @@ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_recover(sqlite3 *db, const c
1079410888/*
1079510889** CAPI3REF: Serialize a database
1079610890**
10797- ** The sqlite3_serialize(D,S,P,F) interface returns a pointer to memory
10798- ** that is a serialization of the S database on [database connection] D.
10891+ ** The sqlite3_serialize(D,S,P,F) interface returns a pointer to
10892+ ** memory that is a serialization of the S database on
10893+ ** [database connection] D. If S is a NULL pointer, the main database is used.
1079910894** If P is not a NULL pointer, then the size of the database in bytes
1080010895** is written into *P.
1080110896**
0 commit comments