google-cloud-bigquery 1.4.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0e5f8cd4bec22402de2b7233c3c4ba9a7d92ff7fc84ee370387412377b32c94e
4
- data.tar.gz: 2e102a74a171421dcb0115edd647e32d84bb603cf5c15cc90198028346d7a6f4
3
+ metadata.gz: af9dff48b04ef98b37b45d821fe7ea4689466762b0bd444428d4247c17265395
4
+ data.tar.gz: 284d6bf810306ef9afa8f1f369582dd88d85e754ac421955a6fe3065da1bc709
5
5
  SHA512:
6
- metadata.gz: ff7105818d9ea95100fb85f64b6158a812c46875f7486c1aa159fc7cd1e53f3a466bc7fc74ae75c08a6a67e2afd97d5ac26f584a179ac4882ab5c9b03ca3abb2
7
- data.tar.gz: d4d657b44eca87899820b86a001cda2bd60314e9f91e5601af6dba29b91aa651ce2584c4dcb6d9d9cd23be644c0bab8584d8145ec1802748f53275bbcc3819d1
6
+ metadata.gz: ae89b1e2cd62e4f76008601da97974ddf4fa866a05496a36b86d0a4d9124d470a1fbf6a1c374bcb704598cc1846cd251b68daa0a0d160bc6265094fd56071354
7
+ data.tar.gz: c2bdf1ee119196601002148ffa4ad3633b61224eebe677bd6c39873e9280dcca2a81ae89b5289d868bad7f242e7ade92071baf85e8bde8ea9bdaee7bc64b649f
data/README.md CHANGED
@@ -47,6 +47,24 @@ data.each do |row|
47
47
  end
48
48
  ```
49
49
 
50
+ ## Enabling Logging
51
+
52
+ To enable logging for this library, set the logger for the underlying [Google API Client](https://github.com/google/google-api-ruby-client/blob/master/README.md#logging) library. The logger that you set may be a Ruby stdlib [`Logger`](https://ruby-doc.org/stdlib-2.4.0/libdoc/logger/rdoc/Logger.html) as shown below, or a [`Google::Cloud::Logging::Logger`](https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-logging/latest/google/cloud/logging/logger) that will write logs to [Stackdriver Logging](https://cloud.google.com/logging/).
53
+
54
+ If you do not set the logger explicitly and your application is running in a Rails environment, it will default to `Rails.logger`. Otherwise, if you do not set the logger and you are not using Rails, logging is disabled by default.
55
+
56
+ Configuring a Ruby stdlib logger:
57
+
58
+ ```ruby
59
+ require "logger"
60
+
61
+ my_logger = Logger.new $stderr
62
+ my_logger.level = Logger::WARN
63
+
64
+ # Set the Google API Client logger
65
+ Google::Apis.logger = my_logger
66
+ ```
67
+
50
68
  ## Supported Ruby Versions
51
69
 
52
70
  This library is supported on Ruby 2.0+.
@@ -44,6 +44,34 @@ module Google
44
44
  # run these first examples without the need to set up billing or to load
45
45
  # data (although we'll show you how to do that too.)
46
46
  #
47
+ # ## Enabling Logging
48
+ #
49
+ # To enable logging for this library, set the logger for the underlying
50
+ # [Google API Client](https://github.com/google/google-api-ruby-client/blob/master/README.md#logging)
51
+ # library. The logger that you set may be a Ruby stdlib
52
+ # [`Logger`](https://ruby-doc.org/stdlib-2.4.0/libdoc/logger/rdoc/Logger.html)
53
+ # as shown below, or a
54
+ # [`Google::Cloud::Logging::Logger`](https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-logging/latest/google/cloud/logging/logger)
55
+ # that will write logs to [Stackdriver
56
+ # Logging](https://cloud.google.com/logging/).
57
+ #
58
+ # If you do not set the logger explicitly and your application is running in
59
+ # a Rails environment, it will default to `Rails.logger`. Otherwise, if you
60
+ # do not set the logger and you are not using Rails, logging is disabled by
61
+ # default.
62
+ #
63
+ # Configuring a Ruby stdlib logger:
64
+ #
65
+ # ```ruby
66
+ # require "logger"
67
+ #
68
+ # my_logger = Logger.new $stderr
69
+ # my_logger.level = Logger::WARN
70
+ #
71
+ # # Set the Google API Client logger
72
+ # Google::Apis.logger = my_logger
73
+ # ```
74
+ #
47
75
  # ## Listing Datasets and Tables
48
76
  #
49
77
  # A BigQuery project contains datasets, which in turn contain tables.
@@ -186,7 +214,8 @@ module Google
186
214
  # | `BOOL` | `true`/`false` | |
187
215
  # | `INT64` | `Integer` | |
188
216
  # | `FLOAT64` | `Float` | |
189
- # | `STRING` | `STRING` | |
217
+ # | `NUMERIC` | `BigDecimal` | Will be rounded to 9 decimal places |
218
+ # | `STRING` | `String` | |
190
219
  # | `DATETIME` | `DateTime` | `DATETIME` does not support time zone. |
191
220
  # | `DATE` | `Date` | |
192
221
  # | `TIMESTAMP` | `Time` | |
@@ -16,6 +16,7 @@
16
16
  require "google/apis/bigquery_v2"
17
17
  require "stringio"
18
18
  require "base64"
19
+ require "bigdecimal"
19
20
  require "time"
20
21
  require "date"
21
22
 
@@ -34,7 +35,8 @@ module Google
34
35
  # | `BOOL` | `true`/`false` | |
35
36
  # | `INT64` | `Integer` | |
36
37
  # | `FLOAT64` | `Float` | |
37
- # | `STRING` | `STRING` | |
38
+ # | `NUMERIC` | `BigDecimal` | Will be rounded to 9 decimal places |
39
+ # | `STRING` | `String` | |
38
40
  # | `DATETIME` | `DateTime` | `DATETIME` does not support time zone. |
39
41
  # | `DATE` | `Date` | |
40
42
  # | `TIMESTAMP` | `Time` | |
@@ -84,6 +86,8 @@ module Google
84
86
  Integer value[:v]
85
87
  elsif field.type == "FLOAT"
86
88
  Float value[:v]
89
+ elsif field.type == "NUMERIC"
90
+ BigDecimal value[:v]
87
91
  elsif field.type == "BOOLEAN"
88
92
  (value[:v] == "true" ? true : (value[:v] == "false" ? false : nil))
89
93
  elsif field.type == "BYTES"
@@ -132,6 +136,15 @@ module Google
132
136
  parameter_value: Google::Apis::BigqueryV2::QueryParameterValue.new(
133
137
  value: value)
134
138
  )
139
+ elsif BigDecimal === value
140
+ # Round to precision of 9
141
+ value_str = value.finite? ? value.round(9).to_s("F") : value.to_s
142
+ return Google::Apis::BigqueryV2::QueryParameter.new(
143
+ parameter_type: Google::Apis::BigqueryV2::QueryParameterType.new(
144
+ type: "NUMERIC"),
145
+ parameter_value: Google::Apis::BigqueryV2::QueryParameterValue.new(
146
+ value: value_str)
147
+ )
135
148
  elsif String === value
136
149
  return Google::Apis::BigqueryV2::QueryParameter.new(
137
150
  parameter_type: Google::Apis::BigqueryV2::QueryParameterType.new(
@@ -686,7 +686,8 @@ module Google
686
686
  # | `BOOL` | `true`/`false` | |
687
687
  # | `INT64` | `Integer` | |
688
688
  # | `FLOAT64` | `Float` | |
689
- # | `STRING` | `STRING` | |
689
+ # | `NUMERIC` | `BigDecimal` | Will be rounded to 9 decimal places |
690
+ # | `STRING` | `String` | |
690
691
  # | `DATETIME` | `DateTime` | `DATETIME` does not support time zone. |
691
692
  # | `DATE` | `Date` | |
692
693
  # | `TIMESTAMP` | `Time` | |
@@ -942,7 +943,8 @@ module Google
942
943
  # | `BOOL` | `true`/`false` | |
943
944
  # | `INT64` | `Integer` | |
944
945
  # | `FLOAT64` | `Float` | |
945
- # | `STRING` | `STRING` | |
946
+ # | `NUMERIC` | `BigDecimal` | Will be rounded to 9 decimal places |
947
+ # | `STRING` | `String` | |
946
948
  # | `DATETIME` | `DateTime` | `DATETIME` does not support time zone. |
947
949
  # | `DATE` | `Date` | |
948
950
  # | `TIMESTAMP` | `Time` | |
@@ -107,7 +107,8 @@ module Google
107
107
  # | `BOOL` | `true`/`false` | |
108
108
  # | `INT64` | `Integer` | |
109
109
  # | `FLOAT64` | `Float` | |
110
- # | `STRING` | `STRING` | |
110
+ # | `NUMERIC` | `BigDecimal` | Will be rounded to 9 decimal places |
111
+ # | `STRING` | `String` | |
111
112
  # | `DATETIME` | `DateTime` | `DATETIME` does not support time zone. |
112
113
  # | `DATE` | `Date` | |
113
114
  # | `TIMESTAMP` | `Time` | |
@@ -365,7 +366,8 @@ module Google
365
366
  # | `BOOL` | `true`/`false` | |
366
367
  # | `INT64` | `Integer` | |
367
368
  # | `FLOAT64` | `Float` | |
368
- # | `STRING` | `STRING` | |
369
+ # | `NUMERIC` | `BigDecimal` | Will be rounded to 9 decimal places |
370
+ # | `STRING` | `String` | |
369
371
  # | `DATETIME` | `DateTime` | `DATETIME` does not support time zone. |
370
372
  # | `DATE` | `Date` | |
371
373
  # | `TIMESTAMP` | `Time` | |
@@ -14,6 +14,7 @@
14
14
 
15
15
 
16
16
  require "google/cloud/bigquery/schema/field"
17
+ require "json"
17
18
 
18
19
  module Google
19
20
  module Cloud
@@ -44,6 +45,67 @@ module Google
44
45
  # end
45
46
  #
46
47
  class Schema
48
+ class << self
49
+ ##
50
+ # Load a schema from a JSON file.
51
+ #
52
+ # The JSON schema file is the same as for the [`bq`
53
+ # CLI](https://cloud.google.com/bigquery/docs/schemas#specifying_a_json_schema_file)
54
+ # consisting of an array of JSON objects containing the following:
55
+ # - `name`: The column [name](https://cloud.google.com/bigquery/docs/schemas#column_names)
56
+ # - `type`: The column's [data
57
+ # type](https://cloud.google.com/bigquery/docs/schemas#standard_sql_data_types)
58
+ # - `description`: (Optional) The column's [description](https://cloud.google.com/bigquery/docs/schemas#column_descriptions)
59
+ # - `mode`: (Optional) The column's [mode](https://cloud.google.com/bigquery/docs/schemas#modes)
60
+ # (if unspecified, mode defaults to `NULLABLE`)
61
+ # - `fields`: If `type` is `RECORD`, an array of objects defining
62
+ # child fields with these properties
63
+ #
64
+ # @param [IO, String, Array<Hash>] source An `IO` containing the JSON
65
+ # schema, a `String` containing the JSON schema, or an `Array` of
66
+ # `Hash`es containing the schema details.
67
+ #
68
+ # @return [Schema] A schema.
69
+ #
70
+ # @example
71
+ # require "google/cloud/bigquery"
72
+ #
73
+ # schema = Google::Cloud::Bigquery::Schema.load(
74
+ # File.read("schema.json")
75
+ # )
76
+ #
77
+ def load source
78
+ new.load source
79
+ end
80
+
81
+ ##
82
+ # Write a schema as JSON to a file.
83
+ #
84
+ # The JSON schema file is the same as for the [`bq`
85
+ # CLI](https://cloud.google.com/bigquery/docs/schemas#specifying_a_json_schema_file).
86
+ #
87
+ # @param [IO, String] schema An `Google::Cloud::Bigquery::Schema`.
88
+ #
89
+ # @param [IO, String] destination An `IO` to which to write the
90
+ # schema, or a `String` containing the filename to write to.
91
+ #
92
+ # @return [Schema] The schema so that commands are chainable.
93
+ #
94
+ # @example
95
+ # require "google/cloud/bigquery"
96
+ #
97
+ # bigquery = Google::Cloud::Bigquery.new
98
+ # dataset = bigquery.dataset "my_dataset"
99
+ # table = dataset.table "my_table"
100
+ # schema = Google::Cloud::Bigquery::Schema.dump(
101
+ # table.schema,
102
+ # "schema.json"
103
+ # )
104
+ #
105
+ def dump schema, destination
106
+ schema.dump destination
107
+ end
108
+ end
47
109
  ##
48
110
  # The fields of the table schema.
49
111
  #
@@ -123,6 +185,83 @@ module Google
123
185
  fields.empty?
124
186
  end
125
187
 
188
+ ##
189
+ # Load the schema from a JSON file.
190
+ #
191
+ # The JSON schema file is the same as for the [`bq`
192
+ # CLI](https://cloud.google.com/bigquery/docs/schemas#specifying_a_json_schema_file)
193
+ # consisting of an array of JSON objects containing the following:
194
+ # - `name`: The column [name](https://cloud.google.com/bigquery/docs/schemas#column_names)
195
+ # - `type`: The column's [data
196
+ # type](https://cloud.google.com/bigquery/docs/schemas#standard_sql_data_types)
197
+ # - `description`: (Optional) The column's [description](https://cloud.google.com/bigquery/docs/schemas#column_descriptions)
198
+ # - `mode`: (Optional) The column's [mode](https://cloud.google.com/bigquery/docs/schemas#modes)
199
+ # (if unspecified, mode defaults to `NULLABLE`)
200
+ # - `fields`: If `type` is `RECORD`, an array of objects defining child
201
+ # fields with these properties
202
+ #
203
+ # @param [IO, String, Array<Hash>] source An `IO` containing the JSON
204
+ # schema, a `String` containing the JSON schema, or an `Array` of
205
+ # `Hash`es containing the schema details.
206
+ #
207
+ # @return [Schema] The schema so that commands are chainable.
208
+ #
209
+ # @example
210
+ # require "google/cloud/bigquery"
211
+ #
212
+ # bigquery = Google::Cloud::Bigquery.new
213
+ # dataset = bigquery.dataset "my_dataset"
214
+ # table = dataset.table "my_table" do |table|
215
+ # table.schema.load File.read("path/to/schema.json")
216
+ # end
217
+ #
218
+ def load source
219
+ if source.respond_to?(:rewind) && source.respond_to?(:read)
220
+ source.rewind
221
+ schema_json = String source.read
222
+ elsif source.is_a? Array
223
+ schema_json = JSON.dump source
224
+ else
225
+ schema_json = String source
226
+ end
227
+
228
+ schema_json = %({"fields":#{schema_json}})
229
+
230
+ @gapi = Google::Apis::BigqueryV2::TableSchema.from_json schema_json
231
+
232
+ self
233
+ end
234
+
235
+ ##
236
+ # Write the schema as JSON to a file.
237
+ #
238
+ # The JSON schema file is the same as for the [`bq`
239
+ # CLI](https://cloud.google.com/bigquery/docs/schemas#specifying_a_json_schema_file).
240
+ #
241
+ # @param [IO, String] destination An `IO` to which to write the schema,
242
+ # or a `String` containing the filename to write to.
243
+ #
244
+ # @return [Schema] The schema so that commands are chainable.
245
+ #
246
+ # @example
247
+ # require "google/cloud/bigquery"
248
+ #
249
+ # bigquery = Google::Cloud::Bigquery.new
250
+ # dataset = bigquery.dataset "my_dataset"
251
+ # table = dataset.table "my_table"
252
+ # table.schema.dump "schema.json"
253
+ #
254
+ def dump destination
255
+ if destination.respond_to?(:rewind) && destination.respond_to?(:write)
256
+ destination.rewind
257
+ destination.write JSON.dump(fields.map(&:to_hash))
258
+ else
259
+ File.write String(destination), JSON.dump(fields.map(&:to_hash))
260
+ end
261
+
262
+ self
263
+ end
264
+
126
265
  ##
127
266
  # Adds a string field to the schema.
128
267
  #
@@ -171,6 +310,24 @@ module Google
171
310
  add_field name, :float, description: description, mode: mode
172
311
  end
173
312
 
313
+ ##
314
+ # Adds a numeric number field to the schema. Numeric is a
315
+ # fixed-precision numeric type with 38 decimal digits, 9 that follow the
316
+ # decimal point.
317
+ #
318
+ # @param [String] name The field name. The name must contain only
319
+ # letters (a-z, A-Z), numbers (0-9), or underscores (_), and must
320
+ # start with a letter or underscore. The maximum length is 128
321
+ # characters.
322
+ # @param [String] description A description of the field.
323
+ # @param [Symbol] mode The field's mode. The possible values are
324
+ # `:nullable`, `:required`, and `:repeated`. The default value is
325
+ # `:nullable`.
326
+ #
327
+ def numeric name, description: nil, mode: :nullable
328
+ add_field name, :numeric, description: description, mode: mode
329
+ end
330
+
174
331
  ##
175
332
  # Adds a boolean field to the schema.
176
333
  #
@@ -40,8 +40,8 @@ module Google
40
40
  MODES = %w[NULLABLE REQUIRED REPEATED].freeze
41
41
 
42
42
  # @private
43
- TYPES = %w[STRING INTEGER INT64 FLOAT FLOAT64 BOOLEAN BOOL BYTES
44
- TIMESTAMP TIME DATETIME DATE RECORD STRUCT].freeze
43
+ TYPES = %w[STRING INTEGER INT64 FLOAT FLOAT64 NUMERIC BOOLEAN BOOL
44
+ BYTES TIMESTAMP TIME DATETIME DATE RECORD STRUCT].freeze
45
45
 
46
46
  ##
47
47
  # The name of the field.
@@ -72,10 +72,10 @@ module Google
72
72
  #
73
73
  # @return [String] The field data type. Possible values include
74
74
  # `STRING`, `BYTES`, `INTEGER`, `INT64` (same as `INTEGER`),
75
- # `FLOAT`, `FLOAT64` (same as `FLOAT`), `BOOLEAN`, `BOOL` (same as
76
- # `BOOLEAN`), `TIMESTAMP`, `DATE`, `TIME`, `DATETIME`, `RECORD`
77
- # (where `RECORD` indicates that the field contains a nested schema)
78
- # or `STRUCT` (same as `RECORD`).
75
+ # `FLOAT`, `FLOAT64` (same as `FLOAT`), `NUMERIC`, `BOOLEAN`, `BOOL`
76
+ # (same as `BOOLEAN`), `TIMESTAMP`, `DATE`, `TIME`, `DATETIME`,
77
+ # `RECORD` (where `RECORD` indicates that the field contains a
78
+ # nested schema) or `STRUCT` (same as `RECORD`).
79
79
  #
80
80
  def type
81
81
  @gapi.type
@@ -86,10 +86,10 @@ module Google
86
86
  #
87
87
  # @param [String] new_type The data type. Possible values include
88
88
  # `STRING`, `BYTES`, `INTEGER`, `INT64` (same as `INTEGER`),
89
- # `FLOAT`, `FLOAT64` (same as `FLOAT`), `BOOLEAN`, `BOOL` (same as
90
- # `BOOLEAN`), `TIMESTAMP`, `DATE`, `TIME`, `DATETIME`, `RECORD`
91
- # (where `RECORD` indicates that the field contains a nested schema)
92
- # or `STRUCT` (same as `RECORD`).
89
+ # `FLOAT`, `FLOAT64` (same as `FLOAT`), `NUMERIC`, `BOOLEAN`, `BOOL`
90
+ # (same as `BOOLEAN`), `TIMESTAMP`, `DATE`, `TIME`, `DATETIME`,
91
+ # `RECORD` (where `RECORD` indicates that the field contains a
92
+ # nested schema) or `STRUCT` (same as `RECORD`).
93
93
  #
94
94
  def type= new_type
95
95
  @gapi.update! type: verify_type(new_type)
@@ -190,6 +190,15 @@ module Google
190
190
  type == "FLOAT" || type == "FLOAT64"
191
191
  end
192
192
 
193
+ ##
194
+ # Checks if the type of the field is `NUMERIC`.
195
+ #
196
+ # @return [Boolean] `true` when `NUMERIC`, `false` otherwise.
197
+ #
198
+ def numeric?
199
+ type == "NUMERIC"
200
+ end
201
+
193
202
  ##
194
203
  # Checks if the type of the field is `BOOLEAN`.
195
204
  #
@@ -353,6 +362,28 @@ module Google
353
362
  add_field name, :float, description: description, mode: mode
354
363
  end
355
364
 
365
+ ##
366
+ # Adds a numeric number field to the schema. Numeric is a
367
+ # fixed-precision numeric type with 38 decimal digits, 9 that follow
368
+ # the decimal point.
369
+ #
370
+ # This can only be called on fields that are of type `RECORD`.
371
+ #
372
+ # @param [String] name The field name. The name must contain only
373
+ # letters (a-z, A-Z), numbers (0-9), or underscores (_), and must
374
+ # start with a letter or underscore. The maximum length is 128
375
+ # characters.
376
+ # @param [String] description A description of the field.
377
+ # @param [Symbol] mode The field's mode. The possible values are
378
+ # `:nullable`, `:required`, and `:repeated`. The default value is
379
+ # `:nullable`.
380
+ #
381
+ def numeric name, description: nil, mode: :nullable
382
+ record_check!
383
+
384
+ add_field name, :numeric, description: description, mode: mode
385
+ end
386
+
356
387
  ##
357
388
  # Adds a boolean field to the nested schema of a record field.
358
389
  #
@@ -542,6 +573,18 @@ module Google
542
573
  to_gapi.to_h == other.to_gapi.to_h
543
574
  end
544
575
 
576
+ # @private
577
+ def to_hash
578
+ h = {
579
+ name: name,
580
+ type: type,
581
+ mode: mode
582
+ }
583
+ h[:description] = description if description
584
+ h[:fields] = fields.map(&:to_hash) if record?
585
+ h
586
+ end
587
+
545
588
  protected
546
589
 
547
590
  def frozen_check!
@@ -700,6 +700,11 @@ module Google
700
700
  # schema. If `false`, the fields will be added to the existing schema.
701
701
  # When a table already contains data, schema changes must be additive.
702
702
  # Thus, the default value is `false`.
703
+ # When loading from a file this will always replace the schema, no
704
+ # matter what `replace` is set to. You can update the schema (for
705
+ # example, for a table that already contains data) by providing a
706
+ # schema file that includes the existing schema plus any new
707
+ # fields.
703
708
  # @yield [schema] a block for setting the schema
704
709
  # @yieldparam [Schema] schema the object accepting the schema
705
710
  #
@@ -720,6 +725,16 @@ module Google
720
725
  # end
721
726
  # end
722
727
  #
728
+ # @example Load the schema from a file
729
+ # require "google/cloud/bigquery"
730
+ #
731
+ # bigquery = Google::Cloud::Bigquery.new
732
+ # dataset = bigquery.dataset "my_dataset"
733
+ # table = dataset.create_table "my_table"
734
+ # table.schema do |schema|
735
+ # schema.load File.open("schema.json")
736
+ # end
737
+ #
723
738
  # @!group Attributes
724
739
  #
725
740
  def schema replace: false
@@ -2427,6 +2442,11 @@ module Google
2427
2442
  # schema. If `false`, the fields will be added to the existing
2428
2443
  # schema. When a table already contains data, schema changes must be
2429
2444
  # additive. Thus, the default value is `false`.
2445
+ # When loading from a file this will always replace the schema, no
2446
+ # matter what `replace` is set to. You can update the schema (for
2447
+ # example, for a table that already contains data) by providing a
2448
+ # schema file that includes the existing schema plus any new
2449
+ # fields.
2430
2450
  # @yield [schema] a block for setting the schema
2431
2451
  # @yieldparam [Schema] schema the object accepting the schema
2432
2452
  #
@@ -2449,6 +2469,19 @@ module Google
2449
2469
  # end
2450
2470
  # end
2451
2471
  #
2472
+ # @example Load the schema from a file
2473
+ # require "google/cloud/bigquery"
2474
+ #
2475
+ # bigquery = Google::Cloud::Bigquery.new
2476
+ # dataset = bigquery.dataset "my_dataset"
2477
+ # table = dataset.create_table "my_table" do |t|
2478
+ # t.name = "My Table",
2479
+ # t.description = "A description of my table."
2480
+ # t.schema do |s|
2481
+ # s.load File.open("schema.json")
2482
+ # end
2483
+ # end
2484
+ #
2452
2485
  # @!group Schema
2453
2486
  #
2454
2487
  def schema replace: false
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module Bigquery
19
- VERSION = "1.4.0".freeze
19
+ VERSION = "1.5.0".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-bigquery
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.5.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: 2018-05-07 00:00:00.000000000 Z
12
+ date: 2018-05-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: google-cloud-core
@@ -251,7 +251,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
251
251
  version: '0'
252
252
  requirements: []
253
253
  rubyforge_project:
254
- rubygems_version: 2.7.6
254
+ rubygems_version: 2.7.7
255
255
  signing_key:
256
256
  specification_version: 4
257
257
  summary: API Client library for Google BigQuery