-C Added\sreminder\smessage\sto\sterminate\sSQL\sstatements\swith\sa\ssemicolon\son\sshell\sstartup.\sThis\scloses\s#3099.\s(CVS\s5325)
-D 2008-06-28T11:29:23
+C Remove\san\sassert()\sthat\swas\sfailing\sif\sthere\swere\sany\sopen\sincremental\sblob\shandles\swhen\sa\sstatement\stransaction\swas\srolled\sback.\s(CVS\s5326)
+D 2008-06-28T15:33:25
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in 325dfac0a0dd1cb4d975f1ace6453157892e6042
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
F src/auth.c c8b2ab5c8bad4bd90ed7c294694f48269162c627
F src/bitvec.c 95c86bd18d8fedf0533f5af196192546e10a7e7d
F src/btmutex.c 483ced3c52205b04b97df69161fadbf87f4f1ea2
-F src/btree.c 6d25027de7c26b1c0a69ad3f2045f944e20fba22
+F src/btree.c dd7b7a92fe9a0e950279e86a771bb522adb6a86b
F src/btree.h b1bd7e0b8c2e33658aaf447cb0d1d94f74664b6b
F src/btreeInt.h 02325f04758dba0fcd0c08ac55cd9b189dad61a5
F src/build.c 88cc5501a87f72d0538b040001d88d31f994edea
F test/in2.test b1f447f4f0f67e9f83ff931e7e2e30873f9ea055
F test/in3.test dc62b080ed79898121c61c91118b4d1e111f1438
F test/incrblob.test 4455fffd08b2f9418a9257e18b135d72273eff3e
-F test/incrblob2.test c9aad1e11f7726d8c49e66f2a1ecc2d04f9f6861
+F test/incrblob2.test c82a780356bdf4d0c77f1adf0ea888248904fc07
F test/incrblob_err.test a3e3d9442d2993e8a449e791db4001d11a2f683f
F test/incrvacuum.test 1a2b0bddc76629afeb41e3d8ea3e4563982d16b9
F test/incrvacuum2.test 46ef65f377e3937cfd1ba66e818309dab46f590d
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 1dbced29de5f59ba2ebf877edcadf171540374d1
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
-P f70d552bcd0df884eea2e2272bae558d35fc8845
-R b56dbc14c80164265b31dc6aa6cdea26
-U mihailim
-Z 2ab945c575514f69295f259ec8109260
+P 0ab0b030dea03ec6693358b733329328828cf802
+R 8c25ea2dec6b6961f92bbdeafaa47650
+U danielk1977
+Z 103f0194a9136d291f48c62f781a1953
-0ab0b030dea03ec6693358b733329328828cf802
\ No newline at end of file
+f66491ab2ba3645d4e44e33ec6fa0ab94b2989be
\ No newline at end of file
** May you share freely, never taking more than you give.
**
*************************************************************************
-** $Id: btree.c,v 1.469 2008/06/23 09:50:51 danielk1977 Exp $
+** $Id: btree.c,v 1.470 2008/06/28 15:33:25 danielk1977 Exp $
**
** This file implements a external (disk-based) database using BTrees.
** See the header comment on "btreeInt.h" for additional information.
pBt->db = p->db;
if( pBt->inStmt && !pBt->readOnly ){
rc = sqlite3PagerStmtRollback(pBt->pPager);
- assert( countWriteCursors(pBt)==0 );
pBt->inStmt = 0;
}
sqlite3BtreeLeave(p);
# Test that it is possible to have two open blob handles on a single
# blob object.
#
-# $Id: incrblob2.test,v 1.7 2008/06/26 18:04:03 danielk1977 Exp $
+# $Id: incrblob2.test,v 1.8 2008/06/28 15:33:26 danielk1977 Exp $
#
set testdir [file dirname $argv0]
close $h
} {}
-#do_test incrblob2-8.5 {
- #execsql BEGIN
- #db eval {SELECT * FROM t2} {
- #execsql "DROP TABLE t2"
- #}
-#} {}
+#---------------------------------------------------------------------------
+# The following tests, incrblob2-8.*, test that nothing terrible happens
+# when a statement transaction is rolled back while there are open
+# incremental-blob handles. At one point an assert() was failing when
+# this was attempted.
+#
+do_test incrblob2-8.1 {
+ execsql BEGIN
+ set h [db incrblob t2 B 1]
+ set rc [catch {
+ db eval {SELECT * FROM t2} { execsql "DROP TABLE t2" }
+ } msg]
+ list $rc $msg
+} {1 {database table is locked}}
+do_test incrblob2-8.2 {
+ close $h
+ execsql COMMIT
+} {}
+do_test incrblob2-8.3 {
+ execsql {
+ CREATE TABLE t3(a INTEGER UNIQUE, b TEXT);
+ INSERT INTO t3 VALUES(1, 'aaaaaaaaaaaaaaaaaaaa');
+ INSERT INTO t3 VALUES(2, 'bbbbbbbbbbbbbbbbbbbb');
+ INSERT INTO t3 VALUES(3, 'cccccccccccccccccccc');
+ INSERT INTO t3 VALUES(4, 'dddddddddddddddddddd');
+ INSERT INTO t3 VALUES(5, 'eeeeeeeeeeeeeeeeeeee');
+ }
+} {}
+do_test incrblob2-8.4 {
+ execsql BEGIN
+ set h [db incrblob t3 b 3]
+ sqlite3_blob_read $h 0 20
+} {cccccccccccccccccccc}
+do_test incrblob2-8.5 {
+ catchsql {UPDATE t3 SET a = 6 WHERE a > 3}
+} {1 {column a is not unique}}
+do_test incrblob2-8.6 {
+ catchsql {UPDATE t3 SET a = 6 WHERE a > 3}
+} {1 {column a is not unique}}
+do_test incrblob2-8.7 {
+ sqlite3_blob_read $h 0 20
+} {cccccccccccccccccccc}
+do_test incrblob2-8.8 {
+ catchsql {UPDATE t3 SET a = 6 WHERE a = 3 OR a = 5}
+} {1 {column a is not unique}}
+do_test incrblob2-8.9 {
+ set rc [catch {sqlite3_blob_read $h 0 20} msg]
+ list $rc $msg
+} {1 SQLITE_ABORT}
+do_test incrblob2-8.X {
+ close $h
+} {}
finish_test