Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Simplifications to blobSeekToRow(). |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | micro-optimizations |
Files: | files | file ages | folders |
SHA1: |
495ea824093ff535734c22c3115384c0 |
User & Date: | drh 2017-01-31 19:02:15.083 |
Context
2017-01-31
| ||
19:10 | Very small performance improvements and size reductions in sqlite3VdbeExec() and blobSeekToRow(). (check-in: 85dddf2b45 user: drh tags: trunk) | |
19:02 | Simplifications to blobSeekToRow(). (Closed-Leaf check-in: 495ea82409 user: drh tags: micro-optimizations) | |
16:49 | Remove a C99-style comment. Fixes to the kvtest-speed.sh script. (check-in: 91eb6b628e user: drh tags: micro-optimizations) | |
Changes
Changes to src/vdbeblob.c.
︙ | ︙ | |||
51 52 53 54 55 56 57 | ** calls to sqlite3_blob_read(), blob_write() or blob_reopen() will ** immediately return SQLITE_ABORT. */ static int blobSeekToRow(Incrblob *p, sqlite3_int64 iRow, char **pzErr){ int rc; /* Error code */ char *zErr = 0; /* Error message */ Vdbe *v = (Vdbe *)p->pStmt; | < < | < | 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | ** calls to sqlite3_blob_read(), blob_write() or blob_reopen() will ** immediately return SQLITE_ABORT. */ static int blobSeekToRow(Incrblob *p, sqlite3_int64 iRow, char **pzErr){ int rc; /* Error code */ char *zErr = 0; /* Error message */ Vdbe *v = (Vdbe *)p->pStmt; /* Set the value of register r[1] in the SQL statement to integer iRow. ** This is done directly as a performance optimization */ v->aMem[1].flags = MEM_Int; v->aMem[1].u.i = iRow; /* If the statement has been run before (and is paused at the OP_ResultRow) ** then back it up to the point where it does the OP_SeekRowid. This could ** have been down with an extra OP_Goto, but simply setting the program ** counter is faster. */ if( v->pc>3 ){ v->pc = 3; rc = sqlite3VdbeExec(v); }else{ rc = sqlite3_step(p->pStmt); } if( rc==SQLITE_ROW ){ VdbeCursor *pC = v->apCsr[0]; u32 type = pC->nHdrParsed>p->iCol ? pC->aType[p->iCol] : 0; testcase( pC->nHdrParsed==p->iCol ); |
︙ | ︙ |