Переглянути джерело

Optimize the queries for the export page

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@3066 a333f486-631f-4898-b8df-5754b55c2be0
romainq 11 роки тому
батько
коміт
41721dc89f
1 змінених файлів з 5 додано та 0 видалено
  1. 5 0
      webservices/export.php

+ 5 - 0
webservices/export.php

@@ -125,6 +125,7 @@ if (!empty($sExpression))
 
 		// Check and adjust column names
 		//
+		$aAliasToFields = array();
 		foreach($aFields as $index => $sField)
 		{
 			if (preg_match('/^(.*)\.(.*)$/', $sField, $aMatches))
@@ -136,8 +137,11 @@ if (!empty($sExpression))
 			{
 				$sClassAlias = $oFilter->GetClassAlias();
 				$sAttCode = $sField;
+				// Disambiguate the class alias
 				$aFields[$index] = $sClassAlias.'.'.$sAttCode;
 			}
+			$aAliasToFields[$sClassAlias][] = $sAttCode;
+
 			$sClass = $oFilter->GetClassName($sClassAlias);
 			if (!MetaModel::IsValidAttCode($sClass, $sAttCode))
 			{
@@ -161,6 +165,7 @@ if (!empty($sExpression))
 		if ($oFilter)
 		{
 			$oSet = new CMDBObjectSet($oFilter, array(), $aArgs);
+			$oSet->OptimizeColumnLoad($aAliasToFields);
 			switch($sFormat)
 			{
 				case 'html':