From: dan Date: Wed, 19 Oct 2011 16:20:40 +0000 (+0000) Subject: Merge the fts4-content branch with the trunk. X-Git-Tag: version-3.7.9~18 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e459b07601351800e3a7166de88070a40ce12990;p=thirdparty%2Fsqlite.git Merge the fts4-content branch with the trunk. FossilOrigin-Name: 8a4077057ddeb08e8edc5f20a75abaaba7a278ba --- e459b07601351800e3a7166de88070a40ce12990 diff --cc ext/fts3/fts3.c index 754f3b5cb7,c5f51a4ccf..41791cb3cb --- a/ext/fts3/fts3.c +++ b/ext/fts3/fts3.c @@@ -1326,29 -1487,33 +1487,33 @@@ static int fts3CursorSeekStmt(Fts3Curso ** SQLITE_OK on success. */ static int fts3CursorSeek(sqlite3_context *pContext, Fts3Cursor *pCsr){ + int rc = SQLITE_OK; if( pCsr->isRequireSeek ){ - sqlite3_bind_int64(pCsr->pStmt, 1, pCsr->iPrevId); - pCsr->isRequireSeek = 0; - if( SQLITE_ROW==sqlite3_step(pCsr->pStmt) ){ - return SQLITE_OK; - }else{ - int rc = sqlite3_reset(pCsr->pStmt); - if( rc==SQLITE_OK ){ - /* If no row was found and no error has occured, then the %_content - ** table is missing a row that is present in the full-text index. - ** The data structures are corrupt. - */ - rc = FTS_CORRUPT_VTAB; - } - pCsr->isEof = 1; - if( pContext ){ - sqlite3_result_error_code(pContext, rc); + sqlite3_stmt *pStmt = 0; + + rc = fts3CursorSeekStmt(pCsr, &pStmt); + if( rc==SQLITE_OK ){ + sqlite3_bind_int64(pCsr->pStmt, 1, pCsr->iPrevId); + pCsr->isRequireSeek = 0; + if( SQLITE_ROW==sqlite3_step(pCsr->pStmt) ){ + return SQLITE_OK; + }else{ + rc = sqlite3_reset(pCsr->pStmt); + if( rc==SQLITE_OK && ((Fts3Table *)pCsr->base.pVtab)->zContentTbl==0 ){ + /* If no row was found and no error has occured, then the %_content + ** table is missing a row that is present in the full-text index. + ** The data structures are corrupt. */ - rc = SQLITE_CORRUPT_VTAB; ++ rc = FTS_CORRUPT_VTAB; + pCsr->isEof = 1; + } } - return rc; } - }else{ - return SQLITE_OK; } + + if( rc!=SQLITE_OK && pContext ){ + sqlite3_result_error_code(pContext, rc); + } + return rc; } /* diff --cc ext/fts3/fts3_snippet.c index 3bb47a04ad,6a3d1ec893..23ef25c5d4 --- a/ext/fts3/fts3_snippet.c +++ b/ext/fts3/fts3_snippet.c @@@ -1426,8 -1427,8 +1427,8 @@@ void sqlite3Fts3Offsets "%d %d %d %d ", iCol, pTerm-sCtx.aTerm, iStart, iEnd-iStart ); rc = fts3StringAppend(&res, aBuffer, -1); - }else if( rc==SQLITE_DONE ){ + }else if( rc==SQLITE_DONE && pTab->zContentTbl==0 ){ - rc = SQLITE_CORRUPT_VTAB; + rc = FTS_CORRUPT_VTAB; } } } diff --cc ext/fts3/fts3_write.c index 471feeec9f,855e97764e..d3a88cbe61 --- a/ext/fts3/fts3_write.c +++ b/ext/fts3/fts3_write.c @@@ -3217,9 -3347,11 +3345,11 @@@ int sqlite3Fts3UpdateMethod if( nArg>1 && rc==SQLITE_OK ){ if( bInsertDone==0 ){ rc = fts3InsertData(p, apVal, pRowid); - if( rc==SQLITE_CONSTRAINT ) rc = FTS_CORRUPT_VTAB; + if( rc==SQLITE_CONSTRAINT && p->zContentTbl==0 ){ - rc = SQLITE_CORRUPT_VTAB; ++ rc = FTS_CORRUPT_VTAB; + } } - if( rc==SQLITE_OK && (!isRemove || *pRowid!=iRemove) ){ + if( rc==SQLITE_OK && (!isRemove || *pRowid!=p->iPrevDocid ) ){ rc = fts3PendingTermsDocid(p, *pRowid); } if( rc==SQLITE_OK ){ diff --cc manifest index a2eeca7d58,50449c9718..528e4691d0 --- a/manifest +++ b/manifest @@@ -1,5 -1,5 +1,5 @@@ - C Fix\sthe\svirtual\stable\srename\slogic\sso\sthat\sit\sworks\seven\sif\sthe\sdatabase\nencoding\sis\ssomething\sother\sthan\sUTF8.\nTicket\s[8290242b2a9a81683] - D 2011-10-18T22:07:47.722 -C Have\sFTS3\signore\s^\sprefixes.\sThe\s^\ssyntax\sis\sonly\ssupported\son\sFTS4\stables. -D 2011-10-19T15:52:48.921 ++C Merge\sthe\sfts4-content\sbranch\swith\sthe\strunk. ++D 2011-10-19T16:20:40.613 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in a162fe39e249b8ed4a65ee947c30152786cfe897 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@@ -62,22 -62,22 +62,22 @@@ F ext/fts2/mkfts2amal.tcl 974d5d438cb3f F ext/fts3/README.syntax a19711dc5458c20734b8e485e75fb1981ec2427a F ext/fts3/README.tokenizers 998756696647400de63d5ba60e9655036cb966e9 F ext/fts3/README.txt 8c18f41574404623b76917b9da66fcb0ab38328d - F ext/fts3/fts3.c 19f36945148cfd4ee3655b5fac0879ba4e0f3117 -F ext/fts3/fts3.c e8ee5c78a3c7715b597db4e5c890ec658ee0401a ++F ext/fts3/fts3.c 9c125699baf1c03a3d8d53fb7d8d27ab4ad7d6eb F ext/fts3/fts3.h 3a10a0af180d502cecc50df77b1b22df142817fe - F ext/fts3/fts3Int.h 59c5a9475fed5d76c70a4763103b3c8e60424a68 -F ext/fts3/fts3Int.h 74afec80054924976b2d3a21eda17e33c6ff6b84 ++F ext/fts3/fts3Int.h def7a900f98c5ab5fa4772e922bfa219d5097f05 F ext/fts3/fts3_aux.c 0ebfa7b86cf8ff6a0861605fcc63b83ec1b70691 - F ext/fts3/fts3_expr.c 61ceee7c9698c7ae1ba55ab6ff7961456a8b465a -F ext/fts3/fts3_expr.c 34dd0edf1e2723ce22d88039dc1ad687a95fb1bb ++F ext/fts3/fts3_expr.c f5df26bddf46a5916b2a5f80c4027996e92b7b15 F ext/fts3/fts3_hash.c 8dd2d06b66c72c628c2732555a32bc0943114914 F ext/fts3/fts3_hash.h 8331fb2206c609f9fc4c4735b9ab5ad6137c88ec F ext/fts3/fts3_icu.c 6c8f395cdf9e1e3afa7fadb7e523dbbf381c6dfa F ext/fts3/fts3_porter.c 8d946908f4812c005d3d33fcbe78418b1f4eb70c - F ext/fts3/fts3_snippet.c 19a906f8ed73ad8b670dfc271ceae7b3338c157e -F ext/fts3/fts3_snippet.c e1f3ed049efa35337d393a0ae971b32c28f4c88d ++F ext/fts3/fts3_snippet.c 1f9ee6a8e0e242649645968dcec4deb253d86c2a F ext/fts3/fts3_term.c a5457992723455a58804cb75c8cbd8978db5c2ef F ext/fts3/fts3_test.c 24fa13f330db011500acb95590da9eee24951894 F ext/fts3/fts3_tokenizer.c 9ff7ec66ae3c5c0340fa081958e64f395c71a106 F ext/fts3/fts3_tokenizer.h 13ffd9fcb397fec32a05ef5cd9e0fa659bf3dbd3 F ext/fts3/fts3_tokenizer1.c 0dde8f307b8045565cf63797ba9acfaff1c50c68 - F ext/fts3/fts3_write.c ffe13acc3867ea6b0fc8b9cfbf904bfae64eac84 -F ext/fts3/fts3_write.c aaf0885fd5d37c6869071ee58b5aa3ba07cc0d87 ++F ext/fts3/fts3_write.c f2545f59a4cc2eb6739acb3d026b8a91a1f3d429 F ext/fts3/fts3speed.tcl b54caf6a18d38174f1a6e84219950d85e98bb1e9 F ext/fts3/mkfts3amal.tcl 252ecb7fe6467854f2aa237bf2c390b74e71f100 F ext/icu/README.txt bf8461d8cdc6b8f514c080e4e10dc3b2bbdfefa9 @@@ -470,8 -468,8 +470,8 @@@ F test/fts3conf.test 8e65ea56f88ced6cdd F test/fts3corrupt.test 7b0f91780ca36118d73324ec803187208ad33b32 F test/fts3corrupt2.test 6d96efae2f8a6af3eeaf283aba437e6d0e5447ba F test/fts3cov.test e0fb00d8b715ddae4a94c305992dfc3ef70353d7 -F test/fts3d.test 95fb3c862cbc4297c93fceb9a635543744e9ef52 +F test/fts3d.test bf640d79722b720fa1c81834c48cdaa45d531b1a - F test/fts3defer.test ffd4e07f79a09660d4b3e2613b041ab9b6100d91 + F test/fts3defer.test 2ea3fa028f8d9523f9c33dd8acc4555d567ea4ac F test/fts3defer2.test 35867d33ba6db03f6c73bd6f5fc333ae14f68c81 F test/fts3e.test 1f6c6ac9cc8b772ca256e6b22aaeed50c9350851 F test/fts3expr.test 5e745b2b6348499d9ef8d59015de3182072c564c @@@ -622,10 -622,10 +624,10 @@@ F test/pageropt.test 9191867ed19a2b3db6 F test/pagesize.test 1dd51367e752e742f58e861e65ed7390603827a0 F test/pcache.test 065aa286e722ab24f2e51792c1f093bf60656b16 F test/pcache2.test a83efe2dec0d392f814bfc998def1d1833942025 - F test/permutations.test ad17319066a90e2db71823c3ff104795ffc71b31 + F test/permutations.test 522823b47238cb1754198f80817fe9f9158ede55 -F test/pragma.test c8108e01da04f16e67e5754e610bc62c1b993f6c +F test/pragma.test 1ea0c85be853135bb7468e6eed48ee12b04794d4 F test/pragma2.test 3a55f82b954242c642f8342b17dffc8b47472947 -F test/printf.test 05970cde31b1a9f54bd75af60597be75a5c54fea +F test/printf.test ec9870c4dce8686a37818e0bf1aba6e6a1863552 F test/progress.test 5b075c3c790c7b2a61419bc199db87aaf48b8301 F test/ptrchng.test ef1aa72d6cf35a2bbd0869a649b744e9d84977fc F test/quick.test 1681febc928d686362d50057c642f77a02c62e57 @@@ -964,13 -963,11 +966,13 @@@ F tool/speedtest2.tcl ee2149167303ba8e9 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/split-sqlite3c.tcl d9be87f1c340285a3e081eb19b4a247981ed290c -F tool/symbols.sh caaf6ccc7300fd43353318b44524853e222557d5 +F tool/symbols-mingw.sh 4dbcea7e74768305384c9fd2ed2b41bbf9f0414d +F tool/symbols.sh fec58532668296d7c7dc48be9c87f75ccdb5814f F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -F tool/warnings.sh b7fdb2cc525f5ef4fa43c80e771636dd3690f9d2 -P 9b58c59eb4efaa38ce50a3ce1b52f9ba578c71d6 -R b05473465da4d8af6fcb4e85b9ce8174 +F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a +F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381 - P 54aecd929867606d14a062b501abbfb6f5f05e37 - R dccf2fe03db8f585fac4df0bc3670756 - U drh - Z aaf98f5abdd914fb531f49ab6760c2d4 ++P d65f63531c3f8e3e55e656f049240714a3d7433f df36ac948179f37b432a88701b6c79299e073ce8 ++R 3877ede50d6923a62a70ae0714da94fb + U dan -Z 1ed48059f0e9f692b253c99c9d63572e ++Z e6c406cc06dcce98e86f6b11f422dc50 diff --cc manifest.uuid index 10b56c6753,0f7fa81637..eef6d62dc6 --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - d65f63531c3f8e3e55e656f049240714a3d7433f -df36ac948179f37b432a88701b6c79299e073ce8 ++8a4077057ddeb08e8edc5f20a75abaaba7a278ba