protected function pushColumns()
    {
        if( !$this->columns || $this->columns == '*' ) {
            $this->parts[] = '*';
        } else if( is_array($this->columns) ) {
            $cols = array();
            foreach( $this->columns as $col ) {
                $cols[] = $this->quoteIdentifierIfNotExpression($col);
            }
            $this->parts[] = join(', ', $cols);
        } else if( is_string($this->columns) ) {
            $this->parts[] = $this->quoteIdentifierIfNotExpression($this->columns);
        } else if( $this->columns instanceof Expression ) {
            $this->parts[] = (string) $this->columns;
        }
    }