]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
4 years agoInitial commit selective-debug
shearer [Thu, 4 Feb 2021 21:19:24 +0000 (21:19 +0000)] 
Initial commit

FossilOrigin-Name: e73dbce8c5501faf25e1d6fa99173ea83b279b7920fd273eff3056d008e2b286

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

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