Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Part of the change in the previous check-in was incorrect and can result in an incorrect UPDATE for WITHOUT ROWID tables. This check-in fixes the problem. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | IN-operator-improvements |
Files: | files | file ages | folders |
SHA1: |
ee5f6eae57a656d09a4b3f7fbef664b2 |
User & Date: | drh 2014-08-04 21:26:58.927 |
Context
2014-08-05
| ||
00:53 | Improved VdbeCoverage() macros. A few minor simplifications to generated VDBE code. (Closed-Leaf check-in: 01f60027ad user: drh tags: IN-operator-improvements) | |
2014-08-04
| ||
21:26 | Part of the change in the previous check-in was incorrect and can result in an incorrect UPDATE for WITHOUT ROWID tables. This check-in fixes the problem. (check-in: ee5f6eae57 user: drh tags: IN-operator-improvements) | |
18:50 | Further enhancements to IN-operator processing. (check-in: 7fdf26da1d user: drh tags: IN-operator-improvements) | |
Changes
Changes to src/update.c.
︙ | ︙ | |||
433 434 435 436 437 438 439 | if( okOnePass ){ if( aToOpen[iDataCur-iBaseCur] ){ assert( pPk!=0 ); sqlite3VdbeAddOp4Int(v, OP_NotFound, iDataCur, labelBreak, regKey, nKey); VdbeCoverageNeverTaken(v); } labelContinue = labelBreak; | > | | < | 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 | if( okOnePass ){ if( aToOpen[iDataCur-iBaseCur] ){ assert( pPk!=0 ); sqlite3VdbeAddOp4Int(v, OP_NotFound, iDataCur, labelBreak, regKey, nKey); VdbeCoverageNeverTaken(v); } labelContinue = labelBreak; sqlite3VdbeAddOp2(v, OP_IsNull, pPk ? regKey : regOldRowid, labelBreak); VdbeCoverageIf(v, pPk==0); VdbeCoverageIf(v, pPk!=0); }else if( pPk ){ labelContinue = sqlite3VdbeMakeLabel(v); sqlite3VdbeAddOp2(v, OP_Rewind, iEph, labelBreak); VdbeCoverage(v); addrTop = sqlite3VdbeAddOp2(v, OP_RowKey, iEph, regKey); sqlite3VdbeAddOp4Int(v, OP_NotFound, iDataCur, labelContinue, regKey, 0); VdbeCoverage(v); }else{ |
︙ | ︙ |