#288 Fixed OQL issues, related to multi-columns usages

SVN:trunk[895]
This commit is contained in:
Romain Quetiez
2010-10-14 16:56:42 +00:00
parent 629a87c99b
commit fb59939d57
2 changed files with 4 additions and 3 deletions

View File

@@ -870,6 +870,7 @@ class DBObjectSearch
}
$aSelected[$sClassToSelect] = $aAliases[$sClassToSelect];
}
$oResultFilter->m_aClasses = $aAliases;
$oResultFilter->SetSelectedClasses($aSelected);
$oConditionTree = $oOqlQuery->GetCondition();

View File

@@ -1619,7 +1619,7 @@ abstract class MetaModel
$oConditionTree = $oFilter->GetCriteria();
$oKPI = new ExecutionKPI();
$oSelect = self::MakeQuery($oFilter->GetSelectedClasses(), $oConditionTree, $aClassAliases, $aTableAliases, $aTranslation, $oFilter);
$oSelect = self::MakeQuery($oFilter->GetSelectedClasses(), $oConditionTree, $aClassAliases, $aTableAliases, $aTranslation, $oFilter, array(), array(), true /* main query */);
$oKPI->ComputeStats('MakeQuery (select)', $sOqlQuery);
self::$m_aQueryStructCache[$sOqlId] = clone $oSelect;
@@ -1751,7 +1751,7 @@ abstract class MetaModel
return $oSelect->RenderUpdate($aScalarArgs);
}
private static function MakeQuery($aSelectedClasses, &$oConditionTree, &$aClassAliases, &$aTableAliases, &$aTranslation, DBObjectSearch $oFilter, $aExpectedAtts = array(), $aValues = array())
private static function MakeQuery($aSelectedClasses, &$oConditionTree, &$aClassAliases, &$aTableAliases, &$aTranslation, DBObjectSearch $oFilter, $aExpectedAtts = array(), $aValues = array(), $bIsMainQuery = false)
{
// Note: query class might be different than the class of the filter
// -> this occurs when we are linking our class to an external class (referenced by, or pointing to)
@@ -1909,7 +1909,7 @@ abstract class MetaModel
// Translate the conditions... and go
//
if ($bIsOnQueriedClass)
if ($bIsMainQuery)
{
$oConditionTranslated = $oConditionTree->Translate($aTranslation);
$oSelectBase->SetCondition($oConditionTranslated);