From: dan Date: Tue, 21 Apr 2015 20:13:38 +0000 (+0000) Subject: Fix a problem in fts5fault1.test. X-Git-Tag: version-3.8.11~114^2~67 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5bb97c2b801248ab08b37b99926962f7db5c0e09;p=thirdparty%2Fsqlite.git Fix a problem in fts5fault1.test. FossilOrigin-Name: a21d60cb2ac6463c012d82d1970d90da5da2a14a --- diff --git a/ext/fts5/fts5_index.c b/ext/fts5/fts5_index.c index 87fd11a096..05c8d68319 100644 --- a/ext/fts5/fts5_index.c +++ b/ext/fts5/fts5_index.c @@ -1473,45 +1473,31 @@ static int fts5DlidxIterPrev(Fts5DlidxIter *pIter){ return pIter->bEof; } -static void fts5DlidxIterInitFromData( +static Fts5DlidxIter *fts5DlidxIterInit( Fts5Index *p, /* Fts5 Backend to iterate within */ int bRev, /* True for ORDER BY ASC */ - int iLeafPgno, /* Leaf page number dlidx is for */ - Fts5Data *pDlidx, /* Leaf index data */ - Fts5DlidxIter **ppIter /* OUT: Populated iterator */ + int iIdx, int iSegid, /* Segment iSegid within index iIdx */ + int iLeafPg /* Leaf page number to load dlidx for */ ){ - Fts5DlidxIter *pIter = *ppIter; + Fts5DlidxIter *pIter; - if( pIter==0 ){ - *ppIter = pIter = (Fts5DlidxIter*)fts5IdxMalloc(p, sizeof(Fts5DlidxIter)); - if( pIter==0 ){ - fts5DataRelease(pDlidx); - return; - } - }else{ - memset(pIter, 0, sizeof(Fts5DlidxIter)); - } + pIter = (Fts5DlidxIter*)fts5IdxMalloc(p, sizeof(Fts5DlidxIter)); + if( pIter==0 ) return 0; - pIter->pData = pDlidx; - pIter->iLeafPgno = iLeafPgno; - if( bRev==0 ){ - fts5DlidxIterFirst(pIter); + pIter->pData = fts5DataRead(p, FTS5_DOCLIST_IDX_ROWID(iIdx, iSegid, iLeafPg)); + if( pIter->pData==0 ){ + sqlite3_free(pIter); + pIter = 0; }else{ - fts5DlidxIterLast(pIter); + pIter->iLeafPgno = iLeafPg; + if( bRev==0 ){ + fts5DlidxIterFirst(pIter); + }else{ + fts5DlidxIterLast(pIter); + } } -} -static void fts5DlidxIterInit( - Fts5Index *p, /* Fts5 Backend to iterate within */ - int bRev, /* True for ORDER BY ASC */ - int iIdx, int iSegid, /* Segment iSegid within index iIdx */ - int iLeafPgno, /* Leaf page number to load dlidx for */ - Fts5DlidxIter **ppIter /* OUT: Populated iterator */ -){ - Fts5Data *pDlidx; - pDlidx = fts5DataRead(p, FTS5_DOCLIST_IDX_ROWID(iIdx, iSegid, iLeafPgno)); - if( pDlidx==0 ) return; - fts5DlidxIterInitFromData(p, bRev, iLeafPgno, pDlidx, ppIter); + return pIter; } /* @@ -2030,7 +2016,7 @@ static void fts5SegIterLoadDlidx(Fts5Index *p, int iIdx, Fts5SegIter *pIter){ } } - fts5DlidxIterInit(p, bRev, iIdx, iSeg, pIter->iTermLeafPgno, &pIter->pDlidx); + pIter->pDlidx = fts5DlidxIterInit(p, bRev, iIdx, iSeg, pIter->iTermLeafPgno); } /* @@ -3975,7 +3961,7 @@ static void fts5DlidxIterTestReverse( i64 cksum1 = 13; i64 cksum2 = 13; - for(fts5DlidxIterInit(p, 0, iIdx, iSegid, iLeaf, &pDlidx); + for(pDlidx=fts5DlidxIterInit(p, 0, iIdx, iSegid, iLeaf); fts5DlidxIterEof(p, pDlidx)==0; fts5DlidxIterNext(pDlidx) ){ @@ -3986,7 +3972,7 @@ static void fts5DlidxIterTestReverse( fts5DlidxIterFree(pDlidx); pDlidx = 0; - for(fts5DlidxIterInit(p, 1, iIdx, iSegid, iLeaf, &pDlidx); + for(pDlidx=fts5DlidxIterInit(p, 1, iIdx, iSegid, iLeaf); fts5DlidxIterEof(p, pDlidx)==0; fts5DlidxIterPrev(pDlidx) ){ @@ -4063,7 +4049,7 @@ static void fts5IndexIntegrityCheckSegment( int iPg; i64 iKey; - for(fts5DlidxIterInit(p, 0, iIdx, iSegid, iter.iLeaf, &pDlidx); + for(pDlidx=fts5DlidxIterInit(p, 0, iIdx, iSegid, iter.iLeaf); fts5DlidxIterEof(p, pDlidx)==0; fts5DlidxIterNext(pDlidx) ){ diff --git a/ext/fts5/test/fts5fault1.test b/ext/fts5/test/fts5fault1.test index 838bf3cc4b..ff6e2483e9 100644 --- a/ext/fts5/test/fts5fault1.test +++ b/ext/fts5/test/fts5fault1.test @@ -31,8 +31,6 @@ ifcapable !fts5 { # # -if 1 { - faultsim_save_and_close do_faultsim_test 1 -prep { faultsim_restore_and_reopen @@ -317,8 +315,6 @@ do_faultsim_test 8.1 -faults oom* -prep { faultsim_test_result [list 0 $::res] } -} - #------------------------------------------------------------------------- # Segment promotion. # @@ -336,13 +332,13 @@ do_test 9.0 { } fts5_level_segs s2 } {0 1} +set insert_doc [db one {SELECT rnddoc(160)}] faultsim_save_and_close do_faultsim_test 9.1 -faults oom-* -prep { faultsim_restore_and_reopen - db func rnddoc fts5_rnddoc } -body { - execsql { INSERT INTO s2 VALUES(rnddoc(160)) } + execsql { INSERT INTO s2 VALUES($::insert_doc) } } -test { faultsim_test_result {0 {}} if {$testrc==0} { diff --git a/manifest b/manifest index 5c12ac6c1c..3007e261c8 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\san\sfts5\sproblem\swith\slarge\sdeletes. -D 2015-04-21T19:07:39.210 +C Fix\sa\sproblem\sin\sfts5fault1.test. +D 2015-04-21T20:13:38.631 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 88a3e6261286db378fdffa1124cad11b3c05f5bb F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -112,7 +112,7 @@ F ext/fts5/fts5_buffer.c 3ba56cc6824c9f7b1e0695159e0a9c636f6b4a23 F ext/fts5/fts5_config.c 0847facc8914f57ea4452c43ce109200dc65e894 F ext/fts5/fts5_expr.c 5215137efab527577d36bdf9e44bfc2ec3e1be98 F ext/fts5/fts5_hash.c 3cb5a3d04dd2030eb0ac8d544711dfd37c0e6529 -F ext/fts5/fts5_index.c abf74b5e0d96b954911b6db3e13dce008c091303 +F ext/fts5/fts5_index.c 6ae86ef3f266c303cbf4a04fe63e8da54d91cd09 F ext/fts5/fts5_storage.c ac0f0937059c8d4f38a1f13aa5f2c2cd7edf3e0d F ext/fts5/fts5_tcl.c 617b6bb96545be8d9045de6967c688cd9cd15541 F ext/fts5/fts5_tokenize.c c07f2c2f749282c1dbbf46bde1f6d7095c740b8b @@ -139,7 +139,7 @@ F ext/fts5/test/fts5corrupt.test dbdcfe75749ed2f2eb3915cf68fd55d3dc3b058d F ext/fts5/test/fts5dlidx.test 710d1eaf44e6fbb09dfa73b7fd488227d8cc751a F ext/fts5/test/fts5ea.test 04695560a444fcc00c3c4f27783bdcfbf71f030c F ext/fts5/test/fts5eb.test 728a1f23f263548f5c29b29dfb851b5f2dbe723e -F ext/fts5/test/fts5fault1.test fbd8612889234849ff041f5b36f8e390feeed46e +F ext/fts5/test/fts5fault1.test ed71717a479bef32d05f02d9c48691011d160d4d F ext/fts5/test/fts5near.test 3f9f64e16cac82725d03d4e04c661090f0b3b947 F ext/fts5/test/fts5optimize.test 0028c90a7817d3e576d1148fc8dff17d89054e54 F ext/fts5/test/fts5porter.test 50322599823cb8080a99f0ec0c39f7d0c12bcb5e @@ -1294,7 +1294,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P 2ea8f9cbe67dac60c1a0a661c95a03ecfa9a0b9a -R f13e2690ef21877d2344bab07fedcde6 +P e50e8031d6f804ebe50e0eec9a8b6e7f0152ecc3 +R 60eea8ec1517faa88921988ca09638c5 U dan -Z 02eb8d79520bf4e8512cc80bc0c885cd +Z b632ef0339d92005d6b22a3d7746ce59 diff --git a/manifest.uuid b/manifest.uuid index a63e0364d4..e8e16db49a 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -e50e8031d6f804ebe50e0eec9a8b6e7f0152ecc3 \ No newline at end of file +a21d60cb2ac6463c012d82d1970d90da5da2a14a \ No newline at end of file