google-cloud-spanner-v1 1.6.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/google/cloud/spanner/v1/version.rb +1 -1
- data/lib/google/spanner/v1/result_set_pb.rb +1 -1
- data/lib/google/spanner/v1/transaction_pb.rb +2 -1
- data/proto_docs/google/api/client.rb +14 -0
- data/proto_docs/google/spanner/v1/result_set.rb +54 -47
- data/proto_docs/google/spanner/v1/transaction.rb +48 -1
- 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: f1667e8dd7541d5f00dbd8ec7ffce37dab1a398d914a19c04f4005ec53206bbd
|
4
|
+
data.tar.gz: a6f63d4162d5e539ad5ba4bd6bf0075c2e7b8d27b14090a41c2a6a6882246660
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb1658b52163c6e7cfcd933d2edea3e9052a49f44b401d4750a9968be5701bcee94e1439edb8ae6e3abe42ba697c5a4788c16184ff7bdd917e1d5e52bede6db1
|
7
|
+
data.tar.gz: 7b3060171334a765b030e17363576eabc013f6e0fbfeb1290c5aeb471dd7dad760a7a122d63ad27c7f7dd76e7b4d5c35d87fe442e60dc526383894601f38f6bd
|
@@ -11,7 +11,7 @@ require 'google/spanner/v1/transaction_pb'
|
|
11
11
|
require 'google/spanner/v1/type_pb'
|
12
12
|
|
13
13
|
|
14
|
-
descriptor_data = "\n\"google/spanner/v1/result_set.proto\x12\x11google.spanner.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\"google/spanner/v1/query_plan.proto\x1a#google/spanner/v1/transaction.proto\x1a\x1cgoogle/spanner/v1/type.proto\"\xf2\x01\n\tResultSet\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.google.spanner.v1.ResultSetMetadata\x12(\n\x04rows\x18\x02 \x03(\x0b\x32\x1a.google.protobuf.ListValue\x12\x30\n\x05stats\x18\x03 \x01(\x0b\x32!.google.spanner.v1.ResultSetStats\x12Q\n\x0fprecommit_token\x18\x05 \x01(\x0b\x32\x33.google.spanner.v1.MultiplexedSessionPrecommitTokenB\x03\xe0\x41\x01\"\
|
14
|
+
descriptor_data = "\n\"google/spanner/v1/result_set.proto\x12\x11google.spanner.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\"google/spanner/v1/query_plan.proto\x1a#google/spanner/v1/transaction.proto\x1a\x1cgoogle/spanner/v1/type.proto\"\xf2\x01\n\tResultSet\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.google.spanner.v1.ResultSetMetadata\x12(\n\x04rows\x18\x02 \x03(\x0b\x32\x1a.google.protobuf.ListValue\x12\x30\n\x05stats\x18\x03 \x01(\x0b\x32!.google.spanner.v1.ResultSetStats\x12Q\n\x0fprecommit_token\x18\x05 \x01(\x0b\x32\x33.google.spanner.v1.MultiplexedSessionPrecommitTokenB\x03\xe0\x41\x01\"\xb7\x02\n\x10PartialResultSet\x12\x36\n\x08metadata\x18\x01 \x01(\x0b\x32$.google.spanner.v1.ResultSetMetadata\x12&\n\x06values\x18\x02 \x03(\x0b\x32\x16.google.protobuf.Value\x12\x15\n\rchunked_value\x18\x03 \x01(\x08\x12\x14\n\x0cresume_token\x18\x04 \x01(\x0c\x12\x30\n\x05stats\x18\x05 \x01(\x0b\x32!.google.spanner.v1.ResultSetStats\x12Q\n\x0fprecommit_token\x18\x08 \x01(\x0b\x32\x33.google.spanner.v1.MultiplexedSessionPrecommitTokenB\x03\xe0\x41\x01\x12\x11\n\x04last\x18\t \x01(\x08\x42\x03\xe0\x41\x01\"\xb7\x01\n\x11ResultSetMetadata\x12/\n\x08row_type\x18\x01 \x01(\x0b\x32\x1d.google.spanner.v1.StructType\x12\x33\n\x0btransaction\x18\x02 \x01(\x0b\x32\x1e.google.spanner.v1.Transaction\x12<\n\x15undeclared_parameters\x18\x03 \x01(\x0b\x32\x1d.google.spanner.v1.StructType\"\xb9\x01\n\x0eResultSetStats\x12\x30\n\nquery_plan\x18\x01 \x01(\x0b\x32\x1c.google.spanner.v1.QueryPlan\x12,\n\x0bquery_stats\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x19\n\x0frow_count_exact\x18\x03 \x01(\x03H\x00\x12\x1f\n\x15row_count_lower_bound\x18\x04 \x01(\x03H\x00\x42\x0b\n\trow_countB\xb1\x01\n\x15\x63om.google.spanner.v1B\x0eResultSetProtoP\x01Z5cloud.google.com/go/spanner/apiv1/spannerpb;spannerpb\xaa\x02\x17Google.Cloud.Spanner.V1\xca\x02\x17Google\\Cloud\\Spanner\\V1\xea\x02\x1aGoogle::Cloud::Spanner::V1b\x06proto3"
|
15
15
|
|
16
16
|
pool = Google::Protobuf::DescriptorPool.generated_pool
|
17
17
|
|
@@ -9,7 +9,7 @@ require 'google/protobuf/duration_pb'
|
|
9
9
|
require 'google/protobuf/timestamp_pb'
|
10
10
|
|
11
11
|
|
12
|
-
descriptor_data = "\n#google/spanner/v1/transaction.proto\x12\x11google.spanner.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\
|
12
|
+
descriptor_data = "\n#google/spanner/v1/transaction.proto\x12\x11google.spanner.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xf7\x07\n\x12TransactionOptions\x12\x45\n\nread_write\x18\x01 \x01(\x0b\x32/.google.spanner.v1.TransactionOptions.ReadWriteH\x00\x12O\n\x0fpartitioned_dml\x18\x03 \x01(\x0b\x32\x34.google.spanner.v1.TransactionOptions.PartitionedDmlH\x00\x12\x43\n\tread_only\x18\x02 \x01(\x0b\x32..google.spanner.v1.TransactionOptions.ReadOnlyH\x00\x12\'\n\x1f\x65xclude_txn_from_change_streams\x18\x05 \x01(\x08\x12M\n\x0fisolation_level\x18\x06 \x01(\x0e\x32\x34.google.spanner.v1.TransactionOptions.IsolationLevel\x1a\xec\x01\n\tReadWrite\x12T\n\x0eread_lock_mode\x18\x01 \x01(\x0e\x32<.google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode\x12\x38\n+multiplexed_session_previous_transaction_id\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x01\"O\n\x0cReadLockMode\x12\x1e\n\x1aREAD_LOCK_MODE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bPESSIMISTIC\x10\x01\x12\x0e\n\nOPTIMISTIC\x10\x02\x1a\x10\n\x0ePartitionedDml\x1a\xa8\x02\n\x08ReadOnly\x12\x10\n\x06strong\x18\x01 \x01(\x08H\x00\x12\x38\n\x12min_read_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12\x32\n\rmax_staleness\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x34\n\x0eread_timestamp\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12\x34\n\x0f\x65xact_staleness\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x1d\n\x15return_read_timestamp\x18\x06 \x01(\x08\x42\x11\n\x0ftimestamp_bound\"X\n\x0eIsolationLevel\x12\x1f\n\x1bISOLATION_LEVEL_UNSPECIFIED\x10\x00\x12\x10\n\x0cSERIALIZABLE\x10\x01\x12\x13\n\x0fREPEATABLE_READ\x10\x02\x42\x06\n\x04mode\"\x9b\x01\n\x0bTransaction\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x32\n\x0eread_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12L\n\x0fprecommit_token\x18\x03 \x01(\x0b\x32\x33.google.spanner.v1.MultiplexedSessionPrecommitToken\"\xa4\x01\n\x13TransactionSelector\x12;\n\nsingle_use\x18\x01 \x01(\x0b\x32%.google.spanner.v1.TransactionOptionsH\x00\x12\x0c\n\x02id\x18\x02 \x01(\x0cH\x00\x12\x36\n\x05\x62\x65gin\x18\x03 \x01(\x0b\x32%.google.spanner.v1.TransactionOptionsH\x00\x42\n\n\x08selector\"L\n MultiplexedSessionPrecommitToken\x12\x17\n\x0fprecommit_token\x18\x01 \x01(\x0c\x12\x0f\n\x07seq_num\x18\x02 \x01(\x05\x42\xb3\x01\n\x15\x63om.google.spanner.v1B\x10TransactionProtoP\x01Z5cloud.google.com/go/spanner/apiv1/spannerpb;spannerpb\xaa\x02\x17Google.Cloud.Spanner.V1\xca\x02\x17Google\\Cloud\\Spanner\\V1\xea\x02\x1aGoogle::Cloud::Spanner::V1b\x06proto3"
|
13
13
|
|
14
14
|
pool = Google::Protobuf::DescriptorPool.generated_pool
|
15
15
|
|
@@ -46,6 +46,7 @@ module Google
|
|
46
46
|
TransactionOptions::ReadWrite::ReadLockMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode").enummodule
|
47
47
|
TransactionOptions::PartitionedDml = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.TransactionOptions.PartitionedDml").msgclass
|
48
48
|
TransactionOptions::ReadOnly = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.TransactionOptions.ReadOnly").msgclass
|
49
|
+
TransactionOptions::IsolationLevel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.TransactionOptions.IsolationLevel").enummodule
|
49
50
|
Transaction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.Transaction").msgclass
|
50
51
|
TransactionSelector = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.TransactionSelector").msgclass
|
51
52
|
MultiplexedSessionPrecommitToken = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.MultiplexedSessionPrecommitToken").msgclass
|
@@ -221,6 +221,12 @@ module Google
|
|
221
221
|
# Pythonic which are included in `protobuf>=5.29.x`. This feature will be
|
222
222
|
# enabled by default 1 month after launching the feature in preview
|
223
223
|
# packages.
|
224
|
+
# @!attribute [rw] unversioned_package_disabled
|
225
|
+
# @return [::Boolean]
|
226
|
+
# Disables generation of an unversioned Python package for this client
|
227
|
+
# library. This means that the module names will need to be versioned in
|
228
|
+
# import statements. For example `import google.cloud.library_v2` instead
|
229
|
+
# of `import google.cloud.library`.
|
224
230
|
class ExperimentalFeatures
|
225
231
|
include ::Google::Protobuf::MessageExts
|
226
232
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -409,6 +415,14 @@ module Google
|
|
409
415
|
# @return [::Array<::String>]
|
410
416
|
# An allowlist of the fully qualified names of RPCs that should be included
|
411
417
|
# on public client surfaces.
|
418
|
+
# @!attribute [rw] generate_omitted_as_internal
|
419
|
+
# @return [::Boolean]
|
420
|
+
# Setting this to true indicates to the client generators that methods
|
421
|
+
# that would be excluded from the generation should instead be generated
|
422
|
+
# in a way that indicates these methods should not be consumed by
|
423
|
+
# end users. How this is expressed is up to individual language
|
424
|
+
# implementations to decide. Some examples may be: added annotations,
|
425
|
+
# obfuscated identifiers, or other language idiomatic patterns.
|
412
426
|
class SelectiveGapicGeneration
|
413
427
|
include ::Google::Protobuf::MessageExts
|
414
428
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -29,11 +29,10 @@ module Google
|
|
29
29
|
# @!attribute [rw] rows
|
30
30
|
# @return [::Array<::Google::Protobuf::ListValue>]
|
31
31
|
# Each element in `rows` is a row whose format is defined by
|
32
|
-
# {::Google::Cloud::Spanner::V1::ResultSetMetadata#row_type metadata.row_type}. The ith
|
33
|
-
# in each row matches the ith field in
|
34
|
-
# {::Google::Cloud::Spanner::V1::ResultSetMetadata#row_type metadata.row_type}. Elements
|
35
|
-
# encoded based on type as described
|
36
|
-
# {::Google::Cloud::Spanner::V1::TypeCode here}.
|
32
|
+
# {::Google::Cloud::Spanner::V1::ResultSetMetadata#row_type metadata.row_type}. The ith
|
33
|
+
# element in each row matches the ith field in
|
34
|
+
# {::Google::Cloud::Spanner::V1::ResultSetMetadata#row_type metadata.row_type}. Elements
|
35
|
+
# are encoded based on type as described {::Google::Cloud::Spanner::V1::TypeCode here}.
|
37
36
|
# @!attribute [rw] stats
|
38
37
|
# @return [::Google::Cloud::Spanner::V1::ResultSetStats]
|
39
38
|
# Query plan and execution statistics for the SQL statement that
|
@@ -41,18 +40,16 @@ module Google
|
|
41
40
|
# {::Google::Cloud::Spanner::V1::ExecuteSqlRequest#query_mode ExecuteSqlRequest.query_mode}.
|
42
41
|
# DML statements always produce stats containing the number of rows
|
43
42
|
# modified, unless executed using the
|
44
|
-
# {::Google::Cloud::Spanner::V1::ExecuteSqlRequest::QueryMode::PLAN ExecuteSqlRequest.QueryMode.PLAN}
|
45
|
-
#
|
43
|
+
# {::Google::Cloud::Spanner::V1::ExecuteSqlRequest::QueryMode::PLAN ExecuteSqlRequest.QueryMode.PLAN}
|
44
|
+
# {::Google::Cloud::Spanner::V1::ExecuteSqlRequest#query_mode ExecuteSqlRequest.query_mode}.
|
45
|
+
# Other fields might or might not be populated, based on the
|
46
46
|
# {::Google::Cloud::Spanner::V1::ExecuteSqlRequest#query_mode ExecuteSqlRequest.query_mode}.
|
47
47
|
# @!attribute [rw] precommit_token
|
48
48
|
# @return [::Google::Cloud::Spanner::V1::MultiplexedSessionPrecommitToken]
|
49
|
-
# Optional. A precommit token
|
50
|
-
#
|
51
|
-
#
|
52
|
-
# attempt should be passed to the
|
49
|
+
# Optional. A precommit token is included if the read-write transaction is on
|
50
|
+
# a multiplexed session. Pass the precommit token with the highest sequence
|
51
|
+
# number from this transaction attempt to the
|
53
52
|
# {::Google::Cloud::Spanner::V1::Spanner::Client#commit Commit} request for this transaction.
|
54
|
-
# This feature is not yet supported and will result in an UNIMPLEMENTED
|
55
|
-
# error.
|
56
53
|
class ResultSet
|
57
54
|
include ::Google::Protobuf::MessageExts
|
58
55
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -76,13 +73,14 @@ module Google
|
|
76
73
|
# Most values are encoded based on type as described
|
77
74
|
# {::Google::Cloud::Spanner::V1::TypeCode here}.
|
78
75
|
#
|
79
|
-
# It
|
76
|
+
# It's possible that the last value in values is "chunked",
|
80
77
|
# meaning that the rest of the value is sent in subsequent
|
81
|
-
# `PartialResultSet`(s). This is denoted by the
|
82
|
-
# field.
|
83
|
-
# complete value as
|
78
|
+
# `PartialResultSet`(s). This is denoted by the
|
79
|
+
# {::Google::Cloud::Spanner::V1::PartialResultSet#chunked_value chunked_value} field.
|
80
|
+
# Two or more chunked values can be merged to form a complete value as
|
81
|
+
# follows:
|
84
82
|
#
|
85
|
-
# * `bool/number/null`:
|
83
|
+
# * `bool/number/null`: can't be chunked
|
86
84
|
# * `string`: concatenate the strings
|
87
85
|
# * `list`: concatenate the lists. If the last element in a list is a
|
88
86
|
# `string`, `list`, or `object`, merge it with the first element in
|
@@ -93,28 +91,28 @@ module Google
|
|
93
91
|
#
|
94
92
|
# Some examples of merging:
|
95
93
|
#
|
96
|
-
#
|
94
|
+
# Strings are concatenated.
|
97
95
|
# "foo", "bar" => "foobar"
|
98
96
|
#
|
99
|
-
#
|
97
|
+
# Lists of non-strings are concatenated.
|
100
98
|
# [2, 3], [4] => [2, 3, 4]
|
101
99
|
#
|
102
|
-
#
|
103
|
-
#
|
100
|
+
# Lists are concatenated, but the last and first elements are merged
|
101
|
+
# because they are strings.
|
104
102
|
# ["a", "b"], ["c", "d"] => ["a", "bc", "d"]
|
105
103
|
#
|
106
|
-
#
|
107
|
-
#
|
108
|
-
#
|
104
|
+
# Lists are concatenated, but the last and first elements are merged
|
105
|
+
# because they are lists. Recursively, the last and first elements
|
106
|
+
# of the inner lists are merged because they are strings.
|
109
107
|
# ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"]
|
110
108
|
#
|
111
|
-
#
|
109
|
+
# Non-overlapping object fields are combined.
|
112
110
|
# {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"}
|
113
111
|
#
|
114
|
-
#
|
112
|
+
# Overlapping object fields are merged.
|
115
113
|
# {"a": "1"}, {"a": "2"} => {"a": "12"}
|
116
114
|
#
|
117
|
-
#
|
115
|
+
# Examples of merging objects containing lists of strings.
|
118
116
|
# {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]}
|
119
117
|
#
|
120
118
|
# For a more complete example, suppose a streaming SQL query is
|
@@ -130,7 +128,6 @@ module Google
|
|
130
128
|
# {
|
131
129
|
# "values": ["orl"]
|
132
130
|
# "chunked_value": true
|
133
|
-
# "resume_token": "Bqp2..."
|
134
131
|
# }
|
135
132
|
# {
|
136
133
|
# "values": ["d"]
|
@@ -140,11 +137,17 @@ module Google
|
|
140
137
|
# This sequence of `PartialResultSet`s encodes two rows, one
|
141
138
|
# containing the field value `"Hello"`, and a second containing the
|
142
139
|
# field value `"World" = "W" + "orl" + "d"`.
|
140
|
+
#
|
141
|
+
# Not all `PartialResultSet`s contain a `resume_token`. Execution can only be
|
142
|
+
# resumed from a previously yielded `resume_token`. For the above sequence of
|
143
|
+
# `PartialResultSet`s, resuming the query with `"resume_token": "Af65..."`
|
144
|
+
# yields results from the `PartialResultSet` with value "orl".
|
143
145
|
# @!attribute [rw] chunked_value
|
144
146
|
# @return [::Boolean]
|
145
|
-
# If true, then the final value in
|
146
|
-
#
|
147
|
-
# to obtain a
|
147
|
+
# If true, then the final value in
|
148
|
+
# {::Google::Cloud::Spanner::V1::PartialResultSet#values values} is chunked, and must be
|
149
|
+
# combined with more values from subsequent `PartialResultSet`s to obtain a
|
150
|
+
# complete field value.
|
148
151
|
# @!attribute [rw] resume_token
|
149
152
|
# @return [::String]
|
150
153
|
# Streaming calls might be interrupted for a variety of reasons, such
|
@@ -156,29 +159,31 @@ module Google
|
|
156
159
|
# @return [::Google::Cloud::Spanner::V1::ResultSetStats]
|
157
160
|
# Query plan and execution statistics for the statement that produced this
|
158
161
|
# streaming result set. These can be requested by setting
|
159
|
-
# {::Google::Cloud::Spanner::V1::ExecuteSqlRequest#query_mode ExecuteSqlRequest.query_mode}
|
160
|
-
# only once with the last response in the stream.
|
161
|
-
#
|
162
|
-
# statements.
|
162
|
+
# {::Google::Cloud::Spanner::V1::ExecuteSqlRequest#query_mode ExecuteSqlRequest.query_mode}
|
163
|
+
# and are sent only once with the last response in the stream. This field is
|
164
|
+
# also present in the last response for DML statements.
|
163
165
|
# @!attribute [rw] precommit_token
|
164
166
|
# @return [::Google::Cloud::Spanner::V1::MultiplexedSessionPrecommitToken]
|
165
|
-
# Optional. A precommit token
|
166
|
-
#
|
167
|
-
#
|
168
|
-
# attempt should be passed to the
|
167
|
+
# Optional. A precommit token is included if the read-write transaction
|
168
|
+
# has multiplexed sessions enabled. Pass the precommit token with the highest
|
169
|
+
# sequence number from this transaction attempt to the
|
169
170
|
# {::Google::Cloud::Spanner::V1::Spanner::Client#commit Commit} request for this transaction.
|
170
|
-
#
|
171
|
-
#
|
171
|
+
# @!attribute [rw] last
|
172
|
+
# @return [::Boolean]
|
173
|
+
# Optional. Indicates whether this is the last `PartialResultSet` in the
|
174
|
+
# stream. The server might optionally set this field. Clients shouldn't rely
|
175
|
+
# on this field being set in all cases.
|
172
176
|
class PartialResultSet
|
173
177
|
include ::Google::Protobuf::MessageExts
|
174
178
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
175
179
|
end
|
176
180
|
|
177
|
-
# Metadata about a {::Google::Cloud::Spanner::V1::ResultSet ResultSet} or
|
181
|
+
# Metadata about a {::Google::Cloud::Spanner::V1::ResultSet ResultSet} or
|
182
|
+
# {::Google::Cloud::Spanner::V1::PartialResultSet PartialResultSet}.
|
178
183
|
# @!attribute [rw] row_type
|
179
184
|
# @return [::Google::Cloud::Spanner::V1::StructType]
|
180
185
|
# Indicates the field names and types for the rows in the result
|
181
|
-
# set.
|
186
|
+
# set. For example, a SQL query like `"SELECT UserId, UserName FROM
|
182
187
|
# Users"` could return a `row_type` value like:
|
183
188
|
#
|
184
189
|
# "fields": [
|
@@ -206,10 +211,12 @@ module Google
|
|
206
211
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
207
212
|
end
|
208
213
|
|
209
|
-
# Additional statistics about a {::Google::Cloud::Spanner::V1::ResultSet ResultSet} or
|
214
|
+
# Additional statistics about a {::Google::Cloud::Spanner::V1::ResultSet ResultSet} or
|
215
|
+
# {::Google::Cloud::Spanner::V1::PartialResultSet PartialResultSet}.
|
210
216
|
# @!attribute [rw] query_plan
|
211
217
|
# @return [::Google::Cloud::Spanner::V1::QueryPlan]
|
212
|
-
# {::Google::Cloud::Spanner::V1::QueryPlan QueryPlan} for the query associated with this
|
218
|
+
# {::Google::Cloud::Spanner::V1::QueryPlan QueryPlan} for the query associated with this
|
219
|
+
# result.
|
213
220
|
# @!attribute [rw] query_stats
|
214
221
|
# @return [::Google::Protobuf::Struct]
|
215
222
|
# Aggregated statistics from the execution of the query. Only present when
|
@@ -228,7 +235,7 @@ module Google
|
|
228
235
|
# Note: The following fields are mutually exclusive: `row_count_exact`, `row_count_lower_bound`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
229
236
|
# @!attribute [rw] row_count_lower_bound
|
230
237
|
# @return [::Integer]
|
231
|
-
# Partitioned DML
|
238
|
+
# Partitioned DML doesn't offer exactly-once semantics, so it
|
232
239
|
# returns a lower bound of the rows modified.
|
233
240
|
#
|
234
241
|
# Note: The following fields are mutually exclusive: `row_count_lower_bound`, `row_count_exact`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
@@ -388,6 +388,9 @@ module Google
|
|
388
388
|
# `exclude_txn_from_change_streams` may only be specified for read-write or
|
389
389
|
# partitioned-dml transactions, otherwise the API will return an
|
390
390
|
# `INVALID_ARGUMENT` error.
|
391
|
+
# @!attribute [rw] isolation_level
|
392
|
+
# @return [::Google::Cloud::Spanner::V1::TransactionOptions::IsolationLevel]
|
393
|
+
# Isolation level for the transaction.
|
391
394
|
class TransactionOptions
|
392
395
|
include ::Google::Protobuf::MessageExts
|
393
396
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -413,12 +416,23 @@ module Google
|
|
413
416
|
module ReadLockMode
|
414
417
|
# Default value.
|
415
418
|
#
|
416
|
-
# If
|
419
|
+
# * If isolation level is `REPEATABLE_READ`, then it is an error to
|
420
|
+
# specify `read_lock_mode`. Locking semantics default to `OPTIMISTIC`.
|
421
|
+
# No validation checks are done for reads, except for:
|
422
|
+
# 1. reads done as part of queries that use `SELECT FOR UPDATE`
|
423
|
+
# 2. reads done as part of statements with a `LOCK_SCANNED_RANGES`
|
424
|
+
# hint
|
425
|
+
# 3. reads done as part of DML statements
|
426
|
+
# to validate that the data that was served at the snapshot time is
|
427
|
+
# unchanged at commit time.
|
428
|
+
# * At all other isolation levels, if `read_lock_mode` is the default
|
429
|
+
# value, then pessimistic read lock is used.
|
417
430
|
READ_LOCK_MODE_UNSPECIFIED = 0
|
418
431
|
|
419
432
|
# Pessimistic lock mode.
|
420
433
|
#
|
421
434
|
# Read locks are acquired immediately on read.
|
435
|
+
# Semantics described only applies to `SERIALIZABLE` isolation.
|
422
436
|
PESSIMISTIC = 1
|
423
437
|
|
424
438
|
# Optimistic lock mode.
|
@@ -426,6 +440,7 @@ module Google
|
|
426
440
|
# Locks for reads within the transaction are not acquired on read.
|
427
441
|
# Instead the locks are acquired on a commit to validate that
|
428
442
|
# read/queried data has not changed since the transaction started.
|
443
|
+
# Semantics described only applies to `SERIALIZABLE` isolation.
|
429
444
|
OPTIMISTIC = 2
|
430
445
|
end
|
431
446
|
end
|
@@ -514,6 +529,38 @@ module Google
|
|
514
529
|
include ::Google::Protobuf::MessageExts
|
515
530
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
516
531
|
end
|
532
|
+
|
533
|
+
# `IsolationLevel` is used when setting `isolation_level` for a transaction.
|
534
|
+
module IsolationLevel
|
535
|
+
# Default value.
|
536
|
+
#
|
537
|
+
# If the value is not specified, the `SERIALIZABLE` isolation level is
|
538
|
+
# used.
|
539
|
+
ISOLATION_LEVEL_UNSPECIFIED = 0
|
540
|
+
|
541
|
+
# All transactions appear as if they executed in a serial order, even if
|
542
|
+
# some of the reads, writes, and other operations of distinct transactions
|
543
|
+
# actually occurred in parallel. Spanner assigns commit timestamps that
|
544
|
+
# reflect the order of committed transactions to implement this property.
|
545
|
+
# Spanner offers a stronger guarantee than serializability called external
|
546
|
+
# consistency. For further details, please refer to
|
547
|
+
# https://cloud.google.com/spanner/docs/true-time-external-consistency#serializability.
|
548
|
+
SERIALIZABLE = 1
|
549
|
+
|
550
|
+
# All reads performed during the transaction observe a consistent snapshot
|
551
|
+
# of the database, and the transaction will only successfully commit in the
|
552
|
+
# absence of conflicts between its updates and any concurrent updates that
|
553
|
+
# have occurred since that snapshot. Consequently, in contrast to
|
554
|
+
# `SERIALIZABLE` transactions, only write-write conflicts are detected in
|
555
|
+
# snapshot transactions.
|
556
|
+
#
|
557
|
+
# This isolation level does not support Read-only and Partitioned DML
|
558
|
+
# transactions.
|
559
|
+
#
|
560
|
+
# When `REPEATABLE_READ` is specified on a read-write transaction, the
|
561
|
+
# locking semantics default to `OPTIMISTIC`.
|
562
|
+
REPEATABLE_READ = 2
|
563
|
+
end
|
517
564
|
end
|
518
565
|
|
519
566
|
# A transaction.
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-cloud-spanner-v1
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Google LLC
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-
|
10
|
+
date: 2025-02-25 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: gapic-common
|
@@ -109,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
requirements: []
|
112
|
-
rubygems_version: 3.6.
|
112
|
+
rubygems_version: 3.6.5
|
113
113
|
specification_version: 4
|
114
114
|
summary: Cloud Spanner is a managed, mission-critical, globally consistent and scalable
|
115
115
|
relational database service.
|