Fix another fts3 problem with processing corrupt records.

FossilOrigin-Name: 6e0ffa205312416830340ea6e621dfb1a529e5603d569941ed6263930dc28c45
This commit is contained in:
dan 2020-06-29 13:33:56 +00:00
parent 5cbb442ea3
commit b695bab055
4 changed files with 30 additions and 12 deletions

View File

@ -5208,10 +5208,12 @@ static int fts3EvalNearTrim(
); );
if( res ){ if( res ){
nNew = (int)(pOut - pPhrase->doclist.pList) - 1; nNew = (int)(pOut - pPhrase->doclist.pList) - 1;
assert( pPhrase->doclist.pList[nNew]=='\0' ); if( nNew>=0 ){
assert( nNew<=pPhrase->doclist.nList && nNew>0 ); assert( pPhrase->doclist.pList[nNew]=='\0' );
memset(&pPhrase->doclist.pList[nNew], 0, pPhrase->doclist.nList - nNew); assert( nNew<=pPhrase->doclist.nList && nNew>0 );
pPhrase->doclist.nList = nNew; memset(&pPhrase->doclist.pList[nNew], 0, pPhrase->doclist.nList - nNew);
pPhrase->doclist.nList = nNew;
}
*paPoslist = pPhrase->doclist.pList; *paPoslist = pPhrase->doclist.pList;
*pnToken = pPhrase->nToken; *pnToken = pPhrase->nToken;
} }

View File

@ -1,9 +1,10 @@
B 7a876209a678a34c198b54ceef9e3c041f128a14dc73357f6a57cadadaa6cf7b B 7a876209a678a34c198b54ceef9e3c041f128a14dc73357f6a57cadadaa6cf7b
C Small\sperformance\simprovement\sin\sthe\ssqlite3_step()\sinterface. C Fix\sanother\sfts3\sproblem\swith\sprocessing\scorrupt\srecords.
D 2020-06-29T13:12:42.266 D 2020-06-29T13:33:56.351
F Makefile.in 19374a5db06c3199ec1bab71ab74a103d8abf21053c05e9389255dc58083f806 F Makefile.in 19374a5db06c3199ec1bab71ab74a103d8abf21053c05e9389255dc58083f806
F Makefile.msc 48f5a3fc32672c09ad73795749f6253e406a31526935fbbffd8f021108d54574 F Makefile.msc 48f5a3fc32672c09ad73795749f6253e406a31526935fbbffd8f021108d54574
F autoconf/Makefile.am a8d1d24affe52ebf8d7ddcf91aa973fa0316618ab95bb68c87cabf8faf527dc8 F autoconf/Makefile.am a8d1d24affe52ebf8d7ddcf91aa973fa0316618ab95bb68c87cabf8faf527dc8
F ext/fts3/fts3.c 5ffabd0d13210fb9cfe1c08184201282722adfeea49cd9e8e2ae29d1fefd7fcb
F ext/fts3/fts3_write.c 78a447d9f2610b90eb39489721d5dc547098fab3a8b06f834ad809f9832ce93d F ext/fts3/fts3_write.c 78a447d9f2610b90eb39489721d5dc547098fab3a8b06f834ad809f9832ce93d
F ext/lsm1/lsm_unix.c 11e0a5c19d754a4e1d93dfad06de8cc201f10f886b8e61a4c599ed34e334fc24 F ext/lsm1/lsm_unix.c 11e0a5c19d754a4e1d93dfad06de8cc201f10f886b8e61a4c599ed34e334fc24
F ext/misc/decimal.c c1897f624893d1c12e3c879d97ca7d1c4a36cae10d32afe632779de78c4aaa4f F ext/misc/decimal.c c1897f624893d1c12e3c879d97ca7d1c4a36cae10d32afe632779de78c4aaa4f
@ -15,7 +16,7 @@ F src/shell.c.in d663152487d4bfddea0f6d21ebc2ed51575d22657a02c6828afd344bbd4651a
F src/test1.c fe56c4bcaa2685ca9aa25d817a0ee9345e189aff4a5a71a3d8ba946c7776feb8 F src/test1.c fe56c4bcaa2685ca9aa25d817a0ee9345e189aff4a5a71a3d8ba946c7776feb8
F src/vdbeapi.c c1a9004ac554d8d48794d2ce5f80397f8e419fd28643a543cc1e004c7713c3ef F src/vdbeapi.c c1a9004ac554d8d48794d2ce5f80397f8e419fd28643a543cc1e004c7713c3ef
F test/decimal.test 12739a01bdba4c4d79f95b323e6b67b9fad1ab6ffb56116bd2b9c81a5b19e1d9 F test/decimal.test 12739a01bdba4c4d79f95b323e6b67b9fad1ab6ffb56116bd2b9c81a5b19e1d9
F test/fts3corrupt4.test 21632b7d118833739715f89cf930ee8bbcfba52877e37786dc8ca375360d578c F test/fts3corrupt4.test 99a3017da1f43c8dbecd1b053029ade08dfa51b94ca043abffe5d32f21cc5736
F test/fuzzdata8.db 0ae860b36b79fd41cafddc9e6602358b2d5c331cf200283221e659f86e196c0c F test/fuzzdata8.db 0ae860b36b79fd41cafddc9e6602358b2d5c331cf200283221e659f86e196c0c
F test/ieee754.test b0945d12be7d255f3dfa18e2511b17ca37e0edd2b803231c52d05b86c04ab26e F test/ieee754.test b0945d12be7d255f3dfa18e2511b17ca37e0edd2b803231c52d05b86c04ab26e
F test/speedtest1.c a8b5afe72d78ff365012aba48d3f0c579e957facb7630f765f58a6ae4656d20d F test/speedtest1.c a8b5afe72d78ff365012aba48d3f0c579e957facb7630f765f58a6ae4656d20d
@ -24,7 +25,7 @@ F tool/mksqlite3c.tcl f4ef476510eca4124c874a72029f1e01bc54a896b1724e8f9eef0d8bfa
F tool/mksqlite3h.tcl 1f5e4a1dbbbc43c83cc6e74fe32c6c620502240b66c7c0f33a51378e78fc4edf F tool/mksqlite3h.tcl 1f5e4a1dbbbc43c83cc6e74fe32c6c620502240b66c7c0f33a51378e78fc4edf
F tool/showlocks.c 9cc5e66d4ebbf2d194f39db2527ece92077e86ae627ddd233ee48e16e8142564 F tool/showlocks.c 9cc5e66d4ebbf2d194f39db2527ece92077e86ae627ddd233ee48e16e8142564
F tool/speed-check.sh 615cbdf50f1409ef3bbf9f682e396df80f49d97ed93ed3e61c8e91fae6afde58 F tool/speed-check.sh 615cbdf50f1409ef3bbf9f682e396df80f49d97ed93ed3e61c8e91fae6afde58
P be545f85a6ef09cc6c762f7d2ab7a0b3adf5590c3fbdc9903e6b5b5cec6e823f P 61400ef9f1337c77263b4d3e43a1983b0c4cf7137f066a2691768c98877035ef
R 9c35047475325526f2679b4ad3fed8bb R b6a82b4f5a5f516b98e31add0f21e1b3
U drh U dan
Z 841383906d65732bca5d23afa02166d8 Z 22a03abd679ba1af49f44240ae85a070

View File

@ -1 +1 @@
61400ef9f1337c77263b4d3e43a1983b0c4cf7137f066a2691768c98877035ef 6e0ffa205312416830340ea6e621dfb1a529e5603d569941ed6263930dc28c45

View File

@ -6135,4 +6135,19 @@ do_execsql_test 42.3 {
INSERT INTO f(f) VALUES ('merge=107,2'); INSERT INTO f(f) VALUES ('merge=107,2');
} }
#-------------------------------------------------------------------------
reset_db
set saved $sqlite_fts3_enable_parentheses
set sqlite_fts3_enable_parentheses 1
do_execsql_test 43.1 {
CREATE VIRTUAL TABLE def USING fts3(xyz);
INSERT INTO def_segdir VALUES(0,0,0,0,0, X'0001310301c9000103323334050d81');
} {}
do_execsql_test 43.2 {
SELECT rowid FROM def WHERE def MATCH '1 NEAR 1'
} {1}
set sqlite_fts3_enable_parentheses $saved
finish_test finish_test