/ Check-in [703646b1]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fix a problem with corrupt database handling in the fts3 matchinfo() function.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 703646b1b5c84d550fe0d74e399c0eeb729da1d263e4693320f69e6509678985
User & Date: dan 2019-01-12 14:58:35
Context
2019-01-12
16:19
Fix an off-by-one error on a Goto in the code generator, that only causes problems for a REPLACE on an INTEGER PRIMARY KEY in non-debug builds. Test case in TH3. check-in: e35eb877 user: drh tags: trunk
14:58
Fix a problem with corrupt database handling in the fts3 matchinfo() function. check-in: 703646b1 user: dan tags: trunk
00:45
Improved detection of shadow table corruption in the fts5_decode() SQL function. check-in: b74e5f3f user: drh tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to ext/fts3/fts3_snippet.c.

   848    848     *ppCollist = pEnd;
   849    849     return nEntry;
   850    850   }
   851    851   
   852    852   /*
   853    853   ** This function gathers 'y' or 'b' data for a single phrase.
   854    854   */
   855         -static void fts3ExprLHits(
          855  +static int fts3ExprLHits(
   856    856     Fts3Expr *pExpr,                /* Phrase expression node */
   857    857     MatchInfo *p                    /* Matchinfo context */
   858    858   ){
   859    859     Fts3Table *pTab = (Fts3Table *)p->pCursor->base.pVtab;
   860    860     int iStart;
   861    861     Fts3Phrase *pPhrase = pExpr->pPhrase;
   862    862     char *pIter = pPhrase->doclist.pList;
................................................................................
   878    878           p->aMatchinfo[iStart + (iCol+1)/32] |= (1 << (iCol&0x1F));
   879    879         }
   880    880       }
   881    881       assert( *pIter==0x00 || *pIter==0x01 );
   882    882       if( *pIter!=0x01 ) break;
   883    883       pIter++;
   884    884       pIter += fts3GetVarint32(pIter, &iCol);
          885  +    if( iCol>=p->nCol ) return FTS_CORRUPT_VTAB;
   885    886     }
          887  +  return SQLITE_OK;
   886    888   }
   887    889   
   888    890   /*
   889    891   ** Gather the results for matchinfo directives 'y' and 'b'.
   890    892   */
   891         -static void fts3ExprLHitGather(
          893  +static int fts3ExprLHitGather(
   892    894     Fts3Expr *pExpr,
   893    895     MatchInfo *p
   894    896   ){
          897  +  int rc = SQLITE_OK;
   895    898     assert( (pExpr->pLeft==0)==(pExpr->pRight==0) );
   896    899     if( pExpr->bEof==0 && pExpr->iDocid==p->pCursor->iPrevId ){
   897    900       if( pExpr->pLeft ){
   898         -      fts3ExprLHitGather(pExpr->pLeft, p);
   899         -      fts3ExprLHitGather(pExpr->pRight, p);
          901  +      rc = fts3ExprLHitGather(pExpr->pLeft, p);
          902  +      if( rc==SQLITE_OK ) rc = fts3ExprLHitGather(pExpr->pRight, p);
   900    903       }else{
   901         -      fts3ExprLHits(pExpr, p);
          904  +      rc = fts3ExprLHits(pExpr, p);
   902    905       }
   903    906     }
          907  +  return rc;
   904    908   }
   905    909   
   906    910   /*
   907    911   ** fts3ExprIterate() callback used to collect the "global" matchinfo stats
   908    912   ** for a single query. 
   909    913   **
   910    914   ** fts3ExprIterate() callback to load the 'global' elements of a
................................................................................
  1268   1272           }
  1269   1273           break;
  1270   1274   
  1271   1275         case FTS3_MATCHINFO_LHITS_BM:
  1272   1276         case FTS3_MATCHINFO_LHITS: {
  1273   1277           int nZero = fts3MatchinfoSize(pInfo, zArg[i]) * sizeof(u32);
  1274   1278           memset(pInfo->aMatchinfo, 0, nZero);
  1275         -        fts3ExprLHitGather(pCsr->pExpr, pInfo);
         1279  +        rc = fts3ExprLHitGather(pCsr->pExpr, pInfo);
  1276   1280           break;
  1277   1281         }
  1278   1282   
  1279   1283         default: {
  1280   1284           Fts3Expr *pExpr;
  1281   1285           assert( zArg[i]==FTS3_MATCHINFO_HITS );
  1282   1286           pExpr = pCsr->pExpr;

Changes to test/fts3corrupt4.test.

   261    261   do_catchsql_test 6.1 {
   262    262     SELECT * FROM Table0 WHERE Table0 MATCH 'a';
   263    263   } {0 {}}
   264    264   
   265    265   do_catchsql_test 6.2 {
   266    266     INSERT INTO Table0(Table0) VALUES('optimize');
   267    267   } {0 {}}
          268  +
          269  +#-------------------------------------------------------------------------
          270  +reset_db
          271  +do_test 7.0 {
          272  +  sqlite3 db {}
          273  +  db deserialize [decode_hexdb {
          274  +| size 32768 pagesize 4096 filename crash-04bb6e7c811ce9.db
          275  +| page 1 offset 0
          276  +|      0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00   SQLite format 3.
          277  +|     16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 07   .....@  ........
          278  +|     32: 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 04   ................
          279  +|     48: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00   ................
          280  +|     96: 00 00 00 00 0d 0e ef 00 07 0d 4d 00 0f bd 0f 5f   ..........M...._
          281  +|    112: 0e f7 0e 06 0e bc 0d a4 0d 4d 00 00 00 00 00 00   .........M......
          282  +|   3392: 00 00 00 00 00 00 00 00 00 00 00 00 00 55 07 07   .............U..
          283  +|   3408: 17 1b 1b 01 81 01 74 61 62 6c 65 74 31 5f 73 74   ......tablet1_st
          284  +|   3424: 61 74 74 31 5f 73 74 61 74 07 43 52 45 41 54 45   att1_stat.CREATE
          285  +|   3440: 20 54 41 42 4c 45 20 27 74 31 5f 73 74 61 74 27    TABLE 't1_stat'
          286  +|   3456: 28 69 64 20 49 4e 54 45 47 45 52 20 50 52 49 4d   (id INTEGER PRIM
          287  +|   3472: 41 52 59 20 4b 45 59 2c 20 76 61 6c 75 65 20 42   ARY KEY, value B
          288  +|   3488: 4c 4f 42 29 60 06 07 17 21 21 01 81 0b 74 61 62   LOB)`...!!...tab
          289  +|   3504: 6c 65 74 31 5f 64 6f 63 73 69 7a 65 74 31 5f 64   let1_docsizet1_d
          290  +|   3520: 6f 63 73 69 7a 65 06 43 52 45 41 54 45 20 54 41   ocsize.CREATE TA
          291  +|   3536: 42 4c 45 20 27 74 31 5f 64 6f 63 73 69 7a 65 27   BLE 't1_docsize'
          292  +|   3552: 28 64 6f 63 69 64 20 49 4e 54 45 47 45 52 20 50   (docid INTEGER P
          293  +|   3568: 52 49 4d 41 52 59 20 4b 45 59 2c 20 73 69 7a 65   RIMARY KEY, size
          294  +|   3584: 20 42 4c 4f 42 29 81 33 04 07 17 1f 1f 01 82 35    BLOB).3.......5
          295  +|   3600: 74 61 62 6c 65 74 31 5f 73 65 67 64 69 72 74 31   tablet1_segdirt1
          296  +|   3616: 5f 73 65 67 64 69 72 04 43 52 45 41 54 45 20 54   _segdir.CREATE T
          297  +|   3632: 41 42 4c 45 20 27 74 31 5f 73 65 67 64 69 72 27   ABLE 't1_segdir'
          298  +|   3648: 28 6c 65 76 65 6c 20 49 4e 54 45 47 45 52 2c 69   (level INTEGER,i
          299  +|   3664: 64 78 20 49 4e 54 45 47 45 52 2c 73 74 61 72 74   dx INTEGER,start
          300  +|   3680: 5f 62 6c 6f 63 6b 20 49 4e 54 45 47 45 52 2c 6c   _block INTEGER,l
          301  +|   3696: 65 61 76 65 73 5f 65 6e 64 5f 62 6c 6f 63 6b 20   eaves_end_block 
          302  +|   3712: 49 4e 54 45 47 45 52 2c 65 6e 64 5f 62 6c 6f 63   INTEGER,end_bloc
          303  +|   3728: 6b 20 49 4e 54 45 47 45 52 2c 72 6f 6f 74 20 42   k INTEGER,root B
          304  +|   3744: 4c 4f 42 2c 50 52 49 4d 41 52 59 20 4b 45 59 28   LOB,PRIMARY KEY(
          305  +|   3760: 6c 65 76 65 6c 2c 20 69 64 78 29 29 31 05 06 17   level, idx))1...
          306  +|   3776: 45 1f 01 00 69 6e 64 65 78 73 71 6c 69 74 65 5f   E...indexsqlite_
          307  +|   3792: 61 75 74 6f 69 6e 64 65 78 5f 74 31 5f 73 65 67   autoindex_t1_seg
          308  +|   3808: 64 69 72 5f 31 74 31 5f 73 65 67 64 69 72 05 00   dir_1t1_segdir..
          309  +|   3824: 00 00 08 00 00 00 00 66 03 07 17 23 23 01 81 13   .......f...##...
          310  +|   3840: 74 61 62 6c 65 74 31 5f 73 65 67 6d 65 6e 74 73   tablet1_segments
          311  +|   3856: 74 31 5f 73 65 67 6d 65 6e 74 73 03 43 52 45 41   t1_segments.CREA
          312  +|   3872: 54 45 20 54 41 42 4c 45 20 27 74 31 5f 73 65 67   TE TABLE 't1_seg
          313  +|   3888: 6d 65 6e 74 73 27 28 62 6c 6f 63 6b 69 64 20 49   ments'(blockid I
          314  +|   3904: 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b   NTEGER PRIMARY K
          315  +|   3920: 45 59 2c 20 62 6c 6f 63 6b 20 42 4c 4f 42 29 5c   EY, block BLOB).
          316  +|   3936: 02 07 17 21 21 01 81 03 74 61 62 6c 65 74 31 5f   ...!!...tablet1_
          317  +|   3952: 63 6f 6e 74 65 6e 74 74 31 5f 63 6f 6e 74 65 6e   contentt1_conten
          318  +|   3968: 74 02 43 52 45 41 54 45 20 54 41 42 4c 45 20 27   t.CREATE TABLE '
          319  +|   3984: 74 31 5f 63 6f 6e 74 65 6e 74 27 28 64 6f 63 69   t1_content'(doci
          320  +|   4000: 64 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52   d INTEGER PRIMAR
          321  +|   4016: 59 20 4b 45 59 2c 20 27 63 30 61 27 29 41 01 06   Y KEY, 'c0a')A..
          322  +|   4032: 17 11 11 08 71 74 61 62 6c 65 74 31 74 31 43 52   ....qtablet1t1CR
          323  +|   4048: 45 41 54 45 20 56 49 52 54 55 41 4c 20 54 41 42   EATE VIRTUAL TAB
          324  +|   4064: 4c 45 20 74 31 20 55 53 49 4e 47 20 66 74 73 34   LE t1 USING fts4
          325  +|   4080: 28 61 2c 70 72 65 66 69 78 3d 27 31 2c 32 27 29   (a,prefix='1,2')
          326  +| page 2 offset 4096
          327  +|      0: 0d 00 00 00 08 0e 1f 00 0f c4 0f 7c 0f 34 0f 07   ...........|.4..
          328  +|     16: 0e c3 0e 97 0e 63 0e 1f 00 00 00 00 00 00 00 00   .....c..........
          329  +|   3600: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 42   ...............B
          330  +|   3616: 08 04 00 81 09 73 75 6e 74 20 69 6e 20 63 75 6c   .....sunt in cul
          331  +|   3632: 70 61 20 71 75 69 20 6f 66 66 69 63 69 61 20 64   pa qui officia d
          332  +|   3648: 65 73 65 72 75 6e 74 20 6d 6f 6c 6c 69 74 20 61   eserunt mollit a
          333  +|   3664: 6e 69 6d 20 69 64 20 65 73 74 20 6c 61 62 6f 72   nim id est labor
          334  +|   3680: 75 6d 2e 32 07 03 00 6b 45 78 63 65 70 74 65 75   um.2...kExcepteu
          335  +|   3696: 72 20 73 69 6e 74 20 6f 63 63 61 65 63 67 42 06   r sint occaecgB.
          336  +|   3712: 37 57 06 96 46 17 46 17 42 06 e6 f6 e2 07 07 26   7W..F.F.B......&
          337  +|   3728: f6 96 46 56 e7 42 c2 a0 60 30 05 b6 36 96 c6 c7   ..FV.B..`0..6...
          338  +|   3744: 56 d2 06 46 f6 c6 f7 26 52 06 57 52 06 67 56 7c   V..F...&R.WR.gV|
          339  +|   3760: 65 3f 04 20 6e 75 6c 6c 61 20 70 61 72 69 61 74   e?. nulla pariat
          340  +|   3776: 75 72 2e 42 05 04 00 81 09 44 75 69 73 20 61 75   ur.B.....Duis au
          341  +|   3792: 74 65 20 69 72 75 72 65 20 64 6f 6c 6f 72 20 69   te irure dolor i
          342  +|   3808: 6e 20 72 65 70 72 65 68 65 6e 64 65 72 69 74 20   n reprehenderit 
          343  +|   3824: 69 6e 20 76 6f 6c 75 70 74 61 74 65 20 76 65 6c   in voluptate vel
          344  +|   3840: 69 74 20 65 73 73 65 2b 04 03 00 5d 6e 69 73 69   it esse+...]nisi
          345  +|   3856: 20 75 74 20 61 6c 69 71 75 69 70 20 65 78 20 65    ut aliquip ex e
          346  +|   3872: 61 20 63 6f 6d 6d 6f 64 6f 20 63 6f 6e 73 65 71   a commodo conseq
          347  +|   3888: 75 61 74 2e 46 03 04 00 81 11 55 74 20 65 6e 69   uat.F.....Ut eni
          348  +|   3904: 6d 20 61 64 20 6d 69 6e 69 6d 20 76 65 6e 69 61   m ad minim venia
          349  +|   3920: 6d 2c 20 71 75 69 73 20 6e 6f 73 74 72 75 64 20   m, quis nostrud 
          350  +|   3936: 65 78 65 72 63 69 74 61 74 69 6f 6e 20 75 6c 6c   exercitation ull
          351  +|   3952: 61 6d 63 6f 20 6c 61 62 6f 72 69 73 46 02 04 00   amco laborisF...
          352  +|   3968: 81 11 73 65 64 20 64 6f 20 65 69 75 73 6d 6f 64   ..sed do eiusmod
          353  +|   3984: 20 74 65 6d 70 6f 72 20 69 6e 63 69 64 69 64 75    tempor incididu
          354  +|   4000: 6e 74 20 75 74 20 6c 61 62 6f 72 65 20 65 74 20   nt ut labore et 
          355  +|   4016: 64 6f 6c 6f 72 65 20 6d 61 67 6e 61 20 61 6c 69   dolore magna ali
          356  +|   4032: 71 75 61 2e 3a 01 03 00 7b 4c 6f 72 65 6d 20 69   qua.:....Lorem i
          357  +|   4048: 70 73 75 6d 20 64 6f 6c 6f 72 20 73 69 72 12 29   psum dolor sir.)
          358  +|   4064: 0d 65 74 2c 20 63 6f 6e 73 65 63 74 65 74 75 72   .et, consectetur
          359  +|   4080: 20 61 64 69 70 69 73 63 69 6e 67 20 65 6c 69 74    adipiscing elit
          360  +| page 3 offset 8192
          361  +|      0: 0d 00 00 00 00 10 30 00 10 17 50 30 80 20 00 00   ......0...P0. ..
          362  +|     16: 27 46 50 30 20 50 00 00 27 56 c0 30 30 a0 00 10   'FP0 P..'V.00...
          363  +|     32: 17 40 90 20 70 00 10 20 00 10 30 00 00 27 66 50   .@. p.. ..0..'fP
          364  +|     48: 60 30 60 00 20 a0 00 10 16 f0 30 50 90 08 20 a0   `0`. .....0P.. .
          365  +|     64: 20 80 20 80 80 81 78 40 20 40 03 02 03 23 53 10    . ...x@ @...#S.
          366  +|     80: 00 16 11 30 10 60 40 00 10 c0 00 10 40 00 00 00   ...0.`@.....@...
          367  +|     96: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 78 24   ..............x$
          368  +|    112: 41 71 83 37 10 27 97 60 10 40 00 00 16 41 10 10   Aq.7.'.`.@...A..
          369  +|    128: 40 00 10 30 90 00 30 20 50 00 10 30 00 20 70 00   @..0..0 P..0. p.
          370  +|    144: 00 16 51 b0 10 90 00 10 40 70 00 10 30 80 00 10   ..Q.....@p..0...
          371  +|    160: 50 30 00 10 b0 00 10 40 00 10 20 00 10 b0 00 00   P0.....@.. .....
          372  +|    176: 16 60 30 60 50 00 00 16 90 f0 10 30 00 10 60 00   .`0`P......0..`.
          373  +|    192: 30 40 40 40 00 30 30 90 00 00 16 c0 c0 10 20 00   0@@@.00....... .
          374  +|    208: 10 80 00 10 b0 00 50 c0 00 00 16 d0 90 20 b0 00   ......P...... ..
          375  +|    224: 10 50 00 50 80 00 00 16 e0 c0 30 80 00 10 20 00   .P.P......0... .
          376  +|    240: 20 60 00 10 60 00 00 16 f0 60 70 40 00 10 60 00    `..`....`p@..`.
          377  +|    256: 00 17 00 60 60 70 00 10 70 00 00 17 10 60 30 70   ...``p..p....`0p
          378  +|    272: 00 50 50 00 00 17 20 30 50 70 00 00 17 30 c0 10   .PP... 0Pp...0..
          379  +|    288: 50 00 10 20 00 50 30 00 10 20 00 00 17 40 30 20   P.. .P0.. ...@0 
          380  +|    304: 50 00 00 17 50 a0 20 70 00 10 20 a0 00 10 30 00   P...P. p.. ...0.
          381  +|    320: 00 17 60 70 30 60 00 20 90 30 08 52 60 10 80 80   ..`p0`. .0.R`...
          382  +|    336: 80 80 81 78 a3 e3 02 03 63 63 50 00 26 16 40 30   ...x....ccP.&.@0
          383  +|    352: 30 40 00 20 86 97 06 97 36 36 96 e6 70 30 10 80   0@. ....66..p0..
          384  +|    368: 00 10 56 c6 97 17 56 10 30 20 c0 00 50 26 97 00   ..V...V.0 ..P&..
          385  +|    384: 30 40 40 00 10 36 d6 57 40 30 10 60 00 10 36 e6   0@@..6.W@0.`..6.
          386  +|    400: 96 d0 30 80 90 00 10 37 57 46 50 30 50 30 00 00   ..0....7WFP0P0..
          387  +|    416: 66 36 96 c6 c7 56 d0 30 60 20 00 10 66 f6 d6 d6   f6...V.0` ..f...
          388  +|    432: f6 46 f0 30 40 70 00 20 96 e7 36 56 37 46 57 47   .F.0@p. ..6V7FWG
          389  +|    448: 57 20 30 10 70 00 50 47 17 56 17 40 30 40 80 00   W 0.p.PG.V.@0@..
          390  +|    464: 10 47 56 c7 06 10 30 80 40 00 20 77 06 96 46 17   .GV...0.@. w..F.
          391  +|    480: 46 17 40 30 70 50 00 00 86 46 57 36 57 27 56 e7   F.@0pP...FW6W'V.
          392  +|    496: 40 30 80 70 00 10 16 f0 30 20 30 00 20 36 c6 f7   @0.p....0 0. 6..
          393  +|    512: 20 60 10 40 00 40 50 00 50 16 50 60 20 a0 00 40    `.@.@P.P.P` ..@
          394  +|    528: 30 00 10 37 56 97 30 30 50 20 00 00 26 56 10 30   0..7V.00P ..&V.0
          395  +|    544: 40 60 00 10 66 97 57 36 d6 f6 40 30 20 40 00 10   @`..f.W6..@0 @..
          396  +|    560: 36 c6 97 40 30 10 90 00 15 35 14 c6 97 46 52 06   6..@0....5...FR.
          397  +|    576: 66 f7 26 d6 17 42 03 30 01 00 00 10 10 04 02 02   f.&..B.0........
          398  +|    592: 00 00 00 00 00 00 00 00 70 00 00 00 00 00 00 00   ........p.......
          399  +|    608: 00 00 00 00 60 00 00 00 40 00 00 00 00 00 00 00   ....`...@.......
          400  +| page 4 offset 12288
          401  +|      0: 0d 00 00 00 03 0a a6 00 0d 57 0c 4a 0a a6 00 00   .........W.J....
          402  +|   2720: 00 00 00 00 00 00 83 21 03 08 02 08 08 08 17 86   .......!........
          403  +|   2736: 30 08 00 30 20 34 30 32 00 02 61 64 06 01 08 00   0..0 402..ad....
          404  +|   2752: 02 04 00 01 01 6c 06 02 0c 00 02 04 00 01 01 6d   .....l.........m
          405  +|   2768: 03 01 06 00 01 01 6e 03 08 00 00 91 01 75 03 05   ......n......u..
          406  +|   2784: 03 00 00 02 63 69 03 06 02 00 01 01 6f 07 01 07   ....ci......o...
          407  +|   2800: 00 03 07 03 00 01 01 75 06 07 05 00 01 04 00 00   .......u........
          408  +|   2816: 02 64 65 03 08 07 00 01 01 6f 0d 01 04 00 01 03   .de......o......
          409  +|   2832: 09 00 03 05 00 01 03 00 01 01 75 03 05 02 00 00   ..........u.....
          410  +|   2848: 02 65 61 03 04 06 00 01 01 69 03 02 04 00 01 01   .ea......i......
          411  +|   2864: 6c 03 01 09 00 01 01 6e 30 03 03 00 01 01 73 06   l......n0.....s.
          412  +|   2880: 05 0b 00 03 0b 00 01 01 74 03 02 09 00 01 01 75   ........t......u
          413  +|   2896: 03 06 04 00 01 01 78 09 03 09 00 01 05 00 03 02   ......x.........
          414  +|   2912: 00 00 02 66 75 03 06 05 00 00 02 69 64 03 08 0a   ...fu......id...
          415  +|   2928: 00 01 01 6e 0a 02 06 00 03 06 04 00 03 03 00 01   ...n............
          416  +|   2944: 01 70 03 01 03 00 01 01 72 03 05 04 00 00 02 6c   .p......r......l
          417  +|   2960: 61 09 02 08 00 01 0b 00 05 0c 00 01 01 6f 03 01   a............o..
          418  +|   2976: 02 00 00 02 6d 61 03 02 0b 00 01 01 69 03 03 05   ....ma......i...
          419  +|   2992: 00 01 01 6f 03 08 08 00 00 02 6e 69 03 04 02 00   ...o......ni....
          420  +|   3008: 01 01 6f 06 03 08 00 04 06 00 01 01 75 03 06 06   ..o.........u...
          421  +|   3024: 00 00 02 6f 63 03 07 04 00 01 01 66 03 08 06 00   ...oc......f....
          422  +|   3040: 00 02 70 61 03 06 07 00 01 01 72 03 07 07 00 00   ..pa......r.....
          423  +|   3056: 02 71 75 06 03 07 00 05 05 00 00 02 72 65 03 05   .qu.........re..
          424  +|   3072: 07 00 00 02 73 65 03 02 02 00 01 01 69 06 01 05   ....se......i...
          425  +|   3088: 00 06 03 00 01 01 75 03 08 02 00 00 02 74 65 03   ......u......te.
          426  +|   3104: 02 05 00 00 02 75 6c 03 03 0a 00 01 01 74 09 02   .....ul......t..
          427  +|   3120: 07 00 01 02 00 01 03 00 00 02 76 65 06 03 06 00   ..........ve....
          428  +|   3136: 02 0a 00 01 01 6f 03 05 09 00 82 0a 02 08 02 08   .....o..........
          429  +|   3152: 08 08 17 84 02 04 00 30 20 32 35 31 00 01 61 13   .......0 251..a.
          430  +|   3168: 01 06 04 00 01 0c 00 01 04 00 01 04 00 01 03 00   ................
          431  +|   3184: 03 09 00 00 01 63 10 01 07 00 03 07 03 00 02 02   .....c..........
          432  +|   3200: 00 01 05 00 01 04 00 00 01 64 11 01 04 00 01 03   .........d......
          433  +|   3216: 09 00 03 02 05 00 01 03 00 02 07 00 00 01 65 1b   ..............e.
          434  +|   3232: 01 09 00 01 04 01 70 00 03 01 80 00 05 03 00 01   ......p.........
          435  +|   3248: 0b 00 01 04 00 01 02 00 01 0b 00 00 01 66 03 06   .............f..
          436  +|   3264: 05 00 00 01 69 0f 01 03 00 01 06 00 03 04 04 04   ....i...........
          437  +|   3280: 00 03 03 09 00 00 01 6c 0c 01 02 00 01 08 00 01   .......l........
          438  +|   3296: 0b 00 05 0c 00 00 01 6d 09 02 0b 00 01 05 00 05   .......m........
          439  +|   3312: 08 00 00 01 6e 0c 03 08 00 01 02 00 02 06 00 01   ....n...........
          440  +|   3328: 06 00 00 01 6f 06 07 04 00 01 06 00 00 01 70 06   ....o.........p.
          441  +|   3344: 06 07 00 01 07 00 00 01 71 06 03 07 00 05 05 00   ........q.......
          442  +|   3360: 00 01 72 03 05 07 00 00 01 73 0c 01 05 00 01 02   ..r......s......
          443  +|   3376: 00 05 03 00 01 02 00 00 01 74 03 02 05 00 00 01   .........t......
          444  +|   3392: 75 0a 02 07 00 01 02 0a 00 01 03 00 00 01 76 07   u.............v.
          445  +|   3408: 03 06 00 02 09 03 00 85 26 01 08 08 08 08 08 17   ........&.......
          446  +|   3424: 8a 3e 30 20 36 36 35 00 02 61 64 03 03 04 00 02   .>0 665..ad.....
          447  +|   3440: 08 69 70 69 73 63 69 6e 67 03 01 08 00 01 05 6c   .ipiscing......l
          448  +|   3456: 69 71 75 61 03 02 0c 00 05 02 69 70 03 04 04 00   iqua......ip....
          449  +|   3472: 01 03 6d 65 74 03 01 06 00 01 03 6e 69 6d 03 08   ..met......nim..
          450  +|   3488: 09 00 01 03 75 74 65 03 05 03 00 00 06 63 69 6c   ....ute......cil
          451  +|   3504: 6c 75 6d 03 06 02 00 01 06 6f 6d 6d 6f 64 6f 03   lum......ommodo.
          452  +|   3520: 04 07 00 02 09 6e 73 65 63 74 65 74 75 72 03 01   .....nsectetur..
          453  +|   3536: 07 00 05 04 71 75 61 74 03 04 08 00 01 04 75 6c   ....quat......ul
          454  +|   3552: 70 61 03 08 04 00 02 07 70 69 64 61 74 61 74 03   pa......pidatat.
          455  +|   3568: 07 05 00 00 08 64 65 73 65 72 75 6e 74 03 08 07   .....deserunt...
          456  +|   3584: 00 01 01 6f 03 02 03 00 02 03 6c 6f 72 06 01 04   ...o......lor...
          457  +|   3600: 00 04 05 00 05 01 65 06 02 0a 00 04 03 00 01 03   ......e.........
          458  +|   3616: 75 69 73 03 05 02 00 00 02 65 61 03 04 06 00 01   uis......ea.....
          459  +|   3632: 06 69 75 73 6d 6f 64 03 02 04 00 01 03 6c 69 74   .iusmod......lit
          460  +|   3648: 03 01 09 00 01 03 6e 69 6d 03 03 03 00 01 03 73   ......nim......s
          461  +|   3664: 73 65 03 05 0b 00 02 01 74 03 08 0b 00 01 01 74   se......t......t
          462  +|   3680: 03 02 09 00 01 01 75 03 06 04 00 01 01 78 03 04   ......u......x..
          463  +|   3696: 05 00 02 07 63 65 70 74 65 75 72 03 07 02 00 02   ....cepteur.....
          464  +|   3712: 0a 65 72 63 69 74 61 74 69 6f 6e 03 03 09 00 00   .ercitation.....
          465  +|   3728: 06 66 75 67 69 61 74 03 06 05 00 00 02 69 64 03   .fugiat......id.
          466  +|   3744: 08 0a 00 01 01 6e 07 05 06 04 00 03 03 00 02 08   .....n..........
          467  +|   3760: 63 69 64 69 64 75 6e 74 03 02 06 00 01 04 70 73   cididunt......ps
          468  +|   3776: 75 6d 03 01 03 00 01 04 72 75 72 65 03 05 04 00   um......rure....
          469  +|   3792: 00 06 6c 61 62 6f 72 65 03 02 08 00 05 02 69 73   ..labore......is
          470  +|   3808: 03 03 0b 00 05 02 75 6d 03 08 0c 00 01 04 6f 72   ......um......or
          471  +|   3824: 65 6d 03 01 02 00 00 05 6d 61 67 6e 61 03 02 0b   em......magna...
          472  +|   3840: 00 01 04 69 6e 69 6d 03 03 05 00 01 05 6f 6c 6c   ...inim......oll
          473  +|   3856: 69 74 03 08 08 00 00 04 6e 69 73 69 03 04 02 00   it......nisi....
          474  +|   3872: 01 02 6f 6e 03 07 06 00 02 05 73 74 72 75 64 03   ..on......strud.
          475  +|   3888: 03 08 00 01 04 75 6c 6c 61 03 06 06 00 00 08 6f   .....ulla......o
          476  +|   3904: 63 63 61 65 63 61 74 03 07 04 00 01 06 66 66 69   ccaecat......ffi
          477  +|   3920: 63 69 61 03 08 06 00 00 08 70 61 72 69 61 74 75   cia......pariatu
          478  +|   3936: 72 03 06 07 00 01 07 72 6f 69 64 65 6e 74 03 07   r......roident..
          479  +|   3952: 07 00 00 03 71 75 69 03 08 05 00 03 01 73 03 03   ....qui......s..
          480  +|   3968: 07 00 00 0d 72 65 70 72 65 68 65 6e 64 65 72 69   ....reprehenderi
          481  +|   3984: 74 03 05 07 00 00 03 73 65 64 03 02 02 00 01 03   t......sed......
          482  +|   4000: 69 6e 74 03 07 03 00 02 01 74 03 01 05 00 01 03   int......t......
          483  +|   4016: 75 6e 74 03 08 02 00 00 06 74 65 6d 70 6f 72 03   unt......tempor.
          484  +|   4032: 02 05 00 00 07 75 6c 6c 61 6d 63 6f 03 03 0a 00   .....ullamco....
          485  +|   4048: 01 01 74 09 02 07 00 01 02 00 01 03 00 00 05 76   ..t............v
          486  +|   4064: 65 6c 69 74 03 05 0a 00 02 04 6e 69 61 6d 03 03   elit......niam..
          487  +|   4080: 06 00 01 08 6f 6c 75 70 74 61 74 65 03 05 09 00   ....oluptate....
          488  +| page 5 offset 16384
          489  +|      0: 0a 00 00 00 03 0f eb 00 0f fb 0f f3 0f eb 00 00   ................
          490  +|   4064: 00 00 00 00 00 00 00 00 00 00 00 07 04 02 08 01   ................
          491  +|   4080: 08 00 03 07 04 02 08 01 04 00 02 04 04 08 08 09   ................
          492  +| page 6 offset 20480
          493  +|      0: 0d 00 00 00 08 0f d0 00 0f fa 0f f4 0f ee 0f e8   ................
          494  +|     16: 0f e2 0f dc 0f d6 0f d0 00 00 00 00 00 00 00 00   ................
          495  +|   4048: 04 08 03 00 0e 0b 04 07 03 00 0e 06 04 06 03 00   ................
          496  +|   4064: 0e 06 04 05 03 00 0e 0a 04 04 03 00 0e 07 04 03   ................
          497  +|   4080: 03 00 0e 0a 04 02 03 00 0e 0b 04 01 03 00 0e 08   ................
          498  +| page 7 offset 24576
          499  +|      0: 0d 00 00 00 01 0f f7 00 0f f7 00 00 00 00 00 00   ................
          500  +|   4080: 00 00 00 00 00 00 00 07 00 03 00 14 08 45 b5 03   .............E..
          501  +| page 8 offset 28672
          502  +|      0: 6f ee cd e1 f1 ee 1a ca be ed ee ec de ac f1 cb   o...............
          503  +|     16: f1 ee 1a ce de ee f1 ee 0a cc de ed ae 90 87 88   ................
          504  +|     32: ec 5e dc ec fc 11 72 32 75 0a da be ec ed eb de   .^....r2u.......
          505  +|     48: ce c1 aa e0 ae ec 1f c1 ee 99 c2 aa e0 a9 ad 15   ................
          506  +|     64: 0e ec ab ef 1e e0 48 ad 15 04 24 80 00 00 00 00   ......H...$.....
          507  +|     80: 00 00 00 00 e0 00 00 00 04 2c 80 00 10 42 4e c1   .........,...BN.
          508  +|     96: 20 4b 45 59 2c 6e 6f 64 65 6e 6f 2c 61 30 29 46    KEY,nodeno,a0)F
          509  +|    112: 02 06 17 11 11 08 7b 74 61 62 6c 65 74 31 74 31   .......tablet1t1
          510  +|    128: 43 52 45 41 54 e1 ec eb ea eb eb ac ee ce be de   CREAT...........
          511  +|    144: ee f1 ee 1a ca ba de 47 80 30 00 14 90 47 70 30   .......G.0...Gp0
          512  +|    160: 00 11 60 47 60 30 00 15 f0 47 50 30 00 10 f0 47   ..`G`0...GP0...G
          513  +|    176: 40 30 00 11 f0 47 45 20 30 00 11 d0 45 10 30 00   @0...GE 0...E.0.
          514  +|    192: 12 10 45 00 30 00 14 e0 44 f0 30 00 11 e0 44 e0   ..E.0...D.0...D.
          515  +|    208: 30 00 12 a0 44 d0 30 00 15 e0 44 c0 30 00 10 40   0...D.0...D.0..@
          516  +|    224: 44 b0 30 00 15 10 44 a0 30 00 14 c0 44 90 30 00   D.0...D.0...D.0.
          517  +|    240: 16 20 44 80 30 00 52 45 41 54 45 20 54 41 42 4c   . D.0.REATE TABL
          518  +|    256: 45 20 27 74 31 5f 63 6f 6e 74 65 6e 74 27 28 69   E 't1_content'(i
          519  +|    272: 64 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52   d INTEGER PRIMAR
          520  +|    288: 59 20 4b 45 59 2c 20 63 30 29 69 03 07 17 19 19   Y KEY, c0)i.....
          521  +|    304: 01 81 2d 74 61 62 6c 65 74 31 5f 69 64 78 74 31   ..-tablet1_idxt1
          522  +|    320: 5f 69 64 78 03 43 52 45 41 54 45 20 54 41 42 4c   _idx.CREATE TABL
          523  +|    336: 45 20 27 70 31 5f 69 64 78 03 6e 69 6d 03 03 03   E 'p1_idx.nim...
          524  +|    352: 00 01 03 73 73 65 03 05 0b 00 02 01 74 03 08 0b   ...sse......t...
          525  +|    368: 00 01 01 74 03 02 09 00 01 01 75 03 06 04 00 01   ...t......u.....
          526  +|    384: 01 78 03 04 05 00 02 07 63 65 70 74 65 75 72 03   .x......cepteur.
          527  +|    400: 07 02 00 02 0a 65 72 63 69 74 61 74 69 6f 6e 03   .....ercitation.
          528  +|    416: 03 09 00 00 06 66 75 67 69 61 74 03 06 05 00 00   .....fugiat.....
          529  +|    432: 02 69 64 03 08 0a 00 01 01 6e 07 05 06 04 00 03   .id......n......
          530  +|    448: 03 00 02 08 63 69 64 69 64 75 6e 74 03 02 06 00   ....cididunt....
          531  +|    464: 01 04 70 73 75 6d 03 01 03 00 01 04 72 75 72 65   ..psum......rure
          532  +|    480: 03 05 04 00 00 06 6c 61 62 6f 72 65 03 02 08 00   ......labore....
          533  +|    496: 05 02 69 73 03 03 0b 00 05 02 75 6d 03 08 0c 00   ..is......um....
          534  +|    512: 01 04 6f 72 65 6d 03 01 02 00 00 05 6d 61 67 6e   ..orem......magn
          535  +|    528: 61 03 02 0b 00 01 04 69 6e 69 6d 03 03 05 00 01   a......inim.....
          536  +|    544: 05 6f 6c 6c 69 74 03 08 08 00 00 04 6e 69 73 69   .ollit......nisi
          537  +|    560: 03 04 02 00 01 02 6f 6e 03 07 06 00 02 05 73 74   ......on......st
          538  +|    576: 72 75 64 03 03 08 00 01 04 75 6c 6c 61 03 06 06   rud......ulla...
          539  +|    592: 00 00 08 6f 63 63 61 65 63 61 74 03 07 04 00 01   ...occaecat.....
          540  +|    608: 06 66 66 69 63 69 61 03 08 06 00 00 08 70 61 72   .fficia......par
          541  +|    624: 69 61 74 75 72 03 06 07 00 01 07 72 6f ed ce de   iatur......ro...
          542  +|    640: 69 64 65 6e 74 03 07 07 00 00 03 71 75 69 03 08   ident......qui..
          543  +|    656: 05 00 03 01 73 03 03 07 00 00 0d 72 65 70 72 65   ....s......repre
          544  +|    672: 68 65 6e 64 65 72 69 74 03 05 07 00 00 03 73 65   henderit......se
          545  +|    688: 64 03 02 02 00 01 03 69 6e 74 03 07 03 00 02 01   d......int......
          546  +|    704: 74 03 01 05 00 01 03 75 6e 74 03 08 02 00 00 06   t......unt......
          547  +|    720: 74 65 6d 70 6f 72 03 02 05 00 00 07 75 6c 6c 61   tempor......ulla
          548  +|    736: 6d 63 6f 03 03 0a 00 01 01 74 09 02 07 00 01 02   mco......t......
          549  +|    752: 00 01 03 00 00 05 76 65 6c 69 74 03 05 0a 00 02   ......velit.....
          550  +|    768: 04 6e 69 61 6d 03 03 06 00 01 08 6f 6c 75 70 74   .niam......olupt
          551  +|    784: 61 74 65 03 05 09 00 0a 00 00 00 03 0f eb 00 0f   ate.............
          552  +|    800: fb 0f f3 0f eb 00 00 00 00 00 00 00 00 00 00 00   ................
          553  +| end crash-04bb6e7c811ce9.db
          554  +}]} {}
          555  +
          556  +do_catchsql_test 7.1 {
          557  +  SELECT matchinfo(t1,'y') FROM t1 WHERE t1 MATCH 'e*';
          558  +} {1 {database disk image is malformed}}
   268    559   
   269    560   finish_test