google-cloud-spanner 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|