Class: Gcloud::Bigquery::QueryData
- Defined in:
- lib/gcloud/bigquery/query_data.rb
Overview
# QueryData
Represents Data returned from a query a a list of name/value pairs.
Instance Attribute Summary collapse
Attributes inherited from Data
Class Method Summary collapse
Instance Method Summary collapse
-
#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.
-
#initialize(arr = []) ⇒ QueryData
constructor
A new instance of QueryData.
-
#job ⇒ Object
The BigQuery Job that was created to run the query.
- #next ⇒ Object
-
#next? ⇒ Boolean
Is there a next page of data?.
-
#schema ⇒ Object
The schema of the data.
-
#total_bytes ⇒ Object
The total number of bytes processed for this query.
Methods inherited from Data
#etag, format_rows, format_values, from_response, #kind, #raw, #token, #total
Constructor Details
#initialize(arr = []) ⇒ QueryData
Returns a new instance of QueryData.
30 31 32 33 |
# File 'lib/gcloud/bigquery/query_data.rb', line 30 def initialize arr = [] @job = nil super end |
Instance Attribute Details
#connection ⇒ Object
27 28 29 |
# File 'lib/gcloud/bigquery/query_data.rb', line 27 def connection @connection end |
Class Method Details
.from_gapi(gapi, connection) ⇒ Object
109 110 111 112 113 114 115 116 117 118 119 120 121 |
# File 'lib/gcloud/bigquery/query_data.rb', line 109 def self.from_gapi gapi, connection if gapi["schema"].nil? formatted_rows = [] else formatted_rows = format_rows gapi["rows"], gapi["schema"]["fields"] end data = new formatted_rows data.gapi = gapi data.connection = connection data end |
Instance Method Details
#cache_hit? ⇒ Boolean
Whether the query result was fetched from the query cache.
47 48 49 |
# File 'lib/gcloud/bigquery/query_data.rb', line 47 def cache_hit? @gapi["cacheHit"] 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.
42 43 44 |
# File 'lib/gcloud/bigquery/query_data.rb', line 42 def complete? @gapi["jobComplete"] end |
#fields ⇒ Object
The fields of the data.
62 63 64 65 66 67 |
# File 'lib/gcloud/bigquery/query_data.rb', line 62 def fields f = schema["fields"] f = f.to_hash if f.respond_to? :to_hash f = [] if f.nil? f end |
#headers ⇒ Object
The name of the columns in the data.
71 72 73 |
# File 'lib/gcloud/bigquery/query_data.rb', line 71 def headers fields.map { |f| f["name"] } end |
#job ⇒ Object
The BigQuery Job that was created to run the query.
94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/gcloud/bigquery/query_data.rb', line 94 def job return @job if @job return nil unless job? ensure_connection! resp = connection.get_job job_id if resp.success? @job = Job.from_gapi resp.data, connection else return nil if resp.status == 404 fail ApiError.from_response(resp) end end |
#next ⇒ Object
81 82 83 84 85 86 87 88 89 90 |
# File 'lib/gcloud/bigquery/query_data.rb', line 81 def next return nil unless next? ensure_connection! resp = connection.job_query_results job_id, token: token if resp.success? QueryData.from_gapi resp.data, connection else fail ApiError.from_response(resp) end end |
#next? ⇒ Boolean
Is there a next page of data?
77 78 79 |
# File 'lib/gcloud/bigquery/query_data.rb', line 77 def next? !token.nil? end |
#schema ⇒ Object
The schema of the data.
53 54 55 56 57 58 |
# File 'lib/gcloud/bigquery/query_data.rb', line 53 def schema s = @gapi["schema"] s = s.to_hash if s.respond_to? :to_hash s = {} if s.nil? s end |
#total_bytes ⇒ Object
The total number of bytes processed for this query.
36 37 38 |
# File 'lib/gcloud/bigquery/query_data.rb', line 36 def total_bytes @gapi["totalBytesProcessed"] end |