-C Fix\sa\sproblem\swith\sSQLITE_TEST_REALLOC_STRESS.
-D 2016-01-18T00:20:26.450
+C Simplification\sof\sthe\sVDBE\sbytecode\sfor\sincremental\sblob\sI/O.
+D 2016-01-18T00:46:11.199
F Makefile.in a476545d0c8626224d0bacac85c6e2967474af81
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc 01e855f958932d0d3ed62ec675fc63e2cef61fcb
F src/vdbeInt.h 42eefa4f9e7432b9968d321b44e48821ec13b189
F src/vdbeapi.c ffae8f5af4570fbd548504e815e9fb7227f0822e
F src/vdbeaux.c 95e067a5e2a75e128d45ca597388dc83c58142f0
-F src/vdbeblob.c 8542f282b58293bd61c2ea4b2125f250f4fc9543
+F src/vdbeblob.c 37c3d11a753e403698c69e17383d282e1ae73e75
F src/vdbemem.c b9181e77eca2a095929d46250daf85c8d2621fc0
F src/vdbesort.c 0971557e5d3c289e46f56a52aed2197c13251de7
F src/vdbetrace.c 8befe829faff6d9e6f6e4dee5a7d3f85cc85f1a0
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 61deab043dcea860070dba6b02601a7de627fff1
-R 4379f64b4cb45ea0db7a5f863224d3f6
+P 0aaf3febb00f622c5ef0853b2491d69f7ca7a21e
+R 8210381425f8a73bf29afce4a64c9930
U drh
-Z e0f8e155ee8f1f04cd4cfaa23a1af003
+Z 0317022cefd345ebef2be02c7eb84046
** which closes the b-tree cursor and (possibly) commits the
** transaction.
*/
- static const int iLn = VDBE_OFFSET_LINENO(3);
+ static const int iLn = VDBE_OFFSET_LINENO(4);
static const VdbeOpList openBlob[] = {
- /* {OP_Transaction, 0, 0, 0}, // inserted separately */
- {OP_TableLock, 0, 0, 0}, /* 0: Acquire a read or write lock */
- {OP_OpenRead, 0, 0, 0}, /* 1: Open cursor 0 for reading */
- {OP_OpenWrite, 0, 0, 0}, /* 2: Open cursor 0 for read/write */
- {OP_Variable, 1, 1, 1}, /* 3: Push the rowid to the stack */
- {OP_NotExists, 0, 10, 1}, /* 4: Seek the cursor */
- {OP_Column, 0, 0, 1}, /* 5 */
- {OP_ResultRow, 1, 0, 0}, /* 6 */
- {OP_Goto, 0, 4, 0}, /* 7 */
- {OP_Close, 0, 0, 0}, /* 8 */
- {OP_Halt, 0, 0, 0}, /* 9 */
+ /* addr/ofst */
+ /* {OP_Transaction, 0, 0, 0}, // 0/ inserted separately */
+ {OP_TableLock, 0, 0, 0}, /* 1/0: Acquire a read or write lock */
+ {OP_OpenRead, 0, 0, 0}, /* 2/1: Open a cursor */
+ {OP_Variable, 1, 1, 0}, /* 3/2: Move ?1 into reg[1] */
+ {OP_NotExists, 0, 8, 1}, /* 4/3: Seek the cursor */
+ {OP_Column, 0, 0, 1}, /* 5/4 */
+ {OP_ResultRow, 1, 0, 0}, /* 6/5 */
+ {OP_Goto, 0, 3, 0}, /* 7/6 */
+ {OP_Close, 0, 0, 0}, /* 8/7 */
+ {OP_Halt, 0, 0, 0}, /* 9/8 */
};
Vdbe *v = (Vdbe *)pBlob->pStmt;
int iDb = sqlite3SchemaToIndex(db, pTab->pSchema);
/* Remove either the OP_OpenWrite or OpenRead. Set the P2
** parameter of the other to pTab->tnum. */
- aOp[2-flags].opcode = OP_Noop;
- aOp[1+flags].p2 = pTab->tnum;
- aOp[1+flags].p3 = iDb;
+ if( flags ) aOp[1].opcode = OP_OpenWrite;
+ aOp[1].p2 = pTab->tnum;
+ aOp[1].p3 = iDb;
/* Configure the number of columns. Configure the cursor to
** think that the table has one more column than it really
** we can invoke OP_Column to fill in the vdbe cursors type
** and offset cache without causing any IO.
*/
- aOp[1+flags].p4type = P4_INT32;
- aOp[1+flags].p4.i = pTab->nCol+1;
- aOp[5].p2 = pTab->nCol;
+ aOp[1].p4type = P4_INT32;
+ aOp[1].p4.i = pTab->nCol+1;
+ aOp[4].p2 = pTab->nCol;
pParse->nVar = 1;
pParse->nMem = 1;