google-cloud-spanner 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/lib/google-cloud-spanner.rb +13 -10
- data/lib/google/cloud/spanner.rb +21 -18
- data/lib/google/cloud/spanner/admin/database.rb +111 -0
- data/lib/google/cloud/spanner/admin/database/credentials.rb +35 -0
- data/lib/google/cloud/spanner/admin/database/v1.rb +100 -3
- data/lib/google/cloud/spanner/admin/database/v1/database_admin_client.rb +129 -138
- data/lib/google/cloud/spanner/admin/database/v1/doc/google/iam/v1/policy.rb +8 -8
- data/lib/google/cloud/spanner/admin/database/v1/doc/google/protobuf/any.rb +12 -2
- data/lib/google/cloud/spanner/admin/database/v1/doc/google/rpc/status.rb +22 -22
- data/lib/google/cloud/spanner/admin/database/v1/doc/google/spanner/admin/database/v1/spanner_database_admin.rb +33 -20
- data/lib/google/cloud/spanner/admin/database/v1/doc/overview.rb +57 -0
- data/lib/google/cloud/spanner/admin/instance.rb +127 -0
- data/lib/google/cloud/spanner/admin/instance/credentials.rb +35 -0
- data/lib/google/cloud/spanner/admin/instance/v1.rb +116 -3
- data/lib/google/cloud/spanner/admin/instance/v1/doc/google/iam/v1/policy.rb +8 -8
- data/lib/google/cloud/spanner/admin/instance/v1/doc/google/protobuf/any.rb +12 -2
- data/lib/google/cloud/spanner/admin/instance/v1/doc/google/rpc/status.rb +22 -22
- data/lib/google/cloud/spanner/admin/instance/v1/doc/google/spanner/admin/instance/v1/spanner_instance_admin.rb +58 -43
- data/lib/google/cloud/spanner/admin/instance/v1/doc/overview.rb +57 -0
- data/lib/google/cloud/spanner/admin/instance/v1/instance_admin_client.rb +180 -189
- data/lib/google/cloud/spanner/client.rb +3 -3
- data/lib/google/cloud/spanner/credentials.rb +33 -7
- data/lib/google/cloud/spanner/database.rb +3 -6
- data/lib/google/cloud/spanner/instance.rb +2 -4
- data/lib/google/cloud/spanner/instance/config.rb +2 -4
- data/lib/google/cloud/spanner/project.rb +6 -6
- data/lib/google/cloud/spanner/service.rb +5 -26
- data/lib/google/cloud/spanner/session.rb +4 -4
- data/lib/google/cloud/spanner/v1/doc/google/protobuf/duration.rb +14 -1
- data/lib/google/cloud/spanner/v1/doc/google/protobuf/timestamp.rb +26 -1
- data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/keys.rb +3 -3
- data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/mutation.rb +12 -12
- data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/query_plan.rb +9 -9
- data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/result_set.rb +33 -33
- data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/spanner.rb +99 -28
- data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/transaction.rb +41 -31
- data/lib/google/cloud/spanner/v1/doc/overview.rb +54 -0
- data/lib/google/cloud/spanner/v1/spanner_client.rb +277 -195
- data/lib/google/cloud/spanner/v1/spanner_client_config.json +5 -0
- data/lib/google/cloud/spanner/version.rb +1 -1
- data/lib/google/spanner/v1/spanner_pb.rb +16 -1
- data/lib/google/spanner/v1/spanner_services_pb.rb +2 -0
- metadata +16 -23
@@ -788,8 +788,8 @@ module Google
|
|
788
788
|
# [TransactionOptions](https://cloud.google.com/spanner/docs/reference/rpc/google.spanner.v1#transactionoptions).)
|
789
789
|
# @param [Time, DateTime] read_timestamp Same as `timestamp`.
|
790
790
|
# @param [Numeric] staleness Executes all reads at a timestamp that is
|
791
|
-
#
|
792
|
-
#
|
791
|
+
# `staleness` seconds old. For example, the number 10.1 is translated
|
792
|
+
# to 10 seconds and 100 milliseconds.
|
793
793
|
#
|
794
794
|
# Guarantees that all writes that have committed more than the
|
795
795
|
# specified number of seconds ago are visible. Because Cloud Spanner
|
@@ -798,7 +798,7 @@ module Google
|
|
798
798
|
# timestamps.
|
799
799
|
#
|
800
800
|
# Useful for reading at nearby replicas without the distributed
|
801
|
-
# timestamp negotiation overhead of single-use
|
801
|
+
# timestamp negotiation overhead of single-use `staleness`. (See
|
802
802
|
# [TransactionOptions](https://cloud.google.com/spanner/docs/reference/rpc/google.spanner.v1#transactionoptions).)
|
803
803
|
# @param [Numeric] exact_staleness Same as `staleness`.
|
804
804
|
#
|
@@ -13,19 +13,45 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
15
|
|
16
|
-
require "
|
17
|
-
require "google/cloud/spanner/v1"
|
16
|
+
require "googleauth"
|
18
17
|
|
19
18
|
module Google
|
20
19
|
module Cloud
|
21
20
|
module Spanner
|
22
21
|
##
|
23
|
-
#
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
22
|
+
# # Credentials
|
23
|
+
#
|
24
|
+
# Represents the authentication and authorization used to connect to the
|
25
|
+
# Spanner API.
|
26
|
+
#
|
27
|
+
# @example
|
28
|
+
# require "google/cloud/spanner"
|
29
|
+
#
|
30
|
+
# keyfile = "/path/to/keyfile.json"
|
31
|
+
# creds = Google::Cloud::Spanner::Credentials.new keyfile
|
32
|
+
#
|
33
|
+
# spanner = Google::Cloud::Spanner.new(
|
34
|
+
# project_id: "my-project",
|
35
|
+
# credentials: creds
|
36
|
+
# )
|
37
|
+
#
|
38
|
+
# spanner.project_id #=> "my-project"
|
39
|
+
#
|
40
|
+
class Credentials < Google::Auth::Credentials
|
41
|
+
SCOPE = %w(https://www.googleapis.com/auth/cloud-platform
|
42
|
+
https://www.googleapis.com/auth/spanner.data)
|
43
|
+
PATH_ENV_VARS = %w(SPANNER_CREDENTIALS
|
44
|
+
SPANNER_KEYFILE
|
45
|
+
GOOGLE_CLOUD_CREDENTIALS
|
46
|
+
GOOGLE_CLOUD_KEYFILE
|
47
|
+
GCLOUD_KEYFILE)
|
48
|
+
JSON_ENV_VARS = %w(SPANNER_CREDENTIALS_JSON
|
49
|
+
SPANNER_KEYFILE_JSON
|
50
|
+
GOOGLE_CLOUD_CREDENTIALS_JSON
|
51
|
+
GOOGLE_CLOUD_KEYFILE_JSON
|
28
52
|
GCLOUD_KEYFILE_JSON)
|
53
|
+
DEFAULT_PATHS = \
|
54
|
+
["~/.config/gcloud/application_default_credentials.json"]
|
29
55
|
end
|
30
56
|
end
|
31
57
|
end
|
@@ -64,22 +64,19 @@ module Google
|
|
64
64
|
# The unique identifier for the project.
|
65
65
|
# @return [String]
|
66
66
|
def project_id
|
67
|
-
|
68
|
-
.match_project_from_database_name @grpc.name
|
67
|
+
@grpc.name.split("/")[1]
|
69
68
|
end
|
70
69
|
|
71
70
|
# The unique identifier for the instance.
|
72
71
|
# @return [String]
|
73
72
|
def instance_id
|
74
|
-
|
75
|
-
.match_instance_from_database_name @grpc.name
|
73
|
+
@grpc.name.split("/")[3]
|
76
74
|
end
|
77
75
|
|
78
76
|
# The unique identifier for the database.
|
79
77
|
# @return [String]
|
80
78
|
def database_id
|
81
|
-
|
82
|
-
.match_database_from_database_name @grpc.name
|
79
|
+
@grpc.name.split("/")[5]
|
83
80
|
end
|
84
81
|
|
85
82
|
# rubocop:disable LineLength
|
@@ -69,15 +69,13 @@ module Google
|
|
69
69
|
# The unique identifier for the project.
|
70
70
|
# @return [String]
|
71
71
|
def project_id
|
72
|
-
|
73
|
-
.match_project_from_instance_name @grpc.name
|
72
|
+
@grpc.name.split("/")[1]
|
74
73
|
end
|
75
74
|
|
76
75
|
# The unique identifier for the instance.
|
77
76
|
# @return [String]
|
78
77
|
def instance_id
|
79
|
-
|
80
|
-
.match_instance_from_instance_name @grpc.name
|
78
|
+
@grpc.name.split("/")[3]
|
81
79
|
end
|
82
80
|
|
83
81
|
##
|
@@ -49,16 +49,14 @@ module Google
|
|
49
49
|
# The unique identifier for the project.
|
50
50
|
# @return [String]
|
51
51
|
def project_id
|
52
|
-
|
53
|
-
.match_project_from_instance_config_name @grpc.name
|
52
|
+
@grpc.name.split("/")[1]
|
54
53
|
end
|
55
54
|
|
56
55
|
##
|
57
56
|
# A unique identifier for the instance configuration.
|
58
57
|
# @return [String]
|
59
58
|
def instance_config_id
|
60
|
-
|
61
|
-
.match_instance_config_from_instance_config_name @grpc.name
|
59
|
+
@grpc.name.split("/")[3]
|
62
60
|
end
|
63
61
|
|
64
62
|
##
|
@@ -83,20 +83,20 @@ module Google
|
|
83
83
|
# require "google/cloud"
|
84
84
|
#
|
85
85
|
# spanner = Google::Cloud::Spanner.new(
|
86
|
-
#
|
87
|
-
#
|
86
|
+
# project_id: "my-project",
|
87
|
+
# credentials: "/path/to/keyfile.json"
|
88
88
|
# )
|
89
89
|
#
|
90
|
-
# spanner.
|
90
|
+
# spanner.project_id #=> "my-project"
|
91
91
|
#
|
92
|
-
def
|
92
|
+
def project_id
|
93
93
|
service.project
|
94
94
|
end
|
95
|
-
alias_method :
|
95
|
+
alias_method :project, :project_id
|
96
96
|
|
97
97
|
##
|
98
98
|
# @private Default project.
|
99
|
-
def self.
|
99
|
+
def self.default_project_id
|
100
100
|
ENV["SPANNER_PROJECT"] ||
|
101
101
|
ENV["GOOGLE_CLOUD_PROJECT"] ||
|
102
102
|
ENV["GCLOUD_PROJECT"] ||
|
@@ -28,37 +28,22 @@ module Google
|
|
28
28
|
# @private Represents the gRPC Spanner service, including all the API
|
29
29
|
# methods.
|
30
30
|
class Service
|
31
|
-
attr_accessor :project, :credentials, :
|
31
|
+
attr_accessor :project, :credentials, :timeout, :client_config
|
32
32
|
|
33
33
|
##
|
34
34
|
# Creates a new Service instance.
|
35
|
-
def initialize project, credentials,
|
36
|
-
client_config: nil
|
35
|
+
def initialize project, credentials, timeout: nil, client_config: nil
|
37
36
|
@project = project
|
38
37
|
@credentials = credentials
|
39
|
-
@host = host || V1::SpannerClient::SERVICE_ADDRESS
|
40
38
|
@timeout = timeout
|
41
39
|
@client_config = client_config || {}
|
42
40
|
end
|
43
41
|
|
44
|
-
def channel
|
45
|
-
require "grpc"
|
46
|
-
GRPC::Core::Channel.new host, nil, chan_creds
|
47
|
-
end
|
48
|
-
|
49
|
-
def chan_creds
|
50
|
-
return credentials if insecure?
|
51
|
-
require "grpc"
|
52
|
-
GRPC::Core::ChannelCredentials.new.compose \
|
53
|
-
GRPC::Core::CallCredentials.new credentials.client.updater_proc
|
54
|
-
end
|
55
|
-
|
56
42
|
def service
|
57
43
|
return mocked_service if mocked_service
|
58
44
|
@service ||= \
|
59
45
|
V1::SpannerClient.new(
|
60
|
-
|
61
|
-
channel: channel,
|
46
|
+
credentials: credentials,
|
62
47
|
timeout: timeout,
|
63
48
|
client_config: client_config,
|
64
49
|
lib_name: "gccl",
|
@@ -70,8 +55,7 @@ module Google
|
|
70
55
|
return mocked_instances if mocked_instances
|
71
56
|
@instances ||= \
|
72
57
|
Admin::Instance::V1::InstanceAdminClient.new(
|
73
|
-
|
74
|
-
channel: channel,
|
58
|
+
credentials: credentials,
|
75
59
|
timeout: timeout,
|
76
60
|
client_config: client_config,
|
77
61
|
lib_name: "gccl",
|
@@ -83,8 +67,7 @@ module Google
|
|
83
67
|
return mocked_databases if mocked_databases
|
84
68
|
@databases ||= \
|
85
69
|
Admin::Database::V1::DatabaseAdminClient.new(
|
86
|
-
|
87
|
-
channel: channel,
|
70
|
+
credentials: credentials,
|
88
71
|
timeout: timeout,
|
89
72
|
client_config: client_config,
|
90
73
|
lib_name: "gccl",
|
@@ -92,10 +75,6 @@ module Google
|
|
92
75
|
end
|
93
76
|
attr_accessor :mocked_databases
|
94
77
|
|
95
|
-
def insecure?
|
96
|
-
credentials == :this_channel_is_insecure
|
97
|
-
end
|
98
|
-
|
99
78
|
def list_instances token: nil, max: nil
|
100
79
|
call_options = nil
|
101
80
|
call_options = Google::Gax::CallOptions.new page_token: token if token
|
@@ -57,25 +57,25 @@ module Google
|
|
57
57
|
# The unique identifier for the project.
|
58
58
|
# @return [String]
|
59
59
|
def project_id
|
60
|
-
|
60
|
+
@grpc.name.split("/")[1]
|
61
61
|
end
|
62
62
|
|
63
63
|
# The unique identifier for the instance.
|
64
64
|
# @return [String]
|
65
65
|
def instance_id
|
66
|
-
|
66
|
+
@grpc.name.split("/")[3]
|
67
67
|
end
|
68
68
|
|
69
69
|
# The unique identifier for the database.
|
70
70
|
# @return [String]
|
71
71
|
def database_id
|
72
|
-
|
72
|
+
@grpc.name.split("/")[5]
|
73
73
|
end
|
74
74
|
|
75
75
|
# The unique identifier for the session.
|
76
76
|
# @return [String]
|
77
77
|
def session_id
|
78
|
-
|
78
|
+
@grpc.name.split("/")[7]
|
79
79
|
end
|
80
80
|
|
81
81
|
# rubocop:disable LineLength
|
@@ -21,6 +21,8 @@ module Google
|
|
21
21
|
# two Timestamp values is a Duration and it can be added or subtracted
|
22
22
|
# from a Timestamp. Range is approximately +-10,000 years.
|
23
23
|
#
|
24
|
+
# = Examples
|
25
|
+
#
|
24
26
|
# Example 1: Compute Duration from two Timestamps in pseudo code.
|
25
27
|
#
|
26
28
|
# Timestamp start = ...;
|
@@ -60,10 +62,21 @@ module Google
|
|
60
62
|
# td = datetime.timedelta(days=3, minutes=10)
|
61
63
|
# duration = Duration()
|
62
64
|
# duration.FromTimedelta(td)
|
65
|
+
#
|
66
|
+
# = JSON Mapping
|
67
|
+
#
|
68
|
+
# In JSON format, the Duration type is encoded as a string rather than an
|
69
|
+
# object, where the string ends in the suffix "s" (indicating seconds) and
|
70
|
+
# is preceded by the number of seconds, with nanoseconds expressed as
|
71
|
+
# fractional seconds. For example, 3 seconds with 0 nanoseconds should be
|
72
|
+
# encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
|
73
|
+
# be expressed in JSON format as "3.000000001s", and 3 seconds and 1
|
74
|
+
# microsecond should be expressed in JSON format as "3.000001s".
|
63
75
|
# @!attribute [rw] seconds
|
64
76
|
# @return [Integer]
|
65
77
|
# Signed seconds of the span of time. Must be from -315,576,000,000
|
66
|
-
# to +315,576,000,000 inclusive.
|
78
|
+
# to +315,576,000,000 inclusive. Note: these bounds are computed from:
|
79
|
+
# 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
|
67
80
|
# @!attribute [rw] nanos
|
68
81
|
# @return [Integer]
|
69
82
|
# Signed fractions of a second at nanosecond resolution of the span
|
@@ -24,7 +24,9 @@ module Google
|
|
24
24
|
# 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z.
|
25
25
|
# By restricting to that range, we ensure that we can convert to
|
26
26
|
# and from RFC 3339 date strings.
|
27
|
-
# See
|
27
|
+
# See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt).
|
28
|
+
#
|
29
|
+
# = Examples
|
28
30
|
#
|
29
31
|
# Example 1: Compute Timestamp from POSIX +time()+.
|
30
32
|
#
|
@@ -65,6 +67,29 @@ module Google
|
|
65
67
|
#
|
66
68
|
# timestamp = Timestamp()
|
67
69
|
# timestamp.GetCurrentTime()
|
70
|
+
#
|
71
|
+
# = JSON Mapping
|
72
|
+
#
|
73
|
+
# In JSON format, the Timestamp type is encoded as a string in the
|
74
|
+
# [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
|
75
|
+
# format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
|
76
|
+
# where {year} is always expressed using four digits while {month}, {day},
|
77
|
+
# {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
|
78
|
+
# seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
|
79
|
+
# are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
|
80
|
+
# is required, though only UTC (as indicated by "Z") is presently supported.
|
81
|
+
#
|
82
|
+
# For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
|
83
|
+
# 01:30 UTC on January 15, 2017.
|
84
|
+
#
|
85
|
+
# In JavaScript, one can convert a Date object to this format using the
|
86
|
+
# standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString]
|
87
|
+
# method. In Python, a standard +datetime.datetime+ object can be converted
|
88
|
+
# to this format using [+strftime+](https://docs.python.org/2/library/time.html#time.strftime)
|
89
|
+
# with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one
|
90
|
+
# can use the Joda Time's [+ISODateTimeFormat.dateTime()+](
|
91
|
+
# http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime())
|
92
|
+
# to obtain a formatter capable of generating timestamps in this format.
|
68
93
|
# @!attribute [rw] seconds
|
69
94
|
# @return [Integer]
|
70
95
|
# Represents seconds of UTC time since Unix epoch
|
@@ -22,7 +22,7 @@ module Google
|
|
22
22
|
#
|
23
23
|
# Keys are represented by lists, where the ith value in the list
|
24
24
|
# corresponds to the ith component of the table or index primary key.
|
25
|
-
# Individual values are encoded as described
|
25
|
+
# Individual values are encoded as described {Google::Spanner::V1::TypeCode here}.
|
26
26
|
#
|
27
27
|
# For example, consider the following table definition:
|
28
28
|
#
|
@@ -132,10 +132,10 @@ module Google
|
|
132
132
|
# A list of specific keys. Entries in +keys+ should have exactly as
|
133
133
|
# many elements as there are columns in the primary or index key
|
134
134
|
# with which this +KeySet+ is used. Individual key values are
|
135
|
-
# encoded as described
|
135
|
+
# encoded as described {Google::Spanner::V1::TypeCode here}.
|
136
136
|
# @!attribute [rw] ranges
|
137
137
|
# @return [Array<Google::Spanner::V1::KeyRange>]
|
138
|
-
# A list of key ranges. See KeyRange for more information about
|
138
|
+
# A list of key ranges. See {Google::Spanner::V1::KeyRange KeyRange} for more information about
|
139
139
|
# key range specifications.
|
140
140
|
# @!attribute [rw] all
|
141
141
|
# @return [true, false]
|
@@ -17,7 +17,7 @@ module Google
|
|
17
17
|
module V1
|
18
18
|
# A modification to one or more Cloud Spanner rows. Mutations can be
|
19
19
|
# applied to a Cloud Spanner database by sending them in a
|
20
|
-
# Commit call.
|
20
|
+
# {Google::Spanner::V1::Spanner::Commit Commit} call.
|
21
21
|
# @!attribute [rw] insert
|
22
22
|
# @return [Google::Spanner::V1::Mutation::Write]
|
23
23
|
# Insert new rows in a table. If any of the rows already exist,
|
@@ -28,28 +28,28 @@ module Google
|
|
28
28
|
# already exist, the transaction fails with error +NOT_FOUND+.
|
29
29
|
# @!attribute [rw] insert_or_update
|
30
30
|
# @return [Google::Spanner::V1::Mutation::Write]
|
31
|
-
# Like
|
31
|
+
# Like {Google::Spanner::V1::Mutation#insert insert}, except that if the row already exists, then
|
32
32
|
# its column values are overwritten with the ones provided. Any
|
33
33
|
# column values not explicitly written are preserved.
|
34
34
|
# @!attribute [rw] replace
|
35
35
|
# @return [Google::Spanner::V1::Mutation::Write]
|
36
|
-
# Like
|
36
|
+
# Like {Google::Spanner::V1::Mutation#insert insert}, except that if the row already exists, it is
|
37
37
|
# deleted, and the column values provided are inserted
|
38
|
-
# instead. Unlike
|
38
|
+
# instead. Unlike {Google::Spanner::V1::Mutation#insert_or_update insert_or_update}, this means any values not
|
39
39
|
# explicitly written become +NULL+.
|
40
40
|
# @!attribute [rw] delete
|
41
41
|
# @return [Google::Spanner::V1::Mutation::Delete]
|
42
42
|
# Delete rows from a table. Succeeds whether or not the named
|
43
43
|
# rows were present.
|
44
44
|
class Mutation
|
45
|
-
# Arguments to
|
46
|
-
#
|
45
|
+
# Arguments to {Google::Spanner::V1::Mutation#insert insert}, {Google::Spanner::V1::Mutation#update update}, {Google::Spanner::V1::Mutation#insert_or_update insert_or_update}, and
|
46
|
+
# {Google::Spanner::V1::Mutation#replace replace} operations.
|
47
47
|
# @!attribute [rw] table
|
48
48
|
# @return [String]
|
49
49
|
# Required. The table whose rows will be written.
|
50
50
|
# @!attribute [rw] columns
|
51
51
|
# @return [Array<String>]
|
52
|
-
# The names of the columns in
|
52
|
+
# The names of the columns in {Google::Spanner::V1::Mutation::Write#table table} to be written.
|
53
53
|
#
|
54
54
|
# The list of columns must contain enough columns to allow
|
55
55
|
# Cloud Spanner to derive values for all primary key columns in the
|
@@ -59,20 +59,20 @@ module Google
|
|
59
59
|
# The values to be written. +values+ can contain more than one
|
60
60
|
# list of values. If it does, then multiple rows are written, one
|
61
61
|
# for each entry in +values+. Each list in +values+ must have
|
62
|
-
# exactly as many entries as there are entries in
|
62
|
+
# exactly as many entries as there are entries in {Google::Spanner::V1::Mutation::Write#columns columns}
|
63
63
|
# above. Sending multiple lists is equivalent to sending multiple
|
64
64
|
# +Mutation+s, each containing one +values+ entry and repeating
|
65
|
-
#
|
66
|
-
# encoded as described
|
65
|
+
# {Google::Spanner::V1::Mutation::Write#table table} and {Google::Spanner::V1::Mutation::Write#columns columns}. Individual values in each list are
|
66
|
+
# encoded as described {Google::Spanner::V1::TypeCode here}.
|
67
67
|
class Write; end
|
68
68
|
|
69
|
-
# Arguments to
|
69
|
+
# Arguments to {Google::Spanner::V1::Mutation#delete delete} operations.
|
70
70
|
# @!attribute [rw] table
|
71
71
|
# @return [String]
|
72
72
|
# Required. The table whose rows will be deleted.
|
73
73
|
# @!attribute [rw] key_set
|
74
74
|
# @return [Google::Spanner::V1::KeySet]
|
75
|
-
# Required. The primary keys of the rows within
|
75
|
+
# Required. The primary keys of the rows within {Google::Spanner::V1::Mutation::Delete#table table} to delete.
|
76
76
|
class Delete; end
|
77
77
|
end
|
78
78
|
end
|
@@ -15,15 +15,15 @@
|
|
15
15
|
module Google
|
16
16
|
module Spanner
|
17
17
|
module V1
|
18
|
-
# Node information for nodes appearing in a QueryPlan#plan_nodes.
|
18
|
+
# Node information for nodes appearing in a {Google::Spanner::V1::QueryPlan#plan_nodes QueryPlan#plan_nodes}.
|
19
19
|
# @!attribute [rw] index
|
20
20
|
# @return [Integer]
|
21
|
-
# The +PlanNode+'s index in
|
21
|
+
# The +PlanNode+'s index in {Google::Spanner::V1::QueryPlan#plan_nodes node list}.
|
22
22
|
# @!attribute [rw] kind
|
23
23
|
# @return [Google::Spanner::V1::PlanNode::Kind]
|
24
24
|
# Used to determine the type of node. May be needed for visualizing
|
25
25
|
# different kinds of nodes differently. For example, If the node is a
|
26
|
-
# SCALAR node, it will have a condensed representation
|
26
|
+
# {Google::Spanner::V1::PlanNode::Kind::SCALAR SCALAR} node, it will have a condensed representation
|
27
27
|
# which can be used to directly embed a description of the node in its
|
28
28
|
# parent.
|
29
29
|
# @!attribute [rw] display_name
|
@@ -34,7 +34,7 @@ module Google
|
|
34
34
|
# List of child node +index+es and their relationship to this parent.
|
35
35
|
# @!attribute [rw] short_representation
|
36
36
|
# @return [Google::Spanner::V1::PlanNode::ShortRepresentation]
|
37
|
-
# Condensed representation for SCALAR nodes.
|
37
|
+
# Condensed representation for {Google::Spanner::V1::PlanNode::Kind::SCALAR SCALAR} nodes.
|
38
38
|
# @!attribute [rw] metadata
|
39
39
|
# @return [Google::Protobuf::Struct]
|
40
40
|
# Attributes relevant to the node contained in a group of key-value pairs.
|
@@ -53,7 +53,7 @@ module Google
|
|
53
53
|
# execution etc.
|
54
54
|
class PlanNode
|
55
55
|
# Metadata associated with a parent-child relationship appearing in a
|
56
|
-
# PlanNode.
|
56
|
+
# {Google::Spanner::V1::PlanNode PlanNode}.
|
57
57
|
# @!attribute [rw] child_index
|
58
58
|
# @return [Integer]
|
59
59
|
# The node to which the link points.
|
@@ -65,7 +65,7 @@ module Google
|
|
65
65
|
# with the output variable.
|
66
66
|
# @!attribute [rw] variable
|
67
67
|
# @return [String]
|
68
|
-
# Only present if the child node is SCALAR and corresponds
|
68
|
+
# Only present if the child node is {Google::Spanner::V1::PlanNode::Kind::SCALAR SCALAR} and corresponds
|
69
69
|
# to an output variable of the parent node. The field carries the name of
|
70
70
|
# the output variable.
|
71
71
|
# For example, a +TableScan+ operator that reads rows from a table will
|
@@ -76,7 +76,7 @@ module Google
|
|
76
76
|
class ChildLink; end
|
77
77
|
|
78
78
|
# Condensed representation of a node and its subtree. Only present for
|
79
|
-
# +SCALAR+ PlanNode(s).
|
79
|
+
# +SCALAR+ {Google::Spanner::V1::PlanNode PlanNode(s)}.
|
80
80
|
# @!attribute [rw] description
|
81
81
|
# @return [String]
|
82
82
|
# A string representation of the expression subtree rooted at this node.
|
@@ -89,7 +89,7 @@ module Google
|
|
89
89
|
# this node.
|
90
90
|
class ShortRepresentation; end
|
91
91
|
|
92
|
-
# The kind of PlanNode. Distinguishes between the two different kinds of
|
92
|
+
# The kind of {Google::Spanner::V1::PlanNode PlanNode}. Distinguishes between the two different kinds of
|
93
93
|
# nodes that can appear in a query plan.
|
94
94
|
module Kind
|
95
95
|
# Not specified.
|
@@ -112,7 +112,7 @@ module Google
|
|
112
112
|
# @!attribute [rw] plan_nodes
|
113
113
|
# @return [Array<Google::Spanner::V1::PlanNode>]
|
114
114
|
# The nodes in the query plan. Plan nodes are returned in pre-order starting
|
115
|
-
# with the plan root. Each PlanNode's +id+ corresponds to its index in
|
115
|
+
# with the plan root. Each {Google::Spanner::V1::PlanNode PlanNode}'s +id+ corresponds to its index in
|
116
116
|
# +plan_nodes+.
|
117
117
|
class QueryPlan; end
|
118
118
|
end
|