Skip to content

Commit 7fd39e3

Browse files
nodejs-github-bottargos
authored andcommittedFeb 10, 2025
deps: update sqlite to 3.49.0
PR-URL: #56654 Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
1 parent be00058 commit 7fd39e3

File tree

2 files changed

+3624
-2533
lines changed

2 files changed

+3624
-2533
lines changed
 

‎deps/sqlite/sqlite3.c

+3,458-2,499
Large diffs are not rendered by default.

‎deps/sqlite/sqlite3.h

+166-34
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,9 @@ extern "C" {
146146
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
147147
** [sqlite_version()] and [sqlite_source_id()].
148148
*/
149-
#define SQLITE_VERSION "3.47.2"
150-
#define SQLITE_VERSION_NUMBER 3047002
151-
#define SQLITE_SOURCE_ID "2024-12-07 20:39:59 2aabe05e2e8cae4847a802ee2daddc1d7413d8fc560254d93ee3e72c14685b6c"
149+
#define SQLITE_VERSION "3.49.0"
150+
#define SQLITE_VERSION_NUMBER 3049000
151+
#define SQLITE_SOURCE_ID "2025-02-06 11:55:18 4a7dd425dc2a0e5082a9049c9b4a9d4f199a71583d014c24b4cfe276c5a77cde"
152152

153153
/*
154154
** CAPI3REF: Run-Time Library Version Numbers
@@ -1100,6 +1100,11 @@ struct sqlite3_io_methods {
11001100
** pointed to by the pArg argument. This capability is used during testing
11011101
** and only needs to be supported when SQLITE_TEST is defined.
11021102
**
1103+
** <li>[[SQLITE_FCNTL_NULL_IO]]
1104+
** The [SQLITE_FCNTL_NULL_IO] opcode sets the low-level file descriptor
1105+
** or file handle for the [sqlite3_file] object such that it will no longer
1106+
** read or write to the database file.
1107+
**
11031108
** <li>[[SQLITE_FCNTL_WAL_BLOCK]]
11041109
** The [SQLITE_FCNTL_WAL_BLOCK] is a signal to the VFS layer that it might
11051110
** be advantageous to block on the next WAL lock if the lock is not immediately
@@ -1253,6 +1258,7 @@ struct sqlite3_io_methods {
12531258
#define SQLITE_FCNTL_EXTERNAL_READER 40
12541259
#define SQLITE_FCNTL_CKSM_FILE 41
12551260
#define SQLITE_FCNTL_RESET_CACHE 42
1261+
#define SQLITE_FCNTL_NULL_IO 43
12561262

12571263
/* deprecated names */
12581264
#define SQLITE_GET_LOCKPROXYFILE SQLITE_FCNTL_GET_LOCKPROXYFILE
@@ -2205,7 +2211,15 @@ struct sqlite3_mem_methods {
22052211
** CAPI3REF: Database Connection Configuration Options
22062212
**
22072213
** These constants are the available integer configuration options that
2208-
** can be passed as the second argument to the [sqlite3_db_config()] interface.
2214+
** can be passed as the second parameter to the [sqlite3_db_config()] interface.
2215+
**
2216+
** The [sqlite3_db_config()] interface is a var-args functions. It takes a
2217+
** variable number of parameters, though always at least two. The number of
2218+
** parameters passed into sqlite3_db_config() depends on which of these
2219+
** constants is given as the second parameter. This documentation page
2220+
** refers to parameters beyond the second as "arguments". Thus, when this
2221+
** page says "the N-th argument" it means "the N-th parameter past the
2222+
** configuration option" or "the (N+2)-th parameter to sqlite3_db_config()".
22092223
**
22102224
** New configuration options may be added in future releases of SQLite.
22112225
** Existing configuration options might be discontinued. Applications
@@ -2217,8 +2231,14 @@ struct sqlite3_mem_methods {
22172231
** <dl>
22182232
** [[SQLITE_DBCONFIG_LOOKASIDE]]
22192233
** <dt>SQLITE_DBCONFIG_LOOKASIDE</dt>
2220-
** <dd> ^This option takes three additional arguments that determine the
2221-
** [lookaside memory allocator] configuration for the [database connection].
2234+
** <dd> The SQLITE_DBCONFIG_LOOKASIDE option is used to adjust the
2235+
** configuration of the lookaside memory allocator within a database
2236+
** connection.
2237+
** The arguments to the SQLITE_DBCONFIG_LOOKASIDE option are <i>not</i>
2238+
** in the [DBCONFIG arguments|usual format].
2239+
** The SQLITE_DBCONFIG_LOOKASIDE option takes three arguments, not two,
2240+
** so that a call to [sqlite3_db_config()] that uses SQLITE_DBCONFIG_LOOKASIDE
2241+
** should have a total of five parameters.
22222242
** ^The first argument (the third parameter to [sqlite3_db_config()] is a
22232243
** pointer to a memory buffer to use for lookaside memory.
22242244
** ^The first argument after the SQLITE_DBCONFIG_LOOKASIDE verb
@@ -2241,7 +2261,8 @@ struct sqlite3_mem_methods {
22412261
** [[SQLITE_DBCONFIG_ENABLE_FKEY]]
22422262
** <dt>SQLITE_DBCONFIG_ENABLE_FKEY</dt>
22432263
** <dd> ^This option is used to enable or disable the enforcement of
2244-
** [foreign key constraints]. There should be two additional arguments.
2264+
** [foreign key constraints]. This is the same setting that is
2265+
** enabled or disabled by the [PRAGMA foreign_keys] statement.
22452266
** The first argument is an integer which is 0 to disable FK enforcement,
22462267
** positive to enable FK enforcement or negative to leave FK enforcement
22472268
** unchanged. The second parameter is a pointer to an integer into which
@@ -2263,13 +2284,13 @@ struct sqlite3_mem_methods {
22632284
** <p>Originally this option disabled all triggers. ^(However, since
22642285
** SQLite version 3.35.0, TEMP triggers are still allowed even if
22652286
** this option is off. So, in other words, this option now only disables
2266-
** triggers in the main database schema or in the schemas of ATTACH-ed
2287+
** triggers in the main database schema or in the schemas of [ATTACH]-ed
22672288
** databases.)^ </dd>
22682289
**
22692290
** [[SQLITE_DBCONFIG_ENABLE_VIEW]]
22702291
** <dt>SQLITE_DBCONFIG_ENABLE_VIEW</dt>
22712292
** <dd> ^This option is used to enable or disable [CREATE VIEW | views].
2272-
** There should be two additional arguments.
2293+
** There must be two additional arguments.
22732294
** The first argument is an integer which is 0 to disable views,
22742295
** positive to enable views or negative to leave the setting unchanged.
22752296
** The second parameter is a pointer to an integer into which
@@ -2288,7 +2309,7 @@ struct sqlite3_mem_methods {
22882309
** <dd> ^This option is used to enable or disable the
22892310
** [fts3_tokenizer()] function which is part of the
22902311
** [FTS3] full-text search engine extension.
2291-
** There should be two additional arguments.
2312+
** There must be two additional arguments.
22922313
** The first argument is an integer which is 0 to disable fts3_tokenizer() or
22932314
** positive to enable fts3_tokenizer() or negative to leave the setting
22942315
** unchanged.
@@ -2303,7 +2324,7 @@ struct sqlite3_mem_methods {
23032324
** interface independently of the [load_extension()] SQL function.
23042325
** The [sqlite3_enable_load_extension()] API enables or disables both the
23052326
** C-API [sqlite3_load_extension()] and the SQL function [load_extension()].
2306-
** There should be two additional arguments.
2327+
** There must be two additional arguments.
23072328
** When the first argument to this interface is 1, then only the C-API is
23082329
** enabled and the SQL function remains disabled. If the first argument to
23092330
** this interface is 0, then both the C-API and the SQL function are disabled.
@@ -2317,23 +2338,30 @@ struct sqlite3_mem_methods {
23172338
**
23182339
** [[SQLITE_DBCONFIG_MAINDBNAME]] <dt>SQLITE_DBCONFIG_MAINDBNAME</dt>
23192340
** <dd> ^This option is used to change the name of the "main" database
2320-
** schema. ^The sole argument is a pointer to a constant UTF8 string
2321-
** which will become the new schema name in place of "main". ^SQLite
2322-
** does not make a copy of the new main schema name string, so the application
2323-
** must ensure that the argument passed into this DBCONFIG option is unchanged
2324-
** until after the database connection closes.
2341+
** schema. This option does not follow the
2342+
** [DBCONFIG arguments|usual SQLITE_DBCONFIG argument format].
2343+
** This option takes exactly one additional argument so that the
2344+
** [sqlite3_db_config()] call has a total of three parameters. The
2345+
** extra argument must be a pointer to a constant UTF8 string which
2346+
** will become the new schema name in place of "main". ^SQLite does
2347+
** not make a copy of the new main schema name string, so the application
2348+
** must ensure that the argument passed into SQLITE_DBCONFIG MAINDBNAME
2349+
** is unchanged until after the database connection closes.
23252350
** </dd>
23262351
**
23272352
** [[SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE]]
23282353
** <dt>SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE</dt>
2329-
** <dd> Usually, when a database in wal mode is closed or detached from a
2330-
** database handle, SQLite checks if this will mean that there are now no
2331-
** connections at all to the database. If so, it performs a checkpoint
2332-
** operation before closing the connection. This option may be used to
2333-
** override this behavior. The first parameter passed to this operation
2334-
** is an integer - positive to disable checkpoints-on-close, or zero (the
2335-
** default) to enable them, and negative to leave the setting unchanged.
2336-
** The second parameter is a pointer to an integer
2354+
** <dd> Usually, when a database in [WAL mode] is closed or detached from a
2355+
** database handle, SQLite checks if if there are other connections to the
2356+
** same database, and if there are no other database connection (if the
2357+
** connection being closed is the last open connection to the database),
2358+
** then SQLite performs a [checkpoint] before closing the connection and
2359+
** deletes the WAL file. The SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE option can
2360+
** be used to override that behavior. The first argument passed to this
2361+
** operation (the third parameter to [sqlite3_db_config()]) is an integer
2362+
** which is positive to disable checkpoints-on-close, or zero (the default)
2363+
** to enable them, and negative to leave the setting unchanged.
2364+
** The second argument (the fourth parameter) is a pointer to an integer
23372365
** into which is written 0 or 1 to indicate whether checkpoints-on-close
23382366
** have been disabled - 0 if they are not disabled, 1 if they are.
23392367
** </dd>
@@ -2494,7 +2522,7 @@ struct sqlite3_mem_methods {
24942522
** statistics. For statistics to be collected, the flag must be set on
24952523
** the database handle both when the SQL statement is prepared and when it
24962524
** is stepped. The flag is set (collection of statistics is enabled)
2497-
** by default. This option takes two arguments: an integer and a pointer to
2525+
** by default. <p>This option takes two arguments: an integer and a pointer to
24982526
** an integer.. The first argument is 1, 0, or -1 to enable, disable, or
24992527
** leave unchanged the statement scanstatus option. If the second argument
25002528
** is not NULL, then the value of the statement scanstatus setting after
@@ -2508,7 +2536,7 @@ struct sqlite3_mem_methods {
25082536
** in which tables and indexes are scanned so that the scans start at the end
25092537
** and work toward the beginning rather than starting at the beginning and
25102538
** working toward the end. Setting SQLITE_DBCONFIG_REVERSE_SCANORDER is the
2511-
** same as setting [PRAGMA reverse_unordered_selects]. This option takes
2539+
** same as setting [PRAGMA reverse_unordered_selects]. <p>This option takes
25122540
** two arguments which are an integer and a pointer to an integer. The first
25132541
** argument is 1, 0, or -1 to enable, disable, or leave unchanged the
25142542
** reverse scan order flag, respectively. If the second argument is not NULL,
@@ -2517,7 +2545,76 @@ struct sqlite3_mem_methods {
25172545
** first argument.
25182546
** </dd>
25192547
**
2548+
** [[SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE]]
2549+
** <dt>SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE</dt>
2550+
** <dd>The SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE option enables or disables
2551+
** the ability of the [ATTACH DATABASE] SQL command to create a new database
2552+
** file if the database filed named in the ATTACH command does not already
2553+
** exist. This ability of ATTACH to create a new database is enabled by
2554+
** default. Applications can disable or reenable the ability for ATTACH to
2555+
** create new database files using this DBCONFIG option.<p>
2556+
** This option takes two arguments which are an integer and a pointer
2557+
** to an integer. The first argument is 1, 0, or -1 to enable, disable, or
2558+
** leave unchanged the attach-create flag, respectively. If the second
2559+
** argument is not NULL, then 0 or 1 is written into the integer that the
2560+
** second argument points to depending on if the attach-create flag is set
2561+
** after processing the first argument.
2562+
** </dd>
2563+
**
2564+
** [[SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE]]
2565+
** <dt>SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE</dt>
2566+
** <dd>The SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE option enables or disables the
2567+
** ability of the [ATTACH DATABASE] SQL command to open a database for writing.
2568+
** This capability is enabled by default. Applications can disable or
2569+
** reenable this capability using the current DBCONFIG option. If the
2570+
** the this capability is disabled, the [ATTACH] command will still work,
2571+
** but the database will be opened read-only. If this option is disabled,
2572+
** then the ability to create a new database using [ATTACH] is also disabled,
2573+
** regardless of the value of the [SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE]
2574+
** option.<p>
2575+
** This option takes two arguments which are an integer and a pointer
2576+
** to an integer. The first argument is 1, 0, or -1 to enable, disable, or
2577+
** leave unchanged the ability to ATTACH another database for writing,
2578+
** respectively. If the second argument is not NULL, then 0 or 1 is written
2579+
** into the integer to which the second argument points, depending on whether
2580+
** the ability to ATTACH a read/write database is enabled or disabled
2581+
** after processing the first argument.
2582+
** </dd>
2583+
**
2584+
** [[SQLITE_DBCONFIG_ENABLE_COMMENTS]]
2585+
** <dt>SQLITE_DBCONFIG_ENABLE_COMMENTS</dt>
2586+
** <dd>The SQLITE_DBCONFIG_ENABLE_COMMENTS option enables or disables the
2587+
** ability to include comments in SQL text. Comments are enabled by default.
2588+
** An application can disable or reenable comments in SQL text using this
2589+
** DBCONFIG option.<p>
2590+
** This option takes two arguments which are an integer and a pointer
2591+
** to an integer. The first argument is 1, 0, or -1 to enable, disable, or
2592+
** leave unchanged the ability to use comments in SQL text,
2593+
** respectively. If the second argument is not NULL, then 0 or 1 is written
2594+
** into the integer that the second argument points to depending on if
2595+
** comments are allowed in SQL text after processing the first argument.
2596+
** </dd>
2597+
**
25202598
** </dl>
2599+
**
2600+
** [[DBCONFIG arguments]] <h3>Arguments To SQLITE_DBCONFIG Options</h3>
2601+
**
2602+
** <p>Most of the SQLITE_DBCONFIG options take two arguments, so that the
2603+
** overall call to [sqlite3_db_config()] has a total of four parameters.
2604+
** The first argument (the third parameter to sqlite3_db_config()) is a integer.
2605+
** The second argument is a pointer to an integer. If the first argument is 1,
2606+
** then the option becomes enabled. If the first integer argument is 0, then the
2607+
** option is disabled. If the first argument is -1, then the option setting
2608+
** is unchanged. The second argument, the pointer to an integer, may be NULL.
2609+
** If the second argument is not NULL, then a value of 0 or 1 is written into
2610+
** the integer to which the second argument points, depending on whether the
2611+
** setting is disabled or enabled after applying any changes specified by
2612+
** the first argument.
2613+
**
2614+
** <p>While most SQLITE_DBCONFIG options use the argument format
2615+
** described in the previous paragraph, the [SQLITE_DBCONFIG_MAINDBNAME]
2616+
** and [SQLITE_DBCONFIG_LOOKASIDE] options are different. See the
2617+
** documentation of those exceptional options for details.
25212618
*/
25222619
#define SQLITE_DBCONFIG_MAINDBNAME 1000 /* const char* */
25232620
#define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */
@@ -2539,7 +2636,10 @@ struct sqlite3_mem_methods {
25392636
#define SQLITE_DBCONFIG_TRUSTED_SCHEMA 1017 /* int int* */
25402637
#define SQLITE_DBCONFIG_STMT_SCANSTATUS 1018 /* int int* */
25412638
#define SQLITE_DBCONFIG_REVERSE_SCANORDER 1019 /* int int* */
2542-
#define SQLITE_DBCONFIG_MAX 1019 /* Largest DBCONFIG */
2639+
#define SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE 1020 /* int int* */
2640+
#define SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE 1021 /* int int* */
2641+
#define SQLITE_DBCONFIG_ENABLE_COMMENTS 1022 /* int int* */
2642+
#define SQLITE_DBCONFIG_MAX 1022 /* Largest DBCONFIG */
25432643

25442644
/*
25452645
** CAPI3REF: Enable Or Disable Extended Result Codes
@@ -2631,10 +2731,14 @@ SQLITE_API void sqlite3_set_last_insert_rowid(sqlite3*,sqlite3_int64);
26312731
** deleted by the most recently completed INSERT, UPDATE or DELETE
26322732
** statement on the database connection specified by the only parameter.
26332733
** The two functions are identical except for the type of the return value
2634-
** and that if the number of rows modified by the most recent INSERT, UPDATE
2734+
** and that if the number of rows modified by the most recent INSERT, UPDATE,
26352735
** or DELETE is greater than the maximum value supported by type "int", then
26362736
** the return value of sqlite3_changes() is undefined. ^Executing any other
26372737
** type of SQL statement does not modify the value returned by these functions.
2738+
** For the purposes of this interface, a CREATE TABLE AS SELECT statement
2739+
** does not count as an INSERT, UPDATE or DELETE statement and hence the rows
2740+
** added to the new table by the CREATE TABLE AS SELECT statement are not
2741+
** counted.
26382742
**
26392743
** ^Only changes made directly by the INSERT, UPDATE or DELETE statement are
26402744
** considered - auxiliary changes caused by [CREATE TRIGGER | triggers],
@@ -4194,11 +4298,22 @@ SQLITE_API int sqlite3_limit(sqlite3*, int id, int newVal);
41944298
** <dd>The SQLITE_PREPARE_NO_VTAB flag causes the SQL compiler
41954299
** to return an error (error code SQLITE_ERROR) if the statement uses
41964300
** any virtual tables.
4301+
**
4302+
** [[SQLITE_PREPARE_DONT_LOG]] <dt>SQLITE_PREPARE_DONT_LOG</dt>
4303+
** <dd>The SQLITE_PREPARE_DONT_LOG flag prevents SQL compiler
4304+
** errors from being sent to the error log defined by
4305+
** [SQLITE_CONFIG_LOG]. This can be used, for example, to do test
4306+
** compiles to see if some SQL syntax is well-formed, without generating
4307+
** messages on the global error log when it is not. If the test compile
4308+
** fails, the sqlite3_prepare_v3() call returns the same error indications
4309+
** with or without this flag; it just omits the call to [sqlite3_log()] that
4310+
** logs the error.
41974311
** </dl>
41984312
*/
41994313
#define SQLITE_PREPARE_PERSISTENT 0x01
42004314
#define SQLITE_PREPARE_NORMALIZE 0x02
42014315
#define SQLITE_PREPARE_NO_VTAB 0x04
4316+
#define SQLITE_PREPARE_DONT_LOG 0x10
42024317

42034318
/*
42044319
** CAPI3REF: Compiling An SQL Statement
@@ -10727,8 +10842,9 @@ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_recover(sqlite3 *db, const c
1072710842
/*
1072810843
** CAPI3REF: Serialize a database
1072910844
**
10730-
** The sqlite3_serialize(D,S,P,F) interface returns a pointer to memory
10731-
** that is a serialization of the S database on [database connection] D.
10845+
** The sqlite3_serialize(D,S,P,F) interface returns a pointer to
10846+
** memory that is a serialization of the S database on
10847+
** [database connection] D. If S is a NULL pointer, the main database is used.
1073210848
** If P is not a NULL pointer, then the size of the database in bytes
1073310849
** is written into *P.
1073410850
**
@@ -10889,7 +11005,7 @@ SQLITE_API int sqlite3_deserialize(
1088911005
#ifdef __cplusplus
1089011006
} /* End of the 'extern "C"' block */
1089111007
#endif
10892-
#endif /* SQLITE3_H */
11008+
/* #endif for SQLITE3_H will be added by mksqlite3.tcl */
1089311009

1089411010
/******** Begin file sqlite3rtree.h *********/
1089511011
/*
@@ -13140,14 +13256,29 @@ struct Fts5PhraseIter {
1314013256
** value returned by xInstCount(), SQLITE_RANGE is returned. Otherwise,
1314113257
** output variable (*ppToken) is set to point to a buffer containing the
1314213258
** matching document token, and (*pnToken) to the size of that buffer in
13143-
** bytes. This API is not available if the specified token matches a
13144-
** prefix query term. In that case both output variables are always set
13145-
** to 0.
13259+
** bytes.
1314613260
**
1314713261
** The output text is not a copy of the document text that was tokenized.
1314813262
** It is the output of the tokenizer module. For tokendata=1 tables, this
1314913263
** includes any embedded 0x00 and trailing data.
1315013264
**
13265+
** This API may be slow in some cases if the token identified by parameters
13266+
** iIdx and iToken matched a prefix token in the query. In most cases, the
13267+
** first call to this API for each prefix token in the query is forced
13268+
** to scan the portion of the full-text index that matches the prefix
13269+
** token to collect the extra data required by this API. If the prefix
13270+
** token matches a large number of token instances in the document set,
13271+
** this may be a performance problem.
13272+
**
13273+
** If the user knows in advance that a query may use this API for a
13274+
** prefix token, FTS5 may be configured to collect all required data as part
13275+
** of the initial querying of the full-text index, avoiding the second scan
13276+
** entirely. This also causes prefix queries that do not use this API to
13277+
** run more slowly and use more memory. FTS5 may be configured in this way
13278+
** either on a per-table basis using the [FTS5 insttoken | 'insttoken']
13279+
** option, or on a per-query basis using the
13280+
** [fts5_insttoken | fts5_insttoken()] user function.
13281+
**
1315113282
** This API can be quite slow if used with an FTS5 table created with the
1315213283
** "detail=none" or "detail=column" option.
1315313284
**
@@ -13581,3 +13712,4 @@ struct fts5_api {
1358113712
#endif /* _FTS5_H */
1358213713

1358313714
/******** End of fts5.h *********/
13715+
#endif /* SQLITE3_H */

0 commit comments

Comments
 (0)
Please sign in to comment.