/** * Returns the SELECT clauses ready for inserting into a query. * * @param SQLSelect $query The expression object to build from * @param array $parameters Out parameter for the resulting query parameters * @return string Completed select part of statement */ protected function buildSelectFragment(SQLSelect $query, array &$parameters) { $distinct = $query->getDistinct(); $select = $query->getSelect(); $clauses = array(); foreach ($select as $alias => $field) { // Don't include redundant aliases. $fieldAlias = "\"{$alias}\""; if ($alias === $field || substr($field, -strlen($fieldAlias)) === $fieldAlias) { $clauses[] = $field; } else { $clauses[] = "{$field} AS {$fieldAlias}"; } } $text = 'SELECT '; if ($distinct) { $text .= 'DISTINCT '; } return $text .= implode(', ', $clauses); }