module Bigqueryid::Criteria::Queryable
Defines behaviour for query operations.
Public Instance Methods
fetch(query)
click to toggle source
# File lib/bigqueryid/criteria/queryable.rb, line 32 def fetch(query) result = bigquery.query query if result.count > 0 result.map { |element| new(element) } else [] end end
run(query)
click to toggle source
# File lib/bigqueryid/criteria/queryable.rb, line 27 def run(query) result = bigquery.query query new(result.first) if result.count == 1 end
where(filter)
click to toggle source
# File lib/bigqueryid/criteria/queryable.rb, line 9 def where(filter) return [] if filter.empty? where = [] filter.each do |key, value| filter[key] = coercer.coerce(key, value) where << "#{key} = @#{key}" end query = "SELECT * FROM #{dataset_name}.#{table_name}" \ " WHERE #{where.join(' AND ')}" result = bigquery.query(query, params: filter) result.map do |row| new(row.select { |f| attributes.include?(f) }) end end