google-cloud-spanner 2.4.0 → 2.8.1

Sign up to get free protection for your applications and to get access to all the features.
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