1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-29 08:01:23 +03:00

Fix bugs in fts3 function matchinfo() when used with deferred tokens.

FossilOrigin-Name: ddc2b7ec2618b010c981ecfa05b3e53a9fac686f
This commit is contained in:
dan
2010-11-25 10:33:54 +00:00
parent f9376540fa
commit cf56554f42
4 changed files with 49 additions and 35 deletions

View File

@ -1154,18 +1154,24 @@ static int fts3MatchinfoValues(
case FTS3_MATCHINFO_HITS: {
Fts3Expr *pExpr = pCsr->pExpr;
if( bGlobal ){
if( pCsr->pDeferred ){
rc = fts3MatchinfoSelectDoctotal(pTab, &pSelect, &pInfo->nDoc, 0);
rc = fts3ExprLoadDoclists(pCsr, 0, 0);
if( rc==SQLITE_OK ){
if( bGlobal ){
if( pCsr->pDeferred ){
rc = fts3MatchinfoSelectDoctotal(pTab, &pSelect, &pInfo->nDoc, 0);
}
(void)fts3ExprIterate(pExpr, fts3ExprGlobalHitsCb,(void*)pInfo);
}
(void)fts3ExprIterate(pExpr, fts3ExprGlobalHitsCb,(void*)pInfo);
(void)fts3ExprIterate(pExpr, fts3ExprLocalHitsCb,(void*)pInfo);
}
(void)fts3ExprIterate(pExpr, fts3ExprLocalHitsCb,(void*)pInfo);
break;
}
case FTS3_MATCHINFO_LCS:
fts3MatchinfoLcs(pCsr, pInfo);
rc = fts3ExprLoadDoclists(pCsr, 0, 0);
if( rc==SQLITE_OK ){
fts3MatchinfoLcs(pCsr, pInfo);
}
break;
default: