google-cloud-spanner-v1 0.7.3 → 0.8.1
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/.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
|