-C Previous\scheck-in\sbroke\sauto-increment.\s\sThis\scheck-in\sappears\sto\sfix\sit.
-D 2011-12-09T16:59:19.303
+C Take\sout\sthe\sOP_JumpOnce\sopcode.\s\sRevert\scompound\sSELECT\sto\suse\sOP_IfNot,\nwhich\sis\sthe\scorrect\sbehavior.\s\sMark\strigger\sregisters\sas\sinitially\ninvalid.
+D 2011-12-09T17:27:51.519
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 5b4a3e12a850b021547e43daf886b25133b44c07
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
F src/resolve.c 365ab1c870e38596d6869e76fb544fe6e4ffc809
F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697
-F src/select.c d1895ff59f2051ad55e9075bf093fd28bcd36a89
+F src/select.c fd3046fb39a1de8dce269e9b5ecbf58fe7e7e480
F src/shell.c 29812a900a780eb0f835c4bc65e216272689def8
F src/sqlite.h.in 57081d8e6b53ce29541d7437c93bce6087ac53b5
F src/sqlite3ext.h 6904f4aadf976f95241311fbffb00823075d9477
F src/utf.c 890c67dcfcc7a74623c95baac7535aadfe265e84
F src/util.c 01238e2b0f24a14779181dbf991fe02620a80e31
F src/vacuum.c 0c0ba2242355c6048d65e2b333abe0f7c06348fa
-F src/vdbe.c 9fc8110b1f2c5285e53948ac59ab4d0e75f18d28
+F src/vdbe.c 029add0c5197a61db588824a58570547330b9d8f
F src/vdbe.h 18f581cac1f4339ec3299f3e0cc6e11aec654cdb
F src/vdbeInt.h 23a9506c9ab31e7823d7257d1828d2d7843443a0
F src/vdbeapi.c 86189ebba2c49791d75eaa12929f3ce6527596bd
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
-P 521d72bdf67b4b1972331307345a18c231a6e1d6
-R 28ec5920c638a4a7052dc1caf48390ef
+P 28ffd39c7162c8f7139711545122cffa257911dd
+R 121bb37be8c24842afbf4add96953aee
U drh
-Z 3eb2c2f097e358392b3aefdceca7c178
+Z 11be617eddaa1f2d6fdfc985cd0a65fa
-28ffd39c7162c8f7139711545122cffa257911dd
\ No newline at end of file
+6a9fb47d5060fe641915f5f99cc9265409a4583b
\ No newline at end of file
*/
if( regPrev ){
int j1, j2;
- j1 = sqlite3VdbeAddOp1(v, OP_JumpOnce, pParse->nOnce++);
+ j1 = sqlite3VdbeAddOp1(v, OP_IfNot, regPrev);
j2 = sqlite3VdbeAddOp4(v, OP_Compare, pIn->iMem, regPrev+1, pIn->nMem,
(char*)pKeyInfo, p4type);
sqlite3VdbeAddOp3(v, OP_Jump, j2+2, iContinue, j2+2);
sqlite3VdbeJumpHere(v, j1);
sqlite3ExprCodeCopy(pParse, pIn->iMem, regPrev+1, pIn->nMem);
+ sqlite3VdbeAddOp2(v, OP_Integer, 1, regPrev);
}
if( pParse->db->mallocFailed ) return 0;
break;
}
-/* Opcode: JumpOnce P1 P2 * * *
-**
-** Check if OP_Once flag P1 is clear. If so, set the flag and
-** jump to instruction P2. Otherwise fall through.
-**
-** See also: Once
-*/
-case OP_JumpOnce: { /* jump */
- assert( pOp->p1<p->nOnceFlag );
- if( !p->aOnceFlag[pOp->p1] ){
- pc = pOp->p2-1;
- p->aOnceFlag[pOp->p1] = 1;
- }
- break;
-}
-
/* Opcode: If P1 P2 P3 * *
**
** Jump to P2 if the value in register P1 is true. The value
pProgram = pOp->p4.pProgram;
pRt = &aMem[pOp->p3];
- /*assert( memIsValid(pRt) );*/
assert( pProgram->nOp>0 );
/* If the p5 flag is clear, then recursive invocation of triggers is
pEnd = &VdbeFrameMem(pFrame)[pFrame->nChildMem];
for(pMem=VdbeFrameMem(pFrame); pMem!=pEnd; pMem++){
- pMem->flags = MEM_Null;
+ pMem->flags = MEM_Invalid;
pMem->db = db;
}
}else{
}else{
pIn1 = &aMem[pOp->p1];
}
- /*assert( memIsValid(pIn1) ); FIXME */
+ assert( memIsValid(pIn1) );
sqlite3VdbeMemIntegerify(pIn1);
pIn2 = &aMem[pOp->p2];
sqlite3VdbeMemIntegerify(pIn2);