-C Use\smemmove()\sinstead\sof\smemcpy()\swhen\smoving\sbetween\smemory\sregions\sthat\nmight\soverlap.\s\sTicket\s#2334.\s(CVS\s3905)
-D 2007-05-03T13:02:27
+C Fix\sa\sbug\swhere\saccessPayload()\swas\scalling\sPagerWrite()\son\sthe\swrong\spage\shandle.\sTicket\s#2332.\s(CVS\s3906)
+D 2007-05-03T13:11:32
F Makefile.in 8cab54f7c9f5af8f22fd97ddf1ecfd1e1860de62
F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
F src/analyze.c 4bbf5ddf9680587c6d4917e02e378b6037be3651
F src/attach.c a16ada4a4654a0d126b8223ec9494ebb81bc5c3c
F src/auth.c 902f4722661c796b97f007d9606bd7529c02597f
-F src/btree.c ae37926682a6e6da49dacad25a8da50b49abbc31
+F src/btree.c 1f75491c8d5348998ce53decc6fde671d4cfd36d
F src/btree.h 2c187d60cf76d74c2b4767294d6b5fa267037ff0
F src/build.c 02e01ec7907c7d947ab3041fda0e81eaed05db42
F src/callback.c 6414ed32d55859d0f65067aa5b88d2da27b3af9e
F test/func.test 6727c7729472ae52b5acd86e802f89aa350ba50f
F test/hook.test 7e7645fd9a033f79cce8fdff151e32715e7ec50a
F test/in.test 369cb2aa1eab02296b4ec470732fe8c131260b1d
-F test/incrblob.test e86fbd7187109a322acb756df64802247ac05ae6
+F test/incrblob.test cca13ec6c3a163c86821dd49a81bb5b519850e79
F test/incrvacuum.test 2173bc075c7b3b96ccf228d737dd4f5c29500dc4
F test/incrvacuum_ioerr.test 0ebc382bcc2036ec58cf49cc5ffada45f75d907b
F test/index.test e65df12bed94b2903ee89987115e1578687e9266
F test/tkt2213.test 8cf7c446e1fcd0627fffe7fc19046eb24ac7333b
F test/tkt2251.test 3f0549213386ed911715665a908ff2bb7a871002
F test/tkt2285.test c618085f0c13ec3347e607f83c34ada0721b4bfa
+F test/tkt2332.test a7d678dc146ca7d2dae7bcc19f4659a389225b36
F test/trace.test 75ffc1b992c780d054748a656e3e7fd674f18567
F test/trans.test 3fe1b9e03b523482eee2b869858c5c1eca7b218b
F test/trigger1.test b361161cf20614024cc1e52ea0bdec250776b2ae
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P b84d597c902d60341607bc405440603868ac52c8
-R 12d14d4fb14068f61aa4421e14587d06
-U drh
-Z db885090be703cd83c0833d00fbb5cc8
+P 678d672b73cc7b7f563c15daee3831cb5bbd890e
+R 3fe50c067312d08e6c011ae37b9a3ab6
+U danielk1977
+Z 99cbb46fec6c9867e749c0e87c86be78
-678d672b73cc7b7f563c15daee3831cb5bbd890e
\ No newline at end of file
+cf9eeba7be64ad29cddd320832db10c799fb6e8e
\ No newline at end of file
** May you share freely, never taking more than you give.
**
*************************************************************************
-** $Id: btree.c,v 1.369 2007/05/03 11:43:33 danielk1977 Exp $
+** $Id: btree.c,v 1.370 2007/05/03 13:11:32 danielk1977 Exp $
**
** This file implements a external (disk-based) database using BTrees.
** For a detailed discussion of BTrees, refer to
}
if( eOp ){
/* A write operation. */
- rc = sqlite3PagerWrite(pPage->pDbPage);
+ rc = sqlite3PagerWrite(pDbPage);
if( rc!=SQLITE_OK ){
sqlite3PagerUnref(pDbPage);
return rc;
#
#***********************************************************************
#
-# $Id: incrblob.test,v 1.3 2007/05/03 11:43:35 danielk1977 Exp $
+# $Id: incrblob.test,v 1.4 2007/05/03 13:11:32 danielk1977 Exp $
#
set testdir [file dirname $argv0]
#------------------------------------------------------------------------
-# incrblob-2.*: Test seeking in an incremental blob can use ptrmap pages.
+# incrblob-2.*: Test that the following operations use ptrmap pages:
+#
+# * Reading near the end of a blob,
+# * Writing near the end of a blob (TODO),
+# * SELECT a column value that is located on an overflow page (TODO).
+#
#
proc nRead {db} {
set bt [btree_from_db $db]
nRead db
} [expr $AutoVacuumMode ? 4 : 30]
- do_test incrblob-2.3 {
+ do_test incrblob-2.$AutoVacuumMode.3 {
string range [db one {SELECT v FROM blobs}] end-19 end
} $::fragment
}
--- /dev/null
+# 2007 May 3
+#
+# The author disclaims copyright to this source code. In place of
+# a legal notice, here is a blessing:
+#
+# May you do good and not evil.
+# May you find forgiveness for yourself and forgive others.
+# May you share freely, never taking more than you give.
+#
+#***********************************************************************
+#
+# $Id: tkt2332.test,v 1.1 2007/05/03 13:11:32 danielk1977 Exp $
+#
+
+set testdir [file dirname $argv0]
+source $testdir/tester.tcl
+
+do_test tkt2332.1 {
+ execsql {
+ CREATE TABLE blobs (k INTEGER PRIMARY KEY, v BLOB);
+ PRAGMA cache_size = 100;
+ }
+} {}
+
+set ::iKey 1
+foreach Len [list 10000 100000 1000000] {
+ do_test tkt2332.$Len.1 {
+ set val "[expr rand()][expr rand()][expr rand()][expr rand()][expr rand()]"
+ set ::blobstr [string range \
+ [string repeat $val [expr ($Len/[string length $val])+1]] 0 [expr $Len-1]
+ ]
+
+ db eval { INSERT INTO blobs VALUES($::iKey, zeroblob($Len)) }
+ } {}
+
+ do_test tkt2332.$Len.2 {
+ execsql {
+ SELECT length(v) FROM blobs WHERE k = $::iKey;
+ }
+ } $Len
+
+ do_test tkt2332.$Len.3 {
+ set ::fd [db incrblob blobs v $::iKey]
+ puts -nonewline $::fd $::blobstr
+ close $::fd
+ } {}
+
+ do_test tkt2332.$Len.4 {
+ execsql { SELECT length(v) FROM blobs WHERE k = $::iKey; }
+ } $Len
+
+ do_test tkt2332.$Len.5 {
+ lindex [execsql {SELECT v FROM blobs WHERE k = $::iKey}] 0
+ } $::blobstr
+
+ incr ::iKey
+}
+
+finish_test