protected function processSelect(
        PlatformInterface $platform,
        DriverInterface $driver = null,
        ParameterContainer $parameterContainer = null
    ) {
        $expr = 1;

        // process table columns
        $columns = [];
        foreach ($this->columns as $columnIndexOrAs => $column) {

            $colName = '';
            if ($column === self::SQL_STAR) {
                $columns[] = [self::SQL_STAR]; // Sphinx doesn't not support prefix column with table, yet
                continue;
            }

            if ($column instanceof Expression) {
                $columnParts = $this->processExpression(
                    $column,
                    $platform,
                    $driver,
                    $parameterContainer,
                    $this->processInfo['paramPrefix'] . ((is_string($columnIndexOrAs)) ? $columnIndexOrAs : 'column')
                );
                $colName .= $columnParts;
            } else {
                // Sphinx doesn't not support prefix column with table, yet
                $colName .= $platform->quoteIdentifier($column);
            }

            // process As portion
            $columnAs = null;
            if (is_string($columnIndexOrAs)) {
                $columnAs = $columnIndexOrAs;
            } elseif (stripos($colName, ' as ') === false && !is_string($column)) {
                $columnAs = 'Expression' . $expr++;
            }

            $columns[] = isset($columnAs) ? [$colName, $platform->quoteIdentifier($columnAs)] : [$colName];
        }

        if ($this->table) {
            $tableList = $this->table;

            if (is_string($tableList) && strpos($tableList, ',') !== false) {
                $tableList = preg_split('#,\s+#', $tableList);
            } elseif (!is_array($tableList)) {
                $tableList = [$tableList];
            }

            foreach ($tableList as &$table) {

                // create quoted table name to use in FROM clause
                if ($table instanceof Select) {
                    $table = '(' . $this->processSubselect($table, $platform, $driver, $parameterContainer) . ')';
                } else {
                    $table = $platform->quoteIdentifier($table);
                }
            }

            $tableList = implode(', ', $tableList);

            return [$columns, $tableList];
        }

        return [$columns];
    }
protected function processSelect(
        PlatformInterface $platform,
        DriverInterface $driver = null,
        ParameterContainer $parameterContainer = null
    ) {
        $expr = 1;

        // process table columns
        $columns = [];
        foreach ($this->columns as $columnIndexOrAs => $column) {

            $colName = '';
            if ($column === self::SQL_STAR) {
                $columns[] = [self::SQL_STAR]; // Sphinx doesn't not support prefix column with table, yet
                continue;
            }

            if ($column instanceof Expression) {
                $columnParts = $this->processExpression(
                    $column,
                    $platform,
                    $driver,
                    $parameterContainer,
                    $this->processInfo['paramPrefix'] . ((is_string($columnIndexOrAs)) ? $columnIndexOrAs : 'column')
                );
                $colName .= $columnParts;
            } else {
                // Sphinx doesn't not support prefix column with table, yet
                $colName .= $platform->quoteIdentifier($column);
            }

            // process As portion
            $columnAs = null;
            if (is_string($columnIndexOrAs)) {
                $columnAs = $columnIndexOrAs;
            } elseif (stripos($colName, ' as ') === false && !is_string($column)) {
                $columnAs = 'Expression' . $expr++;
            }

            $columns[] = isset($columnAs) ? [$colName, $platform->quoteIdentifier($columnAs)] : [$colName];
        }

        if ($this->table) {
            $tableList = $this->table;

            if (is_string($tableList) && strpos($tableList, ',') !== false) {
                $tableList = preg_split('#,\s+#', $tableList);
            } elseif (!is_array($tableList)) {
                $tableList = [$tableList];
            }

            foreach ($tableList as &$table) {

                // create quoted table name to use in FROM clause
                if ($table instanceof Select) {
                    $table = '(' . $this->processSubselect($table, $platform, $driver, $parameterContainer) . ')';
                } else {
                    $table = $platform->quoteIdentifier($table);
                }
            }

            $tableList = implode(', ', $tableList);

            return [$columns, $tableList];
        }

        return [$columns];
    }
protected function processSelect ( PlatformInterface $ platform , DriverInterface $ driver = null , ParameterContainer $ parameterContainer = null ) { $ expr = 1 ; // process table columns $ columns = [ ] ; foreach ( $ this -> columns as $ columnIndexOrAs => $ column ) { $ colName = '' ; if ( $ column === self :: SQL_STAR ) { $ columns [ ] = [ self :: SQL_STAR ] ; // Sphinx doesn't not support prefix column with table, yet continue ; } if ( $ column instanceof Expression ) { $ columnParts = $ this -> processExpression ( $ column , $ platform , $ driver , $ parameterContainer , $ this -> processInfo [ 'paramPrefix' ] . ( ( is_string ( $ columnIndexOrAs ) ) ? $ columnIndexOrAs : 'column' ) ) ; $ colName .= $ columnParts ; } else { // Sphinx doesn't not support prefix column with table, yet $ colName .= $ platform -> quoteIdentifier ( $ column ) ; } // process As portion $ columnAs = null ; if ( is_string ( $ columnIndexOrAs ) ) { $ columnAs = $ columnIndexOrAs ; } elseif ( stripos ( $ colName , ' as ' ) === false && ! is_string ( $ column ) ) { $ columnAs = 'Expression' . $ expr ++ ; } $ columns [ ] = isset ( $ columnAs ) ? [ $ colName , $ platform -> quoteIdentifier ( $ columnAs ) ] : [ $ colName ] ; } if ( $ this -> table ) { $ tableList = $ this -> table ; if ( is_string ( $ tableList ) && strpos ( $ tableList , ',' ) !== false ) { $ tableList = preg_split ( '#,\s+#' , $ tableList ) ; } elseif ( ! is_array ( $ tableList ) ) { $ tableList = [ $ tableList ] ; } foreach ( $ tableList as & $ table ) { // create quoted table name to use in FROM clause if ( $ table instanceof Select ) { $ table = '(' . $ this -> processSubselect ( $ table , $ platform , $ driver , $ parameterContainer ) . ')' ; } else { $ table = $ platform -> quoteIdentifier ( $ table ) ; } } $ tableList = implode ( ', ' , $ tableList ) ; return [ $ columns , $ tableList ] ; } return [ $ columns ] ; }
Process the select part

@param  PlatformInterface $platform
@param  DriverInterface $driver
@param  ParameterContainer $parameterContainer
@return null|array
Process the select part