]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a problem in fts5fault1.test.
authordan <dan@noemail.net>
Tue, 21 Apr 2015 20:13:38 +0000 (20:13 +0000)
committerdan <dan@noemail.net>
Tue, 21 Apr 2015 20:13:38 +0000 (20:13 +0000)
FossilOrigin-Name: a21d60cb2ac6463c012d82d1970d90da5da2a14a

ext/fts5/fts5_index.c
ext/fts5/test/fts5fault1.test
manifest
manifest.uuid

index 87fd11a096ff7d5e836a33654e9bb07d28371dea..05c8d6831957774c6e06bc8df7f64ce4d270dda2 100644 (file)
@@ -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)
       ){
index 838bf3cc4b82ef3656b6af237940ec38da0b54be..ff6e2483e97d1ae49266597b2cf9ef61eb35742f 100644 (file)
@@ -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} {
index 5c12ac6c1ce7f234c2e798f1db829a6b9f2f6617..3007e261c87f1453ff13544cb8d2bef3f3136fb5 100644 (file)
--- 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
index a63e0364d44849e19c5b85871c51622ccdc7da08..e8e16db49a68fb10dc591e3b893198eaf977d281 100644 (file)
@@ -1 +1 @@
-e50e8031d6f804ebe50e0eec9a8b6e7f0152ecc3
\ No newline at end of file
+a21d60cb2ac6463c012d82d1970d90da5da2a14a
\ No newline at end of file