Class: Presto::Client::Query

Inherits:
Object
  • Object
show all
Defined in:
lib/presto/client/query.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Query

Returns a new instance of Query.



33
34
35
# File 'lib/presto/client/query.rb', line 33

def initialize(client)
  @client = client
end

Class Method Details

.start(session, query) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'lib/presto/client/query.rb', line 23

def self.start(session, query)
  faraday = Faraday.new(url: "http://#{session.server}") do |faraday|
    #faraday.request :url_encoded
    faraday.response :logger
    faraday.adapter Faraday.default_adapter
  end

  new StatementClient.new(faraday, session, query)
end

Instance Method Details

#columnsObject



45
46
47
48
49
50
51
# File 'lib/presto/client/query.rb', line 45

def columns
  wait_for_data

  raise_error unless @client.query_succeeded?

  return @client.current_results.columns
end

#each_row(&block) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/presto/client/query.rb', line 53

def each_row(&block)
  wait_for_data

  raise_error unless @client.query_succeeded?

  if self.columns == nil
    raise "Query #{@client.current_results.id} has no columns"
  end

  begin
    if data = @client.current_results.data
      data.each(&block)
    end
    @client.advance
  end while @client.has_next?
end