]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
4 years agoFor the OP_SeekScan opcode, adjust the number of steps run before giving in-scan-vs-index
drh [Wed, 30 Sep 2020 18:03:22 +0000 (18:03 +0000)] 
For the OP_SeekScan opcode, adjust the number of steps run before giving
up based on the estimated number of comparisons needed to perform a seek.

FossilOrigin-Name: dc4172e6b8e1f62dc7329a3adb2223f290bc4c8055c265e88182ef432f4bcf10

4 years agoAdd an sqlite3FaultSim() call to btreeNext() to make it easier to
drh [Wed, 30 Sep 2020 00:48:45 +0000 (00:48 +0000)] 
Add an sqlite3FaultSim() call to btreeNext() to make it easier to
simulate I/O errors in calls to sqlite3BtreeNext(), and in OP_SeekScan.

FossilOrigin-Name: 29cca775d3f5411624f0a8d55d34a038a24f1009d25b097315adb64e70c4b299

4 years agoIn the OP_SeekScan opcode, changes to pOp must occur after the call
drh [Wed, 30 Sep 2020 00:10:22 +0000 (00:10 +0000)] 
In the OP_SeekScan opcode, changes to pOp must occur after the call
to VdbeBranchTaken() so that the VdbeBranchTaken() attributes the branch
to the correct opcode.

FossilOrigin-Name: 61fbe7aa7cc0e8fe3e6b1c5aec277183d8cd7c86b1e835c38e0b37a9b8063343

4 years agoThe OP_SeekScan opcode is a no-op if the cursor is not pointing to a valid
drh [Tue, 29 Sep 2020 23:52:25 +0000 (23:52 +0000)] 
The OP_SeekScan opcode is a no-op if the cursor is not pointing to a valid
row upon entry.

FossilOrigin-Name: 4afc96b5fe80bd192a23e0230edc207e641931c3bf48296b1a385c786386f1b7

4 years agoCoverage testing of the OP_SeekScan opcode. Fix a problem that comes up when
drh [Tue, 29 Sep 2020 20:22:19 +0000 (20:22 +0000)] 
Coverage testing of the OP_SeekScan opcode.  Fix a problem that comes up when
OP_SeekScan reaches the end of the table.

FossilOrigin-Name: 9e57e758a6a33f54d28a546b4eebfb5cfacef30dc4e0207e43bb9d2c06fc3439

4 years agoImproved comments on the new OP_SeekScan opcode.
drh [Tue, 29 Sep 2020 17:29:11 +0000 (17:29 +0000)] 
Improved comments on the new OP_SeekScan opcode.

FossilOrigin-Name: 6110fdd5bb7b4ae5c065404c802ae726362ef084966b73cffe58c4bfb98689d2

4 years agoImproved performance by manually in-lining the sqlite3VdbeIdxKeyCompare()
drh [Tue, 29 Sep 2020 16:05:09 +0000 (16:05 +0000)] 
Improved performance by manually in-lining the sqlite3VdbeIdxKeyCompare()
routine for the OP_IdxGT opcode and its kin.

FossilOrigin-Name: 2206a2c848a122ee220c89427f9be0460cba0706f58852139d7b37184ce29a29

4 years agoTypo fix to repair the early-out optimization. Also avoid unnecessary
drh [Tue, 29 Sep 2020 15:32:54 +0000 (15:32 +0000)] 
Typo fix to repair the early-out optimization.  Also avoid unnecessary
OP_SeekHit opcodes.

FossilOrigin-Name: 8fd7d8dfcd515aa6b65d6eb27b033d3b3a31db467b9100cc13c62bc60113019e

4 years agoThe OP_SeekScan opcode works, but using it requires disabling the
drh [Tue, 29 Sep 2020 01:48:46 +0000 (01:48 +0000)] 
The OP_SeekScan opcode works, but using it requires disabling the
IN-earlyout optimization because the OP_IfNoHope opcode might move the
cursor.

FossilOrigin-Name: f3c36b840c9a29c0add28039db216f4207a308e5057fc76e3f0004024a8267ac

4 years agoRevisiting the IN-scan optimization to try to fix it for the corner case
drh [Mon, 28 Sep 2020 19:51:54 +0000 (19:51 +0000)] 
Revisiting the IN-scan optimization to try to fix it for the corner case
where the statistics deceive the query planner into using a scan when
an indexed lookup would be better.  This check-in changes the code
generation to do the IN-scan using a new OP_SeekScan opcode.  That new
opcode is designed to abandon the scan and fall back to a seek if
it doesn't find a match quickly enough.  For this work-in-progress check-in,
OP_SeekScan is still a no-op and OP_SeekGE still ends up doing all the work.

FossilOrigin-Name: d720b6981eeb0ffdb14494ca63eca298ee724ae4ad4863c7c7cbfdad7fa52519

4 years agoSmall performance improvement and size reduction by reducing the size of
drh [Mon, 28 Sep 2020 15:49:43 +0000 (15:49 +0000)] 
Small performance improvement and size reduction by reducing the size of
the WhereTerm object.

FossilOrigin-Name: 43f7ddad800acf40917c5cc3d926640dbec17c34d5f1cbbb74bd80f44eeed0a5

4 years agoAvoid the possibility of integer overflow on the --pagecache option to
drh [Mon, 28 Sep 2020 13:34:05 +0000 (13:34 +0000)] 
Avoid the possibility of integer overflow on the --pagecache option to
the CLI. See [forum:10a2892377|forum post 10a2892377]

FossilOrigin-Name: d3d13df31a97648f952beb2e1a783f947a80ec843227985ad9ebd14452d2f654

4 years agoFix harmless compiler warning seen with MSVC.
mistachkin [Mon, 21 Sep 2020 20:18:44 +0000 (20:18 +0000)] 
Fix harmless compiler warning seen with MSVC.

FossilOrigin-Name: 4591ee03d7a1ef3f0f6ad0629493fdb7a1c0ddb3277a9e87aa244cb0ca770593

4 years agoIn fts5 integrity checks, do not compare the contents of the index against an externa...
dan [Mon, 21 Sep 2020 14:53:21 +0000 (14:53 +0000)] 
In fts5 integrity checks, do not compare the contents of the index against an external content table unless specifically requested.

FossilOrigin-Name: 782163693f37aeb65209bebbaeb6659a36881b8c4b4bec778b366658488bf966

4 years agoRemove a new assert() that the compiler finds is always true at compile-time,
drh [Sun, 20 Sep 2020 13:33:28 +0000 (13:33 +0000)] 
Remove a new assert() that the compiler finds is always true at compile-time,
to avoid a compiler warning.

FossilOrigin-Name: 8bbaee238593741da107b92b254cb5f0cf8b6bcc760bf2b25d20e46c8edee2a9

4 years agoAttempt to silence harmless static analyzer warnings in Lemon and in the
drh [Sun, 20 Sep 2020 12:10:28 +0000 (12:10 +0000)] 
Attempt to silence harmless static analyzer warnings in Lemon and in the
Lemon-generated parser.

FossilOrigin-Name: de8ce22a46c90afa5475cd24c28b7a82b26410dc72d662af2f9d9e5e528e0eec

4 years agoFix a typo in the documentation comment for sqlite3_preupdate_hook().
dan [Thu, 17 Sep 2020 21:11:25 +0000 (21:11 +0000)] 
Fix a typo in the documentation comment for sqlite3_preupdate_hook().

FossilOrigin-Name: 4542d194e2fef5e21e1c3679914bd9e21fab31cfb111cf640524fb3514a8afa3

4 years agoFix a problem in sqlite-expert causing it to ignore equality constraints on the secon...
dan [Thu, 17 Sep 2020 17:01:16 +0000 (17:01 +0000)] 
Fix a problem in sqlite-expert causing it to ignore equality constraints on the second or subsequent columns of a multi-column PRIMARY KEY.

FossilOrigin-Name: c666c85a433fbc83edef4dbfb0399672e570f5d7979ab61cb39ff5488595d822

4 years agoFix a problem in fts5 causing the in-memory hash table to be flushed more often than...
dan [Thu, 17 Sep 2020 15:16:50 +0000 (15:16 +0000)] 
Fix a problem in fts5 causing the in-memory hash table to be flushed more often than necessary.

FossilOrigin-Name: 9a55601d072bcd1ac0f6f1633216c7c8b3ff3e037451e2cfd285cbe19b60b9fc

4 years agoFix a "jump depends on unitialized value" valgrind/asan error in fts5.
dan [Thu, 17 Sep 2020 14:16:02 +0000 (14:16 +0000)] 
Fix a "jump depends on unitialized value" valgrind/asan error in fts5.

FossilOrigin-Name: 66f94d623c16b4527e42f0519e32ec78eaf9ee6fd61ee7d0eb657cc59a8f7d68

4 years agoEarlier detection of corruption in the rtreecheck() SQL function to prevent
drh [Thu, 17 Sep 2020 11:56:04 +0000 (11:56 +0000)] 
Earlier detection of corruption in the rtreecheck() SQL function to prevent
a (harmless) read of an uninitialized value.

FossilOrigin-Name: e2074b24788149562b15022ccd2784d6649f08ebc41410e3bfb2401baf0892e2

4 years agoPrevent use-after-free of the u.vtab.idxStr string following an OOM
drh [Thu, 17 Sep 2020 11:32:14 +0000 (11:32 +0000)] 
Prevent use-after-free of the u.vtab.idxStr string following an OOM
while generating the OP_VFilter opcode.

FossilOrigin-Name: 751fe4edb2d4602e652523c2759de3f4fffd29d5c66cae68caf45b30fd8b750a

4 years agoDISTINCT may not be ignored inside a UNION ALL common table expression.
drh [Thu, 17 Sep 2020 00:46:09 +0000 (00:46 +0000)] 
DISTINCT may not be ignored inside a UNION ALL common table expression.
Fix for ticket [c51489c3b8f919c5]

FossilOrigin-Name: 7d2b590d3abd66a7e6ae9046198eb669e0fd2f223f7691281e9ad795a12b8903

4 years agoFix a pair of assert()s in "PRAGMA foreign_key_check" that might have given
drh [Wed, 16 Sep 2020 19:48:23 +0000 (19:48 +0000)] 
Fix a pair of assert()s in "PRAGMA foreign_key_check" that might have given
a false-positive following an OOM.

FossilOrigin-Name: 9ea3039b538ffd0f348c8fbc9452af1fbf899a1f668af9a2404bdd0f8dd21351

4 years agoFix harmless compiler warnings in Lemon.
drh [Wed, 16 Sep 2020 16:55:56 +0000 (16:55 +0000)] 
Fix harmless compiler warnings in Lemon.

FossilOrigin-Name: 6c94ba4b1c16b676978808dcb24f63c2f22915af5dcfe9f635c037011affcf4b

4 years agoFix a buffer overread found by OSSFuzz that could occur if a WITHOUT ROWID table...
dan [Tue, 15 Sep 2020 20:48:30 +0000 (20:48 +0000)] 
Fix a buffer overread found by OSSFuzz that could occur if a WITHOUT ROWID table with many columns was NATURAL JOINed against itself.

FossilOrigin-Name: 3d35fa0be866213274fc09250225b345f6b08a9b4ec373d53d95e627e24512be

4 years agoDo not invoke usleep() for more than 999999 microseconds.
drh [Tue, 15 Sep 2020 12:29:35 +0000 (12:29 +0000)] 
Do not invoke usleep() for more than 999999 microseconds.

FossilOrigin-Name: 1f5ed852f25515bbc0a7aaf236fdef40fa7e31805eee1249277fde4e68f95130

4 years agoCatch fts5 index corruption caused by issuing 'delete' commands with incorrect data...
dan [Fri, 11 Sep 2020 15:01:49 +0000 (15:01 +0000)] 
Catch fts5 index corruption caused by issuing 'delete' commands with incorrect data earlier in some cases. Also fix a couple of test script problems.

FossilOrigin-Name: b79f19edfd33c2a75f936c352668e14e81f35acf4f07edc27a21f941a7304b38

4 years agoTry again to fix the typo in the sqlite3_txn_state() documentation.
drh [Thu, 10 Sep 2020 15:09:11 +0000 (15:09 +0000)] 
Try again to fix the typo in the sqlite3_txn_state() documentation.

FossilOrigin-Name: 6d1ab0403c2855b595f5d294305f41f56a7a93503f2a58d1b1d12431d480704e

4 years agoFix typo in the documentation for the new sqlite3_txn_state() interface.
drh [Thu, 10 Sep 2020 14:54:57 +0000 (14:54 +0000)] 
Fix typo in the documentation for the new sqlite3_txn_state() interface.

FossilOrigin-Name: 23f7d01758cbcf22bd34e78fb8284c7af18f3059a03c4ff6ab3e556ca11fce19

4 years agoIf an amalgamation is created using SQLITE_ENABLE_UPDATE_DELETE_LIMIT,
drh [Thu, 10 Sep 2020 12:41:46 +0000 (12:41 +0000)] 
If an amalgamation is created using SQLITE_ENABLE_UPDATE_DELETE_LIMIT,
ensure that it can still be compiled without that option by setting the
SQLITE_UDL_CAPABLE_PARSER flag in the preamble.

FossilOrigin-Name: 5b905d7d7714d1d2c433ff58f5d6917d6d27302d44ca347aa740e768f1354b16

4 years agoFix another (harmless in practice) tsan error in shared-cache mode.
dan [Mon, 7 Sep 2020 11:14:27 +0000 (11:14 +0000)] 
Fix another (harmless in practice) tsan error in shared-cache mode.

FossilOrigin-Name: 5a74fa3f0a64f462c8add9beae231a9bbdd19e54d07b54f08726cb1411fc8d3a

4 years agoRemove an artifical limitation on the length of columns in the "box"
drh [Sun, 6 Sep 2020 17:40:38 +0000 (17:40 +0000)] 
Remove an artifical limitation on the length of columns in the "box"
output mode of the command-line shell.

FossilOrigin-Name: 783fa887c9ed1a7d72c310df1dd9de91c016061b05fdeec87fbb2a7eb0b952ea

4 years agoFix a bug in Fossil that might cause it to crash if there is
drh [Sat, 5 Sep 2020 06:21:54 +0000 (06:21 +0000)] 
Fix a bug in Fossil that might cause it to crash if there is
a multi-terminal token with a space following the "|" separator.
This does not affect SQLite.

FossilOrigin-Name: 430c5d1da57af452f236cc862139d84ab97b6020f6d327dae5268c58e6e83a87

4 years agoFix a tsan error that could occur when using shared-cache mode.
dan [Fri, 4 Sep 2020 19:10:43 +0000 (19:10 +0000)] 
Fix a tsan error that could occur when using shared-cache mode.

FossilOrigin-Name: de80bc87300257cc49d98e2d22e914211f213dce912f320c8b37b3883c73923c

4 years agoEnsure that the busy-handler count is reset at the end of each sqlite3_file_control...
dan [Fri, 4 Sep 2020 17:30:59 +0000 (17:30 +0000)] 
Ensure that the busy-handler count is reset at the end of each sqlite3_file_control() and sqlite3_prepare() (and _v2() and _v3()).

FossilOrigin-Name: 5dd05940617fb05ee2faf212b15afc3a8e9695318eccb76761b37359fea681d1

4 years agoFix harmless compiler warning.
mistachkin [Tue, 1 Sep 2020 19:02:52 +0000 (19:02 +0000)] 
Fix harmless compiler warning.

FossilOrigin-Name: a711e8cd2c7b64e06241736ecef478ac64ddbe7b58e0933b6febba63f7fb06e1

4 years agoIn the Lemon output, add a prefix comment that explains that the output file
drh [Tue, 1 Sep 2020 12:26:55 +0000 (12:26 +0000)] 
In the Lemon output, add a prefix comment that explains that the output file
is automatically generated and shows the name of the source file.

FossilOrigin-Name: d34caf3bb63d0512ea116a8c8c8343b76aa39441bd4b3e98231747a705b91d54

4 years agoLemon updates: (1) include the #defines for all tokens in the generated C
drh [Tue, 1 Sep 2020 11:20:03 +0000 (11:20 +0000)] 
Lemon updates:  (1) include the #defines for all tokens in the generated C
file, so that the C-file can be stand-alone.  (2) If the grammar begins with
a %include {...} directive on line one, make that directive the header for
the generated C file.  (3) Enhance the lemon.html documentation.

FossilOrigin-Name: 84d54eb35716174195ee7e5ac846f47308e5dbb0056e8ff568daa133860bab74

4 years agoImprovements to the IN-early-out optimization so that it works more
drh [Tue, 1 Sep 2020 01:52:03 +0000 (01:52 +0000)] 
Improvements to the IN-early-out optimization so that it works more
efficiently when there are two or more indexed IN clauses on a single table.

FossilOrigin-Name: 35505c68c1945c35babd2496e02bc4907a15c8e7b8d77f05f230bd0e9d4891d7

4 years agoFix a harmless compiler warning.
drh [Tue, 1 Sep 2020 00:26:21 +0000 (00:26 +0000)] 
Fix a harmless compiler warning.

FossilOrigin-Name: 3ca0b7d54d73d07cd6b32e650a809174bb1cd66ce5ecdb36f65b70899ea05824

4 years agoNew test-control that returns the number of calls to
drh [Mon, 31 Aug 2020 18:49:04 +0000 (18:49 +0000)] 
New test-control that returns the number of calls to
sqlite3BtreeMovetoUnpacked() on the main database and then resets the
counter.  This only works for SQLITE_DEBUG builds.

FossilOrigin-Name: dca5b91926431768babac28a6faf7674a5014db95caba727995b470e92b3182a

4 years agoFix the documentation for the OP_IdxGT family of opcodes to show that the
drh [Mon, 31 Aug 2020 12:29:03 +0000 (12:29 +0000)] 
Fix the documentation for the OP_IdxGT family of opcodes to show that the
P5 operand is not used.

FossilOrigin-Name: 62f7d2a61259f296ffdcb3b3ee1a13925c4563ac8ed669f8a8a63fc7bc3a0a37

4 years agoFix a sanitizer warning in zipfile.c.
dan [Sat, 29 Aug 2020 19:00:19 +0000 (19:00 +0000)] 
Fix a sanitizer warning in zipfile.c.

FossilOrigin-Name: ded1a75b3cf39834d38a385f38ae969b296f6c9409856b7eea08645e861b1ac2

4 years agoImprove performance of wal-mode locking on unix in cases where there are hundreds...
dan [Sat, 29 Aug 2020 15:15:07 +0000 (15:15 +0000)] 
Improve performance of wal-mode locking on unix in cases where there are hundreds of connections to a single database within the same process.

FossilOrigin-Name: a1c19eea8f141b89a0921da0724096feb21a772ef6654f164e2c36ebf9f7871e

4 years agoFix handling of an xShmLock(SHARED, UNLOCK) call when the caller does not hold any... unixshmlock-opt
dan [Fri, 28 Aug 2020 20:01:06 +0000 (20:01 +0000)] 
Fix handling of an xShmLock(SHARED, UNLOCK) call when the caller does not hold any lock on the specified slot, but another connection in the same process holds an EXCLUSIVE.

FossilOrigin-Name: 3eb365027b885e1f61965efd53a3643b6ff441ae01e79038a091314516a50dd4

4 years agoModify the unixShmLock() function to avoid iterating through the (possibly large...
dan [Fri, 28 Aug 2020 19:27:15 +0000 (19:27 +0000)] 
Modify the unixShmLock() function to avoid iterating through the (possibly large) set of connections to the same database file.

FossilOrigin-Name: e0faddf0dfc3a40b6b94408296dd781dd0264ecc9f2129ce4405438433fb00e0

4 years agoAdd the miscellaneous 'series' extension to the shell.
mistachkin [Fri, 28 Aug 2020 18:47:39 +0000 (18:47 +0000)] 
Add the miscellaneous 'series' extension to the shell.

FossilOrigin-Name: fc0856dccfab273d50457052fa3c6da768d0eb2504ad04d9540da4e3222fc829

4 years agoUpdate Lemon documentation. Patches from sgbeal.
drh [Fri, 28 Aug 2020 13:10:00 +0000 (13:10 +0000)] 
Update Lemon documentation.  Patches from sgbeal.

FossilOrigin-Name: f5dc83442bf010bc4083e083b3a1acbb9918b7e685ca676dd899a0e09df196bc

4 years agoFix a couple of unreachable branches.
drh [Fri, 28 Aug 2020 12:58:21 +0000 (12:58 +0000)] 
Fix a couple of unreachable branches.

FossilOrigin-Name: f2d26f2b11317abd4f993faa1a4df7afcd1a2d4e448ecc69ca05e9ebf102cd62

4 years agoAdd fts5 test to confirm that for a table with columns a, b, c and d, "{a b}" and...
dan [Fri, 28 Aug 2020 11:19:49 +0000 (11:19 +0000)] 
Add fts5 test to confirm that for a table with columns a, b, c and d, "{a b}" and "-{c d}" are handled similarly.

FossilOrigin-Name: 1a04920998368e56276fd0b100be8343609c6ff8a731cf8e26a0490f9c6dabdf

4 years agoRemove a (harmless) redundant variable from the CLI implementation.
drh [Thu, 27 Aug 2020 20:55:54 +0000 (20:55 +0000)] 
Remove a (harmless) redundant variable from the CLI implementation.

FossilOrigin-Name: 3f7bbb840de0a9b1ca89288805cb151aea6fcb82efda9ba39f51abf1b17c070b

4 years agoInclude the original text of the CHECK constraint in the error message for
drh [Thu, 27 Aug 2020 18:36:30 +0000 (18:36 +0000)] 
Include the original text of the CHECK constraint in the error message for
anonymous CHECK constraints.

FossilOrigin-Name: 5ce34a955bb36d77edc9951cb7ac2ef9c876d7d3ff5852af682f558e248f428c

4 years agoApple the same fix for ticket [9eda2697f5cc1aba] to text-to-integer
drh [Thu, 27 Aug 2020 16:28:30 +0000 (16:28 +0000)] 
Apple the same fix for ticket [9eda2697f5cc1aba] to text-to-integer
conversions that was done for floating point conversions by
check-in [1c76f1d8ec0937a2].

FossilOrigin-Name: aafb7a21041090e529491b0ce30c3902420be0551b1b2c55840a5fbb9105fb7d

4 years agoDo not attempt to run test script analyze3.test as part of the "prepare" permutation.
dan [Thu, 27 Aug 2020 14:53:47 +0000 (14:53 +0000)] 
Do not attempt to run test script analyze3.test as part of the "prepare" permutation.

FossilOrigin-Name: f7f13cb1bc699c034a3f5f7a2431c8055cb79e2a14d5e70e1fc5dd6dec00fb26

4 years agoEnhance the ".databases" command in the CLI so that it shows the result
drh [Wed, 26 Aug 2020 19:07:18 +0000 (19:07 +0000)] 
Enhance the ".databases" command in the CLI so that it shows the result
of sqlite3_db_readonly() and sqlite3_txn_state() for each database file.

FossilOrigin-Name: 0ffd16d23dd3b6467cce31af506c70fde44c3796d386c2a03896e43a6d683e60

4 years agoIf the argument to the ".read" command in the CLI begins with "|" then
drh [Wed, 26 Aug 2020 10:50:48 +0000 (10:50 +0000)] 
If the argument to the ".read" command in the CLI begins with "|" then
run the remainder of the argument as a command and read input from the
output of that command.

FossilOrigin-Name: 6c716f4b556ea8f9c9f15cffd81cb970488eadf1d5da2ba6b366d3bdeb36e492

4 years agoAdd support for the sqlite3_txn_state() interface.
drh [Tue, 25 Aug 2020 19:09:07 +0000 (19:09 +0000)] 
Add support for the sqlite3_txn_state() interface.

FossilOrigin-Name: ad195e3dd89d0f33b50070c18fb8f43c4eb24162515dfdd7c04d9e7d96b902a2

4 years agoReduce the N in the logN term for the sorting cost associated with computing
drh [Mon, 24 Aug 2020 23:44:27 +0000 (23:44 +0000)] 
Reduce the N in the logN term for the sorting cost associated with computing
DISTINCT by B-Tree by half, under the assumption that the DISTINCT will
eliminate about half the rows of output.  This is really a wild guess.  But
we do not have any better way of estimating what the row-count reduction due
to DISTINCT will actually be.

FossilOrigin-Name: 8787417ec1da8071d84c6ff0d7a90b5fd458ab6baba871327f36bc4e1bceca61

4 years agoCorrectly handle expressions like "x IS (not) true/false" within the rhs of IN()...
dan [Mon, 24 Aug 2020 10:52:52 +0000 (10:52 +0000)] 
Correctly handle expressions like "x IS (not) true/false" within the rhs of IN() expressions. Fix for [f3ff1472].

FossilOrigin-Name: 493a25949b9a6d0be82169b597133e491d8be4f4147b6eae135b06c1d810abd3

4 years agoFix a crash that could occur in SQLITE_MAX_EXPR_DEPTH=0 builds when processing SQL...
dan [Thu, 20 Aug 2020 16:25:26 +0000 (16:25 +0000)] 
Fix a crash that could occur in SQLITE_MAX_EXPR_DEPTH=0 builds when processing SQL containing syntax errors.

FossilOrigin-Name: 5f58dd3a19605b6f49b4364fa29892502eff35f12a7693a8694100e1844711ea

4 years agoAvoid a buffer overrun in test code that could occur if certain test functions were...
dan [Thu, 20 Aug 2020 11:03:33 +0000 (11:03 +0000)] 
Avoid a buffer overrun in test code that could occur if certain test functions were passed a hex-string containing an odd number of digits.

FossilOrigin-Name: 3c5e63c22ffbfeb66eb6ee38912d29fad6f2bd4d74b6a25e89bd36bf40eaa661

4 years agoTry to make SQLite easier to compiler for Mac Catalyst. See
drh [Wed, 19 Aug 2020 23:51:54 +0000 (23:51 +0000)] 
Try to make SQLite easier to compiler for Mac Catalyst. See
[https://sqlite.org/forum/forumpost/803387a1c5|forum post 803387a1c5].

FossilOrigin-Name: e1595a20d71e61957944cc2b634578968cda8fba08a1f1e75edba20dc9c6080b

4 years agoDo not skip over TK_IF_NULL_ROW operators when bypassing TK_COLLATE operators.
drh [Wed, 19 Aug 2020 23:32:06 +0000 (23:32 +0000)] 
Do not skip over TK_IF_NULL_ROW operators when bypassing TK_COLLATE operators.
Fix to check-in [ac31edd3eeafcef4] which was itself a fix for ticket
[45f4bf4eb4ffd788].

FossilOrigin-Name: 871f2ddcfbb9196dbd851a350e3471ee6d242d86bbd755201f7e2406fce3ac55

4 years agoUpdate releasetest_data.tcl so that the "Fast-One" configuration runs bigmmap.test...
dan [Wed, 19 Aug 2020 15:24:19 +0000 (15:24 +0000)] 
Update releasetest_data.tcl so that the "Fast-One" configuration runs bigmmap.test as part of release testing.

FossilOrigin-Name: a0aa35aaa5694a96638a7c7b1cd69c7523750cbe95831a13c1ee5a6d48256b76

4 years agoFix a problem in test file bigmmap.test.
dan [Wed, 19 Aug 2020 15:21:52 +0000 (15:21 +0000)] 
Fix a problem in test file bigmmap.test.

FossilOrigin-Name: d8e47382160e98be646ce3ba568578493088d1bb11d513ded3e00b576fb07f06

4 years agoFix the -quote option on the CLI to set the correct column separator.
drh [Mon, 17 Aug 2020 09:11:21 +0000 (09:11 +0000)] 
Fix the -quote option on the CLI to set the correct column separator.

FossilOrigin-Name: c778f8295c3c9b6cd6107b33fd7664ae75c97840fc974c9f971755a523f185c4

4 years agoOptimization to sqlite3BeginWriteOperation().
drh [Sun, 16 Aug 2020 00:30:44 +0000 (00:30 +0000)] 
Optimization to sqlite3BeginWriteOperation().

FossilOrigin-Name: 2173d4c6e3addc75964508f2fc8e42755376b3bc285286fa90df4831a6fa280b

4 years agoOptimization of the sqlite3SrcListDelete() routine.
drh [Sat, 15 Aug 2020 23:48:22 +0000 (23:48 +0000)] 
Optimization of the sqlite3SrcListDelete() routine.

FossilOrigin-Name: 1b4acd1ac4a8d24f8804c6d0770f5b0022f569d51742b6954b26e525f04d38ca

4 years agoRemove more unnecessary sqlite3GetVdbe() calls, replacing them with assert()s.
drh [Sat, 15 Aug 2020 22:23:00 +0000 (22:23 +0000)] 
Remove more unnecessary sqlite3GetVdbe() calls, replacing them with assert()s.

FossilOrigin-Name: b7dc932197665f0ebde3ffb8f0785c22da07ce307cfd5f0eab69e86e4b38fcde

4 years agoAvoid unnecessary calls to the sqlite3GetVdbe() routine. Add assert()
drh [Sat, 15 Aug 2020 21:55:14 +0000 (21:55 +0000)] 
Avoid unnecessary calls to the sqlite3GetVdbe() routine.  Add assert()
statements to prove each call is unnecessary.

FossilOrigin-Name: 86d3790caf92e9cb7a9aaaa110f309b4b6945ac30cfd53fc3e5aa1ec3075ada5

4 years agoOmit the unnecessary not-NULL check on the upper bound of a forward index
drh [Sat, 15 Aug 2020 19:58:59 +0000 (19:58 +0000)] 
Omit the unnecessary not-NULL check on the upper bound of a forward index
range scan.  The subsequent OP_IdxGT will always catch the NULL.  Similarly,
omit the not-NULL check on the lower bound of a reverse index range scan,
as the SeekLE opcode will disallow the NULL.

FossilOrigin-Name: e51ecadcbdef5ce6e41d68412aee70aa4a1416c850358a6fa7e9a1ab443e719d

4 years agoWhen doing an UPDATE or DELETE using a multi-column index where only a few
drh [Fri, 14 Aug 2020 21:51:02 +0000 (21:51 +0000)] 
When doing an UPDATE or DELETE using a multi-column index where only a few
of the earlier columns of the index are useful for the index lookup,
postpone doing the main table seek until after all WHERE clause constraints
have been evaluated, in case those constraints can be covered by unused
later terms of the index, thus avoiding unnecessary main table seeks.

FossilOrigin-Name: 7fee0b1075d622835dc6828c061be516102da9e2809f52d9ab7c4bbef7dfb871

4 years agoUpdate the version number to 3.34.0 for the next development cycle.
drh [Fri, 14 Aug 2020 21:37:32 +0000 (21:37 +0000)] 
Update the version number to 3.34.0 for the next development cycle.

FossilOrigin-Name: 70f34f3df5358d36c8578afbc05756450c46da36b8dce339ed87fc0b9d4057cb

4 years agoOptimizations to the logic that converts main table accesses into equivalent delete-bytecode-optimization
drh [Fri, 14 Aug 2020 21:32:16 +0000 (21:32 +0000)] 
Optimizations to the logic that converts main table accesses into equivalent
index accesses.  Code is now slightly smaller and faster than trunk.

FossilOrigin-Name: 611b640442025e57b8e161f8ddac1f19bd3be9a3d5266f4cef287595c3ed9257

4 years agoFor UPDATE and DELETE, use OP_DeferredSeek always. If the seek must later
drh [Fri, 14 Aug 2020 20:04:26 +0000 (20:04 +0000)] 
For UPDATE and DELETE, use OP_DeferredSeek always.  If the seek must later
be resolved, add the OP_FinishSeek opcode after all WHERE clause terms have
been processed.  This obviates the need for the WHERE_SEEK_TABLE and
WHERE_SEEK_UNIQ_TABLE flags to sqlite3WhereBegin() and the ensuing
complication, and it allows the covering index optimization to be used
further into WHERE clause processing.

FossilOrigin-Name: a495f60d315e34b1a1bc5fb1336e05047add52c8fb2710b577c97b10a5e734f6

4 years agoExperimental change to try to get some DELETE operations to access values
drh [Fri, 14 Aug 2020 17:39:31 +0000 (17:39 +0000)] 
Experimental change to try to get some DELETE operations to access values
using the index rather than the main table, so as to avoid unnecessary
main table seeks.

FossilOrigin-Name: 2f7cb6ab39e54fd6eb3a280d3022c3d4f4ed92e83af7226e63e0199a96397a6b

4 years agoFix an inconsequential memory leak in sqldiff. Update the "Sanitize" case in wapptest...
dan [Fri, 14 Aug 2020 16:14:40 +0000 (16:14 +0000)] 
Fix an inconsequential memory leak in sqldiff. Update the "Sanitize" case in wapptest.tcl to use -fsanitize=address,undefined, and to run more tests.

FossilOrigin-Name: 613fb5c2525be77e48bad0a74e8b7bf53489365060fb9c7713a0caddb1820c71

4 years agoVersion 3.33.0 version-3.33.0
drh [Fri, 14 Aug 2020 13:23:32 +0000 (13:23 +0000)] 
Version 3.33.0

FossilOrigin-Name: fca8dc8b578f215a969cd899336378966156154710873e68b3d9ac5881b0ff3f

4 years agoFix "make test" handling of environment variable QUICKTEST_OMIT so that it can be...
dan [Thu, 13 Aug 2020 17:27:57 +0000 (17:27 +0000)] 
Fix "make test" handling of environment variable QUICKTEST_OMIT so that it can be used to exclude test files in other than the main test directory.

FossilOrigin-Name: b050976079ba4a22d4dfeadb81f40cf71da6588c95bf2b634d88b416de5accd7

4 years agoImprovement on the previous fix.
drh [Wed, 12 Aug 2020 16:19:12 +0000 (16:19 +0000)] 
Improvement on the previous fix.

FossilOrigin-Name: f6cffa2d50bfebe5b025f412b7a49b7fdafb798aaf1ddc80e6656ccd1f012a7f

4 years agoFix an assertion() fault in ALTER TABLE found by OSSFuzz. Test case in TH3.
drh [Wed, 12 Aug 2020 15:39:43 +0000 (15:39 +0000)] 
Fix an assertion() fault in ALTER TABLE found by OSSFuzz.  Test case in TH3.

FossilOrigin-Name: 41de742c5713ab1a0c0c15c44af3ffac40bbc527ae2dc11d829ba9773eb4c84a

4 years agoFix harmless USAN warnings from gcc9.
drh [Tue, 11 Aug 2020 21:53:42 +0000 (21:53 +0000)] 
Fix harmless USAN warnings from gcc9.

FossilOrigin-Name: 72c4c69fea13f5e24df25645e6941ce3ff896f0a3c73cd63329f819cc907ab40

4 years agoNew test cases for the use of the ieee754 and decimal extensions in the CLI.
drh [Tue, 11 Aug 2020 18:17:04 +0000 (18:17 +0000)] 
New test cases for the use of the ieee754 and decimal extensions in the CLI.

FossilOrigin-Name: bc1590f32fc4e2696b4126bd0302cb6405031dd4f55b86f3f1611f7f39299f85

4 years agoModify a test for corruption within the wal checkpoint code to account for the pendin...
dan [Tue, 11 Aug 2020 18:00:10 +0000 (18:00 +0000)] 
Modify a test for corruption within the wal checkpoint code to account for the pending-byte page. And for the fact that test configurations might move the pending-byte page.

FossilOrigin-Name: 7dfb74c37e678dde347d9d85846672f82ad282e300e32676330b764be2e4d580

4 years agoMinor comment fixes. No changes to code.
drh [Tue, 11 Aug 2020 17:20:02 +0000 (17:20 +0000)] 
Minor comment fixes.  No changes to code.

FossilOrigin-Name: 533aeb90085d989078073067172135db98e37e00be84f99757255858126196e4

4 years agoRemove an unused #define from sqliteInt.h.
drh [Tue, 11 Aug 2020 16:46:21 +0000 (16:46 +0000)] 
Remove an unused #define from sqliteInt.h.

FossilOrigin-Name: d5b254f94c1ce6f0f26024d0b9c80e610f7cc891360bc4c2cb116e9eda2874b3

4 years agoSimplify #ifdefs associated with Parse.eParseMode. Fix an #ifdef error
drh [Mon, 10 Aug 2020 21:01:32 +0000 (21:01 +0000)] 
Simplify #ifdefs associated with Parse.eParseMode.  Fix an #ifdef error
associated with SQLITE_OMIT_AUTOVACUUM.

FossilOrigin-Name: 5bbd4bddd3b9fa64d134ed62bce3eb4a09456bf24dec2474b5d764a3a3775964

4 years agoFix a problem causing test failures in corruptL.test for some permutations.
dan [Mon, 10 Aug 2020 19:35:01 +0000 (19:35 +0000)] 
Fix a problem causing test failures in corruptL.test for some permutations.

FossilOrigin-Name: 680bdc6524ad6af0e74401e96e3a576145042fb865c1582bfaffc11d4ff76a4f

4 years agoFix a problem building fts3 separately from the amalgamation.
dan [Mon, 10 Aug 2020 19:30:21 +0000 (19:30 +0000)] 
Fix a problem building fts3 separately from the amalgamation.

FossilOrigin-Name: 2a167cfbb2abd76e1b33116b671e58a767fc972dd79bee0004aad09a1dd2b487

4 years agoFix a shell tool build error caused by some combinations of options.
dan [Mon, 10 Aug 2020 14:34:36 +0000 (14:34 +0000)] 
Fix a shell tool build error caused by some combinations of options.

FossilOrigin-Name: 33cd5341ac2ec84c86fbd3371f15c9153f83c1739f85dd8c3956fe2093d49afd

4 years agoFix harmless compiler warnings that surface in newer versions of GCC.
drh [Mon, 10 Aug 2020 14:18:00 +0000 (14:18 +0000)] 
Fix harmless compiler warnings that surface in newer versions of GCC.

FossilOrigin-Name: 9d670a318381f219b467653f5f9539097808b887ae37291ce13be462dedfb18d

4 years agoFix another test script problem in walvfs.test.
dan [Mon, 10 Aug 2020 11:21:48 +0000 (11:21 +0000)] 
Fix another test script problem in walvfs.test.

FossilOrigin-Name: 1b89d3931e368a66be5075bdf49eedd3839591ee268e3ac293040b5bf7639746

4 years agoFix minor test script problems.
dan [Mon, 10 Aug 2020 10:43:43 +0000 (10:43 +0000)] 
Fix minor test script problems.

FossilOrigin-Name: 5d54cd44d076cfede60bd404a59bd700a950420b961ae9fdec4365a3e4ed18ed

4 years agoFix a harmless compiler warning.
drh [Sun, 9 Aug 2020 17:58:45 +0000 (17:58 +0000)] 
Fix a harmless compiler warning.

FossilOrigin-Name: 6f91769fdb0734905f05e1f4d1c81364e6e874450c9f13a0de2259d564f582a7

4 years agoFix the check-in at [41474548ef3f7454] so that it computes the pointer in
drh [Sat, 8 Aug 2020 20:15:16 +0000 (20:15 +0000)] 
Fix the check-in at [41474548ef3f7454] so that it computes the pointer in
time for error checking at the end of the routine in the case of a non-OOM
error.

FossilOrigin-Name: 13d2fed760e7d0def573c56b7181f45622b0ed78d61952a6de901f96949d074e

4 years agoFix test script busy2.test so that it works with the inmemory-journal permutation.
dan [Sat, 8 Aug 2020 20:11:22 +0000 (20:11 +0000)] 
Fix test script busy2.test so that it works with the inmemory-journal permutation.

FossilOrigin-Name: b412d1d175fde9c6402b6fda7c73ac2db2471f2c9416d5c5073549732dea6d98

4 years agoChanges to busy2.test, corruptL.test and fkey5.test so that new test cases pass with...
dan [Sat, 8 Aug 2020 20:03:12 +0000 (20:03 +0000)] 
Changes to busy2.test, corruptL.test and fkey5.test so that new test cases pass with all test permutations.

FossilOrigin-Name: d62d1711e2b0f18bb4dfb8899299c8e5b4c8205989b719699da60bcfe1884cf3

4 years agoFix a test script problem causing an error for SQLITE_ENABLE_OVERSIZE_CELL_CHECK...
dan [Sat, 8 Aug 2020 19:52:53 +0000 (19:52 +0000)] 
Fix a test script problem causing an error for SQLITE_ENABLE_OVERSIZE_CELL_CHECK builds in corruptL.test.

FossilOrigin-Name: a85520e0074d574cb4ac5239bb225f8f0b0b3ea1d782cd1cbc79797b4c583fb0

4 years agoMove a pointer computation until after OOM checks to avoid a nuisance USAN
drh [Sat, 8 Aug 2020 17:55:39 +0000 (17:55 +0000)] 
Move a pointer computation until after OOM checks to avoid a nuisance USAN
warning.

FossilOrigin-Name: 41474548ef3f7454e44fbf648429730b3f5ba1ff0086fd2f2d0e59b8f51d85e6