Class: PrestoLegacy::Client::Query
- Inherits:
-
Object
- Object
- PrestoLegacy::Client::Query
- Defined in:
- lib/presto_legacy/client/query.rb
Class Method Summary collapse
Instance Method Summary collapse
- #advance ⇒ Object
- #cancel ⇒ Object
- #close ⇒ Object
- #columns ⇒ Object
- #current_results ⇒ Object
- #each_row(&block) ⇒ Object
- #each_row_chunk(&block) ⇒ Object
-
#initialize(api) ⇒ Query
constructor
A new instance of Query.
- #next_uri ⇒ Object
- #query_info ⇒ Object
- #raise_if_failed ⇒ Object
- #rows ⇒ Object
Constructor Details
#initialize(api) ⇒ Query
Returns a new instance of Query.
82 83 84 |
# File 'lib/presto_legacy/client/query.rb', line 82 def initialize(api) @api = api end |
Class Method Details
.resume(next_uri, options) ⇒ Object
28 29 30 |
# File 'lib/presto_legacy/client/query.rb', line 28 def self.resume(next_uri, ) new StatementClient.new(faraday_client(), nil, , next_uri) end |
.start(query, options) ⇒ Object
24 25 26 |
# File 'lib/presto_legacy/client/query.rb', line 24 def self.start(query, ) new StatementClient.new(faraday_client(), query, ) end |
Instance Method Details
#advance ⇒ Object
90 91 92 |
# File 'lib/presto_legacy/client/query.rb', line 90 def advance @api.advance end |
#cancel ⇒ Object
153 154 155 |
# File 'lib/presto_legacy/client/query.rb', line 153 def cancel @api.cancel_leaf_stage end |
#close ⇒ Object
157 158 159 160 |
# File 'lib/presto_legacy/client/query.rb', line 157 def close @api.cancel_leaf_stage nil end |
#columns ⇒ Object
107 108 109 110 111 112 113 |
# File 'lib/presto_legacy/client/query.rb', line 107 def columns wait_for_columns raise_if_failed return @api.current_results.columns end |
#current_results ⇒ Object
86 87 88 |
# File 'lib/presto_legacy/client/query.rb', line 86 def current_results @api.current_results end |
#each_row(&block) ⇒ Object
123 124 125 126 127 |
# File 'lib/presto_legacy/client/query.rb', line 123 def each_row(&block) each_row_chunk {|chunk| chunk.each(&block) } end |
#each_row_chunk(&block) ⇒ Object
129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/presto_legacy/client/query.rb', line 129 def each_row_chunk(&block) wait_for_data raise_if_failed if self.columns == nil raise PrestoError, "Query #{@api.current_results.id} has no columns" end begin if data = @api.current_results.data block.call(data) end end while @api.advance end |
#next_uri ⇒ Object
149 150 151 |
# File 'lib/presto_legacy/client/query.rb', line 149 def next_uri @api.current_results.next_uri end |
#query_info ⇒ Object
145 146 147 |
# File 'lib/presto_legacy/client/query.rb', line 145 def query_info @api.query_info end |
#raise_if_failed ⇒ Object
162 163 164 165 166 167 168 169 170 171 172 173 |
# File 'lib/presto_legacy/client/query.rb', line 162 def raise_if_failed if @api.closed? raise PrestoClientError, "Query aborted by user" elsif @api.exception? # query is gone raise @api.exception elsif @api.query_failed? results = @api.current_results error = results.error raise PrestoQueryError.new("Query #{results.id} failed: #{error.}", results.id, error.error_code, error.failure_info) end end |
#rows ⇒ Object
115 116 117 118 119 120 121 |
# File 'lib/presto_legacy/client/query.rb', line 115 def rows rows = [] each_row_chunk {|chunk| rows.concat(chunk) } return rows end |