google-cloud-spanner 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/lib/google/cloud/spanner/batch_snapshot.rb +114 -15
- data/lib/google/cloud/spanner/client.rb +181 -22
- data/lib/google/cloud/spanner/results.rb +9 -6
- data/lib/google/cloud/spanner/service.rb +205 -104
- data/lib/google/cloud/spanner/session.rb +177 -22
- data/lib/google/cloud/spanner/snapshot.rb +58 -4
- data/lib/google/cloud/spanner/transaction.rb +114 -8
- data/lib/google/cloud/spanner/version.rb +1 -1
- metadata +2 -2
@@ -155,6 +155,19 @@ module Google
|
|
155
155
|
# * `:optimizer_version` (String) The version of optimizer to use.
|
156
156
|
# Empty to use database default. "latest" to use the latest
|
157
157
|
# available optimizer version.
|
158
|
+
# @param [Hash] call_options A hash of values to specify the custom
|
159
|
+
# call options, e.g., timeout, retries, etc. Call options are
|
160
|
+
# optional. The following settings can be provided:
|
161
|
+
#
|
162
|
+
# * `:timeout` (Numeric) A numeric value of custom timeout in seconds
|
163
|
+
# that overrides the default setting.
|
164
|
+
# * `:retry_policy` (Hash) A hash of values that overrides the default
|
165
|
+
# setting of retry policy with the following keys:
|
166
|
+
# * `:initial_delay` (`Numeric`) - The initial delay in seconds.
|
167
|
+
# * `:max_delay` (`Numeric`) - The max delay in seconds.
|
168
|
+
# * `:multiplier` (`Numeric`) - The incremental backoff multiplier.
|
169
|
+
# * `:retry_codes` (`Array<String>`) - The error codes that should
|
170
|
+
# trigger a retry.
|
158
171
|
#
|
159
172
|
# @return [Google::Cloud::Spanner::Results] The results of the query
|
160
173
|
# execution.
|
@@ -274,7 +287,32 @@ module Google
|
|
274
287
|
# end
|
275
288
|
# end
|
276
289
|
#
|
277
|
-
|
290
|
+
# @example Query using custom timeout and retry policy:
|
291
|
+
# require "google/cloud/spanner"
|
292
|
+
#
|
293
|
+
# spanner = Google::Cloud::Spanner.new
|
294
|
+
# db = spanner.client "my-instance", "my-database"
|
295
|
+
#
|
296
|
+
# timeout = 30.0
|
297
|
+
# retry_policy = {
|
298
|
+
# initial_delay: 0.25,
|
299
|
+
# max_delay: 32.0,
|
300
|
+
# multiplier: 1.3,
|
301
|
+
# retry_codes: ["UNAVAILABLE"]
|
302
|
+
# }
|
303
|
+
# call_options = { timeout: timeout, retry_policy: retry_policy }
|
304
|
+
#
|
305
|
+
# db.transaction do |tx|
|
306
|
+
# results = tx.execute_query \
|
307
|
+
# "SELECT * FROM users", call_options: call_options
|
308
|
+
#
|
309
|
+
# results.rows.each do |row|
|
310
|
+
# puts "User #{row[:id]} is #{row[:name]}"
|
311
|
+
# end
|
312
|
+
# end
|
313
|
+
#
|
314
|
+
def execute_query sql, params: nil, types: nil, query_options: nil,
|
315
|
+
call_options: nil
|
278
316
|
ensure_session!
|
279
317
|
|
280
318
|
@seqno += 1
|
@@ -282,7 +320,8 @@ module Google
|
|
282
320
|
params, types = Convert.to_input_params_and_types params, types
|
283
321
|
session.execute_query sql, params: params, types: types,
|
284
322
|
transaction: tx_selector, seqno: @seqno,
|
285
|
-
query_options: query_options
|
323
|
+
query_options: query_options,
|
324
|
+
call_options: call_options
|
286
325
|
end
|
287
326
|
alias execute execute_query
|
288
327
|
alias query execute_query
|
@@ -352,6 +391,19 @@ module Google
|
|
352
391
|
# * `:optimizer_version` (String) The version of optimizer to use.
|
353
392
|
# Empty to use database default. "latest" to use the latest
|
354
393
|
# available optimizer version.
|
394
|
+
# @param [Hash] call_options A hash of values to specify the custom
|
395
|
+
# call options, e.g., timeout, retries, etc. Call options are
|
396
|
+
# optional. The following settings can be provided:
|
397
|
+
#
|
398
|
+
# * `:timeout` (Numeric) A numeric value of custom timeout in seconds
|
399
|
+
# that overrides the default setting.
|
400
|
+
# * `:retry_policy` (Hash) A hash of values that overrides the default
|
401
|
+
# setting of retry policy with the following keys:
|
402
|
+
# * `:initial_delay` (`Numeric`) - The initial delay in seconds.
|
403
|
+
# * `:max_delay` (`Numeric`) - The max delay in seconds.
|
404
|
+
# * `:multiplier` (`Numeric`) - The incremental backoff multiplier.
|
405
|
+
# * `:retry_codes` (`Array<String>`) - The error codes that should
|
406
|
+
# trigger a retry.
|
355
407
|
#
|
356
408
|
# @return [Integer] The exact number of rows that were modified.
|
357
409
|
#
|
@@ -393,9 +445,33 @@ module Google
|
|
393
445
|
# )
|
394
446
|
# end
|
395
447
|
#
|
396
|
-
|
448
|
+
# @example Update using custom timeout and retry policy:
|
449
|
+
# require "google/cloud/spanner"
|
450
|
+
#
|
451
|
+
# spanner = Google::Cloud::Spanner.new
|
452
|
+
# db = spanner.client "my-instance", "my-database"
|
453
|
+
#
|
454
|
+
# timeout = 30.0
|
455
|
+
# retry_policy = {
|
456
|
+
# initial_delay: 0.25,
|
457
|
+
# max_delay: 32.0,
|
458
|
+
# multiplier: 1.3,
|
459
|
+
# retry_codes: ["UNAVAILABLE"]
|
460
|
+
# }
|
461
|
+
# call_options = { timeout: timeout, retry_policy: retry_policy }
|
462
|
+
#
|
463
|
+
# db.transaction do |tx|
|
464
|
+
# row_count = tx.execute_update(
|
465
|
+
# "UPDATE users SET name = 'Charlie' WHERE id = 1",
|
466
|
+
# call_options: call_options
|
467
|
+
# )
|
468
|
+
# end
|
469
|
+
#
|
470
|
+
def execute_update sql, params: nil, types: nil, query_options: nil,
|
471
|
+
call_options: nil
|
397
472
|
results = execute_query sql, params: params, types: types,
|
398
|
-
query_options: query_options
|
473
|
+
query_options: query_options,
|
474
|
+
call_options: call_options
|
399
475
|
# Stream all PartialResultSet to get ResultSetStats
|
400
476
|
results.rows.to_a
|
401
477
|
# Raise an error if there is not a row count returned
|
@@ -409,6 +485,20 @@ module Google
|
|
409
485
|
##
|
410
486
|
# Executes DML statements in a batch.
|
411
487
|
#
|
488
|
+
# @param [Hash] call_options A hash of values to specify the custom
|
489
|
+
# call options, e.g., timeout, retries, etc. Call options are
|
490
|
+
# optional. The following settings can be provided:
|
491
|
+
#
|
492
|
+
# * `:timeout` (Numeric) A numeric value of custom timeout in seconds
|
493
|
+
# that overrides the default setting.
|
494
|
+
# * `:retry_policy` (Hash) A hash of values that overrides the default
|
495
|
+
# setting of retry policy with the following keys:
|
496
|
+
# * `:initial_delay` (`Numeric`) - The initial delay in seconds.
|
497
|
+
# * `:max_delay` (`Numeric`) - The max delay in seconds.
|
498
|
+
# * `:multiplier` (`Numeric`) - The incremental backoff multiplier.
|
499
|
+
# * `:retry_codes` (`Array<String>`) - The error codes that should
|
500
|
+
# trigger a retry.
|
501
|
+
#
|
412
502
|
# @yield [batch_update] a batch update object
|
413
503
|
# @yieldparam [Google::Cloud::Spanner::BatchUpdate] batch_update a batch
|
414
504
|
# update object accepting DML statements and optional parameters and
|
@@ -464,10 +554,11 @@ module Google
|
|
464
554
|
# end
|
465
555
|
# end
|
466
556
|
#
|
467
|
-
def batch_update &block
|
557
|
+
def batch_update call_options: nil, &block
|
468
558
|
ensure_session!
|
469
559
|
@seqno += 1
|
470
|
-
session.batch_update tx_selector, @seqno,
|
560
|
+
session.batch_update tx_selector, @seqno,
|
561
|
+
call_options: call_options, &block
|
471
562
|
end
|
472
563
|
|
473
564
|
##
|
@@ -486,6 +577,19 @@ module Google
|
|
486
577
|
# Optional.
|
487
578
|
# @param [Integer] limit If greater than zero, no more than this number
|
488
579
|
# of rows will be returned. The default is no limit.
|
580
|
+
# @param [Hash] call_options A hash of values to specify the custom
|
581
|
+
# call options, e.g., timeout, retries, etc. Call options are
|
582
|
+
# optional. The following settings can be provided:
|
583
|
+
#
|
584
|
+
# * `:timeout` (Numeric) A numeric value of custom timeout in seconds
|
585
|
+
# that overrides the default setting.
|
586
|
+
# * `:retry_policy` (Hash) A hash of values that overrides the default
|
587
|
+
# setting of retry policy with the following keys:
|
588
|
+
# * `:initial_delay` (`Numeric`) - The initial delay in seconds.
|
589
|
+
# * `:max_delay` (`Numeric`) - The max delay in seconds.
|
590
|
+
# * `:multiplier` (`Numeric`) - The incremental backoff multiplier.
|
591
|
+
# * `:retry_codes` (`Array<String>`) - The error codes that should
|
592
|
+
# trigger a retry.
|
489
593
|
#
|
490
594
|
# @return [Google::Cloud::Spanner::Results] The results of the read
|
491
595
|
# operation.
|
@@ -504,14 +608,16 @@ module Google
|
|
504
608
|
# end
|
505
609
|
# end
|
506
610
|
#
|
507
|
-
def read table, columns, keys: nil, index: nil, limit: nil
|
611
|
+
def read table, columns, keys: nil, index: nil, limit: nil,
|
612
|
+
call_options: nil
|
508
613
|
ensure_session!
|
509
614
|
|
510
615
|
columns = Array(columns).map(&:to_s)
|
511
616
|
keys = Convert.to_key_set keys
|
512
617
|
|
513
618
|
session.read table, columns, keys: keys, index: index, limit: limit,
|
514
|
-
transaction: tx_selector
|
619
|
+
transaction: tx_selector,
|
620
|
+
call_options: call_options
|
515
621
|
end
|
516
622
|
|
517
623
|
##
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-cloud-spanner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Moore
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-
|
12
|
+
date: 2020-08-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: google-cloud-core
|