Class: Google::Cloud::Bigquery::QueryData
- Defined in:
- lib/google/cloud/bigquery/query_data.rb
Overview
QueryData
Represents Data returned from a query a a list of name/value pairs.
Instance Method Summary collapse
- #all(request_limit: nil) {|row| ... } ⇒ Enumerator
-
#cache_hit? ⇒ Boolean
Whether the query result was fetched from the query cache.
-
#complete? ⇒ Boolean
Whether the query has completed or not.
-
#fields ⇒ Object
The fields of the data.
-
#headers ⇒ Object
The name of the columns in the data.
-
#job ⇒ Object
The BigQuery Job that was created to run the query.
-
#next ⇒ QueryData
Retrieve the next page of query data.
-
#next? ⇒ Boolean
Whether there is a next page of query data.
-
#schema ⇒ Object
The schema of the data.
-
#total_bytes ⇒ Object
The total number of bytes processed for this query.
Methods inherited from Data
Instance Method Details
#all(request_limit: nil) {|row| ... } ⇒ Enumerator
Retrieves all rows by repeatedly loading #next until #next?
returns false
. Calls the given block once for each row, which is
passed as the parameter.
An Enumerator is returned if no block is given.
This method may make several API calls until all rows are retrieved. Be sure to use as narrow a search criteria as possible. Please use with caution.
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 |
# File 'lib/google/cloud/bigquery/query_data.rb', line 172 def all request_limit: nil request_limit = request_limit.to_i if request_limit unless block_given? return enum_for(:all, request_limit: request_limit) end results = self loop do results.each { |r| yield r } if request_limit request_limit -= 1 break if request_limit < 0 end break unless results.next? results = results.next end end |
#cache_hit? ⇒ Boolean
Whether the query result was fetched from the query cache.
51 52 53 |
# File 'lib/google/cloud/bigquery/query_data.rb', line 51 def cache_hit? @gapi.cache_hit end |
#complete? ⇒ Boolean
Whether the query has completed or not. When data is present this will
always be true
. When false
, total
will not be available.
46 47 48 |
# File 'lib/google/cloud/bigquery/query_data.rb', line 46 def complete? @gapi.job_complete end |
#fields ⇒ Object
The fields of the data.
68 69 70 |
# File 'lib/google/cloud/bigquery/query_data.rb', line 68 def fields schema.fields end |
#headers ⇒ Object
The name of the columns in the data.
74 75 76 |
# File 'lib/google/cloud/bigquery/query_data.rb', line 74 def headers schema.headers end |
#job ⇒ Object
The BigQuery Job that was created to run the query.
191 192 193 194 195 196 197 198 199 |
# File 'lib/google/cloud/bigquery/query_data.rb', line 191 def job return @job if @job return nil unless job? ensure_service! gapi = service.get_job job_id @job = Job.from_gapi gapi, service rescue Google::Cloud::NotFoundError nil end |
#next ⇒ QueryData
Retrieve the next page of query data.
114 115 116 117 118 119 |
# File 'lib/google/cloud/bigquery/query_data.rb', line 114 def next return nil unless next? ensure_service! gapi = service.job_query_results job_id, token: token QueryData.from_gapi gapi, service end |
#next? ⇒ Boolean
Whether there is a next page of query data.
94 95 96 |
# File 'lib/google/cloud/bigquery/query_data.rb', line 94 def next? !token.nil? end |
#schema ⇒ Object
The schema of the data.
57 58 59 60 61 62 63 64 |
# File 'lib/google/cloud/bigquery/query_data.rb', line 57 def schema @schema ||= begin s = Schema.from_gapi(@gapi.schema) # call fields so they will be available s.fields s.freeze end end |
#total_bytes ⇒ Object
The total number of bytes processed for this query.
38 39 40 41 42 |
# File 'lib/google/cloud/bigquery/query_data.rb', line 38 def total_bytes Integer @gapi.total_bytes_processed rescue nil end |