google-cloud-spanner 1.7.2 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/lib/google/cloud/spanner.rb +11 -7
  4. data/lib/google/cloud/spanner/admin/database.rb +1 -1
  5. data/lib/google/cloud/spanner/admin/database/v1.rb +1 -1
  6. data/lib/google/cloud/spanner/admin/database/v1/credentials.rb +1 -1
  7. data/lib/google/cloud/spanner/admin/database/v1/database_admin_client.rb +1 -1
  8. data/lib/google/cloud/spanner/admin/database/v1/doc/google/iam/v1/iam_policy.rb +1 -1
  9. data/lib/google/cloud/spanner/admin/database/v1/doc/google/iam/v1/policy.rb +1 -25
  10. data/lib/google/cloud/spanner/admin/database/v1/doc/google/longrunning/operations.rb +1 -43
  11. data/lib/google/cloud/spanner/admin/database/v1/doc/google/protobuf/any.rb +1 -1
  12. data/lib/google/cloud/spanner/admin/database/v1/doc/google/protobuf/empty.rb +1 -1
  13. data/lib/google/cloud/spanner/admin/database/v1/doc/google/rpc/status.rb +1 -1
  14. data/lib/google/cloud/spanner/admin/database/v1/doc/google/spanner/admin/database/v1/spanner_database_admin.rb +1 -1
  15. data/lib/google/cloud/spanner/admin/instance.rb +1 -1
  16. data/lib/google/cloud/spanner/admin/instance/v1.rb +1 -1
  17. data/lib/google/cloud/spanner/admin/instance/v1/credentials.rb +1 -1
  18. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/iam/v1/iam_policy.rb +1 -1
  19. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/iam/v1/policy.rb +1 -25
  20. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/longrunning/operations.rb +1 -43
  21. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/protobuf/any.rb +1 -1
  22. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/protobuf/empty.rb +1 -1
  23. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/protobuf/field_mask.rb +1 -1
  24. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/rpc/status.rb +1 -1
  25. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/spanner/admin/instance/v1/spanner_instance_admin.rb +1 -1
  26. data/lib/google/cloud/spanner/admin/instance/v1/instance_admin_client.rb +1 -1
  27. data/lib/google/cloud/spanner/data.rb +30 -17
  28. data/lib/google/cloud/spanner/fields.rb +1 -1
  29. data/lib/google/cloud/spanner/pool.rb +21 -16
  30. data/lib/google/cloud/spanner/v1/credentials.rb +1 -1
  31. data/lib/google/cloud/spanner/v1/doc/google/protobuf/duration.rb +1 -1
  32. data/lib/google/cloud/spanner/v1/doc/google/protobuf/empty.rb +1 -1
  33. data/lib/google/cloud/spanner/v1/doc/google/protobuf/struct.rb +1 -1
  34. data/lib/google/cloud/spanner/v1/doc/google/protobuf/timestamp.rb +1 -1
  35. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/keys.rb +1 -1
  36. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/mutation.rb +1 -1
  37. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/query_plan.rb +1 -1
  38. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/result_set.rb +1 -1
  39. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/spanner.rb +1 -1
  40. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/transaction.rb +1 -1
  41. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/type.rb +1 -1
  42. data/lib/google/cloud/spanner/v1/spanner_client.rb +1 -1
  43. data/lib/google/cloud/spanner/v1/spanner_client_config.json +11 -2
  44. data/lib/google/cloud/spanner/version.rb +1 -1
  45. metadata +5 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 15d57ada0e3007992485aaf3e030d8880b38a21e19cffb15bbef113d1576709c
4
- data.tar.gz: 01e69e24b387bb55d6d380593f23cc670a111c62a52a421782168e1eca37ffa7
3
+ metadata.gz: 9cdc8609a61a6ce46864733a2c198de769dd2f3beda97aafc6d9b773a50a5ea2
4
+ data.tar.gz: c53ef071e5d935771a703c1fea673f061244d78a9d944947d710b9a4331c0893
5
5
  SHA512:
6
- metadata.gz: 03b6fc2a83121ae9732e9752230389dc6f8584b446080a96b4b51a826485183d119f47e3cbf0508b47a17b414f46a4a7f23ed6e53ea857abd5bbd61a6747ce56
7
- data.tar.gz: 6cf0d82d24121e6d260064b0a56738b168d793bd9a7fb8d93fc74e7e010fc9720a0aa71dd552c54f29171eb37208d97efe04dd371ceeb4da9dbda5eec5a44267
6
+ metadata.gz: c71857ed1ccaef1df8e6371614819a0b83692e3479c48db6f8513604498fd3e301253ecc75a94bc522810364def32ceb75685c1e8b738b4e6dad2869cd308a3f
7
+ data.tar.gz: 499025a401168ebd81e4e557a1be5c958d2e3bebf987af38689bf82728dbab552fa207535ca6e539434277f62eaf93cdc08b0f19958d1a4ed440ce3f5eb65342
data/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Release History
2
2
 
3
+ ### 1.8.0 / 2019-02-01
4
+
5
+ * Make use of Credentials#project_id
6
+ * Use Credentials#project_id
7
+ If a project_id is not provided, use the value on the Credentials object.
8
+ This value was added in googleauth 0.7.0.
9
+ * Loosen googleauth dependency
10
+ Allow for new releases up to 0.10.
11
+ The googleauth devs have committed to maintanining the current API
12
+ and will not make backwards compatible changes before 0.10.
13
+ * Performance improvements for Data#to_h
14
+ * Add Data skip_dup_check optional arg
15
+ * This enhancement allows users to skip the dupplicate name check
16
+ when serializing Data to a Ruby Hash or Array.
17
+ This speeds up the serialization, but data may be lost.
18
+ * Update network configuration
19
+ * Update Client#close to block on session release
20
+
3
21
  ### 1.7.2 / 2018-11-15
4
22
 
5
23
  * Allow Spanner streams to recover from more errors.
@@ -72,18 +72,22 @@ module Google
72
72
  #
73
73
  def self.new project_id: nil, credentials: nil, scope: nil, timeout: nil,
74
74
  client_config: nil, project: nil, keyfile: nil
75
- project_id ||= (project || default_project_id)
76
- project_id = project_id.to_s # Always cast to a string
77
- raise ArgumentError, "project_id is missing" if project_id.empty?
78
-
79
- scope ||= configure.scope
80
- timeout ||= configure.timeout
75
+ project_id ||= (project || default_project_id)
76
+ scope ||= configure.scope
77
+ timeout ||= configure.timeout
81
78
  client_config ||= configure.client_config
82
- credentials ||= (keyfile || default_credentials(scope: scope))
79
+ credentials ||= (keyfile || default_credentials(scope: scope))
80
+
83
81
  unless credentials.is_a? Google::Auth::Credentials
84
82
  credentials = Spanner::Credentials.new credentials, scope: scope
85
83
  end
86
84
 
85
+ if credentials.respond_to? :project_id
86
+ project_id ||= credentials.project_id
87
+ end
88
+ project_id = project_id.to_s # Always cast to a string
89
+ raise ArgumentError, "project_id is missing" if project_id.empty?
90
+
87
91
  Spanner::Project.new(
88
92
  Spanner::Service.new(
89
93
  project_id, credentials, timeout: timeout,
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -99,30 +99,6 @@ module Google
99
99
  # * `domain:{domain}`: A Google Apps domain name that represents all the
100
100
  # users of that domain. For example, `google.com` or `example.com`.
101
101
  class Binding; end
102
-
103
- # The difference delta between two policies.
104
- # @!attribute [rw] binding_deltas
105
- # @return [Array<Google::Iam::V1::BindingDelta>]
106
- # The delta for Bindings between two policies.
107
- class PolicyDelta; end
108
-
109
- # One delta entry for Binding. Each individual change (only one member in each
110
- # entry) to a binding will be a separate entry.
111
- # @!attribute [rw] action
112
- # @return [Google::Iam::V1::BindingDelta::Action]
113
- # The action that was performed on a Binding.
114
- # Required
115
- # @!attribute [rw] role
116
- # @return [String]
117
- # Role that is assigned to `members`.
118
- # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
119
- # Required
120
- # @!attribute [rw] member
121
- # @return [String]
122
- # A single identity requesting access for a Cloud Platform resource.
123
- # Follows the same format of Binding.members.
124
- # Required
125
- class BindingDelta; end
126
102
  end
127
103
  end
128
104
  end
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -47,47 +47,5 @@ module Google
47
47
  # is `TakeSnapshot()`, the inferred response type is
48
48
  # `TakeSnapshotResponse`.
49
49
  class Operation; end
50
-
51
- # The request message for {Google::Longrunning::Operations::GetOperation Operations::GetOperation}.
52
- # @!attribute [rw] name
53
- # @return [String]
54
- # The name of the operation resource.
55
- class GetOperationRequest; end
56
-
57
- # The request message for {Google::Longrunning::Operations::ListOperations Operations::ListOperations}.
58
- # @!attribute [rw] name
59
- # @return [String]
60
- # The name of the operation collection.
61
- # @!attribute [rw] filter
62
- # @return [String]
63
- # The standard list filter.
64
- # @!attribute [rw] page_size
65
- # @return [Integer]
66
- # The standard list page size.
67
- # @!attribute [rw] page_token
68
- # @return [String]
69
- # The standard list page token.
70
- class ListOperationsRequest; end
71
-
72
- # The response message for {Google::Longrunning::Operations::ListOperations Operations::ListOperations}.
73
- # @!attribute [rw] operations
74
- # @return [Array<Google::Longrunning::Operation>]
75
- # A list of operations that matches the specified filter in the request.
76
- # @!attribute [rw] next_page_token
77
- # @return [String]
78
- # The standard List next-page token.
79
- class ListOperationsResponse; end
80
-
81
- # The request message for {Google::Longrunning::Operations::CancelOperation Operations::CancelOperation}.
82
- # @!attribute [rw] name
83
- # @return [String]
84
- # The name of the operation resource to be cancelled.
85
- class CancelOperationRequest; end
86
-
87
- # The request message for {Google::Longrunning::Operations::DeleteOperation Operations::DeleteOperation}.
88
- # @!attribute [rw] name
89
- # @return [String]
90
- # The name of the operation resource to be deleted.
91
- class DeleteOperationRequest; end
92
50
  end
93
51
  end
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -99,30 +99,6 @@ module Google
99
99
  # * `domain:{domain}`: A Google Apps domain name that represents all the
100
100
  # users of that domain. For example, `google.com` or `example.com`.
101
101
  class Binding; end
102
-
103
- # The difference delta between two policies.
104
- # @!attribute [rw] binding_deltas
105
- # @return [Array<Google::Iam::V1::BindingDelta>]
106
- # The delta for Bindings between two policies.
107
- class PolicyDelta; end
108
-
109
- # One delta entry for Binding. Each individual change (only one member in each
110
- # entry) to a binding will be a separate entry.
111
- # @!attribute [rw] action
112
- # @return [Google::Iam::V1::BindingDelta::Action]
113
- # The action that was performed on a Binding.
114
- # Required
115
- # @!attribute [rw] role
116
- # @return [String]
117
- # Role that is assigned to `members`.
118
- # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
119
- # Required
120
- # @!attribute [rw] member
121
- # @return [String]
122
- # A single identity requesting access for a Cloud Platform resource.
123
- # Follows the same format of Binding.members.
124
- # Required
125
- class BindingDelta; end
126
102
  end
127
103
  end
128
104
  end
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -47,47 +47,5 @@ module Google
47
47
  # is `TakeSnapshot()`, the inferred response type is
48
48
  # `TakeSnapshotResponse`.
49
49
  class Operation; end
50
-
51
- # The request message for {Google::Longrunning::Operations::GetOperation Operations::GetOperation}.
52
- # @!attribute [rw] name
53
- # @return [String]
54
- # The name of the operation resource.
55
- class GetOperationRequest; end
56
-
57
- # The request message for {Google::Longrunning::Operations::ListOperations Operations::ListOperations}.
58
- # @!attribute [rw] name
59
- # @return [String]
60
- # The name of the operation collection.
61
- # @!attribute [rw] filter
62
- # @return [String]
63
- # The standard list filter.
64
- # @!attribute [rw] page_size
65
- # @return [Integer]
66
- # The standard list page size.
67
- # @!attribute [rw] page_token
68
- # @return [String]
69
- # The standard list page token.
70
- class ListOperationsRequest; end
71
-
72
- # The response message for {Google::Longrunning::Operations::ListOperations Operations::ListOperations}.
73
- # @!attribute [rw] operations
74
- # @return [Array<Google::Longrunning::Operation>]
75
- # A list of operations that matches the specified filter in the request.
76
- # @!attribute [rw] next_page_token
77
- # @return [String]
78
- # The standard List next-page token.
79
- class ListOperationsResponse; end
80
-
81
- # The request message for {Google::Longrunning::Operations::CancelOperation Operations::CancelOperation}.
82
- # @!attribute [rw] name
83
- # @return [String]
84
- # The name of the operation resource to be cancelled.
85
- class CancelOperationRequest; end
86
-
87
- # The request message for {Google::Longrunning::Operations::DeleteOperation Operations::DeleteOperation}.
88
- # @!attribute [rw] name
89
- # @return [String]
90
- # The name of the operation resource to be deleted.
91
- class DeleteOperationRequest; end
92
50
  end
93
51
  end
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -122,16 +122,29 @@ module Google
122
122
  end
123
123
 
124
124
  ##
125
- # Returns the values as an array.
125
+ # Returns the values as an array. This method will raise
126
+ # {DuplicateNameError} if nested data has more than one member with the
127
+ # same name, unless `skip_dup_check` is set to `true`, in which case it
128
+ # will lose values.
129
+ #
130
+ # @param [Boolean] skip_dup_check Skip the check for whether nested data
131
+ # contains duplicate names, which will improve performance. When
132
+ # skipped, the nested hash may lose values. Default is `false`.
133
+ # Optional.
134
+ #
135
+ # @raise [Google::Cloud::Spanner::DuplicateNameError] if nested data
136
+ # contains duplicate names.
126
137
  #
127
138
  # @return [Array<Object>] An array containing the values of the data.
128
139
  #
129
- def to_a
140
+ def to_a skip_dup_check: nil
130
141
  values.map do |value|
131
142
  if value.is_a? Data
132
- value.to_h
143
+ value.to_h skip_dup_check: skip_dup_check
133
144
  elsif value.is_a? Array
134
- value.map { |v| v.is_a?(Data) ? v.to_h : v }
145
+ value.map do |v|
146
+ v.is_a?(Data) ? v.to_h(skip_dup_check: skip_dup_check) : v
147
+ end
135
148
  else
136
149
  value
137
150
  end
@@ -140,8 +153,14 @@ module Google
140
153
 
141
154
  ##
142
155
  # Returns the names or indexes and corresponding values of the data as a
143
- # hash. Do not use this method if the data has more than one member with
144
- # the same name.
156
+ # hash. This method will raise {DuplicateNameError} if the data has more
157
+ # than one member with the same name, unless `skip_dup_check` is set to
158
+ # `true`, in which case it will lose values.
159
+ #
160
+ # @param [Boolean] skip_dup_check Skip the check for whether the data
161
+ # contains duplicate names, which will improve performance. When
162
+ # skipped, the returned hash may lose values. Default is `false`.
163
+ # Optional.
145
164
  #
146
165
  # @raise [Google::Cloud::Spanner::DuplicateNameError] if the data
147
166
  # contains duplicate names.
@@ -149,18 +168,12 @@ module Google
149
168
  # @return [Hash<(String,Integer)=>Object>] A hash containing the names
150
169
  # or indexes and corresponding values.
151
170
  #
152
- def to_h
153
- raise DuplicateNameError if fields.duplicate_names?
154
- hashified_pairs = pairs.map do |key, value|
155
- if value.is_a? Data
156
- [key, value.to_h]
157
- elsif value.is_a? Array
158
- [key, value.map { |v| v.is_a?(Data) ? v.to_h : v }]
159
- else
160
- [key, value]
161
- end
171
+ def to_h skip_dup_check: nil
172
+ unless skip_dup_check
173
+ raise DuplicateNameError if fields.duplicate_names?
162
174
  end
163
- Hash[hashified_pairs]
175
+
176
+ Hash[keys.zip to_a(skip_dup_check: skip_dup_check)]
164
177
  end
165
178
 
166
179
  # @private
@@ -171,7 +171,7 @@ module Google
171
171
  # @return [Boolean] Returns `true` if there are duplicate names.
172
172
  #
173
173
  def duplicate_names?
174
- keys.count != keys.uniq.count
174
+ keys.group_by { |e| e }.select { |_k, v| v.size > 1 }.any?
175
175
  end
176
176
 
177
177
  ##
@@ -158,28 +158,15 @@ module Google
158
158
  end
159
159
 
160
160
  def reset
161
- close
161
+ shutdown
162
162
  init
163
163
 
164
164
  true
165
165
  end
166
166
 
167
167
  def close
168
- @mutex.synchronize do
169
- @closed = true
170
- end
171
- @keepalive_task.shutdown
172
- # Unblock all waiting threads
173
- @resource.broadcast
174
- # Delete all sessions
175
- @mutex.synchronize do
176
- @all_sessions.each { |s| future { s.release! } }
177
- @all_sessions = []
178
- @session_queue = []
179
- @transaction_queue = []
180
- end
181
- # shutdown existing thread pool
182
- @thread_pool.shutdown
168
+ shutdown
169
+ @thread_pool.wait_for_termination
183
170
 
184
171
  true
185
172
  end
@@ -235,6 +222,24 @@ module Google
235
222
  end
236
223
  end
237
224
 
225
+ def shutdown
226
+ @mutex.synchronize do
227
+ @closed = true
228
+ end
229
+ @keepalive_task.shutdown
230
+ # Unblock all waiting threads
231
+ @resource.broadcast
232
+ # Delete all sessions
233
+ @mutex.synchronize do
234
+ @all_sessions.each { |s| future { s.release! } }
235
+ @all_sessions = []
236
+ @session_queue = []
237
+ @transaction_queue = []
238
+ end
239
+ # shutdown existing thread pool
240
+ @thread_pool.shutdown
241
+ end
242
+
238
243
  def new_session!
239
244
  session = @client.create_new_session
240
245
 
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -21,6 +21,15 @@
21
21
  "max_rpc_timeout_millis": 60000,
22
22
  "total_timeout_millis": 600000
23
23
  },
24
+ "streaming": {
25
+ "initial_retry_delay_millis": 1000,
26
+ "retry_delay_multiplier": 1.3,
27
+ "max_retry_delay_millis": 32000,
28
+ "initial_rpc_timeout_millis": 120000,
29
+ "rpc_timeout_multiplier": 1.0,
30
+ "max_rpc_timeout_millis": 120000,
31
+ "total_timeout_millis": 1200000
32
+ },
24
33
  "long_running": {
25
34
  "initial_retry_delay_millis": 1000,
26
35
  "retry_delay_multiplier": 1.3,
@@ -60,7 +69,7 @@
60
69
  "ExecuteStreamingSql": {
61
70
  "timeout_millis": 3600000,
62
71
  "retry_codes_name": "non_idempotent",
63
- "retry_params_name": "default"
72
+ "retry_params_name": "streaming"
64
73
  },
65
74
  "Read": {
66
75
  "timeout_millis": 30000,
@@ -70,7 +79,7 @@
70
79
  "StreamingRead": {
71
80
  "timeout_millis": 3600000,
72
81
  "retry_codes_name": "non_idempotent",
73
- "retry_params_name": "default"
82
+ "retry_params_name": "streaming"
74
83
  },
75
84
  "BeginTransaction": {
76
85
  "timeout_millis": 30000,
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module Spanner
19
- VERSION = "1.7.2".freeze
19
+ VERSION = "1.8.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-spanner
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.2
4
+ version: 1.8.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-11-15 00:00:00.000000000 Z
12
+ date: 2019-02-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: google-cloud-core
@@ -157,14 +157,14 @@ dependencies:
157
157
  requirements:
158
158
  - - "~>"
159
159
  - !ruby/object:Gem::Version
160
- version: 0.59.2
160
+ version: 0.61.0
161
161
  type: :development
162
162
  prerelease: false
163
163
  version_requirements: !ruby/object:Gem::Requirement
164
164
  requirements:
165
165
  - - "~>"
166
166
  - !ruby/object:Gem::Version
167
- version: 0.59.2
167
+ version: 0.61.0
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: simplecov
170
170
  requirement: !ruby/object:Gem::Requirement
@@ -331,7 +331,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
331
331
  version: '0'
332
332
  requirements: []
333
333
  rubyforge_project:
334
- rubygems_version: 2.7.7
334
+ rubygems_version: 2.7.6
335
335
  signing_key:
336
336
  specification_version: 4
337
337
  summary: API Client library for Google Cloud Spanner API