google-cloud-bigquery 1.18.1 → 1.19.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 +15 -0
- data/lib/google/cloud/bigquery/argument.rb +197 -0
- data/lib/google/cloud/bigquery/copy_job.rb +18 -1
- data/lib/google/cloud/bigquery/data.rb +15 -0
- data/lib/google/cloud/bigquery/dataset.rb +321 -41
- data/lib/google/cloud/bigquery/dataset/list.rb +1 -2
- data/lib/google/cloud/bigquery/extract_job.rb +19 -2
- data/lib/google/cloud/bigquery/job/list.rb +5 -5
- data/lib/google/cloud/bigquery/load_job.rb +17 -0
- data/lib/google/cloud/bigquery/model.rb +6 -4
- data/lib/google/cloud/bigquery/project.rb +4 -6
- data/lib/google/cloud/bigquery/project/list.rb +1 -2
- data/lib/google/cloud/bigquery/query_job.rb +33 -0
- data/lib/google/cloud/bigquery/routine.rb +1108 -0
- data/lib/google/cloud/bigquery/routine/list.rb +165 -0
- data/lib/google/cloud/bigquery/service.rb +93 -38
- data/lib/google/cloud/bigquery/standard_sql.rb +257 -53
- data/lib/google/cloud/bigquery/table.rb +109 -16
- data/lib/google/cloud/bigquery/table/async_inserter.rb +18 -8
- data/lib/google/cloud/bigquery/table/list.rb +1 -2
- data/lib/google/cloud/bigquery/version.rb +1 -1
- metadata +5 -2
@@ -1217,8 +1217,7 @@ module Google
|
|
1217
1217
|
def data token: nil, max: nil, start: nil
|
1218
1218
|
ensure_service!
|
1219
1219
|
reload! unless resource_full?
|
1220
|
-
|
1221
|
-
data_json = service.list_tabledata dataset_id, table_id, options
|
1220
|
+
data_json = service.list_tabledata dataset_id, table_id, token: token, max: max, start: start
|
1222
1221
|
Data.from_gapi_json data_json, gapi, nil, service
|
1223
1222
|
end
|
1224
1223
|
|
@@ -1978,12 +1977,13 @@ module Google
|
|
1978
1977
|
#
|
1979
1978
|
# @param [Hash, Array<Hash>] rows A hash object or array of hash objects
|
1980
1979
|
# containing the data. Required.
|
1981
|
-
# @param [Array<String
|
1982
|
-
#
|
1983
|
-
#
|
1984
|
-
#
|
1985
|
-
#
|
1986
|
-
#
|
1980
|
+
# @param [Array<String|Symbol>, Symbol] insert_ids A unique ID for each row. BigQuery uses this property to
|
1981
|
+
# detect duplicate insertion requests on a best-effort basis. For more information, see [data
|
1982
|
+
# consistency](https://cloud.google.com/bigquery/streaming-data-into-bigquery#dataconsistency). Optional. If
|
1983
|
+
# not provided, the client library will assign a UUID to each row before the request is sent.
|
1984
|
+
#
|
1985
|
+
# The value `:skip` can be provided to skip the generation of IDs for all rows, or to skip the generation of an
|
1986
|
+
# ID for a specific row in the array.
|
1987
1987
|
# @param [Boolean] skip_invalid Insert all valid rows of a request, even
|
1988
1988
|
# if invalid rows exist. The default value is `false`, which causes
|
1989
1989
|
# the entire request to fail if any invalid rows exist.
|
@@ -2023,12 +2023,14 @@ module Google
|
|
2023
2023
|
#
|
2024
2024
|
def insert rows, insert_ids: nil, skip_invalid: nil, ignore_unknown: nil
|
2025
2025
|
rows = [rows] if rows.is_a? Hash
|
2026
|
+
raise ArgumentError, "No rows provided" if rows.empty?
|
2027
|
+
|
2028
|
+
insert_ids = Array.new(rows.count) { :skip } if insert_ids == :skip
|
2026
2029
|
insert_ids = Array insert_ids
|
2027
2030
|
if insert_ids.count.positive? && insert_ids.count != rows.count
|
2028
2031
|
raise ArgumentError, "insert_ids must be the same size as rows"
|
2029
2032
|
end
|
2030
|
-
|
2031
|
-
raise ArgumentError, "No rows provided" if rows.empty?
|
2033
|
+
|
2032
2034
|
ensure_service!
|
2033
2035
|
options = { skip_invalid: skip_invalid, ignore_unknown: ignore_unknown, insert_ids: insert_ids }
|
2034
2036
|
gapi = service.insert_tabledata dataset_id, table_id, rows, options
|
@@ -2162,7 +2164,7 @@ module Google
|
|
2162
2164
|
# table = dataset.table "my_table", skip_lookup: true
|
2163
2165
|
# table.exists? # true
|
2164
2166
|
#
|
2165
|
-
def exists? force:
|
2167
|
+
def exists? force: false
|
2166
2168
|
return gapi_exists? if force
|
2167
2169
|
# If we have a value, return it
|
2168
2170
|
return @exists unless @exists.nil?
|
@@ -2276,7 +2278,7 @@ module Google
|
|
2276
2278
|
end
|
2277
2279
|
|
2278
2280
|
##
|
2279
|
-
# @private New lazy Table object without making an HTTP request.
|
2281
|
+
# @private New lazy Table object without making an HTTP request, for use with the skip_lookup option.
|
2280
2282
|
def self.new_reference project_id, dataset_id, table_id, service
|
2281
2283
|
raise ArgumentError, "dataset_id is required" unless dataset_id
|
2282
2284
|
raise ArgumentError, "table_id is required" unless table_id
|
@@ -2505,14 +2507,14 @@ module Google
|
|
2505
2507
|
end
|
2506
2508
|
|
2507
2509
|
##
|
2508
|
-
# Yielded to a block to accumulate changes for a
|
2510
|
+
# Yielded to a block to accumulate changes for a create request. See {Dataset#create_table}.
|
2509
2511
|
class Updater < Table
|
2510
2512
|
##
|
2511
|
-
# A list of attributes that were updated.
|
2513
|
+
# @private A list of attributes that were updated.
|
2512
2514
|
attr_reader :updates
|
2513
2515
|
|
2514
2516
|
##
|
2515
|
-
# Create an Updater object.
|
2517
|
+
# @private Create an Updater object.
|
2516
2518
|
def initialize gapi
|
2517
2519
|
@updates = []
|
2518
2520
|
@gapi = gapi
|
@@ -2955,8 +2957,97 @@ module Google
|
|
2955
2957
|
schema.record name, description: description, mode: mode, &block
|
2956
2958
|
end
|
2957
2959
|
|
2960
|
+
# rubocop:disable Style/MethodDefParentheses
|
2961
|
+
|
2962
|
+
##
|
2963
|
+
# @raise [RuntimeError] not implemented
|
2964
|
+
def data(*)
|
2965
|
+
raise "not implemented in #{self.class}"
|
2966
|
+
end
|
2967
|
+
|
2968
|
+
##
|
2969
|
+
# @raise [RuntimeError] not implemented
|
2970
|
+
def copy_job(*)
|
2971
|
+
raise "not implemented in #{self.class}"
|
2972
|
+
end
|
2973
|
+
|
2958
2974
|
##
|
2959
|
-
#
|
2975
|
+
# @raise [RuntimeError] not implemented
|
2976
|
+
def copy(*)
|
2977
|
+
raise "not implemented in #{self.class}"
|
2978
|
+
end
|
2979
|
+
|
2980
|
+
##
|
2981
|
+
# @raise [RuntimeError] not implemented
|
2982
|
+
def extract_job(*)
|
2983
|
+
raise "not implemented in #{self.class}"
|
2984
|
+
end
|
2985
|
+
|
2986
|
+
##
|
2987
|
+
# @raise [RuntimeError] not implemented
|
2988
|
+
def extract(*)
|
2989
|
+
raise "not implemented in #{self.class}"
|
2990
|
+
end
|
2991
|
+
|
2992
|
+
##
|
2993
|
+
# @raise [RuntimeError] not implemented
|
2994
|
+
def load_job(*)
|
2995
|
+
raise "not implemented in #{self.class}"
|
2996
|
+
end
|
2997
|
+
|
2998
|
+
##
|
2999
|
+
# @raise [RuntimeError] not implemented
|
3000
|
+
def load(*)
|
3001
|
+
raise "not implemented in #{self.class}"
|
3002
|
+
end
|
3003
|
+
|
3004
|
+
##
|
3005
|
+
# @raise [RuntimeError] not implemented
|
3006
|
+
def insert(*)
|
3007
|
+
raise "not implemented in #{self.class}"
|
3008
|
+
end
|
3009
|
+
|
3010
|
+
##
|
3011
|
+
# @raise [RuntimeError] not implemented
|
3012
|
+
def insert_async(*)
|
3013
|
+
raise "not implemented in #{self.class}"
|
3014
|
+
end
|
3015
|
+
|
3016
|
+
##
|
3017
|
+
# @raise [RuntimeError] not implemented
|
3018
|
+
def delete
|
3019
|
+
raise "not implemented in #{self.class}"
|
3020
|
+
end
|
3021
|
+
|
3022
|
+
##
|
3023
|
+
# @raise [RuntimeError] not implemented
|
3024
|
+
def query_job(*)
|
3025
|
+
raise "not implemented in #{self.class}"
|
3026
|
+
end
|
3027
|
+
|
3028
|
+
##
|
3029
|
+
# @raise [RuntimeError] not implemented
|
3030
|
+
def query(*)
|
3031
|
+
raise "not implemented in #{self.class}"
|
3032
|
+
end
|
3033
|
+
|
3034
|
+
##
|
3035
|
+
# @raise [RuntimeError] not implemented
|
3036
|
+
def external(*)
|
3037
|
+
raise "not implemented in #{self.class}"
|
3038
|
+
end
|
3039
|
+
|
3040
|
+
##
|
3041
|
+
# @raise [RuntimeError] not implemented
|
3042
|
+
def reload!
|
3043
|
+
raise "not implemented in #{self.class}"
|
3044
|
+
end
|
3045
|
+
alias refresh! reload!
|
3046
|
+
|
3047
|
+
# rubocop:enable Style/MethodDefParentheses
|
3048
|
+
|
3049
|
+
##
|
3050
|
+
# @private Make sure any access changes are saved
|
2960
3051
|
def check_for_mutated_schema!
|
2961
3052
|
return if @schema.nil?
|
2962
3053
|
return unless @schema.changed?
|
@@ -2964,6 +3055,8 @@ module Google
|
|
2964
3055
|
patch_gapi! :schema
|
2965
3056
|
end
|
2966
3057
|
|
3058
|
+
##
|
3059
|
+
# @private
|
2967
3060
|
def to_gapi
|
2968
3061
|
check_for_mutated_schema!
|
2969
3062
|
@gapi
|
@@ -113,12 +113,13 @@ module Google
|
|
113
113
|
#
|
114
114
|
# @param [Hash, Array<Hash>] rows A hash object or array of hash
|
115
115
|
# objects containing the data.
|
116
|
-
# @param [Array<String
|
117
|
-
#
|
118
|
-
#
|
119
|
-
#
|
120
|
-
#
|
121
|
-
#
|
116
|
+
# @param [Array<String|Symbol>, Symbol] insert_ids A unique ID for each row. BigQuery uses this property to
|
117
|
+
# detect duplicate insertion requests on a best-effort basis. For more information, see [data
|
118
|
+
# consistency](https://cloud.google.com/bigquery/streaming-data-into-bigquery#dataconsistency). Optional. If
|
119
|
+
# not provided, the client library will assign a UUID to each row before the request is sent.
|
120
|
+
#
|
121
|
+
# The value `:skip` can be provided to skip the generation of IDs for all rows, or to skip the generation of
|
122
|
+
# an ID for a specific row in the array.
|
122
123
|
#
|
123
124
|
def insert rows, insert_ids: nil
|
124
125
|
return nil if rows.nil?
|
@@ -224,10 +225,14 @@ module Google
|
|
224
225
|
|
225
226
|
def validate_insert_args rows, insert_ids
|
226
227
|
rows = [rows] if rows.is_a? Hash
|
228
|
+
raise ArgumentError, "No rows provided" if rows.empty?
|
229
|
+
|
230
|
+
insert_ids = Array.new(rows.count) { :skip } if insert_ids == :skip
|
227
231
|
insert_ids = Array insert_ids
|
228
232
|
if insert_ids.count.positive? && insert_ids.count != rows.count
|
229
233
|
raise ArgumentError, "insert_ids must be the same size as rows"
|
230
234
|
end
|
235
|
+
|
231
236
|
[rows, insert_ids]
|
232
237
|
end
|
233
238
|
|
@@ -332,8 +337,13 @@ module Google
|
|
332
337
|
end
|
333
338
|
|
334
339
|
def addl_bytes_for json_row, insert_id
|
335
|
-
|
336
|
-
|
340
|
+
if insert_id == :skip
|
341
|
+
# "{\"json\":},".bytesize #=> 10
|
342
|
+
10 + json_row.to_json.bytesize
|
343
|
+
else
|
344
|
+
# "{\"insertId\":\"\",\"json\":},".bytesize #=> 24
|
345
|
+
24 + json_row.to_json.bytesize + insert_id.bytesize
|
346
|
+
end
|
337
347
|
end
|
338
348
|
end
|
339
349
|
|
@@ -78,8 +78,7 @@ module Google
|
|
78
78
|
def next
|
79
79
|
return nil unless next?
|
80
80
|
ensure_service!
|
81
|
-
|
82
|
-
gapi = @service.list_tables @dataset_id, options
|
81
|
+
gapi = @service.list_tables @dataset_id, token: token, max: @max
|
83
82
|
self.class.from_gapi gapi, @service, @dataset_id, @max
|
84
83
|
end
|
85
84
|
|
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.19.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:
|
12
|
+
date: 2020-02-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: concurrent-ruby
|
@@ -240,6 +240,7 @@ files:
|
|
240
240
|
- TROUBLESHOOTING.md
|
241
241
|
- lib/google-cloud-bigquery.rb
|
242
242
|
- lib/google/cloud/bigquery.rb
|
243
|
+
- lib/google/cloud/bigquery/argument.rb
|
243
244
|
- lib/google/cloud/bigquery/convert.rb
|
244
245
|
- lib/google/cloud/bigquery/copy_job.rb
|
245
246
|
- lib/google/cloud/bigquery/credentials.rb
|
@@ -259,6 +260,8 @@ files:
|
|
259
260
|
- lib/google/cloud/bigquery/project.rb
|
260
261
|
- lib/google/cloud/bigquery/project/list.rb
|
261
262
|
- lib/google/cloud/bigquery/query_job.rb
|
263
|
+
- lib/google/cloud/bigquery/routine.rb
|
264
|
+
- lib/google/cloud/bigquery/routine/list.rb
|
262
265
|
- lib/google/cloud/bigquery/schema.rb
|
263
266
|
- lib/google/cloud/bigquery/schema/field.rb
|
264
267
|
- lib/google/cloud/bigquery/service.rb
|