コード例 #1
0
 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);
 }
コード例 #2
0
ファイル: QueryEngine.php プロジェクト: Rikuforever/wiki
 /**
  * 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 />&#160;&#160;<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);
 }
コード例 #3
0
 /**
  * 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 />&#160;&#160;<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);
 }