]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
4 years agoFix a problem caused by using an SQL variable in an OVER clause within a trigger... fix-over-trigger
dan [Thu, 21 Jan 2021 15:40:52 +0000 (15:40 +0000)] 
Fix a problem caused by using an SQL variable in an OVER clause within a trigger program.

FossilOrigin-Name: 4f676466e60ee2a420b7b2deace76f3a733ce1af278347428285715d9c67f022

4 years agoImprovements to the auxiliary "main.mk" makefile so that it works better with
drh [Wed, 20 Jan 2021 23:01:31 +0000 (23:01 +0000)] 
Improvements to the auxiliary "main.mk" makefile so that it works better with
multi-threaded builds.

FossilOrigin-Name: d1873054d8e1006a370ea7891dbb9a62e7d36ce98cb92b58dcb0daf271265de3

4 years agoAdd tests for sqlite3session_memory_used() interface.
dan [Wed, 20 Jan 2021 10:59:47 +0000 (10:59 +0000)] 
Add tests for sqlite3session_memory_used() interface.

FossilOrigin-Name: 5596611f96f3401262b9dadc591bf7e3411d2c4a6f5be5cfe524e203d9820fd1

4 years agoFix harmless compiler warnings seen with MSVC.
mistachkin [Mon, 18 Jan 2021 19:28:56 +0000 (19:28 +0000)] 
Fix harmless compiler warnings seen with MSVC.

FossilOrigin-Name: dc7938d2d715301595dee2fac6880af3716c4b3d1cbe7c3578d7fd30ba146a23

4 years agoUpdate test helper procedure 'get_pwd' to handle the ComSpec environment variable...
mistachkin [Mon, 18 Jan 2021 19:27:56 +0000 (19:27 +0000)] 
Update test helper procedure 'get_pwd' to handle the ComSpec environment variable being absent.

FossilOrigin-Name: fe1979552f43e0526f16481457e01981f29707401f77079f9854a8d91b35b5a4

4 years agoEnhance the query planner so that it is able to code EXISTS operators in
drh [Mon, 18 Jan 2021 12:35:16 +0000 (12:35 +0000)] 
Enhance the query planner so that it is able to code EXISTS operators in
the WHERE clause as if they were IN operators, when appropriate.

FossilOrigin-Name: c1862abb44873f06ec0d772469d8a2d128ae4670b1e98c2d97b0e2da18df9a04

4 years agoMore comments on the EXISTS-to-IN optimization logic. exists-to-in
drh [Mon, 18 Jan 2021 00:11:20 +0000 (00:11 +0000)] 
More comments on the EXISTS-to-IN optimization logic.

FossilOrigin-Name: 92cc29099f796f5f244dd80ee431c48d36d01eaece6f150119ead5ecd14eaae1

4 years agoMinor simplification of the EXISTS-to-IN logic.
drh [Sun, 17 Jan 2021 00:13:12 +0000 (00:13 +0000)] 
Minor simplification of the EXISTS-to-IN logic.

FossilOrigin-Name: cac90a9f4ab0a8f3ff77ee1f8549213c2f97169fc3469e55d57caa564079ce2a

4 years agoImproved handling of vector equalities in the EXISTS-to-IN translator.
drh [Sat, 16 Jan 2021 20:22:11 +0000 (20:22 +0000)] 
Improved handling of vector equalities in the EXISTS-to-IN translator.

FossilOrigin-Name: ef49ee4a3766146963bfb6b013472f9836afb9c5b0d21a8533871cf961139e38

4 years agoGive the EXISTS-to-IN optimization the ability to handle some cases that
drh [Sat, 16 Jan 2021 18:55:10 +0000 (18:55 +0000)] 
Give the EXISTS-to-IN optimization the ability to handle some cases that
involve vector comparisons, instead of throwing a mysterious error in those
cases.

FossilOrigin-Name: 87e78a19bb3ae1caf57aeeae53a5ab4efdccb57265f25d5c19b62eae53747aff

4 years agoAdd debugging output about the EXISTS-to-IN optimization when
drh [Sat, 16 Jan 2021 18:22:10 +0000 (18:22 +0000)] 
Add debugging output about the EXISTS-to-IN optimization when
the ".wheretrace" flag has the 0x20 bit set.

FossilOrigin-Name: 0dad5ce34ad8a59200b013453c9334f8898e07f2c0107c8c734ecc34b67de572

4 years agoFix a hyperlink in the Lemon documentation.
drh [Sat, 16 Jan 2021 12:15:41 +0000 (12:15 +0000)] 
Fix a hyperlink in the Lemon documentation.

FossilOrigin-Name: 2ffb2ffa0ea147edd88632d2bbe29cc1d66d0911ce8e1068c406c81dd5a20242

4 years agoAdd OOM injection tests for new code on this branch.
dan [Fri, 15 Jan 2021 17:51:56 +0000 (17:51 +0000)] 
Add OOM injection tests for new code on this branch.

FossilOrigin-Name: 9a181dbaedcc2117e670e679ca94ed6d1fabd90c835671dee36424dd0646c4e5

4 years agoUpdate header comments for routines added by this branch.
dan [Fri, 15 Jan 2021 16:37:32 +0000 (16:37 +0000)] 
Update header comments for routines added by this branch.

FossilOrigin-Name: 950030d679933f9ccd2b86ee650a4a78d338278a3629f0d289cca720a43e686b

4 years agoEnsure the EXISTS->IN transformation preserves the collation sequence of the comparis...
dan [Fri, 15 Jan 2021 15:32:09 +0000 (15:32 +0000)] 
Ensure the EXISTS->IN transformation preserves the collation sequence of the comparison operation.

FossilOrigin-Name: a373baae12c914e48fd84de77998e301fdd3da43b06b9d64ac24a14418ed48cd

4 years agoFix a potential NULL pointer dereference following OOM.
drh [Fri, 15 Jan 2021 15:21:27 +0000 (15:21 +0000)] 
Fix a potential NULL pointer dereference following OOM.

FossilOrigin-Name: 8ce3cb90965771530c0021173d98720fc4c76bb99e69f7a879f80471dea0aace

4 years agoAdd a new optimizer disabling bit to close off the exists-to-in optimization,
drh [Fri, 15 Jan 2021 15:17:14 +0000 (15:17 +0000)] 
Add a new optimizer disabling bit to close off the exists-to-in optimization,
for testing purposes.

FossilOrigin-Name: a80c9a076d31729282004ca372913c9fdbfb6e74711fbb8c5dc12ee0ecba2b87

4 years agoSmall performance improvement in the EXISTS-to-IN translator for the
drh [Fri, 15 Jan 2021 14:25:06 +0000 (14:25 +0000)] 
Small performance improvement in the EXISTS-to-IN translator for the
common case where the EXISTS operator is not found in the WHERE clause.

FossilOrigin-Name: dcb7772d7695ddbc0fe89e06c07ff4a6ae4fa05de914e2ec10b5cc07a62ed49f

4 years agoMerge the latest trunk enhancements into the exists-to-in branch.
drh [Fri, 15 Jan 2021 14:15:31 +0000 (14:15 +0000)] 
Merge the latest trunk enhancements into the exists-to-in branch.

FossilOrigin-Name: 13c4c9088cc8a2426e30a2ad1e9b9969407249281c6ed16653d43a0e6852a2e4

4 years agoAdd simple tests (and a fix) for the change on this branch.
dan [Fri, 15 Jan 2021 11:39:46 +0000 (11:39 +0000)] 
Add simple tests (and a fix) for the change on this branch.

FossilOrigin-Name: 897f3f40267dc922f0fda287484435e1fd8709bade3e87c3829e2f945bb5e4aa

4 years agoImprovements to the min/max optimization. Fix for a performance
drh [Thu, 14 Jan 2021 20:57:47 +0000 (20:57 +0000)] 
Improvements to the min/max optimization.  Fix for a performance
regression introduced at [b8ba2f17f938c035] reported by
[forum:/forumpost/4050026ab8|forum post 4050026ab8]

FossilOrigin-Name: 249a71cc6822d6bdd5bb9e727aac81c6549693b418e9c0987b96850ee332c940

4 years agoAllow the planner to convert an EXISTS(SELECT...) expression in a WHERE clause to...
dan [Thu, 14 Jan 2021 20:50:40 +0000 (20:50 +0000)] 
Allow the planner to convert an EXISTS(SELECT...) expression in a WHERE clause to the equivalent IN(...) expression in situations where this is possible and advantageous.

FossilOrigin-Name: 9f90a88221d0694951c353e58efce342eb0b868b8ca6a4469c8205e5c7855b24

4 years agoThe early-out of the inner loop on the min/max optimization was overly minmax-opt-exp
drh [Thu, 14 Jan 2021 00:53:14 +0000 (00:53 +0000)] 
The early-out of the inner loop on the min/max optimization was overly
aggressive for the cases where there is a join and outer loops contain
IN operators.  Fix this.  Test case in TH3.

FossilOrigin-Name: ccd3bae14b6b47bb0f9622700c04db989f76ce65e10e0709964cfd0675eca762

4 years agoFix a harmless compiler warning.
drh [Wed, 13 Jan 2021 21:05:07 +0000 (21:05 +0000)] 
Fix a harmless compiler warning.

FossilOrigin-Name: 83ec01e38cbd22147ba544e15eae32c72e0523a55b54851e483dc2effc64f206

4 years agoExpand the number of optimization-disable bits from 16 to 32. Use one of
drh [Wed, 13 Jan 2021 19:28:17 +0000 (19:28 +0000)] 
Expand the number of optimization-disable bits from 16 to 32.  Use one of
the new bits to disable the min/max optimization, so that we can more easily
verify that we get the same answer both with and within that optimization.

FossilOrigin-Name: fd0c9a123b58b7b134ed67f26dbb4196b61e56227f078422cc7e9a3497054c2d

4 years agoFurther enhancements to the min/max optimization of
drh [Wed, 13 Jan 2021 15:23:17 +0000 (15:23 +0000)] 
Further enhancements to the min/max optimization of
[/info/b8ba2f17f938c035|check-in b8ba2f17f938c035] to fix the performance
regression identified by
[forum:/forumpost/623f571482|forum post 623f571482].

FossilOrigin-Name: 188772a1dbaf066fbddd39c718fdd87478b19a920622f4640bcb79d4ef065331

4 years agocli: Omit surplus whitespace at the end of lines in .explain output.
drh [Wed, 13 Jan 2021 12:59:20 +0000 (12:59 +0000)] 
cli: Omit surplus whitespace at the end of lines in .explain output.

FossilOrigin-Name: 11e4eb095746602961a178044809a68a77ba7b367596997bef726e54062423d9

4 years agoIn the .selecttrace output, show the ORDER BY clause added by the Min/Max
drh [Wed, 13 Jan 2021 11:44:51 +0000 (11:44 +0000)] 
In the .selecttrace output, show the ORDER BY clause added by the Min/Max
optimization.

FossilOrigin-Name: db0ecfe66433f8915b6eb16d3735a4a0d0f8e0bbc395bc9c1364387506fc4657

4 years agoMerge the ParseCleanup enhancement to trunk.
drh [Tue, 12 Jan 2021 16:26:36 +0000 (16:26 +0000)] 
Merge the ParseCleanup enhancement to trunk.

FossilOrigin-Name: 35824c1bcbd89ae4a94acfbe511bfbd888c418b981819e72bc9a991fc82d136c

4 years agoFix a potential use-after-free following an OOM in sqlite3ParserAddCleanup() parse-cleanup
drh [Tue, 12 Jan 2021 15:30:01 +0000 (15:30 +0000)] 
Fix a potential use-after-free following an OOM in sqlite3ParserAddCleanup()
and add a mechanism to detect situations where this might occur in the
future.

FossilOrigin-Name: 38ef8ab9830e12acd2c710e113939b1f8dced02612c6933c37a3c948a4030d0a

4 years agoRerun autoconf.
drh [Tue, 12 Jan 2021 14:23:03 +0000 (14:23 +0000)] 
Rerun autoconf.

FossilOrigin-Name: 8f3ab5da4c8906b63e2c1a0021a3ba4f60e7199e8640518060f998876a002663

4 years agoFix for the top-level configure script so that it works with tcl 8.7.
dan [Tue, 12 Jan 2021 14:19:12 +0000 (14:19 +0000)] 
Fix for the top-level configure script so that it works with tcl 8.7.

FossilOrigin-Name: 4810f814ff13db31b95b471d53e9654ecde286c23d10984e3cc8788d79ee79ee

4 years agoAdd a linked list of ParseCleanup objects to the end of a Parse object and
drh [Mon, 11 Jan 2021 20:37:02 +0000 (20:37 +0000)] 
Add a linked list of ParseCleanup objects to the end of a Parse object and
use that list as a place to put other sub-objects that need to be deallocated.
Have a single such list for infrequently used sub-objects is more efficient
than doing an a separate check for each kind of sub-object.

FossilOrigin-Name: affa2b7b316941b8a6c4d0d1ff212c81a593faf1d05d129e14d2b70d73a25c59

4 years agoNew CLI command: ".stats vmstep" enables the display of the virtual-machine
drh [Sat, 9 Jan 2021 19:10:04 +0000 (19:10 +0000)] 
New CLI command:  ".stats vmstep" enables the display of the virtual-machine
step count only, after each command.  Useful for optimization problems.

FossilOrigin-Name: 49dfce469e6a17111b349e53578479daf783064200bf0eec5bf8a91d3553b19f

4 years agoMore detailed compile-time testing before attempting to use atomic load
drh [Sat, 9 Jan 2021 18:24:33 +0000 (18:24 +0000)] 
More detailed compile-time testing before attempting to use atomic load
intrinsics.  See
[forum:/forumpost/fc0237a39b30ac0a|forum post fc0237a39b30ac0a].

FossilOrigin-Name: 5204c2c4a7b73a64764b0d2d1d7c53709bb64e0d2685a829c7bf31af13bab5e7

4 years agoFix an issue with sha3_query() when the first argument contains blank
drh [Fri, 8 Jan 2021 19:53:18 +0000 (19:53 +0000)] 
Fix an issue with sha3_query() when the first argument contains blank
SQL statements.

FossilOrigin-Name: 24baab9a9faab50c26d7167821031cd66aaf784baefbc0f92354ae54ac43a714

4 years agoUpdate cksumvfs to check that the xCurrentTimeGetInt64 method of the underlying VFS...
dan [Thu, 7 Jan 2021 16:59:35 +0000 (16:59 +0000)] 
Update cksumvfs to check that the xCurrentTimeGetInt64 method of the underlying VFS is not NULL before invoking it.

FossilOrigin-Name: c71f6cadcc8c2172ad4113bbe4026aac4ebb8a91485454e8a14de32d197a93aa

4 years agoFix problems with some "crashsql" tests.
dan [Thu, 7 Jan 2021 16:29:34 +0000 (16:29 +0000)] 
Fix problems with some "crashsql" tests.

FossilOrigin-Name: 0c8e2ede5c325aa7fef8e8587057ec8c865fc7cf3e974a2733066fbac640b983

4 years agoFix harmless typos in comments per
drh [Thu, 7 Jan 2021 16:10:14 +0000 (16:10 +0000)] 
Fix harmless typos in comments per
[forum:/forumpost/7849e58dd5|forum post 7849e58dd5]

FossilOrigin-Name: d1e22e2f76cce7eb9f9029646176daef2d9e41c7bb1d3e1da182fbdd0096605c

4 years agoAdd extra test for handling of embedded nul characters in the fts4 unicode61 tokenizer.
dan [Mon, 4 Jan 2021 18:28:29 +0000 (18:28 +0000)] 
Add extra test for handling of embedded nul characters in the fts4 unicode61 tokenizer.

FossilOrigin-Name: c2c2c7e945f5d5700d91b8e779117e70e388ffc613912a434885ae27f5fe4e22

4 years agoIn Lemon, factor the parser stack overflow detection logic out of the
drh [Sat, 2 Jan 2021 23:56:37 +0000 (23:56 +0000)] 
In Lemon, factor the parser stack overflow detection logic out of the
yy_reduce() subroutine and into the main parser routine, so that when overflow
is detected, it can exit immediately.  This saves a single conditional in
the main loop of the parser.

FossilOrigin-Name: 203c049c662380411522d0c7c493201331bbb2792a7c5b12684f04f532a0695d

4 years agoAvoid allocating space to hold the prepared statements for CREATE statements
drh [Fri, 1 Jan 2021 22:06:17 +0000 (22:06 +0000)] 
Avoid allocating space to hold the prepared statements for CREATE statements
when parsing the schema of an existing database, since those prepared
statements are never used..  This helps to make startup faster,

FossilOrigin-Name: d01e9f2d00dc439c529cd8885a219fcddbaad73b9f471b020e2a0c18e2add69b

4 years agoFaster and smaller test to ensure that the sqlite_schema.sql field is always
drh [Fri, 1 Jan 2021 21:02:37 +0000 (21:02 +0000)] 
Faster and smaller test to ensure that the sqlite_schema.sql field is always
a CREATE statement of some kind.

FossilOrigin-Name: 76de2bb04b1c02a6c0300cd61d9b3d2477d845aa0d1cdb9dbe4f354b9fedd923

4 years agoChange the unions of the Table.addColOffset field from characters to bytes.
drh [Fri, 1 Jan 2021 20:04:34 +0000 (20:04 +0000)] 
Change the unions of the Table.addColOffset field from characters to bytes.
This makes the query that implements ALTER TABLE ADD COLUMN more complex and
slightly slower, but also makes CREATE TABLE statement parsing faster by
avoiding a call to sqlite3UtfCharLen().  Since, CREATE TABLE parsing is far
more common than ALTER TABLE, this is a net win for performance.

FossilOrigin-Name: 6f25f2529f1495a26129d7d407979906e4962b2de351f901d41cb037d05ba780

4 years agoUse the column name hash to improve performance of column name collision
drh [Fri, 1 Jan 2021 19:17:01 +0000 (19:17 +0000)] 
Use the column name hash to improve performance of column name collision
detection while parsing CREATE TABLE statements.

FossilOrigin-Name: d02820f03575e4633a7917427f11c19f99bd7b92f37d0ffe6fdc2418ad729813

4 years agoModify the makefile rule for "startup" so that it always builds with
drh [Fri, 1 Jan 2021 18:32:15 +0000 (18:32 +0000)] 
Modify the makefile rule for "startup" so that it always builds with
-Os and -DSQLITE_THREADSAFE=0 and no other options, for consistency of
performance.

FossilOrigin-Name: 5ac939e0adc923378173297e934c3664254a4fefbcddcc842bf4cc42dbaacf4f

4 years agoSize reduction and performance increase in sqlite3Prepare().
drh [Fri, 1 Jan 2021 18:23:56 +0000 (18:23 +0000)] 
Size reduction and performance increase in sqlite3Prepare().

FossilOrigin-Name: 41f45c8e894f48049325ccfef12cec0887b636bfad5d531a47628eb9e8612924

4 years agoSmall size reduction and performance improvement in sqlite3VdbeMakeReady()
drh [Fri, 1 Jan 2021 17:01:33 +0000 (17:01 +0000)] 
Small size reduction and performance improvement in sqlite3VdbeMakeReady()
by linking the new prepared statement into the prepared statement list sooner
rather than later.

FossilOrigin-Name: 2996e800a02967f9d0e27c816cf0b7b581a25634f94abcf167f27b019e1515e5

4 years agoStreamline processing of the authenticator callback for the common case
drh [Fri, 1 Jan 2021 16:43:26 +0000 (16:43 +0000)] 
Streamline processing of the authenticator callback for the common case
when there is no callback.

FossilOrigin-Name: d3196685d958bf22b5c362e96bbf8e1df58cc09cc3abc4bfa94bb33bc28c61aa

4 years agoAdd the "startup" test program designed to measure startup performance,
drh [Fri, 1 Jan 2021 15:13:17 +0000 (15:13 +0000)] 
Add the "startup" test program designed to measure startup performance,
and in particular schema parsing time.

FossilOrigin-Name: 7b3b31efb0047c5a461f487905cffba2b0ddb1518a6e757ca092eb40e1e2cd49

4 years agoDo not attempt to take a pointer to the ceil() and floor() functions as
drh [Fri, 1 Jan 2021 01:44:06 +0000 (01:44 +0000)] 
Do not attempt to take a pointer to the ceil() and floor() functions as
those routines are intrinsics on some versions of MSVC.

FossilOrigin-Name: e5d7209e118a84537a85c0c9cd2b7ca4cd6ccf04181dc840b19339b4c93840cd

4 years agoNew test case for the HAVING fix of check-in [f62f983b56623f0e].
drh [Wed, 30 Dec 2020 13:20:27 +0000 (13:20 +0000)] 
New test case for the HAVING fix of check-in [f62f983b56623f0e].

FossilOrigin-Name: 45f46317ab8bd92dcd346bf00ba3a33b0cfd030b790c04e19ef33cff124d8d7f

4 years agoNew test cases for cursor renumbering in the UNION ALL query flattener.
drh [Wed, 30 Dec 2020 13:10:57 +0000 (13:10 +0000)] 
New test cases for cursor renumbering in the UNION ALL query flattener.

FossilOrigin-Name: 270babf259750f3d6c490a08df608a101b24b3c06b9e8a938a0e09a854af6a20

4 years agoDo not set the P3 parameter on OP_RowCell when copying an index btree, as
drh [Tue, 29 Dec 2020 15:06:26 +0000 (15:06 +0000)] 
Do not set the P3 parameter on OP_RowCell when copying an index btree, as
P3 is not used in that case.

FossilOrigin-Name: eef070a4aadf02a845d0ed00767be049d3b76e811e24797a116776fa836d1b03

4 years agoFix missing comma in ctime.c that would cause the ENABLE_MATH_FUNCTIONS
drh [Mon, 28 Dec 2020 21:42:38 +0000 (21:42 +0000)] 
Fix missing comma in ctime.c that would cause the ENABLE_MATH_FUNCTIONS
output rw to merge with whatever row followed.  Problem reported in
[forum:/forumpost/aacac97680|forum post aacac97680].

FossilOrigin-Name: 328bc4a01dd67096be49c8b5a656109ad2839a7959d1b00c02a96bfbcb44ec18

4 years agoAdd the sqlite3session_memory_used() API to the sessions module. For querying the...
dan [Wed, 23 Dec 2020 16:46:39 +0000 (16:46 +0000)] 
Add the sqlite3session_memory_used() API to the sessions module. For querying the amount of heap memory currently being used by a session object.

FossilOrigin-Name: 823f75c2e448b649cbe9e174be21524ae3f580beedced65701ad49a2dcc5ee19

4 years agoFix SQLITE_OMIT_WINDOWFUNC builds by moving declaration of sqlite3ExpandSubquery...
dan [Tue, 22 Dec 2020 20:35:22 +0000 (20:35 +0000)] 
Fix SQLITE_OMIT_WINDOWFUNC builds by moving declaration of sqlite3ExpandSubquery out of "ifndef SQLITE_OMIT_WINDOWFUNC" block.

FossilOrigin-Name: 9587fa8b29fc2f91d751a71b909f574014656f24d276b4974f47fcc18dbadcb8

4 years agoFix a couple spelling typos in comments.
mistachkin [Tue, 22 Dec 2020 19:57:53 +0000 (19:57 +0000)] 
Fix a couple spelling typos in comments.

FossilOrigin-Name: 907ddf86766ebdbe39bdc89543c1a7bbd65c710c9f3a3a4d796845b2c02b711b

4 years agoFix a problem handling sub-queries with both a correlated WHERE clause and a "HAVING...
dan [Tue, 22 Dec 2020 16:23:29 +0000 (16:23 +0000)] 
Fix a problem handling sub-queries with both a correlated WHERE clause and a "HAVING 0" clause where the parent query is itself an aggregate.

FossilOrigin-Name: f62f983b56623f0ec34f9a54ce1c21b013a20399162f5ee6ee43b23f10c2ecd5

4 years agoSimplification to the aggregate-function analysis error detection logic at
drh [Tue, 22 Dec 2020 14:54:20 +0000 (14:54 +0000)] 
Simplification to the aggregate-function analysis error detection logic at
the end of sqlite3Select().

FossilOrigin-Name: 82884438e30ad8241f8249927fe92e0856d78b64d7ade38f3d5bb1c931d958d0

4 years agoFix problems with joining UNION ALL sub-queries against other sub-queries that contai...
dan [Mon, 21 Dec 2020 19:50:10 +0000 (19:50 +0000)] 
Fix problems with joining UNION ALL sub-queries against other sub-queries that contain LEFT JOIN.

FossilOrigin-Name: d554f710a5abbe64022f47a14ef67227c861a8f0991d85d240434e9a709cf8b8

4 years agoFix a problem when flattening joins between a UNION ALL sub-query and another sub...
dan [Mon, 21 Dec 2020 18:39:58 +0000 (18:39 +0000)] 
Fix a problem when flattening joins between a UNION ALL sub-query and another sub-query that uses more than one window function.

FossilOrigin-Name: ef9733fe1c6b31849a5da1037d21915f82e0e4ab42d1a23ead8a121012f1bace

4 years agoEnhance documentation to show that "ro" is the correct way to say "readonly"
drh [Mon, 21 Dec 2020 14:51:33 +0000 (14:51 +0000)] 
Enhance documentation to show that "ro" is the correct way to say "readonly"
in the mode= query parameter.

FossilOrigin-Name: 788b96851d9ced84757c48dc3e0414cab27ee7e50e9730dab30b2e42a7762397

4 years agoAdd the --timer option to fuzzcheck. Get the --timeout option working in
drh [Mon, 21 Dec 2020 12:14:59 +0000 (12:14 +0000)] 
Add the --timer option to fuzzcheck.  Get the --timeout option working in
fuzzcheck when running dbsql tests.

FossilOrigin-Name: 3b0c9b41a877c7344ef3b7c5b6981436005716e25b41b1a1ffc145520243abd3

4 years agoAlways declare the sqlite3WhereTrace variable, even for non-debug builds.
drh [Sun, 20 Dec 2020 14:51:17 +0000 (14:51 +0000)] 
Always declare the sqlite3WhereTrace variable, even for non-debug builds.

FossilOrigin-Name: 88d93ee380b6fd87474545f20ade874ba05c784c787ce9c45ebfcffed3795308

4 years agoFix a broken assert() in fts5 that could be triggered by corrupt database records.
dan [Sat, 19 Dec 2020 15:39:10 +0000 (15:39 +0000)] 
Fix a broken assert() in fts5 that could be triggered by corrupt database records.

FossilOrigin-Name: b79f59f9ad897d5bd4b9d17e6219bc765b02450bfe14dc020485f221ba6b02cb

4 years agoAllow UNION ALL sub-queriesto be flattened even if the parent query is a join.
drh [Sat, 19 Dec 2020 13:58:06 +0000 (13:58 +0000)] 
Allow UNION ALL sub-queriesto be flattened even if the parent query is a join.

FossilOrigin-Name: df1d6482f9e92dafdca1948e96eef52d8646eef9c356394afabe431d6357dd34

4 years agoFix for the previous fix in the case where a UNION ALL sub-query is joined against... union-all-flattener
dan [Fri, 18 Dec 2020 18:04:44 +0000 (18:04 +0000)] 
Fix for the previous fix in the case where a UNION ALL sub-query is joined against some other compound query.

FossilOrigin-Name: 63c5cfb9ae8f4598a523bed2a60c0e69172179952961a573113fcf756c06551d

4 years agoWhen flattening UNION ALL subqueries into a join query, ensure that separate cursor...
dan [Fri, 18 Dec 2020 16:13:39 +0000 (16:13 +0000)] 
When flattening UNION ALL subqueries into a join query, ensure that separate cursor numbers are used for each segment of the newly flattened query.

FossilOrigin-Name: c510377b0b052e400f2ee4f20220b61cdf74ee44b9bb9e6490787c88dd4c55aa

4 years agoFix a part of the header comment for flattenSubquery().
dan [Thu, 17 Dec 2020 17:17:12 +0000 (17:17 +0000)] 
Fix a part of the header comment for flattenSubquery().

FossilOrigin-Name: dc0937ce9d5569e3409b2b036a9f15b896125f4eb2eec30e3f0bbe4a92bcd0ad

4 years agoAdd test cases and minor fixes to this branch.
dan [Thu, 17 Dec 2020 16:48:04 +0000 (16:48 +0000)] 
Add test cases and minor fixes to this branch.

FossilOrigin-Name: 5d6dc29d5f81738b07e4fee652fb2343fc409c2545f2f4667e8ee82d1a75f721

4 years agoIn the CLI, add the ".filectrl data_version" command. And put the various
drh [Thu, 17 Dec 2020 15:17:42 +0000 (15:17 +0000)] 
In the CLI, add the ".filectrl data_version" command.  And put the various
".filectrl" subcommands in alphabetical order.

FossilOrigin-Name: 3434452148eef39ba3ba2f40a6fedb6ec4f5157cbc2763b3ec90ec7f2b126382

4 years agoFix a problem with sqlite3_expanded_sql() that could occur with statements that use...
dan [Thu, 17 Dec 2020 11:24:26 +0000 (11:24 +0000)] 
Fix a problem with sqlite3_expanded_sql() that could occur with statements that use both numbered (e.g. "?1") and unnumbered (i.e. "?") parameters.

FossilOrigin-Name: 2a6cd6833e44dd6a2ac388815f43be6508f6fa6db5e451e964276a6c87e6c5ae

4 years agoEnhance the sqlite3BtreeTransferRow() routine so that it does more careful
drh [Wed, 16 Dec 2020 21:09:45 +0000 (21:09 +0000)] 
Enhance the sqlite3BtreeTransferRow() routine so that it does more careful
checks for corrupt database pages.

FossilOrigin-Name: 85952e71175dae73c4e587a3b80783825d91fe8567a819e072da651c1ff4131b

4 years agoAllow sub-queries that use UNION ALL to be flattened, even if the parent query is...
dan [Wed, 16 Dec 2020 20:00:46 +0000 (20:00 +0000)] 
Allow sub-queries that use UNION ALL to be flattened, even if the parent query is a join. Still some problems on this branch.

FossilOrigin-Name: 00e4bf74d3dfb87666a2266905f7d1a2afc6eb088d22cfd4f38f048733d6b936

4 years agoRemove an unnecessary and incorrect #ifdef. Fix harmless compiler warnings.
drh [Wed, 16 Dec 2020 14:20:45 +0000 (14:20 +0000)] 
Remove an unnecessary and incorrect #ifdef.  Fix harmless compiler warnings.

FossilOrigin-Name: 31cd1bbfa5b06723288d99d1cb423f88353bdef770b82e9103f71a796d66f660

4 years agoFix a typo in the sqlite3_free_filename() documentation.
drh [Wed, 16 Dec 2020 13:17:32 +0000 (13:17 +0000)] 
Fix a typo in the sqlite3_free_filename() documentation.

FossilOrigin-Name: 48301edc90fe5811df0394b106edce7726d0ea86ac562c9f4db511b812a76433

4 years agoFix another integer overflow triggered by a corrupt database in recently modified...
dan [Tue, 15 Dec 2020 19:27:20 +0000 (19:27 +0000)] 
Fix another integer overflow triggered by a corrupt database in recently modified vacuum code.

FossilOrigin-Name: 4e2dd2a53364f1fed48b995fd5d2642472585f6da5e4735e9da193ba7ff45514

4 years agoWhen the -statstep option is passed to the "rbu" executable, print out memory stats...
dan [Tue, 15 Dec 2020 16:28:07 +0000 (16:28 +0000)] 
When the -statstep option is passed to the "rbu" executable, print out memory stats right before exiting, as well as every -statstep steps.

FossilOrigin-Name: 94f81b51176566409b7d16b30d861f48ad15bb43a145df6e02e0880f7c348109

4 years agoChange an fts5 assert() that can be triggered by a corrupt database to an if() condition.
dan [Tue, 15 Dec 2020 13:55:38 +0000 (13:55 +0000)] 
Change an fts5 assert() that can be triggered by a corrupt database to an if() condition.

FossilOrigin-Name: ea0a7f103a6f6a9e57d7377140ff9f372bf2b156f86f148291fb05a7030f2b36

4 years agoEnhance UPSERT so that it allows multiple ON CONFLICT clauses and does
drh [Mon, 14 Dec 2020 15:39:12 +0000 (15:39 +0000)] 
Enhance UPSERT so that it allows multiple ON CONFLICT clauses and does
not require a conflict target for DO UPDATE.

FossilOrigin-Name: 6b01a24daab1e5bcb0768ebf994368d941b1dfc217bf6b661211d900331e68cf

4 years agoFix an integer overflow problem in new VACUUM code.
dan [Mon, 14 Dec 2020 15:25:14 +0000 (15:25 +0000)] 
Fix an integer overflow problem in new VACUUM code.

FossilOrigin-Name: 59b4367fd852ba1bfefdff99a27b11657495a3f114ed6f85fdcf6c532f4a19fa

4 years agoMinor changes for test coverage. generalized-upsert
drh [Mon, 14 Dec 2020 13:52:03 +0000 (13:52 +0000)] 
Minor changes for test coverage.

FossilOrigin-Name: e5a8fa50f4e5e5c24664452eda4af80904f75e5123b8f84353347dbd505d416d

4 years agoMore test cases. No new problems discovered.
drh [Sat, 12 Dec 2020 00:43:52 +0000 (00:43 +0000)] 
More test cases.  No new problems discovered.

FossilOrigin-Name: f34dd67e2d0dfc9e3b5d49148fb0162853119c097cbc3fe961878875ba98d8e3

4 years agoNew test cases with corresponding bug fixes.
drh [Sat, 12 Dec 2020 00:28:15 +0000 (00:28 +0000)] 
New test cases with corresponding bug fixes.

FossilOrigin-Name: f22c21a94ca4cad0217f91c1a5a275bc348cb6ba0f3a54c927533bc8d8c96a90

4 years agoBegin adding test cases. Fix one bug found so far. More are pending.
drh [Fri, 11 Dec 2020 19:36:19 +0000 (19:36 +0000)] 
Begin adding test cases.  Fix one bug found so far.  More are pending.

FossilOrigin-Name: aadd67ddf2a191629b5356395f75e4556aac904a6e2f6b83742fa4f26e4253a4

4 years agoFix an assert() broken by recent changes to vacuum.
dan [Fri, 11 Dec 2020 19:01:24 +0000 (19:01 +0000)] 
Fix an assert() broken by recent changes to vacuum.

FossilOrigin-Name: dd058da85ca54ae70e26cb0bdc75ff42998d4a8b29a5e2dcac44ee0e45776a85

4 years agoSmall performance tweaks.
drh [Fri, 11 Dec 2020 17:11:56 +0000 (17:11 +0000)] 
Small performance tweaks.

FossilOrigin-Name: 5321d60c575ef8f888d1b315df02cf9ed96a3ffc61babbc1429aa73b2a61a190

4 years agoBug fixes so that legacy tests pass. New tests for new functionality have
drh [Fri, 11 Dec 2020 16:49:51 +0000 (16:49 +0000)] 
Bug fixes so that legacy tests pass.  New tests for new functionality have
not yet been added.

FossilOrigin-Name: aa76790e58cea9a2b707f5912fd66c76545e7417442553fc13c87f773a2fe1dd

4 years agoAdd an "#ifndef SQLITE_AMALGAMATION" block around the typedef for u64 in shathree.c.
dan [Fri, 11 Dec 2020 16:03:19 +0000 (16:03 +0000)] 
Add an "#ifndef SQLITE_AMALGAMATION" block around the typedef for u64 in shathree.c.

FossilOrigin-Name: b411f29e1a6415f4a241777c45591b8389e746cd8b40d9b225e073bcb0a3bdbf

4 years agoFix the configure script on the autoconf distribution so that the
drh [Fri, 11 Dec 2020 14:34:58 +0000 (14:34 +0000)] 
Fix the configure script on the autoconf distribution so that the
--disable-threadsafe option works.  See
[https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=244459|FreeBSD bug 244459].

FossilOrigin-Name: e64ff2cce3c03ba27c3bf410948ece1424113e727870015eb3806b75d0d21f94

4 years agoFix the expert extension so that it handles generated columns correctly.
dan [Fri, 11 Dec 2020 14:22:44 +0000 (14:22 +0000)] 
Fix the expert extension so that it handles generated columns correctly.

FossilOrigin-Name: c2ae7ba6f8f4b10bd734051a0cfa8ed9675bd58c82ede4e9eadfd7cbcc03b82d

4 years agoLogic is in place to handle multiple ON CONFLICT clauses, but it does not work.
drh [Fri, 11 Dec 2020 01:17:06 +0000 (01:17 +0000)] 
Logic is in place to handle multiple ON CONFLICT clauses, but it does not work.
Any use of ON CONFLICT will likely lead to memory faults.  This is an
incremental check-in to save my place.

FossilOrigin-Name: 155142314feb007d526f8f67723636fd50dc52d1cd4d3a67dd93b105c9d5c2be

4 years agoUse an iterator for the index loop in sqlite3GenerateConstraintChecks().
drh [Thu, 10 Dec 2020 20:31:25 +0000 (20:31 +0000)] 
Use an iterator for the index loop in sqlite3GenerateConstraintChecks().
The idea is that this iterator can be enhanced to traverse the indexes in
any order, as required by multi-index UPSERT.

FossilOrigin-Name: 64a4a91ecc5dcde3fa07d3cf038c74b9ede63d36628ecfb35203a9dfbbfe113c

4 years agoRemove a redundant branch added by [56a54258560].
dan [Thu, 10 Dec 2020 19:54:13 +0000 (19:54 +0000)] 
Remove a redundant branch added by [56a54258560].

FossilOrigin-Name: b4d6f6d728738710249ad74236c31a1872fdff7dadabd4c4a67d05826eb5df9e

4 years agoChanges to avoid loading large records into memory within VACUUM.
dan [Thu, 10 Dec 2020 19:51:39 +0000 (19:51 +0000)] 
Changes to avoid loading large records into memory within VACUUM.

FossilOrigin-Name: 56a54258560fab715b83967634b2bd4c04be43cded112b46e85da9f99ee02f7c

4 years agoFix minor issues with new code on this branch. vacuum-lomem
dan [Thu, 10 Dec 2020 19:20:15 +0000 (19:20 +0000)] 
Fix minor issues with new code on this branch.

FossilOrigin-Name: f7fa76d0963e7b34026dc20c920bfbf7961033fe2b99503f6857157595f86823

4 years agoMerge trunk changes into this branch.
dan [Thu, 10 Dec 2020 18:07:01 +0000 (18:07 +0000)] 
Merge trunk changes into this branch.

FossilOrigin-Name: 7337eed629b4537b8fc2dc87c3c71d0a664128a91fd00f3c5f18843505beee90

4 years agoBetter integrate the changes on this branch with OP_Insert and OP_IdxInsert.
dan [Thu, 10 Dec 2020 18:06:24 +0000 (18:06 +0000)] 
Better integrate the changes on this branch with OP_Insert and OP_IdxInsert.

FossilOrigin-Name: 101cef14910d6e865a94bc870aed599321b893188062a9a61d70a9434992cf23

4 years agoAdd an optional function to the chsumvfs extension. When activated by
drh [Thu, 10 Dec 2020 13:49:00 +0000 (13:49 +0000)] 
Add an optional function to the chsumvfs extension.  When activated by
the SQLITE_CKSUMVFS_INIT_FUNCNAME macro, this function will invoke the
file-control that sets the number of reserved bytes to 8.  This can be
used to initialize a cksumvfs database file by programming languages
that do not have access to the sqlite3_file_control() interface.

FossilOrigin-Name: 01841fb4bf3d6c5fd5bcbc7d1338998c50f69f84ca475fba7cf764d636714678