lib/clickhouse/connection/query/result_row.rb
module Clickhouse
class Connection
module Query
class ResultRow < Array
def initialize(values = [], keys = nil)
super values
@keys = normalize_keys(keys)
end
def to_hash(symbolize = false)
@hash ||= begin
keys = symbolize ? @keys.collect(&:to_sym) : @keys
Hash[keys.zip(self)]
end
end
private
def normalize_keys(keys)
if keys
keys.collect do |key|
key.match(/^any\(([^\)]+)\)$/)
$1 || key
end
else
(0..(size - 1)).collect do |index|
"column#{index}"
end
end
end
end
end
end
end