google-cloud-bigquery 1.34.0 → 1.35.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 +13 -0
- data/lib/google/cloud/bigquery/convert.rb +3 -0
- data/lib/google/cloud/bigquery/dataset.rb +13 -6
- data/lib/google/cloud/bigquery/job.rb +9 -0
- data/lib/google/cloud/bigquery/load_job.rb +36 -0
- data/lib/google/cloud/bigquery/project.rb +12 -6
- data/lib/google/cloud/bigquery/query_job.rb +11 -6
- data/lib/google/cloud/bigquery/schema.rb +22 -0
- data/lib/google/cloud/bigquery/schema/field.rb +90 -14
- data/lib/google/cloud/bigquery/service.rb +1 -1
- data/lib/google/cloud/bigquery/table.rb +34 -0
- data/lib/google/cloud/bigquery/table/async_inserter.rb +1 -0
- data/lib/google/cloud/bigquery/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 403979ca0fcee3fa41911b46cd53f9f5c4f030f85610c29870fc770f41de7d03
|
4
|
+
data.tar.gz: 15060d2d7351dc8e922adf77483c48ee4be7acf98bffdcb824f699920db65d7c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6bdcdd87c1fb4dcafdb8a071fe21322fc45c3ac94a3a89617d2a576f15733e371833ee47027056081af955e7366a817aaab3eead234d1ed2098678e6ca5e225e
|
7
|
+
data.tar.gz: c46e7b144f15072b10fe16bff3ccffdc54f43801a59f6760666c3cc2c2d8b8230262163de8dadb0f705271d7b27700abe1703f39fd26cd9b97d3fdd442379e61
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,18 @@
|
|
1
1
|
# Release History
|
2
2
|
|
3
|
+
### 1.35.0 / 2021-08-12
|
4
|
+
|
5
|
+
#### Features
|
6
|
+
|
7
|
+
* Add GEOGRAPHY schema helpers
|
8
|
+
* Add LoadJob#geography
|
9
|
+
* Add Schema::Field#geography
|
10
|
+
* Add Table::Updater#geography
|
11
|
+
* Add support for GEOGRAPHY type
|
12
|
+
* Add Schema#geography
|
13
|
+
* Add support for multistatement transaction statistics in jobs
|
14
|
+
* Add Job#transaction_id
|
15
|
+
|
3
16
|
### 1.34.0 / 2021-07-20
|
4
17
|
|
5
18
|
#### Features
|
@@ -38,6 +38,7 @@ module Google
|
|
38
38
|
# | `STRING` | `String` | |
|
39
39
|
# | `DATETIME` | `DateTime` | `DATETIME` does not support time zone. |
|
40
40
|
# | `DATE` | `Date` | |
|
41
|
+
# | `GEOGRAPHY` | `String` | |
|
41
42
|
# | `TIMESTAMP` | `Time` | |
|
42
43
|
# | `TIME` | `Google::Cloud::BigQuery::Time` | |
|
43
44
|
# | `BYTES` | `File`, `IO`, `StringIO`, or similar | |
|
@@ -102,6 +103,8 @@ module Google
|
|
102
103
|
::Time.parse("#{value[:v]} UTC").to_datetime
|
103
104
|
elsif field.type == "DATE"
|
104
105
|
Date.parse value[:v]
|
106
|
+
elsif field.type == "GEOGRAPHY"
|
107
|
+
String value[:v]
|
105
108
|
else
|
106
109
|
value[:v]
|
107
110
|
end
|
@@ -1138,7 +1138,7 @@ module Google
|
|
1138
1138
|
# use named query parameters. When set, `legacy_sql` will automatically be set to false and `standard_sql` to
|
1139
1139
|
# true.
|
1140
1140
|
#
|
1141
|
-
#
|
1141
|
+
# BigQuery types are converted from Ruby types as follows:
|
1142
1142
|
#
|
1143
1143
|
# | BigQuery | Ruby | Notes |
|
1144
1144
|
# |--------------|--------------------------------------|----------------------------------------------------|
|
@@ -1146,10 +1146,11 @@ module Google
|
|
1146
1146
|
# | `INT64` | `Integer` | |
|
1147
1147
|
# | `FLOAT64` | `Float` | |
|
1148
1148
|
# | `NUMERIC` | `BigDecimal` | `BigDecimal` values will be rounded to scale 9. |
|
1149
|
-
# | `BIGNUMERIC` |
|
1149
|
+
# | `BIGNUMERIC` | `BigDecimal` | NOT AUTOMATIC: Must be mapped using `types`, below.|
|
1150
1150
|
# | `STRING` | `String` | |
|
1151
1151
|
# | `DATETIME` | `DateTime` | `DATETIME` does not support time zone. |
|
1152
1152
|
# | `DATE` | `Date` | |
|
1153
|
+
# | `GEOGRAPHY` | `String` (WKT or GeoJSON) | NOT AUTOMATIC: Must be mapped using `types`, below.|
|
1153
1154
|
# | `TIMESTAMP` | `Time` | |
|
1154
1155
|
# | `TIME` | `Google::Cloud::BigQuery::Time` | |
|
1155
1156
|
# | `BYTES` | `File`, `IO`, `StringIO`, or similar | |
|
@@ -1157,7 +1158,8 @@ module Google
|
|
1157
1158
|
# | `STRUCT` | `Hash` | Hash keys may be strings or symbols. |
|
1158
1159
|
#
|
1159
1160
|
# See [Data Types](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types) for an overview
|
1160
|
-
# of each BigQuery data type, including allowed values.
|
1161
|
+
# of each BigQuery data type, including allowed values. For the `GEOGRAPHY` type, see [Working with BigQuery
|
1162
|
+
# GIS data](https://cloud.google.com/bigquery/docs/gis-data).
|
1161
1163
|
# @param [Array, Hash] types Standard SQL only. Types of the SQL parameters in `params`. It is not always
|
1162
1164
|
# possible to infer the right SQL type from a value in `params`. In these cases, `types` must be used to
|
1163
1165
|
# specify the SQL type for these values.
|
@@ -1174,6 +1176,7 @@ module Google
|
|
1174
1176
|
# * `:STRING`
|
1175
1177
|
# * `:DATETIME`
|
1176
1178
|
# * `:DATE`
|
1179
|
+
# * `:GEOGRAPHY`
|
1177
1180
|
# * `:TIMESTAMP`
|
1178
1181
|
# * `:TIME`
|
1179
1182
|
# * `:BYTES`
|
@@ -1481,7 +1484,7 @@ module Google
|
|
1481
1484
|
# use named query parameters. When set, `legacy_sql` will automatically be set to false and `standard_sql` to
|
1482
1485
|
# true.
|
1483
1486
|
#
|
1484
|
-
#
|
1487
|
+
# BigQuery types are converted from Ruby types as follows:
|
1485
1488
|
#
|
1486
1489
|
# | BigQuery | Ruby | Notes |
|
1487
1490
|
# |--------------|--------------------------------------|----------------------------------------------------|
|
@@ -1489,10 +1492,11 @@ module Google
|
|
1489
1492
|
# | `INT64` | `Integer` | |
|
1490
1493
|
# | `FLOAT64` | `Float` | |
|
1491
1494
|
# | `NUMERIC` | `BigDecimal` | `BigDecimal` values will be rounded to scale 9. |
|
1492
|
-
# | `BIGNUMERIC` |
|
1495
|
+
# | `BIGNUMERIC` | `BigDecimal` | NOT AUTOMATIC: Must be mapped using `types`, below.|
|
1493
1496
|
# | `STRING` | `String` | |
|
1494
1497
|
# | `DATETIME` | `DateTime` | `DATETIME` does not support time zone. |
|
1495
1498
|
# | `DATE` | `Date` | |
|
1499
|
+
# | `GEOGRAPHY` | `String` (WKT or GeoJSON) | NOT AUTOMATIC: Must be mapped using `types`, below.|
|
1496
1500
|
# | `TIMESTAMP` | `Time` | |
|
1497
1501
|
# | `TIME` | `Google::Cloud::BigQuery::Time` | |
|
1498
1502
|
# | `BYTES` | `File`, `IO`, `StringIO`, or similar | |
|
@@ -1500,7 +1504,8 @@ module Google
|
|
1500
1504
|
# | `STRUCT` | `Hash` | Hash keys may be strings or symbols. |
|
1501
1505
|
#
|
1502
1506
|
# See [Data Types](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types) for an overview
|
1503
|
-
# of each BigQuery data type, including allowed values.
|
1507
|
+
# of each BigQuery data type, including allowed values. For the `GEOGRAPHY` type, see [Working with BigQuery
|
1508
|
+
# GIS data](https://cloud.google.com/bigquery/docs/gis-data).
|
1504
1509
|
# @param [Array, Hash] types Standard SQL only. Types of the SQL parameters in `params`. It is not always
|
1505
1510
|
# possible to infer the right SQL type from a value in `params`. In these cases, `types` must be used to
|
1506
1511
|
# specify the SQL type for these values.
|
@@ -1517,6 +1522,7 @@ module Google
|
|
1517
1522
|
# * `:STRING`
|
1518
1523
|
# * `:DATETIME`
|
1519
1524
|
# * `:DATE`
|
1525
|
+
# * `:GEOGRAPHY`
|
1520
1526
|
# * `:TIMESTAMP`
|
1521
1527
|
# * `:TIME`
|
1522
1528
|
# * `:BYTES`
|
@@ -2421,6 +2427,7 @@ module Google
|
|
2421
2427
|
# | `BIGNUMERIC` | `String` | Pass as `String` to avoid rounding to scale 9. |
|
2422
2428
|
# | `DATETIME` | `DateTime` | `DATETIME` does not support time zone. |
|
2423
2429
|
# | `DATE` | `Date` | |
|
2430
|
+
# | `GEOGRAPHY` | `String` | |
|
2424
2431
|
# | `TIMESTAMP` | `Time` | |
|
2425
2432
|
# | `TIME` | `Google::Cloud::BigQuery::Time` | |
|
2426
2433
|
# | `BYTES` | `File`, `IO`, `StringIO`, or similar | |
|
@@ -226,6 +226,15 @@ module Google
|
|
226
226
|
Array(@gapi.statistics.reservation_usage).map { |g| ReservationUsage.from_gapi g }
|
227
227
|
end
|
228
228
|
|
229
|
+
##
|
230
|
+
# The ID of a multi-statement transaction.
|
231
|
+
#
|
232
|
+
# @return [String, nil] The transaction ID, or `nil` if not associated with a transaction.
|
233
|
+
#
|
234
|
+
def transaction_id
|
235
|
+
@gapi.statistics.transaction_info&.transaction_id
|
236
|
+
end
|
237
|
+
|
229
238
|
##
|
230
239
|
# The statistics including stack frames for a child job of a script.
|
231
240
|
#
|
@@ -1146,6 +1146,42 @@ module Google
|
|
1146
1146
|
schema.date name, description: description, mode: mode, policy_tags: policy_tags
|
1147
1147
|
end
|
1148
1148
|
|
1149
|
+
##
|
1150
|
+
# Adds a geography field to the schema.
|
1151
|
+
#
|
1152
|
+
# See {Schema#geography}.
|
1153
|
+
#
|
1154
|
+
# @see https://cloud.google.com/bigquery/docs/gis-data Working with BigQuery GIS data
|
1155
|
+
#
|
1156
|
+
# @param [String] name The field name. The name must contain only
|
1157
|
+
# letters (a-z, A-Z), numbers (0-9), or underscores (_), and must
|
1158
|
+
# start with a letter or underscore. The maximum length is 128
|
1159
|
+
# characters.
|
1160
|
+
# @param [String] description A description of the field.
|
1161
|
+
# @param [Symbol] mode The field's mode. The possible values are
|
1162
|
+
# `:nullable`, `:required`, and `:repeated`. The default value is
|
1163
|
+
# `:nullable`.
|
1164
|
+
# @param [Array<String>, String] policy_tags The policy tag list or
|
1165
|
+
# single policy tag for the field. Policy tag identifiers are of
|
1166
|
+
# the form `projects/*/locations/*/taxonomies/*/policyTags/*`.
|
1167
|
+
# At most 1 policy tag is currently allowed.
|
1168
|
+
#
|
1169
|
+
# @example
|
1170
|
+
# require "google/cloud/bigquery"
|
1171
|
+
#
|
1172
|
+
# bigquery = Google::Cloud::Bigquery.new
|
1173
|
+
# dataset = bigquery.dataset "my_dataset"
|
1174
|
+
# job = dataset.load_job "my_table", "gs://abc/file" do |schema|
|
1175
|
+
# schema.record "cities_lived", mode: :repeated do |cities_lived|
|
1176
|
+
# cities_lived.geography "location", mode: :required
|
1177
|
+
# cities_lived.integer "number_of_years", mode: :required
|
1178
|
+
# end
|
1179
|
+
# end
|
1180
|
+
#
|
1181
|
+
def geography name, description: nil, mode: :nullable, policy_tags: nil
|
1182
|
+
schema.geography name, description: description, mode: mode, policy_tags: policy_tags
|
1183
|
+
end
|
1184
|
+
|
1149
1185
|
##
|
1150
1186
|
# Adds a record field to the schema. A block must be passed describing
|
1151
1187
|
# the nested fields of the record. For more information about nested
|
@@ -291,7 +291,7 @@ module Google
|
|
291
291
|
# use named query parameters. When set, `legacy_sql` will automatically be set to false and `standard_sql` to
|
292
292
|
# true.
|
293
293
|
#
|
294
|
-
#
|
294
|
+
# BigQuery types are converted from Ruby types as follows:
|
295
295
|
#
|
296
296
|
# | BigQuery | Ruby | Notes |
|
297
297
|
# |--------------|--------------------------------------|----------------------------------------------------|
|
@@ -299,10 +299,11 @@ module Google
|
|
299
299
|
# | `INT64` | `Integer` | |
|
300
300
|
# | `FLOAT64` | `Float` | |
|
301
301
|
# | `NUMERIC` | `BigDecimal` | `BigDecimal` values will be rounded to scale 9. |
|
302
|
-
# | `BIGNUMERIC` |
|
302
|
+
# | `BIGNUMERIC` | `BigDecimal` | NOT AUTOMATIC: Must be mapped using `types`, below.|
|
303
303
|
# | `STRING` | `String` | |
|
304
304
|
# | `DATETIME` | `DateTime` | `DATETIME` does not support time zone. |
|
305
305
|
# | `DATE` | `Date` | |
|
306
|
+
# | `GEOGRAPHY` | `String` (WKT or GeoJSON) | NOT AUTOMATIC: Must be mapped using `types`, below.|
|
306
307
|
# | `TIMESTAMP` | `Time` | |
|
307
308
|
# | `TIME` | `Google::Cloud::BigQuery::Time` | |
|
308
309
|
# | `BYTES` | `File`, `IO`, `StringIO`, or similar | |
|
@@ -310,7 +311,8 @@ module Google
|
|
310
311
|
# | `STRUCT` | `Hash` | Hash keys may be strings or symbols. |
|
311
312
|
#
|
312
313
|
# See [Data Types](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types) for an overview
|
313
|
-
# of each BigQuery data type, including allowed values.
|
314
|
+
# of each BigQuery data type, including allowed values. For the `GEOGRAPHY` type, see [Working with BigQuery
|
315
|
+
# GIS data](https://cloud.google.com/bigquery/docs/gis-data).
|
314
316
|
# @param [Array, Hash] types Standard SQL only. Types of the SQL parameters in `params`. It is not always
|
315
317
|
# possible to infer the right SQL type from a value in `params`. In these cases, `types` must be used to
|
316
318
|
# specify the SQL type for these values.
|
@@ -327,6 +329,7 @@ module Google
|
|
327
329
|
# * `:STRING`
|
328
330
|
# * `:DATETIME`
|
329
331
|
# * `:DATE`
|
332
|
+
# * `:GEOGRAPHY`
|
330
333
|
# * `:TIMESTAMP`
|
331
334
|
# * `:TIME`
|
332
335
|
# * `:BYTES`
|
@@ -638,7 +641,7 @@ module Google
|
|
638
641
|
# use named query parameters. When set, `legacy_sql` will automatically be set to false and `standard_sql` to
|
639
642
|
# true.
|
640
643
|
#
|
641
|
-
#
|
644
|
+
# BigQuery types are converted from Ruby types as follows:
|
642
645
|
#
|
643
646
|
# | BigQuery | Ruby | Notes |
|
644
647
|
# |--------------|--------------------------------------|----------------------------------------------------|
|
@@ -646,10 +649,11 @@ module Google
|
|
646
649
|
# | `INT64` | `Integer` | |
|
647
650
|
# | `FLOAT64` | `Float` | |
|
648
651
|
# | `NUMERIC` | `BigDecimal` | `BigDecimal` values will be rounded to scale 9. |
|
649
|
-
# | `BIGNUMERIC` |
|
652
|
+
# | `BIGNUMERIC` | `BigDecimal` | NOT AUTOMATIC: Must be mapped using `types`, below.|
|
650
653
|
# | `STRING` | `String` | |
|
651
654
|
# | `DATETIME` | `DateTime` | `DATETIME` does not support time zone. |
|
652
655
|
# | `DATE` | `Date` | |
|
656
|
+
# | `GEOGRAPHY` | `String` (WKT or GeoJSON) | NOT AUTOMATIC: Must be mapped using `types`, below.|
|
653
657
|
# | `TIMESTAMP` | `Time` | |
|
654
658
|
# | `TIME` | `Google::Cloud::BigQuery::Time` | |
|
655
659
|
# | `BYTES` | `File`, `IO`, `StringIO`, or similar | |
|
@@ -657,7 +661,8 @@ module Google
|
|
657
661
|
# | `STRUCT` | `Hash` | Hash keys may be strings or symbols. |
|
658
662
|
#
|
659
663
|
# See [Data Types](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types) for an overview
|
660
|
-
# of each BigQuery data type, including allowed values.
|
664
|
+
# of each BigQuery data type, including allowed values. For the `GEOGRAPHY` type, see [Working with BigQuery
|
665
|
+
# GIS data](https://cloud.google.com/bigquery/docs/gis-data).
|
661
666
|
# @param [Array, Hash] types Standard SQL only. Types of the SQL parameters in `params`. It is not always
|
662
667
|
# possible to infer the right SQL type from a value in `params`. In these cases, `types` must be used to
|
663
668
|
# specify the SQL type for these values.
|
@@ -674,6 +679,7 @@ module Google
|
|
674
679
|
# * `:STRING`
|
675
680
|
# * `:DATETIME`
|
676
681
|
# * `:DATE`
|
682
|
+
# * `:GEOGRAPHY`
|
677
683
|
# * `:TIMESTAMP`
|
678
684
|
# * `:TIME`
|
679
685
|
# * `:BYTES`
|
@@ -891,7 +891,7 @@ module Google
|
|
891
891
|
# use named query parameters. When set, `legacy_sql` will automatically be set to false and `standard_sql`
|
892
892
|
# to true.
|
893
893
|
#
|
894
|
-
#
|
894
|
+
# BigQuery types are converted from Ruby types as follows:
|
895
895
|
#
|
896
896
|
# | BigQuery | Ruby | Notes |
|
897
897
|
# |--------------|--------------------------------------|--------------------------------------------------|
|
@@ -899,10 +899,11 @@ module Google
|
|
899
899
|
# | `INT64` | `Integer` | |
|
900
900
|
# | `FLOAT64` | `Float` | |
|
901
901
|
# | `NUMERIC` | `BigDecimal` | `BigDecimal` values will be rounded to scale 9. |
|
902
|
-
# | `BIGNUMERIC` |
|
902
|
+
# | `BIGNUMERIC` | `BigDecimal` | NOT AUTOMATIC: Must be mapped using `types`. |
|
903
903
|
# | `STRING` | `String` | |
|
904
904
|
# | `DATETIME` | `DateTime` | `DATETIME` does not support time zone. |
|
905
905
|
# | `DATE` | `Date` | |
|
906
|
+
# | `GEOGRAPHY` | `String` (WKT or GeoJSON) | NOT AUTOMATIC: Must be mapped using `types`. |
|
906
907
|
# | `TIMESTAMP` | `Time` | |
|
907
908
|
# | `TIME` | `Google::Cloud::BigQuery::Time` | |
|
908
909
|
# | `BYTES` | `File`, `IO`, `StringIO`, or similar | |
|
@@ -910,7 +911,8 @@ module Google
|
|
910
911
|
# | `STRUCT` | `Hash` | Hash keys may be strings or symbols. |
|
911
912
|
#
|
912
913
|
# See [Data Types](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types) for an overview
|
913
|
-
# of each BigQuery data type, including allowed values.
|
914
|
+
# of each BigQuery data type, including allowed values. For the `GEOGRAPHY` type, see [Working with BigQuery
|
915
|
+
# GIS data](https://cloud.google.com/bigquery/docs/gis-data).
|
914
916
|
#
|
915
917
|
# @!group Attributes
|
916
918
|
def params= params
|
@@ -926,7 +928,7 @@ module Google
|
|
926
928
|
# use named query parameters. When set, `legacy_sql` will automatically be set to false and `standard_sql`
|
927
929
|
# to true.
|
928
930
|
#
|
929
|
-
#
|
931
|
+
# BigQuery types are converted from Ruby types as follows:
|
930
932
|
#
|
931
933
|
# | BigQuery | Ruby | Notes |
|
932
934
|
# |--------------|--------------------------------------|--------------------------------------------------|
|
@@ -934,10 +936,11 @@ module Google
|
|
934
936
|
# | `INT64` | `Integer` | |
|
935
937
|
# | `FLOAT64` | `Float` | |
|
936
938
|
# | `NUMERIC` | `BigDecimal` | `BigDecimal` values will be rounded to scale 9. |
|
937
|
-
# | `BIGNUMERIC` |
|
939
|
+
# | `BIGNUMERIC` | `BigDecimal` | NOT AUTOMATIC: Must be mapped using `types`. |
|
938
940
|
# | `STRING` | `String` | |
|
939
941
|
# | `DATETIME` | `DateTime` | `DATETIME` does not support time zone. |
|
940
942
|
# | `DATE` | `Date` | |
|
943
|
+
# | `GEOGRAPHY` | `String` (WKT or GeoJSON) | NOT AUTOMATIC: Must be mapped using `types`. |
|
941
944
|
# | `TIMESTAMP` | `Time` | |
|
942
945
|
# | `TIME` | `Google::Cloud::BigQuery::Time` | |
|
943
946
|
# | `BYTES` | `File`, `IO`, `StringIO`, or similar | |
|
@@ -945,7 +948,8 @@ module Google
|
|
945
948
|
# | `STRUCT` | `Hash` | Hash keys may be strings or symbols. |
|
946
949
|
#
|
947
950
|
# See [Data Types](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types) for an overview
|
948
|
-
# of each BigQuery data type, including allowed values.
|
951
|
+
# of each BigQuery data type, including allowed values. For the `GEOGRAPHY` type, see [Working with BigQuery
|
952
|
+
# GIS data](https://cloud.google.com/bigquery/docs/gis-data).
|
949
953
|
# @param [Array, Hash] types Standard SQL only. Types of the SQL parameters in `params`. It is not always
|
950
954
|
# possible to infer the right SQL type from a value in `params`. In these cases, `types` must be used to
|
951
955
|
# specify the SQL type for these values.
|
@@ -962,6 +966,7 @@ module Google
|
|
962
966
|
# * `:STRING`
|
963
967
|
# * `:DATETIME`
|
964
968
|
# * `:DATE`
|
969
|
+
# * `:GEOGRAPHY`
|
965
970
|
# * `:TIMESTAMP`
|
966
971
|
# * `:TIME`
|
967
972
|
# * `:BYTES`
|
@@ -566,6 +566,28 @@ module Google
|
|
566
566
|
add_field name, :date, description: description, mode: mode, policy_tags: policy_tags
|
567
567
|
end
|
568
568
|
|
569
|
+
##
|
570
|
+
# Adds a geography field to the schema.
|
571
|
+
#
|
572
|
+
# @see https://cloud.google.com/bigquery/docs/gis-data Working with BigQuery GIS data
|
573
|
+
#
|
574
|
+
# @param [String] name The field name. The name must contain only
|
575
|
+
# letters (a-z, A-Z), numbers (0-9), or underscores (_), and must
|
576
|
+
# start with a letter or underscore. The maximum length is 128
|
577
|
+
# characters.
|
578
|
+
# @param [String] description A description of the field.
|
579
|
+
# @param [Symbol] mode The field's mode. The possible values are
|
580
|
+
# `:nullable`, `:required`, and `:repeated`. The default value is
|
581
|
+
# `:nullable`.
|
582
|
+
# @param [Array<String>, String] policy_tags The policy tag list or
|
583
|
+
# single policy tag for the field. Policy tag identifiers are of
|
584
|
+
# the form `projects/*/locations/*/taxonomies/*/policyTags/*`.
|
585
|
+
# At most 1 policy tag is currently allowed.
|
586
|
+
#
|
587
|
+
def geography name, description: nil, mode: :nullable, policy_tags: nil
|
588
|
+
add_field name, :geography, description: description, mode: mode, policy_tags: policy_tags
|
589
|
+
end
|
590
|
+
|
569
591
|
##
|
570
592
|
# Adds a record field to the schema. A block must be passed describing
|
571
593
|
# the nested fields of the record. For more information about nested
|
@@ -40,8 +40,25 @@ module Google
|
|
40
40
|
MODES = ["NULLABLE", "REQUIRED", "REPEATED"].freeze
|
41
41
|
|
42
42
|
# @private
|
43
|
-
TYPES = [
|
44
|
-
|
43
|
+
TYPES = [
|
44
|
+
"BIGNUMERIC",
|
45
|
+
"BOOL",
|
46
|
+
"BOOLEAN",
|
47
|
+
"BYTES",
|
48
|
+
"DATE",
|
49
|
+
"DATETIME",
|
50
|
+
"FLOAT",
|
51
|
+
"FLOAT64",
|
52
|
+
"GEOGRAPHY",
|
53
|
+
"INTEGER",
|
54
|
+
"INT64",
|
55
|
+
"NUMERIC",
|
56
|
+
"RECORD",
|
57
|
+
"STRING",
|
58
|
+
"STRUCT",
|
59
|
+
"TIME",
|
60
|
+
"TIMESTAMP"
|
61
|
+
].freeze
|
45
62
|
|
46
63
|
##
|
47
64
|
# The name of the field.
|
@@ -70,12 +87,25 @@ module Google
|
|
70
87
|
##
|
71
88
|
# The data type of the field.
|
72
89
|
#
|
73
|
-
# @return [String] The field data type. Possible values include
|
74
|
-
#
|
75
|
-
#
|
76
|
-
#
|
77
|
-
#
|
78
|
-
#
|
90
|
+
# @return [String] The field data type. Possible values include:
|
91
|
+
#
|
92
|
+
# * `BIGNUMERIC`
|
93
|
+
# * `BOOL`
|
94
|
+
# * `BOOLEAN` (same as `BOOL`)
|
95
|
+
# * `BYTES`
|
96
|
+
# * `DATE`
|
97
|
+
# * `DATETIME`
|
98
|
+
# * `FLOAT`
|
99
|
+
# * `FLOAT64` (same as `FLOAT`)
|
100
|
+
# * `GEOGRAPHY`
|
101
|
+
# * `INTEGER`
|
102
|
+
# * `INT64` (same as `INTEGER`)
|
103
|
+
# * `NUMERIC`
|
104
|
+
# * `RECORD` (where `RECORD` indicates that the field contains a nested schema)
|
105
|
+
# * `STRING`
|
106
|
+
# * `STRUCT` (same as `RECORD`)
|
107
|
+
# * `TIME`
|
108
|
+
# * `TIMESTAMP`
|
79
109
|
#
|
80
110
|
def type
|
81
111
|
@gapi.type
|
@@ -84,12 +114,25 @@ module Google
|
|
84
114
|
##
|
85
115
|
# Updates the data type of the field.
|
86
116
|
#
|
87
|
-
# @param [String] new_type The data type. Possible values include
|
88
|
-
#
|
89
|
-
#
|
90
|
-
#
|
91
|
-
#
|
92
|
-
#
|
117
|
+
# @param [String] new_type The data type. Possible values include:
|
118
|
+
#
|
119
|
+
# * `BIGNUMERIC`
|
120
|
+
# * `BOOL`
|
121
|
+
# * `BOOLEAN` (same as `BOOL`)
|
122
|
+
# * `BYTES`
|
123
|
+
# * `DATE`
|
124
|
+
# * `DATETIME`
|
125
|
+
# * `FLOAT`
|
126
|
+
# * `FLOAT64` (same as `FLOAT`)
|
127
|
+
# * `GEOGRAPHY`
|
128
|
+
# * `INTEGER`
|
129
|
+
# * `INT64` (same as `INTEGER`)
|
130
|
+
# * `NUMERIC`
|
131
|
+
# * `RECORD` (where `RECORD` indicates that the field contains a nested schema)
|
132
|
+
# * `STRING`
|
133
|
+
# * `STRUCT` (same as `RECORD`)
|
134
|
+
# * `TIME`
|
135
|
+
# * `TIMESTAMP`
|
93
136
|
#
|
94
137
|
def type= new_type
|
95
138
|
@gapi.update! type: verify_type(new_type)
|
@@ -357,6 +400,15 @@ module Google
|
|
357
400
|
type == "DATE"
|
358
401
|
end
|
359
402
|
|
403
|
+
##
|
404
|
+
# Checks if the type of the field is `GEOGRAPHY`.
|
405
|
+
#
|
406
|
+
# @return [Boolean] `true` when `GEOGRAPHY`, `false` otherwise.
|
407
|
+
#
|
408
|
+
def geography?
|
409
|
+
type == "GEOGRAPHY"
|
410
|
+
end
|
411
|
+
|
360
412
|
##
|
361
413
|
# Checks if the type of the field is `RECORD`.
|
362
414
|
#
|
@@ -770,6 +822,30 @@ module Google
|
|
770
822
|
add_field name, :date, description: description, mode: mode, policy_tags: policy_tags
|
771
823
|
end
|
772
824
|
|
825
|
+
##
|
826
|
+
# Adds a geography field to the nested schema of a record field.
|
827
|
+
#
|
828
|
+
# @see https://cloud.google.com/bigquery/docs/gis-data Working with BigQuery GIS data
|
829
|
+
#
|
830
|
+
# @param [String] name The field name. The name must contain only
|
831
|
+
# letters (a-z, A-Z), numbers (0-9), or underscores (_), and must
|
832
|
+
# start with a letter or underscore. The maximum length is 128
|
833
|
+
# characters.
|
834
|
+
# @param [String] description A description of the field.
|
835
|
+
# @param [Symbol] mode The field's mode. The possible values are
|
836
|
+
# `:nullable`, `:required`, and `:repeated`. The default value is
|
837
|
+
# `:nullable`.
|
838
|
+
# @param [Array<String>, String] policy_tags The policy tag list or
|
839
|
+
# single policy tag for the field. Policy tag identifiers are of
|
840
|
+
# the form `projects/*/locations/*/taxonomies/*/policyTags/*`.
|
841
|
+
# At most 1 policy tag is currently allowed.
|
842
|
+
#
|
843
|
+
def geography name, description: nil, mode: :nullable, policy_tags: nil
|
844
|
+
record_check!
|
845
|
+
|
846
|
+
add_field name, :geography, description: description, mode: mode, policy_tags: policy_tags
|
847
|
+
end
|
848
|
+
|
773
849
|
##
|
774
850
|
# Adds a record field to the nested schema of a record field. A block
|
775
851
|
# must be passed describing the nested fields of the record. For more
|
@@ -2369,12 +2369,15 @@ module Google
|
|
2369
2369
|
# | `BIGNUMERIC` | `String` | Pass as `String` to avoid rounding to scale 9. |
|
2370
2370
|
# | `DATETIME` | `DateTime` | `DATETIME` does not support time zone. |
|
2371
2371
|
# | `DATE` | `Date` | |
|
2372
|
+
# | `GEOGRAPHY` | `String` | Well-known text (WKT) or GeoJSON. |
|
2372
2373
|
# | `TIMESTAMP` | `Time` | |
|
2373
2374
|
# | `TIME` | `Google::Cloud::BigQuery::Time` | |
|
2374
2375
|
# | `BYTES` | `File`, `IO`, `StringIO`, or similar | |
|
2375
2376
|
# | `ARRAY` | `Array` | Nested arrays, `nil` values are not supported. |
|
2376
2377
|
# | `STRUCT` | `Hash` | Hash keys may be strings or symbols. |
|
2377
2378
|
#
|
2379
|
+
# For `GEOGRAPHY` data, see [Working with BigQuery GIS data](https://cloud.google.com/bigquery/docs/gis-data).
|
2380
|
+
#
|
2378
2381
|
# Because BigQuery's streaming API is designed for high insertion rates,
|
2379
2382
|
# modifications to the underlying table metadata are eventually
|
2380
2383
|
# consistent when interacting with the streaming system. In most cases
|
@@ -3633,6 +3636,37 @@ module Google
|
|
3633
3636
|
schema.date name, description: description, mode: mode, policy_tags: policy_tags
|
3634
3637
|
end
|
3635
3638
|
|
3639
|
+
##
|
3640
|
+
# Adds a geography field to the schema.
|
3641
|
+
#
|
3642
|
+
# @see https://cloud.google.com/bigquery/docs/gis-data Working with BigQuery GIS data
|
3643
|
+
#
|
3644
|
+
# @param [String] name The field name. The name must contain only
|
3645
|
+
# letters (a-z, A-Z), numbers (0-9), or underscores (_), and must
|
3646
|
+
# start with a letter or underscore. The maximum length is 128
|
3647
|
+
# characters.
|
3648
|
+
# @param [String] description A description of the field.
|
3649
|
+
# @param [Symbol] mode The field's mode. The possible values are
|
3650
|
+
# `:nullable`, `:required`, and `:repeated`. The default value is
|
3651
|
+
# `:nullable`.
|
3652
|
+
# @param [Array<String>, String] policy_tags The policy tag list or
|
3653
|
+
# single policy tag for the field. Policy tag identifiers are of
|
3654
|
+
# the form `projects/*/locations/*/taxonomies/*/policyTags/*`.
|
3655
|
+
# At most 1 policy tag is currently allowed.
|
3656
|
+
#
|
3657
|
+
# @example
|
3658
|
+
# require "google/cloud/bigquery"
|
3659
|
+
#
|
3660
|
+
# bigquery = Google::Cloud::Bigquery.new
|
3661
|
+
# dataset = bigquery.dataset "my_dataset"
|
3662
|
+
# table = dataset.create_table "my_table" do |schema|
|
3663
|
+
# schema.geography "home", mode: :required
|
3664
|
+
# end
|
3665
|
+
#
|
3666
|
+
def geography name, description: nil, mode: :nullable, policy_tags: nil
|
3667
|
+
schema.geography name, description: description, mode: mode, policy_tags: policy_tags
|
3668
|
+
end
|
3669
|
+
|
3636
3670
|
##
|
3637
3671
|
# Adds a record field to the schema. A block must be passed describing
|
3638
3672
|
# the nested fields of the record. For more information about nested
|
@@ -110,6 +110,7 @@ module Google
|
|
110
110
|
# | `BIGNUMERIC` | `String` | Pass as `String` to avoid rounding to scale 9. |
|
111
111
|
# | `DATETIME` | `DateTime` | `DATETIME` does not support time zone. |
|
112
112
|
# | `DATE` | `Date` | |
|
113
|
+
# | `GEOGRAPHY` | `String` | |
|
113
114
|
# | `TIMESTAMP` | `Time` | |
|
114
115
|
# | `TIME` | `Google::Cloud::BigQuery::Time` | |
|
115
116
|
# | `BYTES` | `File`, `IO`, `StringIO`, or similar | |
|
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
|
+
version: 1.35.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: 2021-
|
12
|
+
date: 2021-08-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: concurrent-ruby
|