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

In fts5, avoid starting a new merge of level L if there exists already an ongoing merge of a level less than L.

FossilOrigin-Name: 350c6e75ce3c1e81458d1baa73045df489284206e8b279ab3c2f5e3d011c262a
This commit is contained in:
dan
2024-09-30 17:28:45 +00:00
parent 54fd01c4ab
commit d5838eaa42
4 changed files with 69 additions and 12 deletions

View File

@ -4889,6 +4889,11 @@ static int fts5IndexFindDeleteMerge(Fts5Index *p, Fts5Structure *pStruct){
nBest = nPercent;
}
}
/* If pLvl is already the input level to an ongoing merge, look no
** further for a merge candidate. The caller should be allowed to
** continue merging from pLvl first. */
if( pLvl->nMerge ) break;
}
}
return iRet;
@ -8813,7 +8818,7 @@ static int fts5structConnectMethod(
/*
** We must have a single struct=? constraint that will be passed through
** into the xFilter method. If there is no valid stmt=? constraint,
** into the xFilter method. If there is no valid struct=? constraint,
** then return an SQLITE_CONSTRAINT error.
*/
static int fts5structBestIndexMethod(