protected function SelectQuery(QueryBuilder $QueryBuilder, Relational\Request $Request) { $QueryBuilder->Append('SELECT '); foreach ($QueryBuilder->Delimit($Request->GetColumns(), ',') as $Column) { $QueryBuilder->AppendExpression(Expression::ReviveColumn($Column)); $QueryBuilder->AppendIdentifier(' AS #', [$Column->GetIdentifier()]); } $QueryBuilder->AppendIdentifiers(' FROM # ', array_keys($Request->GetTables()), ', '); $this->AppendCriterion($QueryBuilder, $Request->GetCriterion()); }
/** * Load the rows specified by the request. * * @param Request $Request The request to load * @return ResultRow[] The loaded result rows */ public final function Load(Request $Request) { $Columns = []; foreach ($Request->GetTables() as $Table) { $this->VerifyTable(__METHOD__, $Table); $Columns += $Table->GetColumnsByIdentifier(); } $ResultRowData = $this->LoadResultRowData($Request); $ResultRow = new ResultRow($Columns, []); return array_map([$ResultRow, 'Another'], $ResultRowData); }