# File lib/big_record/connection_adapters/view.rb, line 76
      def columns
        if @column_names
          columns = []

          # First match against fully named columns, e.g. 'attribute:name'
          @column_names.each{|cn| columns << owner.columns_hash[cn] if owner.columns_hash.has_key?(cn)}

          # Now match against aliases if the number of columns found previously do not
          # match the expected @columns_names size, i.e. there's still some missing.
          if columns.size != @column_names.size
            columns_left = @column_names - columns.map{|column| column.name}
            owner.columns_hash.each { |name,column| columns << column if columns_left.include?(column.alias) }
          end

          columns
        else
          owner.columns
        end
      end