google-cloud-spanner 1.7.2 → 1.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 (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