google-cloud-spanner 2.3.0 → 2.8.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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +64 -0
  3. data/CONTRIBUTING.md +1 -1
  4. data/LOGGING.md +1 -1
  5. data/OVERVIEW.md +1 -1
  6. data/lib/google-cloud-spanner.rb +2 -0
  7. data/lib/google/cloud/spanner/backup.rb +75 -4
  8. data/lib/google/cloud/spanner/backup/job.rb +8 -8
  9. data/lib/google/cloud/spanner/backup/job/list.rb +2 -2
  10. data/lib/google/cloud/spanner/backup/list.rb +2 -2
  11. data/lib/google/cloud/spanner/batch_snapshot.rb +11 -4
  12. data/lib/google/cloud/spanner/batch_update.rb +3 -1
  13. data/lib/google/cloud/spanner/client.rb +315 -83
  14. data/lib/google/cloud/spanner/commit.rb +4 -0
  15. data/lib/google/cloud/spanner/data.rb +4 -5
  16. data/lib/google/cloud/spanner/database.rb +111 -3
  17. data/lib/google/cloud/spanner/database/backup_info.rb +12 -3
  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 +44 -24
  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
@@ -116,6 +116,7 @@ module Google
116
116
  # | `BOOL` | `true`/`false` | |
117
117
  # | `INT64` | `Integer` | |
118
118
  # | `FLOAT64` | `Float` | |
119
+ # | `NUMERIC` | `BigDecimal` | |
119
120
  # | `STRING` | `String` | |
120
121
  # | `DATE` | `Date` | |
121
122
  # | `TIMESTAMP` | `Time`, `DateTime` | |
@@ -141,6 +142,7 @@ module Google
141
142
  # * `:BYTES`
142
143
  # * `:DATE`
143
144
  # * `:FLOAT64`
145
+ # * `:NUMERIC`
144
146
  # * `:INT64`
145
147
  # * `:STRING`
146
148
  # * `:TIMESTAMP`
@@ -163,6 +165,8 @@ module Google
163
165
  # * `:optimizer_version` (String) The version of optimizer to use.
164
166
  # Empty to use database default. "latest" to use the latest
165
167
  # available optimizer version.
168
+ # * `:optimizer_statistics_package` (String) Statistics package to
169
+ # use. Empty to use the database default.
166
170
  # @param [Hash] call_options A hash of values to specify the custom
167
171
  # call options, e.g., timeout, retries, etc. Call options are
168
172
  # optional. The following settings can be provided:
@@ -283,7 +287,10 @@ module Google
283
287
  # db = spanner.client "my-instance", "my-database"
284
288
  #
285
289
  # results = db.execute_query \
286
- # "SELECT * FROM users", query_options: { optimizer_version: "1" }
290
+ # "SELECT * FROM users", query_options: {
291
+ # optimizer_version: "1",
292
+ # optimizer_statistics_package: "auto_20191128_14_47_22UTC"
293
+ # }
287
294
  #
288
295
  # results.rows.each do |row|
289
296
  # puts "User #{row[:id]} is #{row[:name]}"
@@ -314,7 +321,7 @@ module Google
314
321
  #
315
322
  def execute_query sql, params: nil, types: nil, transaction: nil,
316
323
  partition_token: nil, seqno: nil, query_options: nil,
317
- call_options: nil
324
+ request_options: nil, call_options: nil
318
325
  ensure_service!
319
326
  if query_options.nil?
320
327
  query_options = @query_options
@@ -328,6 +335,7 @@ module Google
328
335
  partition_token: partition_token,
329
336
  seqno: seqno,
330
337
  query_options: query_options,
338
+ request_options: request_options,
331
339
  call_options: call_options
332
340
  @last_updated_at = Time.now
333
341
  results
@@ -369,7 +377,8 @@ module Google
369
377
  # @return [Array<Integer>] A list with the exact number of rows that
370
378
  # were modified for each DML statement.
371
379
  #
372
- def batch_update transaction, seqno, call_options: nil
380
+ def batch_update transaction, seqno, request_options: nil,
381
+ call_options: nil
373
382
  ensure_service!
374
383
 
375
384
  raise ArgumentError, "block is required" unless block_given?
@@ -379,6 +388,7 @@ module Google
379
388
 
380
389
  results = service.execute_batch_dml path, transaction,
381
390
  batch.statements, seqno,
391
+ request_options: request_options,
382
392
  call_options: call_options
383
393
  @last_updated_at = Time.now
384
394
  results
@@ -434,13 +444,15 @@ module Google
434
444
  # end
435
445
  #
436
446
  def read table, columns, keys: nil, index: nil, limit: nil,
437
- transaction: nil, partition_token: nil, call_options: nil
447
+ transaction: nil, partition_token: nil, request_options: nil,
448
+ call_options: nil
438
449
  ensure_service!
439
450
 
440
451
  results = Results.read service, path, table, columns,
441
452
  keys: keys, index: index, limit: limit,
442
453
  transaction: transaction,
443
454
  partition_token: partition_token,
455
+ request_options: request_options,
444
456
  call_options: call_options
445
457
  @last_updated_at = Time.now
446
458
  results
@@ -542,13 +554,15 @@ module Google
542
554
  # puts commit_resp.timestamp
543
555
  # puts commit_resp.stats.mutation_count
544
556
  #
545
- def commit transaction_id: nil, commit_options: nil, call_options: nil
557
+ def commit transaction_id: nil, commit_options: nil,
558
+ request_options: nil, call_options: nil
546
559
  ensure_service!
547
560
  commit = Commit.new
548
561
  yield commit
549
562
  commit_resp = service.commit path, commit.mutations,
550
563
  transaction_id: transaction_id,
551
564
  commit_options: commit_options,
565
+ request_options: request_options,
552
566
  call_options: call_options
553
567
  @last_updated_at = Time.now
554
568
  resp = CommitResponse.from_grpc commit_resp
@@ -573,6 +587,7 @@ module Google
573
587
  # | `BOOL` | `true`/`false` | |
574
588
  # | `INT64` | `Integer` | |
575
589
  # | `FLOAT64` | `Float` | |
590
+ # | `NUMERIC` | `BigDecimal` | |
576
591
  # | `STRING` | `String` | |
577
592
  # | `DATE` | `Date` | |
578
593
  # | `TIMESTAMP` | `Time`, `DateTime` | |
@@ -633,13 +648,14 @@ module Google
633
648
  # puts commit_resp.stats.mutation_count
634
649
  #
635
650
  def upsert table, *rows, transaction_id: nil, commit_options: nil,
636
- call_options: nil
651
+ request_options: nil, call_options: nil
637
652
  opts = {
638
653
  transaction_id: transaction_id,
639
654
  commit_options: commit_options,
655
+ request_options: request_options,
640
656
  call_options: call_options
641
657
  }
642
- commit opts do |c|
658
+ commit(**opts) do |c|
643
659
  c.upsert table, rows
644
660
  end
645
661
  end
@@ -662,6 +678,7 @@ module Google
662
678
  # | `BOOL` | `true`/`false` | |
663
679
  # | `INT64` | `Integer` | |
664
680
  # | `FLOAT64` | `Float` | |
681
+ # | `NUMERIC` | `BigDecimal` | |
665
682
  # | `STRING` | `String` | |
666
683
  # | `DATE` | `Date` | |
667
684
  # | `TIMESTAMP` | `Time`, `DateTime` | |
@@ -722,13 +739,14 @@ module Google
722
739
  # puts commit_resp.stats.mutation_count
723
740
  #
724
741
  def insert table, *rows, transaction_id: nil, commit_options: nil,
725
- call_options: nil
742
+ request_options: nil, call_options: nil
726
743
  opts = {
727
744
  transaction_id: transaction_id,
728
745
  commit_options: commit_options,
746
+ request_options: request_options,
729
747
  call_options: call_options
730
748
  }
731
- commit opts do |c|
749
+ commit(**opts) do |c|
732
750
  c.insert table, rows
733
751
  end
734
752
  end
@@ -750,6 +768,7 @@ module Google
750
768
  # | `BOOL` | `true`/`false` | |
751
769
  # | `INT64` | `Integer` | |
752
770
  # | `FLOAT64` | `Float` | |
771
+ # | `NUMERIC` | `BigDecimal` | |
753
772
  # | `STRING` | `String` | |
754
773
  # | `DATE` | `Date` | |
755
774
  # | `TIMESTAMP` | `Time`, `DateTime` | |
@@ -810,13 +829,14 @@ module Google
810
829
  # puts commit_resp.stats.mutation_count
811
830
  #
812
831
  def update table, *rows, transaction_id: nil, commit_options: nil,
813
- call_options: nil
832
+ request_options: nil, call_options: nil
814
833
  opts = {
815
834
  transaction_id: transaction_id,
816
835
  commit_options: commit_options,
836
+ request_options: request_options,
817
837
  call_options: call_options
818
838
  }
819
- commit opts do |c|
839
+ commit(**opts) do |c|
820
840
  c.update table, rows
821
841
  end
822
842
  end
@@ -840,6 +860,7 @@ module Google
840
860
  # | `BOOL` | `true`/`false` | |
841
861
  # | `INT64` | `Integer` | |
842
862
  # | `FLOAT64` | `Float` | |
863
+ # | `NUMERIC` | `BigDecimal` | |
843
864
  # | `STRING` | `String` | |
844
865
  # | `DATE` | `Date` | |
845
866
  # | `TIMESTAMP` | `Time`, `DateTime` | |
@@ -900,13 +921,14 @@ module Google
900
921
  # puts commit_resp.stats.mutation_count
901
922
  #
902
923
  def replace table, *rows, transaction_id: nil, commit_options: nil,
903
- call_options: nil
924
+ request_options: nil, call_options: nil
904
925
  opts = {
905
926
  transaction_id: transaction_id,
906
927
  commit_options: commit_options,
928
+ request_options: request_options,
907
929
  call_options: call_options
908
930
  }
909
- commit opts do |c|
931
+ commit(**opts) do |c|
910
932
  c.replace table, rows
911
933
  end
912
934
  end
@@ -968,13 +990,14 @@ module Google
968
990
  # puts commit_resp.stats.mutation_count
969
991
  #
970
992
  def delete table, keys = [], transaction_id: nil, commit_options: nil,
971
- call_options: nil
993
+ request_options: nil, call_options: nil
972
994
  opts = {
973
995
  transaction_id: transaction_id,
974
996
  commit_options: commit_options,
997
+ request_options: request_options,
975
998
  call_options: call_options
976
999
  }
977
- commit opts do |c|
1000
+ commit(**opts) do |c|
978
1001
  c.delete table, keys
979
1002
  end
980
1003
  end
@@ -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`