google-cloud-spanner 1.9.5 → 1.10.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 +18 -0
- data/OVERVIEW.md +1 -1
- data/lib/google-cloud-spanner.rb +1 -0
- data/lib/google/cloud/spanner.rb +8 -3
- data/lib/google/cloud/spanner/admin/database/v1/database_admin_client.rb +8 -2
- data/lib/google/cloud/spanner/admin/database/v1/doc/google/iam/v1/policy.rb +2 -2
- data/lib/google/cloud/spanner/admin/instance/v1/doc/google/iam/v1/policy.rb +2 -2
- data/lib/google/cloud/spanner/admin/instance/v1/instance_admin_client.rb +8 -2
- data/lib/google/cloud/spanner/service.rb +21 -2
- data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/spanner.rb +40 -12
- data/lib/google/cloud/spanner/v1/spanner_client.rb +59 -8
- data/lib/google/cloud/spanner/v1/spanner_client_config.json +5 -0
- data/lib/google/cloud/spanner/version.rb +1 -1
- data/lib/google/spanner/v1/spanner_pb.rb +10 -0
- data/lib/google/spanner/v1/spanner_services_pb.rb +9 -3
- 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: dde38d5d82e73364774672eff6ab0794805e1994e4785ca8d116dddbd0b3b42e
|
4
|
+
data.tar.gz: 7a9df6a832ff09c3114df44663da677b0a79a8c3ffcb9f699c290055f354690d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e332afb76f15f0fd3e93fdc60ebc5d31fb588b9750d248a9dd8d75d39f7f49f1bf1b69c1242a180bd938b32e302d9006fc0d7df8646c60d6c3d00b33e3dc1f3
|
7
|
+
data.tar.gz: 6fee5b7b6d76bf63860eb3f8ceb374ab2ca87decb6afaffef8bdefeb8a952e6ad3110429ae99d9fbf1cef7f7c7d5954b2c83fede80f0f18763a4e4a6a1378942
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
# Release History
|
2
2
|
|
3
|
+
### 1.10.0 / 2019-08-23
|
4
|
+
|
5
|
+
#### Features
|
6
|
+
|
7
|
+
* Add Batch Create Sessions to low-level API
|
8
|
+
* Add SpannerClient#batch_create_sessions
|
9
|
+
* Add BatchCreateSessionsRequest
|
10
|
+
* Add BatchCreateSessionsResponse
|
11
|
+
* Support overriding of service endpoint
|
12
|
+
|
13
|
+
#### Bug Fixes
|
14
|
+
|
15
|
+
* Low-level admin clients now honor service_address and service_port
|
16
|
+
|
17
|
+
#### Documentation
|
18
|
+
|
19
|
+
* Update documentation
|
20
|
+
|
3
21
|
### 1.9.5 / 2019-07-31
|
4
22
|
|
5
23
|
* Reduce thread usage at startup
|
data/OVERVIEW.md
CHANGED
@@ -21,7 +21,7 @@ When you first use Cloud Spanner, you must create an instance, which is an
|
|
21
21
|
allocation of resources that are used by Cloud Spanner databases. When you
|
22
22
|
create an instance, you choose where your data is stored and how many nodes are
|
23
23
|
used for your data. (For more information, see [Configuration
|
24
|
-
Guide](https://googleapis.dev/ruby/stackdriver/INSTRUMENTATION_CONFIGURATION)
|
24
|
+
Guide](https://googleapis.dev/ruby/stackdriver/latest/file.INSTRUMENTATION_CONFIGURATION.html).
|
25
25
|
|
26
26
|
Use {Google::Cloud::Spanner::Project#create_instance Project#create_instance} to
|
27
27
|
create an instance:
|
data/lib/google-cloud-spanner.rb
CHANGED
@@ -132,4 +132,5 @@ Google::Cloud.configure.add_config! :spanner do |config|
|
|
132
132
|
config.add_field! :scope, nil, match: [String, Array]
|
133
133
|
config.add_field! :timeout, nil, match: Integer
|
134
134
|
config.add_field! :client_config, nil, match: Hash
|
135
|
+
config.add_field! :endpoint, nil, match: String
|
135
136
|
end
|
data/lib/google/cloud/spanner.rb
CHANGED
@@ -59,6 +59,8 @@ module Google
|
|
59
59
|
# @param [Integer] timeout Default timeout to use in requests. Optional.
|
60
60
|
# @param [Hash] client_config A hash of values to override the default
|
61
61
|
# behavior of the API client. Optional.
|
62
|
+
# @param [String] endpoint Override of the endpoint host name. Optional.
|
63
|
+
# If the param is nil, uses the default endpoint.
|
62
64
|
# @param [String] project Alias for the `project_id` argument. Deprecated.
|
63
65
|
# @param [String] keyfile Alias for the `credentials` argument.
|
64
66
|
# Deprecated.
|
@@ -71,11 +73,12 @@ module Google
|
|
71
73
|
# spanner = Google::Cloud::Spanner.new
|
72
74
|
#
|
73
75
|
def self.new project_id: nil, credentials: nil, scope: nil, timeout: nil,
|
74
|
-
client_config: nil, project: nil, keyfile: nil
|
76
|
+
client_config: nil, endpoint: nil, project: nil, keyfile: nil
|
75
77
|
project_id ||= (project || default_project_id)
|
76
78
|
scope ||= configure.scope
|
77
79
|
timeout ||= configure.timeout
|
78
80
|
client_config ||= configure.client_config
|
81
|
+
endpoint ||= configure.endpoint
|
79
82
|
credentials ||= (keyfile || default_credentials(scope: scope))
|
80
83
|
|
81
84
|
unless credentials.is_a? Google::Auth::Credentials
|
@@ -90,8 +93,8 @@ module Google
|
|
90
93
|
|
91
94
|
Spanner::Project.new(
|
92
95
|
Spanner::Service.new(
|
93
|
-
project_id, credentials,
|
94
|
-
|
96
|
+
project_id, credentials,
|
97
|
+
host: endpoint, timeout: timeout, client_config: client_config
|
95
98
|
)
|
96
99
|
)
|
97
100
|
end
|
@@ -112,6 +115,8 @@ module Google
|
|
112
115
|
# * `timeout` - (Integer) Default timeout to use in requests.
|
113
116
|
# * `client_config` - (Hash) A hash of values to override the default
|
114
117
|
# behavior of the API client.
|
118
|
+
# * `endpoint` - (String) Override of the endpoint host name, or `nil`
|
119
|
+
# to use the default endpoint.
|
115
120
|
#
|
116
121
|
# @return [Google::Cloud::Config] The configuration object the
|
117
122
|
# Google::Cloud::Spanner library uses.
|
@@ -144,6 +144,10 @@ module Google
|
|
144
144
|
# The default timeout, in seconds, for calls made through this client.
|
145
145
|
# @param metadata [Hash]
|
146
146
|
# Default metadata to be sent with each request. This can be overridden on a per call basis.
|
147
|
+
# @param service_address [String]
|
148
|
+
# Override for the service hostname, or `nil` to leave as the default.
|
149
|
+
# @param service_port [Integer]
|
150
|
+
# Override for the service port, or `nil` to leave as the default.
|
147
151
|
# @param exception_transformer [Proc]
|
148
152
|
# An optional proc that intercepts any exceptions raised during an API call to inject
|
149
153
|
# custom error handling.
|
@@ -153,6 +157,8 @@ module Google
|
|
153
157
|
client_config: {},
|
154
158
|
timeout: DEFAULT_TIMEOUT,
|
155
159
|
metadata: nil,
|
160
|
+
service_address: nil,
|
161
|
+
service_port: nil,
|
156
162
|
exception_transformer: nil,
|
157
163
|
lib_name: nil,
|
158
164
|
lib_version: ""
|
@@ -217,8 +223,8 @@ module Google
|
|
217
223
|
end
|
218
224
|
|
219
225
|
# Allow overriding the service path/port in subclasses.
|
220
|
-
service_path = self.class::SERVICE_ADDRESS
|
221
|
-
port = self.class::DEFAULT_SERVICE_PORT
|
226
|
+
service_path = service_address || self.class::SERVICE_ADDRESS
|
227
|
+
port = service_port || self.class::DEFAULT_SERVICE_PORT
|
222
228
|
interceptors = self.class::GRPC_INTERCEPTORS
|
223
229
|
@database_admin_stub = Google::Gax::Grpc.create_stub(
|
224
230
|
service_path,
|
@@ -79,7 +79,7 @@ module Google
|
|
79
79
|
# ensure that their change will be applied to the same version of the policy.
|
80
80
|
#
|
81
81
|
# If no `etag` is provided in the call to `setIamPolicy`, then the existing
|
82
|
-
# policy is overwritten
|
82
|
+
# policy is overwritten.
|
83
83
|
class Policy; end
|
84
84
|
|
85
85
|
# Associates `members` with a `role`.
|
@@ -99,7 +99,7 @@ module Google
|
|
99
99
|
# who is authenticated with a Google account or a service account.
|
100
100
|
#
|
101
101
|
# * `user:{emailid}`: An email address that represents a specific Google
|
102
|
-
# account. For example, `alice@
|
102
|
+
# account. For example, `alice@example.com` .
|
103
103
|
#
|
104
104
|
#
|
105
105
|
# * `serviceAccount:{emailid}`: An email address that represents a service
|
@@ -79,7 +79,7 @@ module Google
|
|
79
79
|
# ensure that their change will be applied to the same version of the policy.
|
80
80
|
#
|
81
81
|
# If no `etag` is provided in the call to `setIamPolicy`, then the existing
|
82
|
-
# policy is overwritten
|
82
|
+
# policy is overwritten.
|
83
83
|
class Policy; end
|
84
84
|
|
85
85
|
# Associates `members` with a `role`.
|
@@ -99,7 +99,7 @@ module Google
|
|
99
99
|
# who is authenticated with a Google account or a service account.
|
100
100
|
#
|
101
101
|
# * `user:{emailid}`: An email address that represents a specific Google
|
102
|
-
# account. For example, `alice@
|
102
|
+
# account. For example, `alice@example.com` .
|
103
103
|
#
|
104
104
|
#
|
105
105
|
# * `serviceAccount:{emailid}`: An email address that represents a service
|
@@ -177,6 +177,10 @@ module Google
|
|
177
177
|
# The default timeout, in seconds, for calls made through this client.
|
178
178
|
# @param metadata [Hash]
|
179
179
|
# Default metadata to be sent with each request. This can be overridden on a per call basis.
|
180
|
+
# @param service_address [String]
|
181
|
+
# Override for the service hostname, or `nil` to leave as the default.
|
182
|
+
# @param service_port [Integer]
|
183
|
+
# Override for the service port, or `nil` to leave as the default.
|
180
184
|
# @param exception_transformer [Proc]
|
181
185
|
# An optional proc that intercepts any exceptions raised during an API call to inject
|
182
186
|
# custom error handling.
|
@@ -186,6 +190,8 @@ module Google
|
|
186
190
|
client_config: {},
|
187
191
|
timeout: DEFAULT_TIMEOUT,
|
188
192
|
metadata: nil,
|
193
|
+
service_address: nil,
|
194
|
+
service_port: nil,
|
189
195
|
exception_transformer: nil,
|
190
196
|
lib_name: nil,
|
191
197
|
lib_version: ""
|
@@ -250,8 +256,8 @@ module Google
|
|
250
256
|
end
|
251
257
|
|
252
258
|
# Allow overriding the service path/port in subclasses.
|
253
|
-
service_path = self.class::SERVICE_ADDRESS
|
254
|
-
port = self.class::DEFAULT_SERVICE_PORT
|
259
|
+
service_path = service_address || self.class::SERVICE_ADDRESS
|
260
|
+
port = service_port || self.class::DEFAULT_SERVICE_PORT
|
255
261
|
interceptors = self.class::GRPC_INTERCEPTORS
|
256
262
|
@instance_admin_stub = Google::Gax::Grpc.create_stub(
|
257
263
|
service_path,
|
@@ -20,6 +20,7 @@ require "google/cloud/spanner/v1"
|
|
20
20
|
require "google/cloud/spanner/admin/instance/v1"
|
21
21
|
require "google/cloud/spanner/admin/database/v1"
|
22
22
|
require "google/cloud/spanner/convert"
|
23
|
+
require "uri"
|
23
24
|
|
24
25
|
module Google
|
25
26
|
module Cloud
|
@@ -28,13 +29,15 @@ module Google
|
|
28
29
|
# @private Represents the gRPC Spanner service, including all the API
|
29
30
|
# methods.
|
30
31
|
class Service
|
31
|
-
attr_accessor :project, :credentials, :timeout, :client_config
|
32
|
+
attr_accessor :project, :credentials, :timeout, :client_config, :host
|
32
33
|
|
33
34
|
##
|
34
35
|
# Creates a new Service instance.
|
35
|
-
def initialize project, credentials,
|
36
|
+
def initialize project, credentials, host: nil, timeout: nil,
|
37
|
+
client_config: nil
|
36
38
|
@project = project
|
37
39
|
@credentials = credentials
|
40
|
+
@host = host || V1::SpannerClient::SERVICE_ADDRESS
|
38
41
|
@timeout = timeout
|
39
42
|
@client_config = client_config || {}
|
40
43
|
end
|
@@ -46,6 +49,8 @@ module Google
|
|
46
49
|
credentials: credentials,
|
47
50
|
timeout: timeout,
|
48
51
|
client_config: client_config,
|
52
|
+
service_address: service_address,
|
53
|
+
service_port: service_port,
|
49
54
|
lib_name: "gccl",
|
50
55
|
lib_version: Google::Cloud::Spanner::VERSION
|
51
56
|
)
|
@@ -59,6 +64,8 @@ module Google
|
|
59
64
|
credentials: credentials,
|
60
65
|
timeout: timeout,
|
61
66
|
client_config: client_config,
|
67
|
+
service_address: service_address,
|
68
|
+
service_port: service_port,
|
62
69
|
lib_name: "gccl",
|
63
70
|
lib_version: Google::Cloud::Spanner::VERSION
|
64
71
|
)
|
@@ -72,6 +79,8 @@ module Google
|
|
72
79
|
credentials: credentials,
|
73
80
|
timeout: timeout,
|
74
81
|
client_config: client_config,
|
82
|
+
service_address: service_address,
|
83
|
+
service_port: service_port,
|
75
84
|
lib_name: "gccl",
|
76
85
|
lib_version: Google::Cloud::Spanner::VERSION
|
77
86
|
)
|
@@ -408,6 +417,16 @@ module Google
|
|
408
417
|
|
409
418
|
protected
|
410
419
|
|
420
|
+
def service_address
|
421
|
+
return nil if host.nil?
|
422
|
+
URI.parse("//#{host}").host
|
423
|
+
end
|
424
|
+
|
425
|
+
def service_port
|
426
|
+
return nil if host.nil?
|
427
|
+
URI.parse("//#{host}").port
|
428
|
+
end
|
429
|
+
|
411
430
|
def default_options_from_session session_name
|
412
431
|
default_prefix = session_name.split("/sessions/").first
|
413
432
|
Google::Gax::CallOptions.new kwargs: \
|
@@ -25,6 +25,31 @@ module Google
|
|
25
25
|
# The session to create.
|
26
26
|
class CreateSessionRequest; end
|
27
27
|
|
28
|
+
# The request for
|
29
|
+
# {Google::Spanner::V1::Spanner::BatchCreateSessions BatchCreateSessions}.
|
30
|
+
# @!attribute [rw] database
|
31
|
+
# @return [String]
|
32
|
+
# Required. The database in which the new sessions are created.
|
33
|
+
# @!attribute [rw] session_template
|
34
|
+
# @return [Google::Spanner::V1::Session]
|
35
|
+
# Parameters to be applied to each created session.
|
36
|
+
# @!attribute [rw] session_count
|
37
|
+
# @return [Integer]
|
38
|
+
# Required. The number of sessions to be created in this batch call.
|
39
|
+
# The API may return fewer than the requested number of sessions. If a
|
40
|
+
# specific number of sessions are desired, the client can make additional
|
41
|
+
# calls to BatchCreateSessions (adjusting
|
42
|
+
# {Google::Spanner::V1::BatchCreateSessionsRequest#session_count session_count}
|
43
|
+
# as necessary).
|
44
|
+
class BatchCreateSessionsRequest; end
|
45
|
+
|
46
|
+
# The response for
|
47
|
+
# {Google::Spanner::V1::Spanner::BatchCreateSessions BatchCreateSessions}.
|
48
|
+
# @!attribute [rw] session
|
49
|
+
# @return [Array<Google::Spanner::V1::Session>]
|
50
|
+
# The freshly created sessions.
|
51
|
+
class BatchCreateSessionsResponse; end
|
52
|
+
|
28
53
|
# A session in the Cloud Spanner API.
|
29
54
|
# @!attribute [rw] name
|
30
55
|
# @return [String]
|
@@ -108,9 +133,6 @@ module Google
|
|
108
133
|
# Required. The session in which the SQL query should be performed.
|
109
134
|
# @!attribute [rw] transaction
|
110
135
|
# @return [Google::Spanner::V1::TransactionSelector]
|
111
|
-
# The transaction to use. If none is provided, the default is a
|
112
|
-
# temporary read-only transaction with strong concurrency.
|
113
|
-
#
|
114
136
|
# The transaction to use.
|
115
137
|
#
|
116
138
|
# For queries, if none is provided, the default is a temporary read-only
|
@@ -249,7 +271,9 @@ module Google
|
|
249
271
|
# @return [Hash{String => Google::Spanner::V1::Type}]
|
250
272
|
# It is not always possible for Cloud Spanner to infer the right SQL type
|
251
273
|
# from a JSON value. For example, values of type `BYTES` and values
|
252
|
-
# of type `STRING` both appear in
|
274
|
+
# of type `STRING` both appear in
|
275
|
+
# {Google::Spanner::V1::ExecuteBatchDmlRequest::Statement#params params} as
|
276
|
+
# JSON strings.
|
253
277
|
#
|
254
278
|
# In these cases, `param_types` can be used to specify the exact
|
255
279
|
# SQL type for some or all of the SQL statement parameters. See the
|
@@ -258,11 +282,13 @@ module Google
|
|
258
282
|
class Statement; end
|
259
283
|
end
|
260
284
|
|
261
|
-
# The response for
|
262
|
-
#
|
263
|
-
#
|
264
|
-
#
|
265
|
-
#
|
285
|
+
# The response for
|
286
|
+
# {Google::Spanner::V1::Spanner::ExecuteBatchDml ExecuteBatchDml}. Contains a list
|
287
|
+
# of {Google::Spanner::V1::ResultSet ResultSet}, one for each DML statement that
|
288
|
+
# has successfully executed. If a statement fails, the error is returned as
|
289
|
+
# part of the response payload. Clients can determine whether all DML
|
290
|
+
# statements have run successfully, or if a statement failed, using one of the
|
291
|
+
# following approaches:
|
266
292
|
#
|
267
293
|
# 1. Check if 'status' field is OkStatus.
|
268
294
|
# 2. Check if result_sets_size() equals the number of statements in
|
@@ -280,9 +306,11 @@ module Google
|
|
280
306
|
# @!attribute [rw] result_sets
|
281
307
|
# @return [Array<Google::Spanner::V1::ResultSet>]
|
282
308
|
# ResultSets, one for each statement in the request that ran successfully, in
|
283
|
-
# the same order as the statements in the request. Each
|
284
|
-
#
|
285
|
-
#
|
309
|
+
# the same order as the statements in the request. Each
|
310
|
+
# {Google::Spanner::V1::ResultSet ResultSet} will not contain any rows. The
|
311
|
+
# {Google::Spanner::V1::ResultSetStats ResultSetStats} in each
|
312
|
+
# {Google::Spanner::V1::ResultSet ResultSet} will contain the number of rows
|
313
|
+
# modified by the statement.
|
286
314
|
#
|
287
315
|
# Only the first ResultSet in the response contains a valid
|
288
316
|
# {Google::Spanner::V1::ResultSetMetadata ResultSetMetadata}.
|
@@ -229,6 +229,14 @@ module Google
|
|
229
229
|
{'database' => request.database}
|
230
230
|
end
|
231
231
|
)
|
232
|
+
@batch_create_sessions = Google::Gax.create_api_call(
|
233
|
+
@spanner_stub.method(:batch_create_sessions),
|
234
|
+
defaults["batch_create_sessions"],
|
235
|
+
exception_transformer: exception_transformer,
|
236
|
+
params_extractor: proc do |request|
|
237
|
+
{'database' => request.database}
|
238
|
+
end
|
239
|
+
)
|
232
240
|
@get_session = Google::Gax.create_api_call(
|
233
241
|
@spanner_stub.method(:get_session),
|
234
242
|
defaults["get_session"],
|
@@ -391,6 +399,54 @@ module Google
|
|
391
399
|
@create_session.call(req, options, &block)
|
392
400
|
end
|
393
401
|
|
402
|
+
# Creates multiple new sessions.
|
403
|
+
#
|
404
|
+
# This API can be used to initialize a session cache on the clients.
|
405
|
+
# See https://goo.gl/TgSFN2 for best practices on session cache management.
|
406
|
+
#
|
407
|
+
# @param database [String]
|
408
|
+
# Required. The database in which the new sessions are created.
|
409
|
+
# @param session_template [Google::Spanner::V1::Session | Hash]
|
410
|
+
# Parameters to be applied to each created session.
|
411
|
+
# A hash of the same form as `Google::Spanner::V1::Session`
|
412
|
+
# can also be provided.
|
413
|
+
# @param session_count [Integer]
|
414
|
+
# Required. The number of sessions to be created in this batch call.
|
415
|
+
# The API may return fewer than the requested number of sessions. If a
|
416
|
+
# specific number of sessions are desired, the client can make additional
|
417
|
+
# calls to BatchCreateSessions (adjusting
|
418
|
+
# {Google::Spanner::V1::BatchCreateSessionsRequest#session_count session_count}
|
419
|
+
# as necessary).
|
420
|
+
# @param options [Google::Gax::CallOptions]
|
421
|
+
# Overrides the default settings for this call, e.g, timeout,
|
422
|
+
# retries, etc.
|
423
|
+
# @yield [result, operation] Access the result along with the RPC operation
|
424
|
+
# @yieldparam result [Google::Spanner::V1::BatchCreateSessionsResponse]
|
425
|
+
# @yieldparam operation [GRPC::ActiveCall::Operation]
|
426
|
+
# @return [Google::Spanner::V1::BatchCreateSessionsResponse]
|
427
|
+
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
428
|
+
# @example
|
429
|
+
# require "google/cloud/spanner/v1"
|
430
|
+
#
|
431
|
+
# spanner_client = Google::Cloud::Spanner::V1::SpannerClient.new
|
432
|
+
# formatted_database = Google::Cloud::Spanner::V1::SpannerClient.database_path("[PROJECT]", "[INSTANCE]", "[DATABASE]")
|
433
|
+
# response = spanner_client.batch_create_sessions(formatted_database)
|
434
|
+
|
435
|
+
def batch_create_sessions \
|
436
|
+
database,
|
437
|
+
session_template: nil,
|
438
|
+
session_count: nil,
|
439
|
+
options: nil,
|
440
|
+
&block
|
441
|
+
req = {
|
442
|
+
database: database,
|
443
|
+
session_template: session_template,
|
444
|
+
session_count: session_count
|
445
|
+
}.delete_if { |_, v| v.nil? }
|
446
|
+
req = Google::Gax::to_proto(req, Google::Spanner::V1::BatchCreateSessionsRequest)
|
447
|
+
@batch_create_sessions.call(req, options, &block)
|
448
|
+
end
|
449
|
+
|
394
450
|
# Gets a session. Returns `NOT_FOUND` if the session does not exist.
|
395
451
|
# This is mainly useful for determining whether a session is still
|
396
452
|
# alive.
|
@@ -541,9 +597,6 @@ module Google
|
|
541
597
|
# @param sql [String]
|
542
598
|
# Required. The SQL string.
|
543
599
|
# @param transaction [Google::Spanner::V1::TransactionSelector | Hash]
|
544
|
-
# The transaction to use. If none is provided, the default is a
|
545
|
-
# temporary read-only transaction with strong concurrency.
|
546
|
-
#
|
547
600
|
# The transaction to use.
|
548
601
|
#
|
549
602
|
# For queries, if none is provided, the default is a temporary read-only
|
@@ -671,9 +724,6 @@ module Google
|
|
671
724
|
# @param sql [String]
|
672
725
|
# Required. The SQL string.
|
673
726
|
# @param transaction [Google::Spanner::V1::TransactionSelector | Hash]
|
674
|
-
# The transaction to use. If none is provided, the default is a
|
675
|
-
# temporary read-only transaction with strong concurrency.
|
676
|
-
#
|
677
727
|
# The transaction to use.
|
678
728
|
#
|
679
729
|
# For queries, if none is provided, the default is a temporary read-only
|
@@ -796,8 +846,9 @@ module Google
|
|
796
846
|
#
|
797
847
|
# Statements are executed in order, sequentially.
|
798
848
|
# {Spanner::ExecuteBatchDmlResponse ExecuteBatchDmlResponse} will contain a
|
799
|
-
# {Google::Spanner::V1::ResultSet ResultSet} for each DML statement that has
|
800
|
-
# statement fails, its error status will be
|
849
|
+
# {Google::Spanner::V1::ResultSet ResultSet} for each DML statement that has
|
850
|
+
# successfully executed. If a statement fails, its error status will be
|
851
|
+
# returned as part of the
|
801
852
|
# {Spanner::ExecuteBatchDmlResponse ExecuteBatchDmlResponse}. Execution will
|
802
853
|
# stop at the first failed statement; the remaining statements will not run.
|
803
854
|
#
|
@@ -45,6 +45,11 @@
|
|
45
45
|
"retry_codes_name": "idempotent",
|
46
46
|
"retry_params_name": "default"
|
47
47
|
},
|
48
|
+
"BatchCreateSessions": {
|
49
|
+
"timeout_millis": 60000,
|
50
|
+
"retry_codes_name": "idempotent",
|
51
|
+
"retry_params_name": "default"
|
52
|
+
},
|
48
53
|
"GetSession": {
|
49
54
|
"timeout_millis": 30000,
|
50
55
|
"retry_codes_name": "idempotent",
|
@@ -19,6 +19,14 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
19
19
|
optional :database, :string, 1
|
20
20
|
optional :session, :message, 2, "google.spanner.v1.Session"
|
21
21
|
end
|
22
|
+
add_message "google.spanner.v1.BatchCreateSessionsRequest" do
|
23
|
+
optional :database, :string, 1
|
24
|
+
optional :session_template, :message, 2, "google.spanner.v1.Session"
|
25
|
+
optional :session_count, :int32, 3
|
26
|
+
end
|
27
|
+
add_message "google.spanner.v1.BatchCreateSessionsResponse" do
|
28
|
+
repeated :session, :message, 1, "google.spanner.v1.Session"
|
29
|
+
end
|
22
30
|
add_message "google.spanner.v1.Session" do
|
23
31
|
optional :name, :string, 1
|
24
32
|
map :labels, :string, :string, 2
|
@@ -136,6 +144,8 @@ module Google
|
|
136
144
|
module Spanner
|
137
145
|
module V1
|
138
146
|
CreateSessionRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.CreateSessionRequest").msgclass
|
147
|
+
BatchCreateSessionsRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.BatchCreateSessionsRequest").msgclass
|
148
|
+
BatchCreateSessionsResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.BatchCreateSessionsResponse").msgclass
|
139
149
|
Session = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.Session").msgclass
|
140
150
|
GetSessionRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.GetSessionRequest").msgclass
|
141
151
|
ListSessionsRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.ListSessionsRequest").msgclass
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
2
|
# Source: google/spanner/v1/spanner.proto for package 'google.spanner.v1'
|
3
3
|
# Original file comments:
|
4
|
-
# Copyright
|
4
|
+
# Copyright 2019 Google LLC.
|
5
5
|
#
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
7
|
# you may not use this file except in compliance with the License.
|
@@ -57,6 +57,11 @@ module Google
|
|
57
57
|
# Idle sessions can be kept alive by sending a trivial SQL query
|
58
58
|
# periodically, e.g., `"SELECT 1"`.
|
59
59
|
rpc :CreateSession, CreateSessionRequest, Session
|
60
|
+
# Creates multiple new sessions.
|
61
|
+
#
|
62
|
+
# This API can be used to initialize a session cache on the clients.
|
63
|
+
# See https://goo.gl/TgSFN2 for best practices on session cache management.
|
64
|
+
rpc :BatchCreateSessions, BatchCreateSessionsRequest, BatchCreateSessionsResponse
|
60
65
|
# Gets a session. Returns `NOT_FOUND` if the session does not exist.
|
61
66
|
# This is mainly useful for determining whether a session is still
|
62
67
|
# alive.
|
@@ -93,8 +98,9 @@ module Google
|
|
93
98
|
#
|
94
99
|
# Statements are executed in order, sequentially.
|
95
100
|
# [ExecuteBatchDmlResponse][Spanner.ExecuteBatchDmlResponse] will contain a
|
96
|
-
# [ResultSet][google.spanner.v1.ResultSet] for each DML statement that has
|
97
|
-
# statement fails, its error status will be
|
101
|
+
# [ResultSet][google.spanner.v1.ResultSet] for each DML statement that has
|
102
|
+
# successfully executed. If a statement fails, its error status will be
|
103
|
+
# returned as part of the
|
98
104
|
# [ExecuteBatchDmlResponse][Spanner.ExecuteBatchDmlResponse]. Execution will
|
99
105
|
# stop at the first failed statement; the remaining statements will not run.
|
100
106
|
#
|
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.
|
4
|
+
version: 1.10.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: 2019-08-
|
12
|
+
date: 2019-08-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: google-cloud-core
|