google-cloud-spanner-v1 0.2.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +64 -0
- data/lib/google/cloud/spanner/v1.rb +3 -0
- data/lib/google/cloud/spanner/v1/spanner/client.rb +39 -21
- data/lib/google/cloud/spanner/v1/version.rb +1 -1
- data/lib/google/spanner/v1/spanner_pb.rb +7 -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 +35 -7
- data/proto_docs/google/spanner/v1/transaction.rb +5 -4
- data/proto_docs/google/spanner/v1/type.rb +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 71197f1547efc77716d54ee66970d319818903cc4cb64cd8c5b6aee76e3aae71
|
4
|
+
data.tar.gz: 94ffeb7c16f48f6361008bcd5320209478dabdad29f23b3411698a0ff9b7dc85
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b225156eca4504414c777afa938296d05cb2602cf29b40d04c48091a86dfc74c91fc8ad4b79290c85a43182f758a1b2a3f3661057ffea51f1383e65001a9c842
|
7
|
+
data.tar.gz: 4bd2aba2852364d10ae43ea63620d1ad18f813f73844dadbbfccdbd9ab1bb6795af3d187a4d3f57cdce8a3cb159e636e45255ffb8cfb264f241f1114aafaa641
|
data/README.md
CHANGED
@@ -6,6 +6,12 @@ Cloud Spanner is a managed, mission-critical, globally consistent and scalable r
|
|
6
6
|
|
7
7
|
https://github.com/googleapis/google-cloud-ruby
|
8
8
|
|
9
|
+
This gem is a _versioned_ client. It provides basic client classes for a
|
10
|
+
specific version of the Cloud Spanner V1 API. Most users should consider using
|
11
|
+
the main client gem,
|
12
|
+
[google-cloud-spanner](https://rubygems.org/gems/google-cloud-spanner).
|
13
|
+
See the section below titled *Which client should I use?* for more information.
|
14
|
+
|
9
15
|
## Installation
|
10
16
|
|
11
17
|
```
|
@@ -73,3 +79,61 @@ in security maintenance, and not end of life. Currently, this means Ruby 2.4
|
|
73
79
|
and later. Older versions of Ruby _may_ still work, but are unsupported and not
|
74
80
|
recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details
|
75
81
|
about the Ruby support schedule.
|
82
|
+
|
83
|
+
## Which client should I use?
|
84
|
+
|
85
|
+
Most modern Ruby client libraries for Google APIs come in two flavors: the main
|
86
|
+
client library with a name such as `google-cloud-spanner`,
|
87
|
+
and lower-level _versioned_ client libraries with names such as
|
88
|
+
`google-cloud-spanner-v1`.
|
89
|
+
_In most cases, you should install the main client._
|
90
|
+
|
91
|
+
### What's the difference between the main client and a versioned client?
|
92
|
+
|
93
|
+
A _versioned client_ provides a basic set of data types and client classes for
|
94
|
+
a _single version_ of a specific service. (That is, for a service with multiple
|
95
|
+
versions, there might be a separate versioned client for each service version.)
|
96
|
+
Most versioned clients are written and maintained by a code generator.
|
97
|
+
|
98
|
+
The _main client_ is designed to provide you with the _recommended_ client
|
99
|
+
interfaces for the service. There will be only one main client for any given
|
100
|
+
service, even a service with multiple versions. The main client includes
|
101
|
+
factory methods for constructing the client objects we recommend for most
|
102
|
+
users. In some cases, those will be classes provided by an underlying versioned
|
103
|
+
client; in other cases, they will be handwritten higher-level client objects
|
104
|
+
with additional capabilities, convenience methods, or best practices built in.
|
105
|
+
Generally, the main client will default to a recommended service version,
|
106
|
+
although in some cases you can override this if you need to talk to a specific
|
107
|
+
service version.
|
108
|
+
|
109
|
+
### Why would I want to use the main client?
|
110
|
+
|
111
|
+
We recommend that most users install the main client gem for a service. You can
|
112
|
+
identify this gem as the one _without_ a version in its name, e.g.
|
113
|
+
`google-cloud-spanner`.
|
114
|
+
The main client is recommended because it will embody the best practices for
|
115
|
+
accessing the service, and may also provide more convenient interfaces or
|
116
|
+
tighter integration into frameworks and third-party libraries. In addition, the
|
117
|
+
documentation and samples published by Google will generally demonstrate use of
|
118
|
+
the main client.
|
119
|
+
|
120
|
+
### Why would I want to use a versioned client?
|
121
|
+
|
122
|
+
You can use a versioned client if you are content with a possibly lower-level
|
123
|
+
class interface, you explicitly want to avoid features provided by the main
|
124
|
+
client, or you want to access a specific service version not be covered by the
|
125
|
+
main client. You can identify versioned client gems because the service version
|
126
|
+
is part of the name, e.g. `google-cloud-spanner-v1`.
|
127
|
+
|
128
|
+
### What about the google-apis-<name> clients?
|
129
|
+
|
130
|
+
Client library gems with names that begin with `google-apis-` are based on an
|
131
|
+
older code generation technology. They talk to a REST/JSON backend (whereas
|
132
|
+
most modern clients talk to a [gRPC](https://grpc.io/) backend) and they may
|
133
|
+
not offer the same performance, features, and ease of use provided by more
|
134
|
+
modern clients.
|
135
|
+
|
136
|
+
The `google-apis-` clients have wide coverage across Google services, so you
|
137
|
+
might need to use one if there is no modern client available for the service.
|
138
|
+
However, if a modern client is available, we generally recommend it over the
|
139
|
+
older `google-apis-` clients.
|
@@ -73,7 +73,7 @@ module Google
|
|
73
73
|
initial_delay: 0.25,
|
74
74
|
max_delay: 32.0,
|
75
75
|
multiplier: 1.3,
|
76
|
-
retry_codes: [
|
76
|
+
retry_codes: [14]
|
77
77
|
}
|
78
78
|
|
79
79
|
default_config.rpcs.batch_create_sessions.timeout = 60.0
|
@@ -81,7 +81,7 @@ module Google
|
|
81
81
|
initial_delay: 0.25,
|
82
82
|
max_delay: 32.0,
|
83
83
|
multiplier: 1.3,
|
84
|
-
retry_codes: [
|
84
|
+
retry_codes: [14]
|
85
85
|
}
|
86
86
|
|
87
87
|
default_config.rpcs.get_session.timeout = 30.0
|
@@ -89,7 +89,7 @@ module Google
|
|
89
89
|
initial_delay: 0.25,
|
90
90
|
max_delay: 32.0,
|
91
91
|
multiplier: 1.3,
|
92
|
-
retry_codes: [
|
92
|
+
retry_codes: [14]
|
93
93
|
}
|
94
94
|
|
95
95
|
default_config.rpcs.list_sessions.timeout = 3600.0
|
@@ -97,7 +97,7 @@ module Google
|
|
97
97
|
initial_delay: 0.25,
|
98
98
|
max_delay: 32.0,
|
99
99
|
multiplier: 1.3,
|
100
|
-
retry_codes: [
|
100
|
+
retry_codes: [14]
|
101
101
|
}
|
102
102
|
|
103
103
|
default_config.rpcs.delete_session.timeout = 30.0
|
@@ -105,7 +105,7 @@ module Google
|
|
105
105
|
initial_delay: 0.25,
|
106
106
|
max_delay: 32.0,
|
107
107
|
multiplier: 1.3,
|
108
|
-
retry_codes: [
|
108
|
+
retry_codes: [14]
|
109
109
|
}
|
110
110
|
|
111
111
|
default_config.rpcs.execute_sql.timeout = 30.0
|
@@ -113,7 +113,7 @@ module Google
|
|
113
113
|
initial_delay: 0.25,
|
114
114
|
max_delay: 32.0,
|
115
115
|
multiplier: 1.3,
|
116
|
-
retry_codes: [
|
116
|
+
retry_codes: [14]
|
117
117
|
}
|
118
118
|
|
119
119
|
default_config.rpcs.execute_streaming_sql.timeout = 3600.0
|
@@ -123,7 +123,7 @@ module Google
|
|
123
123
|
initial_delay: 0.25,
|
124
124
|
max_delay: 32.0,
|
125
125
|
multiplier: 1.3,
|
126
|
-
retry_codes: [
|
126
|
+
retry_codes: [14]
|
127
127
|
}
|
128
128
|
|
129
129
|
default_config.rpcs.read.timeout = 30.0
|
@@ -131,7 +131,7 @@ module Google
|
|
131
131
|
initial_delay: 0.25,
|
132
132
|
max_delay: 32.0,
|
133
133
|
multiplier: 1.3,
|
134
|
-
retry_codes: [
|
134
|
+
retry_codes: [14]
|
135
135
|
}
|
136
136
|
|
137
137
|
default_config.rpcs.streaming_read.timeout = 3600.0
|
@@ -141,7 +141,7 @@ module Google
|
|
141
141
|
initial_delay: 0.25,
|
142
142
|
max_delay: 32.0,
|
143
143
|
multiplier: 1.3,
|
144
|
-
retry_codes: [
|
144
|
+
retry_codes: [14]
|
145
145
|
}
|
146
146
|
|
147
147
|
default_config.rpcs.commit.timeout = 3600.0
|
@@ -149,7 +149,7 @@ module Google
|
|
149
149
|
initial_delay: 0.25,
|
150
150
|
max_delay: 32.0,
|
151
151
|
multiplier: 1.3,
|
152
|
-
retry_codes: [
|
152
|
+
retry_codes: [14]
|
153
153
|
}
|
154
154
|
|
155
155
|
default_config.rpcs.rollback.timeout = 30.0
|
@@ -157,7 +157,7 @@ module Google
|
|
157
157
|
initial_delay: 0.25,
|
158
158
|
max_delay: 32.0,
|
159
159
|
multiplier: 1.3,
|
160
|
-
retry_codes: [
|
160
|
+
retry_codes: [14]
|
161
161
|
}
|
162
162
|
|
163
163
|
default_config.rpcs.partition_query.timeout = 30.0
|
@@ -165,7 +165,7 @@ module Google
|
|
165
165
|
initial_delay: 0.25,
|
166
166
|
max_delay: 32.0,
|
167
167
|
multiplier: 1.3,
|
168
|
-
retry_codes: [
|
168
|
+
retry_codes: [14]
|
169
169
|
}
|
170
170
|
|
171
171
|
default_config.rpcs.partition_read.timeout = 30.0
|
@@ -173,7 +173,7 @@ module Google
|
|
173
173
|
initial_delay: 0.25,
|
174
174
|
max_delay: 32.0,
|
175
175
|
multiplier: 1.3,
|
176
|
-
retry_codes: [
|
176
|
+
retry_codes: [14]
|
177
177
|
}
|
178
178
|
|
179
179
|
default_config
|
@@ -237,7 +237,13 @@ module Google
|
|
237
237
|
|
238
238
|
# Create credentials
|
239
239
|
credentials = @config.credentials
|
240
|
-
|
240
|
+
# Use self-signed JWT if the scope and endpoint are unchanged from default,
|
241
|
+
# but only if the default endpoint does not have a region prefix.
|
242
|
+
enable_self_signed_jwt = @config.scope == Client.configure.scope &&
|
243
|
+
@config.endpoint == Client.configure.endpoint &&
|
244
|
+
!@config.endpoint.split(".").first.include?("-")
|
245
|
+
credentials ||= Credentials.default scope: @config.scope,
|
246
|
+
enable_self_signed_jwt: enable_self_signed_jwt
|
241
247
|
if credentials.is_a?(String) || credentials.is_a?(Hash)
|
242
248
|
credentials = Credentials.new credentials, scope: @config.scope
|
243
249
|
end
|
@@ -686,8 +692,9 @@ module Google
|
|
686
692
|
# Parameter names and values that bind to placeholders in the SQL string.
|
687
693
|
#
|
688
694
|
# A parameter placeholder consists of the `@` character followed by the
|
689
|
-
# parameter name (for example, `@firstName`). Parameter names
|
690
|
-
#
|
695
|
+
# parameter name (for example, `@firstName`). Parameter names must conform
|
696
|
+
# to the naming requirements of identifiers as specified at
|
697
|
+
# https://cloud.google.com/spanner/docs/lexical#identifiers.
|
691
698
|
#
|
692
699
|
# Parameters can appear anywhere that a literal value is expected. The same
|
693
700
|
# parameter name can be used more than once, for example:
|
@@ -820,8 +827,9 @@ module Google
|
|
820
827
|
# Parameter names and values that bind to placeholders in the SQL string.
|
821
828
|
#
|
822
829
|
# A parameter placeholder consists of the `@` character followed by the
|
823
|
-
# parameter name (for example, `@firstName`). Parameter names
|
824
|
-
#
|
830
|
+
# parameter name (for example, `@firstName`). Parameter names must conform
|
831
|
+
# to the naming requirements of identifiers as specified at
|
832
|
+
# https://cloud.google.com/spanner/docs/lexical#identifiers.
|
825
833
|
#
|
826
834
|
# Parameters can appear anywhere that a literal value is expected. The same
|
827
835
|
# parameter name can be used more than once, for example:
|
@@ -1322,6 +1330,12 @@ module Google
|
|
1322
1330
|
# reasons. If `Commit` returns `ABORTED`, the caller should re-attempt
|
1323
1331
|
# the transaction from the beginning, re-using the same session.
|
1324
1332
|
#
|
1333
|
+
# On very rare occasions, `Commit` might return `UNKNOWN`. This can happen,
|
1334
|
+
# for example, if the client job experiences a 1+ hour networking failure.
|
1335
|
+
# At that point, Cloud Spanner has lost track of the transaction outcome and
|
1336
|
+
# we recommend that you perform another read from the database to see the
|
1337
|
+
# state of things as they are now.
|
1338
|
+
#
|
1325
1339
|
# @overload commit(request, options = nil)
|
1326
1340
|
# Pass arguments to `commit` via a request object, either of type
|
1327
1341
|
# {::Google::Cloud::Spanner::V1::CommitRequest} or an equivalent Hash.
|
@@ -1332,7 +1346,7 @@ module Google
|
|
1332
1346
|
# @param options [::Gapic::CallOptions, ::Hash]
|
1333
1347
|
# Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
|
1334
1348
|
#
|
1335
|
-
# @overload commit(session: nil, transaction_id: nil, single_use_transaction: nil, mutations: nil)
|
1349
|
+
# @overload commit(session: nil, transaction_id: nil, single_use_transaction: nil, mutations: nil, return_commit_stats: nil)
|
1336
1350
|
# Pass arguments to `commit` via keyword arguments. Note that at
|
1337
1351
|
# least one keyword argument is required. To specify no parameters, or to keep all
|
1338
1352
|
# the default parameter values, pass an empty Hash as a request object (see above).
|
@@ -1355,6 +1369,10 @@ module Google
|
|
1355
1369
|
# The mutations to be executed when this transaction commits. All
|
1356
1370
|
# mutations are applied atomically, in the order they appear in
|
1357
1371
|
# this list.
|
1372
|
+
# @param return_commit_stats [::Boolean]
|
1373
|
+
# If `true`, then statistics related to the transaction will be included in
|
1374
|
+
# the {::Google::Cloud::Spanner::V1::CommitResponse#commit_stats CommitResponse}. Default value is
|
1375
|
+
# `false`.
|
1358
1376
|
#
|
1359
1377
|
# @yield [response, operation] Access the result along with the RPC operation
|
1360
1378
|
# @yieldparam response [::Google::Cloud::Spanner::V1::CommitResponse]
|
@@ -1775,7 +1793,7 @@ module Google
|
|
1775
1793
|
|
1776
1794
|
config_attr :endpoint, "spanner.googleapis.com", ::String
|
1777
1795
|
config_attr :credentials, nil do |value|
|
1778
|
-
allowed = [::String, ::Hash, ::Proc, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
|
1796
|
+
allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
|
1779
1797
|
allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
|
1780
1798
|
allowed.any? { |klass| klass === value }
|
1781
1799
|
end
|
@@ -1815,7 +1833,7 @@ module Google
|
|
1815
1833
|
# Each configuration object is of type `Gapic::Config::Method` and includes
|
1816
1834
|
# the following configuration fields:
|
1817
1835
|
#
|
1818
|
-
# * `timeout` (*type:* `Numeric`) - The call timeout in
|
1836
|
+
# * `timeout` (*type:* `Numeric`) - The call timeout in seconds
|
1819
1837
|
# * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers
|
1820
1838
|
# * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
|
1821
1839
|
# include the following keys:
|
@@ -7,6 +7,7 @@ require 'google/api/annotations_pb'
|
|
7
7
|
require 'google/api/client_pb'
|
8
8
|
require 'google/api/field_behavior_pb'
|
9
9
|
require 'google/api/resource_pb'
|
10
|
+
require 'google/protobuf/duration_pb'
|
10
11
|
require 'google/protobuf/empty_pb'
|
11
12
|
require 'google/protobuf/struct_pb'
|
12
13
|
require 'google/protobuf/timestamp_pb'
|
@@ -133,6 +134,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
133
134
|
add_message "google.spanner.v1.CommitRequest" do
|
134
135
|
optional :session, :string, 1
|
135
136
|
repeated :mutations, :message, 4, "google.spanner.v1.Mutation"
|
137
|
+
optional :return_commit_stats, :bool, 5
|
136
138
|
oneof :transaction do
|
137
139
|
optional :transaction_id, :bytes, 2
|
138
140
|
optional :single_use_transaction, :message, 3, "google.spanner.v1.TransactionOptions"
|
@@ -140,6 +142,10 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
140
142
|
end
|
141
143
|
add_message "google.spanner.v1.CommitResponse" do
|
142
144
|
optional :commit_timestamp, :message, 1, "google.protobuf.Timestamp"
|
145
|
+
optional :commit_stats, :message, 2, "google.spanner.v1.CommitResponse.CommitStats"
|
146
|
+
end
|
147
|
+
add_message "google.spanner.v1.CommitResponse.CommitStats" do
|
148
|
+
optional :mutation_count, :int64, 1
|
143
149
|
end
|
144
150
|
add_message "google.spanner.v1.RollbackRequest" do
|
145
151
|
optional :session, :string, 1
|
@@ -175,6 +181,7 @@ module Google
|
|
175
181
|
BeginTransactionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.BeginTransactionRequest").msgclass
|
176
182
|
CommitRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.CommitRequest").msgclass
|
177
183
|
CommitResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.CommitResponse").msgclass
|
184
|
+
CommitResponse::CommitStats = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.CommitResponse.CommitStats").msgclass
|
178
185
|
RollbackRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.RollbackRequest").msgclass
|
179
186
|
end
|
180
187
|
end
|
@@ -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.
|
@@ -185,8 +184,9 @@ module Google
|
|
185
184
|
# Parameter names and values that bind to placeholders in the SQL string.
|
186
185
|
#
|
187
186
|
# A parameter placeholder consists of the `@` character followed by the
|
188
|
-
# parameter name (for example, `@firstName`). Parameter names
|
189
|
-
#
|
187
|
+
# parameter name (for example, `@firstName`). Parameter names must conform
|
188
|
+
# to the naming requirements of identifiers as specified at
|
189
|
+
# https://cloud.google.com/spanner/docs/lexical#identifiers.
|
190
190
|
#
|
191
191
|
# Parameters can appear anywhere that a literal value is expected. The same
|
192
192
|
# parameter name can be used more than once, for example:
|
@@ -259,6 +259,9 @@ module Google
|
|
259
259
|
# SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS. Executing a SQL statement
|
260
260
|
# with an invalid optimizer version will fail with a syntax error
|
261
261
|
# (`INVALID_ARGUMENT`) status.
|
262
|
+
# See
|
263
|
+
# https://cloud.google.com/spanner/docs/query-optimizer/manage-query-optimizer
|
264
|
+
# for more information on managing the query optimizer.
|
262
265
|
#
|
263
266
|
# The `optimizer_version` statement hint has precedence over this setting.
|
264
267
|
class QueryOptions
|
@@ -650,6 +653,11 @@ module Google
|
|
650
653
|
# The mutations to be executed when this transaction commits. All
|
651
654
|
# mutations are applied atomically, in the order they appear in
|
652
655
|
# this list.
|
656
|
+
# @!attribute [rw] return_commit_stats
|
657
|
+
# @return [::Boolean]
|
658
|
+
# If `true`, then statistics related to the transaction will be included in
|
659
|
+
# the {::Google::Cloud::Spanner::V1::CommitResponse#commit_stats CommitResponse}. Default value is
|
660
|
+
# `false`.
|
653
661
|
class CommitRequest
|
654
662
|
include ::Google::Protobuf::MessageExts
|
655
663
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -659,9 +667,29 @@ module Google
|
|
659
667
|
# @!attribute [rw] commit_timestamp
|
660
668
|
# @return [::Google::Protobuf::Timestamp]
|
661
669
|
# The Cloud Spanner timestamp at which the transaction committed.
|
670
|
+
# @!attribute [rw] commit_stats
|
671
|
+
# @return [::Google::Cloud::Spanner::V1::CommitResponse::CommitStats]
|
672
|
+
# The statistics about this Commit. Not returned by default.
|
673
|
+
# For more information, see
|
674
|
+
# {::Google::Cloud::Spanner::V1::CommitRequest#return_commit_stats CommitRequest.return_commit_stats}.
|
662
675
|
class CommitResponse
|
663
676
|
include ::Google::Protobuf::MessageExts
|
664
677
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
678
|
+
|
679
|
+
# Additional statistics about a commit.
|
680
|
+
# @!attribute [rw] mutation_count
|
681
|
+
# @return [::Integer]
|
682
|
+
# The total number of mutations for the transaction. Knowing the
|
683
|
+
# `mutation_count` value can help you maximize the number of mutations
|
684
|
+
# in a transaction and minimize the number of API round trips. You can
|
685
|
+
# also monitor this value to prevent transactions from exceeding the system
|
686
|
+
# [limit](http://cloud.google.com/spanner/quotas#limits_for_creating_reading_updating_and_deleting_data).
|
687
|
+
# If the number of mutations exceeds the limit, the server returns
|
688
|
+
# [INVALID_ARGUMENT](http://cloud.google.com/spanner/docs/reference/rest/v1/Code#ENUM_VALUES.INVALID_ARGUMENT).
|
689
|
+
class CommitStats
|
690
|
+
include ::Google::Protobuf::MessageExts
|
691
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
692
|
+
end
|
665
693
|
end
|
666
694
|
|
667
695
|
# The request for {::Google::Cloud::Spanner::V1::Spanner::Client#rollback Rollback}.
|
@@ -24,10 +24,11 @@ module Google
|
|
24
24
|
# # Transactions
|
25
25
|
#
|
26
26
|
#
|
27
|
-
# Each session can have at most one active transaction at a time
|
28
|
-
#
|
29
|
-
#
|
30
|
-
#
|
27
|
+
# Each session can have at most one active transaction at a time (note that
|
28
|
+
# standalone reads and queries use a transaction internally and do count
|
29
|
+
# towards the one transaction limit). After the active transaction is
|
30
|
+
# completed, the session can immediately be re-used for the next transaction.
|
31
|
+
# It is not necessary to create a new session for each transaction.
|
31
32
|
#
|
32
33
|
# # Transaction Modes
|
33
34
|
#
|
@@ -59,7 +59,7 @@ module Google
|
|
59
59
|
# SQL queries, it is the column alias (e.g., `"Word"` in the
|
60
60
|
# query `"SELECT 'hello' AS Word"`), or the column name (e.g.,
|
61
61
|
# `"ColName"` in the query `"SELECT ColName FROM Table"`). Some
|
62
|
-
# columns might have an empty name (e.g.,
|
62
|
+
# columns might have an empty name (e.g., `"SELECT
|
63
63
|
# UPPER(ColName)"`). Note that a query result can contain
|
64
64
|
# multiple fields with the same name.
|
65
65
|
# @!attribute [rw] type
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-cloud-spanner-v1
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Google LLC
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gapic-common
|
@@ -151,7 +151,9 @@ dependencies:
|
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0.9'
|
153
153
|
description: Cloud Spanner is a managed, mission-critical, globally consistent and
|
154
|
-
scalable relational database service.
|
154
|
+
scalable relational database service. Note that google-cloud-spanner-v1 is a version-specific
|
155
|
+
client library. For most uses, we recommend installing the main client library google-cloud-spanner
|
156
|
+
instead. See the readme for more details.
|
155
157
|
email: googleapis-packages@google.com
|
156
158
|
executables: []
|
157
159
|
extensions: []
|
@@ -211,7 +213,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
211
213
|
- !ruby/object:Gem::Version
|
212
214
|
version: '0'
|
213
215
|
requirements: []
|
214
|
-
rubygems_version: 3.
|
216
|
+
rubygems_version: 3.2.6
|
215
217
|
signing_key:
|
216
218
|
specification_version: 4
|
217
219
|
summary: API Client library for the Cloud Spanner V1 API
|