]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
4 years agoAdd a test-control that allows setting a LIKE pattern for common table optbarrier-test-ctrl
drh [Sat, 13 Feb 2021 21:01:31 +0000 (21:01 +0000)] 
Add a test-control that allows setting a LIKE pattern for common table
expression names such that CTEs with matching names become an
optimization barrier - They are not flattened and are implemented by
materialization.

FossilOrigin-Name: 15692ec02b401eb81a13b25099714cf49fe64c5bde8b1f4028aca18f8fdd7655

4 years agoFix incorrect test name labels in the select1.test script.
drh [Sat, 13 Feb 2021 18:14:15 +0000 (18:14 +0000)] 
Fix incorrect test name labels in the select1.test script.

FossilOrigin-Name: 179c79ea0deb0f5adaa8d369cfcad06d959a9cc18a8a41e01ef013b2d90acd61

4 years agoAvoid manifesting a CTE (or other view) multiple times when it is possible to
drh [Sat, 13 Feb 2021 16:39:24 +0000 (16:39 +0000)] 
Avoid manifesting a CTE (or other view) multiple times when it is possible to
reuse the first manifestation.

FossilOrigin-Name: 9692f510803c9b9725abb687d7c10fbc0d5ed784479ec6f3fcc55925a87fe16d

4 years agoFix a problem in the unreleased union-all flattening code.
dan [Sat, 13 Feb 2021 14:26:25 +0000 (14:26 +0000)] 
Fix a problem in the unreleased union-all flattening code.

FossilOrigin-Name: e4f8a79fd8b3be9bf8add5f5e1c66bc2fe78da4e50ea500ab0b8370d30e31ba5

4 years agoFix a test case to account for the fact that different versions of OpenBSD behave...
dan [Fri, 12 Feb 2021 21:22:01 +0000 (21:22 +0000)] 
Fix a test case to account for the fact that different versions of OpenBSD behave differently when a program tries to read() from a file-descriptor open on a directory.

FossilOrigin-Name: ecd712032f56a20d7df2bcf89b0d3b8d91dc72c552e27f0a4b23980bd49747b0

4 years agoEnsure RBU tests are run as part of release testing.
dan [Fri, 12 Feb 2021 11:37:13 +0000 (11:37 +0000)] 
Ensure RBU tests are run as part of release testing.

FossilOrigin-Name: a18dc08bafefd849e640086b18c41e06361d2e09d7dd2e9af4a394dc543e598b

4 years agoFix a longstanding problem causing an RBU vacuum to omit releasing some locks before...
dan [Wed, 10 Feb 2021 20:00:40 +0000 (20:00 +0000)] 
Fix a longstanding problem causing an RBU vacuum to omit releasing some locks before finishing.

FossilOrigin-Name: 66c07a07b21e46529780eec3c82a84c494d586f8b7ed80b78d358e23b80458c7

4 years agoRemove an assert() added by the previous commit that is sometimes false. shm-lock-fix
dan [Wed, 10 Feb 2021 19:49:35 +0000 (19:49 +0000)] 
Remove an assert() added by the previous commit that is sometimes false.

FossilOrigin-Name: fb36ac4dc60ccc6c5fba3f23e13fcab985f27ebef0527c929806cda5f9d3660c

4 years agoFix a longstanding problem causing an RBU vacuum to omit releasing some locks before...
dan [Wed, 10 Feb 2021 19:40:47 +0000 (19:40 +0000)] 
Fix a longstanding problem causing an RBU vacuum to omit releasing some locks before finishing.

FossilOrigin-Name: cb5bdf82fe0f90922dc34202be9d0aa34d899afff4200456623765da2877ca41

4 years agoIn RBU, avoid passing VFS xShmLock calls through to the underlying VFS in cases where...
dan [Wed, 10 Feb 2021 17:31:50 +0000 (17:31 +0000)] 
In RBU, avoid passing VFS xShmLock calls through to the underlying VFS in cases where xShmMap calls may not be. This fixes a bad interaction with ZipVFS.

FossilOrigin-Name: bd1e9e0a4c0e07901ef59fe3b7e6f7b9cc66ccfcd5192f576e1620820891de99

4 years agoCorrectly detect correlated subqueries when resolving names in RETURNING
drh [Mon, 8 Feb 2021 15:56:01 +0000 (15:56 +0000)] 
Correctly detect correlated subqueries when resolving names in RETURNING
clauses.

FossilOrigin-Name: b43cfa04922a401442b9d1708e3e4a88d3cfa2c591f9a6b253d99ba83f4b280a

4 years agoImproved name resolution for references to a table begin modified from
drh [Mon, 8 Feb 2021 13:41:17 +0000 (13:41 +0000)] 
Improved name resolution for references to a table begin modified from
within a subquery in the RETURNING clause.

FossilOrigin-Name: 799d205bfa7945ee4a92dfec5fbf90a00b9a535e3171aab2ec46404f7efb0f78

4 years agoDo not allow RETURNING in the DML statements of a trigger.
drh [Sun, 7 Feb 2021 23:28:20 +0000 (23:28 +0000)] 
Do not allow RETURNING in the DML statements of a trigger.

FossilOrigin-Name: 7a8fe6463a9728bc4e34465688a059afb74f3c373cde8fdf570d5d148fdde04d

4 years agoFix harmless compiler warnings.
drh [Sun, 7 Feb 2021 12:59:43 +0000 (12:59 +0000)] 
Fix harmless compiler warnings.

FossilOrigin-Name: 5f8bf99579e6663fc701cdc94f685584a86398c4687e25e7e241de755398f17d

4 years agoRemove an ALWAYS() and NEVER() in the authorizer that become reachable
drh [Sat, 6 Feb 2021 14:56:30 +0000 (14:56 +0000)] 
Remove an ALWAYS() and NEVER() in the authorizer that become reachable
as of [078dbff04a95a001].  Test case for coverage in TH3.

FossilOrigin-Name: b469327e2949352325d3db815bd4782f9734239c378f08afd2f00ffa54bef924

4 years agoFix the OSSFuzz-discovered shift problem from two days ago. This patch was
drh [Sat, 6 Feb 2021 14:37:36 +0000 (14:37 +0000)] 
Fix the OSSFuzz-discovered shift problem from two days ago.  This patch was
omitted from [078dbff04a95a001] apparently because I made the edit to
"sqlite3.c" rather than "resolve.c" where it belongs.

FossilOrigin-Name: 864772ffec4e91d8d73f9b97e6e1d7bd4e0537de19d11d30aed7eedd5b7d394a

4 years agoRemove unreachable code. Fix a shift UB problem introduced yesterday
drh [Fri, 5 Feb 2021 17:34:47 +0000 (17:34 +0000)] 
Remove unreachable code.  Fix a shift UB problem introduced yesterday
and discovered by OSSFuzz.

FossilOrigin-Name: 078dbff04a95a001bbd8690ab08038fbb5506899df8290991b53fd1122a4c30c

4 years agoChange the RETURNING algorithm so that outputs accumulate in an ephemeral
drh [Thu, 4 Feb 2021 23:20:13 +0000 (23:20 +0000)] 
Change the RETURNING algorithm so that outputs accumulate in an ephemeral
table until all modifications have been completed, and only then do results
start being returned.  This should help prevent problems with interleaved
sqlite3_step() calls on two separate DML statements.  It also seems to be
closer to how PostgreSQL works, which might prevent compatibility problems.

FossilOrigin-Name: c4615eb28c3dd2d473daf104f32e60d02799f3158d9d275a899c39129cc71401

4 years agoRemove dead code. Fix RETURNING for INSERT into a virtual table. returning-manifested
drh [Thu, 4 Feb 2021 22:59:19 +0000 (22:59 +0000)] 
Remove dead code.  Fix RETURNING for INSERT into a virtual table.

FossilOrigin-Name: dbfa38699c87ab4bf390666e411dda8d375c7b53b9b4fb131adacbf575867a72

4 years agoFix an issue with RETURNING from UPSERT.
drh [Thu, 4 Feb 2021 21:17:12 +0000 (21:17 +0000)] 
Fix an issue with RETURNING from UPSERT.

FossilOrigin-Name: 757b74ba0fd64634a365bd73955181191767ad8816a33a362e32ece250299a51

4 years agoSnapshot. New design appears to work on a simple test case.
drh [Thu, 4 Feb 2021 20:52:20 +0000 (20:52 +0000)] 
Snapshot.  New design appears to work on a simple test case.

FossilOrigin-Name: 8a65fbeecf3597e30853c5f0ccd9b8b46c508854fa521e58e0db279deebca7d4

4 years agoPreliminary changes for a new implementation of RETURNING that captures all
drh [Thu, 4 Feb 2021 17:29:04 +0000 (17:29 +0000)] 
Preliminary changes for a new implementation of RETURNING that captures all
results in a buffer and plays them all back after the DML statement
completes.  This avoids problems with interleaved DML statements.
This particular check-in is a non-functional work in progress.

FossilOrigin-Name: 04b77d63216ce11b4e797946953bcde504fc005807c7a5ac757fbf47d78698dc

4 years agoAdd NEVER() to a branch that check-in [5d54d9fd40638138] apparently made
drh [Thu, 4 Feb 2021 13:52:34 +0000 (13:52 +0000)] 
Add NEVER() to a branch that check-in [5d54d9fd40638138] apparently made
unreachable.

FossilOrigin-Name: 5c8e6296aa9f69a092364524b716ba894f113f7f1e6024b9a2eaa01c239e65c1

4 years agoPerformance optimization in sqlite3FinishCoding().
drh [Thu, 4 Feb 2021 13:44:42 +0000 (13:44 +0000)] 
Performance optimization in sqlite3FinishCoding().

FossilOrigin-Name: 0f34f241d37cc4f31dc657a6fc33815fa5e24298487121cb27c29118524b8ee7

4 years agoCorrections to the 'filepath_normalize' test suite helper procedure.
mistachkin [Wed, 3 Feb 2021 19:38:40 +0000 (19:38 +0000)] 
Corrections to the 'filepath_normalize' test suite helper procedure.

FossilOrigin-Name: 32f4d04470bf953b08eea285543f16e03de13d5448c1ebccbba1578ca3b5363e

4 years agoChange the name of Vdbe.magic to Vdbe.iVdbeMagic to disambiguate with
drh [Wed, 3 Feb 2021 18:32:25 +0000 (18:32 +0000)] 
Change the name of Vdbe.magic to Vdbe.iVdbeMagic to disambiguate with
sqlite3.magic.

FossilOrigin-Name: 6b29e549bb34933bfd0758e31085e65dcc0f75446c478fc775d96cf01c22cf43

4 years agoAvoid doing any foreign-key constraint related processing for an UPDATE statement...
dan [Wed, 3 Feb 2021 14:20:56 +0000 (14:20 +0000)] 
Avoid doing any foreign-key constraint related processing for an UPDATE statement that does not modify any columns that are part of FK constraints, even if the table has a self-referencing FK.

FossilOrigin-Name: 7f3b036e730153ac22933b03a52d4ec3978c9ecab1399d8cc79fe533893321e3

4 years agoFix a harmless compiler warning.
drh [Wed, 3 Feb 2021 13:20:12 +0000 (13:20 +0000)] 
Fix a harmless compiler warning.

FossilOrigin-Name: 1eb69c64ed4a11601698000573c507684bc4b0366336ba0748ebd661644d0902

4 years agoAdd support for the RETURNING clause following PostgreSQL syntax.
drh [Wed, 3 Feb 2021 13:08:09 +0000 (13:08 +0000)] 
Add support for the RETURNING clause following PostgreSQL syntax.

FossilOrigin-Name: 416c898bfb8ff9639ffbaefcfb47fce3782763af1fc67969fa91c5f01a336676

4 years agoFix an assert() that might be off-by-one in the case of a prior
drh [Wed, 3 Feb 2021 12:35:51 +0000 (12:35 +0000)] 
Fix an assert() that might be off-by-one in the case of a prior
errors in the parse.

FossilOrigin-Name: 06b15b17be38c804dd2641d8616a2a7bd396d2eb9901a0fbf94edd8bd508cf9c

4 years agoModify the SQLITE_DBCONFIG_ENABLE_TRIGGER setting so that it only disables returning
drh [Wed, 3 Feb 2021 00:55:34 +0000 (00:55 +0000)] 
Modify the SQLITE_DBCONFIG_ENABLE_TRIGGER setting so that it only disables
main-schema triggers and allows TEMP trigger to continue operating.  This is
safe, since only the application (not an attacker) can add TEMP triggers.
It will also all us to disengage SQLITE_DBCONFIG_ENABLE_TRIGGER on Fossil
databases since Fossil has no main-schema triggers but does use TEMP triggers.

FossilOrigin-Name: a10c5a2503ff2998f6ee40f721aab8c9579052e535dc141bd57d10551eaea387

4 years agoLoad enhancements from trunk into the returning branch.
drh [Wed, 3 Feb 2021 00:05:57 +0000 (00:05 +0000)] 
Load enhancements from trunk into the returning branch.

FossilOrigin-Name: b84c7f60c2e1e7debf9f50622087f87d60c6870061d61e14e59cc1ba0775ee92

4 years agoDo not allow aggregates in a RETURNING clause. Fix a memory leak that
drh [Tue, 2 Feb 2021 20:46:11 +0000 (20:46 +0000)] 
Do not allow aggregates in a RETURNING clause.  Fix a memory leak that
occurs when window functions are used in a RETURNING clause.

FossilOrigin-Name: 2e9bd94b9ad37c7e4123b7324f2fe42d3609a65af449eb8a0064057647709a73

4 years agoModify the sessions extension to use more efficient SQL when applying a changeset...
dan [Tue, 2 Feb 2021 20:41:13 +0000 (20:41 +0000)] 
Modify the sessions extension to use more efficient SQL when applying a changeset or patchset.

FossilOrigin-Name: e4ccfac09b6fe8cc3aec29d10f4e4c83097964f29882343db52ed91f6f0dde1c

4 years agoReport an error if RETURNING is used for DELETE or UPDATE of a virtual table.
drh [Tue, 2 Feb 2021 12:01:22 +0000 (12:01 +0000)] 
Report an error if RETURNING is used for DELETE or UPDATE of a virtual table.

FossilOrigin-Name: bd5dee8425327fde0429043ce325b910f1b7951988d9a448a8eeeb713a46bc81

4 years agoAllow the RETURNING trigger to exist for virtual tables.
drh [Tue, 2 Feb 2021 00:16:15 +0000 (00:16 +0000)] 
Allow the RETURNING trigger to exist for virtual tables.

FossilOrigin-Name: 2f244ab4a2ba2bdb608cf44ef02e00738ad58c10a76d9e4222dc843a17103d92

4 years agoAdd a few test cases for RETURNING together with UPDATE/DELETE LIMIT.
drh [Mon, 1 Feb 2021 21:26:09 +0000 (21:26 +0000)] 
Add a few test cases for RETURNING together with UPDATE/DELETE LIMIT.

FossilOrigin-Name: 7611c77d6baa84086ff18cbd045127fd682c6d5c434af5404e34fbe631fedfe1

4 years agoImproved corrupt database detection in balance_nonroot().
drh [Mon, 1 Feb 2021 12:39:50 +0000 (12:39 +0000)] 
Improved corrupt database detection in balance_nonroot().

FossilOrigin-Name: 5d54d9fd406381383afdf10612bfd590afc4142215d9bca09e227e3aa5baa102

4 years agoModify RETURNING so that it does not return changes implemented by
drh [Mon, 1 Feb 2021 01:57:55 +0000 (01:57 +0000)] 
Modify RETURNING so that it does not return changes implemented by
cascading foreign keys or by triggers.

FossilOrigin-Name: 6e62470a737cbde7f3fdcd027b98eb0b3dd11d063c63501d3c18448e93f5959f

4 years agoMark an unreachable branch as ALWAYS().
drh [Sun, 31 Jan 2021 16:45:10 +0000 (16:45 +0000)] 
Mark an unreachable branch as ALWAYS().

FossilOrigin-Name: cb8b797a64f65fca01c5faaeb30cbe4a53b56b81e696d1b62a90362d7ef8f924

4 years agoNew opcode OP_ChngCntRow used to output the result of PRAGMA change_count.
drh [Sun, 31 Jan 2021 15:50:36 +0000 (15:50 +0000)] 
New opcode OP_ChngCntRow used to output the result of PRAGMA change_count.
Only this new opcode, and not OP_ResultRow, checks for foreign key errors.
Faster performance, and now also works with RETURNING.

FossilOrigin-Name: 154fc2b15465c7c92a1af0a93851421aec42a81bab54840a9701f2c78068e14e

4 years agoWhen setting the number of result columns in a RETURNING trigger, be sure
drh [Sun, 31 Jan 2021 12:41:20 +0000 (12:41 +0000)] 
When setting the number of result columns in a RETURNING trigger, be sure
to set that value in the top-level bytecode program, not in the immediate
caller of the trigger.

FossilOrigin-Name: 1f1ce7ceb9807d22efea496f33908040ee196a31cd192f27ec0fb3e23afb729c

4 years agoImproved comments on the new code.
drh [Sat, 30 Jan 2021 21:55:38 +0000 (21:55 +0000)] 
Improved comments on the new code.

FossilOrigin-Name: a38f0c1d7c1d7635732ac370d8fbc7e6a2005378e4621da7bc4f51a2f99912d1

4 years agoAdd an ALWAYS() to an unreachable branch.
drh [Sat, 30 Jan 2021 16:16:42 +0000 (16:16 +0000)] 
Add an ALWAYS() to an unreachable branch.

FossilOrigin-Name: 6bb6de42b62acd35ade6c95a11bb4c9b35e7e9a24620731ae36364c4d5c3bc31

4 years agoChagne the OP_ResultRow opcode so that it does not cancel
drh [Sat, 30 Jan 2021 14:17:18 +0000 (14:17 +0000)] 
Chagne the OP_ResultRow opcode so that it does not cancel
pending statement transactions.

FossilOrigin-Name: fea91e3a511b14dafcc4da92c59188f927ec60ed91441335183da6b4e7866c1b

4 years agoFix a obsolete assert() in the bytecode engine. Improved OOM detection
drh [Sat, 30 Jan 2021 12:07:32 +0000 (12:07 +0000)] 
Fix a obsolete assert() in the bytecode engine.  Improved OOM detection
in sqlite3AddReturning().

FossilOrigin-Name: 138b10d54a83e1e7d5b3cdbe593a5073b05e632d1823e1b74d85835435b9ee3d

4 years agoFix handling of an OOM condition in sqlite3AddReturning().
drh [Sat, 30 Jan 2021 03:06:19 +0000 (03:06 +0000)] 
Fix handling of an OOM condition in sqlite3AddReturning().

FossilOrigin-Name: 52204cd768f115d13249ff0e3a252b716620f7ad16a6962e1192a09137a78596

4 years agoFix a memory deallocation problem that comes up when doing a RETURNING query
drh [Sat, 30 Jan 2021 02:43:26 +0000 (02:43 +0000)] 
Fix a memory deallocation problem that comes up when doing a RETURNING query
on a corrupt database.  I think I fixed this before, but it got unfixed with
stale editor content.

FossilOrigin-Name: 02b1415efb7d9849499afe4e9dbf7e470484bf144d6ca3d28fdc38fc0ac10afa

4 years agoAnother attempt to get trigger selection correct for RETURNING triggers.
drh [Sat, 30 Jan 2021 02:34:47 +0000 (02:34 +0000)] 
Another attempt to get trigger selection correct for RETURNING triggers.

FossilOrigin-Name: 1b8ed52275a54800df90682d694b482f55f26c6c4a420659f9a3b7bfc61e8abe

4 years agoWhen running the RETURNING trigger, if it is tagged as a DELETE trigger,
drh [Sat, 30 Jan 2021 02:22:38 +0000 (02:22 +0000)] 
When running the RETURNING trigger, if it is tagged as a DELETE trigger,
do not use it as INSERT or UPDATE.

FossilOrigin-Name: 3c7a6e04ddde34961d8e9d0443913e572a80853cf14a8263cec19523c39ca744

4 years agoTest cases added. RETURNING works with UPSERT as does PG.
drh [Sat, 30 Jan 2021 01:30:26 +0000 (01:30 +0000)] 
Test cases added.  RETURNING works with UPSERT as does PG.

FossilOrigin-Name: f5698f96e27c9b8669ec6016bb9920ef7580c4146eb61d628a0f62be5135ce94

4 years agoBetter handling of errors in RETURNING due to corrupt database files.
drh [Fri, 29 Jan 2021 22:33:05 +0000 (22:33 +0000)] 
Better handling of errors in RETURNING due to corrupt database files.

FossilOrigin-Name: 6aa2a058d136d0b24d94c5cbe1ce447eb435c1a1c7cdce5e435f1548bb3f05e7

4 years agoRETURNING works even if "PRAGMA count_changes=ON" is set.
drh [Fri, 29 Jan 2021 21:31:59 +0000 (21:31 +0000)] 
RETURNING works even if "PRAGMA count_changes=ON" is set.

FossilOrigin-Name: a9122d97577b239704cdee1a90a3b0dbff8bdf9dea2324d7315bd47238dcc8eb

4 years agoAllow "*" wildcards in the RETURNING clause.
drh [Fri, 29 Jan 2021 21:18:46 +0000 (21:18 +0000)] 
Allow "*" wildcards in the RETURNING clause.

FossilOrigin-Name: b0e3ae303db2a035583a05848ab7977e612d7e40c77e31ea9e0166de443c901f

4 years agoWorking prototype.
drh [Fri, 29 Jan 2021 19:32:17 +0000 (19:32 +0000)] 
Working prototype.

FossilOrigin-Name: b7ef4dc21f187ff4ff679e823782535188c3814aa6ce720b3a01c6d3ba4ef9f5

4 years agoFix possible division-by-zero in the new log() SQL functions.
drh [Fri, 29 Jan 2021 16:20:16 +0000 (16:20 +0000)] 
Fix possible division-by-zero in the new log() SQL functions.
Problemm discovered by OSSFuzz.

FossilOrigin-Name: 1ffd321a33b778e87614a26a91a8407ec7b9dec4f0f847b16b1dac4f3b910604

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