Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | When building an ephemeral table of integers, do not assume that the table does not already contain N if the insert cursor points to N-1. Fix for ticket [61fe9745]. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
1c1b0862236f564283be08338790d649 |
User & Date: | dan 2017-04-24 14:16:55.419 |
References
2017-04-24
| ||
14:57 | • Closed ticket [61fe97454c]: Duplicate result using an IN operator in the WHERE clause plus 6 other changes (artifact: 3998d56c23 user: dan) | |
Context
2017-06-17
| ||
00:39 | When building an ephemeral table of integers, do not assume that the table does not already contain N if the insert cursor points to N-1. Fix for ticket [61fe9745]. Also increase the version number to 3.18.2. This is the release candidate. (check-in: e1b7102908 user: drh tags: branch-3.18) | |
2017-04-26
| ||
04:32 | Fix a subtle bug in Lemon discovered and reported on the mailing list by Kelvin Sherlock, who also suggested the correct fix. (check-in: 304689f8ac user: drh tags: trunk) | |
2017-04-24
| ||
16:14 | Bring in all the latest enhancements from trunk. (check-in: 031feebc94 user: drh tags: apple-osx) | |
14:16 | When building an ephemeral table of integers, do not assume that the table does not already contain N if the insert cursor points to N-1. Fix for ticket [61fe9745]. (check-in: 1c1b086223 user: dan tags: trunk) | |
2017-04-22
| ||
00:20 | Fix an assertion fault found by OSSFuzz. (check-in: e39769f442 user: drh tags: trunk) | |
Changes
Changes to src/btree.c.
︙ | ︙ | |||
8120 8121 8122 8123 8124 8125 8126 | ((pCur->curFlags&BTCF_ValidNKey)!=0 && pX->nKey==pCur->info.nKey) ); /* If the cursor is currently on the last row and we are appending a ** new row onto the end, set the "loc" to avoid an unnecessary ** btreeMoveto() call */ if( (pCur->curFlags&BTCF_ValidNKey)!=0 && pX->nKey==pCur->info.nKey ){ loc = 0; | < < < | 8120 8121 8122 8123 8124 8125 8126 8127 8128 8129 8130 8131 8132 8133 | ((pCur->curFlags&BTCF_ValidNKey)!=0 && pX->nKey==pCur->info.nKey) ); /* If the cursor is currently on the last row and we are appending a ** new row onto the end, set the "loc" to avoid an unnecessary ** btreeMoveto() call */ if( (pCur->curFlags&BTCF_ValidNKey)!=0 && pX->nKey==pCur->info.nKey ){ loc = 0; }else if( loc==0 ){ rc = sqlite3BtreeMovetoUnpacked(pCur, 0, pX->nKey, flags!=0, &loc); if( rc ) return rc; } }else if( loc==0 && (flags & BTREE_SAVEPOSITION)==0 ){ if( pX->nMem ){ UnpackedRecord r; |
︙ | ︙ |
Changes to test/in5.test.
︙ | ︙ | |||
232 233 234 235 236 237 238 239 240 | do_execsql_test 8.3 { INSERT INTO n1 VALUES(1, NULL), (2, NULL), (3, NULL); SELECT count(*) FROM n1 WHERE a IN (1, 2, 3) } 3 do_execsql_test 8.4 { SELECT count(*) FROM n1 WHERE a IN (SELECT +a FROM n1) } 3 finish_test | > > > > > > > > > > > > | 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 | do_execsql_test 8.3 { INSERT INTO n1 VALUES(1, NULL), (2, NULL), (3, NULL); SELECT count(*) FROM n1 WHERE a IN (1, 2, 3) } 3 do_execsql_test 8.4 { SELECT count(*) FROM n1 WHERE a IN (SELECT +a FROM n1) } 3 #------------------------------------------------------------------------- # Test that ticket 61fe97454c is fixed. # do_execsql_test 9.0 { CREATE TABLE t9(a INTEGER PRIMARY KEY); INSERT INTO t9 VALUES (44), (45); } do_execsql_test 9.1 { SELECT * FROM t9 WHERE a IN (44, 45, 44, 45) } {44 45} finish_test |