-C Additional\sparsing\sbugs\sfixed.\s(CVS\s3981)
-D 2007-05-11T01:44:51
+C Fix\sa\sproblem\swith\sinserting\szeroblob()\sinto\san\sindexed\scolumn.\s(CVS\s3982)
+D 2007-05-11T07:08:28
F Makefile.in 87b200ad9970907f76df734d29dff3d294c10935
F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
F src/utf.c be7c64eed83fa3c01e0c42905e1c311dcd1be704
F src/util.c 4f6bbcec2b2b1884d652b82c9f8949ede4618d68
F src/vacuum.c 8bd895d29e7074e78d4e80f948e35ddc9cf2beef
-F src/vdbe.c 308c698ad96a43249e12cb5067a4a823a6dea307
+F src/vdbe.c d1be8d8605608b6d7d925d40e1eb96e30d646fbc
F src/vdbe.h 001c5b257567c1d3de7feb2203aac71d0d7b16a3
F src/vdbeInt.h bddb7931fc1216fda6f6720e18d2a9b1e0f8fc96
F src/vdbeapi.c 3ca7808c67a10b5c20150108b431d520d141e93e
F test/fts2m.test 4b30142ead6f3ed076e880a2a464064c5ad58c51
F test/fts2n.test a70357e72742681eaebfdbe9007b87ff3b771638
F test/func.test bf30bac1c5ce10448ab739994268cf18f8b3fa30
-F test/fuzz.test db1bffeeb367b0e9147a1822db5c8c17c6f0b2ab
+F test/fuzz.test 1015e6a1452e14d36797977923593a938ba35d2f
F test/fuzz2.test fdbea571808441c12c91e9cd038eb77b4692d42b
F test/hook.test 7e7645fd9a033f79cce8fdff151e32715e7ec50a
F test/icu.test e6bfae7f625c88fd14df6f540fe835bdfc1e4329
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P d146f01a02579339c5dc86bbe59f246bd6c05c63
-R 7125d6d53e0b2202166323742c3b01c2
-U drh
-Z 23c6aad98fcd55bc5de6b8a43a789f0e
+P d12a8924c6083cdff14990b4fd036ca386c2e34a
+R 680b3290f2d024e3ae05a79ad5b14302
+U danielk1977
+Z 9cd69253fcac83ce88c7739ef57267d1
-d12a8924c6083cdff14990b4fd036ca386c2e34a
\ No newline at end of file
+ccef5d2daaa5a88dd3f23666f022296ef42f9d73
\ No newline at end of file
** in this file for details. If in doubt, do not deviate from existing
** commenting and indentation practices when changing or adding code.
**
-** $Id: vdbe.c,v 1.615 2007/05/10 21:14:03 drh Exp $
+** $Id: vdbe.c,v 1.616 2007/05/11 07:08:28 danielk1977 Exp $
*/
#include "sqliteInt.h"
#include "os.h"
Deephemeralize(pTos);
for(i=0; i<pOp->p1; i++, pFrom++){
Deephemeralize(&pFrom[1]);
- assert( (pFrom->flags & MEM_Ephem)==0 );
+ assert( (pFrom[1].flags & MEM_Ephem)==0 );
*pFrom = pFrom[1];
if( pFrom->flags & MEM_Short ){
assert( pFrom->flags & (MEM_Str|MEM_Blob) );
if( pRec->flags&MEM_Null ){
containsNull = 1;
}
+ if( pRec->flags&MEM_Zero && pRec->n>0 ){
+ sqlite3VdbeMemExpandBlob(pRec);
+ }
serial_type = sqlite3VdbeSerialType(pRec, file_format);
len = sqlite3VdbeSerialTypeLen(serial_type);
nData += len;
if( pRec->flags & MEM_Zero ){
/* Only pure zero-filled BLOBs can be input to this Opcode.
** We do not allow blobs with a prefix and a zero-filled tail. */
- assert( pRec->n==0 );
nZero += pRec->u.i;
}else if( len ){
nZero = 0;
assert( p->apCsr[i]!=0 );
assert( pTos->flags & MEM_Blob );
if( (pCrsr = (pC = p->apCsr[i])->pCursor)!=0 ){
- int nKey = pTos->n;
- const char *zKey = pTos->z;
assert( pC->isTable==0 );
- rc = sqlite3BtreeInsert(pCrsr, zKey, nKey, "", 0, 0, pOp->p2);
- assert( pC->deferredMoveto==0 );
- pC->cacheStatus = CACHE_STALE;
+ rc = sqlite3VdbeMemExpandBlob(pTos);
+ if( rc==SQLITE_OK ){
+ int nKey = pTos->n;
+ const char *zKey = pTos->z;
+ rc = sqlite3BtreeInsert(pCrsr, zKey, nKey, "", 0, 0, pOp->p2);
+ assert( pC->deferredMoveto==0 );
+ pC->cacheStatus = CACHE_STALE;
+ }
}
Release(pTos);
pTos--;
# (a.k.a. "fuzz") and sending it into the parser to try to generate
# errors.
#
-# $Id: fuzz.test,v 1.4 2007/05/11 00:20:08 drh Exp $
+# $Id: fuzz.test,v 1.5 2007/05/11 07:08:29 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
do_test fuzz-1.7 {
execsql {
- SELECT (
- SELECT zeroblob(1000) FROM (
- SELECT * FROM (SELECT 'first') ORDER BY NOT 'in'
- )
+ SELECT ( SELECT zeroblob(1000) FROM (
+ SELECT * FROM (SELECT 'first') ORDER BY NOT 'in')
)
}
-} {}
+} [execsql {SELECT zeroblob(1000)}]
#----------------------------------------------------------------
# Test some fuzzily generated expressions.