google-cloud-spanner-v1 1.11.1 → 1.12.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/lib/google/cloud/spanner/v1/spanner/client.rb +36 -8
- data/lib/google/cloud/spanner/v1/version.rb +1 -1
- data/lib/google/spanner/v1/location_pb.rb +58 -0
- data/lib/google/spanner/v1/mutation_pb.rb +5 -1
- data/lib/google/spanner/v1/query_plan_pb.rb +4 -1
- data/lib/google/spanner/v1/result_set_pb.rb +3 -1
- data/lib/google/spanner/v1/spanner_pb.rb +3 -1
- data/proto_docs/google/spanner/v1/location.rb +417 -0
- data/proto_docs/google/spanner/v1/mutation.rb +55 -5
- data/proto_docs/google/spanner/v1/query_plan.rb +29 -0
- data/proto_docs/google/spanner/v1/result_set.rb +8 -0
- data/proto_docs/google/spanner/v1/spanner.rb +22 -6
- data/proto_docs/google/spanner/v1/transaction.rb +4 -2
- metadata +3 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fbb63411b71ef6508facfe6f855c160d20671c914a4b77692967b2c8e129290e
|
|
4
|
+
data.tar.gz: 4802a9d8212bb6bf80d0193fa52e7fa535126afae471504b66183e5dab1305b7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d57dca2d35434a26bb4ea6a9e8368c7e34bb3b3d7b104ca4c3f6e5702a6d90e2ecd2d816440b8f75af1c0331a51393570497299a4c7c5554371225cdf1c86c35
|
|
7
|
+
data.tar.gz: 90540fc482c9b244e9fd88fd1a92d9882b6c459d8dd6ad50b14536657cf06f123b222b7c99114403960cbb150936f76a60ad973cf60b0526fedbf9a5ffd10102
|
|
@@ -388,10 +388,10 @@ module Google
|
|
|
388
388
|
# @param session_template [::Google::Cloud::Spanner::V1::Session, ::Hash]
|
|
389
389
|
# Parameters to apply to each created session.
|
|
390
390
|
# @param session_count [::Integer]
|
|
391
|
-
# Required. The number of sessions to be created in this batch call.
|
|
392
|
-
# The API can return fewer than the requested number
|
|
393
|
-
# specific number of sessions are desired, the client can
|
|
394
|
-
# calls to `BatchCreateSessions` (adjusting
|
|
391
|
+
# Required. The number of sessions to be created in this batch call. At least
|
|
392
|
+
# one session is created. The API can return fewer than the requested number
|
|
393
|
+
# of sessions. If a specific number of sessions are desired, the client can
|
|
394
|
+
# make additional calls to `BatchCreateSessions` (adjusting
|
|
395
395
|
# {::Google::Cloud::Spanner::V1::BatchCreateSessionsRequest#session_count session_count}
|
|
396
396
|
# as necessary).
|
|
397
397
|
#
|
|
@@ -771,7 +771,7 @@ module Google
|
|
|
771
771
|
# @param options [::Gapic::CallOptions, ::Hash]
|
|
772
772
|
# Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
|
|
773
773
|
#
|
|
774
|
-
# @overload execute_sql(session: nil, transaction: nil, sql: nil, params: nil, param_types: nil, resume_token: nil, query_mode: nil, partition_token: nil, seqno: nil, query_options: nil, request_options: nil, directed_read_options: nil, data_boost_enabled: nil, last_statement: nil)
|
|
774
|
+
# @overload execute_sql(session: nil, transaction: nil, sql: nil, params: nil, param_types: nil, resume_token: nil, query_mode: nil, partition_token: nil, seqno: nil, query_options: nil, request_options: nil, directed_read_options: nil, data_boost_enabled: nil, last_statement: nil, routing_hint: nil)
|
|
775
775
|
# Pass arguments to `execute_sql` via keyword arguments. Note that at
|
|
776
776
|
# least one keyword argument is required. To specify no parameters, or to keep all
|
|
777
777
|
# the default parameter values, pass an empty Hash as a request object (see above).
|
|
@@ -867,6 +867,13 @@ module Google
|
|
|
867
867
|
# be deferred until commit time (for example, validation of unique
|
|
868
868
|
# constraints). Given this, successful execution of a DML statement shouldn't
|
|
869
869
|
# be assumed until a subsequent `Commit` call completes successfully.
|
|
870
|
+
# @param routing_hint [::Google::Cloud::Spanner::V1::RoutingHint, ::Hash]
|
|
871
|
+
# Optional. If present, it makes the Spanner requests location-aware.
|
|
872
|
+
#
|
|
873
|
+
# It gives the server hints that can be used to route the request
|
|
874
|
+
# to an appropriate server, potentially significantly decreasing latency and
|
|
875
|
+
# improving throughput. To achieve improved performance, most fields must be
|
|
876
|
+
# filled in with accurate values.
|
|
870
877
|
#
|
|
871
878
|
# @yield [response, operation] Access the result along with the RPC operation
|
|
872
879
|
# @yieldparam response [::Google::Cloud::Spanner::V1::ResultSet]
|
|
@@ -952,7 +959,7 @@ module Google
|
|
|
952
959
|
# @param options [::Gapic::CallOptions, ::Hash]
|
|
953
960
|
# Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
|
|
954
961
|
#
|
|
955
|
-
# @overload execute_streaming_sql(session: nil, transaction: nil, sql: nil, params: nil, param_types: nil, resume_token: nil, query_mode: nil, partition_token: nil, seqno: nil, query_options: nil, request_options: nil, directed_read_options: nil, data_boost_enabled: nil, last_statement: nil)
|
|
962
|
+
# @overload execute_streaming_sql(session: nil, transaction: nil, sql: nil, params: nil, param_types: nil, resume_token: nil, query_mode: nil, partition_token: nil, seqno: nil, query_options: nil, request_options: nil, directed_read_options: nil, data_boost_enabled: nil, last_statement: nil, routing_hint: nil)
|
|
956
963
|
# Pass arguments to `execute_streaming_sql` via keyword arguments. Note that at
|
|
957
964
|
# least one keyword argument is required. To specify no parameters, or to keep all
|
|
958
965
|
# the default parameter values, pass an empty Hash as a request object (see above).
|
|
@@ -1048,6 +1055,13 @@ module Google
|
|
|
1048
1055
|
# be deferred until commit time (for example, validation of unique
|
|
1049
1056
|
# constraints). Given this, successful execution of a DML statement shouldn't
|
|
1050
1057
|
# be assumed until a subsequent `Commit` call completes successfully.
|
|
1058
|
+
# @param routing_hint [::Google::Cloud::Spanner::V1::RoutingHint, ::Hash]
|
|
1059
|
+
# Optional. If present, it makes the Spanner requests location-aware.
|
|
1060
|
+
#
|
|
1061
|
+
# It gives the server hints that can be used to route the request
|
|
1062
|
+
# to an appropriate server, potentially significantly decreasing latency and
|
|
1063
|
+
# improving throughput. To achieve improved performance, most fields must be
|
|
1064
|
+
# filled in with accurate values.
|
|
1051
1065
|
#
|
|
1052
1066
|
# @yield [response, operation] Access the result along with the RPC operation
|
|
1053
1067
|
# @yieldparam response [::Enumerable<::Google::Cloud::Spanner::V1::PartialResultSet>]
|
|
@@ -1272,7 +1286,7 @@ module Google
|
|
|
1272
1286
|
# @param options [::Gapic::CallOptions, ::Hash]
|
|
1273
1287
|
# Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
|
|
1274
1288
|
#
|
|
1275
|
-
# @overload read(session: nil, transaction: nil, table: nil, index: nil, columns: nil, key_set: nil, limit: nil, resume_token: nil, partition_token: nil, request_options: nil, directed_read_options: nil, data_boost_enabled: nil, order_by: nil, lock_hint: nil)
|
|
1289
|
+
# @overload read(session: nil, transaction: nil, table: nil, index: nil, columns: nil, key_set: nil, limit: nil, resume_token: nil, partition_token: nil, request_options: nil, directed_read_options: nil, data_boost_enabled: nil, order_by: nil, lock_hint: nil, routing_hint: nil)
|
|
1276
1290
|
# Pass arguments to `read` via keyword arguments. Note that at
|
|
1277
1291
|
# least one keyword argument is required. To specify no parameters, or to keep all
|
|
1278
1292
|
# the default parameter values, pass an empty Hash as a request object (see above).
|
|
@@ -1349,6 +1363,13 @@ module Google
|
|
|
1349
1363
|
# @param lock_hint [::Google::Cloud::Spanner::V1::ReadRequest::LockHint]
|
|
1350
1364
|
# Optional. Lock Hint for the request, it can only be used with read-write
|
|
1351
1365
|
# transactions.
|
|
1366
|
+
# @param routing_hint [::Google::Cloud::Spanner::V1::RoutingHint, ::Hash]
|
|
1367
|
+
# Optional. If present, it makes the Spanner requests location-aware.
|
|
1368
|
+
#
|
|
1369
|
+
# It gives the server hints that can be used to route the request
|
|
1370
|
+
# to an appropriate server, potentially significantly decreasing latency and
|
|
1371
|
+
# improving throughput. To achieve improved performance, most fields must be
|
|
1372
|
+
# filled in with accurate values.
|
|
1352
1373
|
#
|
|
1353
1374
|
# @yield [response, operation] Access the result along with the RPC operation
|
|
1354
1375
|
# @yieldparam response [::Google::Cloud::Spanner::V1::ResultSet]
|
|
@@ -1431,7 +1452,7 @@ module Google
|
|
|
1431
1452
|
# @param options [::Gapic::CallOptions, ::Hash]
|
|
1432
1453
|
# Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
|
|
1433
1454
|
#
|
|
1434
|
-
# @overload streaming_read(session: nil, transaction: nil, table: nil, index: nil, columns: nil, key_set: nil, limit: nil, resume_token: nil, partition_token: nil, request_options: nil, directed_read_options: nil, data_boost_enabled: nil, order_by: nil, lock_hint: nil)
|
|
1455
|
+
# @overload streaming_read(session: nil, transaction: nil, table: nil, index: nil, columns: nil, key_set: nil, limit: nil, resume_token: nil, partition_token: nil, request_options: nil, directed_read_options: nil, data_boost_enabled: nil, order_by: nil, lock_hint: nil, routing_hint: nil)
|
|
1435
1456
|
# Pass arguments to `streaming_read` via keyword arguments. Note that at
|
|
1436
1457
|
# least one keyword argument is required. To specify no parameters, or to keep all
|
|
1437
1458
|
# the default parameter values, pass an empty Hash as a request object (see above).
|
|
@@ -1508,6 +1529,13 @@ module Google
|
|
|
1508
1529
|
# @param lock_hint [::Google::Cloud::Spanner::V1::ReadRequest::LockHint]
|
|
1509
1530
|
# Optional. Lock Hint for the request, it can only be used with read-write
|
|
1510
1531
|
# transactions.
|
|
1532
|
+
# @param routing_hint [::Google::Cloud::Spanner::V1::RoutingHint, ::Hash]
|
|
1533
|
+
# Optional. If present, it makes the Spanner requests location-aware.
|
|
1534
|
+
#
|
|
1535
|
+
# It gives the server hints that can be used to route the request
|
|
1536
|
+
# to an appropriate server, potentially significantly decreasing latency and
|
|
1537
|
+
# improving throughput. To achieve improved performance, most fields must be
|
|
1538
|
+
# filled in with accurate values.
|
|
1511
1539
|
#
|
|
1512
1540
|
# @yield [response, operation] Access the result along with the RPC operation
|
|
1513
1541
|
# @yieldparam response [::Enumerable<::Google::Cloud::Spanner::V1::PartialResultSet>]
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: google/spanner/v1/location.proto
|
|
4
|
+
|
|
5
|
+
require 'google/protobuf'
|
|
6
|
+
|
|
7
|
+
require 'google/protobuf/struct_pb'
|
|
8
|
+
require 'google/spanner/v1/type_pb'
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
descriptor_data = "\n google/spanner/v1/location.proto\x12\x11google.spanner.v1\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1cgoogle/spanner/v1/type.proto\"f\n\x05Range\x12\x11\n\tstart_key\x18\x01 \x01(\x0c\x12\x11\n\tlimit_key\x18\x02 \x01(\x0c\x12\x11\n\tgroup_uid\x18\x03 \x01(\x04\x12\x10\n\x08split_id\x18\x04 \x01(\x04\x12\x12\n\ngeneration\x18\x05 \x01(\x0c\"\xe6\x01\n\x06Tablet\x12\x12\n\ntablet_uid\x18\x01 \x01(\x04\x12\x16\n\x0eserver_address\x18\x02 \x01(\t\x12\x10\n\x08location\x18\x03 \x01(\t\x12,\n\x04role\x18\x04 \x01(\x0e\x32\x1e.google.spanner.v1.Tablet.Role\x12\x13\n\x0bincarnation\x18\x05 \x01(\x0c\x12\x10\n\x08\x64istance\x18\x06 \x01(\r\x12\x0c\n\x04skip\x18\x07 \x01(\x08\";\n\x04Role\x12\x14\n\x10ROLE_UNSPECIFIED\x10\x00\x12\x0e\n\nREAD_WRITE\x10\x01\x12\r\n\tREAD_ONLY\x10\x02\"p\n\x05Group\x12\x11\n\tgroup_uid\x18\x01 \x01(\x04\x12*\n\x07tablets\x18\x02 \x03(\x0b\x32\x19.google.spanner.v1.Tablet\x12\x14\n\x0cleader_index\x18\x03 \x01(\x05\x12\x12\n\ngeneration\x18\x04 \x01(\x0c\"\xd3\x04\n\tKeyRecipe\x12\x14\n\ntable_name\x18\x01 \x01(\tH\x00\x12\x14\n\nindex_name\x18\x02 \x01(\tH\x00\x12\x17\n\roperation_uid\x18\x03 \x01(\x04H\x00\x12/\n\x04part\x18\x04 \x03(\x0b\x32!.google.spanner.v1.KeyRecipe.Part\x1a\xc5\x03\n\x04Part\x12\x0b\n\x03tag\x18\x01 \x01(\r\x12\x36\n\x05order\x18\x02 \x01(\x0e\x32\'.google.spanner.v1.KeyRecipe.Part.Order\x12?\n\nnull_order\x18\x03 \x01(\x0e\x32+.google.spanner.v1.KeyRecipe.Part.NullOrder\x12%\n\x04type\x18\x04 \x01(\x0b\x32\x17.google.spanner.v1.Type\x12\x14\n\nidentifier\x18\x05 \x01(\tH\x00\x12\'\n\x05value\x18\x06 \x01(\x0b\x32\x16.google.protobuf.ValueH\x00\x12\x10\n\x06random\x18\x08 \x01(\x08H\x00\x12\x1a\n\x12struct_identifiers\x18\x07 \x03(\x05\"=\n\x05Order\x12\x15\n\x11ORDER_UNSPECIFIED\x10\x00\x12\r\n\tASCENDING\x10\x01\x12\x0e\n\nDESCENDING\x10\x02\"V\n\tNullOrder\x12\x1a\n\x16NULL_ORDER_UNSPECIFIED\x10\x00\x12\x0f\n\x0bNULLS_FIRST\x10\x01\x12\x0e\n\nNULLS_LAST\x10\x02\x12\x0c\n\x08NOT_NULL\x10\x03\x42\x0c\n\nvalue_typeB\x08\n\x06target\"U\n\nRecipeList\x12\x19\n\x11schema_generation\x18\x01 \x01(\x0c\x12,\n\x06recipe\x18\x03 \x03(\x0b\x32\x1c.google.spanner.v1.KeyRecipe\"\xa8\x01\n\x0b\x43\x61\x63heUpdate\x12\x13\n\x0b\x64\x61tabase_id\x18\x01 \x01(\x04\x12\'\n\x05range\x18\x02 \x03(\x0b\x32\x18.google.spanner.v1.Range\x12\'\n\x05group\x18\x03 \x03(\x0b\x32\x18.google.spanner.v1.Group\x12\x32\n\x0bkey_recipes\x18\x05 \x01(\x0b\x32\x1d.google.spanner.v1.RecipeList\"\xca\x02\n\x0bRoutingHint\x12\x15\n\roperation_uid\x18\x01 \x01(\x04\x12\x13\n\x0b\x64\x61tabase_id\x18\x02 \x01(\x04\x12\x19\n\x11schema_generation\x18\x03 \x01(\x0c\x12\x0b\n\x03key\x18\x04 \x01(\x0c\x12\x11\n\tlimit_key\x18\x05 \x01(\x0c\x12\x11\n\tgroup_uid\x18\x06 \x01(\x04\x12\x10\n\x08split_id\x18\x07 \x01(\x04\x12\x12\n\ntablet_uid\x18\x08 \x01(\x04\x12H\n\x12skipped_tablet_uid\x18\t \x03(\x0b\x32,.google.spanner.v1.RoutingHint.SkippedTablet\x12\x17\n\x0f\x63lient_location\x18\n \x01(\t\x1a\x38\n\rSkippedTablet\x12\x12\n\ntablet_uid\x18\x01 \x01(\x04\x12\x13\n\x0bincarnation\x18\x02 \x01(\x0c\x42\xb0\x01\n\x15\x63om.google.spanner.v1B\rLocationProtoP\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"
|
|
12
|
+
|
|
13
|
+
pool = Google::Protobuf::DescriptorPool.generated_pool
|
|
14
|
+
|
|
15
|
+
begin
|
|
16
|
+
pool.add_serialized_file(descriptor_data)
|
|
17
|
+
rescue TypeError
|
|
18
|
+
# Compatibility code: will be removed in the next major version.
|
|
19
|
+
require 'google/protobuf/descriptor_pb'
|
|
20
|
+
parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
|
|
21
|
+
parsed.clear_dependency
|
|
22
|
+
serialized = parsed.class.encode(parsed)
|
|
23
|
+
file = pool.add_serialized_file(serialized)
|
|
24
|
+
warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
|
|
25
|
+
imports = [
|
|
26
|
+
["google.spanner.v1.Type", "google/spanner/v1/type.proto"],
|
|
27
|
+
["google.protobuf.Value", "google/protobuf/struct.proto"],
|
|
28
|
+
]
|
|
29
|
+
imports.each do |type_name, expected_filename|
|
|
30
|
+
import_file = pool.lookup(type_name).file_descriptor
|
|
31
|
+
if import_file.name != expected_filename
|
|
32
|
+
warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
warn "Each proto file must use a consistent fully-qualified name."
|
|
36
|
+
warn "This will become an error in the next major version."
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
module Google
|
|
40
|
+
module Cloud
|
|
41
|
+
module Spanner
|
|
42
|
+
module V1
|
|
43
|
+
Range = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.Range").msgclass
|
|
44
|
+
Tablet = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.Tablet").msgclass
|
|
45
|
+
Tablet::Role = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.Tablet.Role").enummodule
|
|
46
|
+
Group = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.Group").msgclass
|
|
47
|
+
KeyRecipe = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.KeyRecipe").msgclass
|
|
48
|
+
KeyRecipe::Part = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.KeyRecipe.Part").msgclass
|
|
49
|
+
KeyRecipe::Part::Order = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.KeyRecipe.Part.Order").enummodule
|
|
50
|
+
KeyRecipe::Part::NullOrder = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.KeyRecipe.Part.NullOrder").enummodule
|
|
51
|
+
RecipeList = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.RecipeList").msgclass
|
|
52
|
+
CacheUpdate = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.CacheUpdate").msgclass
|
|
53
|
+
RoutingHint = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.RoutingHint").msgclass
|
|
54
|
+
RoutingHint::SkippedTablet = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.RoutingHint.SkippedTablet").msgclass
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -6,10 +6,11 @@ require 'google/protobuf'
|
|
|
6
6
|
|
|
7
7
|
require 'google/api/field_behavior_pb'
|
|
8
8
|
require 'google/protobuf/struct_pb'
|
|
9
|
+
require 'google/protobuf/timestamp_pb'
|
|
9
10
|
require 'google/spanner/v1/keys_pb'
|
|
10
11
|
|
|
11
12
|
|
|
12
|
-
descriptor_data = "\n google/spanner/v1/mutation.proto\x12\x11google.spanner.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1cgoogle/spanner/v1/keys.proto\"\
|
|
13
|
+
descriptor_data = "\n google/spanner/v1/mutation.proto\x12\x11google.spanner.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/spanner/v1/keys.proto\"\xc0\x06\n\x08Mutation\x12\x33\n\x06insert\x18\x01 \x01(\x0b\x32!.google.spanner.v1.Mutation.WriteH\x00\x12\x33\n\x06update\x18\x02 \x01(\x0b\x32!.google.spanner.v1.Mutation.WriteH\x00\x12=\n\x10insert_or_update\x18\x03 \x01(\x0b\x32!.google.spanner.v1.Mutation.WriteH\x00\x12\x34\n\x07replace\x18\x04 \x01(\x0b\x32!.google.spanner.v1.Mutation.WriteH\x00\x12\x34\n\x06\x64\x65lete\x18\x05 \x01(\x0b\x32\".google.spanner.v1.Mutation.DeleteH\x00\x12\x30\n\x04send\x18\x06 \x01(\x0b\x32 .google.spanner.v1.Mutation.SendH\x00\x12.\n\x03\x61\x63k\x18\x07 \x01(\x0b\x32\x1f.google.spanner.v1.Mutation.AckH\x00\x1aX\n\x05Write\x12\x12\n\x05table\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x0f\n\x07\x63olumns\x18\x02 \x03(\t\x12*\n\x06values\x18\x03 \x03(\x0b\x32\x1a.google.protobuf.ListValue\x1aM\n\x06\x44\x65lete\x12\x12\n\x05table\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12/\n\x07key_set\x18\x02 \x01(\x0b\x32\x19.google.spanner.v1.KeySetB\x03\xe0\x41\x02\x1a\xa3\x01\n\x04Send\x12\x12\n\x05queue\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12,\n\x03key\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.ListValueB\x03\xe0\x41\x02\x12\x30\n\x0c\x64\x65liver_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\'\n\x07payload\x18\x04 \x01(\x0b\x32\x16.google.protobuf.Value\x1a\x61\n\x03\x41\x63k\x12\x12\n\x05queue\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12,\n\x03key\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.ListValueB\x03\xe0\x41\x02\x12\x18\n\x10ignore_not_found\x18\x03 \x01(\x08\x42\x0b\n\toperationB\xb0\x01\n\x15\x63om.google.spanner.v1B\rMutationProtoP\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
14
|
|
|
14
15
|
pool = Google::Protobuf::DescriptorPool.generated_pool
|
|
15
16
|
|
|
@@ -26,6 +27,7 @@ rescue TypeError
|
|
|
26
27
|
imports = [
|
|
27
28
|
["google.protobuf.ListValue", "google/protobuf/struct.proto"],
|
|
28
29
|
["google.spanner.v1.KeySet", "google/spanner/v1/keys.proto"],
|
|
30
|
+
["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"],
|
|
29
31
|
]
|
|
30
32
|
imports.each do |type_name, expected_filename|
|
|
31
33
|
import_file = pool.lookup(type_name).file_descriptor
|
|
@@ -44,6 +46,8 @@ module Google
|
|
|
44
46
|
Mutation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.Mutation").msgclass
|
|
45
47
|
Mutation::Write = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.Mutation.Write").msgclass
|
|
46
48
|
Mutation::Delete = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.Mutation.Delete").msgclass
|
|
49
|
+
Mutation::Send = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.Mutation.Send").msgclass
|
|
50
|
+
Mutation::Ack = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.Mutation.Ack").msgclass
|
|
47
51
|
end
|
|
48
52
|
end
|
|
49
53
|
end
|
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
require 'google/protobuf'
|
|
6
6
|
|
|
7
|
+
require 'google/api/field_behavior_pb'
|
|
7
8
|
require 'google/protobuf/struct_pb'
|
|
8
9
|
|
|
9
10
|
|
|
10
|
-
descriptor_data = "\n\"google/spanner/v1/query_plan.proto\x12\x11google.spanner.v1\x1a\x1cgoogle/protobuf/struct.proto\"\xf8\x04\n\x08PlanNode\x12\r\n\x05index\x18\x01 \x01(\x05\x12.\n\x04kind\x18\x02 \x01(\x0e\x32 .google.spanner.v1.PlanNode.Kind\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12:\n\x0b\x63hild_links\x18\x04 \x03(\x0b\x32%.google.spanner.v1.PlanNode.ChildLink\x12M\n\x14short_representation\x18\x05 \x01(\x0b\x32/.google.spanner.v1.PlanNode.ShortRepresentation\x12)\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x30\n\x0f\x65xecution_stats\x18\x07 \x01(\x0b\x32\x17.google.protobuf.Struct\x1a@\n\tChildLink\x12\x13\n\x0b\x63hild_index\x18\x01 \x01(\x05\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x10\n\x08variable\x18\x03 \x01(\t\x1a\xb2\x01\n\x13ShortRepresentation\x12\x13\n\x0b\x64\x65scription\x18\x01 \x01(\t\x12S\n\nsubqueries\x18\x02 \x03(\x0b\x32?.google.spanner.v1.PlanNode.ShortRepresentation.SubqueriesEntry\x1a\x31\n\x0fSubqueriesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\"8\n\x04Kind\x12\x14\n\x10KIND_UNSPECIFIED\x10\x00\x12\x0e\n\nRELATIONAL\x10\x01\x12\n\n\x06SCALAR\x10\x02\"
|
|
11
|
+
descriptor_data = "\n\"google/spanner/v1/query_plan.proto\x12\x11google.spanner.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xf8\x04\n\x08PlanNode\x12\r\n\x05index\x18\x01 \x01(\x05\x12.\n\x04kind\x18\x02 \x01(\x0e\x32 .google.spanner.v1.PlanNode.Kind\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12:\n\x0b\x63hild_links\x18\x04 \x03(\x0b\x32%.google.spanner.v1.PlanNode.ChildLink\x12M\n\x14short_representation\x18\x05 \x01(\x0b\x32/.google.spanner.v1.PlanNode.ShortRepresentation\x12)\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x30\n\x0f\x65xecution_stats\x18\x07 \x01(\x0b\x32\x17.google.protobuf.Struct\x1a@\n\tChildLink\x12\x13\n\x0b\x63hild_index\x18\x01 \x01(\x05\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x10\n\x08variable\x18\x03 \x01(\t\x1a\xb2\x01\n\x13ShortRepresentation\x12\x13\n\x0b\x64\x65scription\x18\x01 \x01(\t\x12S\n\nsubqueries\x18\x02 \x03(\x0b\x32?.google.spanner.v1.PlanNode.ShortRepresentation.SubqueriesEntry\x1a\x31\n\x0fSubqueriesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\"8\n\x04Kind\x12\x14\n\x10KIND_UNSPECIFIED\x10\x00\x12\x0e\n\nRELATIONAL\x10\x01\x12\n\n\x06SCALAR\x10\x02\"\xa4\x01\n\x12QueryAdvisorResult\x12L\n\x0cindex_advice\x18\x01 \x03(\x0b\x32\x31.google.spanner.v1.QueryAdvisorResult.IndexAdviceB\x03\xe0\x41\x01\x1a@\n\x0bIndexAdvice\x12\x10\n\x03\x64\x64l\x18\x01 \x03(\tB\x03\xe0\x41\x01\x12\x1f\n\x12improvement_factor\x18\x02 \x01(\x01\x42\x03\xe0\x41\x01\"~\n\tQueryPlan\x12/\n\nplan_nodes\x18\x01 \x03(\x0b\x32\x1b.google.spanner.v1.PlanNode\x12@\n\x0cquery_advice\x18\x02 \x01(\x0b\x32%.google.spanner.v1.QueryAdvisorResultB\x03\xe0\x41\x01\x42\xb1\x01\n\x15\x63om.google.spanner.v1B\x0eQueryPlanProtoP\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"
|
|
11
12
|
|
|
12
13
|
pool = Google::Protobuf::DescriptorPool.generated_pool
|
|
13
14
|
|
|
@@ -42,6 +43,8 @@ module Google
|
|
|
42
43
|
PlanNode::ChildLink = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.PlanNode.ChildLink").msgclass
|
|
43
44
|
PlanNode::ShortRepresentation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.PlanNode.ShortRepresentation").msgclass
|
|
44
45
|
PlanNode::Kind = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.PlanNode.Kind").enummodule
|
|
46
|
+
QueryAdvisorResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.QueryAdvisorResult").msgclass
|
|
47
|
+
QueryAdvisorResult::IndexAdvice = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.QueryAdvisorResult.IndexAdvice").msgclass
|
|
45
48
|
QueryPlan = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.v1.QueryPlan").msgclass
|
|
46
49
|
end
|
|
47
50
|
end
|
|
@@ -6,12 +6,13 @@ require 'google/protobuf'
|
|
|
6
6
|
|
|
7
7
|
require 'google/api/field_behavior_pb'
|
|
8
8
|
require 'google/protobuf/struct_pb'
|
|
9
|
+
require 'google/spanner/v1/location_pb'
|
|
9
10
|
require 'google/spanner/v1/query_plan_pb'
|
|
10
11
|
require 'google/spanner/v1/transaction_pb'
|
|
11
12
|
require 'google/spanner/v1/type_pb'
|
|
12
13
|
|
|
13
14
|
|
|
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\"\
|
|
15
|
+
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/location.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\"\xf2\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\x12\x39\n\x0c\x63\x61\x63he_update\x18\n \x01(\x0b\x32\x1e.google.spanner.v1.CacheUpdateB\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
16
|
|
|
16
17
|
pool = Google::Protobuf::DescriptorPool.generated_pool
|
|
17
18
|
|
|
@@ -28,6 +29,7 @@ rescue TypeError
|
|
|
28
29
|
imports = [
|
|
29
30
|
["google.protobuf.ListValue", "google/protobuf/struct.proto"],
|
|
30
31
|
["google.spanner.v1.MultiplexedSessionPrecommitToken", "google/spanner/v1/transaction.proto"],
|
|
32
|
+
["google.spanner.v1.CacheUpdate", "google/spanner/v1/location.proto"],
|
|
31
33
|
["google.spanner.v1.StructType", "google/spanner/v1/type.proto"],
|
|
32
34
|
["google.spanner.v1.QueryPlan", "google/spanner/v1/query_plan.proto"],
|
|
33
35
|
]
|
|
@@ -15,13 +15,14 @@ require 'google/protobuf/struct_pb'
|
|
|
15
15
|
require 'google/protobuf/timestamp_pb'
|
|
16
16
|
require 'google/rpc/status_pb'
|
|
17
17
|
require 'google/spanner/v1/keys_pb'
|
|
18
|
+
require 'google/spanner/v1/location_pb'
|
|
18
19
|
require 'google/spanner/v1/mutation_pb'
|
|
19
20
|
require 'google/spanner/v1/result_set_pb'
|
|
20
21
|
require 'google/spanner/v1/transaction_pb'
|
|
21
22
|
require 'google/spanner/v1/type_pb'
|
|
22
23
|
|
|
23
24
|
|
|
24
|
-
descriptor_data = "\n\x1fgoogle/spanner/v1/spanner.proto\x12\x11google.spanner.v1\x1a\'google/spanner/v1/commit_response.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\x1a\x1cgoogle/spanner/v1/keys.proto\x1a google/spanner/v1/mutation.proto\x1a\"google/spanner/v1/result_set.proto\x1a#google/spanner/v1/transaction.proto\x1a\x1cgoogle/spanner/v1/type.proto\"\x83\x01\n\x14\x43reateSessionRequest\x12\x39\n\x08\x64\x61tabase\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1fspanner.googleapis.com/Database\x12\x30\n\x07session\x18\x02 \x01(\x0b\x32\x1a.google.spanner.v1.SessionB\x03\xe0\x41\x02\"\xa9\x01\n\x1a\x42\x61tchCreateSessionsRequest\x12\x39\n\x08\x64\x61tabase\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1fspanner.googleapis.com/Database\x12\x34\n\x10session_template\x18\x02 \x01(\x0b\x32\x1a.google.spanner.v1.Session\x12\x1a\n\rsession_count\x18\x03 \x01(\x05\x42\x03\xe0\x41\x02\"J\n\x1b\x42\x61tchCreateSessionsResponse\x12+\n\x07session\x18\x01 \x03(\x0b\x32\x1a.google.spanner.v1.Session\"\xb8\x03\n\x07Session\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x36\n\x06labels\x18\x02 \x03(\x0b\x32&.google.spanner.v1.Session.LabelsEntry\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x42\n\x19\x61pproximate_last_use_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x14\n\x0c\x63reator_role\x18\x05 \x01(\t\x12\x18\n\x0bmultiplexed\x18\x06 \x01(\x08\x42\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\x88\x01\xea\x41\x84\x01\n\x1espanner.googleapis.com/Session\x12Oprojects/{project}/instances/{instance}/databases/{database}/sessions/{session}*\x08sessions2\x07session\"I\n\x11GetSessionRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\"\x87\x01\n\x13ListSessionsRequest\x12\x39\n\x08\x64\x61tabase\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1fspanner.googleapis.com/Database\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\"]\n\x14ListSessionsResponse\x12,\n\x08sessions\x18\x01 \x03(\x0b\x32\x1a.google.spanner.v1.Session\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"L\n\x14\x44\x65leteSessionRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\"\xdc\x01\n\x0eRequestOptions\x12<\n\x08priority\x18\x01 \x01(\x0e\x32*.google.spanner.v1.RequestOptions.Priority\x12\x13\n\x0brequest_tag\x18\x02 \x01(\t\x12\x17\n\x0ftransaction_tag\x18\x03 \x01(\t\"^\n\x08Priority\x12\x18\n\x14PRIORITY_UNSPECIFIED\x10\x00\x12\x10\n\x0cPRIORITY_LOW\x10\x01\x12\x13\n\x0fPRIORITY_MEDIUM\x10\x02\x12\x11\n\rPRIORITY_HIGH\x10\x03\"\xea\x04\n\x13\x44irectedReadOptions\x12R\n\x10include_replicas\x18\x01 \x01(\x0b\x32\x36.google.spanner.v1.DirectedReadOptions.IncludeReplicasH\x00\x12R\n\x10\x65xclude_replicas\x18\x02 \x01(\x0b\x32\x36.google.spanner.v1.DirectedReadOptions.ExcludeReplicasH\x00\x1a\xad\x01\n\x10ReplicaSelection\x12\x10\n\x08location\x18\x01 \x01(\t\x12J\n\x04type\x18\x02 \x01(\x0e\x32<.google.spanner.v1.DirectedReadOptions.ReplicaSelection.Type\";\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x0e\n\nREAD_WRITE\x10\x01\x12\r\n\tREAD_ONLY\x10\x02\x1a\x86\x01\n\x0fIncludeReplicas\x12S\n\x12replica_selections\x18\x01 \x03(\x0b\x32\x37.google.spanner.v1.DirectedReadOptions.ReplicaSelection\x12\x1e\n\x16\x61uto_failover_disabled\x18\x02 \x01(\x08\x1a\x66\n\x0f\x45xcludeReplicas\x12S\n\x12replica_selections\x18\x01 \x03(\x0b\x32\x37.google.spanner.v1.DirectedReadOptions.ReplicaSelectionB\n\n\x08replicas\"\x8d\x07\n\x11\x45xecuteSqlRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12;\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelector\x12\x10\n\x03sql\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x06params\x18\x04 \x01(\x0b\x32\x17.google.protobuf.Struct\x12I\n\x0bparam_types\x18\x05 \x03(\x0b\x32\x34.google.spanner.v1.ExecuteSqlRequest.ParamTypesEntry\x12\x14\n\x0cresume_token\x18\x06 \x01(\x0c\x12\x42\n\nquery_mode\x18\x07 \x01(\x0e\x32..google.spanner.v1.ExecuteSqlRequest.QueryMode\x12\x17\n\x0fpartition_token\x18\x08 \x01(\x0c\x12\r\n\x05seqno\x18\t \x01(\x03\x12H\n\rquery_options\x18\n \x01(\x0b\x32\x31.google.spanner.v1.ExecuteSqlRequest.QueryOptions\x12:\n\x0frequest_options\x18\x0b \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12\x45\n\x15\x64irected_read_options\x18\x0f \x01(\x0b\x32&.google.spanner.v1.DirectedReadOptions\x12\x1a\n\x12\x64\x61ta_boost_enabled\x18\x10 \x01(\x08\x12\x1b\n\x0elast_statement\x18\x11 \x01(\x08\x42\x03\xe0\x41\x01\x1aO\n\x0cQueryOptions\x12\x19\n\x11optimizer_version\x18\x01 \x01(\t\x12$\n\x1coptimizer_statistics_package\x18\x02 \x01(\t\x1aJ\n\x0fParamTypesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.spanner.v1.Type:\x02\x38\x01\"W\n\tQueryMode\x12\n\n\x06NORMAL\x10\x00\x12\x08\n\x04PLAN\x10\x01\x12\x0b\n\x07PROFILE\x10\x02\x12\x0e\n\nWITH_STATS\x10\x03\x12\x17\n\x13WITH_PLAN_AND_STATS\x10\x04\"\xbe\x04\n\x16\x45xecuteBatchDmlRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12@\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelectorB\x03\xe0\x41\x02\x12L\n\nstatements\x18\x03 \x03(\x0b\x32\x33.google.spanner.v1.ExecuteBatchDmlRequest.StatementB\x03\xe0\x41\x02\x12\x12\n\x05seqno\x18\x04 \x01(\x03\x42\x03\xe0\x41\x02\x12:\n\x0frequest_options\x18\x05 \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12\x1c\n\x0flast_statements\x18\x06 \x01(\x08\x42\x03\xe0\x41\x01\x1a\xec\x01\n\tStatement\x12\x10\n\x03sql\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x06params\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12X\n\x0bparam_types\x18\x03 \x03(\x0b\x32\x43.google.spanner.v1.ExecuteBatchDmlRequest.Statement.ParamTypesEntry\x1aJ\n\x0fParamTypesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.spanner.v1.Type:\x02\x38\x01\"\xc3\x01\n\x17\x45xecuteBatchDmlResponse\x12\x31\n\x0bresult_sets\x18\x01 \x03(\x0b\x32\x1c.google.spanner.v1.ResultSet\x12\"\n\x06status\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status\x12Q\n\x0fprecommit_token\x18\x03 \x01(\x0b\x32\x33.google.spanner.v1.MultiplexedSessionPrecommitTokenB\x03\xe0\x41\x01\"H\n\x10PartitionOptions\x12\x1c\n\x14partition_size_bytes\x18\x01 \x01(\x03\x12\x16\n\x0emax_partitions\x18\x02 \x01(\x03\"\xa3\x03\n\x15PartitionQueryRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12;\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelector\x12\x10\n\x03sql\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x06params\x18\x04 \x01(\x0b\x32\x17.google.protobuf.Struct\x12M\n\x0bparam_types\x18\x05 \x03(\x0b\x32\x38.google.spanner.v1.PartitionQueryRequest.ParamTypesEntry\x12>\n\x11partition_options\x18\x06 \x01(\x0b\x32#.google.spanner.v1.PartitionOptions\x1aJ\n\x0fParamTypesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.spanner.v1.Type:\x02\x38\x01\"\xb1\x02\n\x14PartitionReadRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12;\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelector\x12\x12\n\x05table\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\r\n\x05index\x18\x04 \x01(\t\x12\x0f\n\x07\x63olumns\x18\x05 \x03(\t\x12/\n\x07key_set\x18\x06 \x01(\x0b\x32\x19.google.spanner.v1.KeySetB\x03\xe0\x41\x02\x12>\n\x11partition_options\x18\t \x01(\x0b\x32#.google.spanner.v1.PartitionOptions\"$\n\tPartition\x12\x17\n\x0fpartition_token\x18\x01 \x01(\x0c\"z\n\x11PartitionResponse\x12\x30\n\npartitions\x18\x01 \x03(\x0b\x32\x1c.google.spanner.v1.Partition\x12\x33\n\x0btransaction\x18\x02 \x01(\x0b\x32\x1e.google.spanner.v1.Transaction\"\xf6\x05\n\x0bReadRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12;\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelector\x12\x12\n\x05table\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\r\n\x05index\x18\x04 \x01(\t\x12\x14\n\x07\x63olumns\x18\x05 \x03(\tB\x03\xe0\x41\x02\x12/\n\x07key_set\x18\x06 \x01(\x0b\x32\x19.google.spanner.v1.KeySetB\x03\xe0\x41\x02\x12\r\n\x05limit\x18\x08 \x01(\x03\x12\x14\n\x0cresume_token\x18\t \x01(\x0c\x12\x17\n\x0fpartition_token\x18\n \x01(\x0c\x12:\n\x0frequest_options\x18\x0b \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12\x45\n\x15\x64irected_read_options\x18\x0e \x01(\x0b\x32&.google.spanner.v1.DirectedReadOptions\x12\x1a\n\x12\x64\x61ta_boost_enabled\x18\x0f \x01(\x08\x12=\n\x08order_by\x18\x10 \x01(\x0e\x32&.google.spanner.v1.ReadRequest.OrderByB\x03\xe0\x41\x01\x12?\n\tlock_hint\x18\x11 \x01(\x0e\x32\'.google.spanner.v1.ReadRequest.LockHintB\x03\xe0\x41\x01\"T\n\x07OrderBy\x12\x18\n\x14ORDER_BY_UNSPECIFIED\x10\x00\x12\x18\n\x14ORDER_BY_PRIMARY_KEY\x10\x01\x12\x15\n\x11ORDER_BY_NO_ORDER\x10\x02\"T\n\x08LockHint\x12\x19\n\x15LOCK_HINT_UNSPECIFIED\x10\x00\x12\x14\n\x10LOCK_HINT_SHARED\x10\x01\x12\x17\n\x13LOCK_HINT_EXCLUSIVE\x10\x02\"\x83\x02\n\x17\x42\x65ginTransactionRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12;\n\x07options\x18\x02 \x01(\x0b\x32%.google.spanner.v1.TransactionOptionsB\x03\xe0\x41\x02\x12:\n\x0frequest_options\x18\x03 \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12\x36\n\x0cmutation_key\x18\x04 \x01(\x0b\x32\x1b.google.spanner.v1.MutationB\x03\xe0\x41\x01\"\xd0\x03\n\rCommitRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12\x18\n\x0etransaction_id\x18\x02 \x01(\x0cH\x00\x12G\n\x16single_use_transaction\x18\x03 \x01(\x0b\x32%.google.spanner.v1.TransactionOptionsH\x00\x12.\n\tmutations\x18\x04 \x03(\x0b\x32\x1b.google.spanner.v1.Mutation\x12\x1b\n\x13return_commit_stats\x18\x05 \x01(\x08\x12\x38\n\x10max_commit_delay\x18\x08 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01\x12:\n\x0frequest_options\x18\x06 \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12Q\n\x0fprecommit_token\x18\t \x01(\x0b\x32\x33.google.spanner.v1.MultiplexedSessionPrecommitTokenB\x03\xe0\x41\x01\x42\r\n\x0btransaction\"g\n\x0fRollbackRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12\x1b\n\x0etransaction_id\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\"\xce\x02\n\x11\x42\x61tchWriteRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12:\n\x0frequest_options\x18\x03 \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12P\n\x0fmutation_groups\x18\x04 \x03(\x0b\x32\x32.google.spanner.v1.BatchWriteRequest.MutationGroupB\x03\xe0\x41\x02\x12,\n\x1f\x65xclude_txn_from_change_streams\x18\x05 \x01(\x08\x42\x03\xe0\x41\x01\x1a\x44\n\rMutationGroup\x12\x33\n\tmutations\x18\x01 \x03(\x0b\x32\x1b.google.spanner.v1.MutationB\x03\xe0\x41\x02\"\x7f\n\x12\x42\x61tchWriteResponse\x12\x0f\n\x07indexes\x18\x01 \x03(\x05\x12\"\n\x06status\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status\x12\x34\n\x10\x63ommit_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp2\x8b\x18\n\x07Spanner\x12\xa6\x01\n\rCreateSession\x12\'.google.spanner.v1.CreateSessionRequest\x1a\x1a.google.spanner.v1.Session\"P\xda\x41\x08\x64\x61tabase\x82\xd3\xe4\x93\x02?\":/v1/{database=projects/*/instances/*/databases/*}/sessions:\x01*\x12\xe0\x01\n\x13\x42\x61tchCreateSessions\x12-.google.spanner.v1.BatchCreateSessionsRequest\x1a..google.spanner.v1.BatchCreateSessionsResponse\"j\xda\x41\x16\x64\x61tabase,session_count\x82\xd3\xe4\x93\x02K\"F/v1/{database=projects/*/instances/*/databases/*}/sessions:batchCreate:\x01*\x12\x97\x01\n\nGetSession\x12$.google.spanner.v1.GetSessionRequest\x1a\x1a.google.spanner.v1.Session\"G\xda\x41\x04name\x82\xd3\xe4\x93\x02:\x12\x38/v1/{name=projects/*/instances/*/databases/*/sessions/*}\x12\xae\x01\n\x0cListSessions\x12&.google.spanner.v1.ListSessionsRequest\x1a\'.google.spanner.v1.ListSessionsResponse\"M\xda\x41\x08\x64\x61tabase\x82\xd3\xe4\x93\x02<\x12:/v1/{database=projects/*/instances/*/databases/*}/sessions\x12\x99\x01\n\rDeleteSession\x12\'.google.spanner.v1.DeleteSessionRequest\x1a\x16.google.protobuf.Empty\"G\xda\x41\x04name\x82\xd3\xe4\x93\x02:*8/v1/{name=projects/*/instances/*/databases/*/sessions/*}\x12\xa3\x01\n\nExecuteSql\x12$.google.spanner.v1.ExecuteSqlRequest\x1a\x1c.google.spanner.v1.ResultSet\"Q\x82\xd3\xe4\x93\x02K\"F/v1/{session=projects/*/instances/*/databases/*/sessions/*}:executeSql:\x01*\x12\xbe\x01\n\x13\x45xecuteStreamingSql\x12$.google.spanner.v1.ExecuteSqlRequest\x1a#.google.spanner.v1.PartialResultSet\"Z\x82\xd3\xe4\x93\x02T\"O/v1/{session=projects/*/instances/*/databases/*/sessions/*}:executeStreamingSql:\x01*0\x01\x12\xc0\x01\n\x0f\x45xecuteBatchDml\x12).google.spanner.v1.ExecuteBatchDmlRequest\x1a*.google.spanner.v1.ExecuteBatchDmlResponse\"V\x82\xd3\xe4\x93\x02P\"K/v1/{session=projects/*/instances/*/databases/*/sessions/*}:executeBatchDml:\x01*\x12\x91\x01\n\x04Read\x12\x1e.google.spanner.v1.ReadRequest\x1a\x1c.google.spanner.v1.ResultSet\"K\x82\xd3\xe4\x93\x02\x45\"@/v1/{session=projects/*/instances/*/databases/*/sessions/*}:read:\x01*\x12\xac\x01\n\rStreamingRead\x12\x1e.google.spanner.v1.ReadRequest\x1a#.google.spanner.v1.PartialResultSet\"T\x82\xd3\xe4\x93\x02N\"I/v1/{session=projects/*/instances/*/databases/*/sessions/*}:streamingRead:\x01*0\x01\x12\xc9\x01\n\x10\x42\x65ginTransaction\x12*.google.spanner.v1.BeginTransactionRequest\x1a\x1e.google.spanner.v1.Transaction\"i\xda\x41\x0fsession,options\x82\xd3\xe4\x93\x02Q\"L/v1/{session=projects/*/instances/*/databases/*/sessions/*}:beginTransaction:\x01*\x12\xeb\x01\n\x06\x43ommit\x12 .google.spanner.v1.CommitRequest\x1a!.google.spanner.v1.CommitResponse\"\x9b\x01\xda\x41 session,transaction_id,mutations\xda\x41(session,single_use_transaction,mutations\x82\xd3\xe4\x93\x02G\"B/v1/{session=projects/*/instances/*/databases/*/sessions/*}:commit:\x01*\x12\xb0\x01\n\x08Rollback\x12\".google.spanner.v1.RollbackRequest\x1a\x16.google.protobuf.Empty\"h\xda\x41\x16session,transaction_id\x82\xd3\xe4\x93\x02I\"D/v1/{session=projects/*/instances/*/databases/*/sessions/*}:rollback:\x01*\x12\xb7\x01\n\x0ePartitionQuery\x12(.google.spanner.v1.PartitionQueryRequest\x1a$.google.spanner.v1.PartitionResponse\"U\x82\xd3\xe4\x93\x02O\"J/v1/{session=projects/*/instances/*/databases/*/sessions/*}:partitionQuery:\x01*\x12\xb4\x01\n\rPartitionRead\x12\'.google.spanner.v1.PartitionReadRequest\x1a$.google.spanner.v1.PartitionResponse\"T\x82\xd3\xe4\x93\x02N\"I/v1/{session=projects/*/instances/*/databases/*/sessions/*}:partitionRead:\x01*\x12\xc8\x01\n\nBatchWrite\x12$.google.spanner.v1.BatchWriteRequest\x1a%.google.spanner.v1.BatchWriteResponse\"k\xda\x41\x17session,mutation_groups\x82\xd3\xe4\x93\x02K\"F/v1/{session=projects/*/instances/*/databases/*/sessions/*}:batchWrite:\x01*0\x01\x1aw\xca\x41\x16spanner.googleapis.com\xd2\x41[https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/spanner.dataB\x91\x02\n\x15\x63om.google.spanner.v1B\x0cSpannerProtoP\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::V1\xea\x41_\n\x1fspanner.googleapis.com/Database\x12<projects/{project}/instances/{instance}/databases/{database}P\x00\x62\x06proto3"
|
|
25
|
+
descriptor_data = "\n\x1fgoogle/spanner/v1/spanner.proto\x12\x11google.spanner.v1\x1a\'google/spanner/v1/commit_response.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\x1a\x1cgoogle/spanner/v1/keys.proto\x1a google/spanner/v1/location.proto\x1a google/spanner/v1/mutation.proto\x1a\"google/spanner/v1/result_set.proto\x1a#google/spanner/v1/transaction.proto\x1a\x1cgoogle/spanner/v1/type.proto\"\x83\x01\n\x14\x43reateSessionRequest\x12\x39\n\x08\x64\x61tabase\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1fspanner.googleapis.com/Database\x12\x30\n\x07session\x18\x02 \x01(\x0b\x32\x1a.google.spanner.v1.SessionB\x03\xe0\x41\x02\"\xa9\x01\n\x1a\x42\x61tchCreateSessionsRequest\x12\x39\n\x08\x64\x61tabase\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1fspanner.googleapis.com/Database\x12\x34\n\x10session_template\x18\x02 \x01(\x0b\x32\x1a.google.spanner.v1.Session\x12\x1a\n\rsession_count\x18\x03 \x01(\x05\x42\x03\xe0\x41\x02\"J\n\x1b\x42\x61tchCreateSessionsResponse\x12+\n\x07session\x18\x01 \x03(\x0b\x32\x1a.google.spanner.v1.Session\"\xb8\x03\n\x07Session\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x36\n\x06labels\x18\x02 \x03(\x0b\x32&.google.spanner.v1.Session.LabelsEntry\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x42\n\x19\x61pproximate_last_use_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x14\n\x0c\x63reator_role\x18\x05 \x01(\t\x12\x18\n\x0bmultiplexed\x18\x06 \x01(\x08\x42\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\x88\x01\xea\x41\x84\x01\n\x1espanner.googleapis.com/Session\x12Oprojects/{project}/instances/{instance}/databases/{database}/sessions/{session}*\x08sessions2\x07session\"I\n\x11GetSessionRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\"\x87\x01\n\x13ListSessionsRequest\x12\x39\n\x08\x64\x61tabase\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1fspanner.googleapis.com/Database\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\"]\n\x14ListSessionsResponse\x12,\n\x08sessions\x18\x01 \x03(\x0b\x32\x1a.google.spanner.v1.Session\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"L\n\x14\x44\x65leteSessionRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\"\xdc\x01\n\x0eRequestOptions\x12<\n\x08priority\x18\x01 \x01(\x0e\x32*.google.spanner.v1.RequestOptions.Priority\x12\x13\n\x0brequest_tag\x18\x02 \x01(\t\x12\x17\n\x0ftransaction_tag\x18\x03 \x01(\t\"^\n\x08Priority\x12\x18\n\x14PRIORITY_UNSPECIFIED\x10\x00\x12\x10\n\x0cPRIORITY_LOW\x10\x01\x12\x13\n\x0fPRIORITY_MEDIUM\x10\x02\x12\x11\n\rPRIORITY_HIGH\x10\x03\"\xea\x04\n\x13\x44irectedReadOptions\x12R\n\x10include_replicas\x18\x01 \x01(\x0b\x32\x36.google.spanner.v1.DirectedReadOptions.IncludeReplicasH\x00\x12R\n\x10\x65xclude_replicas\x18\x02 \x01(\x0b\x32\x36.google.spanner.v1.DirectedReadOptions.ExcludeReplicasH\x00\x1a\xad\x01\n\x10ReplicaSelection\x12\x10\n\x08location\x18\x01 \x01(\t\x12J\n\x04type\x18\x02 \x01(\x0e\x32<.google.spanner.v1.DirectedReadOptions.ReplicaSelection.Type\";\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x0e\n\nREAD_WRITE\x10\x01\x12\r\n\tREAD_ONLY\x10\x02\x1a\x86\x01\n\x0fIncludeReplicas\x12S\n\x12replica_selections\x18\x01 \x03(\x0b\x32\x37.google.spanner.v1.DirectedReadOptions.ReplicaSelection\x12\x1e\n\x16\x61uto_failover_disabled\x18\x02 \x01(\x08\x1a\x66\n\x0f\x45xcludeReplicas\x12S\n\x12replica_selections\x18\x01 \x03(\x0b\x32\x37.google.spanner.v1.DirectedReadOptions.ReplicaSelectionB\n\n\x08replicas\"\xc8\x07\n\x11\x45xecuteSqlRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12;\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelector\x12\x10\n\x03sql\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x06params\x18\x04 \x01(\x0b\x32\x17.google.protobuf.Struct\x12I\n\x0bparam_types\x18\x05 \x03(\x0b\x32\x34.google.spanner.v1.ExecuteSqlRequest.ParamTypesEntry\x12\x14\n\x0cresume_token\x18\x06 \x01(\x0c\x12\x42\n\nquery_mode\x18\x07 \x01(\x0e\x32..google.spanner.v1.ExecuteSqlRequest.QueryMode\x12\x17\n\x0fpartition_token\x18\x08 \x01(\x0c\x12\r\n\x05seqno\x18\t \x01(\x03\x12H\n\rquery_options\x18\n \x01(\x0b\x32\x31.google.spanner.v1.ExecuteSqlRequest.QueryOptions\x12:\n\x0frequest_options\x18\x0b \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12\x45\n\x15\x64irected_read_options\x18\x0f \x01(\x0b\x32&.google.spanner.v1.DirectedReadOptions\x12\x1a\n\x12\x64\x61ta_boost_enabled\x18\x10 \x01(\x08\x12\x1b\n\x0elast_statement\x18\x11 \x01(\x08\x42\x03\xe0\x41\x01\x12\x39\n\x0crouting_hint\x18\x12 \x01(\x0b\x32\x1e.google.spanner.v1.RoutingHintB\x03\xe0\x41\x01\x1aO\n\x0cQueryOptions\x12\x19\n\x11optimizer_version\x18\x01 \x01(\t\x12$\n\x1coptimizer_statistics_package\x18\x02 \x01(\t\x1aJ\n\x0fParamTypesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.spanner.v1.Type:\x02\x38\x01\"W\n\tQueryMode\x12\n\n\x06NORMAL\x10\x00\x12\x08\n\x04PLAN\x10\x01\x12\x0b\n\x07PROFILE\x10\x02\x12\x0e\n\nWITH_STATS\x10\x03\x12\x17\n\x13WITH_PLAN_AND_STATS\x10\x04\"\xbe\x04\n\x16\x45xecuteBatchDmlRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12@\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelectorB\x03\xe0\x41\x02\x12L\n\nstatements\x18\x03 \x03(\x0b\x32\x33.google.spanner.v1.ExecuteBatchDmlRequest.StatementB\x03\xe0\x41\x02\x12\x12\n\x05seqno\x18\x04 \x01(\x03\x42\x03\xe0\x41\x02\x12:\n\x0frequest_options\x18\x05 \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12\x1c\n\x0flast_statements\x18\x06 \x01(\x08\x42\x03\xe0\x41\x01\x1a\xec\x01\n\tStatement\x12\x10\n\x03sql\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x06params\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12X\n\x0bparam_types\x18\x03 \x03(\x0b\x32\x43.google.spanner.v1.ExecuteBatchDmlRequest.Statement.ParamTypesEntry\x1aJ\n\x0fParamTypesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.spanner.v1.Type:\x02\x38\x01\"\xc3\x01\n\x17\x45xecuteBatchDmlResponse\x12\x31\n\x0bresult_sets\x18\x01 \x03(\x0b\x32\x1c.google.spanner.v1.ResultSet\x12\"\n\x06status\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status\x12Q\n\x0fprecommit_token\x18\x03 \x01(\x0b\x32\x33.google.spanner.v1.MultiplexedSessionPrecommitTokenB\x03\xe0\x41\x01\"H\n\x10PartitionOptions\x12\x1c\n\x14partition_size_bytes\x18\x01 \x01(\x03\x12\x16\n\x0emax_partitions\x18\x02 \x01(\x03\"\xa3\x03\n\x15PartitionQueryRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12;\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelector\x12\x10\n\x03sql\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x06params\x18\x04 \x01(\x0b\x32\x17.google.protobuf.Struct\x12M\n\x0bparam_types\x18\x05 \x03(\x0b\x32\x38.google.spanner.v1.PartitionQueryRequest.ParamTypesEntry\x12>\n\x11partition_options\x18\x06 \x01(\x0b\x32#.google.spanner.v1.PartitionOptions\x1aJ\n\x0fParamTypesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.spanner.v1.Type:\x02\x38\x01\"\xb1\x02\n\x14PartitionReadRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12;\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelector\x12\x12\n\x05table\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\r\n\x05index\x18\x04 \x01(\t\x12\x0f\n\x07\x63olumns\x18\x05 \x03(\t\x12/\n\x07key_set\x18\x06 \x01(\x0b\x32\x19.google.spanner.v1.KeySetB\x03\xe0\x41\x02\x12>\n\x11partition_options\x18\t \x01(\x0b\x32#.google.spanner.v1.PartitionOptions\"$\n\tPartition\x12\x17\n\x0fpartition_token\x18\x01 \x01(\x0c\"z\n\x11PartitionResponse\x12\x30\n\npartitions\x18\x01 \x03(\x0b\x32\x1c.google.spanner.v1.Partition\x12\x33\n\x0btransaction\x18\x02 \x01(\x0b\x32\x1e.google.spanner.v1.Transaction\"\xb1\x06\n\x0bReadRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12;\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelector\x12\x12\n\x05table\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\r\n\x05index\x18\x04 \x01(\t\x12\x14\n\x07\x63olumns\x18\x05 \x03(\tB\x03\xe0\x41\x02\x12/\n\x07key_set\x18\x06 \x01(\x0b\x32\x19.google.spanner.v1.KeySetB\x03\xe0\x41\x02\x12\r\n\x05limit\x18\x08 \x01(\x03\x12\x14\n\x0cresume_token\x18\t \x01(\x0c\x12\x17\n\x0fpartition_token\x18\n \x01(\x0c\x12:\n\x0frequest_options\x18\x0b \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12\x45\n\x15\x64irected_read_options\x18\x0e \x01(\x0b\x32&.google.spanner.v1.DirectedReadOptions\x12\x1a\n\x12\x64\x61ta_boost_enabled\x18\x0f \x01(\x08\x12=\n\x08order_by\x18\x10 \x01(\x0e\x32&.google.spanner.v1.ReadRequest.OrderByB\x03\xe0\x41\x01\x12?\n\tlock_hint\x18\x11 \x01(\x0e\x32\'.google.spanner.v1.ReadRequest.LockHintB\x03\xe0\x41\x01\x12\x39\n\x0crouting_hint\x18\x12 \x01(\x0b\x32\x1e.google.spanner.v1.RoutingHintB\x03\xe0\x41\x01\"T\n\x07OrderBy\x12\x18\n\x14ORDER_BY_UNSPECIFIED\x10\x00\x12\x18\n\x14ORDER_BY_PRIMARY_KEY\x10\x01\x12\x15\n\x11ORDER_BY_NO_ORDER\x10\x02\"T\n\x08LockHint\x12\x19\n\x15LOCK_HINT_UNSPECIFIED\x10\x00\x12\x14\n\x10LOCK_HINT_SHARED\x10\x01\x12\x17\n\x13LOCK_HINT_EXCLUSIVE\x10\x02\"\x83\x02\n\x17\x42\x65ginTransactionRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12;\n\x07options\x18\x02 \x01(\x0b\x32%.google.spanner.v1.TransactionOptionsB\x03\xe0\x41\x02\x12:\n\x0frequest_options\x18\x03 \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12\x36\n\x0cmutation_key\x18\x04 \x01(\x0b\x32\x1b.google.spanner.v1.MutationB\x03\xe0\x41\x01\"\xd0\x03\n\rCommitRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12\x18\n\x0etransaction_id\x18\x02 \x01(\x0cH\x00\x12G\n\x16single_use_transaction\x18\x03 \x01(\x0b\x32%.google.spanner.v1.TransactionOptionsH\x00\x12.\n\tmutations\x18\x04 \x03(\x0b\x32\x1b.google.spanner.v1.Mutation\x12\x1b\n\x13return_commit_stats\x18\x05 \x01(\x08\x12\x38\n\x10max_commit_delay\x18\x08 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01\x12:\n\x0frequest_options\x18\x06 \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12Q\n\x0fprecommit_token\x18\t \x01(\x0b\x32\x33.google.spanner.v1.MultiplexedSessionPrecommitTokenB\x03\xe0\x41\x01\x42\r\n\x0btransaction\"g\n\x0fRollbackRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12\x1b\n\x0etransaction_id\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\"\xce\x02\n\x11\x42\x61tchWriteRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12:\n\x0frequest_options\x18\x03 \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12P\n\x0fmutation_groups\x18\x04 \x03(\x0b\x32\x32.google.spanner.v1.BatchWriteRequest.MutationGroupB\x03\xe0\x41\x02\x12,\n\x1f\x65xclude_txn_from_change_streams\x18\x05 \x01(\x08\x42\x03\xe0\x41\x01\x1a\x44\n\rMutationGroup\x12\x33\n\tmutations\x18\x01 \x03(\x0b\x32\x1b.google.spanner.v1.MutationB\x03\xe0\x41\x02\"\x7f\n\x12\x42\x61tchWriteResponse\x12\x0f\n\x07indexes\x18\x01 \x03(\x05\x12\"\n\x06status\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status\x12\x34\n\x10\x63ommit_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp2\x8b\x18\n\x07Spanner\x12\xa6\x01\n\rCreateSession\x12\'.google.spanner.v1.CreateSessionRequest\x1a\x1a.google.spanner.v1.Session\"P\xda\x41\x08\x64\x61tabase\x82\xd3\xe4\x93\x02?\":/v1/{database=projects/*/instances/*/databases/*}/sessions:\x01*\x12\xe0\x01\n\x13\x42\x61tchCreateSessions\x12-.google.spanner.v1.BatchCreateSessionsRequest\x1a..google.spanner.v1.BatchCreateSessionsResponse\"j\xda\x41\x16\x64\x61tabase,session_count\x82\xd3\xe4\x93\x02K\"F/v1/{database=projects/*/instances/*/databases/*}/sessions:batchCreate:\x01*\x12\x97\x01\n\nGetSession\x12$.google.spanner.v1.GetSessionRequest\x1a\x1a.google.spanner.v1.Session\"G\xda\x41\x04name\x82\xd3\xe4\x93\x02:\x12\x38/v1/{name=projects/*/instances/*/databases/*/sessions/*}\x12\xae\x01\n\x0cListSessions\x12&.google.spanner.v1.ListSessionsRequest\x1a\'.google.spanner.v1.ListSessionsResponse\"M\xda\x41\x08\x64\x61tabase\x82\xd3\xe4\x93\x02<\x12:/v1/{database=projects/*/instances/*/databases/*}/sessions\x12\x99\x01\n\rDeleteSession\x12\'.google.spanner.v1.DeleteSessionRequest\x1a\x16.google.protobuf.Empty\"G\xda\x41\x04name\x82\xd3\xe4\x93\x02:*8/v1/{name=projects/*/instances/*/databases/*/sessions/*}\x12\xa3\x01\n\nExecuteSql\x12$.google.spanner.v1.ExecuteSqlRequest\x1a\x1c.google.spanner.v1.ResultSet\"Q\x82\xd3\xe4\x93\x02K\"F/v1/{session=projects/*/instances/*/databases/*/sessions/*}:executeSql:\x01*\x12\xbe\x01\n\x13\x45xecuteStreamingSql\x12$.google.spanner.v1.ExecuteSqlRequest\x1a#.google.spanner.v1.PartialResultSet\"Z\x82\xd3\xe4\x93\x02T\"O/v1/{session=projects/*/instances/*/databases/*/sessions/*}:executeStreamingSql:\x01*0\x01\x12\xc0\x01\n\x0f\x45xecuteBatchDml\x12).google.spanner.v1.ExecuteBatchDmlRequest\x1a*.google.spanner.v1.ExecuteBatchDmlResponse\"V\x82\xd3\xe4\x93\x02P\"K/v1/{session=projects/*/instances/*/databases/*/sessions/*}:executeBatchDml:\x01*\x12\x91\x01\n\x04Read\x12\x1e.google.spanner.v1.ReadRequest\x1a\x1c.google.spanner.v1.ResultSet\"K\x82\xd3\xe4\x93\x02\x45\"@/v1/{session=projects/*/instances/*/databases/*/sessions/*}:read:\x01*\x12\xac\x01\n\rStreamingRead\x12\x1e.google.spanner.v1.ReadRequest\x1a#.google.spanner.v1.PartialResultSet\"T\x82\xd3\xe4\x93\x02N\"I/v1/{session=projects/*/instances/*/databases/*/sessions/*}:streamingRead:\x01*0\x01\x12\xc9\x01\n\x10\x42\x65ginTransaction\x12*.google.spanner.v1.BeginTransactionRequest\x1a\x1e.google.spanner.v1.Transaction\"i\xda\x41\x0fsession,options\x82\xd3\xe4\x93\x02Q\"L/v1/{session=projects/*/instances/*/databases/*/sessions/*}:beginTransaction:\x01*\x12\xeb\x01\n\x06\x43ommit\x12 .google.spanner.v1.CommitRequest\x1a!.google.spanner.v1.CommitResponse\"\x9b\x01\xda\x41 session,transaction_id,mutations\xda\x41(session,single_use_transaction,mutations\x82\xd3\xe4\x93\x02G\"B/v1/{session=projects/*/instances/*/databases/*/sessions/*}:commit:\x01*\x12\xb0\x01\n\x08Rollback\x12\".google.spanner.v1.RollbackRequest\x1a\x16.google.protobuf.Empty\"h\xda\x41\x16session,transaction_id\x82\xd3\xe4\x93\x02I\"D/v1/{session=projects/*/instances/*/databases/*/sessions/*}:rollback:\x01*\x12\xb7\x01\n\x0ePartitionQuery\x12(.google.spanner.v1.PartitionQueryRequest\x1a$.google.spanner.v1.PartitionResponse\"U\x82\xd3\xe4\x93\x02O\"J/v1/{session=projects/*/instances/*/databases/*/sessions/*}:partitionQuery:\x01*\x12\xb4\x01\n\rPartitionRead\x12\'.google.spanner.v1.PartitionReadRequest\x1a$.google.spanner.v1.PartitionResponse\"T\x82\xd3\xe4\x93\x02N\"I/v1/{session=projects/*/instances/*/databases/*/sessions/*}:partitionRead:\x01*\x12\xc8\x01\n\nBatchWrite\x12$.google.spanner.v1.BatchWriteRequest\x1a%.google.spanner.v1.BatchWriteResponse\"k\xda\x41\x17session,mutation_groups\x82\xd3\xe4\x93\x02K\"F/v1/{session=projects/*/instances/*/databases/*/sessions/*}:batchWrite:\x01*0\x01\x1aw\xca\x41\x16spanner.googleapis.com\xd2\x41[https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/spanner.dataB\x91\x02\n\x15\x63om.google.spanner.v1B\x0cSpannerProtoP\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::V1\xea\x41_\n\x1fspanner.googleapis.com/Database\x12<projects/{project}/instances/{instance}/databases/{database}P\x00\x62\x06proto3"
|
|
25
26
|
|
|
26
27
|
pool = Google::Protobuf::DescriptorPool.generated_pool
|
|
27
28
|
|
|
@@ -39,6 +40,7 @@ rescue TypeError
|
|
|
39
40
|
["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"],
|
|
40
41
|
["google.spanner.v1.TransactionSelector", "google/spanner/v1/transaction.proto"],
|
|
41
42
|
["google.protobuf.Struct", "google/protobuf/struct.proto"],
|
|
43
|
+
["google.spanner.v1.RoutingHint", "google/spanner/v1/location.proto"],
|
|
42
44
|
["google.spanner.v1.Type", "google/spanner/v1/type.proto"],
|
|
43
45
|
["google.spanner.v1.ResultSet", "google/spanner/v1/result_set.proto"],
|
|
44
46
|
["google.rpc.Status", "google/rpc/status.proto"],
|
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Copyright 2025 Google LLC
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
|
|
17
|
+
# Auto-generated by gapic-generator-ruby. DO NOT EDIT!
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
module Google
|
|
21
|
+
module Cloud
|
|
22
|
+
module Spanner
|
|
23
|
+
module V1
|
|
24
|
+
# A `Range` represents a range of keys in a database. The keys themselves
|
|
25
|
+
# are encoded in "sortable string format", also known as ssformat. Consult
|
|
26
|
+
# Spanner's open source client libraries for details on the encoding.
|
|
27
|
+
#
|
|
28
|
+
# Each range represents a contiguous range of rows, possibly from multiple
|
|
29
|
+
# tables/indexes. Each range is associated with a single paxos group (known as
|
|
30
|
+
# a "group" throughout this API), a split (which names the exact range within
|
|
31
|
+
# the group), and a generation that can be used to determine whether a given
|
|
32
|
+
# `Range` represents a newer or older location for the key range.
|
|
33
|
+
# @!attribute [rw] start_key
|
|
34
|
+
# @return [::String]
|
|
35
|
+
# The start key of the range, inclusive. Encoded in "sortable string format"
|
|
36
|
+
# (ssformat).
|
|
37
|
+
# @!attribute [rw] limit_key
|
|
38
|
+
# @return [::String]
|
|
39
|
+
# The limit key of the range, exclusive. Encoded in "sortable string format"
|
|
40
|
+
# (ssformat).
|
|
41
|
+
# @!attribute [rw] group_uid
|
|
42
|
+
# @return [::Integer]
|
|
43
|
+
# The UID of the paxos group where this range is stored. UIDs are unique
|
|
44
|
+
# within the database. References `Group.group_uid`.
|
|
45
|
+
# @!attribute [rw] split_id
|
|
46
|
+
# @return [::Integer]
|
|
47
|
+
# A group can store multiple ranges of keys. Each key range is named by an
|
|
48
|
+
# ID (the split ID). Within a group, split IDs are unique. The `split_id`
|
|
49
|
+
# names the exact split in `group_uid` where this range is stored.
|
|
50
|
+
# @!attribute [rw] generation
|
|
51
|
+
# @return [::String]
|
|
52
|
+
# `generation` indicates the freshness of the range information contained
|
|
53
|
+
# in this proto. Generations can be compared lexicographically; if generation
|
|
54
|
+
# A is greater than generation B, then the `Range` corresponding to A is
|
|
55
|
+
# newer than the `Range` corresponding to B, and should be used
|
|
56
|
+
# preferentially.
|
|
57
|
+
class Range
|
|
58
|
+
include ::Google::Protobuf::MessageExts
|
|
59
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# A `Tablet` represents a single replica of a `Group`. A tablet is served by a
|
|
63
|
+
# single server at a time, and can move between servers due to server death or
|
|
64
|
+
# simply load balancing.
|
|
65
|
+
# @!attribute [rw] tablet_uid
|
|
66
|
+
# @return [::Integer]
|
|
67
|
+
# The UID of the tablet, unique within the database. Matches the
|
|
68
|
+
# `tablet_uids` and `leader_tablet_uid` fields in `Group`.
|
|
69
|
+
# @!attribute [rw] server_address
|
|
70
|
+
# @return [::String]
|
|
71
|
+
# The address of the server that is serving this tablet -- either an IP
|
|
72
|
+
# address or DNS hostname and a port number.
|
|
73
|
+
# @!attribute [rw] location
|
|
74
|
+
# @return [::String]
|
|
75
|
+
# Where this tablet is located. This is the name of a Google Cloud region,
|
|
76
|
+
# such as "us-central1".
|
|
77
|
+
# @!attribute [rw] role
|
|
78
|
+
# @return [::Google::Cloud::Spanner::V1::Tablet::Role]
|
|
79
|
+
# The role of the tablet.
|
|
80
|
+
# @!attribute [rw] incarnation
|
|
81
|
+
# @return [::String]
|
|
82
|
+
# `incarnation` indicates the freshness of the tablet information contained
|
|
83
|
+
# in this proto. Incarnations can be compared lexicographically; if
|
|
84
|
+
# incarnation A is greater than incarnation B, then the `Tablet`
|
|
85
|
+
# corresponding to A is newer than the `Tablet` corresponding to B, and
|
|
86
|
+
# should be used preferentially.
|
|
87
|
+
# @!attribute [rw] distance
|
|
88
|
+
# @return [::Integer]
|
|
89
|
+
# Distances help the client pick the closest tablet out of the list of
|
|
90
|
+
# tablets for a given request. Tablets with lower distances should generally
|
|
91
|
+
# be preferred. Tablets with the same distance are approximately equally
|
|
92
|
+
# close; the client can choose arbitrarily.
|
|
93
|
+
#
|
|
94
|
+
# Distances do not correspond precisely to expected latency, geographical
|
|
95
|
+
# distance, or anything else. Distances should be compared only between
|
|
96
|
+
# tablets of the same group; they are not meaningful between different
|
|
97
|
+
# groups.
|
|
98
|
+
#
|
|
99
|
+
# A value of zero indicates that the tablet may be in the same zone as
|
|
100
|
+
# the client, and have minimum network latency. A value less than or equal to
|
|
101
|
+
# five indicates that the tablet is thought to be in the same region as the
|
|
102
|
+
# client, and may have a few milliseconds of network latency. Values greater
|
|
103
|
+
# than five are most likely in a different region, with non-trivial network
|
|
104
|
+
# latency.
|
|
105
|
+
#
|
|
106
|
+
# Clients should use the following algorithm:
|
|
107
|
+
# * If the request is using a directed read, eliminate any tablets that
|
|
108
|
+
# do not match the directed read's target zone and/or replica type.
|
|
109
|
+
# * (Read-write transactions only) Choose leader tablet if it has an
|
|
110
|
+
# distance <=5.
|
|
111
|
+
# * Group and sort tablets by distance. Choose a random
|
|
112
|
+
# tablet with the lowest distance. If the request
|
|
113
|
+
# is not a directed read, only consider replicas with distances <=5.
|
|
114
|
+
# * Send the request to the fallback endpoint.
|
|
115
|
+
#
|
|
116
|
+
# The tablet picked by this algorithm may be skipped, either because it is
|
|
117
|
+
# marked as `skip` by the server or because the corresponding server is
|
|
118
|
+
# unreachable, flow controlled, etc. Skipped tablets should be added to the
|
|
119
|
+
# `skipped_tablet_uid` field in `RoutingHint`; the algorithm above should
|
|
120
|
+
# then be re-run without including the skipped tablet(s) to pick the next
|
|
121
|
+
# best tablet.
|
|
122
|
+
# @!attribute [rw] skip
|
|
123
|
+
# @return [::Boolean]
|
|
124
|
+
# If true, the tablet should not be chosen by the client. Typically, this
|
|
125
|
+
# signals that the tablet is unhealthy in some way. Tablets with `skip`
|
|
126
|
+
# set to true should be reported back to the server in
|
|
127
|
+
# `RoutingHint.skipped_tablet_uid`; this cues the server to send updated
|
|
128
|
+
# information for this tablet should it become usable again.
|
|
129
|
+
class Tablet
|
|
130
|
+
include ::Google::Protobuf::MessageExts
|
|
131
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
|
132
|
+
|
|
133
|
+
# Indicates the role of the tablet.
|
|
134
|
+
module Role
|
|
135
|
+
# Not specified.
|
|
136
|
+
ROLE_UNSPECIFIED = 0
|
|
137
|
+
|
|
138
|
+
# The tablet can perform reads and (if elected leader) writes.
|
|
139
|
+
READ_WRITE = 1
|
|
140
|
+
|
|
141
|
+
# The tablet can only perform reads.
|
|
142
|
+
READ_ONLY = 2
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
# A `Group` represents a paxos group in a database. A group is a set of
|
|
147
|
+
# tablets that are replicated across multiple servers. Groups may have a leader
|
|
148
|
+
# tablet. Groups store one (or sometimes more) ranges of keys.
|
|
149
|
+
# @!attribute [rw] group_uid
|
|
150
|
+
# @return [::Integer]
|
|
151
|
+
# The UID of the paxos group, unique within the database. Matches the
|
|
152
|
+
# `group_uid` field in `Range`.
|
|
153
|
+
# @!attribute [rw] tablets
|
|
154
|
+
# @return [::Array<::Google::Cloud::Spanner::V1::Tablet>]
|
|
155
|
+
# A list of tablets that are part of the group. Note that this list may not
|
|
156
|
+
# be exhaustive; it will only include tablets the server considers useful
|
|
157
|
+
# to the client. The returned list is ordered ascending by distance.
|
|
158
|
+
#
|
|
159
|
+
# Tablet UIDs reference `Tablet.tablet_uid`.
|
|
160
|
+
# @!attribute [rw] leader_index
|
|
161
|
+
# @return [::Integer]
|
|
162
|
+
# The last known leader tablet of the group as an index into `tablets`. May
|
|
163
|
+
# be negative if the group has no known leader.
|
|
164
|
+
# @!attribute [rw] generation
|
|
165
|
+
# @return [::String]
|
|
166
|
+
# `generation` indicates the freshness of the group information (including
|
|
167
|
+
# leader information) contained in this proto. Generations can be compared
|
|
168
|
+
# lexicographically; if generation A is greater than generation B, then the
|
|
169
|
+
# `Group` corresponding to A is newer than the `Group` corresponding to B,
|
|
170
|
+
# and should be used preferentially.
|
|
171
|
+
class Group
|
|
172
|
+
include ::Google::Protobuf::MessageExts
|
|
173
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
# A `KeyRecipe` provides the metadata required to translate reads, mutations,
|
|
177
|
+
# and queries into a byte array in "sortable string format" (ssformat)that can
|
|
178
|
+
# be used with `Range`s to route requests. Note that the client *must* tolerate
|
|
179
|
+
# `KeyRecipe`s that appear to be invalid, since the `KeyRecipe` format may
|
|
180
|
+
# change over time. Requests with invalid `KeyRecipe`s should be routed to a
|
|
181
|
+
# default server.
|
|
182
|
+
# @!attribute [rw] table_name
|
|
183
|
+
# @return [::String]
|
|
184
|
+
# A table name, matching the name from the database schema.
|
|
185
|
+
#
|
|
186
|
+
# Note: The following fields are mutually exclusive: `table_name`, `index_name`, `operation_uid`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
|
187
|
+
# @!attribute [rw] index_name
|
|
188
|
+
# @return [::String]
|
|
189
|
+
# An index name, matching the name from the database schema.
|
|
190
|
+
#
|
|
191
|
+
# Note: The following fields are mutually exclusive: `index_name`, `table_name`, `operation_uid`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
|
192
|
+
# @!attribute [rw] operation_uid
|
|
193
|
+
# @return [::Integer]
|
|
194
|
+
# The UID of a query, matching the UID from `RoutingHint`.
|
|
195
|
+
#
|
|
196
|
+
# Note: The following fields are mutually exclusive: `operation_uid`, `table_name`, `index_name`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
|
197
|
+
# @!attribute [rw] part
|
|
198
|
+
# @return [::Array<::Google::Cloud::Spanner::V1::KeyRecipe::Part>]
|
|
199
|
+
# Parts are in the order they should appear in the encoded key.
|
|
200
|
+
class KeyRecipe
|
|
201
|
+
include ::Google::Protobuf::MessageExts
|
|
202
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
|
203
|
+
|
|
204
|
+
# An ssformat key is composed of a sequence of tag numbers and key column
|
|
205
|
+
# values. `Part` represents a single tag or key column value.
|
|
206
|
+
# @!attribute [rw] tag
|
|
207
|
+
# @return [::Integer]
|
|
208
|
+
# If non-zero, `tag` is the only field present in this `Part`. The part
|
|
209
|
+
# is encoded by appending `tag` to the ssformat key.
|
|
210
|
+
# @!attribute [rw] order
|
|
211
|
+
# @return [::Google::Cloud::Spanner::V1::KeyRecipe::Part::Order]
|
|
212
|
+
# Whether the key column is sorted ascending or descending. Only present
|
|
213
|
+
# if `tag` is zero.
|
|
214
|
+
# @!attribute [rw] null_order
|
|
215
|
+
# @return [::Google::Cloud::Spanner::V1::KeyRecipe::Part::NullOrder]
|
|
216
|
+
# How NULLs are represented in the encoded key part. Only present if `tag`
|
|
217
|
+
# is zero.
|
|
218
|
+
# @!attribute [rw] type
|
|
219
|
+
# @return [::Google::Cloud::Spanner::V1::Type]
|
|
220
|
+
# The type of the key part. Only present if `tag` is zero.
|
|
221
|
+
# @!attribute [rw] identifier
|
|
222
|
+
# @return [::String]
|
|
223
|
+
# `identifier` is the name of the column or query parameter.
|
|
224
|
+
#
|
|
225
|
+
# Note: The following fields are mutually exclusive: `identifier`, `value`, `random`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
|
226
|
+
# @!attribute [rw] value
|
|
227
|
+
# @return [::Google::Protobuf::Value]
|
|
228
|
+
# The constant value of the key part.
|
|
229
|
+
# It is present when query uses a constant as a part of the key.
|
|
230
|
+
#
|
|
231
|
+
# Note: The following fields are mutually exclusive: `value`, `identifier`, `random`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
|
232
|
+
# @!attribute [rw] random
|
|
233
|
+
# @return [::Boolean]
|
|
234
|
+
# If true, the client is responsible to fill in the value randomly.
|
|
235
|
+
# It's relevant only for the INT64 type.
|
|
236
|
+
#
|
|
237
|
+
# Note: The following fields are mutually exclusive: `random`, `identifier`, `value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
|
238
|
+
# @!attribute [rw] struct_identifiers
|
|
239
|
+
# @return [::Array<::Integer>]
|
|
240
|
+
# It is a repeated field to support fetching key columns from nested
|
|
241
|
+
# structs, such as `STRUCT` query parameters.
|
|
242
|
+
class Part
|
|
243
|
+
include ::Google::Protobuf::MessageExts
|
|
244
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
|
245
|
+
|
|
246
|
+
# The remaining fields encode column values.
|
|
247
|
+
module Order
|
|
248
|
+
# Default value, equivalent to `ASCENDING`.
|
|
249
|
+
ORDER_UNSPECIFIED = 0
|
|
250
|
+
|
|
251
|
+
# The key is ascending - corresponds to `ASC` in the schema definition.
|
|
252
|
+
ASCENDING = 1
|
|
253
|
+
|
|
254
|
+
# The key is descending - corresponds to `DESC` in the schema definition.
|
|
255
|
+
DESCENDING = 2
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
# The null order of the key column. This dictates where NULL values sort
|
|
259
|
+
# in the sorted order. Note that columns which are `NOT NULL` can have a
|
|
260
|
+
# special encoding.
|
|
261
|
+
module NullOrder
|
|
262
|
+
# Default value. This value is unused.
|
|
263
|
+
NULL_ORDER_UNSPECIFIED = 0
|
|
264
|
+
|
|
265
|
+
# NULL values sort before any non-NULL values.
|
|
266
|
+
NULLS_FIRST = 1
|
|
267
|
+
|
|
268
|
+
# NULL values sort after any non-NULL values.
|
|
269
|
+
NULLS_LAST = 2
|
|
270
|
+
|
|
271
|
+
# The column does not support NULL values.
|
|
272
|
+
NOT_NULL = 3
|
|
273
|
+
end
|
|
274
|
+
end
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
# A `RecipeList` contains a list of `KeyRecipe`s, which share the same
|
|
278
|
+
# schema generation.
|
|
279
|
+
# @!attribute [rw] schema_generation
|
|
280
|
+
# @return [::String]
|
|
281
|
+
# The schema generation of the recipes. To be sent to the server in
|
|
282
|
+
# `RoutingHint.schema_generation` whenever one of the recipes is used.
|
|
283
|
+
# `schema_generation` values are comparable with each other; if generation A
|
|
284
|
+
# compares greater than generation B, then A is a more recent schema than B.
|
|
285
|
+
# Clients should in general aim to cache only the latest schema generation,
|
|
286
|
+
# and discard more stale recipes.
|
|
287
|
+
# @!attribute [rw] recipe
|
|
288
|
+
# @return [::Array<::Google::Cloud::Spanner::V1::KeyRecipe>]
|
|
289
|
+
# A list of recipes to be cached.
|
|
290
|
+
class RecipeList
|
|
291
|
+
include ::Google::Protobuf::MessageExts
|
|
292
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
|
293
|
+
end
|
|
294
|
+
|
|
295
|
+
# A `CacheUpdate` expresses a set of changes the client should incorporate into
|
|
296
|
+
# its location cache. These changes may or may not be newer than what the
|
|
297
|
+
# client has in its cache, and should be discarded if necessary. `CacheUpdate`s
|
|
298
|
+
# can be obtained in response to requests that included a `RoutingHint`
|
|
299
|
+
# field, but may also be obtained by explicit location-fetching RPCs which may
|
|
300
|
+
# be added in the future.
|
|
301
|
+
# @!attribute [rw] database_id
|
|
302
|
+
# @return [::Integer]
|
|
303
|
+
# An internal ID for the database. Database names can be reused if a database
|
|
304
|
+
# is deleted and re-created. Each time the database is re-created, it will
|
|
305
|
+
# get a new database ID, which will never be re-used for any other database.
|
|
306
|
+
# @!attribute [rw] range
|
|
307
|
+
# @return [::Array<::Google::Cloud::Spanner::V1::Range>]
|
|
308
|
+
# A list of ranges to be cached.
|
|
309
|
+
# @!attribute [rw] group
|
|
310
|
+
# @return [::Array<::Google::Cloud::Spanner::V1::Group>]
|
|
311
|
+
# A list of groups to be cached.
|
|
312
|
+
# @!attribute [rw] key_recipes
|
|
313
|
+
# @return [::Google::Cloud::Spanner::V1::RecipeList]
|
|
314
|
+
# A list of recipes to be cached.
|
|
315
|
+
class CacheUpdate
|
|
316
|
+
include ::Google::Protobuf::MessageExts
|
|
317
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
|
318
|
+
end
|
|
319
|
+
|
|
320
|
+
# `RoutingHint` can be optionally added to location-aware Spanner
|
|
321
|
+
# requests. It gives the server hints that can be used to route the request to
|
|
322
|
+
# an appropriate server, potentially significantly decreasing latency and
|
|
323
|
+
# improving throughput. To achieve improved performance, most fields must be
|
|
324
|
+
# filled in with accurate values.
|
|
325
|
+
#
|
|
326
|
+
# The presence of a valid `RoutingHint` tells the server that the client
|
|
327
|
+
# is location-aware.
|
|
328
|
+
#
|
|
329
|
+
# `RoutingHint` does not change the semantics of the request; it is
|
|
330
|
+
# purely a performance hint; the request will perform the same actions on the
|
|
331
|
+
# database's data as if `RoutingHint` were not present. However, if
|
|
332
|
+
# the `RoutingHint` is incomplete or incorrect, the response may include
|
|
333
|
+
# a `CacheUpdate` the client can use to correct its location cache.
|
|
334
|
+
# @!attribute [rw] operation_uid
|
|
335
|
+
# @return [::Integer]
|
|
336
|
+
# A session-scoped unique ID for the operation, computed client-side.
|
|
337
|
+
# Requests with the same `operation_uid` should have a shared 'shape',
|
|
338
|
+
# meaning that some fields are expected to be the same, such as the SQL
|
|
339
|
+
# query, the target table/columns (for reads) etc. Requests with the same
|
|
340
|
+
# `operation_uid` are meant to differ only in fields like keys/key
|
|
341
|
+
# ranges/query parameters, transaction IDs, etc.
|
|
342
|
+
#
|
|
343
|
+
# `operation_uid` must be non-zero for `RoutingHint` to be valid.
|
|
344
|
+
# @!attribute [rw] database_id
|
|
345
|
+
# @return [::Integer]
|
|
346
|
+
# The database ID of the database being accessed, see
|
|
347
|
+
# `CacheUpdate.database_id`. Should match the cache entries that were used
|
|
348
|
+
# to generate the rest of the fields in this `RoutingHint`.
|
|
349
|
+
# @!attribute [rw] schema_generation
|
|
350
|
+
# @return [::String]
|
|
351
|
+
# The schema generation of the recipe that was used to generate `key` and
|
|
352
|
+
# `limit_key`. See also `RecipeList.schema_generation`.
|
|
353
|
+
# @!attribute [rw] key
|
|
354
|
+
# @return [::String]
|
|
355
|
+
# The key / key range that this request accesses. For operations that
|
|
356
|
+
# access a single key, `key` should be set and `limit_key` should be empty.
|
|
357
|
+
# For operations that access a key range, `key` and `limit_key` should both
|
|
358
|
+
# be set, to the inclusive start and exclusive end of the range respectively.
|
|
359
|
+
#
|
|
360
|
+
# The keys are encoded in "sortable string format" (ssformat), using a
|
|
361
|
+
# `KeyRecipe` that is appropriate for the request. See `KeyRecipe` for more
|
|
362
|
+
# details.
|
|
363
|
+
# @!attribute [rw] limit_key
|
|
364
|
+
# @return [::String]
|
|
365
|
+
# If this request targets a key range, this is the exclusive end of the
|
|
366
|
+
# range. See `key` for more details.
|
|
367
|
+
# @!attribute [rw] group_uid
|
|
368
|
+
# @return [::Integer]
|
|
369
|
+
# The group UID of the group that the client believes serves the range
|
|
370
|
+
# defined by `key` and `limit_key`. See `Range.group_uid` for more details.
|
|
371
|
+
# @!attribute [rw] split_id
|
|
372
|
+
# @return [::Integer]
|
|
373
|
+
# The split ID of the split that the client believes contains the range
|
|
374
|
+
# defined by `key` and `limit_key`. See `Range.split_id` for more details.
|
|
375
|
+
# @!attribute [rw] tablet_uid
|
|
376
|
+
# @return [::Integer]
|
|
377
|
+
# The tablet UID of the tablet from group `group_uid` that the client
|
|
378
|
+
# believes is best to serve this request. See `Group.local_tablet_uids` and
|
|
379
|
+
# `Group.leader_tablet_uid`.
|
|
380
|
+
# @!attribute [rw] skipped_tablet_uid
|
|
381
|
+
# @return [::Array<::Google::Cloud::Spanner::V1::RoutingHint::SkippedTablet>]
|
|
382
|
+
# If the client had multiple options for tablet selection, and some of its
|
|
383
|
+
# first choices were unhealthy (e.g., the server is unreachable, or
|
|
384
|
+
# `Tablet.skip` is true), this field will contain the tablet UIDs of those
|
|
385
|
+
# tablets, with their incarnations. The server may include a `CacheUpdate`
|
|
386
|
+
# with new locations for those tablets.
|
|
387
|
+
# @!attribute [rw] client_location
|
|
388
|
+
# @return [::String]
|
|
389
|
+
# If present, the client's current location. This should be the name of a
|
|
390
|
+
# Google Cloud zone or region, such as "us-central1".
|
|
391
|
+
#
|
|
392
|
+
# If absent, the client's location will be assumed to be the same as the
|
|
393
|
+
# location of the server the client ends up connected to.
|
|
394
|
+
#
|
|
395
|
+
# Locations are primarily valuable for clients that connect from regions
|
|
396
|
+
# other than the ones that contain the Spanner database.
|
|
397
|
+
class RoutingHint
|
|
398
|
+
include ::Google::Protobuf::MessageExts
|
|
399
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
|
400
|
+
|
|
401
|
+
# A tablet that was skipped by the client. See `Tablet.tablet_uid` and
|
|
402
|
+
# `Tablet.incarnation`.
|
|
403
|
+
# @!attribute [rw] tablet_uid
|
|
404
|
+
# @return [::Integer]
|
|
405
|
+
# The tablet UID of the tablet that was skipped. See `Tablet.tablet_uid`.
|
|
406
|
+
# @!attribute [rw] incarnation
|
|
407
|
+
# @return [::String]
|
|
408
|
+
# The incarnation of the tablet that was skipped. See `Tablet.incarnation`.
|
|
409
|
+
class SkippedTablet
|
|
410
|
+
include ::Google::Protobuf::MessageExts
|
|
411
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
|
412
|
+
end
|
|
413
|
+
end
|
|
414
|
+
end
|
|
415
|
+
end
|
|
416
|
+
end
|
|
417
|
+
end
|
|
@@ -29,13 +29,13 @@ module Google
|
|
|
29
29
|
# Insert new rows in a table. If any of the rows already exist,
|
|
30
30
|
# the write or transaction fails with error `ALREADY_EXISTS`.
|
|
31
31
|
#
|
|
32
|
-
# Note: The following fields are mutually exclusive: `insert`, `update`, `insert_or_update`, `replace`, `delete`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
|
32
|
+
# Note: The following fields are mutually exclusive: `insert`, `update`, `insert_or_update`, `replace`, `delete`, `send`, `ack`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
|
33
33
|
# @!attribute [rw] update
|
|
34
34
|
# @return [::Google::Cloud::Spanner::V1::Mutation::Write]
|
|
35
35
|
# Update existing rows in a table. If any of the rows does not
|
|
36
36
|
# already exist, the transaction fails with error `NOT_FOUND`.
|
|
37
37
|
#
|
|
38
|
-
# Note: The following fields are mutually exclusive: `update`, `insert`, `insert_or_update`, `replace`, `delete`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
|
38
|
+
# Note: The following fields are mutually exclusive: `update`, `insert`, `insert_or_update`, `replace`, `delete`, `send`, `ack`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
|
39
39
|
# @!attribute [rw] insert_or_update
|
|
40
40
|
# @return [::Google::Cloud::Spanner::V1::Mutation::Write]
|
|
41
41
|
# Like {::Google::Cloud::Spanner::V1::Mutation#insert insert}, except that if the row
|
|
@@ -48,7 +48,7 @@ module Google
|
|
|
48
48
|
# columns in the table must be given a value. This holds true even when the
|
|
49
49
|
# row already exists and will therefore actually be updated.
|
|
50
50
|
#
|
|
51
|
-
# Note: The following fields are mutually exclusive: `insert_or_update`, `insert`, `update`, `replace`, `delete`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
|
51
|
+
# Note: The following fields are mutually exclusive: `insert_or_update`, `insert`, `update`, `replace`, `delete`, `send`, `ack`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
|
52
52
|
# @!attribute [rw] replace
|
|
53
53
|
# @return [::Google::Cloud::Spanner::V1::Mutation::Write]
|
|
54
54
|
# Like {::Google::Cloud::Spanner::V1::Mutation#insert insert}, except that if the row
|
|
@@ -62,13 +62,23 @@ module Google
|
|
|
62
62
|
# also deletes the child rows. Otherwise, you must delete the
|
|
63
63
|
# child rows before you replace the parent row.
|
|
64
64
|
#
|
|
65
|
-
# Note: The following fields are mutually exclusive: `replace`, `insert`, `update`, `insert_or_update`, `delete`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
|
65
|
+
# Note: The following fields are mutually exclusive: `replace`, `insert`, `update`, `insert_or_update`, `delete`, `send`, `ack`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
|
66
66
|
# @!attribute [rw] delete
|
|
67
67
|
# @return [::Google::Cloud::Spanner::V1::Mutation::Delete]
|
|
68
68
|
# Delete rows from a table. Succeeds whether or not the named
|
|
69
69
|
# rows were present.
|
|
70
70
|
#
|
|
71
|
-
# Note: The following fields are mutually exclusive: `delete`, `insert`, `update`, `insert_or_update`, `replace`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
|
71
|
+
# Note: The following fields are mutually exclusive: `delete`, `insert`, `update`, `insert_or_update`, `replace`, `send`, `ack`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
|
72
|
+
# @!attribute [rw] send
|
|
73
|
+
# @return [::Google::Cloud::Spanner::V1::Mutation::Send]
|
|
74
|
+
# Send a message to a queue.
|
|
75
|
+
#
|
|
76
|
+
# Note: The following fields are mutually exclusive: `send`, `insert`, `update`, `insert_or_update`, `replace`, `delete`, `ack`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
|
77
|
+
# @!attribute [rw] ack
|
|
78
|
+
# @return [::Google::Cloud::Spanner::V1::Mutation::Ack]
|
|
79
|
+
# Ack a message from a queue.
|
|
80
|
+
#
|
|
81
|
+
# Note: The following fields are mutually exclusive: `ack`, `insert`, `update`, `insert_or_update`, `replace`, `delete`, `send`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
|
72
82
|
class Mutation
|
|
73
83
|
include ::Google::Protobuf::MessageExts
|
|
74
84
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
|
@@ -121,6 +131,46 @@ module Google
|
|
|
121
131
|
include ::Google::Protobuf::MessageExts
|
|
122
132
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
|
123
133
|
end
|
|
134
|
+
|
|
135
|
+
# Arguments to {::Google::Cloud::Spanner::V1::Mutation#send send} operations.
|
|
136
|
+
# @!attribute [rw] queue
|
|
137
|
+
# @return [::String]
|
|
138
|
+
# Required. The queue to which the message will be sent.
|
|
139
|
+
# @!attribute [rw] key
|
|
140
|
+
# @return [::Google::Protobuf::ListValue]
|
|
141
|
+
# Required. The primary key of the message to be sent.
|
|
142
|
+
# @!attribute [rw] deliver_time
|
|
143
|
+
# @return [::Google::Protobuf::Timestamp]
|
|
144
|
+
# The time at which Spanner will begin attempting to deliver the message.
|
|
145
|
+
# If `deliver_time` is not set, Spanner will deliver the message
|
|
146
|
+
# immediately. If `deliver_time` is in the past, Spanner will replace it
|
|
147
|
+
# with a value closer to the current time.
|
|
148
|
+
# @!attribute [rw] payload
|
|
149
|
+
# @return [::Google::Protobuf::Value]
|
|
150
|
+
# The payload of the message.
|
|
151
|
+
class Send
|
|
152
|
+
include ::Google::Protobuf::MessageExts
|
|
153
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
# Arguments to {::Google::Cloud::Spanner::V1::Mutation#ack ack} operations.
|
|
157
|
+
# @!attribute [rw] queue
|
|
158
|
+
# @return [::String]
|
|
159
|
+
# Required. The queue where the message to be acked is stored.
|
|
160
|
+
# @!attribute [rw] key
|
|
161
|
+
# @return [::Google::Protobuf::ListValue]
|
|
162
|
+
# Required. The primary key of the message to be acked.
|
|
163
|
+
# @!attribute [rw] ignore_not_found
|
|
164
|
+
# @return [::Boolean]
|
|
165
|
+
# By default, an attempt to ack a message that does not exist will fail
|
|
166
|
+
# with a `NOT_FOUND` error. With `ignore_not_found` set to true, the ack
|
|
167
|
+
# will succeed even if the message does not exist. This is useful for
|
|
168
|
+
# unconditionally acking a message, even if it is missing or has already
|
|
169
|
+
# been acked.
|
|
170
|
+
class Ack
|
|
171
|
+
include ::Google::Protobuf::MessageExts
|
|
172
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
|
173
|
+
end
|
|
124
174
|
end
|
|
125
175
|
end
|
|
126
176
|
end
|
|
@@ -135,12 +135,41 @@ module Google
|
|
|
135
135
|
end
|
|
136
136
|
end
|
|
137
137
|
|
|
138
|
+
# Output of query advisor analysis.
|
|
139
|
+
# @!attribute [rw] index_advice
|
|
140
|
+
# @return [::Array<::Google::Cloud::Spanner::V1::QueryAdvisorResult::IndexAdvice>]
|
|
141
|
+
# Optional. Index Recommendation for a query. This is an optional field and
|
|
142
|
+
# the recommendation will only be available when the recommendation
|
|
143
|
+
# guarantees significant improvement in query performance.
|
|
144
|
+
class QueryAdvisorResult
|
|
145
|
+
include ::Google::Protobuf::MessageExts
|
|
146
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
|
147
|
+
|
|
148
|
+
# Recommendation to add new indexes to run queries more efficiently.
|
|
149
|
+
# @!attribute [rw] ddl
|
|
150
|
+
# @return [::Array<::String>]
|
|
151
|
+
# Optional. DDL statements to add new indexes that will improve the query.
|
|
152
|
+
# @!attribute [rw] improvement_factor
|
|
153
|
+
# @return [::Float]
|
|
154
|
+
# Optional. Estimated latency improvement factor. For example if the query
|
|
155
|
+
# currently takes 500 ms to run and the estimated latency with new indexes
|
|
156
|
+
# is 100 ms this field will be 5.
|
|
157
|
+
class IndexAdvice
|
|
158
|
+
include ::Google::Protobuf::MessageExts
|
|
159
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
|
|
138
163
|
# Contains an ordered list of nodes appearing in the query plan.
|
|
139
164
|
# @!attribute [rw] plan_nodes
|
|
140
165
|
# @return [::Array<::Google::Cloud::Spanner::V1::PlanNode>]
|
|
141
166
|
# The nodes in the query plan. Plan nodes are returned in pre-order starting
|
|
142
167
|
# with the plan root. Each {::Google::Cloud::Spanner::V1::PlanNode PlanNode}'s `id`
|
|
143
168
|
# corresponds to its index in `plan_nodes`.
|
|
169
|
+
# @!attribute [rw] query_advice
|
|
170
|
+
# @return [::Google::Cloud::Spanner::V1::QueryAdvisorResult]
|
|
171
|
+
# Optional. The advise/recommendations for a query. Currently this field will
|
|
172
|
+
# be serving index recommendations for a query.
|
|
144
173
|
class QueryPlan
|
|
145
174
|
include ::Google::Protobuf::MessageExts
|
|
146
175
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
|
@@ -173,6 +173,14 @@ module Google
|
|
|
173
173
|
# Optional. Indicates whether this is the last `PartialResultSet` in the
|
|
174
174
|
# stream. The server might optionally set this field. Clients shouldn't rely
|
|
175
175
|
# on this field being set in all cases.
|
|
176
|
+
# @!attribute [rw] cache_update
|
|
177
|
+
# @return [::Google::Cloud::Spanner::V1::CacheUpdate]
|
|
178
|
+
# Optional. A cache update expresses a set of changes the client should
|
|
179
|
+
# incorporate into its location cache. The client should discard the changes
|
|
180
|
+
# if they are older than the data it already has. This data can be obtained
|
|
181
|
+
# in response to requests that included a `RoutingHint` field, but may also
|
|
182
|
+
# be obtained by explicit location-fetching RPCs which may be added in the
|
|
183
|
+
# future.
|
|
176
184
|
class PartialResultSet
|
|
177
185
|
include ::Google::Protobuf::MessageExts
|
|
178
186
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
|
@@ -43,10 +43,10 @@ module Google
|
|
|
43
43
|
# Parameters to apply to each created session.
|
|
44
44
|
# @!attribute [rw] session_count
|
|
45
45
|
# @return [::Integer]
|
|
46
|
-
# Required. The number of sessions to be created in this batch call.
|
|
47
|
-
# The API can return fewer than the requested number
|
|
48
|
-
# specific number of sessions are desired, the client can
|
|
49
|
-
# calls to `BatchCreateSessions` (adjusting
|
|
46
|
+
# Required. The number of sessions to be created in this batch call. At least
|
|
47
|
+
# one session is created. The API can return fewer than the requested number
|
|
48
|
+
# of sessions. If a specific number of sessions are desired, the client can
|
|
49
|
+
# make additional calls to `BatchCreateSessions` (adjusting
|
|
50
50
|
# {::Google::Cloud::Spanner::V1::BatchCreateSessionsRequest#session_count session_count}
|
|
51
51
|
# as necessary).
|
|
52
52
|
class BatchCreateSessionsRequest
|
|
@@ -92,8 +92,8 @@ module Google
|
|
|
92
92
|
# @!attribute [rw] multiplexed
|
|
93
93
|
# @return [::Boolean]
|
|
94
94
|
# Optional. If `true`, specifies a multiplexed session. Use a multiplexed
|
|
95
|
-
# session for multiple, concurrent
|
|
96
|
-
# read-write transactions
|
|
95
|
+
# session for multiple, concurrent operations including any combination of
|
|
96
|
+
# read-only and read-write transactions. Use
|
|
97
97
|
# {::Google::Cloud::Spanner::V1::Spanner::Client#create_session `sessions.create`} to create
|
|
98
98
|
# multiplexed sessions. Don't use
|
|
99
99
|
# {::Google::Cloud::Spanner::V1::Spanner::Client#batch_create_sessions BatchCreateSessions} to
|
|
@@ -439,6 +439,14 @@ module Google
|
|
|
439
439
|
# be deferred until commit time (for example, validation of unique
|
|
440
440
|
# constraints). Given this, successful execution of a DML statement shouldn't
|
|
441
441
|
# be assumed until a subsequent `Commit` call completes successfully.
|
|
442
|
+
# @!attribute [rw] routing_hint
|
|
443
|
+
# @return [::Google::Cloud::Spanner::V1::RoutingHint]
|
|
444
|
+
# Optional. If present, it makes the Spanner requests location-aware.
|
|
445
|
+
#
|
|
446
|
+
# It gives the server hints that can be used to route the request
|
|
447
|
+
# to an appropriate server, potentially significantly decreasing latency and
|
|
448
|
+
# improving throughput. To achieve improved performance, most fields must be
|
|
449
|
+
# filled in with accurate values.
|
|
442
450
|
class ExecuteSqlRequest
|
|
443
451
|
include ::Google::Protobuf::MessageExts
|
|
444
452
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
|
@@ -927,6 +935,14 @@ module Google
|
|
|
927
935
|
# @return [::Google::Cloud::Spanner::V1::ReadRequest::LockHint]
|
|
928
936
|
# Optional. Lock Hint for the request, it can only be used with read-write
|
|
929
937
|
# transactions.
|
|
938
|
+
# @!attribute [rw] routing_hint
|
|
939
|
+
# @return [::Google::Cloud::Spanner::V1::RoutingHint]
|
|
940
|
+
# Optional. If present, it makes the Spanner requests location-aware.
|
|
941
|
+
#
|
|
942
|
+
# It gives the server hints that can be used to route the request
|
|
943
|
+
# to an appropriate server, potentially significantly decreasing latency and
|
|
944
|
+
# improving throughput. To achieve improved performance, most fields must be
|
|
945
|
+
# filled in with accurate values.
|
|
930
946
|
class ReadRequest
|
|
931
947
|
include ::Google::Protobuf::MessageExts
|
|
932
948
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
|
@@ -214,7 +214,9 @@ module Google
|
|
|
214
214
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
|
215
215
|
end
|
|
216
216
|
|
|
217
|
-
# `IsolationLevel` is used when setting
|
|
217
|
+
# `IsolationLevel` is used when setting the [isolation
|
|
218
|
+
# level](https://cloud.google.com/spanner/docs/isolation-levels) for a
|
|
219
|
+
# transaction.
|
|
218
220
|
module IsolationLevel
|
|
219
221
|
# Default value.
|
|
220
222
|
#
|
|
@@ -239,7 +241,7 @@ module Google
|
|
|
239
241
|
# `SERIALIZABLE` transactions, only write-write conflicts are detected in
|
|
240
242
|
# snapshot transactions.
|
|
241
243
|
#
|
|
242
|
-
# This isolation level does not support
|
|
244
|
+
# This isolation level does not support read-only and partitioned DML
|
|
243
245
|
# transactions.
|
|
244
246
|
#
|
|
245
247
|
# When `REPEATABLE_READ` is specified on a read-write transaction, the
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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.12.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Google LLC
|
|
@@ -60,6 +60,7 @@ files:
|
|
|
60
60
|
- lib/google/spanner/v1/change_stream_pb.rb
|
|
61
61
|
- lib/google/spanner/v1/commit_response_pb.rb
|
|
62
62
|
- lib/google/spanner/v1/keys_pb.rb
|
|
63
|
+
- lib/google/spanner/v1/location_pb.rb
|
|
63
64
|
- lib/google/spanner/v1/mutation_pb.rb
|
|
64
65
|
- lib/google/spanner/v1/query_plan_pb.rb
|
|
65
66
|
- lib/google/spanner/v1/result_set_pb.rb
|
|
@@ -81,6 +82,7 @@ files:
|
|
|
81
82
|
- proto_docs/google/spanner/v1/change_stream.rb
|
|
82
83
|
- proto_docs/google/spanner/v1/commit_response.rb
|
|
83
84
|
- proto_docs/google/spanner/v1/keys.rb
|
|
85
|
+
- proto_docs/google/spanner/v1/location.rb
|
|
84
86
|
- proto_docs/google/spanner/v1/mutation.rb
|
|
85
87
|
- proto_docs/google/spanner/v1/query_plan.rb
|
|
86
88
|
- proto_docs/google/spanner/v1/result_set.rb
|