]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
2 years agoIf OP_Rewind has P2 of zero, that is an assertion that the table is never code-generator-20230111
drh [Wed, 11 Jan 2023 17:50:24 +0000 (17:50 +0000)] 
If OP_Rewind has P2 of zero, that is an assertion that the table is never
empty.  This fixes a false-positive in the out-of-subroutine jump detection
logic added in version 3.39.0, and which was causing the assertion on the
previous check-in.

FossilOrigin-Name: 33fd9997ebb88f0d78522c036e75aef08015d31d28b1cbee08ae7c4cd5ecc6aa

2 years agoAdd an assert() to the byte-code engine that goes off if the OP_Halt opcode
drh [Wed, 11 Jan 2023 16:44:57 +0000 (16:44 +0000)] 
Add an assert() to the byte-code engine that goes off if the OP_Halt opcode
is invoked with SQLITE_INTERNAL.  This causes the RIGHT JOIN error
"Opcode jumps to ... which is outside the subroutine ..." to fail immediately,
causing it to come more readily to tester's attention.  There is at least
one testcase in test/fuzzdata8.db that asserts due to this change.

FossilOrigin-Name: b8f994414285264f4f7c472dfad646a061fc3580b754eac0f20080c24ecc256d

2 years agoImproved progress-handler and interrupt detection during PRAGMA integrity_check.
drh [Wed, 11 Jan 2023 16:17:31 +0000 (16:17 +0000)] 
Improved progress-handler and interrupt detection during PRAGMA integrity_check.

FossilOrigin-Name: 6db42780a9e530bcc94490cc6080536309666dc13523272d1799d6661137e908

2 years agoAdd a new sqlite3_is_interrupted() interface that can be used by long-running
drh [Wed, 11 Jan 2023 00:27:06 +0000 (00:27 +0000)] 
Add a new sqlite3_is_interrupted() interface that can be used by long-running
app-defined functions and similar to see if they need to exit early due to
an sqlite3_interrupt() call.

FossilOrigin-Name: d030f341369b7f32789cbcf3d0ad9a2ac5cad99a56dac7dfe68b7f06dc339b17

2 years agoWhen computing the datatypes for columns in a view, use the same datatype name
drh [Tue, 10 Jan 2023 19:57:26 +0000 (19:57 +0000)] 
When computing the datatypes for columns in a view, use the same datatype name
as the underlying table if such is available and is consistent with
the computed affinity of the column.
[forum:/forumpost/7fb1fe9dcf310ef5|Forum thread 7fb1fe9dcf310ef5].

FossilOrigin-Name: 497a98363fd1ed079544620ec5d0883f987ed03013131542741c93d7568e8568

2 years agoFix handling of unix paths that contain ".." components such that "/" is considered...
dan [Tue, 10 Jan 2023 15:07:18 +0000 (15:07 +0000)] 
Fix handling of unix paths that contain ".." components such that "/" is considered its own parent directory.

FossilOrigin-Name: b829dd1b976454619ca04c69aec5ebb5a2286772f4267b82ab2ea5fdb81ccd41

2 years agoImprovements to the SQLITE_DIRECTONLY documentation.
drh [Tue, 10 Jan 2023 14:33:26 +0000 (14:33 +0000)] 
Improvements to the SQLITE_DIRECTONLY documentation.

FossilOrigin-Name: b277ba40a8b0acea15bd73036d1c86fb5187f047ec8500ebc88c738ea3dbd118

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