]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
3 years agoRemove a few unsuitable scripts from the "veryquick" test suite. Also have every...
dan [Mon, 18 Jul 2022 19:32:30 +0000 (19:32 +0000)] 
Remove a few unsuitable scripts from the "veryquick" test suite. Also have every second testrunner.tcl process favour running test scripts that contain text like "testrunner: slow" before any others.

FossilOrigin-Name: 22d280a5cd395abbedcfffbac3d3b3a614c327be25763ca380c1338a2a7bd33a

3 years agoAdd the "testrunner" makefile target.
drh [Mon, 18 Jul 2022 18:13:02 +0000 (18:13 +0000)] 
Add the "testrunner" makefile target.

FossilOrigin-Name: 954c6593152f8c7372ed1233b32cce153d0ce4804869cf4ec5504d106a4920a2

3 years agoIncrease the size of loop variables in the printf() implementation to avoid
drh [Mon, 18 Jul 2022 15:02:00 +0000 (15:02 +0000)] 
Increase the size of loop variables in the printf() implementation to avoid
harmless compiler warnings.

FossilOrigin-Name: aab790a16e1bdff78759f9c9ae87a2559ba82dd34ef3dedfb66035a0db7067a7

3 years agoEnhance the REGEXP extension so that it will accept the start-of-input
drh [Mon, 18 Jul 2022 13:55:21 +0000 (13:55 +0000)] 
Enhance the REGEXP extension so that it will accept the start-of-input
mark ("^") in the middle of parentheses.
[forum:/forumpost/0d6a9160f81ef1a8|Forum post 0d6a9160f81ef1a8].

FossilOrigin-Name: ed8a8ebd62a319b5dabbdf67ee27141153b9899d7c8f08eeb4bdf35271015c71

3 years agoFix a problem in the REGEXP extension for the {M,N} construct where M is zero.
drh [Mon, 18 Jul 2022 13:10:53 +0000 (13:10 +0000)] 
Fix a problem in the REGEXP extension for the {M,N} construct where M is zero.
See [forum:/forumpost/8694e55a2c29963c|forum post 8694e55a2c29963c] for more
information.

FossilOrigin-Name: af15bb75306a4b94593b8431a34768b3de3d6689293e85ca02db16bf3e9f39e2

3 years agoEnhance the ext/misc/regexp.c code so that when it is compiled with
drh [Mon, 18 Jul 2022 11:44:16 +0000 (11:44 +0000)] 
Enhance the ext/misc/regexp.c code so that when it is compiled with
SQLITE_DEBUG, a new function named regexp_bytecode() is available that
prints out the compiled NFA as human-readable text, for debugging purposes.

FossilOrigin-Name: cb5c08978fe8f074e6ae16953575213709e98b8bbae4359e0d2e6de67a7ea9e5

3 years agoFixes for the generated "mallocs.tcl" and "leaks.tcl" scripts generated by running...
dan [Sat, 16 Jul 2022 18:08:48 +0000 (18:08 +0000)] 
Fixes for the generated "mallocs.tcl" and "leaks.tcl" scripts generated by running tcl tests with the --malloctrace=1 option.

FossilOrigin-Name: 449799e2d5902464540e8fda53ab429e0518278dab3b17c86911759114cddea0

3 years agoIn the query planner, restore the former aggressiveness in reordering of
drh [Fri, 15 Jul 2022 20:39:39 +0000 (20:39 +0000)] 
In the query planner, restore the former aggressiveness in reordering of
FROM clause terms that existed prior to version 3.39.0 for queries that
contain no RIGHT or FULL JOINs.

FossilOrigin-Name: 92d60b64ebfc2d1f0a9cabaa88e7bf0d11737ed01a77b627af10dd1b96a5321c

3 years agoFix a memory leak in fts3 that could occur when processing a corrupt database.
dan [Fri, 15 Jul 2022 15:08:48 +0000 (15:08 +0000)] 
Fix a memory leak in fts3 that could occur when processing a corrupt database.

FossilOrigin-Name: d74f6f6d5136995b8bf900eb671e4b15ca81e03cc1ab5b7a1aa43dc4f3617760

3 years agoFix the whereKeyStats() routine (part of STAT4 processing only) so that it
drh [Fri, 15 Jul 2022 12:16:11 +0000 (12:16 +0000)] 
Fix the whereKeyStats() routine (part of STAT4 processing only) so that it
is able to cope with row-value comparisons against the primary key index
of a WITHOUT ROWID table.
[forum:/forumpost/3607259d3c|Forum post 3607259d3c].

FossilOrigin-Name: 0620e419a927a3da6ebe921aaa3471686f0fdc2e485f4c2d5c88f32092228724

3 years agoUpdate some faulty assert() statements in fts3.
dan [Fri, 15 Jul 2022 11:34:23 +0000 (11:34 +0000)] 
Update some faulty assert() statements in fts3.

FossilOrigin-Name: b072851be1a5e49441469dbfa4580e132ebb1d8bc2de98fe1aa67bb9c7cf13a3

3 years agoEnsure all testrunner.tcl processes use the same pending-byte value when
dan [Thu, 14 Jul 2022 21:17:22 +0000 (21:17 +0000)] 
Ensure all testrunner.tcl processes use the same pending-byte value when
accessing testrunner.db. Otherwise locking doesn't work and the db is corrupted.

FossilOrigin-Name: b65225653e4e5c20cc43f4dfdde6c110f6d14b87bff02a65fd61beabe50ec8db

3 years agoUpdate testrunner.tcl so that it can run the test suites defined in permutation.test.
dan [Thu, 14 Jul 2022 18:09:56 +0000 (18:09 +0000)] 
Update testrunner.tcl so that it can run the test suites defined in permutation.test.

FossilOrigin-Name: 15ce937ef42491c503cb91f5bb3ce4dc5cdb3a927ff2f2b873fb6bf96808f3aa

3 years agoWhen applying the omit-ORDER-BY optimization, defer deleting the AST of
drh [Thu, 14 Jul 2022 01:48:27 +0000 (01:48 +0000)] 
When applying the omit-ORDER-BY optimization, defer deleting the AST of
the deleted ORDER BY clause until after code generation ends.

FossilOrigin-Name: f22f95b838873f1d2a320afe3d0f4e4847948fcd343097b93a9f684a6f66d6ba

3 years agoFix testrunner.tcl so that it can detect the number of logical cores on osx.
dan [Wed, 13 Jul 2022 21:28:19 +0000 (21:28 +0000)] 
Fix testrunner.tcl so that it can detect the number of logical cores on osx.

FossilOrigin-Name: 14918f28221a3124b78a490fbb483279551ccc5a0032ea854ff0ac365684cc60

3 years agoMinor change to help message in testrunner.tcl.
dan [Wed, 13 Jul 2022 21:10:11 +0000 (21:10 +0000)] 
Minor change to help message in testrunner.tcl.

FossilOrigin-Name: e4f9cb01d790c27394cc021e7d4a16f4d5feda2d2493abd82e9660d7e6e9fec0

3 years agoAdd new script test/testrunner.tcl. For running a set of test scripts using
dan [Wed, 13 Jul 2022 21:02:07 +0000 (21:02 +0000)] 
Add new script test/testrunner.tcl. For running a set of test scripts using
multiple processes.

FossilOrigin-Name: 0122e93dc19c228546908b9ef5c58f88d27d79233523e2d09a4bbd56b0c492f9

3 years agoFix a problem preventing "testrunnter.tcl all" from working.
dan [Wed, 13 Jul 2022 20:26:37 +0000 (20:26 +0000)] 
Fix a problem preventing "testrunnter.tcl all" from working.

FossilOrigin-Name: 0ed1e83c6fc12acd06ecf7210a869bebaf5e5e75762e5f16bf1834ecab717d59

3 years agoUpdate testrunner.tcl to allow the user to specify which tests to run on the command...
dan [Wed, 13 Jul 2022 19:57:35 +0000 (19:57 +0000)] 
Update testrunner.tcl to allow the user to specify which tests to run on the command line.

FossilOrigin-Name: 900febcf362fa5f592c640d16177f33c13aab11ce31a61c7e18ff1be6e70bf9b

3 years agoFix testrunner.tcl so that it checks for memory leaks.
dan [Wed, 13 Jul 2022 17:46:42 +0000 (17:46 +0000)] 
Fix testrunner.tcl so that it checks for memory leaks.

FossilOrigin-Name: 106f6724d54ccec3edf8c9a0422b89c4f227adb26021ed6f0fc91392ef4b3fc5

3 years agoThe query flattener should not run if the subquery is a compound that contains
drh [Wed, 13 Jul 2022 15:52:15 +0000 (15:52 +0000)] 
The query flattener should not run if the subquery is a compound that contains
a RIGHT JOIN in any arm and the subquery is not the first element of the
outer query.  Otherwise, prior elements of the outer query will not have
the JT_LTORJ flag set.  Fix for the problem reported in
[forum:/forumpost/174afeae5734d42d|forum post 174afeae5734d42d].

FossilOrigin-Name: 274e244c85935084b2f0f85176283f018bf9b74e7703f985bd5a2f6f8bdcff5d

3 years agoAdd test/testrunner.tcl, an experimental script for distributing the work of veryquic...
dan [Tue, 12 Jul 2022 20:31:16 +0000 (20:31 +0000)] 
Add test/testrunner.tcl, an experimental script for distributing the work of veryquick.test between multiple processes.

FossilOrigin-Name: ef229cbb7ffbeb8c8877dff70e9d6d43050d2297dee582a37df3a0caaebd2a41

3 years agoRenamed the SQLITE_SHELL_WASM_WEB_MODE to SQLITE_SHELL_FIDDLE, which seems to be...
stephan [Tue, 12 Jul 2022 15:53:02 +0000 (15:53 +0000)] 
Renamed the SQLITE_SHELL_WASM_WEB_MODE to SQLITE_SHELL_FIDDLE, which seems to be more in line with project convensions and indicates that that flag is only intended for /fiddle mode, as opposed to arbitrary wasm-on-the-web use.

FossilOrigin-Name: d1d019bfa2f62b0dc39bba42e17786ca2e4362b6d11d206e5445a051a0f93ae0

3 years agoFix another test case error message similar to those fixed in [b3d6b3c3].
dan [Tue, 12 Jul 2022 15:17:50 +0000 (15:17 +0000)] 
Fix another test case error message similar to those fixed in [b3d6b3c3].

FossilOrigin-Name: 6d0f677291d2b5ec68c86292da240c5557422aae1290c0844223974449ce539b

3 years agoUpdate makefiles to fix building the non-amalgamation testfixture with SQLITE_DEBUG.
dan [Tue, 12 Jul 2022 15:10:16 +0000 (15:10 +0000)] 
Update makefiles to fix building the non-amalgamation testfixture with SQLITE_DEBUG.

FossilOrigin-Name: d9c4a9d09b6b22d7d95420b495dc7d7a42a0638be5824f6af6630539fe787cd4

3 years agoFix a bug in wapptest.tcl introduced by [51255bad4c1fb607].
drh [Tue, 12 Jul 2022 10:46:02 +0000 (10:46 +0000)] 
Fix a bug in wapptest.tcl introduced by [51255bad4c1fb607].

FossilOrigin-Name: b26d097e099b18ff434467adafe83fc55429488dbb8ce9c879bb03d8c5b7d3eb

3 years agoRenamed SQLITE_SHELL_WASM_MODE to SQLITE_SHELL_WASM_WEB_MODE and no longer automatica...
stephan [Tue, 12 Jul 2022 09:40:27 +0000 (09:40 +0000)] 
Renamed SQLITE_SHELL_WASM_MODE to SQLITE_SHELL_WASM_WEB_MODE and no longer automatically enable it if __EMSCRIPTEN__ is defined, in order to facilitate using Emscripten to build the shell for CLI-based WASM runtimes (which cannot make use of the web-specific user input changes). The fiddle build now explicitly passes the new flag on at compile-time.

FossilOrigin-Name: ee059ad5a811a1511e37158f041a7bf9070529d530410d2f1c4395cdd25c6d33

3 years agoBack out the pager performance enhancement at [a1c090e08139f99d3], because it
drh [Tue, 12 Jul 2022 07:13:38 +0000 (07:13 +0000)] 
Back out the pager performance enhancement at [a1c090e08139f99d3], because it
turns out we should never allow a zero key into the pcache interface according
to the design specs, even if that page is immediately released without ever
being used.

FossilOrigin-Name: ec96293ead83603ebe5d7f250d6fdc11f22172f05a9513f175331437c3eaa4c8

3 years agoAdd the --config option to wapptest.tcl. The argument is a glob pattern. All
drh [Mon, 11 Jul 2022 22:20:39 +0000 (22:20 +0000)] 
Add the --config option to wapptest.tcl.  The argument is a glob pattern.  All
configurations must match the glob pattern in order to run.  The default value
is "*".

FossilOrigin-Name: 51255bad4c1fb6074f602586fabad675ae310b9c37f4b80ecf60e2959fb0db12

3 years agoUpdate the expected error messages in some OOM test cases to account for [44d77a7f807].
dan [Mon, 11 Jul 2022 21:40:34 +0000 (21:40 +0000)] 
Update the expected error messages in some OOM test cases to account for [44d77a7f807].

FossilOrigin-Name: b3d6b3c3fc68dca7e20418eefa35ce3b583322b884b88a11c6773419f027a7a4

3 years agoUse 64-bit memory allocation APIs in the sqlite_stmt virtual table, to avoid
drh [Mon, 11 Jul 2022 19:47:57 +0000 (19:47 +0000)] 
Use 64-bit memory allocation APIs in the sqlite_stmt virtual table, to avoid
harmless compiler warnings.

FossilOrigin-Name: afb9e60ee3b194f33664a6722356e5d3c69ce1d4da1a0affd92b8e6aaf4dd2da

3 years agoIn the sqlite_stmt extension, store the result of strlen() in a 64-bit
drh [Mon, 11 Jul 2022 19:12:47 +0000 (19:12 +0000)] 
In the sqlite_stmt extension, store the result of strlen() in a 64-bit
integer to avoid a compiler warning, even though we know that the length
will always fit comfortably in 32 bits.

FossilOrigin-Name: 3fe19452499afc8e6b38905e1ce7e9153adbfebf10dccf39da4b7f1b0cd24f05

3 years agoFix harmless compiler warnings about unused debugging functions in treeview.c.
drh [Mon, 11 Jul 2022 18:26:14 +0000 (18:26 +0000)] 
Fix harmless compiler warnings about unused debugging functions in treeview.c.

FossilOrigin-Name: 4d6f907712e35eddf6af36eb823c3ccdfcdff1c63b2c224b3bcf34ffec95d511

3 years agoBack out the optimization at [1a8c2e54375ee2cf7] because there are some
drh [Mon, 11 Jul 2022 18:11:51 +0000 (18:11 +0000)] 
Back out the optimization at [1a8c2e54375ee2cf7] because there are some
cases where it does not work.

FossilOrigin-Name: fe39c8d5fd813308fb27a05ce257ff003d3c09c0372f500e8def5a528a2558b7

3 years agoEnsure that the Parse.nErr flag is set following an SQLITE_TOOBIG error on
drh [Mon, 11 Jul 2022 14:36:03 +0000 (14:36 +0000)] 
Ensure that the Parse.nErr flag is set following an SQLITE_TOOBIG error on
a nested parse.  Fix for the problem identified by
[forum/forumpost/d5a82ba9eedee30c | forum post d5a82ba9eedee30c].
Also, remove unnecessary clearing of the Parse.zErrMsg field
following a nested parse.

FossilOrigin-Name: 44d77a7f807f5dc3e94e6cd88a27bea79257f0f2ccf332891bdaa4668d0bb987

3 years agoFix a problem in fts3 to do with deferred tokens and OR expressions.
dan [Mon, 11 Jul 2022 14:26:38 +0000 (14:26 +0000)] 
Fix a problem in fts3 to do with deferred tokens and OR expressions.

FossilOrigin-Name: d0bfe5c574dbc467ba97d96306d78a62a55b78dbbbe4d25aa962db6aa40406f6

3 years agoWhen an OOM occurs and sets the Parse.nErr value, also set the Parse.nErr
drh [Sun, 10 Jul 2022 21:12:54 +0000 (21:12 +0000)] 
When an OOM occurs and sets the Parse.nErr value, also set the Parse.nErr
value for all outer Parse objects.
dbsqlfuzz d33f60aaa67733aa700cd69dacf8e0e23a327a29

FossilOrigin-Name: 9a494d25944f4f640026e7a7ae2948e555d7af31487c55ed2ec2818a0789b887

3 years agoPerformance optimizations in the WHERE clause processing of the query planner.
drh [Fri, 8 Jul 2022 20:03:41 +0000 (20:03 +0000)] 
Performance optimizations in the WHERE clause processing of the query planner.

FossilOrigin-Name: 50c8e8de52a6ba328bc9eb38e1a67033b643ddf41ff507d2240e97e0072b6db3

3 years agoOmit an unnecessary structure initialization in whereLoopAddAll(), replacing
drh [Fri, 8 Jul 2022 18:23:04 +0000 (18:23 +0000)] 
Omit an unnecessary structure initialization in whereLoopAddAll(), replacing
it with an assert() to show that the initialization has already occurred, for
a small performance increase and size reduction.

FossilOrigin-Name: 27be9e963459ca0b20c339264125e175550debf50fdbec7d78412768a6326b42

3 years agoSize reduction and performance optimization in whereLoopAddBtreeIndex().
drh [Fri, 8 Jul 2022 17:57:10 +0000 (17:57 +0000)] 
Size reduction and performance optimization in whereLoopAddBtreeIndex().

FossilOrigin-Name: 64d2312c121e3dabbc1f86effe9dfc57915395466ea2c3746821848f743b8d8f

3 years agoIn wherePathSolver(), defer initializing variables until they are actually
drh [Fri, 8 Jul 2022 16:56:47 +0000 (16:56 +0000)] 
In wherePathSolver(), defer initializing variables until they are actually
needed, in case they are not needed.  This gives a small performance increase.

FossilOrigin-Name: 6f28a9652a3f1e5354afb76314db8f33f92f5e888e336d025f34881c0a8d64ae

3 years agoUpgrade the TEA build system used to build the Tcl package.
dan [Fri, 8 Jul 2022 15:06:07 +0000 (15:06 +0000)] 
Upgrade the TEA build system used to build the Tcl package.

FossilOrigin-Name: ace65da8fa947926566037762ee9ff1b7686173eb7a50c7b55c4204171228b08

3 years agoFix typo in autoconf/tea/win/makefile.vc. tea-upgrade
dan [Fri, 8 Jul 2022 13:57:45 +0000 (13:57 +0000)] 
Fix typo in autoconf/tea/win/makefile.vc.

FossilOrigin-Name: 094b2aadd55b0bd93cab5e3172e3a3c1bea83cd312920ffc79088d4a30d2689a

3 years agoRemove an obsolete statement from a comment. No changes to code.
drh [Fri, 8 Jul 2022 11:55:54 +0000 (11:55 +0000)] 
Remove an obsolete statement from a comment.  No changes to code.

FossilOrigin-Name: 99afb3f41b923f06211d655d46c902da13c8f7aadf2421d6e93c048f5b49e660

3 years agoUpdate options in the TEA package msvc makefile to match other builds.
dan [Fri, 8 Jul 2022 11:21:30 +0000 (11:21 +0000)] 
Update options in the TEA package msvc makefile to match other builds.

FossilOrigin-Name: d72e12b99dd1f8abdd855130adc27dbfc8794cfe9550a8495f68c4498a89d07e

3 years agoUpdate the build options used for the TEA package to match those used to build the...
dan [Fri, 8 Jul 2022 11:14:19 +0000 (11:14 +0000)] 
Update the build options used for the TEA package to match those used to build the binaries at download.html.

FossilOrigin-Name: 9d6d9dba6680b62c24f5671109f3c28b6829645bffc5ed4e92d016fd2ad02a3e

3 years agoVery small size reduction and performance increase in btree.c.
drh [Thu, 7 Jul 2022 22:59:35 +0000 (22:59 +0000)] 
Very small size reduction and performance increase in btree.c.

FossilOrigin-Name: 9a7c031a822246ee36bc440c7492e9c8ebeec6bc7066e56f114756b1881b2eb8

3 years agoSize reduction and performance increase in defragementPage() of btree.c.
drh [Thu, 7 Jul 2022 21:04:03 +0000 (21:04 +0000)] 
Size reduction and performance increase in defragementPage() of btree.c.

FossilOrigin-Name: 1b03f197b5572084177012a58990f8dba7ff10382ff5657fda62867a4d0b1af9

3 years agoUpgrade the TEA build system in autoconf/tea/. To match tclconfig commit 20fe9e6f59...
dan [Thu, 7 Jul 2022 20:49:22 +0000 (20:49 +0000)] 
Upgrade the TEA build system in autoconf/tea/. To match tclconfig commit 20fe9e6f59 and Tcl Sample Extension be47fb0446.

FossilOrigin-Name: 1531f7391890d7d3cd091c2d1284230f128e5282bf676967ebcb212210e51e71

3 years agoSize reduction and performance increase in the pageFindSlot() routine of
drh [Thu, 7 Jul 2022 20:29:49 +0000 (20:29 +0000)] 
Size reduction and performance increase in the pageFindSlot() routine of
btree.c.

FossilOrigin-Name: 5d247e38560b97975568e8a48324acaca1002ec2ef7fa3efc9c8aa7d83412aad

3 years agoSize reduction and performance increase in the freeSpace() routine of btree.c.
drh [Thu, 7 Jul 2022 20:11:35 +0000 (20:11 +0000)] 
Size reduction and performance increase in the freeSpace() routine of btree.c.

FossilOrigin-Name: 7d7aed053f600659c63d8bac6d5da77879936c3fc57bfd058a4943b3bc530575

3 years agoFix harmless compiler warnings seen with MSVC.
mistachkin [Wed, 6 Jul 2022 23:50:01 +0000 (23:50 +0000)] 
Fix harmless compiler warnings seen with MSVC.

FossilOrigin-Name: 61e2094afbbcbd5fdf5c3ec06b96134fafb7b854dc9bfa7d0619bed6d35efbe4

3 years agoAvoid ignoring the last line of a csv file if the final field is empty and
dan [Wed, 6 Jul 2022 15:44:57 +0000 (15:44 +0000)] 
Avoid ignoring the last line of a csv file if the final field is empty and
there is no trailing CFLS. Also have the csv extension treat the last line of a
file in the same way as any other line if it is short fields.

FossilOrigin-Name: 587795d47fcaf5142526fabbcc4d5a632f561f258414c2846e8932a49b5b2e6b

3 years agoAvoid dropping error codes in the xBegin() method of virtual table sqlite_dbpage.
dan [Wed, 6 Jul 2022 13:59:45 +0000 (13:59 +0000)] 
Avoid dropping error codes in the xBegin() method of virtual table sqlite_dbpage.

FossilOrigin-Name: 570e2bce595d3a48977dca0bb573dd3fe745a0d13b7122b3ad8ab4745c0700d0

3 years agoFix for builds with both SQLITE_DEBUG and SQLITE_OMIT_WINDOWFUNC defined.
dan [Tue, 5 Jul 2022 19:53:59 +0000 (19:53 +0000)] 
Fix for builds with both SQLITE_DEBUG and SQLITE_OMIT_WINDOWFUNC defined.

FossilOrigin-Name: 77916947ce3f0828e1c50bcb8a6438c951ab9e74d83ec4324e82e90e100b9a98

3 years agoFix a problem in the csv extension that was triggered when the very first field in...
dan [Tue, 5 Jul 2022 17:49:04 +0000 (17:49 +0000)] 
Fix a problem in the csv extension that was triggered when the very first field in the csv file is zero bytes in size.

FossilOrigin-Name: b12ddabf07b5e06bcee8dda3f990af3a131ab52b8fa969ba061b26d38458f31d

3 years agoFix an assert() in btree to be more precise, as the previous form of that
drh [Tue, 5 Jul 2022 10:40:30 +0000 (10:40 +0000)] 
Fix an assert() in btree to be more precise, as the previous form of that
asser might fail due to recent performance optimizations.

FossilOrigin-Name: 4774938134d0105423720bdc1b4e82164a1e28d993c5cd81c1b03f1f0878427e

3 years agoSize reduction and performance optimization in sqlite3WalFindFrame().
drh [Mon, 4 Jul 2022 15:14:25 +0000 (15:14 +0000)] 
Size reduction and performance optimization in sqlite3WalFindFrame().

FossilOrigin-Name: 1a8c2e54375ee2cf73773b798fed0ae07b42f5e068fddc513c093de5c1f46615

3 years agoIn the getNormalPage() routine of pager.c, consolidate pgno error checking
drh [Mon, 4 Jul 2022 09:41:44 +0000 (09:41 +0000)] 
In the getNormalPage() routine of pager.c, consolidate pgno error checking
into a single spot for small size reduction and performance increase.

FossilOrigin-Name: a1c090e08139f99d30aa89db0756dc59fe8990ce15b3db4d4b726cc6acdab46f

3 years agoEnhance the REGEXP extension so that the end-of-input indicate ("$") is
drh [Sun, 3 Jul 2022 18:12:43 +0000 (18:12 +0000)] 
Enhance the REGEXP extension so that the end-of-input indicate ("$") is
allowed to occur on one branch of an OR ("|").
[forum:/forumpost/0107d5d40dd273e2|Forum post 0107d5d40dd273e2], second
issue.

FossilOrigin-Name: 3c04d21e6c632feb3bea8d1fa76bedcbfe254b0dc59865633d158a3f1bddefba

3 years agoFix the initial-prefix optimization for the REGEXP extension such that it
drh [Sun, 3 Jul 2022 14:25:47 +0000 (14:25 +0000)] 
Fix the initial-prefix optimization for the REGEXP extension such that it
works even if the prefix contains characters that require a 3-byte UTF8
encoding.  This should fix the problem reported by
[forum:/forumpost/96692f8ba5|forum post 96692f8ba5].

FossilOrigin-Name: c94595a6e15490b432f099fefbe2429fa19287f7bdc86332cba0fd1e08f65bd6

3 years agoImproved comment on sqlite3VdbeSwap(). No changes to code.
drh [Sun, 3 Jul 2022 11:16:03 +0000 (11:16 +0000)] 
Improved comment on sqlite3VdbeSwap().  No changes to code.

FossilOrigin-Name: 6a8e4fb72a9e3dea9e5752c3d54fddba8878b355bd43f3c879f042f247a6610f

3 years agoRemove debugging code that has always been commented out. Cosmetic change.
drh [Sun, 3 Jul 2022 11:12:59 +0000 (11:12 +0000)] 
Remove debugging code that has always been commented out.  Cosmetic change.

FossilOrigin-Name: b54064170c51a2c905f98737c224e19c06dc728342ca2224e32ebeb47f803bcd

3 years agoDo not attempt the OP_Count optimization on queries with HAVING clauses.
dan [Fri, 1 Jul 2022 21:03:19 +0000 (21:03 +0000)] 
Do not attempt the OP_Count optimization on queries with HAVING clauses.

FossilOrigin-Name: 566b7842ee286ed8620a87b06de65bc173ad0d208df4157292238fcb059cb484

3 years agoPerformance improvement in resolveP2Values(). Save over 1 million CPU
drh [Fri, 1 Jul 2022 19:42:12 +0000 (19:42 +0000)] 
Performance improvement in resolveP2Values().  Save over 1 million CPU
cycles by omitting the loop termination condition and exiting when the
OP_Init (always the first opcode in any VDBE program) is encountered.

FossilOrigin-Name: bb179140c8abfd9d05d62380daba027bdeabbbafc720b7e36b99a36af806017e

3 years agoSmall performance improvement to sqlite3_finalize().
drh [Thu, 30 Jun 2022 22:46:28 +0000 (22:46 +0000)] 
Small performance improvement to sqlite3_finalize().

FossilOrigin-Name: 8a6913b66cc5af354497044ccb849eb80d00d0799362475f1537a6999196895e

3 years agoAdd missing "finish_test" command to the end of test script merge1.test.
dan [Thu, 30 Jun 2022 11:01:48 +0000 (11:01 +0000)] 
Add missing "finish_test" command to the end of test script merge1.test.

FossilOrigin-Name: 13cb3f1e63ed1e906f820655645a4966f0cae140ac442177b6685637dcfd365a

3 years agoHave the sqlite_stmt table buffer all data for the current scan within the xFilter...
dan [Wed, 29 Jun 2022 15:16:48 +0000 (15:16 +0000)] 
Have the sqlite_stmt table buffer all data for the current scan within the xFilter method.

FossilOrigin-Name: 84a91c255e3d77728820561f16bdd9a87b7ff42b5430a9e13f404dfc3365c716

3 years agoFix a missing dependency for json.lo in Makefile.in
drh [Mon, 27 Jun 2022 11:28:25 +0000 (11:28 +0000)] 
Fix a missing dependency for json.lo in Makefile.in

FossilOrigin-Name: 65930a5c069e7274b945ce1aed0abb0edba3d4ab4e63916cc38c11cdef998926

3 years agoPut an ALWAYS() on an unreachable branch.
drh [Sat, 25 Jun 2022 20:32:29 +0000 (20:32 +0000)] 
Put an ALWAYS() on an unreachable branch.

FossilOrigin-Name: 58caa50a410b7eb0e68658ea1e606d75ea85cdae04e864270c932246ba990b5e

3 years agoAllow flattening of a subquery that is the right operand of a LEFT JOIN
drh [Sat, 25 Jun 2022 19:43:44 +0000 (19:43 +0000)] 
Allow flattening of a subquery that is the right operand of a LEFT JOIN
in an aggregate query as long as there is no GROUP BY clause.  (The GROUP BY
clause will interfere with the operation of the TK_IF_NULL_ROW expression
nodes.)

FossilOrigin-Name: 2cf373b10c9bc4cbc5fe63d0a6948011df7bbc2f40dc025c9349f875da782b88

3 years agoIncrease the version number to 3.40.0 so as to begin the next
drh [Sat, 25 Jun 2022 19:30:07 +0000 (19:30 +0000)] 
Increase the version number to 3.40.0 so as to begin the next
development cycle.

FossilOrigin-Name: 4542e32302067f24bf71c77620e09663f47c3ddce703c21ffa82d09532ae1d51

3 years agoFix documentation type. [forum:/forumpost/8d900996ed|forum post 8d900996ed].
drh [Sat, 25 Jun 2022 18:55:08 +0000 (18:55 +0000)] 
Fix documentation type.  [forum:/forumpost/8d900996ed|forum post 8d900996ed].

FossilOrigin-Name: 869061f18d2f2f500451c87ab62d3ca71a5321d5246b2e2c7bf960e48c6b5250

3 years agoVersion 3.39.0 version-3.39.0
drh [Sat, 25 Jun 2022 14:57:57 +0000 (14:57 +0000)] 
Version 3.39.0

FossilOrigin-Name: 14e166f40dbfa6e055543f8301525f2ca2e96a02a57269818b9e69e162e98918

3 years agoChange a harmless assert() into a testcase(). The actually test case code
drh [Sat, 25 Jun 2022 02:39:29 +0000 (02:39 +0000)] 
Change a harmless assert() into a testcase().  The actually test case code
is in TH3.  Fix for the problem described at
[forum:/info/ed29e196d5c4f3d5|forum post ed29e196d5c4f3d5].

FossilOrigin-Name: cd6254fcd32798f7be4e6d827597ddaa2e46ac6e2f0149cd3a3be0416fa18835

3 years agoFix a harmless UBSAN warning associated with PRAGMA schema_version
drh [Fri, 24 Jun 2022 12:56:48 +0000 (12:56 +0000)] 
Fix a harmless UBSAN warning associated with PRAGMA schema_version
found by OSSFuzz.

FossilOrigin-Name: e93fd170ce4ae91d572c46d03f68f55d00091d0188030517455017d90d212587

3 years agoIn sqlite3WhereBegin, do not proceed with coding the loop if an error is detected...
dan [Fri, 24 Jun 2022 11:05:36 +0000 (11:05 +0000)] 
In sqlite3WhereBegin, do not proceed with coding the loop if an error is detected as part of WHERE expression analysis.

FossilOrigin-Name: db5266dec601a9513bc8dd09a9f8bb4aef55b780d22610946099e8edd4836587

3 years agoA minor fix to test/fuzzinvariants.c so that it works even with column names
drh [Fri, 24 Jun 2022 11:02:42 +0000 (11:02 +0000)] 
A minor fix to test/fuzzinvariants.c so that it works even with column names
that originally contain a ':' and that are disambiguated.

FossilOrigin-Name: 8d9b1fff9d87522c4464aaf3ff0a7b93db244c59b4010562e35a8f161da4859b

3 years agoNew test cases for query flattening with LEFT JOIN.
drh [Thu, 23 Jun 2022 22:43:11 +0000 (22:43 +0000)] 
New test cases for query flattening with LEFT JOIN.

FossilOrigin-Name: 27f68e47320c751e3663507500c1c44f0b7f885f89c678fce6a35b1bc372dd64

3 years agoReintroduce flattener constraint (3c), but this time make it apply only if
drh [Thu, 23 Jun 2022 20:56:45 +0000 (20:56 +0000)] 
Reintroduce flattener constraint (3c), but this time make it apply only if
the outer query holds a GROUP BY, not if the outer query is an aggregate.

FossilOrigin-Name: 641dfb9182a6cbadb3c452f5420f896791b7844b794f693443bcd38dca14da35

3 years agoAdd back the ability to flatten a LEFT JOIN subquery - previously removed
drh [Thu, 23 Jun 2022 15:15:03 +0000 (15:15 +0000)] 
Add back the ability to flatten a LEFT JOIN subquery - previously removed
due to ticket [cad1ab4cb7b0fc344].

FossilOrigin-Name: f8fe936ad4f7678f9b26ba6fab41c5df9f4938634cdb3286b0f2dcd1357f919a

3 years agoMinor correction to a comment. No code changes.
drh [Thu, 23 Jun 2022 12:36:56 +0000 (12:36 +0000)] 
Minor correction to a comment.  No code changes.

FossilOrigin-Name: 5fa00959ebc3a46fe400564d5a30e8c44857cd4f0473fb25e84154019eff3f39

3 years agoEnhance the TCL scrip that generates sqlite3-all.c so that it outputs all
drh [Wed, 22 Jun 2022 18:51:47 +0000 (18:51 +0000)] 
Enhance the TCL scrip that generates sqlite3-all.c so that it outputs all
text in its original order.

FossilOrigin-Name: 83ff1a28e3e7a99fa90d5079897d76529c4256eed859bf7cb98b860fbedfdc5b

3 years agoFix requirements marks that changed due to typo fixes in the documentation.
drh [Wed, 22 Jun 2022 18:33:21 +0000 (18:33 +0000)] 
Fix requirements marks that changed due to typo fixes in the documentation.

FossilOrigin-Name: 5247df05991df979024df5a30bb3473401add92d4c12b01c040a16dda6da39f5

3 years agoMore comment fixes. No changes to code.
drh [Wed, 22 Jun 2022 15:55:28 +0000 (15:55 +0000)] 
More comment fixes.  No changes to code.

FossilOrigin-Name: 5c9133ef431a031249760267ca851239d0857ffba633cac27d3865cf179c3274

3 years agoAllow more line with on the debugging output for SrcItem elements in the
drh [Wed, 22 Jun 2022 14:43:52 +0000 (14:43 +0000)] 
Allow more line with on the debugging output for SrcItem elements in the
parse tree.  This affects debugging builds only and is a no-op for production
builds.

FossilOrigin-Name: edbe24e7fc81ab6c26ab05f2231cb46d157d71a677ce8a2983e0c6e48122a2bd

3 years agoAdditional enhancements to comments. No changes to code.
drh [Wed, 22 Jun 2022 14:25:12 +0000 (14:25 +0000)] 
Additional enhancements to comments.  No changes to code.

FossilOrigin-Name: d9a320448f5693d906adf437800675cd4773701db065f3ed238b933fb80f6681

3 years agoGive dbtotxt an option to prepend .open --hexdb
larrybr [Wed, 22 Jun 2022 14:00:24 +0000 (14:00 +0000)] 
Give dbtotxt an option to prepend .open --hexdb

FossilOrigin-Name: afeee6125d141ae281658a5f7b73e9b77bc252fa387678b2b5837488180bf108

3 years agoFix a typo in a comment. No changes to code.
drh [Wed, 22 Jun 2022 12:54:25 +0000 (12:54 +0000)] 
Fix a typo in a comment.  No changes to code.

FossilOrigin-Name: ef9de201b33678a80bb27c5be8f9dc973c8a4f14af9bfdd3ace36887c8a591ea

3 years agoDisable the short-cut query planner if the NOT INDEXED modifier is used.
drh [Tue, 21 Jun 2022 18:38:18 +0000 (18:38 +0000)] 
Disable the short-cut query planner if the NOT INDEXED modifier is used.
[forum:/forumpost/454d706296|Forum post 454d706296].

FossilOrigin-Name: bd87d107fe474ceeac8bacb01c80bc479edbc2ae4e30697bf54ab91a5a8d2a98

3 years agoAllow a HAVING clause on any aggregate query, even if there is no GROUP BY
drh [Tue, 21 Jun 2022 13:41:24 +0000 (13:41 +0000)] 
Allow a HAVING clause on any aggregate query, even if there is no GROUP BY
clause.  This brings SQLite into closer agreement with PostgreSQL and fixes
the concern raised by
[forum:/forumpost/1a7fea4651|forum post 1a7fea4651].

FossilOrigin-Name: 9322a7c21f1c22ba00e9b889223e89bc1591db6e561ce05091e905e98c1bf2b3

3 years agoAdd an ALWAYS() macro to an always-true branch.
drh [Mon, 20 Jun 2022 19:12:57 +0000 (19:12 +0000)] 
Add an ALWAYS() macro to an always-true branch.

FossilOrigin-Name: 364645d8fe22491cd566e868027e739464205e892753356016b1988ead207af4

3 years agoDo not allow FROM-clause terms on the left side of a RIGHT or FULL JOIN to
drh [Mon, 20 Jun 2022 18:26:14 +0000 (18:26 +0000)] 
Do not allow FROM-clause terms on the left side of a RIGHT or FULL JOIN to
be reordered. [forum:/forumpost/6650cd40b5634f35|forum post 6650cd40b5634f35].
This is probably more strict that necessary to get correct behavior,
but for the first release that supports RIGHT/FULL JOIN it is perhaps better
to be correct than fast.  A less strict constraint might be to prohibit
FROM-clause terms that originate on the left side of a RIGHT JOIN from
crossing from the right side to the left side of a LEFT JOIN.  Revisit this
later.

FossilOrigin-Name: 238453ffab0ba1bdddb529be35da82d5e8fb312a9574003a5441f455e601a909

3 years agoDo not allow an ON clause to references tables to its right if there is a
drh [Mon, 20 Jun 2022 17:04:44 +0000 (17:04 +0000)] 
Do not allow an ON clause to references tables to its right if there is a
RIGHT or LEFT join anywhere in the query.  Other RDBMSes prohibit this always,
but SQLite must allow ON clauses to reference tables to their right for legacy
compatibility, unless there is a RIGHT or LEFT join someplace in the query,
in which case there is no legacy to support.

FossilOrigin-Name: e615dbe02ca949252d1526ed5c48f8ce08159773ea2008ce666484379d0d9854

3 years agoThe fix at [cab9b4cccd13bf0a] was incomplete, as demonstrated by
drh [Mon, 20 Jun 2022 12:42:28 +0000 (12:42 +0000)] 
The fix at [cab9b4cccd13bf0a] was incomplete, as demonstrated by
[forum:/forumpost/57bdf2217d|forum post 57bdf2217d].  This check-in
should complete the fix.

FossilOrigin-Name: fb0a23b6789da8e934562ce9ebd9d58ea13a10fd10dee5cbfc7ac8f394e1aeec

3 years agoFollow-up to check-in [0057bbb508e7662b] - ensure that the database page
drh [Sun, 19 Jun 2022 16:55:07 +0000 (16:55 +0000)] 
Follow-up to check-in [0057bbb508e7662b] - ensure that the database page
has been initialized prior to continuing with the optimization.  If the page
is not initialized, that indicates that the database is corrupt.
dbsqlfuzz 09ee46becd5e6d1b2a55c9f8ad767335a90aadb0.

FossilOrigin-Name: 11162446f12ae3af6e4a63bb5c374129b2505f6006f91d4028c7165f05fe9651

3 years agoEnable query invariant checking in fuzzcheck by default. There is no way
drh [Sat, 18 Jun 2022 20:20:30 +0000 (20:20 +0000)] 
Enable query invariant checking in fuzzcheck by default.  There is no way
to turn it off.  Update the invariant checking logic to be consistant with
dbsqlfuzz.

FossilOrigin-Name: 66ca729bbbf37cb7ff8eb12f51429e0c0833bd5d3f0ef20a1eaeeb10820713c2

3 years agoAbandon a query-invariant check in fuzzcheck if the call to
drh [Sat, 18 Jun 2022 14:50:43 +0000 (14:50 +0000)] 
Abandon a query-invariant check in fuzzcheck if the call to
sqlite3_bind_value() returns anything other than SQLITE_OK or SQLITE_RANGE.

FossilOrigin-Name: d31e1cd2ab44c7cce20b8990dff17719c286dd2fb46ba6d4f581a9553cf31891

3 years agoIn the --query-invariants option of fuzzcheck, correctly deal with OOMs
drh [Sat, 18 Jun 2022 10:26:12 +0000 (10:26 +0000)] 
In the --query-invariants option of fuzzcheck, correctly deal with OOMs
causing the return value of sqlite3_column_name() to be NULL.

FossilOrigin-Name: eabbee4a51bc1a865bddee890004ff3a1c9cc6b797b21f73e908642e154cef50

3 years agoFix the OP_Concat operator such that when concatenating a BLOB with an
drh [Fri, 17 Jun 2022 21:31:30 +0000 (21:31 +0000)] 
Fix the OP_Concat operator such that when concatenating a BLOB with an
odd number of bytes on a database that is UTF16, the size of the resulting
string is reduced to a multiple of two.

FossilOrigin-Name: 5eb2c23635320b76f5e1aea4d94375b847fe4b38cdb4e287fba188753f4773b1