google-cloud-spanner-v1 0.2.2 → 0.6.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/LICENSE.md +188 -190
- data/README.md +66 -2
- data/lib/google/cloud/spanner/v1.rb +3 -0
- data/lib/google/cloud/spanner/v1/spanner/client.rb +106 -70
- data/lib/google/cloud/spanner/v1/version.rb +1 -1
- data/lib/google/spanner/v1/spanner_pb.rb +26 -0
- data/lib/google/spanner/v1/spanner_services_pb.rb +21 -15
- data/proto_docs/google/api/field_behavior.rb +6 -0
- data/proto_docs/google/api/resource.rb +50 -14
- data/proto_docs/google/protobuf/any.rb +5 -2
- data/proto_docs/google/protobuf/timestamp.rb +10 -1
- data/proto_docs/google/spanner/v1/spanner.rb +148 -12
- data/proto_docs/google/spanner/v1/transaction.rb +12 -11
- data/proto_docs/google/spanner/v1/type.rb +1 -1
- metadata +11 -9
@@ -55,22 +55,22 @@ module Google
|
|
55
55
|
#
|
56
56
|
# Idle sessions can be kept alive by sending a trivial SQL query
|
57
57
|
# periodically, e.g., `"SELECT 1"`.
|
58
|
-
rpc :CreateSession, Google::Cloud::Spanner::V1::CreateSessionRequest, Google::Cloud::Spanner::V1::Session
|
58
|
+
rpc :CreateSession, ::Google::Cloud::Spanner::V1::CreateSessionRequest, ::Google::Cloud::Spanner::V1::Session
|
59
59
|
# Creates multiple new sessions.
|
60
60
|
#
|
61
61
|
# This API can be used to initialize a session cache on the clients.
|
62
62
|
# See https://goo.gl/TgSFN2 for best practices on session cache management.
|
63
|
-
rpc :BatchCreateSessions, Google::Cloud::Spanner::V1::BatchCreateSessionsRequest, Google::Cloud::Spanner::V1::BatchCreateSessionsResponse
|
63
|
+
rpc :BatchCreateSessions, ::Google::Cloud::Spanner::V1::BatchCreateSessionsRequest, ::Google::Cloud::Spanner::V1::BatchCreateSessionsResponse
|
64
64
|
# Gets a session. Returns `NOT_FOUND` if the session does not exist.
|
65
65
|
# This is mainly useful for determining whether a session is still
|
66
66
|
# alive.
|
67
|
-
rpc :GetSession, Google::Cloud::Spanner::V1::GetSessionRequest, Google::Cloud::Spanner::V1::Session
|
67
|
+
rpc :GetSession, ::Google::Cloud::Spanner::V1::GetSessionRequest, ::Google::Cloud::Spanner::V1::Session
|
68
68
|
# Lists all sessions in a given database.
|
69
|
-
rpc :ListSessions, Google::Cloud::Spanner::V1::ListSessionsRequest, Google::Cloud::Spanner::V1::ListSessionsResponse
|
69
|
+
rpc :ListSessions, ::Google::Cloud::Spanner::V1::ListSessionsRequest, ::Google::Cloud::Spanner::V1::ListSessionsResponse
|
70
70
|
# Ends a session, releasing server resources associated with it. This will
|
71
71
|
# asynchronously trigger cancellation of any operations that are running with
|
72
72
|
# this session.
|
73
|
-
rpc :DeleteSession, Google::Cloud::Spanner::V1::DeleteSessionRequest, Google::Protobuf::Empty
|
73
|
+
rpc :DeleteSession, ::Google::Cloud::Spanner::V1::DeleteSessionRequest, ::Google::Protobuf::Empty
|
74
74
|
# Executes an SQL statement, returning all results in a single reply. This
|
75
75
|
# method cannot be used to return a result set larger than 10 MiB;
|
76
76
|
# if the query yields more data than that, the query fails with
|
@@ -82,13 +82,13 @@ module Google
|
|
82
82
|
#
|
83
83
|
# Larger result sets can be fetched in streaming fashion by calling
|
84
84
|
# [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] instead.
|
85
|
-
rpc :ExecuteSql, Google::Cloud::Spanner::V1::ExecuteSqlRequest, Google::Cloud::Spanner::V1::ResultSet
|
85
|
+
rpc :ExecuteSql, ::Google::Cloud::Spanner::V1::ExecuteSqlRequest, ::Google::Cloud::Spanner::V1::ResultSet
|
86
86
|
# Like [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql], except returns the result
|
87
87
|
# set as a stream. Unlike [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql], there
|
88
88
|
# is no limit on the size of the returned result set. However, no
|
89
89
|
# individual row in the result set can exceed 100 MiB, and no
|
90
90
|
# column value can exceed 10 MiB.
|
91
|
-
rpc :ExecuteStreamingSql, Google::Cloud::Spanner::V1::ExecuteSqlRequest, stream(Google::Cloud::Spanner::V1::PartialResultSet)
|
91
|
+
rpc :ExecuteStreamingSql, ::Google::Cloud::Spanner::V1::ExecuteSqlRequest, stream(::Google::Cloud::Spanner::V1::PartialResultSet)
|
92
92
|
# Executes a batch of SQL DML statements. This method allows many statements
|
93
93
|
# to be run with lower latency than submitting them sequentially with
|
94
94
|
# [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql].
|
@@ -100,7 +100,7 @@ module Google
|
|
100
100
|
#
|
101
101
|
# Execution stops after the first failed statement; the remaining statements
|
102
102
|
# are not executed.
|
103
|
-
rpc :ExecuteBatchDml, Google::Cloud::Spanner::V1::ExecuteBatchDmlRequest, Google::Cloud::Spanner::V1::ExecuteBatchDmlResponse
|
103
|
+
rpc :ExecuteBatchDml, ::Google::Cloud::Spanner::V1::ExecuteBatchDmlRequest, ::Google::Cloud::Spanner::V1::ExecuteBatchDmlResponse
|
104
104
|
# Reads rows from the database using key lookups and scans, as a
|
105
105
|
# simple key/value style alternative to
|
106
106
|
# [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql]. This method cannot be used to
|
@@ -114,18 +114,18 @@ module Google
|
|
114
114
|
#
|
115
115
|
# Larger result sets can be yielded in streaming fashion by calling
|
116
116
|
# [StreamingRead][google.spanner.v1.Spanner.StreamingRead] instead.
|
117
|
-
rpc :Read, Google::Cloud::Spanner::V1::ReadRequest, Google::Cloud::Spanner::V1::ResultSet
|
117
|
+
rpc :Read, ::Google::Cloud::Spanner::V1::ReadRequest, ::Google::Cloud::Spanner::V1::ResultSet
|
118
118
|
# Like [Read][google.spanner.v1.Spanner.Read], except returns the result set as a
|
119
119
|
# stream. Unlike [Read][google.spanner.v1.Spanner.Read], there is no limit on the
|
120
120
|
# size of the returned result set. However, no individual row in
|
121
121
|
# the result set can exceed 100 MiB, and no column value can exceed
|
122
122
|
# 10 MiB.
|
123
|
-
rpc :StreamingRead, Google::Cloud::Spanner::V1::ReadRequest, stream(Google::Cloud::Spanner::V1::PartialResultSet)
|
123
|
+
rpc :StreamingRead, ::Google::Cloud::Spanner::V1::ReadRequest, stream(::Google::Cloud::Spanner::V1::PartialResultSet)
|
124
124
|
# Begins a new transaction. This step can often be skipped:
|
125
125
|
# [Read][google.spanner.v1.Spanner.Read], [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql] and
|
126
126
|
# [Commit][google.spanner.v1.Spanner.Commit] can begin a new transaction as a
|
127
127
|
# side-effect.
|
128
|
-
rpc :BeginTransaction, Google::Cloud::Spanner::V1::BeginTransactionRequest, Google::Cloud::Spanner::V1::Transaction
|
128
|
+
rpc :BeginTransaction, ::Google::Cloud::Spanner::V1::BeginTransactionRequest, ::Google::Cloud::Spanner::V1::Transaction
|
129
129
|
# Commits a transaction. The request includes the mutations to be
|
130
130
|
# applied to rows in the database.
|
131
131
|
#
|
@@ -134,7 +134,13 @@ module Google
|
|
134
134
|
# transactions. However, it can also happen for a variety of other
|
135
135
|
# reasons. If `Commit` returns `ABORTED`, the caller should re-attempt
|
136
136
|
# the transaction from the beginning, re-using the same session.
|
137
|
-
|
137
|
+
#
|
138
|
+
# On very rare occasions, `Commit` might return `UNKNOWN`. This can happen,
|
139
|
+
# for example, if the client job experiences a 1+ hour networking failure.
|
140
|
+
# At that point, Cloud Spanner has lost track of the transaction outcome and
|
141
|
+
# we recommend that you perform another read from the database to see the
|
142
|
+
# state of things as they are now.
|
143
|
+
rpc :Commit, ::Google::Cloud::Spanner::V1::CommitRequest, ::Google::Cloud::Spanner::V1::CommitResponse
|
138
144
|
# Rolls back a transaction, releasing any locks it holds. It is a good
|
139
145
|
# idea to call this for any transaction that includes one or more
|
140
146
|
# [Read][google.spanner.v1.Spanner.Read] or [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql] requests and
|
@@ -143,7 +149,7 @@ module Google
|
|
143
149
|
# `Rollback` returns `OK` if it successfully aborts the transaction, the
|
144
150
|
# transaction was already aborted, or the transaction is not
|
145
151
|
# found. `Rollback` never returns `ABORTED`.
|
146
|
-
rpc :Rollback, Google::Cloud::Spanner::V1::RollbackRequest, Google::Protobuf::Empty
|
152
|
+
rpc :Rollback, ::Google::Cloud::Spanner::V1::RollbackRequest, ::Google::Protobuf::Empty
|
147
153
|
# Creates a set of partition tokens that can be used to execute a query
|
148
154
|
# operation in parallel. Each of the returned partition tokens can be used
|
149
155
|
# by [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] to specify a subset
|
@@ -155,7 +161,7 @@ module Google
|
|
155
161
|
# is deleted, is idle for too long, begins a new transaction, or becomes too
|
156
162
|
# old. When any of these happen, it is not possible to resume the query, and
|
157
163
|
# the whole operation must be restarted from the beginning.
|
158
|
-
rpc :PartitionQuery, Google::Cloud::Spanner::V1::PartitionQueryRequest, Google::Cloud::Spanner::V1::PartitionResponse
|
164
|
+
rpc :PartitionQuery, ::Google::Cloud::Spanner::V1::PartitionQueryRequest, ::Google::Cloud::Spanner::V1::PartitionResponse
|
159
165
|
# Creates a set of partition tokens that can be used to execute a read
|
160
166
|
# operation in parallel. Each of the returned partition tokens can be used
|
161
167
|
# by [StreamingRead][google.spanner.v1.Spanner.StreamingRead] to specify a subset of the read
|
@@ -169,7 +175,7 @@ module Google
|
|
169
175
|
# is deleted, is idle for too long, begins a new transaction, or becomes too
|
170
176
|
# old. When any of these happen, it is not possible to resume the read, and
|
171
177
|
# the whole operation must be restarted from the beginning.
|
172
|
-
rpc :PartitionRead, Google::Cloud::Spanner::V1::PartitionReadRequest, Google::Cloud::Spanner::V1::PartitionResponse
|
178
|
+
rpc :PartitionRead, ::Google::Cloud::Spanner::V1::PartitionReadRequest, ::Google::Cloud::Spanner::V1::PartitionResponse
|
173
179
|
end
|
174
180
|
|
175
181
|
Stub = Service.rpc_stub_class
|
@@ -54,6 +54,12 @@ module Google
|
|
54
54
|
# This indicates that the field may be set once in a request to create a
|
55
55
|
# resource, but may not be changed thereafter.
|
56
56
|
IMMUTABLE = 5
|
57
|
+
|
58
|
+
# Denotes that a (repeated) field is an unordered list.
|
59
|
+
# This indicates that the service may provide the elements of the list
|
60
|
+
# in any arbitrary order, rather than the order the user originally
|
61
|
+
# provided. Additionally, the list's order may or may not be stable.
|
62
|
+
UNORDERED_LIST = 6
|
57
63
|
end
|
58
64
|
end
|
59
65
|
end
|
@@ -43,12 +43,12 @@ module Google
|
|
43
43
|
#
|
44
44
|
# The ResourceDescriptor Yaml config will look like:
|
45
45
|
#
|
46
|
-
#
|
47
|
-
#
|
48
|
-
#
|
49
|
-
#
|
50
|
-
#
|
51
|
-
#
|
46
|
+
# resources:
|
47
|
+
# - type: "pubsub.googleapis.com/Topic"
|
48
|
+
# name_descriptor:
|
49
|
+
# - pattern: "projects/{project}/topics/{topic}"
|
50
|
+
# parent_type: "cloudresourcemanager.googleapis.com/Project"
|
51
|
+
# parent_name_extractor: "projects/{project}"
|
52
52
|
#
|
53
53
|
# Sometimes, resources have multiple patterns, typically because they can
|
54
54
|
# live under multiple parents.
|
@@ -183,15 +183,24 @@ module Google
|
|
183
183
|
# }
|
184
184
|
# @!attribute [rw] plural
|
185
185
|
# @return [::String]
|
186
|
-
# The plural name used in the resource name, such as
|
187
|
-
# the name of 'projects/\\{project}'
|
188
|
-
#
|
186
|
+
# The plural name used in the resource name and permission names, such as
|
187
|
+
# 'projects' for the resource name of 'projects/\\{project}' and the permission
|
188
|
+
# name of 'cloudresourcemanager.googleapis.com/projects.get'. It is the same
|
189
|
+
# concept of the `plural` field in k8s CRD spec
|
189
190
|
# https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/
|
191
|
+
#
|
192
|
+
# Note: The plural form is required even for singleton resources. See
|
193
|
+
# https://aip.dev/156
|
190
194
|
# @!attribute [rw] singular
|
191
195
|
# @return [::String]
|
192
196
|
# The same concept of the `singular` field in k8s CRD spec
|
193
197
|
# https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/
|
194
198
|
# Such as "project" for the `resourcemanager.googleapis.com/Project` type.
|
199
|
+
# @!attribute [rw] style
|
200
|
+
# @return [::Array<::Google::Api::ResourceDescriptor::Style>]
|
201
|
+
# Style flag(s) for this resource.
|
202
|
+
# These indicate that a resource is expected to conform to a given
|
203
|
+
# style. See the specific style flags for additional information.
|
195
204
|
class ResourceDescriptor
|
196
205
|
include ::Google::Protobuf::MessageExts
|
197
206
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -211,6 +220,22 @@ module Google
|
|
211
220
|
# that from being necessary once there are multiple patterns.)
|
212
221
|
FUTURE_MULTI_PATTERN = 2
|
213
222
|
end
|
223
|
+
|
224
|
+
# A flag representing a specific style that a resource claims to conform to.
|
225
|
+
module Style
|
226
|
+
# The unspecified value. Do not use.
|
227
|
+
STYLE_UNSPECIFIED = 0
|
228
|
+
|
229
|
+
# This resource is intended to be "declarative-friendly".
|
230
|
+
#
|
231
|
+
# Declarative-friendly resources must be more strictly consistent, and
|
232
|
+
# setting this to true communicates to tools that this resource should
|
233
|
+
# adhere to declarative-friendly expectations.
|
234
|
+
#
|
235
|
+
# Note: This is used by the API linter (linter.aip.dev) to enable
|
236
|
+
# additional checks.
|
237
|
+
DECLARATIVE_FRIENDLY = 1
|
238
|
+
end
|
214
239
|
end
|
215
240
|
|
216
241
|
# Defines a proto annotation that describes a string field that refers to
|
@@ -226,6 +251,17 @@ module Google
|
|
226
251
|
# type: "pubsub.googleapis.com/Topic"
|
227
252
|
# }];
|
228
253
|
# }
|
254
|
+
#
|
255
|
+
# Occasionally, a field may reference an arbitrary resource. In this case,
|
256
|
+
# APIs use the special value * in their resource reference.
|
257
|
+
#
|
258
|
+
# Example:
|
259
|
+
#
|
260
|
+
# message GetIamPolicyRequest {
|
261
|
+
# string resource = 2 [(google.api.resource_reference) = {
|
262
|
+
# type: "*"
|
263
|
+
# }];
|
264
|
+
# }
|
229
265
|
# @!attribute [rw] child_type
|
230
266
|
# @return [::String]
|
231
267
|
# The resource type of a child collection that the annotated field
|
@@ -234,11 +270,11 @@ module Google
|
|
234
270
|
#
|
235
271
|
# Example:
|
236
272
|
#
|
237
|
-
#
|
238
|
-
#
|
239
|
-
#
|
240
|
-
#
|
241
|
-
#
|
273
|
+
# message ListLogEntriesRequest {
|
274
|
+
# string parent = 1 [(google.api.resource_reference) = {
|
275
|
+
# child_type: "logging.googleapis.com/LogEntry"
|
276
|
+
# };
|
277
|
+
# }
|
242
278
|
class ResourceReference
|
243
279
|
include ::Google::Protobuf::MessageExts
|
244
280
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -57,10 +57,13 @@ module Google
|
|
57
57
|
# Example 4: Pack and unpack a message in Go
|
58
58
|
#
|
59
59
|
# foo := &pb.Foo{...}
|
60
|
-
# any, err :=
|
60
|
+
# any, err := anypb.New(foo)
|
61
|
+
# if err != nil {
|
62
|
+
# ...
|
63
|
+
# }
|
61
64
|
# ...
|
62
65
|
# foo := &pb.Foo{}
|
63
|
-
# if err :=
|
66
|
+
# if err := any.UnmarshalTo(foo); err != nil {
|
64
67
|
# ...
|
65
68
|
# }
|
66
69
|
#
|
@@ -70,7 +70,16 @@ module Google
|
|
70
70
|
# .setNanos((int) ((millis % 1000) * 1000000)).build();
|
71
71
|
#
|
72
72
|
#
|
73
|
-
# Example 5: Compute Timestamp from
|
73
|
+
# Example 5: Compute Timestamp from Java `Instant.now()`.
|
74
|
+
#
|
75
|
+
# Instant now = Instant.now();
|
76
|
+
#
|
77
|
+
# Timestamp timestamp =
|
78
|
+
# Timestamp.newBuilder().setSeconds(now.getEpochSecond())
|
79
|
+
# .setNanos(now.getNano()).build();
|
80
|
+
#
|
81
|
+
#
|
82
|
+
# Example 6: Compute Timestamp from current time in Python.
|
74
83
|
#
|
75
84
|
# timestamp = Timestamp()
|
76
85
|
# timestamp.GetCurrentTime()
|
@@ -62,10 +62,9 @@ module Google
|
|
62
62
|
end
|
63
63
|
|
64
64
|
# A session in the Cloud Spanner API.
|
65
|
-
# @!attribute [
|
65
|
+
# @!attribute [r] name
|
66
66
|
# @return [::String]
|
67
|
-
# The name of the session. This is always system-assigned
|
68
|
-
# when creating a session are ignored.
|
67
|
+
# Output only. The name of the session. This is always system-assigned.
|
69
68
|
# @!attribute [rw] labels
|
70
69
|
# @return [::Google::Protobuf::Map{::String => ::String}]
|
71
70
|
# The labels for the session.
|
@@ -77,10 +76,10 @@ module Google
|
|
77
76
|
# * No more than 64 labels can be associated with a given session.
|
78
77
|
#
|
79
78
|
# See https://goo.gl/xmQnxf for more information on and examples of labels.
|
80
|
-
# @!attribute [
|
79
|
+
# @!attribute [r] create_time
|
81
80
|
# @return [::Google::Protobuf::Timestamp]
|
82
81
|
# Output only. The timestamp when the session is created.
|
83
|
-
# @!attribute [
|
82
|
+
# @!attribute [r] approximate_last_use_time
|
84
83
|
# @return [::Google::Protobuf::Timestamp]
|
85
84
|
# Output only. The approximate timestamp when the session is last used. It is
|
86
85
|
# typically earlier than the actual last use time.
|
@@ -160,6 +159,66 @@ module Google
|
|
160
159
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
161
160
|
end
|
162
161
|
|
162
|
+
# Common request options for various APIs.
|
163
|
+
# @!attribute [rw] priority
|
164
|
+
# @return [::Google::Cloud::Spanner::V1::RequestOptions::Priority]
|
165
|
+
# Priority for the request.
|
166
|
+
# @!attribute [rw] request_tag
|
167
|
+
# @return [::String]
|
168
|
+
# A per-request tag which can be applied to queries or reads, used for
|
169
|
+
# statistics collection.
|
170
|
+
# Both request_tag and transaction_tag can be specified for a read or query
|
171
|
+
# that belongs to a transaction.
|
172
|
+
# This field is ignored for requests where it's not applicable (e.g.
|
173
|
+
# CommitRequest).
|
174
|
+
# `request_tag` must be a valid identifier of the form:
|
175
|
+
# `[a-zA-Z][a-zA-Z0-9_\-]` between 2 and 64 characters in length
|
176
|
+
# @!attribute [rw] transaction_tag
|
177
|
+
# @return [::String]
|
178
|
+
# A tag used for statistics collection about this transaction.
|
179
|
+
# Both request_tag and transaction_tag can be specified for a read or query
|
180
|
+
# that belongs to a transaction.
|
181
|
+
# The value of transaction_tag should be the same for all requests belonging
|
182
|
+
# to the same transaction.
|
183
|
+
# If this request doesn’t belong to any transaction, transaction_tag will be
|
184
|
+
# ignored.
|
185
|
+
# `transaction_tag` must be a valid identifier of the format:
|
186
|
+
# `[a-zA-Z][a-zA-Z0-9_\-]{0,49}`
|
187
|
+
class RequestOptions
|
188
|
+
include ::Google::Protobuf::MessageExts
|
189
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
190
|
+
|
191
|
+
# The relative priority for requests. Note that priority is not applicable
|
192
|
+
# for {::Google::Cloud::Spanner::V1::Spanner::Client#begin_transaction BeginTransaction}.
|
193
|
+
#
|
194
|
+
# The priority acts as a hint to the Cloud Spanner scheduler and does not
|
195
|
+
# guarantee priority or order of execution. For example:
|
196
|
+
#
|
197
|
+
# * Some parts of a write operation always execute at `PRIORITY_HIGH`,
|
198
|
+
# regardless of the specified priority. This may cause you to see an
|
199
|
+
# increase in high priority workload even when executing a low priority
|
200
|
+
# request. This can also potentially cause a priority inversion where a
|
201
|
+
# lower priority request will be fulfilled ahead of a higher priority
|
202
|
+
# request.
|
203
|
+
# * If a transaction contains multiple operations with different priorities,
|
204
|
+
# Cloud Spanner does not guarantee to process the higher priority
|
205
|
+
# operations first. There may be other constraints to satisfy, such as
|
206
|
+
# order of operations.
|
207
|
+
module Priority
|
208
|
+
# `PRIORITY_UNSPECIFIED` is equivalent to `PRIORITY_HIGH`.
|
209
|
+
PRIORITY_UNSPECIFIED = 0
|
210
|
+
|
211
|
+
# This specifies that the request is low priority.
|
212
|
+
PRIORITY_LOW = 1
|
213
|
+
|
214
|
+
# This specifies that the request is medium priority.
|
215
|
+
PRIORITY_MEDIUM = 2
|
216
|
+
|
217
|
+
# This specifies that the request is high priority.
|
218
|
+
PRIORITY_HIGH = 3
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
163
222
|
# The request for {::Google::Cloud::Spanner::V1::Spanner::Client#execute_sql ExecuteSql} and
|
164
223
|
# {::Google::Cloud::Spanner::V1::Spanner::Client#execute_streaming_sql ExecuteStreamingSql}.
|
165
224
|
# @!attribute [rw] session
|
@@ -185,8 +244,9 @@ module Google
|
|
185
244
|
# Parameter names and values that bind to placeholders in the SQL string.
|
186
245
|
#
|
187
246
|
# A parameter placeholder consists of the `@` character followed by the
|
188
|
-
# parameter name (for example, `@firstName`). Parameter names
|
189
|
-
#
|
247
|
+
# parameter name (for example, `@firstName`). Parameter names must conform
|
248
|
+
# to the naming requirements of identifiers as specified at
|
249
|
+
# https://cloud.google.com/spanner/docs/lexical#identifiers.
|
190
250
|
#
|
191
251
|
# Parameters can appear anywhere that a literal value is expected. The same
|
192
252
|
# parameter name can be used more than once, for example:
|
@@ -238,6 +298,9 @@ module Google
|
|
238
298
|
# @!attribute [rw] query_options
|
239
299
|
# @return [::Google::Cloud::Spanner::V1::ExecuteSqlRequest::QueryOptions]
|
240
300
|
# Query optimizer configuration to use for the given query.
|
301
|
+
# @!attribute [rw] request_options
|
302
|
+
# @return [::Google::Cloud::Spanner::V1::RequestOptions]
|
303
|
+
# Common options for this request.
|
241
304
|
class ExecuteSqlRequest
|
242
305
|
include ::Google::Protobuf::MessageExts
|
243
306
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -250,17 +313,49 @@ module Google
|
|
250
313
|
# This parameter allows individual queries to pick different query
|
251
314
|
# optimizer versions.
|
252
315
|
#
|
253
|
-
# Specifying
|
316
|
+
# Specifying `latest` as a value instructs Cloud Spanner to use the
|
254
317
|
# latest supported query optimizer version. If not specified, Cloud Spanner
|
255
|
-
# uses optimizer version set at the database level options. Any other
|
318
|
+
# uses the optimizer version set at the database level options. Any other
|
256
319
|
# positive integer (from the list of supported optimizer versions)
|
257
320
|
# overrides the default optimizer version for query execution.
|
321
|
+
#
|
258
322
|
# The list of supported optimizer versions can be queried from
|
259
|
-
# SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS.
|
260
|
-
#
|
261
|
-
#
|
323
|
+
# SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS.
|
324
|
+
#
|
325
|
+
# Executing a SQL statement with an invalid optimizer version fails with
|
326
|
+
# an `INVALID_ARGUMENT` error.
|
327
|
+
#
|
328
|
+
# See
|
329
|
+
# https://cloud.google.com/spanner/docs/query-optimizer/manage-query-optimizer
|
330
|
+
# for more information on managing the query optimizer.
|
262
331
|
#
|
263
332
|
# The `optimizer_version` statement hint has precedence over this setting.
|
333
|
+
# @!attribute [rw] optimizer_statistics_package
|
334
|
+
# @return [::String]
|
335
|
+
# An option to control the selection of optimizer statistics package.
|
336
|
+
#
|
337
|
+
# This parameter allows individual queries to use a different query
|
338
|
+
# optimizer statistics package.
|
339
|
+
#
|
340
|
+
# Specifying `latest` as a value instructs Cloud Spanner to use the latest
|
341
|
+
# generated statistics package. If not specified, Cloud Spanner uses
|
342
|
+
# the statistics package set at the database level options, or the latest
|
343
|
+
# package if the database option is not set.
|
344
|
+
#
|
345
|
+
# The statistics package requested by the query has to be exempt from
|
346
|
+
# garbage collection. This can be achieved with the following DDL
|
347
|
+
# statement:
|
348
|
+
#
|
349
|
+
# ```
|
350
|
+
# ALTER STATISTICS <package_name> SET OPTIONS (allow_gc=false)
|
351
|
+
# ```
|
352
|
+
#
|
353
|
+
# The list of available statistics packages can be queried from
|
354
|
+
# `INFORMATION_SCHEMA.SPANNER_STATISTICS`.
|
355
|
+
#
|
356
|
+
# Executing a SQL statement with an invalid optimizer statistics package
|
357
|
+
# or with a statistics package that allows garbage collection fails with
|
358
|
+
# an `INVALID_ARGUMENT` error.
|
264
359
|
class QueryOptions
|
265
360
|
include ::Google::Protobuf::MessageExts
|
266
361
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -319,6 +414,9 @@ module Google
|
|
319
414
|
# transaction. If a request arrives for the first time with an out-of-order
|
320
415
|
# sequence number, the transaction may be aborted. Replays of previously
|
321
416
|
# handled requests will yield the same response as the first execution.
|
417
|
+
# @!attribute [rw] request_options
|
418
|
+
# @return [::Google::Cloud::Spanner::V1::RequestOptions]
|
419
|
+
# Common options for this request.
|
322
420
|
class ExecuteBatchDmlRequest
|
323
421
|
include ::Google::Protobuf::MessageExts
|
324
422
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -610,6 +708,9 @@ module Google
|
|
610
708
|
# previously created using PartitionRead(). There must be an exact
|
611
709
|
# match for the values of fields common to this message and the
|
612
710
|
# PartitionReadRequest message used to create this partition_token.
|
711
|
+
# @!attribute [rw] request_options
|
712
|
+
# @return [::Google::Cloud::Spanner::V1::RequestOptions]
|
713
|
+
# Common options for this request.
|
613
714
|
class ReadRequest
|
614
715
|
include ::Google::Protobuf::MessageExts
|
615
716
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -622,6 +723,13 @@ module Google
|
|
622
723
|
# @!attribute [rw] options
|
623
724
|
# @return [::Google::Cloud::Spanner::V1::TransactionOptions]
|
624
725
|
# Required. Options for the new transaction.
|
726
|
+
# @!attribute [rw] request_options
|
727
|
+
# @return [::Google::Cloud::Spanner::V1::RequestOptions]
|
728
|
+
# Common options for this request.
|
729
|
+
# Priority is ignored for this request. Setting the priority in this
|
730
|
+
# request_options struct will not do anything. To set the priority for a
|
731
|
+
# transaction, set it on the reads and writes that are part of this
|
732
|
+
# transaction instead.
|
625
733
|
class BeginTransactionRequest
|
626
734
|
include ::Google::Protobuf::MessageExts
|
627
735
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -650,6 +758,14 @@ module Google
|
|
650
758
|
# The mutations to be executed when this transaction commits. All
|
651
759
|
# mutations are applied atomically, in the order they appear in
|
652
760
|
# this list.
|
761
|
+
# @!attribute [rw] return_commit_stats
|
762
|
+
# @return [::Boolean]
|
763
|
+
# If `true`, then statistics related to the transaction will be included in
|
764
|
+
# the {::Google::Cloud::Spanner::V1::CommitResponse#commit_stats CommitResponse}. Default value is
|
765
|
+
# `false`.
|
766
|
+
# @!attribute [rw] request_options
|
767
|
+
# @return [::Google::Cloud::Spanner::V1::RequestOptions]
|
768
|
+
# Common options for this request.
|
653
769
|
class CommitRequest
|
654
770
|
include ::Google::Protobuf::MessageExts
|
655
771
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -659,9 +775,29 @@ module Google
|
|
659
775
|
# @!attribute [rw] commit_timestamp
|
660
776
|
# @return [::Google::Protobuf::Timestamp]
|
661
777
|
# The Cloud Spanner timestamp at which the transaction committed.
|
778
|
+
# @!attribute [rw] commit_stats
|
779
|
+
# @return [::Google::Cloud::Spanner::V1::CommitResponse::CommitStats]
|
780
|
+
# The statistics about this Commit. Not returned by default.
|
781
|
+
# For more information, see
|
782
|
+
# {::Google::Cloud::Spanner::V1::CommitRequest#return_commit_stats CommitRequest.return_commit_stats}.
|
662
783
|
class CommitResponse
|
663
784
|
include ::Google::Protobuf::MessageExts
|
664
785
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
786
|
+
|
787
|
+
# Additional statistics about a commit.
|
788
|
+
# @!attribute [rw] mutation_count
|
789
|
+
# @return [::Integer]
|
790
|
+
# The total number of mutations for the transaction. Knowing the
|
791
|
+
# `mutation_count` value can help you maximize the number of mutations
|
792
|
+
# in a transaction and minimize the number of API round trips. You can
|
793
|
+
# also monitor this value to prevent transactions from exceeding the system
|
794
|
+
# [limit](http://cloud.google.com/spanner/quotas#limits_for_creating_reading_updating_and_deleting_data).
|
795
|
+
# If the number of mutations exceeds the limit, the server returns
|
796
|
+
# [INVALID_ARGUMENT](http://cloud.google.com/spanner/docs/reference/rest/v1/Code#ENUM_VALUES.INVALID_ARGUMENT).
|
797
|
+
class CommitStats
|
798
|
+
include ::Google::Protobuf::MessageExts
|
799
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
800
|
+
end
|
665
801
|
end
|
666
802
|
|
667
803
|
# The request for {::Google::Cloud::Spanner::V1::Spanner::Client#rollback Rollback}.
|