31
31
32
32
#define SQLITE3MC_VERSION_MAJOR 2
33
33
#define SQLITE3MC_VERSION_MINOR 0
34
- #define SQLITE3MC_VERSION_RELEASE 2
34
+ #define SQLITE3MC_VERSION_RELEASE 3
35
35
#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 "
37
37
38
38
#endif /* SQLITE3MC_VERSION_H_ */
39
39
/*** End of #include "sqlite3mc_version.h" ***/
@@ -192,9 +192,9 @@ extern "C" {
192
192
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
193
193
** [sqlite_version()] and [sqlite_source_id()].
194
194
*/
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 "
198
198
199
199
/*
200
200
** CAPI3REF: Run-Time Library Version Numbers
@@ -2257,7 +2257,15 @@ struct sqlite3_mem_methods {
2257
2257
** CAPI3REF: Database Connection Configuration Options
2258
2258
**
2259
2259
** 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()".
2261
2269
**
2262
2270
** New configuration options may be added in future releases of SQLite.
2263
2271
** Existing configuration options might be discontinued. Applications
@@ -2269,8 +2277,14 @@ struct sqlite3_mem_methods {
2269
2277
** <dl>
2270
2278
** [[SQLITE_DBCONFIG_LOOKASIDE]]
2271
2279
** <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.
2274
2288
** ^The first argument (the third parameter to [sqlite3_db_config()] is a
2275
2289
** pointer to a memory buffer to use for lookaside memory.
2276
2290
** ^The first argument after the SQLITE_DBCONFIG_LOOKASIDE verb
@@ -2293,7 +2307,8 @@ struct sqlite3_mem_methods {
2293
2307
** [[SQLITE_DBCONFIG_ENABLE_FKEY]]
2294
2308
** <dt>SQLITE_DBCONFIG_ENABLE_FKEY</dt>
2295
2309
** <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.
2297
2312
** The first argument is an integer which is 0 to disable FK enforcement,
2298
2313
** positive to enable FK enforcement or negative to leave FK enforcement
2299
2314
** unchanged. The second parameter is a pointer to an integer into which
@@ -2315,13 +2330,13 @@ struct sqlite3_mem_methods {
2315
2330
** <p>Originally this option disabled all triggers. ^(However, since
2316
2331
** SQLite version 3.35.0, TEMP triggers are still allowed even if
2317
2332
** 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
2319
2334
** databases.)^ </dd>
2320
2335
**
2321
2336
** [[SQLITE_DBCONFIG_ENABLE_VIEW]]
2322
2337
** <dt>SQLITE_DBCONFIG_ENABLE_VIEW</dt>
2323
2338
** <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.
2325
2340
** The first argument is an integer which is 0 to disable views,
2326
2341
** positive to enable views or negative to leave the setting unchanged.
2327
2342
** The second parameter is a pointer to an integer into which
@@ -2340,7 +2355,7 @@ struct sqlite3_mem_methods {
2340
2355
** <dd> ^This option is used to enable or disable the
2341
2356
** [fts3_tokenizer()] function which is part of the
2342
2357
** [FTS3] full-text search engine extension.
2343
- ** There should be two additional arguments.
2358
+ ** There must be two additional arguments.
2344
2359
** The first argument is an integer which is 0 to disable fts3_tokenizer() or
2345
2360
** positive to enable fts3_tokenizer() or negative to leave the setting
2346
2361
** unchanged.
@@ -2355,7 +2370,7 @@ struct sqlite3_mem_methods {
2355
2370
** interface independently of the [load_extension()] SQL function.
2356
2371
** The [sqlite3_enable_load_extension()] API enables or disables both the
2357
2372
** 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.
2359
2374
** When the first argument to this interface is 1, then only the C-API is
2360
2375
** enabled and the SQL function remains disabled. If the first argument to
2361
2376
** this interface is 0, then both the C-API and the SQL function are disabled.
@@ -2369,23 +2384,30 @@ struct sqlite3_mem_methods {
2369
2384
**
2370
2385
** [[SQLITE_DBCONFIG_MAINDBNAME]] <dt>SQLITE_DBCONFIG_MAINDBNAME</dt>
2371
2386
** <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.
2377
2396
** </dd>
2378
2397
**
2379
2398
** [[SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE]]
2380
2399
** <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
2389
2411
** into which is written 0 or 1 to indicate whether checkpoints-on-close
2390
2412
** have been disabled - 0 if they are not disabled, 1 if they are.
2391
2413
** </dd>
@@ -2546,7 +2568,7 @@ struct sqlite3_mem_methods {
2546
2568
** statistics. For statistics to be collected, the flag must be set on
2547
2569
** the database handle both when the SQL statement is prepared and when it
2548
2570
** 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
2550
2572
** an integer.. The first argument is 1, 0, or -1 to enable, disable, or
2551
2573
** leave unchanged the statement scanstatus option. If the second argument
2552
2574
** is not NULL, then the value of the statement scanstatus setting after
@@ -2560,7 +2582,7 @@ struct sqlite3_mem_methods {
2560
2582
** in which tables and indexes are scanned so that the scans start at the end
2561
2583
** and work toward the beginning rather than starting at the beginning and
2562
2584
** 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
2564
2586
** two arguments which are an integer and a pointer to an integer. The first
2565
2587
** argument is 1, 0, or -1 to enable, disable, or leave unchanged the
2566
2588
** reverse scan order flag, respectively. If the second argument is not NULL,
@@ -2569,7 +2591,76 @@ struct sqlite3_mem_methods {
2569
2591
** first argument.
2570
2592
** </dd>
2571
2593
**
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
+ **
2572
2644
** </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.
2573
2664
*/
2574
2665
#define SQLITE_DBCONFIG_MAINDBNAME 1000 /* const char* */
2575
2666
#define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */
@@ -2591,7 +2682,10 @@ struct sqlite3_mem_methods {
2591
2682
#define SQLITE_DBCONFIG_TRUSTED_SCHEMA 1017 /* int int* */
2592
2683
#define SQLITE_DBCONFIG_STMT_SCANSTATUS 1018 /* int int* */
2593
2684
#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 */
2595
2689
2596
2690
/*
2597
2691
** CAPI3REF: Enable Or Disable Extended Result Codes
@@ -10794,8 +10888,9 @@ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_recover(sqlite3 *db, const c
10794
10888
/*
10795
10889
** CAPI3REF: Serialize a database
10796
10890
**
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.
10799
10894
** If P is not a NULL pointer, then the size of the database in bytes
10800
10895
** is written into *P.
10801
10896
**
0 commit comments