N°3660 - Fix JOIN without condition on child joined table is ignored

This commit is contained in:
Eric
2021-02-02 17:30:03 +01:00
parent 37a4a3eb47
commit bc024d9ed0
3 changed files with 75 additions and 0 deletions

View File

@@ -294,6 +294,15 @@ class OQLClassTreeBuilder
$oClassExpr = new FieldExpression($sClassAttCode, $this->sClassAlias);
$oClassRestriction = new BinaryExpression($oClassExpr, 'IN', $oClassListExpr);
$oQBContextExpressions->AddCondition($oClassRestriction);
} elseif (($oKeyAttDef instanceof AttributeExternalKey) && $sKeyClass != $oKeyAttDef->GetTargetClass()) {
$sClassAttCode = 'finalclass';
if (MetaModel::IsValidAttCode($sKeyClass, $sClassAttCode)) {
$oClassListExpr = ListExpression::FromScalars(MetaModel::EnumChildClasses($sKeyClass,
ENUM_CHILD_CLASSES_ALL));
$oClassExpr = new FieldExpression($sClassAttCode, $sKeyClassAlias);
$oClassRestriction = new BinaryExpression($oClassExpr, 'IN', $oClassListExpr);
$oQBContextExpressions->AddCondition($oClassRestriction);
}
}
// Translate prior to recursing