drh
4f65b3bbfb
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
2020-09-30 18:03:22 +00:00
drh
395a60dad4
Back out the incorrect optimization of check-in [e51ecadcbdef5ce6] as
...
ticket [5c4e7aa793943803] reports a case where the optimization does not
work.
FossilOrigin-Name: 7395e96b8cc370c8ac2657fb805915b0992a15d80f8bf256d277b423fec64675
2020-09-30 17:32:22 +00:00
drh
af3711536b
In the query flattener when substituting expression Y in place of expression X,
...
if X is marked has having come from an ON or USING clause of a LEFT JOIN, then
be sure that all subexpressions of Y, not just the root node of Y, are
similarly marked. Otherwise, if Y is an AND operator, it will be split up
during WHERE clause analysis and the subexpressions will not get the special
treatment needed by LEFT JOIN ON/USING clauses.
Fix for ticket [66e4b0e271c47145].
FossilOrigin-Name: 69f9eb7343a416c5ab426c8e1b9f0ae576544b4ccc5d87f5481c8ff884f696e1
2020-09-30 15:36:03 +00:00
shearer
1e6c58dee2
Better understanding of savepoint code
...
FossilOrigin-Name: ce6d8d621505f25e4fd43e7cf27445e1a2ddd58d79108d63499c2ae30cc9f610
2020-09-30 09:17:53 +00:00
drh
a957e22fa4
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
2020-09-30 00:48:45 +00:00
drh
f287d00108
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
2020-09-30 00:10:22 +00:00
drh
a54e1b1fc8
The OP_SeekScan opcode is a no-op if the cursor is not pointing to a valid
...
row upon entry.
FossilOrigin-Name: 4afc96b5fe80bd192a23e0230edc207e641931c3bf48296b1a385c786386f1b7
2020-09-29 23:52:25 +00:00
drh
0b2949c36e
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
2020-09-29 20:22:19 +00:00
drh
dfbaae7572
Improved comments on the new OP_SeekScan opcode.
...
FossilOrigin-Name: 6110fdd5bb7b4ae5c065404c802ae726362ef084966b73cffe58c4bfb98689d2
2020-09-29 17:29:11 +00:00
drh
c40076a8cf
Improved performance by manually in-lining the sqlite3VdbeIdxKeyCompare()
...
routine for the OP_IdxGT opcode and its kin.
FossilOrigin-Name: 2206a2c848a122ee220c89427f9be0460cba0706f58852139d7b37184ce29a29
2020-09-29 16:05:09 +00:00
drh
46f0f4e56d
Typo fix to repair the early-out optimization. Also avoid unnecessary
...
OP_SeekHit opcodes.
FossilOrigin-Name: 8fd7d8dfcd515aa6b65d6eb27b033d3b3a31db467b9100cc13c62bc60113019e
2020-09-29 15:32:54 +00:00
drh
f761d937c2
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
2020-09-29 01:48:46 +00:00
drh
68cf0ace3d
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
2020-09-28 19:51:54 +00:00
drh
75fa266341
Small performance improvement and size reduction by reducing the size of
...
the WhereTerm object.
FossilOrigin-Name: 43f7ddad800acf40917c5cc3d926640dbec17c34d5f1cbbb74bd80f44eeed0a5
2020-09-28 15:49:43 +00:00
drh
f573b4fb94
Avoid the possibility of integer overflow on the --pagecache option to
...
the CLI. See [forum:10a2892377|forum post 10a2892377]
FossilOrigin-Name: d3d13df31a97648f952beb2e1a783f947a80ec843227985ad9ebd14452d2f654
2020-09-28 13:34:05 +00:00
shearer
f36cbefe81
Clarify
...
FossilOrigin-Name: 14dba0f3b5defef148c78e7613fc33044598008df4dee834f752bd10891e3684
2020-09-25 17:17:24 +00:00
shearer
399b740986
Distinguish between checkpoints (WAL-only, implementation specific) and
...
savepoints (Btree internal implementation of COMMIT/ROLLBACK subtransactions)
and SQL SAVEPOINT (identical name for SQL-level subtransactions)
FossilOrigin-Name: ae686ab6a84ad19fec5873034e873b3d8d933a792b9742626627fa0677002a08
2020-09-25 16:54:55 +00:00
shearer
3a8847a5fc
Reset to trunk's func. Still learning Fossil.
...
FossilOrigin-Name: a4840cf5c682a22f32eb1890fc4ecc35a367d967142b284e5993c7faf512d71e
2020-09-25 14:26:49 +00:00
shearer
fc1070bfc4
More classification of functions.
...
Fix incorrect comment that sqlite3BtreeCursorHasHint() is only used within
asserts.
FossilOrigin-Name: 78d8db7cb73284644cde1636a14e4e3598e1a2a7e94a04dfc7406422aab93ae5
2020-09-25 13:56:31 +00:00
shearer
9e3b8ae1e0
Merging with trunk
...
FossilOrigin-Name: 3a576608e6f26ae8642ec4b2b1c2f2b91b1acda3dc9928b9d67e401684c254b3
2020-09-25 09:42:37 +00:00
shearer
9a28680095
Add reminder comment that, by definition, these functions won't be called from
...
elsewhere in SQLite. Useful to remember for beginners who may suspect unusued code.
FossilOrigin-Name: 6f5c1fde245e18d80dd5b1d33ad36b8320960dc644c666351b0c9b60d8e545ca
2020-09-25 08:17:58 +00:00
shearer
abd2779560
Added context to explain that the test coverage is about MC/DC in general, not
...
just an SQLite-specifc test harness.
FossilOrigin-Name: 770dbedddc7ce7fa2355df5db5f77ef08c53549cf7c85d0496b1978e0612c1ab
2020-09-24 11:41:18 +00:00
shearer
153fa608bf
Group metadata definitions together
...
FossilOrigin-Name: 5c306f42514a42fce40fddbfed83df71c3897cc36843ed4e9e968de85ec80b42
2020-09-24 06:37:18 +00:00
shearer
b4e313a5b0
Figured out where/how sqlite3BtreeRowCountEst() is called
...
FossilOrigin-Name: a46537153c0db06a324320fb5fb1a6aa5191a7559b6d1cabfa6bf4b9457b3bae
2020-09-23 17:31:30 +00:00
mistachkin
273ee15121
Fix harmless compiler warning seen with MSVC.
...
FossilOrigin-Name: 4591ee03d7a1ef3f0f6ad0629493fdb7a1c0ddb3277a9e87aa244cb0ca770593
2020-09-21 20:18:44 +00:00
dan
7548ab20e6
In fts5 integrity checks, do not compare the contents of the index against an external content table unless specifically requested.
...
FossilOrigin-Name: 782163693f37aeb65209bebbaeb6659a36881b8c4b4bec778b366658488bf966
2020-09-21 14:53:21 +00:00
drh
9ca41fbfa9
Remove a new assert() that the compiler finds is always true at compile-time,
...
to avoid a compiler warning.
FossilOrigin-Name: 8bbaee238593741da107b92b254cb5f0cf8b6bcc760bf2b25d20e46c8edee2a9
2020-09-20 13:33:28 +00:00
drh
79d9af960b
Attempt to silence harmless static analyzer warnings in Lemon and in the
...
Lemon-generated parser.
FossilOrigin-Name: de8ce22a46c90afa5475cd24c28b7a82b26410dc72d662af2f9d9e5e528e0eec
2020-09-20 12:10:28 +00:00
dan
68cffa65fb
Fix a typo in the documentation comment for sqlite3_preupdate_hook().
...
FossilOrigin-Name: 4542d194e2fef5e21e1c3679914bd9e21fab31cfb111cf640524fb3514a8afa3
2020-09-17 21:11:25 +00:00
dan
39c7125a97
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
2020-09-17 17:01:16 +00:00
dan
f2e151aeab
Fix a problem in fts5 causing the in-memory hash table to be flushed more often than necessary.
...
FossilOrigin-Name: 9a55601d072bcd1ac0f6f1633216c7c8b3ff3e037451e2cfd285cbe19b60b9fc
2020-09-17 15:16:50 +00:00
shearer
acc225a7a1
Order btree.h by logical function, add comments
...
FossilOrigin-Name: ab53b317953c07c12970e530efda0ce39fa259dc29be980c1aa4784dcf9a39fb
2020-09-17 15:04:16 +00:00
dan
3acd3fb9d8
Fix a "jump depends on unitialized value" valgrind/asan error in fts5.
...
FossilOrigin-Name: 66f94d623c16b4527e42f0519e32ec78eaf9ee6fd61ee7d0eb657cc59a8f7d68
2020-09-17 14:16:02 +00:00
drh
f2fa084cf1
Earlier detection of corruption in the rtreecheck() SQL function to prevent
...
a (harmless) read of an uninitialized value.
FossilOrigin-Name: e2074b24788149562b15022ccd2784d6649f08ebc41410e3bfb2401baf0892e2
2020-09-17 11:56:04 +00:00
drh
bc2e95140b
Prevent use-after-free of the u.vtab.idxStr string following an OOM
...
while generating the OP_VFilter opcode.
FossilOrigin-Name: 751fe4edb2d4602e652523c2759de3f4fffd29d5c66cae68caf45b30fd8b750a
2020-09-17 11:32:14 +00:00
drh
f1ea425560
DISTINCT may not be ignored inside a UNION ALL common table expression.
...
Fix for ticket [c51489c3b8f919c5]
FossilOrigin-Name: 7d2b590d3abd66a7e6ae9046198eb669e0fd2f223f7691281e9ad795a12b8903
2020-09-17 00:46:09 +00:00
drh
d96e3821e4
Fix a pair of assert()s in "PRAGMA foreign_key_check" that might have given
...
a false-positive following an OOM.
FossilOrigin-Name: 9ea3039b538ffd0f348c8fbc9452af1fbf899a1f668af9a2404bdd0f8dd21351
2020-09-16 19:48:23 +00:00
drh
18ef40e563
Fix harmless compiler warnings in Lemon.
...
FossilOrigin-Name: 6c94ba4b1c16b676978808dcb24f63c2f22915af5dcfe9f635c037011affcf4b
2020-09-16 16:55:56 +00:00
dan
b5a69238b4
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
2020-09-15 20:48:30 +00:00
drh
ddcfe92105
Do not invoke usleep() for more than 999999 microseconds.
...
FossilOrigin-Name: 1f5ed852f25515bbc0a7aaf236fdef40fa7e31805eee1249277fde4e68f95130
2020-09-15 12:29:35 +00:00
dan
86f477edaa
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
2020-09-11 15:01:49 +00:00
drh
94acc2ef42
Try again to fix the typo in the sqlite3_txn_state() documentation.
...
FossilOrigin-Name: 6d1ab0403c2855b595f5d294305f41f56a7a93503f2a58d1b1d12431d480704e
2020-09-10 15:09:11 +00:00
drh
4fb8452875
Fix typo in the documentation for the new sqlite3_txn_state() interface.
...
FossilOrigin-Name: 23f7d01758cbcf22bd34e78fb8284c7af18f3059a03c4ff6ab3e556ca11fce19
2020-09-10 14:54:57 +00:00
drh
786142a994
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
2020-09-10 12:41:46 +00:00
dan
ebd2ecdda7
Fix another (harmless in practice) tsan error in shared-cache mode.
...
FossilOrigin-Name: 5a74fa3f0a64f462c8add9beae231a9bbdd19e54d07b54f08726cb1411fc8d3a
2020-09-07 11:14:27 +00:00
drh
8ab0809473
Remove an artifical limitation on the length of columns in the "box"
...
output mode of the command-line shell.
FossilOrigin-Name: 783fa887c9ed1a7d72c310df1dd9de91c016061b05fdeec87fbb2a7eb0b952ea
2020-09-06 17:40:38 +00:00
drh
2b75d3beb0
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
2020-09-05 06:21:54 +00:00
dan
78f04753ae
Fix a tsan error that could occur when using shared-cache mode.
...
FossilOrigin-Name: de80bc87300257cc49d98e2d22e914211f213dce912f320c8b37b3883c73923c
2020-09-04 19:10:43 +00:00
dan
2b06b0769e
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
2020-09-04 17:30:59 +00:00
mistachkin
52cfe0312a
Fix harmless compiler warning.
...
FossilOrigin-Name: a711e8cd2c7b64e06241736ecef478ac64ddbe7b58e0933b6febba63f7fb06e1
2020-09-01 19:02:52 +00:00