mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-18 10:21:03 +03:00
Improved comment on the codeDeferredSeek() routine. No code changes.
FossilOrigin-Name: 54f49f65ac943263a1622b1efe519c8a61f30f23694fd4fec89ad2bf0e17b473
This commit is contained in:
@@ -1118,13 +1118,21 @@ static void codeCursorHint(
|
||||
**
|
||||
** OP_DeferredSeek $iCur $iRowid
|
||||
**
|
||||
** Which causes a seek on $iCur to the row with rowid $iRowid.
|
||||
**
|
||||
** However, if the scan currently being coded is a branch of an OR-loop and
|
||||
** the statement currently being coded is a SELECT, then P3 of OP_DeferredSeek
|
||||
** is set to iIdxCur and P4 is set to point to an array of integers
|
||||
** containing one entry for each column of the table cursor iCur is open
|
||||
** on. For each table column, if the column is the i'th column of the
|
||||
** index, then the corresponding array entry is set to (i+1). If the column
|
||||
** does not appear in the index at all, the array entry is set to 0.
|
||||
** the statement currently being coded is a SELECT, then additional information
|
||||
** is added that might allow OP_Column to omit the seek and instead do its
|
||||
** lookup on the index, thus avoiding an expensive seek operation. To
|
||||
** enable this optimization, the P3 of OP_DeferredSeek is set to iIdxCur
|
||||
** and P4 is set to an array of integers containing one entry for each column
|
||||
** in the table. For each table column, if the column is the i'th
|
||||
** column of the index, then the corresponding array entry is set to (i+1).
|
||||
** If the column does not appear in the index at all, the array entry is set
|
||||
** to 0. The OP_Column opcode can check this array to see if the column it
|
||||
** wants is in the index and if it is, it will substitute the index cursor
|
||||
** and column number and continue with those new values, rather than seeking
|
||||
** the table cursor.
|
||||
*/
|
||||
static void codeDeferredSeek(
|
||||
WhereInfo *pWInfo, /* Where clause context */
|
||||
|
||||
Reference in New Issue
Block a user