public function testTryResolveSegmentForInvalidIdThrowsException() { $connection = $this->getMockBuilder('\\SMW\\MediaWiki\\Database')->disableOriginalConstructor()->getMock(); $temporaryTableBuilder = $this->getMockBuilder('\\SMW\\SQLStore\\TableBuilder\\TemporaryTableBuilder')->disableOriginalConstructor()->getMock(); $hierarchyTempTableBuilder = $this->getMockBuilder('\\SMW\\SQLStore\\QueryEngine\\HierarchyTempTableBuilder')->disableOriginalConstructor()->getMock(); $instance = new QuerySegmentListProcessor($connection, $temporaryTableBuilder, $hierarchyTempTableBuilder); $this->setExpectedException('RuntimeException'); $instance->doResolveQueryDependenciesById(42); }
/** * Using a preprocessed internal query description referenced by $rootid, compute * the proper debug output for the given query. * * @param Query $query * @param integer $rootid * * @return string */ private function getDebugQueryResult(Query $query, $rootid) { $qobj = $this->querySegmentList[$rootid]; $entries = array(); $sqlOptions = $this->getSQLOptions($query, $rootid); $entries['SQL Query'] = ''; $entries['SQL Explain'] = ''; if (isset($qobj->joinfield) && $qobj->joinfield !== '') { $this->doPrepareDebugQueryResult($qobj, $sqlOptions, $entries); } else { $entries['SQL Query'] = 'Empty result, no SQL query created.'; } $auxtables = ''; foreach ($this->querySegmentListProcessor->getListOfResolvedQueries() as $table => $log) { $auxtables .= "<li>Temporary table {$table}"; foreach ($log as $q) { $auxtables .= "<br />  <tt>{$q}</tt>"; } $auxtables .= '</li>'; } if ($auxtables) { $entries['Auxilliary Tables Used'] = "<ul>{$auxtables}</ul>"; } else { $entries['Auxilliary Tables Used'] = 'No auxilliary tables used.'; } return DebugOutputFormatter::formatOutputFor('SQLStore', $entries, $query); }
/** * Using a preprocessed internal query description referenced by $rootid, compute * the proper debug output for the given query. * * @param Query $query * @param integer $rootid * * @return string */ private function getDebugQueryResult(Query $query, $rootid) { $qobj = $this->querySegmentList[$rootid]; $entries = array(); $sqlOptions = $this->getSQLOptions($query, $rootid); $entries['SQL Query'] = ''; $entries['SQL Explain'] = ''; $this->doExecuteDebugQueryResult($qobj, $sqlOptions, $entries); $auxtables = ''; foreach ($this->querySegmentListProcessor->getListOfResolvedQueries() as $table => $log) { $auxtables .= "<li>Temporary table {$table}"; foreach ($log as $q) { $auxtables .= "<br />  <tt>{$q}</tt>"; } $auxtables .= '</li>'; } if ($auxtables) { $entries['Auxilliary Tables'] = "<ul>{$auxtables}</ul>"; } else { $entries['Auxilliary Tables'] = 'No auxilliary tables used.'; } return QueryDebugOutputFormatter::getStringFrom('SQLStore', $entries, $query); }