-C Do\snot\sautomatically\sremove\sthe\sDISTINCT\skeyword\sfrom\s"a\sIN\s(SELECT\sDISTINCT\s...)"\sexpressions.\sFix\sfor\s[db87229497].
-D 2014-11-14T15:28:33.929
+C Avoid\scalling\ssqlite3BtreeKeysize()\son\sa\sb-tree\scursor\sin\sSKIPNEXT\sor\sSKIPPREV\sstate.
+D 2014-11-17T19:42:48.262
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in a226317fdf3f4c895fb3cfedc355b4d0868ce1fb
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F src/utf.c fc6b889ba0779b7722634cdeaa25f1930d93820c
F src/util.c 3b627daa45c7308c1e36e3dbaa3f9ce7e5c7fa73
F src/vacuum.c 9b30ec729337dd012ed88d4c292922c8ef9cf00c
-F src/vdbe.c 5e47308836e9bb5fdb4835fdf88eeab071848d3f
+F src/vdbe.c 5d3991d723f00ef86263f4d494e105faba5a5abd
F src/vdbe.h 6fc69d9c5e146302c56e163cb4b31d1ee64a18c3
F src/vdbeInt.h 9bb69ff2447c34b6ccc58b34ec35b615f86ead78
F src/vdbeapi.c 07acb615d1e4170e71fc1b0d087f3c53a1ad8e83
F test/misc5.test 528468b26d03303b1f047146e5eefc941b9069f5
F test/misc6.test 953cc693924d88e6117aeba16f46f0bf5abede91
F test/misc7.test edd0b63e2ee29a256900b0514f6fff27e19e9bb2
-F test/misc8.test e838ec20c9c988bc94812fdb89af26409c20931b
+F test/misc8.test fc2754d38892f7dac30c22db3616c2764f117d66
F test/misuse.test 3c34719944ba045cc6c188a4852ba04680728912
F test/mmap1.test 1bfd611b9841eafb44f7d83c0788e146d84a33c9
F test/mmap2.test 9d6dd9ddb4ad2379f29cc78f38ce1e63ed418022
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P ef03a203351a6002e2b1075139717e4234c816cd
-R bb54553354aa14551393c5e5701542c8
+P 55e453aadbb676dda07f0fa537d39ce184ef636c
+R 6cd25f6196e6f786753b0fb88328cee1
U dan
-Z f91e19e3f2d1e58cdccd86465c86ab70
+Z f594bfe54166ed1c0f3ae7a5a057ba04
-55e453aadbb676dda07f0fa537d39ce184ef636c
\ No newline at end of file
+54e7d3fcb1ab21c03ffef1af93ae029a2901098a
\ No newline at end of file
assert( pC->pCursor!=0 );
rc = sqlite3VdbeCursorRestore(pC);
if( rc ) goto abort_due_to_error;
+ if( pC->nullRow ){
+ pOut->flags = MEM_Null;
+ break;
+ }
rc = sqlite3BtreeKeySize(pC->pCursor, &v);
assert( rc==SQLITE_OK ); /* Always so because of CursorRestore() above */
}
} {1 {abort due to ROLLBACK}}
+reset_db
+
+proc dbeval {sql} { db eval $sql }
+db func eval dbeval
+
+do_execsql_test misc8-2.1 {
+ CREATE TABLE t1(a INTEGER PRIMARY KEY, b INTEGER) WITHOUT ROWID;
+ CREATE TABLE t2(c INTEGER PRIMARY KEY, d INTEGER, x BLOB);
+ INSERT INTO t1 VALUES(0,0);
+ INSERT INTO t1 VALUES(10,10);
+ INSERT INTO t2 VALUES(1,1,zeroblob(200));
+ INSERT INTO t2 VALUES(2,2,zeroblob(200));
+ INSERT INTO t2 VALUES(3,3,zeroblob(200));
+ INSERT INTO t2 VALUES(4,4,zeroblob(200));
+ INSERT INTO t2 VALUES(5,5,zeroblob(200));
+ INSERT INTO t2 VALUES(6,6,zeroblob(200));
+ INSERT INTO t2 VALUES(7,7,zeroblob(200));
+ INSERT INTO t2 VALUES(8,8,zeroblob(200));
+ INSERT INTO t2 VALUES(9,9,zeroblob(200));
+ INSERT INTO t2 VALUES(10,10,zeroblob(200));
+ SELECT a, c, eval(
+ printf('DELETE FROM t2 WHERE c=%d AND %d>5', a+c, a+c)
+ ) FROM t1, t2;
+} {
+ 0 1 {} 10 1 {}
+ 0 2 {} 10 2 {}
+ 0 3 {} 10 3 {}
+ 0 4 {} 10 4 {}
+ 0 5 {} 10 5 {}
+ 0 6 {} 10 {} {}
+ 0 7 {} 10 {} {}
+ 0 8 {} 10 {} {}
+ 0 9 {} 10 {} {}
+ 0 10 {} 10 {} {}
+}
+
+
finish_test