Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a faulty assert() in the DELETE code generator. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
95f8ebdbf87326f23cd38e561ac5632b |
User & Date: | drh 2014-10-28 16:19:18.944 |
References
2014-10-29
| ||
01:26 | Fix problems with running UPDATE and DELETE against a VIEW and referencing the rowid in the WHERE clause. This is a cherrypick of [95f8ebdbf87326f2] and [8523670d50004f3]. (check-in: cc33e846c8 user: drh tags: branch-3.8.7) | |
Context
2014-10-29
| ||
01:26 | Fix problems with running UPDATE and DELETE against a VIEW and referencing the rowid in the WHERE clause. This is a cherrypick of [95f8ebdbf87326f2] and [8523670d50004f3]. (check-in: cc33e846c8 user: drh tags: branch-3.8.7) | |
2014-10-28
| ||
16:50 | Fix a crash that could occur if the WHERE clause of an UPDATE statement on a view that does not feature a column named "rowid" contains a term such as "rowid=?". (check-in: 8523670d50 user: dan tags: trunk) | |
16:19 | Fix a faulty assert() in the DELETE code generator. (check-in: 95f8ebdbf8 user: drh tags: trunk) | |
15:58 | Trivial simplification to the automatic index logic. (check-in: 23073a0539 user: drh tags: trunk) | |
Changes
Changes to src/delete.c.
︙ | ︙ | |||
477 478 479 480 481 482 483 | ** where-clause loop above. */ if( okOnePass ){ /* Just one row. Hence the top-of-loop is a no-op */ assert( nKey==nPk ); /* OP_Found will use an unpacked key */ assert( !IsVirtual(pTab) ); if( aToOpen[iDataCur-iTabCur] ){ | | | 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 | ** where-clause loop above. */ if( okOnePass ){ /* Just one row. Hence the top-of-loop is a no-op */ assert( nKey==nPk ); /* OP_Found will use an unpacked key */ assert( !IsVirtual(pTab) ); if( aToOpen[iDataCur-iTabCur] ){ assert( pPk!=0 || pTab->pSelect!=0 ); sqlite3VdbeAddOp4Int(v, OP_NotFound, iDataCur, addrBypass, iKey, nKey); VdbeCoverage(v); } }else if( pPk ){ addrLoop = sqlite3VdbeAddOp1(v, OP_Rewind, iEphCur); VdbeCoverage(v); sqlite3VdbeAddOp2(v, OP_RowKey, iEphCur, iKey); assert( nKey==0 ); /* OP_Found will use a composite key */ |
︙ | ︙ |