lib/google/cloud/bigquery/project.rb in google-cloud-bigquery-1.2.0 vs lib/google/cloud/bigquery/project.rb in google-cloud-bigquery-1.3.0
- old
+ new
@@ -83,10 +83,21 @@
service.project
end
alias project project_id
##
+ # The email address of the service account for the project used to
+ # connect to BigQuery. (See also {#project_id}.)
+ #
+ # @return [String] The service account email address.
+ #
+ def service_account_email
+ @service_account_email ||= \
+ service.project_service_account.email
+ end
+
+ ##
# Queries data by creating a [query
# job](https://cloud.google.com/bigquery/docs/query-overview#query_jobs).
#
# When using standard SQL and passing arguments using `params`, Ruby
# types are mapped to BigQuery types as follows:
@@ -512,21 +523,15 @@
# data.each do |row|
# puts row[:name]
# end
#
def query query, params: nil, external: nil, max: nil, cache: true,
- dataset: nil, project: nil, standard_sql: nil, legacy_sql: nil
- ensure_service!
- options = { priority: "INTERACTIVE", cache: cache, dataset: dataset,
- project: project || self.project,
- legacy_sql: legacy_sql, standard_sql: standard_sql,
- params: params, external: external }
- updater = QueryJob::Updater.from_options service, query, options
-
- yield updater if block_given?
-
- gapi = service.query_job updater.to_gapi
- job = Job.from_gapi gapi, service
+ dataset: nil, project: nil, standard_sql: nil,
+ legacy_sql: nil, &block
+ job = query_job query, params: params, external: external,
+ cache: cache, dataset: dataset,
+ project: project, standard_sql: standard_sql,
+ legacy_sql: legacy_sql, &block
job.wait_until_done!
if job.failed?
begin
# raise to activate ruby exception cause handling