N°1418 Audits Perf optimization for AuditRule with valid_flag=true and lots of negative records

Use a new helper method that don't parse values anymore on SELECT IN / NOT IN queries

SVN:trunk[5724]
This commit is contained in:
Pierre Goiffon
2018-04-23 14:48:40 +00:00
parent eaf94bc10a
commit 7b54f51d75
2 changed files with 56 additions and 8 deletions

View File

@@ -123,6 +123,7 @@ function GetRuleResultFilter($iRuleId, $oDefinitionFilter, $oAppContext)
{
$aValidIds[] = $aRow['id'];
}
/** @var \DBObjectSearch $oFilter */
$oFilter = $oDefinitionFilter->DeepClone();
if (count($aValidIds) > 0)
{
@@ -134,7 +135,7 @@ function GetRuleResultFilter($iRuleId, $oDefinitionFilter, $oAppContext)
$aInvalids = array_diff($aInDefSet, $aValidIds);
if (count($aInvalids) > 0)
{
$oFilter->AddCondition('id', $aInvalids, 'IN');
$oFilter->AddConditionForInOperatorUsingParam('id', $aInvalids, true);
}
else
{