Class: Gcloud::Bigquery::QueryData

Inherits:
Data
  • Object
show all
Defined in:
lib/gcloud/bigquery/query_data.rb

Overview

QueryData

Represents Data returned from a query a a list of name/value pairs.

Instance Method Summary collapse

Methods inherited from Data

#etag, format_rows, format_values, #kind, #raw, #token, #total

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

#fieldsObject

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

#headersObject

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

#jobObject

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

#nextObject


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

#schemaObject

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_bytesObject

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