N°2272 - OQL performance (OQL class tree optimizer)

This commit is contained in:
Eric
2019-09-17 14:38:32 +02:00
parent 93a736e42a
commit 6073be25de
6 changed files with 132 additions and 20 deletions

View File

@@ -53,11 +53,6 @@ class SQLObjectQueryBuilder
}
}
$oBuild = new QueryBuilderContext($this->oDBObjetSearch, $aModifierProperties, $aGroupByExpr, $aSelectedClasses, $aSelectExpr, $aAttToLoad);
$oOQLClassTreeBuilder = new OQLClassTreeBuilder($this->oDBObjetSearch, $oBuild);
$oOQLQuery = $oOQLClassTreeBuilder->DevelopOQLClassNode();
$oBuild = new QueryBuilderContext($this->oDBObjetSearch, $aModifierProperties, $aGroupByExpr, $aSelectedClasses, $aSelectExpr, $aAttToLoad);
$oSQLQuery = $this->MakeSQLObjectQueryRoot($oBuild, $aAttToLoad, array(), $aGroupByExpr, $aSelectExpr);
@@ -109,6 +104,15 @@ class SQLObjectQueryBuilder
*/
private function MakeSQLObjectQueryRoot($oBuild, $aAttToLoad = null, $aValues = array(), $aGroupByExpr = null, $aSelectExpr = null)
{
// $oOQLClassTreeBuilder = new OQLClassTreeBuilder($this->oDBObjetSearch, $oBuild);
// $oOQLClassNode = $oOQLClassTreeBuilder->DevelopOQLClassNode();
//
// if ($this->bOptimizeQueries)
// {
// $oOQLClassTreeOptimizer = new OQLClassTreeOptimizer($oOQLClassNode, $oBuild);
// $oOQLClassTreeOptimizer->OptimizeClassTree();
// }
$oSQLQuery = $this->MakeSQLObjectQuery($oBuild, $aAttToLoad, $aValues);
/**
@@ -696,5 +700,18 @@ class SQLObjectQueryBuilder
return $oSelectBase;
}
/**
* @param \QueryBuilderContext $oBuild
* @param \OQLClassNode $oOQLClassNode
* @param array $aValues
* @return \SQLObjectQuery
*/
// private function MakeSQLObjectQueryNew($oBuild, $oOQLClassNode, $aValues)
// {
// $oSQLQuery = new SQLObjectQuery($sTable, $sTableAlias, array(), $bIsOnQueriedClass, $aUpdateValues, $oSelectedIdField);
//
// return $oSQLQuery;
// }
}