def pluck(*cols)
      options = cols.last.is_a?(Hash) ? cols.pop : {}
      @options.merge!(options)
      @options[:symbolize_keys] = true
      iterate_type(options[:class]) if options[:class]
      cols = cols.map { |c| c.to_sym }
      result = []

      each do |row|
        row = row.symbolize_keys if row.is_a?(Hash)
        result << cols.map { |c| row[c] }
      end

      result.flatten! if cols.size == 1
      result
    end
Returns an array of columns plucked from the result rows.
Experimental function, as this could still use too much memory
and negate the purpose of this libarary.
Should this return a lazy enumerator instead?