Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | This change is not correct for the boundary case of nCellKey==0. Was: Small performance gain and size reduction in sqlite3VdbeIdxKeyCompare(). |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | mistake |
Files: | files | file ages | folders |
SHA1: |
6e0298cdcb3b900fedac0eebdc7cfd69 |
User & Date: | drh 2015-09-02 12:52:05.339 |
Original Comment: | Small performance gain and size reduction in sqlite3VdbeIdxKeyCompare(). |
Context
2015-09-02
| ||
12:52 | This change is not correct for the boundary case of nCellKey==0. Was: Small performance gain and size reduction in sqlite3VdbeIdxKeyCompare(). (Closed-Leaf check-in: 6e0298cdcb user: drh tags: mistake) | |
2015-09-01
| ||
23:51 | Very minor optimizations in the unix VFS. (check-in: 6db3ff45bc user: drh tags: trunk) | |
Changes
Changes to src/vdbeaux.c.
︙ | ︙ | |||
4131 4132 4133 4134 4135 4136 4137 | int rc; BtCursor *pCur = pC->pCursor; Mem m; assert( sqlite3BtreeCursorIsValid(pCur) ); VVA_ONLY(rc =) sqlite3BtreeKeySize(pCur, &nCellKey); assert( rc==SQLITE_OK ); /* pCur is always valid so KeySize cannot fail */ | | | > | 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 | int rc; BtCursor *pCur = pC->pCursor; Mem m; assert( sqlite3BtreeCursorIsValid(pCur) ); VVA_ONLY(rc =) sqlite3BtreeKeySize(pCur, &nCellKey); assert( rc==SQLITE_OK ); /* pCur is always valid so KeySize cannot fail */ /* nCellKey will always be between 0 and 0x7fffffff because of the way ** that btreeParseCellPtr() and sqlite3GetVarint32() are implemented */ if( (nCellKey & ~(i64)0x7fffffff)!=0 ){ *res = 0; return SQLITE_CORRUPT_BKPT; } assert( nCellKey>=0 && nCellKey<=0x7fffffff ); sqlite3VdbeMemInit(&m, db, 0); rc = sqlite3VdbeMemFromBtree(pC->pCursor, 0, (u32)nCellKey, 1, &m); if( rc ){ return rc; } *res = sqlite3VdbeRecordCompare(m.n, m.z, pUnpacked); sqlite3VdbeMemRelease(&m); |
︙ | ︙ |