private function createSelectData($type)
    {
        // * is a special keyword, which doesn't need to be wrapped
        if ($type !== '*' && $type !== null && !is_array($type)) {
            $type = $this->quote($type);
        }

        // Special case when $type is array
        if (is_array($type)) {
            $collection = array();

            foreach ($type as $column => $alias) {
                // Did we receive an alias?
                if (!is_numeric($column)) {
                    $push = sprintf('%s AS %s', $this->quote($column), $this->quote($alias));
                } else if ($alias instanceof RawSqlFragmentInterface) {
                    // Is raw SQL fragment needs to selected?
                    $push = $alias->getFragment();
                } else {
                    // In case received a regular column name
                    $push = $this->quote($alias);
                }

                array_push($collection, $push);
            }

            // And finally, separate via commas
            $type = implode(', ', $collection);
        }

        return $type;
    }