]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
4 years agoIncorporate the sqlite3TriggerList() optimization from trunk. And move
drh [Fri, 29 Jan 2021 14:22:56 +0000 (14:22 +0000)] 
Incorporate the sqlite3TriggerList() optimization from trunk.  And move
the pReturning field to the uninitialized area in the Parse object, to
save memset() time.

FossilOrigin-Name: 29fbaf0e3eabda08500f350bc32e9f339e5732a65bfa62822eefb692a2ff0243

4 years agoPerformance optimization (and size reduction) in sqlite3TriggerList() for the
drh [Fri, 29 Jan 2021 13:47:36 +0000 (13:47 +0000)] 
Performance optimization (and size reduction) in sqlite3TriggerList() for the
common case where there are no TEMP triggers.

FossilOrigin-Name: 0defaf730bdc82212a5d3feeb2e16f16423b1691b0aaa7da1787eb82ea39ae9e

4 years agoMerge recent enhancements from trunk.
drh [Wed, 27 Jan 2021 20:35:22 +0000 (20:35 +0000)] 
Merge recent enhancements from trunk.

FossilOrigin-Name: 5fbcb208d24d45169fc53ad8738dd3545d9bbd26b7434e31afc7f6419cd4e958

4 years agoFix an issue with IN operator optimization introduced by
drh [Wed, 27 Jan 2021 19:15:06 +0000 (19:15 +0000)] 
Fix an issue with IN operator optimization introduced by
check-in [4a43430fd23f8835] and described by ticket [ee51301f316c09e9].

FossilOrigin-Name: 9dc7fc9f04d5c14fc436e5ff5b4c06c1969ddde5857ebeb5dccd59b7c748c339

4 years agoEnsure a cursor used by the SeekScan operator does not point to a valid row on the... fix-2d6e8400
dan [Wed, 27 Jan 2021 17:15:06 +0000 (17:15 +0000)] 
Ensure a cursor used by the SeekScan operator does not point to a valid row on the first iteration of the loop. Possible fix for [2d6e8400].

FossilOrigin-Name: 390cf60a286b13f454429f4652a133f95a7891a75c1ec6d16cd39990590fd3fb

4 years agoAdd an extra log message in the case of an SQLITE_CORRUPT_INDEX error.
drh [Mon, 25 Jan 2021 21:24:14 +0000 (21:24 +0000)] 
Add an extra log message in the case of an SQLITE_CORRUPT_INDEX error.

FossilOrigin-Name: 0571c24177d77ac966bcf42cb8ab00fdf541ce84af1468c8ef0b60c48c45a22f

4 years agoEnhance the query planner to enable it to use an index for IS NOT NULL
drh [Fri, 22 Jan 2021 21:23:12 +0000 (21:23 +0000)] 
Enhance the query planner to enable it to use an index for IS NOT NULL
constraints, even if STAT4 is not enabled.

FossilOrigin-Name: 7b2a7c7314d2239992dc1d707280f3b75ba75bb074ba1e77b55cad01ca7fd51b

4 years agoMerge fixes from trunk. Omit a conditional in isnotnull-opt
drh [Fri, 22 Jan 2021 20:28:30 +0000 (20:28 +0000)] 
Merge fixes from trunk.  Omit a conditional in
sqlite3IsLikeFunction() that was made unreachable by this enhancement.

FossilOrigin-Name: 0b42f9eb5dd710991af3cf4b16464b22db9539361d618e50eaa4d43c811577b4

4 years agoDo not allow VACUUM to resize the page_size to 512 if the reserve_byte value
drh [Thu, 21 Jan 2021 21:36:25 +0000 (21:36 +0000)] 
Do not allow VACUUM to resize the page_size to 512 if the reserve_byte value
is 31 or greater. [forum:/forumpost/e807885dc5|forum post e807885dc5].

FossilOrigin-Name: d5ea75a09d4bf61262cead2604e35d8331b727c504807592d09f5d9e01ce794a

4 years agoPerformance optimizations in exprAnalyze()
drh [Thu, 21 Jan 2021 20:42:36 +0000 (20:42 +0000)] 
Performance optimizations in exprAnalyze()

FossilOrigin-Name: 6d60cf540b8cc231448175f1e16e1f4f7a0aee26898570a5b8a09c89fae53c02

4 years agoAlways enable the IS NOT NULL optimization, even if STAT4 is not enabled.
drh [Thu, 21 Jan 2021 17:54:41 +0000 (17:54 +0000)] 
Always enable the IS NOT NULL optimization, even if STAT4 is not enabled.

FossilOrigin-Name: fc98218cf69e63bdb9e5f154521a341508502cd8cfe04cb870cabee2d99e0cb3

4 years agoFix a problem caused by using an SQL variable in an OVER clause within a trigger...
dan [Thu, 21 Jan 2021 16:02:14 +0000 (16:02 +0000)] 
Fix a problem caused by using an SQL variable in an OVER clause within a trigger program.

FossilOrigin-Name: 02264ab6a02d6cc95cf865920bcbaf4307d034640e6e4f3371b009ae9818540e

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 agoLexer and grammar rules for a RETURNING clause on DELETE/INSERT/UPDATE.
drh [Tue, 12 Jan 2021 20:16:31 +0000 (20:16 +0000)] 
Lexer and grammar rules for a RETURNING clause on DELETE/INSERT/UPDATE.
Actually making this work, though, will involve a lot more code which will
likely slow down processing for the common case where there is no
RETURNING clause.  Furthermore, RETURNING seems to be of limited usefulness
and it is not standard SQL.  So we abandon it here.  These experimental
changes are parked in a branch as an historical reference.  If circumstances
changes, we might take up the cause again some day.

FossilOrigin-Name: abf8da815646055df5b871d54b99994c1470182dee7952fc5fd627e4379406cb

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