]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
2 years agoFix handling of unix paths that contain ".." components such that "/" is considered... unix-path-fix
dan [Tue, 10 Jan 2023 14:31:56 +0000 (14:31 +0000)] 
Fix handling of unix paths that contain ".." components such that "/" is considered its own parent directory.

FossilOrigin-Name: 3c6cadb396de3981bd950eddd532daa8134bd4bf22c578620e323835c96a8500

2 years agoClarify help for .quit.
larrybr [Mon, 9 Jan 2023 18:42:28 +0000 (18:42 +0000)] 
Clarify help for .quit.

FossilOrigin-Name: 8004a2b7439748f1034df897af7b6c58b48a46923c6fdddbe7d78c89b8d7b438

2 years agoFix JSON functions so that they work correctly under PRAGMA trusted_schema.
drh [Mon, 9 Jan 2023 12:01:30 +0000 (12:01 +0000)] 
Fix JSON functions so that they work correctly under PRAGMA trusted_schema.
[forum:/forumpost/c88a671ad083d153|Forum thread c88a671ad083d153].

FossilOrigin-Name: 51a5d83c425d2e31508b73074d0076156817afb19003f847d16bf4a69ae5077b

2 years agoDoc-only update, sqlite3_preupdate_hook() return
larrybr [Sat, 7 Jan 2023 22:28:00 +0000 (22:28 +0000)] 
Doc-only update, sqlite3_preupdate_hook() return

FossilOrigin-Name: 2da51d7e1b9f16ef03efbb096ce2a84e8c23b883380f48b2d374bdc521865aeb

2 years agoAccount for read-only connections on databases with non-default block or page sizes.
dan [Sat, 7 Jan 2023 13:40:32 +0000 (13:40 +0000)] 
Account for read-only connections on databases with non-default block or page sizes.

FossilOrigin-Name: 3a2075b089ecdb4b55243235dfabf466ea7999c2118aa8f58300925fb75c884e

2 years agoChanges a testcase() into an assert() due to the
drh [Thu, 5 Jan 2023 14:41:18 +0000 (14:41 +0000)] 
Changes a testcase() into an assert() due to the
[e58bba93717cd6ff] change.

FossilOrigin-Name: a6251d72894f9c2e21fc6e91b1d2452a204952f5e1a94fd93835a47c7dfb9be3

2 years agoFix a problem with applying integer affinity to a MEM_IntReal value. Forum post ...
dan [Thu, 5 Jan 2023 13:35:23 +0000 (13:35 +0000)] 
Fix a problem with applying integer affinity to a MEM_IntReal value. Forum post [forum:/forumpost/d270125fae|forum post d270125fae].

FossilOrigin-Name: e58bba93717cd6ff950c6f9e077b4327b59b1956dd5f6668be3de9509584b8fe

2 years agoIn the zipvfile extension (which is not part of the SQLite amalgamation, but
drh [Thu, 5 Jan 2023 01:26:58 +0000 (01:26 +0000)] 
In the zipvfile extension (which is not part of the SQLite amalgamation, but
which is included in the CLI by default) ensure that fopen() is not invoked
using a NULL filename.  Fix for the issue reported by
[forum:/forumpost/d1c96a9032e564f8|forum post d1c96a9032e564f8].

FossilOrigin-Name: d32757ddf5d311b6f62545c861fd606244e03f02cb2e317c1131ee6b80c2299c

2 years agoAdjustements to the tool/warnings.sh script to account for compiler
drh [Wed, 4 Jan 2023 18:32:14 +0000 (18:32 +0000)] 
Adjustements to the tool/warnings.sh script to account for compiler
differences.

FossilOrigin-Name: 863c03bee117e81bcea8c3ae78bf125afc7750aa5bcb89e42ee66d9c8b6ddc29

2 years agoEnsure that LIMIT clauses may be passed through to virtual table implementations...
dan [Wed, 4 Jan 2023 17:46:29 +0000 (17:46 +0000)] 
Ensure that LIMIT clauses may be passed through to virtual table implementations even if the WHERE clause uses operators that may only be optimized by virtual, not built-in, tables (!=, functions, MATCH etc.).

FossilOrigin-Name: f38caab23bcef1df02618376de22d208a3333d023628cde310345505933329f1

2 years agoEmploy deliberate_fall_through macro to quiet some compilers.
larrybr [Wed, 4 Jan 2023 16:54:55 +0000 (16:54 +0000)] 
Employ deliberate_fall_through macro to quiet some compilers.

FossilOrigin-Name: 869635fb81e0868dee80ce77653a2c1d2af41b3ffbf0a3f7b788ac99dc808887

2 years agoEnhance PRAGMA integrity_check so that it verifies that the string values
drh [Wed, 4 Jan 2023 15:18:52 +0000 (15:18 +0000)] 
Enhance PRAGMA integrity_check so that it verifies that the string values
stored in indexes are byte-for-byte identical to the values in the table, and
not just equivalent according to the collating sequence.
dbsqlfuzz 686e2e205e0c0594d3fb524bea0c25e621d1a870.

FossilOrigin-Name: 9302e4bfdce5905576b8f0af7d6b3a864e1dcd58ed89bb303010a1c4f826e915

2 years agoRemove the unused "sqlite3StackAllocZero()" macro.
drh [Wed, 4 Jan 2023 11:58:36 +0000 (11:58 +0000)] 
Remove the unused "sqlite3StackAllocZero()" macro.

FossilOrigin-Name: f0ca57207e9f3ab401264498f65c249b479d9e0da7158e001b002584ac67dd0a

2 years agoElaborate on the open-in-read-only fallback behavior of the SQLITE_OPEN_READWRITE...
stephan [Wed, 4 Jan 2023 11:57:27 +0000 (11:57 +0000)] 
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

2 years agoRemove the JS-side SQLITE_WASM_DEALLOC sanity check which triggers the problem mentio...
stephan [Wed, 4 Jan 2023 03:14:06 +0000 (03:14 +0000)] 
Remove the JS-side SQLITE_WASM_DEALLOC sanity check which triggers the problem mentioned in [688c5c13d156] and [ae0196d86ee8], for reasons covered in the code comments, per discussion in [forum:e5b20e1feb|forum post e5b20e1feb].

FossilOrigin-Name: 65ff3200c6009a1649fc108d7ce36f5c014185ba46bbf98471ec86eaeb572656

2 years agoSmall performance increase in the symbol hash table.
drh [Tue, 3 Jan 2023 19:27:00 +0000 (19:27 +0000)] 
Small performance increase in the symbol hash table.

FossilOrigin-Name: a19597b4fd2530a89363992b9179f9f3f0621a6e3861a91324f29311aafe09b9

2 years agoAvoid an unnecessary call to strlen() in the sqlite3VdbeMemStringify() routine,
drh [Tue, 3 Jan 2023 18:51:18 +0000 (18:51 +0000)] 
Avoid an unnecessary call to strlen() in the sqlite3VdbeMemStringify() routine,
for a performance increase and size reduction.

FossilOrigin-Name: 284382d37850f469dc4bf3ab8efd2f20971554e897f1ba3e94d3f2f0c35d97d0

2 years agoSmall performance improvement in the btreeOverwriteCell() routine.
drh [Tue, 3 Jan 2023 15:11:01 +0000 (15:11 +0000)] 
Small performance improvement in the btreeOverwriteCell() routine.

FossilOrigin-Name: df5ea47130d275e9fa1bd6aa8d55f1d5e136cba30ba13b7ede22224aa7f78919

2 years agoAdd some docs explaining a particular piece of [ae0196d86ee8]. No code changes.
stephan [Mon, 2 Jan 2023 20:52:46 +0000 (20:52 +0000)] 
Add some docs explaining a particular piece of [ae0196d86ee8]. No code changes.

FossilOrigin-Name: 7f96803c1cbd0633367173ab0a67a8b301b9e0746e460c50d506b536c15db0a0

2 years agoAnother reformulation of SQLITE_WASM_DEALLOC to attempt to work around a Safari-speci...
stephan [Mon, 2 Jan 2023 20:07:30 +0000 (20:07 +0000)] 
Another reformulation of SQLITE_WASM_DEALLOC to attempt to work around a Safari-specific quirk reported in [forum:5489305f601b8c3f|forum post 5489305f601b8c3f].

FossilOrigin-Name: ae0196d86ee8ca424b5ef5a43c32988f4ab5131ea146669bc1467e31a2384901

2 years agoAn alternative solution to mapping SQLITE_WASM_DEALLOC to the proper function pointer...
stephan [Sun, 1 Jan 2023 12:22:16 +0000 (12:22 +0000)] 
An alternative solution to mapping SQLITE_WASM_DEALLOC to the proper function pointer in JS, to account for a Safari-specific quirk reported in [forum:e5b20e1feb|forum post e5b20e1feb].

FossilOrigin-Name: 688c5c13d156f987b895df1d5a5b770616b0d9caec4726e03ba122eb8539e7b2

2 years agoRemove redundant assignment in kvvfs's decoding.
peter.d.reid [Sat, 31 Dec 2022 05:26:35 +0000 (05:26 +0000)] 
Remove redundant assignment in kvvfs's decoding.

FossilOrigin-Name: 2ffbf0c73c5a0f08717093cfaac99c4aedee506ec7b5a9a62c92168a2bcadc14

2 years agoAvoid an infinite loop when an unexpected character is being decoded by kvvfs
peter.d.reid [Sat, 31 Dec 2022 05:19:45 +0000 (05:19 +0000)] 
Avoid an infinite loop when an unexpected character is being decoded by kvvfs

FossilOrigin-Name: 6909195f77b50650982a6afd9d72b3a6ac9aff1f86c653fa18d0d9bf64e9bd8f

2 years agoA call to sqlite3_declare_vtab() should not cause DML/DDL authorization
drh [Thu, 29 Dec 2022 18:54:15 +0000 (18:54 +0000)] 
A call to sqlite3_declare_vtab() should not cause DML/DDL authorization
failures.

FossilOrigin-Name: eed1e030722deb24674e7c2d165a2a359576c6bb5769d3bdd5fa645bc0f2ecc7

2 years agoAdd sqlite3changeset_new/old_js(), which work like sqlite3_preupdate_new/old_js(...
stephan [Tue, 27 Dec 2022 22:46:49 +0000 (22:46 +0000)] 
Add sqlite3changeset_new/old_js(), which work like sqlite3_preupdate_new/old_js() but on changesets.

FossilOrigin-Name: e8afad630b085a9208491e0516a6a30c9cda77a20b1aa2cba49b2f44eb9fa2f8

2 years agoExpose sqlite3_preupdate_hook() and friends to the JS API.
stephan [Tue, 27 Dec 2022 14:34:32 +0000 (14:34 +0000)] 
Expose sqlite3_preupdate_hook() and friends to the JS API.

FossilOrigin-Name: cc02783a1210a083683320fae1ec1519e45b8e3003a9e32809d808513a2ce06b

2 years agoFix a missing 0 at the end of an integer literal in check-in [8da0f0c38a458c57]
drh [Tue, 27 Dec 2022 14:03:04 +0000 (14:03 +0000)] 
Fix a missing 0 at the end of an integer literal in check-in [8da0f0c38a458c57]

FossilOrigin-Name: e3776796f55574f357eb429e20399389092a68e9ca00aa104ed33eb559ae0de5

2 years agoFix a broken assert() in fts5.
dan [Tue, 27 Dec 2022 13:52:25 +0000 (13:52 +0000)] 
Fix a broken assert() in fts5.

FossilOrigin-Name: ff5a9b054f4d5ad3d33787aee93b4181822c6dfc513626236d9867bb431f64da

2 years agoAdd links to module-symbols.html for newly-added APIs.
stephan [Tue, 27 Dec 2022 12:25:28 +0000 (12:25 +0000)] 
Add links to module-symbols.html for newly-added APIs.

FossilOrigin-Name: 335ef03eb9694d1fd123f113f235cd34e97834fadc5f7c80489b6513be45d070

2 years agoAdd two more tests to [f99f8e3ecfe20].
stephan [Tue, 27 Dec 2022 12:17:20 +0000 (12:17 +0000)] 
Add two more tests to [f99f8e3ecfe20].

FossilOrigin-Name: 9cffccd335b11feb6a5beadb26e1a68af7b6b1b3c953063dcf6ef74edf3c59b1

2 years agoExpose sqlite3_commit/rollback/update_hook() to JS API.
stephan [Tue, 27 Dec 2022 12:13:01 +0000 (12:13 +0000)] 
Expose sqlite3_commit/rollback/update_hook() to JS API.

FossilOrigin-Name: f99f8e3ecfe205337996ee61c0b9f139d3e8788b14f32e26560888b3a16564de

2 years agoAdd an optional argument to oo1.DB.transaction() to specify an explicit BEGIN qualifier.
stephan [Tue, 27 Dec 2022 11:40:05 +0000 (11:40 +0000)] 
Add an optional argument to oo1.DB.transaction() to specify an explicit BEGIN qualifier.

FossilOrigin-Name: 507335c12b1dbe21d180cf6f0a0deb4cc737417acb44c8f1d8fac98b86f62b01

2 years agoExpose the auto-extension API to JS and reorganize some nearby code.
stephan [Mon, 26 Dec 2022 17:15:05 +0000 (17:15 +0000)] 
Expose the auto-extension API to JS and reorganize some nearby code.

FossilOrigin-Name: 52b229d11d82bfb81c8b63e252c51c57a34dc50498dd685451588c185873c628

2 years agoFix an infinite loop in the MEMSYS5 auxiliary memory allocator that occurs
drh [Mon, 26 Dec 2022 15:14:24 +0000 (15:14 +0000)] 
Fix an infinite loop in the MEMSYS5 auxiliary memory allocator that occurs
for memory allocations between 1GiB and 2GiB in size.  Error introduced
by check-in [949133231f8f751a].  The problem only affects builds that
include the SQLITE_ENABLE_MEMSYS5 compile-time option.

FossilOrigin-Name: 8da0f0c38a458c57f979d59b49cf4804ef81fc2eccabde1f166bab24dd1dabea

2 years agoDocument sqlite3.capi.sqlite3_prepare_v3() as accepting an ArrayBuffer and ensure...
stephan [Mon, 26 Dec 2022 15:08:48 +0000 (15:08 +0000)] 
Document sqlite3.capi.sqlite3_prepare_v3() as accepting an ArrayBuffer and ensure that it can.

FossilOrigin-Name: ae3ae92ec45d3d5de92e70876502f8108fc3fcd87848e86c2b83f8842f1ff139

2 years agoCorrect some internal-use JS docs and update the 'string:flexible' type conversion...
stephan [Mon, 26 Dec 2022 14:55:00 +0000 (14:55 +0000)] 
Correct some internal-use JS docs and update the 'string:flexible' type conversion to accept an ArrayBuffer (as it was recently documented to).

FossilOrigin-Name: eff5d3bec29043cc1182bbb5229040dac5ff50264d025e354736bb63b4bc97a0

2 years agoOnly add an on-db-close cleanup entry for collations if adding the collation succeeds...
stephan [Mon, 26 Dec 2022 14:25:21 +0000 (14:25 +0000)] 
Only add an on-db-close cleanup entry for collations if adding the collation succeeds and xCompare is-a JS function.

FossilOrigin-Name: 18a5480f1e0dca55703b43fa17685a4cc577cab8841ce47c807af02348ad85ee

2 years agoExtend [0e69b2c379e618] to support uninstalling stale JS-to-WASM function pointers...
stephan [Mon, 26 Dec 2022 13:45:10 +0000 (13:45 +0000)] 
Extend [0e69b2c379e618] to support uninstalling stale JS-to-WASM function pointers added on behalf of UDFs.

FossilOrigin-Name: 7a46e629dcbf97ae037c5abb39306af7ad55f1910c1e962373e09d88d8bd5a33

2 years agoAdd JS infrastructure which enables sqlite3.capi.sqlite3_close_v2() to clean up stale...
stephan [Mon, 26 Dec 2022 13:00:58 +0000 (13:00 +0000)] 
Add JS infrastructure which enables sqlite3.capi.sqlite3_close_v2() to clean up stale JS-to-WASM collation function conversions installed on behalf of a given db handle. The same for UDF mappings is TODO.

FossilOrigin-Name: 0e69b2c379e61893c7db8a9c9d270650f2bd63b6cea30811d41136392a2e4f04

2 years agoReimplement sqlite3.capi.sqlite3_close_v2() and sqlite3session_delete() as a hand...
stephan [Mon, 26 Dec 2022 11:13:09 +0000 (11:13 +0000)] 
Reimplement sqlite3.capi.sqlite3_close_v2() and sqlite3session_delete() as a hand-written bindings so that they can attempt to clean up certain (potentially) FuncPtrAdapter-installed functions before closing. Correct the create-function family of JS-to-function-pointer automated conversions to include the UDF's arity as part of the mapping's key so that (un)binding a UDF to different functions for different arities works (and add tests confirming it). Correct a broken doc link in module-symbols.html.

FossilOrigin-Name: 60b262ef0f57b162c2566b12e70685a92afb00b441332ea7a6540fcb188cc7af

2 years agoGrammar fixup in comment re SQLITE_TRACE_PROFILE trace event.
larrybr [Mon, 26 Dec 2022 01:44:04 +0000 (01:44 +0000)] 
Grammar fixup in comment re SQLITE_TRACE_PROFILE trace event.

FossilOrigin-Name: b6dc80cbf63ed521ef8f878fba24b0110d61813763ca7bfbcfb0a145656b300a

2 years agomodule-symbols.html: add some missing links to C-side API docs for recently-added...
stephan [Sun, 25 Dec 2022 23:54:16 +0000 (23:54 +0000)] 
module-symbols.html: add some missing links to C-side API docs for recently-added JS counterparts.

FossilOrigin-Name: 7d4f4e96f33f37b0774cb8df22ed1ef33062534653a4fadf606704b855e28c49

2 years agoUpdate JS worker #1 API and related tests for recent API changes.
stephan [Sun, 25 Dec 2022 23:45:59 +0000 (23:45 +0000)] 
Update JS worker #1 API and related tests for recent API changes.

FossilOrigin-Name: d797e183e96e04520636865204c02307b751fdc2949a04587de9259a1733e37b

2 years agoRename the new wasm.irSizeof() to sizeofIR() because that seems clearer.
stephan [Sun, 25 Dec 2022 22:55:45 +0000 (22:55 +0000)] 
Rename the new wasm.irSizeof() to sizeofIR() because that seems clearer.

FossilOrigin-Name: 49a83ca3ba46d3ae8021fbdd72b48ce9181eea6845fa7bb7aa83b16fad1728be

2 years agoMinor internal API doc correction and extend a test for oo1.DB.selectValues().
stephan [Sun, 25 Dec 2022 22:49:55 +0000 (22:49 +0000)] 
Minor internal API doc correction and extend a test for oo1.DB.selectValues().

FossilOrigin-Name: b7295b1ca700945ae4e89be69f954dce9960e8975664e620898392b2cc78d452

2 years agoAdd sqlite3.oo1.DB.selectValues(). Correct a logic error which could cause DB.selectV...
stephan [Sun, 25 Dec 2022 22:44:13 +0000 (22:44 +0000)] 
Add sqlite3.oo1.DB.selectValues(). Correct a logic error which could cause DB.selectValue(), DB.selectArray(), and DB.selectObject() to fail to finalize a statement if a call to bind() failed. Add more session API tests.

FossilOrigin-Name: 6adc8a10146190037d55d3328d2f78aa5233559f88d4aa70fbbf9e10145b9b6c

2 years agoMerge wasm-session-api branch into trunk, adding the session API to the JS/WASM compo...
stephan [Sun, 25 Dec 2022 20:25:44 +0000 (20:25 +0000)] 
Merge wasm-session-api branch into trunk, adding the session API to the JS/WASM components.

FossilOrigin-Name: dfb8b651fa4faef2d3307a05512cdc479398484c3a59715827179c363861a777

2 years agoAdd basic session API JS tests. wasm-session-api
stephan [Sun, 25 Dec 2022 20:22:20 +0000 (20:22 +0000)] 
Add basic session API JS tests.

FossilOrigin-Name: 64e032602cf420851c8029603c76f5512000d1c9a40fa7a545528d69d6d1d4cc

2 years agoAdd sqlite3.wasm.irSizeof() and extend certain allocation functions to make use of it.
stephan [Sun, 25 Dec 2022 20:05:11 +0000 (20:05 +0000)] 
Add sqlite3.wasm.irSizeof() and extend certain allocation functions to make use of it.

FossilOrigin-Name: 1cbc7b1875e8611b9db7a747b4c9499501450deaf90c929d212511837d6f72b6

2 years agoAdd tests confirming that JS sqlite3_exec()'s SQL argument participates in the 'strin...
stephan [Sun, 25 Dec 2022 17:12:24 +0000 (17:12 +0000)] 
Add tests confirming that JS sqlite3_exec()'s SQL argument participates in the 'string:flexible' type conversion.

FossilOrigin-Name: 926d0c61a391c601adc2804d3fdaa8b667ae2abd565939cddfa12d5151b098f8

2 years agoReplace the "manual" implementation of sqlite3.capi.sqlite3_exec() with a briefer...
stephan [Sun, 25 Dec 2022 17:09:34 +0000 (17:09 +0000)] 
Replace the "manual" implementation of sqlite3.capi.sqlite3_exec() with a briefer "automated" one via the [7f9ace1b11a67] feature addition. Minor code-adjacent internal cleanups.

FossilOrigin-Name: 4888957baf18c6763f959fbba998a74156ff656368779107f502b926e9e9d949

2 years agoRemove duplicated JS binding of sqlite3changeset_apply_v2().
stephan [Sun, 25 Dec 2022 16:20:05 +0000 (16:20 +0000)] 
Remove duplicated JS binding of sqlite3changeset_apply_v2().

FossilOrigin-Name: 2e8336b6e1cba89dbcc11d6316e39c929bf8b018a18b92efc232abd47e0a5cc6

2 years agoAdd the address of the associated db handle to the sqlite3_trace_v2() output originat...
stephan [Sun, 25 Dec 2022 15:28:19 +0000 (15:28 +0000)] 
Add the address of the associated db handle to the sqlite3_trace_v2() output originating from sqlite3.oo1.DB's trace flag.

FossilOrigin-Name: 0a36568c5a3db56a8ad23fd8abc672c5a7f1abed55984d902842ffd3ebb816e8

2 years agoUpdate the session-related JS bindings to account for today's internal API changes.
stephan [Sun, 25 Dec 2022 15:14:10 +0000 (15:14 +0000)] 
Update the session-related JS bindings to account for today's internal API changes.

FossilOrigin-Name: be63944d4114f53f2dab65bc6c1b85f4766a4ea14ee7b2690acde239a2a0bf54

2 years agoMerge trunk into wasm-session-api branch.
stephan [Sun, 25 Dec 2022 14:13:52 +0000 (14:13 +0000)] 
Merge trunk into wasm-session-api branch.

FossilOrigin-Name: 7f8f1acd82be7dc2eb2147d96299b1b443e86774dfe0b0a8d32669a0500fc9c6

2 years agoAdd missing sqlite3_context_db_handle() JS binding. Reimplement sqlite3_set_authorize...
stephan [Sun, 25 Dec 2022 14:04:06 +0000 (14:04 +0000)] 
Add missing sqlite3_context_db_handle() JS binding. Reimplement sqlite3_set_authorizer() and sqlite3_set_auxdata() JS bindings to take advantage of [7f9ace1b11a67]. Teach FuncPtrAdapter to emit a console.warn() message if it is invoked after the library is bootstrapped, the goal being to inform users that it's an internal API and should not be invoked from client-side code.

FossilOrigin-Name: 8e3d4f6294037396e388ec21abb18bf0201a6bec6ff004730cc5d11b705a6d2b

2 years agoEnhance sqlite3.wasm.xWrap.FuncPtrAdapter to be able to handle sqlite3_create_functio...
stephan [Sun, 25 Dec 2022 12:51:53 +0000 (12:51 +0000)] 
Enhance sqlite3.wasm.xWrap.FuncPtrAdapter to be able to handle sqlite3_create_function() and friends and reimplement those bindings to use this feature (this will also simplify certain session API bindings). Interal API changes only with no client-side breakage.

FossilOrigin-Name: 7f9ace1b11a6703031790af9cf08ab25df25850a86e6ca2a7aeaefd8aa395e6d

2 years agoSimplify the signature for JS functions, as opposed to function pointers, passed...
stephan [Sun, 25 Dec 2022 10:22:27 +0000 (10:22 +0000)] 
Simplify the signature for JS functions, as opposed to function pointers, passed to sqlite3_exec(), eliminating the superfluous initial two arguments. Update related tests to demonstrate both function-passing approaches.

FossilOrigin-Name: e7cc70cdda426863f82ebe1305f4c3053824c5a605b1516b0b7f205f1203178b

2 years agoReplace JS-side use of SQLITE_TRANSIENT with the new SQLITE_WASM_DEALLOC, reducing...
stephan [Sat, 24 Dec 2022 15:28:45 +0000 (15:28 +0000)] 
Replace JS-side use of SQLITE_TRANSIENT with the new SQLITE_WASM_DEALLOC, reducing the amount allocation/copying required by sqlite3_bind_blob/text() and sqlite3_result_blob/text(). Remove the 'experimental' log message from the virtual table tests.

FossilOrigin-Name: ffe2999a91a7dec129a38afb675fe9e539d7c347886bfea85cba55f6367d54d1

2 years agoExtend oo1.Stmt.bind() to accept ArrayBuffer instances to bind as blobs.
stephan [Sat, 24 Dec 2022 14:16:02 +0000 (14:16 +0000)] 
Extend oo1.Stmt.bind() to accept ArrayBuffer instances to bind as blobs.

FossilOrigin-Name: f76bd30137fbff981625ffcb28cddd5e8651803dfc3f2d8d7801ead33496311d

2 years agoAdd a test for the (failure) case of client-level code calling the oo1.Stmt construct...
stephan [Sat, 24 Dec 2022 13:46:27 +0000 (13:46 +0000)] 
Add a test for the (failure) case of client-level code calling the oo1.Stmt constructor directly.

FossilOrigin-Name: 6a37874db04f3b4842994ad17fc74cb6222f8ea0fa1315a23aff1ffa69bcd12a

2 years agooo1.DB.exec() rowMode="$columnName": a minor optimization and a preemtive fix for...
stephan [Sat, 24 Dec 2022 11:16:49 +0000 (11:16 +0000)] 
oo1.DB.exec() rowMode="$columnName": a minor optimization and a preemtive fix for a hypothetical corner-case bug.

FossilOrigin-Name: 0b2df22bd92914708ad0851d0401ad2cf3edb1968b88b2c07fe40792a731c5ba

2 years agoIf sqlite3.oo1.DB.exec()'s callback returns a literal false, stop step()ing over...
stephan [Sat, 24 Dec 2022 01:59:42 +0000 (01:59 +0000)] 
If sqlite3.oo1.DB.exec()'s callback returns a literal false, stop step()ing over results as if the end of the result set had been reached. Unrelated minor code-adjacent cleanups.

FossilOrigin-Name: 33a58c8ece3b37a8edc3434af36643e2d489a53a672d778c5b77e66666045c30

2 years agoReimplement JS's sqlite3_bind_text/blob() with hand-written bindings to permit more...
stephan [Fri, 23 Dec 2022 23:46:33 +0000 (23:46 +0000)] 
Reimplement JS's sqlite3_bind_text/blob() with hand-written bindings to permit more flexible inputs. Add automated JS-to-C function conversion to sqlite3_busy_handler(). sqlite3.wasm.xWrap()'s '*' argument conversion no longer treats JS strings as C-strings: those conversions require explicit opt-in via the 'string' converter (or equivalent).

FossilOrigin-Name: 96ba44946b3e88b6aa305c4363cbbfeab0d9120b3d8c4d2587d68b9293ea7cc6

2 years agoMerge trunk into wasm-session-api branch.
stephan [Fri, 23 Dec 2022 21:23:26 +0000 (21:23 +0000)] 
Merge trunk into wasm-session-api branch.

FossilOrigin-Name: 6cdb036d8e8c5ddb0c6578aeefe318e74d7a90228e57b9f9047057dae3252963

2 years agoInternal JS cleanups. Correct part of [ac136925a645] to account for the eTextRep...
stephan [Fri, 23 Dec 2022 21:10:49 +0000 (21:10 +0000)] 
Internal JS cleanups. Correct part of [ac136925a645] to account for the eTextRep flag being able to hold flags other than the encoding.

FossilOrigin-Name: 1dfc03ab1e0269807beef27bf884ab9ead7553d4a5f6ed213f812d7fa052045f

2 years agoMerge trunk into wasm-session-api branch.
stephan [Fri, 23 Dec 2022 19:33:22 +0000 (19:33 +0000)] 
Merge trunk into wasm-session-api branch.

FossilOrigin-Name: f1decc831fe0dc8523956e74474d9663852b0e5b56240dd8504952726e713a97

2 years agoConsolidate/unify how the JS bindings of the create_function/collation family of...
stephan [Fri, 23 Dec 2022 19:16:45 +0000 (19:16 +0000)] 
Consolidate/unify how the JS bindings of the create_function/collation family of functions react to a non-UTF8 encoding: they now treat a falsy value as SQLITE_UTF8 and fail with SQLITE_FORMAT for an invalid encoding.

FossilOrigin-Name: deffe6fb211410fa1a1fbca824a52b4e09b54d4b4f4a4e12d71c9e4b7e8606fb

2 years agoAdd base64() and base85() to shell sources for the non-configured makefiles, too.
larrybr [Fri, 23 Dec 2022 19:11:57 +0000 (19:11 +0000)] 
Add base64() and base85() to shell sources for the non-configured makefiles, too.

FossilOrigin-Name: ac136925a6453d3e53c7a380911dfeac5706d49f936294289f6ea0b74e26e18a

2 years agoAdd base64() and base85() text/blob conversions to the CLI.
larrybr [Fri, 23 Dec 2022 19:04:59 +0000 (19:04 +0000)] 
Add base64() and base85() text/blob conversions to the CLI.

FossilOrigin-Name: 4bc98a2d9520efa9b80142163cbfab72a5f2fe9854cd6ba8291dcefdb872e657

2 years agoExplicitly omit threading and extension loading from the ext/wasm/c-pp binary build...
stephan [Fri, 23 Dec 2022 18:38:14 +0000 (18:38 +0000)] 
Explicitly omit threading and extension loading from the ext/wasm/c-pp binary build to avoid a link error on some systems.

FossilOrigin-Name: 5d9a14715c25efcd81cadafabf03aad7213251bd1b3dc181939c2dba8d942fb6

2 years agoAdd SQLITE_ENABLE_MATH_FUNCTIONS to the list of feature flags in sqlite3-wasm.c.
stephan [Fri, 23 Dec 2022 18:25:48 +0000 (18:25 +0000)] 
Add SQLITE_ENABLE_MATH_FUNCTIONS to the list of feature flags in sqlite3-wasm.c.

FossilOrigin-Name: 58503cd148c9613abfaf7c1386c34806150bd521966864ccbb821ea7dede8e5a

2 years agoCherry-pick [c4dab53b8ea3401abd] for sqlite3.wasm.xWrap() optimizations.
stephan [Fri, 23 Dec 2022 18:19:28 +0000 (18:19 +0000)] 
Cherry-pick [c4dab53b8ea3401abd] for sqlite3.wasm.xWrap() optimizations.

FossilOrigin-Name: 9b97412d3aa791870016ab3c6f565b6a6afa1764f98e969833aec093b9b29919

2 years agoInternal cleanups and minor speed optimizations in the sqlite3.wasm.xWrap() infrastru...
stephan [Fri, 23 Dec 2022 18:14:36 +0000 (18:14 +0000)] 
Internal cleanups and minor speed optimizations in the sqlite3.wasm.xWrap() infrastructure.

FossilOrigin-Name: c4dab53b8ea3401abd57671b8f3cb39fa4431b864d4c4e14ae24592f8d4cba0a

2 years agoFix lots of harmless, nuisance compiler warnings, mostly unused parameter
drh [Fri, 23 Dec 2022 14:49:24 +0000 (14:49 +0000)] 
Fix lots of harmless, nuisance compiler warnings, mostly unused parameter
warnings in extensions.

FossilOrigin-Name: c14bbe1606c1450b709970f922b94a641dfc8f9bd09126501d7dc4db99ea4772

2 years agoAdd sqlite3.capi JS bindings for the sqlite3session_...(), sqlite3changeset_...(...
stephan [Fri, 23 Dec 2022 14:11:54 +0000 (14:11 +0000)] 
Add sqlite3.capi JS bindings for the sqlite3session_...(), sqlite3changeset_...() and sqlite3changegroup_...() APIs, noting that they are completely untested. Aside from missing tests, these bindings reveal a slight string-argument-type shortcoming in the callback function pointer "reverse binding" which should ideally be resolved before publishing them.

FossilOrigin-Name: 0a39172ee134816f5ce17a403b960e9c22bb56efd5bcf77ecde465efe0d88b1d

2 years agoAdditional fixes for yet more completely harmless compiler warnings.
drh [Fri, 23 Dec 2022 11:46:57 +0000 (11:46 +0000)] 
Additional fixes for yet more completely harmless compiler warnings.

FossilOrigin-Name: 7d3772f0bd0e2602fe919573b49001da4e2b9f3874cb0183dea675204afa7abd

2 years agoInitial pieces for binding the session API to JS. Far from complete. See [forum:210e3...
stephan [Fri, 23 Dec 2022 11:46:26 +0000 (11:46 +0000)] 
Initial pieces for binding the session API to JS. Far from complete. See [forum:210e36a1e3 | forum post 210e36a1e3] for the discussion.

FossilOrigin-Name: cd8c100808da1043fcf63555f48f30c90272c48c6627321ceb0a0995b34733d1

2 years agoSquelch a new (and, in this case, harmless) compiler warning.
stephan [Fri, 23 Dec 2022 11:32:06 +0000 (11:32 +0000)] 
Squelch a new (and, in this case, harmless) compiler warning.

FossilOrigin-Name: a02e19dd6ce00492f3d187e3c3c9bde4d9d1ee9a23616e62ea3590eec95652bd

2 years agoAsserts added to ensure that the iCompare variable in the bytecode engine
drh [Thu, 22 Dec 2022 21:32:58 +0000 (21:32 +0000)] 
Asserts added to ensure that the iCompare variable in the bytecode engine
is correctly initialized before it is used.

FossilOrigin-Name: 7b5900a111b9410f7d60c937e5a56304f2f66b94cd0881e94abcc5eedde52514

2 years agoAvoid having to reinitialize Vdbe.pResultRow upon each call to sqlite3_step()
drh [Thu, 22 Dec 2022 19:12:48 +0000 (19:12 +0000)] 
Avoid having to reinitialize Vdbe.pResultRow upon each call to sqlite3_step()
for a small size reduction and performance increase.

FossilOrigin-Name: 6a00d67f5955ab86eea982c27b3a03b680fdf644ec63f49586ade6342a4d64a6

2 years agoRename the Vdbe.pResultSet field to pResultRow in order to better distinguish
drh [Thu, 22 Dec 2022 18:44:39 +0000 (18:44 +0000)] 
Rename the Vdbe.pResultSet field to pResultRow in order to better distinguish
it from other variables with similar names.

FossilOrigin-Name: 1fd6211ef7bd26ed625177bfedfd5153ace547de6a71365ecfa076578d043f1a

2 years agoSmall performance optimization associated with shared cache in the
drh [Thu, 22 Dec 2022 18:35:21 +0000 (18:35 +0000)] 
Small performance optimization associated with shared cache in the
byte-code engine.

FossilOrigin-Name: 3181331c1c0259d5cd274dcb33faba930dae51b1f0fe51e8a0318d9c564b94f9

2 years agoSmall performance optimization on the OP_Insert opcode.
drh [Thu, 22 Dec 2022 17:36:02 +0000 (17:36 +0000)] 
Small performance optimization on the OP_Insert opcode.

FossilOrigin-Name: 781fdcb9ce85aa2844ef8c00cf908f1a87eeff80dadaf73a71f88b4279260e57

2 years agosessionfuzz.c: use lt/gt brackets instead of double-quotes when #including zlib.h...
stephan [Thu, 22 Dec 2022 10:53:08 +0000 (10:53 +0000)] 
sessionfuzz.c: use lt/gt brackets instead of double-quotes when #including zlib.h, as reported in [forum:91a104bd65 | forum post 91a104bd65].

FossilOrigin-Name: 7d7780c350f3239f9c9feb91924a01a4eba31b88060946c766719c9d50c16bcd

2 years agoMore efficient implementation of large precisions on the "%c" format for
drh [Wed, 21 Dec 2022 19:11:56 +0000 (19:11 +0000)] 
More efficient implementation of large precisions on the "%c" format for
the built-in printf().  This is an effort to avoid a reported
timeout on a (ridiculous) query generated by OSSFuzz.

FossilOrigin-Name: 371f9b88387a44a5f820279d79733d1deb7eafc72f320ec47a11679bbdbb49ef

2 years agoEnsure that the expression of a virtual column really is an expression and
drh [Wed, 21 Dec 2022 14:13:49 +0000 (14:13 +0000)] 
Ensure that the expression of a virtual column really is an expression and
not just a reference to another column, as a real expression is necessary for
the indexed expression coverage optimization to work properly.
[forum:/forumpost/07b36e3899a9ae21|Forum thread 07b36e3899a9ae21].

FossilOrigin-Name: 40549bacb3923e439627b0103bedd7da30258b69a46960040f7176e060f51f2f

2 years agoNew WHERETRACE entries for adding and removing objects from the
drh [Wed, 21 Dec 2022 12:18:06 +0000 (12:18 +0000)] 
New WHERETRACE entries for adding and removing objects from the
Parse.pIdxEpr list as part of indexed expression coverage.  Debug and
testing changes only - no affect on production builds.

FossilOrigin-Name: 4dc438a951bdbe27fbd5ee7cfb907e30ec0efbf8ce02109f18997cc221e0ad3b

2 years agoAdd about 150 new fuzzer cases to test/fuzzdata8.db.
drh [Tue, 20 Dec 2022 15:22:57 +0000 (15:22 +0000)] 
Add about 150 new fuzzer cases to test/fuzzdata8.db.

FossilOrigin-Name: a8d8d9cd65e64e0a492a80c00050f54ab75de82651230049f65c9d2b78a164f2

2 years agoAdd ALWAYS() to always-true branches in the locking logic of the memdb VFS.
drh [Tue, 20 Dec 2022 15:02:44 +0000 (15:02 +0000)] 
Add ALWAYS() to always-true branches in the locking logic of the memdb VFS.

FossilOrigin-Name: 01fa760212a40cec5b43da99b917ab6389561c96d0567a9f67f516bdfa8f5f3d

2 years agoImprovement to the dbsqlfuzz fix of [f113eebdbe68246f].
drh [Tue, 20 Dec 2022 14:02:35 +0000 (14:02 +0000)] 
Improvement to the dbsqlfuzz fix of [f113eebdbe68246f].

FossilOrigin-Name: 79d62956f206cb2987891d4ba5985cece21fc8c8c1158f46c2951f65c0dcf4e8

2 years agoDo not use indexed expressions to replace the expression being indexed on a
drh [Tue, 20 Dec 2022 01:48:43 +0000 (01:48 +0000)] 
Do not use indexed expressions to replace the expression being indexed on a
RIGHT JOIN as that leads to problems, as shown by
dbsqlfuzz a644e70d7683a7ca59c71861a153c1dccf8850b9.

FossilOrigin-Name: f113eebdbe68246fd38d640b0cdf0fd73ab5d2abad9226274dfa2e41fe286bf0

2 years agoFix a faulty assert() in fts5.
dan [Mon, 19 Dec 2022 20:14:22 +0000 (20:14 +0000)] 
Fix a faulty assert() in fts5.

FossilOrigin-Name: 569018170b928cadfa0745db631981084e595d90a8c3d1e236c42adae161018f

2 years agoRemove an unused variable.
drh [Mon, 19 Dec 2022 19:04:32 +0000 (19:04 +0000)] 
Remove an unused variable.

FossilOrigin-Name: 5c4d94147d290d4a68ac0d5ae8f9e6bbfe7522ad58b2298e387f8c699048e111

2 years agoMinor sed script tweak in the wasm GNUmakefile for BSD portability, as reported in...
stephan [Mon, 19 Dec 2022 14:46:17 +0000 (14:46 +0000)] 
Minor sed script tweak in the wasm GNUmakefile for BSD portability, as reported in [forum:4a97813fcbd4f63e|forum post 4a97813fcbd4f63e].

FossilOrigin-Name: 49efcf6d9f894c28a3ffb350a7c5f0ffd12c7cbf61f5c27f76eb7f777b8a24c5

2 years agoUpdate test-opfs-vfs.js to account for recent API changes. Reported in [forum:4a97813...
stephan [Mon, 19 Dec 2022 14:43:17 +0000 (14:43 +0000)] 
Update test-opfs-vfs.js to account for recent API changes. Reported in [forum:4a97813fcbd4f63e|forum post 4a97813fcbd4f63e].

FossilOrigin-Name: 2a636746360c109f1d39fc352b9f1c83a739735520252a264c774e848597475d

2 years agoFix an assert() in fts5. Simplify memdb xLock/xUnlock some.
dan [Mon, 19 Dec 2022 14:06:36 +0000 (14:06 +0000)] 
Fix an assert() in fts5. Simplify memdb xLock/xUnlock some.

FossilOrigin-Name: 7fe158aa8071acadd959b2b4a4b66e8a7f7eecec207ba681abf516b0457c2921

2 years agoFix a minor problem with the printAggInfo() routine (used on during
drh [Mon, 19 Dec 2022 12:25:41 +0000 (12:25 +0000)] 
Fix a minor problem with the printAggInfo() routine (used on during
debugging).

FossilOrigin-Name: c8329967f32efedfc8244631a5682f7f7d21c1b3fcd7d5cc67716555716d4926

2 years agoJS namespace updates in ext/wasm/api/README.md.
stephan [Sun, 18 Dec 2022 12:00:10 +0000 (12:00 +0000)] 
JS namespace updates in ext/wasm/api/README.md.

FossilOrigin-Name: ca59e736b1839c30a820dd5795b4534e1565387ef701423451ea4c503a9701ea

2 years agoFix an unnecessarily restrictive assert() in the aggregate logic.
drh [Sat, 17 Dec 2022 22:10:05 +0000 (22:10 +0000)] 
Fix an unnecessarily restrictive assert() in the aggregate logic.
dbsqlfuzz 699bee2aa26c5dc84afabf6894685c316d936485

FossilOrigin-Name: 8cc0af81ad03ac65f230d78cf97e1448c2d93d556467ea3ef700d5abd4a3890c