google-cloud-spanner-v1 0.7.3 → 0.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.yardopts +1 -1
- data/AUTHENTICATION.md +7 -25
- data/README.md +1 -1
- data/lib/google/cloud/spanner/v1/spanner/client.rb +1 -1
- data/lib/google/cloud/spanner/v1/version.rb +1 -1
- data/lib/google/cloud/spanner/v1.rb +2 -0
- data/lib/google/spanner/v1/commit_response_pb.rb +0 -2
- data/lib/google/spanner/v1/keys_pb.rb +0 -1
- data/lib/google/spanner/v1/mutation_pb.rb +1 -1
- data/lib/google/spanner/v1/query_plan_pb.rb +0 -1
- data/lib/google/spanner/v1/result_set_pb.rb +1 -1
- data/lib/google/spanner/v1/spanner_pb.rb +1 -1
- data/lib/google/spanner/v1/transaction_pb.rb +0 -1
- data/lib/google/spanner/v1/type_pb.rb +6 -1
- data/proto_docs/google/api/resource.rb +10 -71
- data/proto_docs/google/spanner/v1/commit_response.rb +2 -2
- data/proto_docs/google/spanner/v1/spanner.rb +4 -2
- data/proto_docs/google/spanner/v1/transaction.rb +19 -31
- data/proto_docs/google/spanner/v1/type.rb +33 -6
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 93f09468179faf9a4c502c5a276716deea004350d4e929f949f6569c45461cea
|
4
|
+
data.tar.gz: 4b20dc3ee2b9271a1751424d3d7263e48805a9a83c89474c997375e3e7795bf7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ddb5ead04c9bc1692f10899ed8dae40443a2121851b8be4d3538e67887556168920e9e7d9d8ccd19668acd9e670cfdf30ed37e711b03748207f902cb5cbf0b69
|
7
|
+
data.tar.gz: 3bea006bc63c759c3c076cfcc1c935140115dcc64111e9c84e147381094c146064385ad858b91597ff024c3f48daf20053b513f81f4a34f069afe3f40e208b34
|
data/.yardopts
CHANGED
data/AUTHENTICATION.md
CHANGED
@@ -120,15 +120,6 @@ To configure your system for this, simply:
|
|
120
120
|
**NOTE:** This is _not_ recommended for running in production. The Cloud SDK
|
121
121
|
*should* only be used during development.
|
122
122
|
|
123
|
-
[gce-how-to]: https://cloud.google.com/compute/docs/authentication#using
|
124
|
-
[dev-console]: https://console.cloud.google.com/project
|
125
|
-
|
126
|
-
[enable-apis]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/enable-apis.png
|
127
|
-
|
128
|
-
[create-new-service-account]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/create-new-service-account.png
|
129
|
-
[create-new-service-account-existing-keys]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/create-new-service-account-existing-keys.png
|
130
|
-
[reuse-service-account]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/reuse-service-account.png
|
131
|
-
|
132
123
|
## Creating a Service Account
|
133
124
|
|
134
125
|
Google Cloud requires **Service Account Credentials** to
|
@@ -139,31 +130,22 @@ If you are not running this client within
|
|
139
130
|
[Google Cloud Platform environments](#google-cloud-platform-environments), you
|
140
131
|
need a Google Developers service account.
|
141
132
|
|
142
|
-
1. Visit the [Google
|
133
|
+
1. Visit the [Google Cloud Console](https://console.cloud.google.com/project).
|
143
134
|
2. Create a new project or click on an existing project.
|
144
|
-
3. Activate the
|
135
|
+
3. Activate the menu in the upper left and select **APIs & Services**. From
|
145
136
|
here, you will enable the APIs that your application requires.
|
146
137
|
|
147
|
-
![Enable the APIs that your application requires][enable-apis]
|
148
|
-
|
149
138
|
*Note: You may need to enable billing in order to use these services.*
|
150
139
|
|
151
140
|
4. Select **Credentials** from the side navigation.
|
152
141
|
|
153
|
-
|
154
|
-
|
155
|
-
![Create a new service account][create-new-service-account]
|
156
|
-
|
157
|
-
![Create a new service account With Existing Keys][create-new-service-account-existing-keys]
|
158
|
-
|
159
|
-
Find the "Add credentials" drop down and select "Service account" to be
|
160
|
-
guided through downloading a new JSON key file.
|
142
|
+
Find the "Create credentials" drop down near the top of the page, and select
|
143
|
+
"Service account" to be guided through downloading a new JSON key file.
|
161
144
|
|
162
145
|
If you want to re-use an existing service account, you can easily generate a
|
163
|
-
new key file. Just select the account you wish to re-use,
|
164
|
-
|
165
|
-
|
166
|
-
![Re-use an existing service account][reuse-service-account]
|
146
|
+
new key file. Just select the account you wish to re-use, click the pencil
|
147
|
+
tool on the right side to edit the service account, select the **Keys** tab,
|
148
|
+
and then select **Add Key**.
|
167
149
|
|
168
150
|
The key file you download will be used by this library to authenticate API
|
169
151
|
requests and should be stored in a secure location.
|
data/README.md
CHANGED
@@ -37,7 +37,7 @@ request = ::Google::Cloud::Spanner::V1::CreateSessionRequest.new # (request fiel
|
|
37
37
|
response = client.create_session request
|
38
38
|
```
|
39
39
|
|
40
|
-
View the [Client Library Documentation](https://
|
40
|
+
View the [Client Library Documentation](https://cloud.google.com/ruby/docs/reference/google-cloud-spanner-v1/latest)
|
41
41
|
for class and method documentation.
|
42
42
|
|
43
43
|
See also the [Product Documentation](https://cloud.google.com/spanner)
|
@@ -255,7 +255,7 @@ module Google
|
|
255
255
|
# @param database [::String]
|
256
256
|
# Required. The database in which the new session is created.
|
257
257
|
# @param session [::Google::Cloud::Spanner::V1::Session, ::Hash]
|
258
|
-
# The session to create.
|
258
|
+
# Required. The session to create.
|
259
259
|
#
|
260
260
|
# @yield [response, operation] Access the result along with the RPC operation
|
261
261
|
# @yieldparam response [::Google::Cloud::Spanner::V1::Session]
|
@@ -1,9 +1,7 @@
|
|
1
1
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
2
|
# source: google/spanner/v1/commit_response.proto
|
3
3
|
|
4
|
-
require 'google/protobuf/duration_pb'
|
5
4
|
require 'google/protobuf/timestamp_pb'
|
6
|
-
require 'google/api/annotations_pb'
|
7
5
|
require 'google/protobuf'
|
8
6
|
|
9
7
|
Google::Protobuf::DescriptorPool.generated_pool.build do
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
2
|
# source: google/spanner/v1/mutation.proto
|
3
3
|
|
4
|
+
require 'google/api/field_behavior_pb'
|
4
5
|
require 'google/protobuf/struct_pb'
|
5
6
|
require 'google/spanner/v1/keys_pb'
|
6
|
-
require 'google/api/annotations_pb'
|
7
7
|
require 'google/protobuf'
|
8
8
|
|
9
9
|
Google::Protobuf::DescriptorPool.generated_pool.build do
|
@@ -2,10 +2,10 @@
|
|
2
2
|
# source: google/spanner/v1/result_set.proto
|
3
3
|
|
4
4
|
require 'google/protobuf/struct_pb'
|
5
|
+
require 'google/spanner/v1/commit_response_pb'
|
5
6
|
require 'google/spanner/v1/query_plan_pb'
|
6
7
|
require 'google/spanner/v1/transaction_pb'
|
7
8
|
require 'google/spanner/v1/type_pb'
|
8
|
-
require 'google/api/annotations_pb'
|
9
9
|
require 'google/protobuf'
|
10
10
|
|
11
11
|
Google::Protobuf::DescriptorPool.generated_pool.build do
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
2
|
# source: google/spanner/v1/spanner.proto
|
3
3
|
|
4
|
-
require 'google/spanner/v1/commit_response_pb'
|
5
4
|
require 'google/api/annotations_pb'
|
6
5
|
require 'google/api/client_pb'
|
7
6
|
require 'google/api/field_behavior_pb'
|
@@ -10,6 +9,7 @@ require 'google/protobuf/empty_pb'
|
|
10
9
|
require 'google/protobuf/struct_pb'
|
11
10
|
require 'google/protobuf/timestamp_pb'
|
12
11
|
require 'google/rpc/status_pb'
|
12
|
+
require 'google/spanner/v1/commit_response_pb'
|
13
13
|
require 'google/spanner/v1/keys_pb'
|
14
14
|
require 'google/spanner/v1/mutation_pb'
|
15
15
|
require 'google/spanner/v1/result_set_pb'
|
@@ -2,7 +2,6 @@
|
|
2
2
|
# source: google/spanner/v1/type.proto
|
3
3
|
|
4
4
|
require 'google/api/field_behavior_pb'
|
5
|
-
require 'google/api/annotations_pb'
|
6
5
|
require 'google/protobuf'
|
7
6
|
|
8
7
|
Google::Protobuf::DescriptorPool.generated_pool.build do
|
@@ -11,6 +10,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
11
10
|
optional :code, :enum, 1, "google.spanner.v1.TypeCode"
|
12
11
|
optional :array_element_type, :message, 2, "google.spanner.v1.Type"
|
13
12
|
optional :struct_type, :message, 3, "google.spanner.v1.StructType"
|
13
|
+
optional :type_annotation, :enum, 4, "google.spanner.v1.TypeAnnotationCode"
|
14
14
|
end
|
15
15
|
add_message "google.spanner.v1.StructType" do
|
16
16
|
repeated :fields, :message, 1, "google.spanner.v1.StructType.Field"
|
@@ -33,6 +33,10 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
33
33
|
value :NUMERIC, 10
|
34
34
|
value :JSON, 11
|
35
35
|
end
|
36
|
+
add_enum "google.spanner.v1.TypeAnnotationCode" do
|
37
|
+
value :TYPE_ANNOTATION_CODE_UNSPECIFIED, 0
|
38
|
+
value :PG_NUMERIC, 2
|
39
|
+
end
|
36
40
|
end
|
37
41
|
end
|
38
42
|
|
@@ -44,6 +48,7 @@ module Google
|
|
44
48
|
StructType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.StructType").msgclass
|
45
49
|
StructType::Field = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.StructType.Field").msgclass
|
46
50
|
TypeCode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.TypeCode").enummodule
|
51
|
+
TypeAnnotationCode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.TypeAnnotationCode").enummodule
|
47
52
|
end
|
48
53
|
end
|
49
54
|
end
|
@@ -33,11 +33,7 @@ module Google
|
|
33
33
|
# // For Kubernetes resources, the format is {api group}/{kind}.
|
34
34
|
# option (google.api.resource) = {
|
35
35
|
# type: "pubsub.googleapis.com/Topic"
|
36
|
-
#
|
37
|
-
# pattern: "projects/{project}/topics/{topic}"
|
38
|
-
# parent_type: "cloudresourcemanager.googleapis.com/Project"
|
39
|
-
# parent_name_extractor: "projects/{project}"
|
40
|
-
# }
|
36
|
+
# pattern: "projects/{project}/topics/{topic}"
|
41
37
|
# };
|
42
38
|
# }
|
43
39
|
#
|
@@ -45,10 +41,7 @@ module Google
|
|
45
41
|
#
|
46
42
|
# resources:
|
47
43
|
# - type: "pubsub.googleapis.com/Topic"
|
48
|
-
#
|
49
|
-
# - pattern: "projects/{project}/topics/{topic}"
|
50
|
-
# parent_type: "cloudresourcemanager.googleapis.com/Project"
|
51
|
-
# parent_name_extractor: "projects/{project}"
|
44
|
+
# pattern: "projects/{project}/topics/{topic}"
|
52
45
|
#
|
53
46
|
# Sometimes, resources have multiple patterns, typically because they can
|
54
47
|
# live under multiple parents.
|
@@ -58,26 +51,10 @@ module Google
|
|
58
51
|
# message LogEntry {
|
59
52
|
# option (google.api.resource) = {
|
60
53
|
# type: "logging.googleapis.com/LogEntry"
|
61
|
-
#
|
62
|
-
#
|
63
|
-
#
|
64
|
-
#
|
65
|
-
# }
|
66
|
-
# name_descriptor: {
|
67
|
-
# pattern: "folders/{folder}/logs/{log}"
|
68
|
-
# parent_type: "cloudresourcemanager.googleapis.com/Folder"
|
69
|
-
# parent_name_extractor: "folders/{folder}"
|
70
|
-
# }
|
71
|
-
# name_descriptor: {
|
72
|
-
# pattern: "organizations/{organization}/logs/{log}"
|
73
|
-
# parent_type: "cloudresourcemanager.googleapis.com/Organization"
|
74
|
-
# parent_name_extractor: "organizations/{organization}"
|
75
|
-
# }
|
76
|
-
# name_descriptor: {
|
77
|
-
# pattern: "billingAccounts/{billing_account}/logs/{log}"
|
78
|
-
# parent_type: "billing.googleapis.com/BillingAccount"
|
79
|
-
# parent_name_extractor: "billingAccounts/{billing_account}"
|
80
|
-
# }
|
54
|
+
# pattern: "projects/{project}/logs/{log}"
|
55
|
+
# pattern: "folders/{folder}/logs/{log}"
|
56
|
+
# pattern: "organizations/{organization}/logs/{log}"
|
57
|
+
# pattern: "billingAccounts/{billing_account}/logs/{log}"
|
81
58
|
# };
|
82
59
|
# }
|
83
60
|
#
|
@@ -85,48 +62,10 @@ module Google
|
|
85
62
|
#
|
86
63
|
# resources:
|
87
64
|
# - type: 'logging.googleapis.com/LogEntry'
|
88
|
-
#
|
89
|
-
#
|
90
|
-
#
|
91
|
-
#
|
92
|
-
# - pattern: "folders/{folder}/logs/{log}"
|
93
|
-
# parent_type: "cloudresourcemanager.googleapis.com/Folder"
|
94
|
-
# parent_name_extractor: "folders/{folder}"
|
95
|
-
# - pattern: "organizations/{organization}/logs/{log}"
|
96
|
-
# parent_type: "cloudresourcemanager.googleapis.com/Organization"
|
97
|
-
# parent_name_extractor: "organizations/{organization}"
|
98
|
-
# - pattern: "billingAccounts/{billing_account}/logs/{log}"
|
99
|
-
# parent_type: "billing.googleapis.com/BillingAccount"
|
100
|
-
# parent_name_extractor: "billingAccounts/{billing_account}"
|
101
|
-
#
|
102
|
-
# For flexible resources, the resource name doesn't contain parent names, but
|
103
|
-
# the resource itself has parents for policy evaluation.
|
104
|
-
#
|
105
|
-
# Example:
|
106
|
-
#
|
107
|
-
# message Shelf {
|
108
|
-
# option (google.api.resource) = {
|
109
|
-
# type: "library.googleapis.com/Shelf"
|
110
|
-
# name_descriptor: {
|
111
|
-
# pattern: "shelves/{shelf}"
|
112
|
-
# parent_type: "cloudresourcemanager.googleapis.com/Project"
|
113
|
-
# }
|
114
|
-
# name_descriptor: {
|
115
|
-
# pattern: "shelves/{shelf}"
|
116
|
-
# parent_type: "cloudresourcemanager.googleapis.com/Folder"
|
117
|
-
# }
|
118
|
-
# };
|
119
|
-
# }
|
120
|
-
#
|
121
|
-
# The ResourceDescriptor Yaml config will look like:
|
122
|
-
#
|
123
|
-
# resources:
|
124
|
-
# - type: 'library.googleapis.com/Shelf'
|
125
|
-
# name_descriptor:
|
126
|
-
# - pattern: "shelves/{shelf}"
|
127
|
-
# parent_type: "cloudresourcemanager.googleapis.com/Project"
|
128
|
-
# - pattern: "shelves/{shelf}"
|
129
|
-
# parent_type: "cloudresourcemanager.googleapis.com/Folder"
|
65
|
+
# pattern: "projects/{project}/logs/{log}"
|
66
|
+
# pattern: "folders/{folder}/logs/{log}"
|
67
|
+
# pattern: "organizations/{organization}/logs/{log}"
|
68
|
+
# pattern: "billingAccounts/{billing_account}/logs/{log}"
|
130
69
|
# @!attribute [rw] type
|
131
70
|
# @return [::String]
|
132
71
|
# The resource type. It must be in the format of
|
@@ -41,9 +41,9 @@ module Google
|
|
41
41
|
# `mutation_count` value can help you maximize the number of mutations
|
42
42
|
# in a transaction and minimize the number of API round trips. You can
|
43
43
|
# also monitor this value to prevent transactions from exceeding the system
|
44
|
-
# [limit](
|
44
|
+
# [limit](https://cloud.google.com/spanner/quotas#limits_for_creating_reading_updating_and_deleting_data).
|
45
45
|
# If the number of mutations exceeds the limit, the server returns
|
46
|
-
# [INVALID_ARGUMENT](
|
46
|
+
# [INVALID_ARGUMENT](https://cloud.google.com/spanner/docs/reference/rest/v1/Code#ENUM_VALUES.INVALID_ARGUMENT).
|
47
47
|
class CommitStats
|
48
48
|
include ::Google::Protobuf::MessageExts
|
49
49
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -27,7 +27,7 @@ module Google
|
|
27
27
|
# Required. The database in which the new session is created.
|
28
28
|
# @!attribute [rw] session
|
29
29
|
# @return [::Google::Cloud::Spanner::V1::Session]
|
30
|
-
# The session to create.
|
30
|
+
# Required. The session to create.
|
31
31
|
class CreateSessionRequest
|
32
32
|
include ::Google::Protobuf::MessageExts
|
33
33
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -174,6 +174,7 @@ module Google
|
|
174
174
|
# Legal characters for `request_tag` values are all printable characters
|
175
175
|
# (ASCII 32 - 126) and the length of a request_tag is limited to 50
|
176
176
|
# characters. Values that exceed this limit are truncated.
|
177
|
+
# Any leading underscore (_) characters will be removed from the string.
|
177
178
|
# @!attribute [rw] transaction_tag
|
178
179
|
# @return [::String]
|
179
180
|
# A tag used for statistics collection about this transaction.
|
@@ -181,11 +182,12 @@ module Google
|
|
181
182
|
# that belongs to a transaction.
|
182
183
|
# The value of transaction_tag should be the same for all requests belonging
|
183
184
|
# to the same transaction.
|
184
|
-
# If this request doesn
|
185
|
+
# If this request doesn't belong to any transaction, transaction_tag will be
|
185
186
|
# ignored.
|
186
187
|
# Legal characters for `transaction_tag` values are all printable characters
|
187
188
|
# (ASCII 32 - 126) and the length of a transaction_tag is limited to 50
|
188
189
|
# characters. Values that exceed this limit are truncated.
|
190
|
+
# Any leading underscore (_) characters will be removed from the string.
|
189
191
|
class RequestOptions
|
190
192
|
include ::Google::Protobuf::MessageExts
|
191
193
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -21,8 +21,7 @@ module Google
|
|
21
21
|
module Cloud
|
22
22
|
module Spanner
|
23
23
|
module V1
|
24
|
-
#
|
25
|
-
#
|
24
|
+
# Transactions:
|
26
25
|
#
|
27
26
|
# Each session can have at most one active transaction at a time (note that
|
28
27
|
# standalone reads and queries use a transaction internally and do count
|
@@ -30,8 +29,7 @@ module Google
|
|
30
29
|
# completed, the session can immediately be re-used for the next transaction.
|
31
30
|
# It is not necessary to create a new session for each transaction.
|
32
31
|
#
|
33
|
-
#
|
34
|
-
#
|
32
|
+
# Transaction Modes:
|
35
33
|
# Cloud Spanner supports three transaction modes:
|
36
34
|
#
|
37
35
|
# 1. Locking read-write. This type of transaction is the only way
|
@@ -63,8 +61,7 @@ module Google
|
|
63
61
|
# may, however, read/write data in different tables within that
|
64
62
|
# database.
|
65
63
|
#
|
66
|
-
#
|
67
|
-
#
|
64
|
+
# Locking Read-Write Transactions:
|
68
65
|
# Locking transactions may be used to atomically read-modify-write
|
69
66
|
# data anywhere in a database. This type of transaction is externally
|
70
67
|
# consistent.
|
@@ -86,8 +83,7 @@ module Google
|
|
86
83
|
# {::Google::Cloud::Spanner::V1::Spanner::Client#rollback Rollback} request to abort the
|
87
84
|
# transaction.
|
88
85
|
#
|
89
|
-
#
|
90
|
-
#
|
86
|
+
# Semantics:
|
91
87
|
# Cloud Spanner can commit the transaction if all read locks it acquired
|
92
88
|
# are still valid at commit time, and it is able to acquire write
|
93
89
|
# locks for all writes. Cloud Spanner can abort the transaction for any
|
@@ -99,8 +95,7 @@ module Google
|
|
99
95
|
# use Cloud Spanner locks for any sort of mutual exclusion other than
|
100
96
|
# between Cloud Spanner transactions themselves.
|
101
97
|
#
|
102
|
-
#
|
103
|
-
#
|
98
|
+
# Retrying Aborted Transactions:
|
104
99
|
# When a transaction aborts, the application can choose to retry the
|
105
100
|
# whole transaction again. To maximize the chances of successfully
|
106
101
|
# committing the retry, the client should execute the retry in the
|
@@ -108,27 +103,25 @@ module Google
|
|
108
103
|
# priority increases with each consecutive abort, meaning that each
|
109
104
|
# attempt has a slightly better chance of success than the previous.
|
110
105
|
#
|
111
|
-
# Under some circumstances (
|
106
|
+
# Under some circumstances (for example, many transactions attempting to
|
112
107
|
# modify the same row(s)), a transaction can abort many times in a
|
113
108
|
# short period before successfully committing. Thus, it is not a good
|
114
109
|
# idea to cap the number of retries a transaction can attempt;
|
115
|
-
# instead, it is better to limit the total amount of
|
110
|
+
# instead, it is better to limit the total amount of time spent
|
116
111
|
# retrying.
|
117
112
|
#
|
118
|
-
#
|
119
|
-
#
|
113
|
+
# Idle Transactions:
|
120
114
|
# A transaction is considered idle if it has no outstanding reads or
|
121
115
|
# SQL queries and has not started a read or SQL query within the last 10
|
122
116
|
# seconds. Idle transactions can be aborted by Cloud Spanner so that they
|
123
|
-
# don't hold on to locks indefinitely.
|
124
|
-
# fail with error `ABORTED`.
|
117
|
+
# don't hold on to locks indefinitely. If an idle transaction is aborted, the
|
118
|
+
# commit will fail with error `ABORTED`.
|
125
119
|
#
|
126
120
|
# If this behavior is undesirable, periodically executing a simple
|
127
|
-
# SQL query in the transaction (
|
121
|
+
# SQL query in the transaction (for example, `SELECT 1`) prevents the
|
128
122
|
# transaction from becoming idle.
|
129
123
|
#
|
130
|
-
#
|
131
|
-
#
|
124
|
+
# Snapshot Read-Only Transactions:
|
132
125
|
# Snapshot read-only transactions provides a simpler method than
|
133
126
|
# locking read-write transactions for doing several consistent
|
134
127
|
# reads. However, this type of transaction does not support writes.
|
@@ -165,8 +158,7 @@ module Google
|
|
165
158
|
#
|
166
159
|
# Each type of timestamp bound is discussed in detail below.
|
167
160
|
#
|
168
|
-
#
|
169
|
-
#
|
161
|
+
# Strong:
|
170
162
|
# Strong reads are guaranteed to see the effects of all transactions
|
171
163
|
# that have committed before the start of the read. Furthermore, all
|
172
164
|
# rows yielded by a single read are consistent with each other -- if
|
@@ -181,13 +173,12 @@ module Google
|
|
181
173
|
#
|
182
174
|
# See {::Google::Cloud::Spanner::V1::TransactionOptions::ReadOnly#strong TransactionOptions.ReadOnly.strong}.
|
183
175
|
#
|
184
|
-
#
|
185
|
-
#
|
176
|
+
# Exact Staleness:
|
186
177
|
# These timestamp bounds execute reads at a user-specified
|
187
178
|
# timestamp. Reads at a timestamp are guaranteed to see a consistent
|
188
179
|
# prefix of the global transaction history: they observe
|
189
|
-
# modifications done by all transactions with a commit timestamp
|
190
|
-
# the read timestamp, and observe none of the modifications done by
|
180
|
+
# modifications done by all transactions with a commit timestamp less than or
|
181
|
+
# equal to the read timestamp, and observe none of the modifications done by
|
191
182
|
# transactions with a larger commit timestamp. They will block until
|
192
183
|
# all conflicting transactions that may be assigned commit timestamps
|
193
184
|
# <= the read timestamp have finished.
|
@@ -203,8 +194,7 @@ module Google
|
|
203
194
|
# See {::Google::Cloud::Spanner::V1::TransactionOptions::ReadOnly#read_timestamp TransactionOptions.ReadOnly.read_timestamp} and
|
204
195
|
# {::Google::Cloud::Spanner::V1::TransactionOptions::ReadOnly#exact_staleness TransactionOptions.ReadOnly.exact_staleness}.
|
205
196
|
#
|
206
|
-
#
|
207
|
-
#
|
197
|
+
# Bounded Staleness:
|
208
198
|
# Bounded staleness modes allow Cloud Spanner to pick the read timestamp,
|
209
199
|
# subject to a user-provided staleness bound. Cloud Spanner chooses the
|
210
200
|
# newest timestamp within the staleness bound that allows execution
|
@@ -233,8 +223,7 @@ module Google
|
|
233
223
|
# See {::Google::Cloud::Spanner::V1::TransactionOptions::ReadOnly#max_staleness TransactionOptions.ReadOnly.max_staleness} and
|
234
224
|
# {::Google::Cloud::Spanner::V1::TransactionOptions::ReadOnly#min_read_timestamp TransactionOptions.ReadOnly.min_read_timestamp}.
|
235
225
|
#
|
236
|
-
#
|
237
|
-
#
|
226
|
+
# Old Read Timestamps and Garbage Collection:
|
238
227
|
# Cloud Spanner continuously garbage collects deleted and overwritten data
|
239
228
|
# in the background to reclaim storage space. This process is known
|
240
229
|
# as "version GC". By default, version GC reclaims versions after they
|
@@ -244,8 +233,7 @@ module Google
|
|
244
233
|
# timestamp become too old while executing. Reads and SQL queries with
|
245
234
|
# too-old read timestamps fail with the error `FAILED_PRECONDITION`.
|
246
235
|
#
|
247
|
-
#
|
248
|
-
#
|
236
|
+
# Partitioned DML Transactions:
|
249
237
|
# Partitioned DML transactions are used to execute DML statements with a
|
250
238
|
# different execution strategy that provides different, and often better,
|
251
239
|
# scalability properties for large, table-wide operations than DML in a
|
@@ -34,6 +34,14 @@ module Google
|
|
34
34
|
# @return [::Google::Cloud::Spanner::V1::StructType]
|
35
35
|
# If {::Google::Cloud::Spanner::V1::Type#code code} == {::Google::Cloud::Spanner::V1::TypeCode::STRUCT STRUCT}, then `struct_type`
|
36
36
|
# provides type information for the struct's fields.
|
37
|
+
# @!attribute [rw] type_annotation
|
38
|
+
# @return [::Google::Cloud::Spanner::V1::TypeAnnotationCode]
|
39
|
+
# The {::Google::Cloud::Spanner::V1::TypeAnnotationCode TypeAnnotationCode} that disambiguates SQL type that Spanner will
|
40
|
+
# use to represent values of this type during query processing. This is
|
41
|
+
# necessary for some type codes because a single {::Google::Cloud::Spanner::V1::TypeCode TypeCode} can be mapped
|
42
|
+
# to different SQL types depending on the SQL dialect. {::Google::Cloud::Spanner::V1::Type#type_annotation type_annotation}
|
43
|
+
# typically is not needed to process the content of a value (it doesn't
|
44
|
+
# affect serialization) and clients can ignore it on the read path.
|
37
45
|
class Type
|
38
46
|
include ::Google::Protobuf::MessageExts
|
39
47
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -132,15 +140,34 @@ module Google
|
|
132
140
|
# <br>(ExponentIndicator is `"e"` or `"E"`)
|
133
141
|
NUMERIC = 10
|
134
142
|
|
135
|
-
# Encoded as a JSON-formatted
|
136
|
-
# following rules
|
137
|
-
#
|
138
|
-
# -
|
139
|
-
#
|
143
|
+
# Encoded as a JSON-formatted `string` as described in RFC 7159. The
|
144
|
+
# following rules are applied when parsing JSON input:
|
145
|
+
#
|
146
|
+
# - Whitespace characters are not preserved.
|
147
|
+
# - If a JSON object has duplicate keys, only the first key is preserved.
|
140
148
|
# - Members of a JSON object are not guaranteed to have their order
|
141
|
-
# preserved.
|
149
|
+
# preserved.
|
150
|
+
# - JSON array elements will have their order preserved.
|
142
151
|
JSON = 11
|
143
152
|
end
|
153
|
+
|
154
|
+
# `TypeAnnotationCode` is used as a part of {::Google::Cloud::Spanner::V1::Type Type} to
|
155
|
+
# disambiguate SQL types that should be used for a given Cloud Spanner value.
|
156
|
+
# Disambiguation is needed because the same Cloud Spanner type can be mapped to
|
157
|
+
# different SQL types depending on SQL dialect. TypeAnnotationCode doesn't
|
158
|
+
# affect the way value is serialized.
|
159
|
+
module TypeAnnotationCode
|
160
|
+
# Not specified.
|
161
|
+
TYPE_ANNOTATION_CODE_UNSPECIFIED = 0
|
162
|
+
|
163
|
+
# PostgreSQL compatible NUMERIC type. This annotation needs to be applied to
|
164
|
+
# {::Google::Cloud::Spanner::V1::Type Type} instances having {::Google::Cloud::Spanner::V1::TypeCode::NUMERIC NUMERIC}
|
165
|
+
# type code to specify that values of this type should be treated as
|
166
|
+
# PostgreSQL NUMERIC values. Currently this annotation is always needed for
|
167
|
+
# {::Google::Cloud::Spanner::V1::TypeCode::NUMERIC NUMERIC} when a client interacts with PostgreSQL-enabled
|
168
|
+
# Spanner databases.
|
169
|
+
PG_NUMERIC = 2
|
170
|
+
end
|
144
171
|
end
|
145
172
|
end
|
146
173
|
end
|
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.8.1
|
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: 2022-03-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gapic-common
|
@@ -221,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
221
221
|
- !ruby/object:Gem::Version
|
222
222
|
version: '0'
|
223
223
|
requirements: []
|
224
|
-
rubygems_version: 3.
|
224
|
+
rubygems_version: 3.3.5
|
225
225
|
signing_key:
|
226
226
|
specification_version: 4
|
227
227
|
summary: API Client library for the Cloud Spanner V1 API
|