google-cloud-spanner 2.4.0 → 2.8.1

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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/AUTHENTICATION.md +2 -1
  3. data/CHANGELOG.md +56 -0
  4. data/CONTRIBUTING.md +1 -1
  5. data/LOGGING.md +1 -1
  6. data/OVERVIEW.md +1 -1
  7. data/lib/google-cloud-spanner.rb +2 -0
  8. data/lib/google/cloud/spanner/backup.rb +67 -4
  9. data/lib/google/cloud/spanner/backup/job.rb +8 -8
  10. data/lib/google/cloud/spanner/backup/job/list.rb +2 -2
  11. data/lib/google/cloud/spanner/backup/list.rb +2 -2
  12. data/lib/google/cloud/spanner/batch_snapshot.rb +11 -4
  13. data/lib/google/cloud/spanner/batch_update.rb +3 -1
  14. data/lib/google/cloud/spanner/client.rb +315 -83
  15. data/lib/google/cloud/spanner/commit.rb +4 -0
  16. data/lib/google/cloud/spanner/data.rb +4 -5
  17. data/lib/google/cloud/spanner/database.rb +88 -2
  18. data/lib/google/cloud/spanner/database/job/list.rb +2 -2
  19. data/lib/google/cloud/spanner/database/list.rb +4 -4
  20. data/lib/google/cloud/spanner/fields.rb +5 -3
  21. data/lib/google/cloud/spanner/instance.rb +91 -3
  22. data/lib/google/cloud/spanner/instance/config/list.rb +4 -4
  23. data/lib/google/cloud/spanner/instance/list.rb +4 -4
  24. data/lib/google/cloud/spanner/partition.rb +4 -2
  25. data/lib/google/cloud/spanner/policy.rb +3 -2
  26. data/lib/google/cloud/spanner/pool.rb +10 -10
  27. data/lib/google/cloud/spanner/project.rb +65 -5
  28. data/lib/google/cloud/spanner/results.rb +13 -9
  29. data/lib/google/cloud/spanner/service.rb +42 -23
  30. data/lib/google/cloud/spanner/session.rb +38 -15
  31. data/lib/google/cloud/spanner/snapshot.rb +10 -2
  32. data/lib/google/cloud/spanner/status.rb +4 -1
  33. data/lib/google/cloud/spanner/transaction.rb +61 -6
  34. data/lib/google/cloud/spanner/version.rb +1 -1
  35. metadata +10 -10
@@ -83,6 +83,7 @@ module Google
83
83
  # | `BOOL` | `true`/`false` | |
84
84
  # | `INT64` | `Integer` | |
85
85
  # | `FLOAT64` | `Float` | |
86
+ # | `NUMERIC` | `BigDecimal` | |
86
87
  # | `STRING` | `String` | |
87
88
  # | `DATE` | `Date` | |
88
89
  # | `TIMESTAMP` | `Time`, `DateTime` | |
@@ -108,6 +109,7 @@ module Google
108
109
  # * `:BYTES`
109
110
  # * `:DATE`
110
111
  # * `:FLOAT64`
112
+ # * `:NUMERIC`
111
113
  # * `:INT64`
112
114
  # * `:STRING`
113
115
  # * `:TIMESTAMP`
@@ -125,6 +127,8 @@ module Google
125
127
  # * `:optimizer_version` (String) The version of optimizer to use.
126
128
  # Empty to use database default. "latest" to use the latest
127
129
  # available optimizer version.
130
+ # * `:optimizer_statistics_package` (String) Statistics package to
131
+ # use. Empty to use the database default.
128
132
  # @param [Hash] call_options A hash of values to specify the custom
129
133
  # call options, e.g., timeout, retries, etc. Call options are
130
134
  # optional. The following settings can be provided:
@@ -249,7 +253,10 @@ module Google
249
253
  #
250
254
  # db.snapshot do |snp|
251
255
  # results = snp.execute_query \
252
- # "SELECT * FROM users", query_options: { optimizer_version: "1" }
256
+ # "SELECT * FROM users", query_options: {
257
+ # optimizer_version: "1",
258
+ # optimizer_statistics_package: "auto_20191128_14_47_22UTC"
259
+ # }
253
260
  #
254
261
  # results.rows.each do |row|
255
262
  # puts "User #{row[:id]} is #{row[:name]}"
@@ -373,12 +380,13 @@ module Google
373
380
  # Hash values must contain the type value. If a Hash is used the
374
381
  # fields will be created using the same order as the Hash keys.
375
382
  #
376
- # Supported type values incude:
383
+ # Supported type values include:
377
384
  #
378
385
  # * `:BOOL`
379
386
  # * `:BYTES`
380
387
  # * `:DATE`
381
388
  # * `:FLOAT64`
389
+ # * `:NUMERIC`
382
390
  # * `:INT64`
383
391
  # * `:STRING`
384
392
  # * `:TIMESTAMP`
@@ -49,7 +49,10 @@ module Google
49
49
  # end
50
50
  #
51
51
  class Status
52
- attr_reader :code, :description, :message, :details
52
+ attr_reader :code
53
+ attr_reader :description
54
+ attr_reader :message
55
+ attr_reader :details
53
56
 
54
57
  ##
55
58
  # @private Creates a Status object.
@@ -113,6 +113,7 @@ module Google
113
113
  # | `BOOL` | `true`/`false` | |
114
114
  # | `INT64` | `Integer` | |
115
115
  # | `FLOAT64` | `Float` | |
116
+ # | `NUMERIC` | `BigDecimal` | |
116
117
  # | `STRING` | `String` | |
117
118
  # | `DATE` | `Date` | |
118
119
  # | `TIMESTAMP` | `Time`, `DateTime` | |
@@ -138,6 +139,7 @@ module Google
138
139
  # * `:BYTES`
139
140
  # * `:DATE`
140
141
  # * `:FLOAT64`
142
+ # * `:NUMERIC`
141
143
  # * `:INT64`
142
144
  # * `:STRING`
143
145
  # * `:TIMESTAMP`
@@ -155,6 +157,16 @@ module Google
155
157
  # * `:optimizer_version` (String) The version of optimizer to use.
156
158
  # Empty to use database default. "latest" to use the latest
157
159
  # available optimizer version.
160
+ # * `:optimizer_statistics_package` (String) Statistics package to
161
+ # use. Empty to use the database default.
162
+ # @param [Hash] request_options Common request options.
163
+ #
164
+ # * `:priority` (String) The relative priority for requests.
165
+ # The priority acts as a hint to the Cloud Spanner scheduler
166
+ # and does not guarantee priority or order of execution.
167
+ # Valid values are `:PRIORITY_LOW`, `:PRIORITY_MEDIUM`,
168
+ # `:PRIORITY_HIGH`. If priority not set then default is
169
+ # `PRIORITY_UNSPECIFIED` is equivalent to `:PRIORITY_HIGH`.
158
170
  # @param [Hash] call_options A hash of values to specify the custom
159
171
  # call options, e.g., timeout, retries, etc. Call options are
160
172
  # optional. The following settings can be provided:
@@ -280,7 +292,10 @@ module Google
280
292
  #
281
293
  # db.transaction do |tx|
282
294
  # results = tx.execute_query \
283
- # "SELECT * FROM users", query_options: { optimizer_version: "1" }
295
+ # "SELECT * FROM users", query_options: {
296
+ # optimizer_version: "1",
297
+ # optimizer_statistics_package: "auto_20191128_14_47_22UTC"
298
+ # }
284
299
  #
285
300
  # results.rows.each do |row|
286
301
  # puts "User #{row[:id]} is #{row[:name]}"
@@ -312,7 +327,7 @@ module Google
312
327
  # end
313
328
  #
314
329
  def execute_query sql, params: nil, types: nil, query_options: nil,
315
- call_options: nil
330
+ request_options: nil, call_options: nil
316
331
  ensure_session!
317
332
 
318
333
  @seqno += 1
@@ -321,6 +336,7 @@ module Google
321
336
  session.execute_query sql, params: params, types: types,
322
337
  transaction: tx_selector, seqno: @seqno,
323
338
  query_options: query_options,
339
+ request_options: request_options,
324
340
  call_options: call_options
325
341
  end
326
342
  alias execute execute_query
@@ -350,6 +366,7 @@ module Google
350
366
  # | `BOOL` | `true`/`false` | |
351
367
  # | `INT64` | `Integer` | |
352
368
  # | `FLOAT64` | `Float` | |
369
+ # | `NUMERIC` | `BigDecimal` | |
353
370
  # | `STRING` | `String` | |
354
371
  # | `DATE` | `Date` | |
355
372
  # | `TIMESTAMP` | `Time`, `DateTime` | |
@@ -376,6 +393,7 @@ module Google
376
393
  # * `:BYTES`
377
394
  # * `:DATE`
378
395
  # * `:FLOAT64`
396
+ # * `:NUMERIC`
379
397
  # * `:INT64`
380
398
  # * `:STRING`
381
399
  # * `:TIMESTAMP`
@@ -391,6 +409,16 @@ module Google
391
409
  # * `:optimizer_version` (String) The version of optimizer to use.
392
410
  # Empty to use database default. "latest" to use the latest
393
411
  # available optimizer version.
412
+ # * `:optimizer_statistics_package` (String) Statistics package to
413
+ # use. Empty to use the database default.
414
+ # @param [Hash] request_options Common request options.
415
+ #
416
+ # * `:priority` (String) The relative priority for requests.
417
+ # The priority acts as a hint to the Cloud Spanner scheduler
418
+ # and does not guarantee priority or order of execution.
419
+ # Valid values are `:PRIORITY_LOW`, `:PRIORITY_MEDIUM`,
420
+ # `:PRIORITY_HIGH`. If priority not set then default is
421
+ # `PRIORITY_UNSPECIFIED` is equivalent to `:PRIORITY_HIGH`.
394
422
  # @param [Hash] call_options A hash of values to specify the custom
395
423
  # call options, e.g., timeout, retries, etc. Call options are
396
424
  # optional. The following settings can be provided:
@@ -441,7 +469,10 @@ module Google
441
469
  # db.transaction do |tx|
442
470
  # row_count = tx.execute_update(
443
471
  # "UPDATE users SET name = 'Charlie' WHERE id = 1",
444
- # query_options: { optimizer_version: "1" }
472
+ # query_options: {
473
+ # optimizer_version: "1",
474
+ # optimizer_statistics_package: "auto_20191128_14_47_22UTC"
475
+ # }
445
476
  # )
446
477
  # end
447
478
  #
@@ -468,9 +499,10 @@ module Google
468
499
  # end
469
500
  #
470
501
  def execute_update sql, params: nil, types: nil, query_options: nil,
471
- call_options: nil
502
+ request_options: nil, call_options: nil
472
503
  results = execute_query sql, params: params, types: types,
473
504
  query_options: query_options,
505
+ request_options: request_options,
474
506
  call_options: call_options
475
507
  # Stream all PartialResultSet to get ResultSetStats
476
508
  results.rows.to_a
@@ -485,6 +517,14 @@ module Google
485
517
  ##
486
518
  # Executes DML statements in a batch.
487
519
  #
520
+ # @param [Hash] request_options Common request options.
521
+ #
522
+ # * `:priority` (String) The relative priority for requests.
523
+ # The priority acts as a hint to the Cloud Spanner scheduler
524
+ # and does not guarantee priority or order of execution.
525
+ # Valid values are `:PRIORITY_LOW`, `:PRIORITY_MEDIUM`,
526
+ # `:PRIORITY_HIGH`. If priority not set then default is
527
+ # `PRIORITY_UNSPECIFIED` is equivalent to `:PRIORITY_HIGH`.
488
528
  # @param [Hash] call_options A hash of values to specify the custom
489
529
  # call options, e.g., timeout, retries, etc. Call options are
490
530
  # optional. The following settings can be provided:
@@ -554,10 +594,11 @@ module Google
554
594
  # end
555
595
  # end
556
596
  #
557
- def batch_update call_options: nil, &block
597
+ def batch_update request_options: nil, call_options: nil, &block
558
598
  ensure_session!
559
599
  @seqno += 1
560
600
  session.batch_update tx_selector, @seqno,
601
+ request_options: request_options,
561
602
  call_options: call_options, &block
562
603
  end
563
604
 
@@ -577,6 +618,14 @@ module Google
577
618
  # Optional.
578
619
  # @param [Integer] limit If greater than zero, no more than this number
579
620
  # of rows will be returned. The default is no limit.
621
+ # @param [Hash] request_options Common request options.
622
+ #
623
+ # * `:priority` (String) The relative priority for requests.
624
+ # The priority acts as a hint to the Cloud Spanner scheduler
625
+ # and does not guarantee priority or order of execution.
626
+ # Valid values are `:PRIORITY_LOW`, `:PRIORITY_MEDIUM`,
627
+ # `:PRIORITY_HIGH`. If priority not set then default is
628
+ # `PRIORITY_UNSPECIFIED` is equivalent to `:PRIORITY_HIGH`.
580
629
  # @param [Hash] call_options A hash of values to specify the custom
581
630
  # call options, e.g., timeout, retries, etc. Call options are
582
631
  # optional. The following settings can be provided:
@@ -609,7 +658,7 @@ module Google
609
658
  # end
610
659
  #
611
660
  def read table, columns, keys: nil, index: nil, limit: nil,
612
- call_options: nil
661
+ request_options: nil, call_options: nil
613
662
  ensure_session!
614
663
 
615
664
  columns = Array(columns).map(&:to_s)
@@ -617,6 +666,7 @@ module Google
617
666
 
618
667
  session.read table, columns, keys: keys, index: index, limit: limit,
619
668
  transaction: tx_selector,
669
+ request_options: request_options,
620
670
  call_options: call_options
621
671
  end
622
672
 
@@ -641,6 +691,7 @@ module Google
641
691
  # | `BOOL` | `true`/`false` | |
642
692
  # | `INT64` | `Integer` | |
643
693
  # | `FLOAT64` | `Float` | |
694
+ # | `NUMERIC` | `BigDecimal` | |
644
695
  # | `STRING` | `String` | |
645
696
  # | `DATE` | `Date` | |
646
697
  # | `TIMESTAMP` | `Time`, `DateTime` | |
@@ -687,6 +738,7 @@ module Google
687
738
  # | `BOOL` | `true`/`false` | |
688
739
  # | `INT64` | `Integer` | |
689
740
  # | `FLOAT64` | `Float` | |
741
+ # | `NUMERIC` | `BigDecimal` | |
690
742
  # | `STRING` | `String` | |
691
743
  # | `DATE` | `Date` | |
692
744
  # | `TIMESTAMP` | `Time`, `DateTime` | |
@@ -732,6 +784,7 @@ module Google
732
784
  # | `BOOL` | `true`/`false` | |
733
785
  # | `INT64` | `Integer` | |
734
786
  # | `FLOAT64` | `Float` | |
787
+ # | `NUMERIC` | `BigDecimal` | |
735
788
  # | `STRING` | `String` | |
736
789
  # | `DATE` | `Date` | |
737
790
  # | `TIMESTAMP` | `Time`, `DateTime` | |
@@ -779,6 +832,7 @@ module Google
779
832
  # | `BOOL` | `true`/`false` | |
780
833
  # | `INT64` | `Integer` | |
781
834
  # | `FLOAT64` | `Float` | |
835
+ # | `NUMERIC` | `BigDecimal` | |
782
836
  # | `STRING` | `String` | |
783
837
  # | `DATE` | `Date` | |
784
838
  # | `TIMESTAMP` | `Time`, `DateTime` | |
@@ -880,6 +934,7 @@ module Google
880
934
  # * `:BYTES`
881
935
  # * `:DATE`
882
936
  # * `:FLOAT64`
937
+ # * `:NUMERIC`
883
938
  # * `:INT64`
884
939
  # * `:STRING`
885
940
  # * `:TIMESTAMP`
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module Spanner
19
- VERSION = "2.4.0".freeze
19
+ VERSION = "2.8.1".freeze
20
20
  end
21
21
  end
22
22
  end
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.0
4
+ version: 2.8.1
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: 2021-02-18 00:00:00.000000000 Z
12
+ date: 2021-07-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: google-cloud-core
@@ -87,14 +87,14 @@ dependencies:
87
87
  requirements:
88
88
  - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: 1.24.0
90
+ version: 1.25.1
91
91
  type: :development
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: 1.24.0
97
+ version: 1.25.1
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: minitest
100
100
  requirement: !ruby/object:Gem::Requirement
@@ -227,28 +227,28 @@ dependencies:
227
227
  requirements:
228
228
  - - "~>"
229
229
  - !ruby/object:Gem::Version
230
- version: 1.28.0
230
+ version: '1.36'
231
231
  type: :development
232
232
  prerelease: false
233
233
  version_requirements: !ruby/object:Gem::Requirement
234
234
  requirements:
235
235
  - - "~>"
236
236
  - !ruby/object:Gem::Version
237
- version: 1.28.0
237
+ version: '1.36'
238
238
  - !ruby/object:Gem::Dependency
239
239
  name: grpc-tools
240
240
  requirement: !ruby/object:Gem::Requirement
241
241
  requirements:
242
242
  - - "~>"
243
243
  - !ruby/object:Gem::Version
244
- version: 1.26.0
244
+ version: '1.36'
245
245
  type: :development
246
246
  prerelease: false
247
247
  version_requirements: !ruby/object:Gem::Requirement
248
248
  requirements:
249
249
  - - "~>"
250
250
  - !ruby/object:Gem::Version
251
- version: 1.26.0
251
+ version: '1.36'
252
252
  description: google-cloud-spanner is the official library for Google Cloud Spanner
253
253
  API.
254
254
  email:
@@ -324,14 +324,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
324
324
  requirements:
325
325
  - - ">="
326
326
  - !ruby/object:Gem::Version
327
- version: '2.4'
327
+ version: '2.5'
328
328
  required_rubygems_version: !ruby/object:Gem::Requirement
329
329
  requirements:
330
330
  - - ">="
331
331
  - !ruby/object:Gem::Version
332
332
  version: '0'
333
333
  requirements: []
334
- rubygems_version: 3.2.6
334
+ rubygems_version: 3.2.17
335
335
  signing_key:
336
336
  specification_version: 4
337
337
  summary: API Client library for Google Cloud Spanner API