more of the database files in the connection are read-only. Test cases
for this are in TH3.
FossilOrigin-Name: 2fa08c3963f008d4723c3f4f4496abcb6d4b575c85ba4a911a6aed5730b5948b
right after the OP_SeekGE. So use the P2 operand of OP_SeekScan to point
to the first instruction after OP_IdxGT. Problem found by dbsqlfuzz.
FossilOrigin-Name: 091d71939411bf2079098f09ddc0525f11f380119fd27114e2b3eec9a8ac0db4
in PRAGMA reverse_unordered_selects mode, as the OP_SeekScan only works
with forwards scans. Thanks to OSSFuzz for pointing out the problem to
us.
FossilOrigin-Name: c75c3a3b756635bfdab44e4b56a337e4a88af3a8803cd3e9a67abf3d0d3450dc
not try to use it there. Fix for ticket [2d5a3163563d559f]. Test
cases in TH3.
FossilOrigin-Name: dbec6910d9648f4907373c818a5cb347a2e487784208751ccecfacca752ff99d
later columns are constrained by an IN operator and the earlier index columns
limit the search to a small number of rows. Use the new OP_SeekScan opcode
which does scanning of the relevant range of the index but gives up and
falls back to doing a seek if the number of rows scanned grows to large,
in order to guard against pathological cases where the estimated number
of rows to be scanned is far too small.
FossilOrigin-Name: 4a43430fd23f88352c33b29c4c105b72f6dc821f94bf362040c41a1648c402e5
up based on the estimated number of comparisons needed to perform a seek.
FossilOrigin-Name: dc4172e6b8e1f62dc7329a3adb2223f290bc4c8055c265e88182ef432f4bcf10
ticket [5c4e7aa793943803] reports a case where the optimization does not
work.
FossilOrigin-Name: 7395e96b8cc370c8ac2657fb805915b0992a15d80f8bf256d277b423fec64675
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
simulate I/O errors in calls to sqlite3BtreeNext(), and in OP_SeekScan.
FossilOrigin-Name: 29cca775d3f5411624f0a8d55d34a038a24f1009d25b097315adb64e70c4b299
to VdbeBranchTaken() so that the VdbeBranchTaken() attributes the branch
to the correct opcode.
FossilOrigin-Name: 61fbe7aa7cc0e8fe3e6b1c5aec277183d8cd7c86b1e835c38e0b37a9b8063343
IN-earlyout optimization because the OP_IfNoHope opcode might move the
cursor.
FossilOrigin-Name: f3c36b840c9a29c0add28039db216f4207a308e5057fc76e3f0004024a8267ac
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
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
efficiently when there are two or more indexed IN clauses on a single table.
FossilOrigin-Name: 35505c68c1945c35babd2496e02bc4907a15c8e7b8d77f05f230bd0e9d4891d7
sqlite3BtreeMovetoUnpacked() on the main database and then resets the
counter. This only works for SQLITE_DEBUG builds.
FossilOrigin-Name: dca5b91926431768babac28a6faf7674a5014db95caba727995b470e92b3182a