]>
git.ipfire.org Git - thirdparty/sqlite.git/log
drh [Tue, 28 Nov 2023 13:35:53 +0000 (13:35 +0000)]
drh [Tue, 28 Nov 2023 12:28:28 +0000 (12:28 +0000)]
The json_patch() code for JSONB compiles and works sometimes, but there are
still issues. Incremental check-in.
FossilOrigin-Name:
e0099464a0045a04f4ccf29bc2b8325fc8c7f39ccf4847e74818f928c9153588
drh [Tue, 28 Nov 2023 00:27:58 +0000 (00:27 +0000)]
More aggressive use of jsonBlobEdit(). Improvements to the MergePatch
implementation sketch.
FossilOrigin-Name:
fbca9570fd2e1465739e4d3a8d9bb40fad594fd78ab49b2cb34efa27ebdd8361
drh [Mon, 27 Nov 2023 23:46:12 +0000 (23:46 +0000)]
Add untested (#ifdefed-out) code for the MergePatch algorithm against JSONB.
Add (and test) the jsonBlobEdit() routine that is needed by the new MergePatch.
FossilOrigin-Name:
4d353387fc10e1038cfdd86e66007bf728c231a928e588897bbee0fbfe76f225
drh [Mon, 27 Nov 2023 17:13:18 +0000 (17:13 +0000)]
Enhance the (SQLITE_DEBUG-only) json_parse() routine so that it shows a
decoding of JSONB when given a BLOB argument.
FossilOrigin-Name:
af267868562e0799ad691dccad05f17afbc34d609eede8c55f57d209290246ef
drh [Mon, 27 Nov 2023 15:57:11 +0000 (15:57 +0000)]
Give the json_valid() function an optional second argument that determines
what is meant by "valid".
FossilOrigin-Name:
a4e19ad43dac81e7655ec03ff69bb99d1d02b0c227034c90fb41415fd4793fe3
drh [Mon, 27 Nov 2023 12:36:29 +0000 (12:36 +0000)]
Convert the json_tree() and json_each() virtual tables over to use JSONB has
their internal representation.
FossilOrigin-Name:
ec18caa3f7790b780dde66c1ccbb6eb09d2f1507629cc45955fc1b08380b4017
drh [Mon, 27 Nov 2023 12:30:55 +0000 (12:30 +0000)]
drh [Sun, 26 Nov 2023 00:56:40 +0000 (00:56 +0000)]
drh [Sun, 26 Nov 2023 00:48:37 +0000 (00:48 +0000)]
Same results as the legacy JsonNode implementation on a small set of test cases.
FossilOrigin-Name:
c3da4b079a1a15a4c0b1a6e71f876648b1d9eb32eddc67b9946c2475c7b6d085
drh [Sat, 25 Nov 2023 23:00:50 +0000 (23:00 +0000)]
Remove unused elements from the json_tree() cursor.
FossilOrigin-Name:
914a50117d477b2cd30d58388fb8d1b71ff7ff6842ba025f38efc6e9647d06d0
drh [Sat, 25 Nov 2023 20:59:03 +0000 (20:59 +0000)]
Remove the vestigal JsonNode logic from json_tree() and json_each().
FossilOrigin-Name:
66c2ab9ebbf90477742e6be0d30e061d827c409de038f2a5b73479ed9448c4a6
drh [Sat, 25 Nov 2023 19:28:44 +0000 (19:28 +0000)]
Almost working. Path is still not exactly right when Root is defined on
json_tree().
FossilOrigin-Name:
92258246916a9c0d72785964513113848a850dec78bdade8b3f274e410df4e7e
drh [Sat, 25 Nov 2023 18:11:11 +0000 (18:11 +0000)]
Generate the fullkey and path columns of json_tree().
FossilOrigin-Name:
ffaa468ab8871906121df9ee5ef3dc00129a0086ed9c18831ecda69bf7f71455
drh [Sat, 25 Nov 2023 13:40:19 +0000 (13:40 +0000)]
Handle the path argument to json_tree() and json_each().
FossilOrigin-Name:
fded888469565b2a4687185a926bd23fccfbf167c8bebe6c10696fc7f972f41e
drh [Fri, 24 Nov 2023 21:57:38 +0000 (21:57 +0000)]
Continuing work on json_tree() against a JSONB.
FossilOrigin-Name:
3df891cb11feee65e239ee2506eda34a9688341f05210d7c2e25a05338cb71ad
drh [Fri, 24 Nov 2023 18:44:00 +0000 (18:44 +0000)]
Incremental progress toward getting json_each() and json_tree() to work
directly off of a JSONB blob.
FossilOrigin-Name:
f8cab41b3bc65af6ff34b481db693d640ea025d09463d50b8e56d855e2abc913
drh [Fri, 24 Nov 2023 14:25:56 +0000 (14:25 +0000)]
Fix jsonParseReset() to properly clear the JsonParse.aBlob element.
FossilOrigin-Name:
ab2644aacf4757a51cf62e05cff6711a0a3605d60502a3dd310887df1b993545
drh [Fri, 24 Nov 2023 14:03:20 +0000 (14:03 +0000)]
Omit precompiled binaries from the source tree.
FossilOrigin-Name:
7dbc2f496d7a362460bb4c262ecafe5f30e35a8744861163d12c996365c2142f
drh [Fri, 24 Nov 2023 14:01:56 +0000 (14:01 +0000)]
Omit the precompiled binary from the source tree.
FossilOrigin-Name:
4ff103d294b79cf7734e87e94e9d88c0e9f0b087cbb352e6da2f0a3a6b268f46
drh [Fri, 24 Nov 2023 13:41:20 +0000 (13:41 +0000)]
Merge the latest trunk enhancements and fixes into the jsonb branch.
FossilOrigin-Name:
a838ebcbbd9f554fd84a1d3176fb572faaef7d0ec0675f1a5bf9430865dafae0
larrybr [Fri, 24 Nov 2023 13:26:42 +0000 (13:26 +0000)]
CLI .output/.once to not redirect ".timer on" results.
FossilOrigin-Name:
ce766ed51f772a960d0b7a52c113b55c7ae90ef35050496d8e2a77547eab1a4d
dan [Thu, 23 Nov 2023 11:18:06 +0000 (11:18 +0000)]
Fix an fts5 problem that could occur when mixing regular and secure delete operations on a single table.
FossilOrigin-Name:
8eb3f40021994f0d25ef9d246873796c84886e5951bb8ab991e1e2df31998484
larrybr [Thu, 23 Nov 2023 07:08:49 +0000 (07:08 +0000)]
Fix output redirect bug reported in [forum:/forumposts/
cbf4933cfeee74bb |the forum].
FossilOrigin-Name:
ce542fee6f0150bbd13505dcd26b21a9d1d23eb2dc8e78e63f9da6b4298ec028
stephan [Wed, 22 Nov 2023 22:59:28 +0000 (22:59 +0000)]
Minor doc fix in src/betreeInt.h, prompted by an email report. No code changes.
FossilOrigin-Name:
30d49aaed20454fe006e2f89db58f0c0b2433c99b2676a0b9583f56b7adb7fdb
larrybr [Wed, 22 Nov 2023 21:24:50 +0000 (21:24 +0000)]
For CLI build with unused function warnings on, #ifdef out a console I/O function, fPutbUtf8().
FossilOrigin-Name:
da36f90d94b3b55de71aa7965421ea850ac677e9e63d60744633c4dc59448de4
stephan [Wed, 22 Nov 2023 17:11:39 +0000 (17:11 +0000)]
Correct the URL for loading sqlite3-worker1-bundler-friendly.mjs from sqlite3-worker1-promiser-bundler-friendly.js, so that the promiser can be used in bundler-using environments. Problem reported via email.
FossilOrigin-Name:
753a75218913c3b9c7ec5438387107369c34d1775d68b04d19ae18197e558605
drh [Tue, 21 Nov 2023 22:36:32 +0000 (22:36 +0000)]
Inserts invalid JSONB should return "malformed JSON", not a json path error.
FossilOrigin-Name:
306ee66fbd0231a9f5b229e5630d5cc66c9cf08b466d2d9204e79e1f44a16374
drh [Tue, 21 Nov 2023 20:13:08 +0000 (20:13 +0000)]
Direct editing of JSONB using json_insert() and json_set().
FossilOrigin-Name:
fffb7a9538838e26991e6f16ea3138346a30c33ea6c3d3834680ee6d1f6eece2
drh [Tue, 21 Nov 2023 19:05:22 +0000 (19:05 +0000)]
Correct blob-to-text rendering in some corner cases.
FossilOrigin-Name:
7822e0e59f9b611fe6289cc762b0aff61f9b87c3a82c60de110f447589a2c125
larrybr [Tue, 21 Nov 2023 18:26:06 +0000 (18:26 +0000)]
drh [Tue, 21 Nov 2023 18:23:43 +0000 (18:23 +0000)]
Fix the translation of JSON5 numeric values from BLOB into text.
FossilOrigin-Name:
40c4fb441f220982e4d61fd42597cf18546791a302fbcc8eec2eed29ee15ef35
drh [Tue, 21 Nov 2023 17:54:55 +0000 (17:54 +0000)]
Merge all recent trunk fixes and enhancements into the jsonb branch.
FossilOrigin-Name:
6d78d50ed2357e6c943c1ef97b1d2ea0902cbadef90c2c35dccdbdc2bdf8702f
drh [Tue, 21 Nov 2023 17:51:58 +0000 (17:51 +0000)]
Make edits directly to the JSONB BLOB when the input to json_replace()
is a JSONB.
FossilOrigin-Name:
d69c6acef54a81f46a97a05d443fe648635b4b70772069d6705ef829b718e985
larrybr [Tue, 21 Nov 2023 15:55:31 +0000 (15:55 +0000)]
Sync w/trunk as pre-merge-to-trunk sanity check.
FossilOrigin-Name:
448d6a1182d29940d5d34be2ce67df5601b688cd902dbbe97e95073f982a49ce
drh [Tue, 21 Nov 2023 12:02:04 +0000 (12:02 +0000)]
Fix the trace3-4.4 test to be more rebust against timing quirks.
FossilOrigin-Name:
8936daa08243729d8538bb7288bbefb43f3bd842a0d4b2e8019092f5701c2926
drh [Mon, 20 Nov 2023 15:54:00 +0000 (15:54 +0000)]
Back out an incorrect change to the sqlite3ExprCompareSkip() function that
was added way back on 2019-08-22 for [
44578865fa7baf97 |check-in
44578865fa7ba ]
and which was only today discovered to be incorrect by
[forum:/forumpost/
45ec3d9788 |forum post
45ec3d9788 ].
FossilOrigin-Name:
f5b3eb0fc8936ba274a7654ff6dfa7d4654bd8dbca7f3a5ec1134b0b5260d59d
drh [Mon, 20 Nov 2023 13:06:59 +0000 (13:06 +0000)]
Convert an assert in OP_VCheck into a branch that aborts the opcode, as this
can happen on some very obscure conditions, as discovered by dbsqlfuzz.
Test case in TH3.
FossilOrigin-Name:
7946c79567b0ccd3a00d12390e99896d7dc11407d0b52bc39338a16a493f56f6
dan [Mon, 20 Nov 2023 11:40:18 +0000 (11:40 +0000)]
Fix an assert() in fts5 that could be true following an OOM or IO error in contentless-delete mode.
FossilOrigin-Name:
3fe89238c31ca163d021ef1fecde594328815aaba7053fef9e9c789562a62f45
larrybr [Mon, 20 Nov 2023 00:21:24 +0000 (00:21 +0000)]
larrybr [Mon, 20 Nov 2023 00:20:56 +0000 (00:20 +0000)]
mistachkin [Sat, 18 Nov 2023 18:36:26 +0000 (18:36 +0000)]
Correct conditional compilation issue seen with MSVC in the Win32 mutex subsystem.
FossilOrigin-Name:
6f8f4bfe607f1405d313bb88a33490621002f63e8c02c980f4c083630ad3a6d2
dan [Sat, 18 Nov 2023 17:20:04 +0000 (17:20 +0000)]
When ENABLE_SETLK is defined, avoid ever blocking on the lock mutex in os_unix.c when requesting an exclusive lock.
FossilOrigin-Name:
eb36d475e91bfdbf4a18b6fd9751fbcecf15d960dcd1c00d2d18b5bf1d7503fe
drh [Sat, 18 Nov 2023 12:06:21 +0000 (12:06 +0000)]
Adjust an assert() in fts5WritePoslistData() so that it only applies if there
have been no prior errors.
dbsqlfuzz
25dca9b2568f67dc78a0e32ff280133fe71994bd .
FossilOrigin-Name:
257cdbab90c6db8ccc9a8fd5df556b69c3a35a329d39cd4642c792d7359a54a5
drh [Sat, 18 Nov 2023 11:23:01 +0000 (11:23 +0000)]
dan [Fri, 17 Nov 2023 19:01:38 +0000 (19:01 +0000)]
When SQLITE_ENABLE_SETLK_TIMEOUT is defined, use a separate mutex in os_unix.c for each shm locking slot.
FossilOrigin-Name:
64691df980cdf73ddc00aabe15baa6c018e1d76b0e87f55ab33a9348fd5680bd
drh [Fri, 17 Nov 2023 17:55:03 +0000 (17:55 +0000)]
Add the new "run-fuzzcheck" target on the autoconf unix makefile. Requires
that FUZZDB be set to the name of the fuzz-data database file.
FossilOrigin-Name:
8fa3915dbfdd9a5b0fcf4d695590b3de7e7d19d2917924186ca889cd60bf0eb9
drh [Fri, 17 Nov 2023 17:25:30 +0000 (17:25 +0000)]
Add an assert() to prove the sqlite3_prepare() always either returns
SQLITE_OK or else leaves *ppStmt set to NULL. See
[forum:/forumpost/
70bb8576c6c084c2 |forum post
70bb8576c6c084c2 ].
FossilOrigin-Name:
feadd4024228e578811447c4b2d2b60780ff3d3681f80ca903585aa7b289d758
dan [Fri, 17 Nov 2023 17:10:37 +0000 (17:10 +0000)]
When SQLITE_ENABLE_SETLK_TIMEOUT is defined, use a separate mutex in os_unix.c for each shm locking slot.
FossilOrigin-Name:
4098df9652d90f2d22d5591d915d672c5413471f7916223510ba6fd932bfdd36
drh [Fri, 17 Nov 2023 17:03:45 +0000 (17:03 +0000)]
Merge the latest trunk enhancements and fixes into the jsonb branch.
FossilOrigin-Name:
162f0509ef27bcd3ec87629640281a71c773e7c3bbd2cd0df76faf481531e7f1
drh [Fri, 17 Nov 2023 12:22:42 +0000 (12:22 +0000)]
Fix harmless compiler warnings in debugging code.
FossilOrigin-Name:
ce6a75622ea5bca517bc6613e738aa670c9e1dd863596220eded5c2379c616c7
drh [Fri, 17 Nov 2023 11:58:26 +0000 (11:58 +0000)]
Fix an incorrect assert() associated with ALTER TABLE where an unknown
aggregate function contains an ORDER BY clause.
dbsqlfuzz
e0900262dadd5c78c2226ad6a435c7f0255be2cd .
FossilOrigin-Name:
a9443dbfbe25e588b4adddde664ddf482f19f71c704fbf356d49cf3a6135e7fb
larrybr [Thu, 16 Nov 2023 18:31:05 +0000 (18:31 +0000)]
Simplify and make more rational how console I/O package features are selected. (Motivated by Fiddle and other command-line utilities to soon use the package.) No substantive code-execution changes.
FossilOrigin-Name:
1cde05877b7e47cb2ab9de26edd5245eb5ff1d91e69b94f3b24944fd4f6ccd3e
drh [Wed, 15 Nov 2023 20:32:06 +0000 (20:32 +0000)]
Both json_remove() jsonb_remove() work on pure JSONB as long as the input
is JSONB.
FossilOrigin-Name:
68d551730be0a3ea9579646ed4836c73554c83ca7f2303b69a18843f1750f1a7
drh [Wed, 15 Nov 2023 19:21:09 +0000 (19:21 +0000)]
Some simple test cases for JSONB direct remove.
FossilOrigin-Name:
8cb4d2cbfc1b5f3c612d85138e66da8735d6589c7538fdf494a761c9b8104f18
dan [Wed, 15 Nov 2023 19:19:04 +0000 (19:19 +0000)]
Changes so that if SQLITE_ENABLE_SETLK_TIMEOUT is defined as 2 instead of 1, all blocking locks are taken for a single millisecond and the default busy-handler invoked as normal.
FossilOrigin-Name:
79e24ec3dd40373bbb93792829b18d9ef40daf19d4606174e36c8e19e61a7529
drh [Wed, 15 Nov 2023 18:55:03 +0000 (18:55 +0000)]
jsonb_remove() now works without having to use a JsonNode parse, assuming
that the input is JSONB.
FossilOrigin-Name:
5207679e929786e577a0553d0d84dda5125456dcde80c0f3156f14f4d8c804cb
drh [Wed, 15 Nov 2023 18:47:31 +0000 (18:47 +0000)]
The jsonb_remove() routine now appears to be working.
FossilOrigin-Name:
e76d48137ea823b7810dc8c3b70eb21adabdd6cfbac36050c85d1375e94be1de
drh [Wed, 15 Nov 2023 16:10:31 +0000 (16:10 +0000)]
Work toward getting jsonb_remove() to work directly on JSONB blobs.
FossilOrigin-Name:
a79ff8e58fcaf718a6fb78e145117f1d6d40d133f31e9752bb9c6d484850a27b
drh [Wed, 15 Nov 2023 14:09:37 +0000 (14:09 +0000)]
Improvements to the description of sqlite3_errmsg() and sqlite3_errstr().
FossilOrigin-Name:
fe5cc4169c5348324e863d3e339de94ed01749a3b9c86aa9adc5e3244bd9d033
drh [Wed, 15 Nov 2023 13:23:40 +0000 (13:23 +0000)]
Merge all the latest enhancements and fixes from trunk into the jsonb branch.
FossilOrigin-Name:
ba91408f4c044feda003ef93784ccefb619f99ab64379ced481ee8e9e890fd41
stephan [Wed, 15 Nov 2023 11:31:49 +0000 (11:31 +0000)]
Fix an exception misuse in test-opfs-vfs.js.
FossilOrigin-Name:
9264955e6e47aa8fc3a6f8bed192a6c12f43de49f7fba2e0cc080e47abedde14
stephan [Wed, 15 Nov 2023 08:59:53 +0000 (08:59 +0000)]
stephan [Wed, 15 Nov 2023 08:29:42 +0000 (08:29 +0000)]
JNI: clear out the sqlite3_context native pointer after calling UDF callbacks which do not have an argv (as was already done for those which have an argv). Add related tests and code commentary.
FossilOrigin-Name:
138f40543b26b2e02e27d830d92e30b12cfef5a8dc3f0b58b39c68e1b3c91cc6
stephan [Wed, 15 Nov 2023 06:28:51 +0000 (06:28 +0000)]
stephan [Wed, 15 Nov 2023 06:10:37 +0000 (06:10 +0000)]
JNI: add the @Experimental annotation and mark all java.nio.ByteBuffer-related methods with it.
FossilOrigin-Name:
0f4b223102e5dc9142c9d2cb8892b8d3cc476e579420028b93d4e12f4cf94d3e
stephan [Wed, 15 Nov 2023 05:08:39 +0000 (05:08 +0000)]
stephan [Wed, 15 Nov 2023 04:55:38 +0000 (04:55 +0000)]
JNI: add CONFIG_LOG and CONFIG_SQLLOG support to wrapper1. Code-adjacent cleanups.
FossilOrigin-Name:
83c49b9e71e5ae8852bab60a6fa630e22164c8efbf074c85450136781d0fffd3
stephan [Wed, 15 Nov 2023 03:02:11 +0000 (03:02 +0000)]
JNI: apply an internal level of API indirection to avoid having to work with massively-mangled names for the various sqlite3_config() overloads.
FossilOrigin-Name:
24f20663b1c4e13ff7d9a89e1df6af2e6f5730e5042ae6479e0a8c1bb846f313
drh [Tue, 14 Nov 2023 16:53:52 +0000 (16:53 +0000)]
stephan [Tue, 14 Nov 2023 14:59:41 +0000 (14:59 +0000)]
JNI: reimplement Tester2.execSql() using the high-level API.
FossilOrigin-Name:
3a69679e41d23a760df349b2471a1ed306c087f9a7a7a2e2cba3723071dee6b2
dan [Tue, 14 Nov 2023 14:50:34 +0000 (14:50 +0000)]
Fix another obscure problem with nested aggregates. dbsqlfuzz
04408efc51 .
FossilOrigin-Name:
6f9eed826f5b3d1cb08402925b406a7fe9b54259af1ba5eba92d4d37fbad628a
stephan [Tue, 14 Nov 2023 14:38:11 +0000 (14:38 +0000)]
JNI: add Sqlite.Stmt.step(boolean) overload which returns the result code of sqlite3_step() unless passed true, in which case it throws for any result other than ROW or DONE. The intent is to simplify handling of LOCKED and BUSY errors.
FossilOrigin-Name:
f4f1cc201a7dc618a66617778ecf58ba60461ae700cb41f5c4abfa26dd0c0ed4
drh [Tue, 14 Nov 2023 13:51:19 +0000 (13:51 +0000)]
Extra PRAGMA vdbe_addoptrace output showing when OP_Column gets translated
into OP_Copy due to using a coroutine instead of a cursor.
FossilOrigin-Name:
eba180e77977acd6f3d4a0e3c99a2ebd4ce2839e9ce30c588929e36d69aa762a
stephan [Tue, 14 Nov 2023 05:33:44 +0000 (05:33 +0000)]
JNI: use ByteBuffer.limit() instead of ByteBuffer.capacity() when figuring out where the logical end of a ByteBuffer is, for reasons explained at length in new code comments. This is unfortunately slower but is the correct way to do it.
FossilOrigin-Name:
51539419edc08ee6c70d8719d0f4d5ad47dd545a7fd9bf01d03a434aabd41d68
stephan [Tue, 14 Nov 2023 04:59:57 +0000 (04:59 +0000)]
JNI: add sqlite3_blob_read_nio_buffer() and iron out the blob/ByteBuffer interface somewhat.
FossilOrigin-Name:
7df317b448a09ae77e2c68cc901fdb6d56a2246c1313f06bebd1f3e53f02c19b
larrybr [Tue, 14 Nov 2023 03:24:43 +0000 (03:24 +0000)]
Add a few asserts into *Put*() functions to catch calls that might cause an address fault.
FossilOrigin-Name:
2341f9b6a48634a94e90e849f579afd07d398c3e0304efccf07d18b41a0e40aa
stephan [Tue, 14 Nov 2023 02:43:30 +0000 (02:43 +0000)]
JNI: change sqlite3_prepare_multi()'s exception-handling semantics to be more C-like and, to support that, add the package-private sqlite3_jni_db_error() method to set the db error state from package-level Java code.
FossilOrigin-Name:
46656b354311ec0a36832af1c4ccb3b6a244aa55cfb3681e25c3f42b13b387dd
stephan [Tue, 14 Nov 2023 01:33:15 +0000 (01:33 +0000)]
JNI: add sqlite3_blob_write() overload which accepts a java.nio.ByteBuffer. Cleanups in adjacent code.
FossilOrigin-Name:
ca32af8542aa2725cc87f54541b19897556f610e4674edf9f22a84e3d4097a82
stephan [Mon, 13 Nov 2023 23:11:10 +0000 (23:11 +0000)]
JNI: add sqlite3_column_nio_buffer() and sqlite3_value_nio_buffer() using an only-slightly roundabout approach to creating properly-sized ByteBuffer objects.
FossilOrigin-Name:
efbc82b218d26b7ca9b881da69d5fd14d22b5211fbd85a835da50e5bfde3d160
stephan [Mon, 13 Nov 2023 18:35:37 +0000 (18:35 +0000)]
JNI: add sqlite3_result_nio_buffer() and tests. Discover that we cannot create sensible sqlite3_column_nio_buffer() or sqlite3_value_nio_buffer() counterparts because of ByteBuffer interface limitations.
FossilOrigin-Name:
44b4df01ff86841fb85b6295cbada422c6ba8a32a420a2e840e2d607b6c90164
larrybr [Mon, 13 Nov 2023 15:59:27 +0000 (15:59 +0000)]
Cure many warnings from gcc, clang and CL.exe.
FossilOrigin-Name:
29ea2a3aadd34facc45a2e9f9a567bac16fca76beb019b879e2611433c85bbb3
stephan [Mon, 13 Nov 2023 14:58:37 +0000 (14:58 +0000)]
JNI: add sqlite3_bind_nio_buffer() and initial tests for binding ByteBuffer objects as blobs on JVMs which have JNI support for nio buffers.
FossilOrigin-Name:
b10ce1ef82d84726fbf6a8f624d6530f84fefb505f7868b4a0ea910fed7a877f
larrybr [Mon, 13 Nov 2023 13:01:01 +0000 (13:01 +0000)]
Fix var-intro after executable code departure from old C.
FossilOrigin-Name:
08996f4fd52f5742e77225ce3da2ac43ea5cc44bb0d8d21126b6d624273842a5
larrybr [Mon, 13 Nov 2023 12:53:47 +0000 (12:53 +0000)]
Slight cleanup of length-limited strpbrk() replacement, and eliminate strpbrk() call.
FossilOrigin-Name:
97e2c9621e3e01048e33da63ca4146ededa33cf6adefa996fa49b8c6a8d555b5
larrybr [Mon, 13 Nov 2023 05:24:00 +0000 (05:24 +0000)]
Enhance console_io to permit emits limited in various ways, such as valid UTF-8, upto control chars, or with counted limits, all getting away from 0-termination as the sole limit. In CLI, use this capability to avoid certain emit-chars-singly procedures that were breaking up UTF-8 characters. This fixes broken json mode output (on Windows) and (maybe) C-literal-like emits.
FossilOrigin-Name:
906c5c4082e30b7a0d07df89a42566461e2113507c5a0b339827ca0822b8fe84
larrybr [Sun, 12 Nov 2023 19:57:23 +0000 (19:57 +0000)]
larrybr [Sun, 12 Nov 2023 03:58:15 +0000 (03:58 +0000)]
Use setOutputStream() to designate implicit output for oput{z,f}() emit functions, and use them extensively.
FossilOrigin-Name:
7850fb98a19d0ae3535367de3bca9e50408a2c21504c5772947fc39f287aa830
larrybr [Sun, 12 Nov 2023 00:43:36 +0000 (00:43 +0000)]
Write BOM without fwrite(), using sputz() so that if it goes to the console, it is translated "properly".
FossilOrigin-Name:
06ef96a8233c6b6ca2653a0b780b3a401cab2b77594125f4f1c54b269c22a9f9
larrybr [Sat, 11 Nov 2023 22:53:55 +0000 (22:53 +0000)]
Remove SHELL_LEGACY_CONSOLE_IO PP symbol and code it made active. (It is in the repo if ever needed/wanted, but it is just inferior or dead code now.)
FossilOrigin-Name:
27c5bf6563bc24ba7b47865e8d2f3e2d439666e19038d86dd8445fcdb9abe97a
larrybr [Sat, 11 Nov 2023 20:46:12 +0000 (20:46 +0000)]
Complete shell transition to using {f,o,e}put{f,z}() emit functions. This fails test 13.1 in json501.test, but so does trunk in the same way.
FossilOrigin-Name:
923c6b8b3a508c715b816c6bcd2ae9ac519bc37a62afc4ef813085c00f1e7cb6
stephan [Sat, 11 Nov 2023 14:50:01 +0000 (14:50 +0000)]
JNI wrapper1: when checking for an out-of-bounds statement column index, perform the is-statement-finalized check before the range check so that the former exception trumps the latter.
FossilOrigin-Name:
0832f9a8e9f574b157c791c5cddc73aff7b2ff403509f5d78f310494d4a7f93d
stephan [Sat, 11 Nov 2023 14:43:50 +0000 (14:43 +0000)]
Do not cache a statement's column count in the JNI wrapper1 API because an ALTER TABLE via another statement may invalidate it, as reported in [forum:
6d80efd58d4591c7 |forum post
6d80efd58d4591c7 ].
FossilOrigin-Name:
a6ab88e9a67f23ab7885402776282b94033cb48dbe34d4d18356e4dc22aae7cd
larrybr [Sat, 11 Nov 2023 13:09:09 +0000 (13:09 +0000)]
Fix malf with redirected input due to bad assumption that stdin is a console in the fgets() replacement.
FossilOrigin-Name:
79d1f2c1019964dd154fbdd3f349822cb946a2600883994523ed145047f0a9ea
larrybr [Sat, 11 Nov 2023 06:20:38 +0000 (06:20 +0000)]
Pervasive changes to console_io.{c,h} in support of simplifying ubiquitous emit ops in shell, and to get better control of console streams that might be opened only via .read or .output commands. Changes to shell to use {s,o,e}put{f,z}(...) calls for initial testing, but this check-in has few such conversions so that most will be in a separate check-in. Many renames to better follow recent coding convention. This code seems to be working, but has not been tested on difficult platforms or with multiple console hosts yet. So it is a WIP.
FossilOrigin-Name:
14762a004cdf37d1e12f26aadff8ed3824893278f22ff141de86dd44d9b250f3
dan [Fri, 10 Nov 2023 20:55:20 +0000 (20:55 +0000)]
Fix another problem with mixed join types and the RIGHT JOIN strength-reduction optimization. [forum:/forumpost/
befdab472d | Forum post
befdab472d ].
FossilOrigin-Name:
f1eae192315335d7e385b0a801a17700a9718d245bda6628518c5df9a1e9d3d6
drh [Fri, 10 Nov 2023 20:46:58 +0000 (20:46 +0000)]
Additional debugging information on the tree-dump of the BETWEEN operator.
FossilOrigin-Name:
aca31e49d1d25043769544ccf2a07980c5f162a8eb2486e393bf9d9d1a394a60
drh [Fri, 10 Nov 2023 20:35:59 +0000 (20:35 +0000)]
Remove an incorrect ALWAYS() that was inserted yesterday [
1e039b6eb59c0001 ].
FossilOrigin-Name:
12885e298b9d3f977f1de11a194692dfb5fbb7daeabd958674f884a5575ddd24
drh [Fri, 10 Nov 2023 18:59:23 +0000 (18:59 +0000)]
Merge recent trunk enhancements and fixes into the jsonb branch.
FossilOrigin-Name:
091a5f058dfe2115fb9213655b34f00bcec80aebb299b571975cfe4ecd5ec206
drh [Fri, 10 Nov 2023 17:49:26 +0000 (17:49 +0000)]
Ensure 8-byte alignment of data structues in sqlite3_database_file_object().
This should have appeared on trunk originally and then be cherry-picked onto
the branch. Oh well....
FossilOrigin-Name:
ac39800bb2685fa287c7d834faed75f0bc61320ef986de314392d6eadb574d30