public static final class PartialResultSet.Builder extends GeneratedMessageV3.Builder<PartialResultSet.Builder> implements PartialResultSetOrBuilder
Partial results from a streaming read or SQL query. Streaming reads and SQL queries better tolerate large result sets, large rows, and large values, but are a little trickier to consume.
Protobuf type google.spanner.v1.PartialResultSet
Inheritance
Object > AbstractMessageLite.Builder<MessageType,BuilderType> > AbstractMessage.Builder<BuilderType> > GeneratedMessageV3.Builder > PartialResultSet.BuilderImplements
PartialResultSetOrBuilderStatic Methods
getDescriptor()
public static final Descriptors.Descriptor getDescriptor()
Type | Description |
Descriptor |
Methods
addAllValues(Iterable<? extends Value> values)
public PartialResultSet.Builder addAllValues(Iterable<? extends Value> values)
A streamed result set consists of a stream of values, which might
be split into many PartialResultSet
messages to accommodate
large rows and/or large values. Every N complete values defines a
row, where N is equal to the number of entries in
metadata.row_type.fields.
Most values are encoded based on type as described
here.
It is possible that the last value in values is "chunked",
meaning that the rest of the value is sent in subsequent
PartialResultSet
(s). This is denoted by the chunked_value
field. Two or more chunked values can be merged to form a
complete value as follows:
bool/number/null
: cannot be chunkedstring
: concatenate the stringslist
: concatenate the lists. If the last element in a list is astring
,list
, orobject
, merge it with the first element in the next list by applying these rules recursively.object
: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. "foo", "bar" => "foobar" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. ["a", "b"], ["c", "d"] => ["a", "bc", "d"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"] # Non-overlapping object fields are combined. {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"} # Overlapping object fields are merged. {"a": "1"}, {"a": "2"} => {"a": "12"} # Examples of merging objects containing lists of strings. {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The followingPartialResultSet
s might be yielded: { "metadata": { ... } "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] "chunked_value": true "resume_token": "Bqp2..." } { "values": ["d"] "resume_token": "Zx1B..." } This sequence ofPartialResultSet
s encodes two rows, one containing the field value"Hello"
, and a second containing the field value"World" = "W" + "orl" + "d"
.
repeated .google.protobuf.Value values = 2;
Name | Description |
values | Iterable<? extends com.google.protobuf.Value> |
Type | Description |
PartialResultSet.Builder |
addRepeatedField(Descriptors.FieldDescriptor field, Object value)
public PartialResultSet.Builder addRepeatedField(Descriptors.FieldDescriptor field, Object value)
Name | Description |
field | FieldDescriptor |
value | Object |
Type | Description |
PartialResultSet.Builder |
addValues(Value value)
public PartialResultSet.Builder addValues(Value value)
A streamed result set consists of a stream of values, which might
be split into many PartialResultSet
messages to accommodate
large rows and/or large values. Every N complete values defines a
row, where N is equal to the number of entries in
metadata.row_type.fields.
Most values are encoded based on type as described
here.
It is possible that the last value in values is "chunked",
meaning that the rest of the value is sent in subsequent
PartialResultSet
(s). This is denoted by the chunked_value
field. Two or more chunked values can be merged to form a
complete value as follows:
bool/number/null
: cannot be chunkedstring
: concatenate the stringslist
: concatenate the lists. If the last element in a list is astring
,list
, orobject
, merge it with the first element in the next list by applying these rules recursively.object
: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. "foo", "bar" => "foobar" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. ["a", "b"], ["c", "d"] => ["a", "bc", "d"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"] # Non-overlapping object fields are combined. {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"} # Overlapping object fields are merged. {"a": "1"}, {"a": "2"} => {"a": "12"} # Examples of merging objects containing lists of strings. {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The followingPartialResultSet
s might be yielded: { "metadata": { ... } "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] "chunked_value": true "resume_token": "Bqp2..." } { "values": ["d"] "resume_token": "Zx1B..." } This sequence ofPartialResultSet
s encodes two rows, one containing the field value"Hello"
, and a second containing the field value"World" = "W" + "orl" + "d"
.
repeated .google.protobuf.Value values = 2;
Name | Description |
value | Value |
Type | Description |
PartialResultSet.Builder |
addValues(Value.Builder builderForValue)
public PartialResultSet.Builder addValues(Value.Builder builderForValue)
A streamed result set consists of a stream of values, which might
be split into many PartialResultSet
messages to accommodate
large rows and/or large values. Every N complete values defines a
row, where N is equal to the number of entries in
metadata.row_type.fields.
Most values are encoded based on type as described
here.
It is possible that the last value in values is "chunked",
meaning that the rest of the value is sent in subsequent
PartialResultSet
(s). This is denoted by the chunked_value
field. Two or more chunked values can be merged to form a
complete value as follows:
bool/number/null
: cannot be chunkedstring
: concatenate the stringslist
: concatenate the lists. If the last element in a list is astring
,list
, orobject
, merge it with the first element in the next list by applying these rules recursively.object
: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. "foo", "bar" => "foobar" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. ["a", "b"], ["c", "d"] => ["a", "bc", "d"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"] # Non-overlapping object fields are combined. {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"} # Overlapping object fields are merged. {"a": "1"}, {"a": "2"} => {"a": "12"} # Examples of merging objects containing lists of strings. {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The followingPartialResultSet
s might be yielded: { "metadata": { ... } "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] "chunked_value": true "resume_token": "Bqp2..." } { "values": ["d"] "resume_token": "Zx1B..." } This sequence ofPartialResultSet
s encodes two rows, one containing the field value"Hello"
, and a second containing the field value"World" = "W" + "orl" + "d"
.
repeated .google.protobuf.Value values = 2;
Name | Description |
builderForValue | Builder |
Type | Description |
PartialResultSet.Builder |
addValues(int index, Value value)
public PartialResultSet.Builder addValues(int index, Value value)
A streamed result set consists of a stream of values, which might
be split into many PartialResultSet
messages to accommodate
large rows and/or large values. Every N complete values defines a
row, where N is equal to the number of entries in
metadata.row_type.fields.
Most values are encoded based on type as described
here.
It is possible that the last value in values is "chunked",
meaning that the rest of the value is sent in subsequent
PartialResultSet
(s). This is denoted by the chunked_value
field. Two or more chunked values can be merged to form a
complete value as follows:
bool/number/null
: cannot be chunkedstring
: concatenate the stringslist
: concatenate the lists. If the last element in a list is astring
,list
, orobject
, merge it with the first element in the next list by applying these rules recursively.object
: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. "foo", "bar" => "foobar" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. ["a", "b"], ["c", "d"] => ["a", "bc", "d"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"] # Non-overlapping object fields are combined. {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"} # Overlapping object fields are merged. {"a": "1"}, {"a": "2"} => {"a": "12"} # Examples of merging objects containing lists of strings. {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The followingPartialResultSet
s might be yielded: { "metadata": { ... } "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] "chunked_value": true "resume_token": "Bqp2..." } { "values": ["d"] "resume_token": "Zx1B..." } This sequence ofPartialResultSet
s encodes two rows, one containing the field value"Hello"
, and a second containing the field value"World" = "W" + "orl" + "d"
.
repeated .google.protobuf.Value values = 2;
Name | Description |
index | int |
value | Value |
Type | Description |
PartialResultSet.Builder |
addValues(int index, Value.Builder builderForValue)
public PartialResultSet.Builder addValues(int index, Value.Builder builderForValue)
A streamed result set consists of a stream of values, which might
be split into many PartialResultSet
messages to accommodate
large rows and/or large values. Every N complete values defines a
row, where N is equal to the number of entries in
metadata.row_type.fields.
Most values are encoded based on type as described
here.
It is possible that the last value in values is "chunked",
meaning that the rest of the value is sent in subsequent
PartialResultSet
(s). This is denoted by the chunked_value
field. Two or more chunked values can be merged to form a
complete value as follows:
bool/number/null
: cannot be chunkedstring
: concatenate the stringslist
: concatenate the lists. If the last element in a list is astring
,list
, orobject
, merge it with the first element in the next list by applying these rules recursively.object
: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. "foo", "bar" => "foobar" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. ["a", "b"], ["c", "d"] => ["a", "bc", "d"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"] # Non-overlapping object fields are combined. {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"} # Overlapping object fields are merged. {"a": "1"}, {"a": "2"} => {"a": "12"} # Examples of merging objects containing lists of strings. {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The followingPartialResultSet
s might be yielded: { "metadata": { ... } "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] "chunked_value": true "resume_token": "Bqp2..." } { "values": ["d"] "resume_token": "Zx1B..." } This sequence ofPartialResultSet
s encodes two rows, one containing the field value"Hello"
, and a second containing the field value"World" = "W" + "orl" + "d"
.
repeated .google.protobuf.Value values = 2;
Name | Description |
index | int |
builderForValue | Builder |
Type | Description |
PartialResultSet.Builder |
addValuesBuilder()
public Value.Builder addValuesBuilder()
A streamed result set consists of a stream of values, which might
be split into many PartialResultSet
messages to accommodate
large rows and/or large values. Every N complete values defines a
row, where N is equal to the number of entries in
metadata.row_type.fields.
Most values are encoded based on type as described
here.
It is possible that the last value in values is "chunked",
meaning that the rest of the value is sent in subsequent
PartialResultSet
(s). This is denoted by the chunked_value
field. Two or more chunked values can be merged to form a
complete value as follows:
bool/number/null
: cannot be chunkedstring
: concatenate the stringslist
: concatenate the lists. If the last element in a list is astring
,list
, orobject
, merge it with the first element in the next list by applying these rules recursively.object
: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. "foo", "bar" => "foobar" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. ["a", "b"], ["c", "d"] => ["a", "bc", "d"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"] # Non-overlapping object fields are combined. {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"} # Overlapping object fields are merged. {"a": "1"}, {"a": "2"} => {"a": "12"} # Examples of merging objects containing lists of strings. {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The followingPartialResultSet
s might be yielded: { "metadata": { ... } "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] "chunked_value": true "resume_token": "Bqp2..." } { "values": ["d"] "resume_token": "Zx1B..." } This sequence ofPartialResultSet
s encodes two rows, one containing the field value"Hello"
, and a second containing the field value"World" = "W" + "orl" + "d"
.
repeated .google.protobuf.Value values = 2;
Type | Description |
Builder |
addValuesBuilder(int index)
public Value.Builder addValuesBuilder(int index)
A streamed result set consists of a stream of values, which might
be split into many PartialResultSet
messages to accommodate
large rows and/or large values. Every N complete values defines a
row, where N is equal to the number of entries in
metadata.row_type.fields.
Most values are encoded based on type as described
here.
It is possible that the last value in values is "chunked",
meaning that the rest of the value is sent in subsequent
PartialResultSet
(s). This is denoted by the chunked_value
field. Two or more chunked values can be merged to form a
complete value as follows:
bool/number/null
: cannot be chunkedstring
: concatenate the stringslist
: concatenate the lists. If the last element in a list is astring
,list
, orobject
, merge it with the first element in the next list by applying these rules recursively.object
: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. "foo", "bar" => "foobar" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. ["a", "b"], ["c", "d"] => ["a", "bc", "d"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"] # Non-overlapping object fields are combined. {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"} # Overlapping object fields are merged. {"a": "1"}, {"a": "2"} => {"a": "12"} # Examples of merging objects containing lists of strings. {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The followingPartialResultSet
s might be yielded: { "metadata": { ... } "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] "chunked_value": true "resume_token": "Bqp2..." } { "values": ["d"] "resume_token": "Zx1B..." } This sequence ofPartialResultSet
s encodes two rows, one containing the field value"Hello"
, and a second containing the field value"World" = "W" + "orl" + "d"
.
repeated .google.protobuf.Value values = 2;
Name | Description |
index | int |
Type | Description |
Builder |
build()
public PartialResultSet build()
Type | Description |
PartialResultSet |
buildPartial()
public PartialResultSet buildPartial()
Type | Description |
PartialResultSet |
clear()
public PartialResultSet.Builder clear()
Type | Description |
PartialResultSet.Builder |
clearChunkedValue()
public PartialResultSet.Builder clearChunkedValue()
If true, then the final value in values is chunked, and must
be combined with more values from subsequent PartialResultSet
s
to obtain a complete field value.
bool chunked_value = 3;
Type | Description |
PartialResultSet.Builder | This builder for chaining. |
clearField(Descriptors.FieldDescriptor field)
public PartialResultSet.Builder clearField(Descriptors.FieldDescriptor field)
Name | Description |
field | FieldDescriptor |
Type | Description |
PartialResultSet.Builder |
clearMetadata()
public PartialResultSet.Builder clearMetadata()
Metadata about the result set, such as row type information. Only present in the first response.
.google.spanner.v1.ResultSetMetadata metadata = 1;
Type | Description |
PartialResultSet.Builder |
clearOneof(Descriptors.OneofDescriptor oneof)
public PartialResultSet.Builder clearOneof(Descriptors.OneofDescriptor oneof)
Name | Description |
oneof | OneofDescriptor |
Type | Description |
PartialResultSet.Builder |
clearResumeToken()
public PartialResultSet.Builder clearResumeToken()
Streaming calls might be interrupted for a variety of reasons, such
as TCP connection loss. If this occurs, the stream of results can
be resumed by re-sending the original request and including
resume_token
. Note that executing any other transaction in the
same session invalidates the token.
bytes resume_token = 4;
Type | Description |
PartialResultSet.Builder | This builder for chaining. |
clearStats()
public PartialResultSet.Builder clearStats()
Query plan and execution statistics for the statement that produced this streaming result set. These can be requested by setting ExecuteSqlRequest.query_mode and are sent only once with the last response in the stream. This field will also be present in the last response for DML statements.
.google.spanner.v1.ResultSetStats stats = 5;
Type | Description |
PartialResultSet.Builder |
clearValues()
public PartialResultSet.Builder clearValues()
A streamed result set consists of a stream of values, which might
be split into many PartialResultSet
messages to accommodate
large rows and/or large values. Every N complete values defines a
row, where N is equal to the number of entries in
metadata.row_type.fields.
Most values are encoded based on type as described
here.
It is possible that the last value in values is "chunked",
meaning that the rest of the value is sent in subsequent
PartialResultSet
(s). This is denoted by the chunked_value
field. Two or more chunked values can be merged to form a
complete value as follows:
bool/number/null
: cannot be chunkedstring
: concatenate the stringslist
: concatenate the lists. If the last element in a list is astring
,list
, orobject
, merge it with the first element in the next list by applying these rules recursively.object
: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. "foo", "bar" => "foobar" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. ["a", "b"], ["c", "d"] => ["a", "bc", "d"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"] # Non-overlapping object fields are combined. {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"} # Overlapping object fields are merged. {"a": "1"}, {"a": "2"} => {"a": "12"} # Examples of merging objects containing lists of strings. {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The followingPartialResultSet
s might be yielded: { "metadata": { ... } "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] "chunked_value": true "resume_token": "Bqp2..." } { "values": ["d"] "resume_token": "Zx1B..." } This sequence ofPartialResultSet
s encodes two rows, one containing the field value"Hello"
, and a second containing the field value"World" = "W" + "orl" + "d"
.
repeated .google.protobuf.Value values = 2;
Type | Description |
PartialResultSet.Builder |
clone()
public PartialResultSet.Builder clone()
Type | Description |
PartialResultSet.Builder |
getChunkedValue()
public boolean getChunkedValue()
If true, then the final value in values is chunked, and must
be combined with more values from subsequent PartialResultSet
s
to obtain a complete field value.
bool chunked_value = 3;
Type | Description |
boolean | The chunkedValue. |
getDefaultInstanceForType()
public PartialResultSet getDefaultInstanceForType()
Type | Description |
PartialResultSet |
getDescriptorForType()
public Descriptors.Descriptor getDescriptorForType()
Type | Description |
Descriptor |
getMetadata()
public ResultSetMetadata getMetadata()
Metadata about the result set, such as row type information. Only present in the first response.
.google.spanner.v1.ResultSetMetadata metadata = 1;
Type | Description |
ResultSetMetadata | The metadata. |
getMetadataBuilder()
public ResultSetMetadata.Builder getMetadataBuilder()
Metadata about the result set, such as row type information. Only present in the first response.
.google.spanner.v1.ResultSetMetadata metadata = 1;
Type | Description |
ResultSetMetadata.Builder |
getMetadataOrBuilder()
public ResultSetMetadataOrBuilder getMetadataOrBuilder()
Metadata about the result set, such as row type information. Only present in the first response.
.google.spanner.v1.ResultSetMetadata metadata = 1;
Type | Description |
ResultSetMetadataOrBuilder |
getResumeToken()
public ByteString getResumeToken()
Streaming calls might be interrupted for a variety of reasons, such
as TCP connection loss. If this occurs, the stream of results can
be resumed by re-sending the original request and including
resume_token
. Note that executing any other transaction in the
same session invalidates the token.
bytes resume_token = 4;
Type | Description |
ByteString | The resumeToken. |
getStats()
public ResultSetStats getStats()
Query plan and execution statistics for the statement that produced this streaming result set. These can be requested by setting ExecuteSqlRequest.query_mode and are sent only once with the last response in the stream. This field will also be present in the last response for DML statements.
.google.spanner.v1.ResultSetStats stats = 5;
Type | Description |
ResultSetStats | The stats. |
getStatsBuilder()
public ResultSetStats.Builder getStatsBuilder()
Query plan and execution statistics for the statement that produced this streaming result set. These can be requested by setting ExecuteSqlRequest.query_mode and are sent only once with the last response in the stream. This field will also be present in the last response for DML statements.
.google.spanner.v1.ResultSetStats stats = 5;
Type | Description |
ResultSetStats.Builder |
getStatsOrBuilder()
public ResultSetStatsOrBuilder getStatsOrBuilder()
Query plan and execution statistics for the statement that produced this streaming result set. These can be requested by setting ExecuteSqlRequest.query_mode and are sent only once with the last response in the stream. This field will also be present in the last response for DML statements.
.google.spanner.v1.ResultSetStats stats = 5;
Type | Description |
ResultSetStatsOrBuilder |
getValues(int index)
public Value getValues(int index)
A streamed result set consists of a stream of values, which might
be split into many PartialResultSet
messages to accommodate
large rows and/or large values. Every N complete values defines a
row, where N is equal to the number of entries in
metadata.row_type.fields.
Most values are encoded based on type as described
here.
It is possible that the last value in values is "chunked",
meaning that the rest of the value is sent in subsequent
PartialResultSet
(s). This is denoted by the chunked_value
field. Two or more chunked values can be merged to form a
complete value as follows:
bool/number/null
: cannot be chunkedstring
: concatenate the stringslist
: concatenate the lists. If the last element in a list is astring
,list
, orobject
, merge it with the first element in the next list by applying these rules recursively.object
: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. "foo", "bar" => "foobar" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. ["a", "b"], ["c", "d"] => ["a", "bc", "d"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"] # Non-overlapping object fields are combined. {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"} # Overlapping object fields are merged. {"a": "1"}, {"a": "2"} => {"a": "12"} # Examples of merging objects containing lists of strings. {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The followingPartialResultSet
s might be yielded: { "metadata": { ... } "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] "chunked_value": true "resume_token": "Bqp2..." } { "values": ["d"] "resume_token": "Zx1B..." } This sequence ofPartialResultSet
s encodes two rows, one containing the field value"Hello"
, and a second containing the field value"World" = "W" + "orl" + "d"
.
repeated .google.protobuf.Value values = 2;
Name | Description |
index | int |
Type | Description |
Value |
getValuesBuilder(int index)
public Value.Builder getValuesBuilder(int index)
A streamed result set consists of a stream of values, which might
be split into many PartialResultSet
messages to accommodate
large rows and/or large values. Every N complete values defines a
row, where N is equal to the number of entries in
metadata.row_type.fields.
Most values are encoded based on type as described
here.
It is possible that the last value in values is "chunked",
meaning that the rest of the value is sent in subsequent
PartialResultSet
(s). This is denoted by the chunked_value
field. Two or more chunked values can be merged to form a
complete value as follows:
bool/number/null
: cannot be chunkedstring
: concatenate the stringslist
: concatenate the lists. If the last element in a list is astring
,list
, orobject
, merge it with the first element in the next list by applying these rules recursively.object
: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. "foo", "bar" => "foobar" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. ["a", "b"], ["c", "d"] => ["a", "bc", "d"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"] # Non-overlapping object fields are combined. {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"} # Overlapping object fields are merged. {"a": "1"}, {"a": "2"} => {"a": "12"} # Examples of merging objects containing lists of strings. {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The followingPartialResultSet
s might be yielded: { "metadata": { ... } "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] "chunked_value": true "resume_token": "Bqp2..." } { "values": ["d"] "resume_token": "Zx1B..." } This sequence ofPartialResultSet
s encodes two rows, one containing the field value"Hello"
, and a second containing the field value"World" = "W" + "orl" + "d"
.
repeated .google.protobuf.Value values = 2;
Name | Description |
index | int |
Type | Description |
Builder |
getValuesBuilderList()
public List<Value.Builder> getValuesBuilderList()
A streamed result set consists of a stream of values, which might
be split into many PartialResultSet
messages to accommodate
large rows and/or large values. Every N complete values defines a
row, where N is equal to the number of entries in
metadata.row_type.fields.
Most values are encoded based on type as described
here.
It is possible that the last value in values is "chunked",
meaning that the rest of the value is sent in subsequent
PartialResultSet
(s). This is denoted by the chunked_value
field. Two or more chunked values can be merged to form a
complete value as follows:
bool/number/null
: cannot be chunkedstring
: concatenate the stringslist
: concatenate the lists. If the last element in a list is astring
,list
, orobject
, merge it with the first element in the next list by applying these rules recursively.object
: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. "foo", "bar" => "foobar" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. ["a", "b"], ["c", "d"] => ["a", "bc", "d"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"] # Non-overlapping object fields are combined. {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"} # Overlapping object fields are merged. {"a": "1"}, {"a": "2"} => {"a": "12"} # Examples of merging objects containing lists of strings. {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The followingPartialResultSet
s might be yielded: { "metadata": { ... } "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] "chunked_value": true "resume_token": "Bqp2..." } { "values": ["d"] "resume_token": "Zx1B..." } This sequence ofPartialResultSet
s encodes two rows, one containing the field value"Hello"
, and a second containing the field value"World" = "W" + "orl" + "d"
.
repeated .google.protobuf.Value values = 2;
Type | Description |
List<Builder> |
getValuesCount()
public int getValuesCount()
A streamed result set consists of a stream of values, which might
be split into many PartialResultSet
messages to accommodate
large rows and/or large values. Every N complete values defines a
row, where N is equal to the number of entries in
metadata.row_type.fields.
Most values are encoded based on type as described
here.
It is possible that the last value in values is "chunked",
meaning that the rest of the value is sent in subsequent
PartialResultSet
(s). This is denoted by the chunked_value
field. Two or more chunked values can be merged to form a
complete value as follows:
bool/number/null
: cannot be chunkedstring
: concatenate the stringslist
: concatenate the lists. If the last element in a list is astring
,list
, orobject
, merge it with the first element in the next list by applying these rules recursively.object
: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. "foo", "bar" => "foobar" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. ["a", "b"], ["c", "d"] => ["a", "bc", "d"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"] # Non-overlapping object fields are combined. {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"} # Overlapping object fields are merged. {"a": "1"}, {"a": "2"} => {"a": "12"} # Examples of merging objects containing lists of strings. {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The followingPartialResultSet
s might be yielded: { "metadata": { ... } "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] "chunked_value": true "resume_token": "Bqp2..." } { "values": ["d"] "resume_token": "Zx1B..." } This sequence ofPartialResultSet
s encodes two rows, one containing the field value"Hello"
, and a second containing the field value"World" = "W" + "orl" + "d"
.
repeated .google.protobuf.Value values = 2;
Type | Description |
int |
getValuesList()
public List<Value> getValuesList()
A streamed result set consists of a stream of values, which might
be split into many PartialResultSet
messages to accommodate
large rows and/or large values. Every N complete values defines a
row, where N is equal to the number of entries in
metadata.row_type.fields.
Most values are encoded based on type as described
here.
It is possible that the last value in values is "chunked",
meaning that the rest of the value is sent in subsequent
PartialResultSet
(s). This is denoted by the chunked_value
field. Two or more chunked values can be merged to form a
complete value as follows:
bool/number/null
: cannot be chunkedstring
: concatenate the stringslist
: concatenate the lists. If the last element in a list is astring
,list
, orobject
, merge it with the first element in the next list by applying these rules recursively.object
: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. "foo", "bar" => "foobar" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. ["a", "b"], ["c", "d"] => ["a", "bc", "d"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"] # Non-overlapping object fields are combined. {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"} # Overlapping object fields are merged. {"a": "1"}, {"a": "2"} => {"a": "12"} # Examples of merging objects containing lists of strings. {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The followingPartialResultSet
s might be yielded: { "metadata": { ... } "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] "chunked_value": true "resume_token": "Bqp2..." } { "values": ["d"] "resume_token": "Zx1B..." } This sequence ofPartialResultSet
s encodes two rows, one containing the field value"Hello"
, and a second containing the field value"World" = "W" + "orl" + "d"
.
repeated .google.protobuf.Value values = 2;
Type | Description |
List<Value> |
getValuesOrBuilder(int index)
public ValueOrBuilder getValuesOrBuilder(int index)
A streamed result set consists of a stream of values, which might
be split into many PartialResultSet
messages to accommodate
large rows and/or large values. Every N complete values defines a
row, where N is equal to the number of entries in
metadata.row_type.fields.
Most values are encoded based on type as described
here.
It is possible that the last value in values is "chunked",
meaning that the rest of the value is sent in subsequent
PartialResultSet
(s). This is denoted by the chunked_value
field. Two or more chunked values can be merged to form a
complete value as follows:
bool/number/null
: cannot be chunkedstring
: concatenate the stringslist
: concatenate the lists. If the last element in a list is astring
,list
, orobject
, merge it with the first element in the next list by applying these rules recursively.object
: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. "foo", "bar" => "foobar" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. ["a", "b"], ["c", "d"] => ["a", "bc", "d"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"] # Non-overlapping object fields are combined. {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"} # Overlapping object fields are merged. {"a": "1"}, {"a": "2"} => {"a": "12"} # Examples of merging objects containing lists of strings. {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The followingPartialResultSet
s might be yielded: { "metadata": { ... } "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] "chunked_value": true "resume_token": "Bqp2..." } { "values": ["d"] "resume_token": "Zx1B..." } This sequence ofPartialResultSet
s encodes two rows, one containing the field value"Hello"
, and a second containing the field value"World" = "W" + "orl" + "d"
.
repeated .google.protobuf.Value values = 2;
Name | Description |
index | int |
Type | Description |
ValueOrBuilder |
getValuesOrBuilderList()
public List<? extends ValueOrBuilder> getValuesOrBuilderList()
A streamed result set consists of a stream of values, which might
be split into many PartialResultSet
messages to accommodate
large rows and/or large values. Every N complete values defines a
row, where N is equal to the number of entries in
metadata.row_type.fields.
Most values are encoded based on type as described
here.
It is possible that the last value in values is "chunked",
meaning that the rest of the value is sent in subsequent
PartialResultSet
(s). This is denoted by the chunked_value
field. Two or more chunked values can be merged to form a
complete value as follows:
bool/number/null
: cannot be chunkedstring
: concatenate the stringslist
: concatenate the lists. If the last element in a list is astring
,list
, orobject
, merge it with the first element in the next list by applying these rules recursively.object
: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. "foo", "bar" => "foobar" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. ["a", "b"], ["c", "d"] => ["a", "bc", "d"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"] # Non-overlapping object fields are combined. {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"} # Overlapping object fields are merged. {"a": "1"}, {"a": "2"} => {"a": "12"} # Examples of merging objects containing lists of strings. {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The followingPartialResultSet
s might be yielded: { "metadata": { ... } "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] "chunked_value": true "resume_token": "Bqp2..." } { "values": ["d"] "resume_token": "Zx1B..." } This sequence ofPartialResultSet
s encodes two rows, one containing the field value"Hello"
, and a second containing the field value"World" = "W" + "orl" + "d"
.
repeated .google.protobuf.Value values = 2;
Type | Description |
List<? extends com.google.protobuf.ValueOrBuilder> |
hasMetadata()
public boolean hasMetadata()
Metadata about the result set, such as row type information. Only present in the first response.
.google.spanner.v1.ResultSetMetadata metadata = 1;
Type | Description |
boolean | Whether the metadata field is set. |
hasStats()
public boolean hasStats()
Query plan and execution statistics for the statement that produced this streaming result set. These can be requested by setting ExecuteSqlRequest.query_mode and are sent only once with the last response in the stream. This field will also be present in the last response for DML statements.
.google.spanner.v1.ResultSetStats stats = 5;
Type | Description |
boolean | Whether the stats field is set. |
internalGetFieldAccessorTable()
protected GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Type | Description |
FieldAccessorTable |
isInitialized()
public final boolean isInitialized()
Type | Description |
boolean |
mergeFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
public PartialResultSet.Builder mergeFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
Name | Description |
input | CodedInputStream |
extensionRegistry | ExtensionRegistryLite |
Type | Description |
PartialResultSet.Builder |
Type | Description |
IOException |
mergeFrom(Message other)
public PartialResultSet.Builder mergeFrom(Message other)
Name | Description |
other | Message |
Type | Description |
PartialResultSet.Builder |
mergeFrom(PartialResultSet other)
public PartialResultSet.Builder mergeFrom(PartialResultSet other)
Name | Description |
other | PartialResultSet |
Type | Description |
PartialResultSet.Builder |
mergeMetadata(ResultSetMetadata value)
public PartialResultSet.Builder mergeMetadata(ResultSetMetadata value)
Metadata about the result set, such as row type information. Only present in the first response.
.google.spanner.v1.ResultSetMetadata metadata = 1;
Name | Description |
value | ResultSetMetadata |
Type | Description |
PartialResultSet.Builder |
mergeStats(ResultSetStats value)
public PartialResultSet.Builder mergeStats(ResultSetStats value)
Query plan and execution statistics for the statement that produced this streaming result set. These can be requested by setting ExecuteSqlRequest.query_mode and are sent only once with the last response in the stream. This field will also be present in the last response for DML statements.
.google.spanner.v1.ResultSetStats stats = 5;
Name | Description |
value | ResultSetStats |
Type | Description |
PartialResultSet.Builder |
mergeUnknownFields(UnknownFieldSet unknownFields)
public final PartialResultSet.Builder mergeUnknownFields(UnknownFieldSet unknownFields)
Name | Description |
unknownFields | UnknownFieldSet |
Type | Description |
PartialResultSet.Builder |
removeValues(int index)
public PartialResultSet.Builder removeValues(int index)
A streamed result set consists of a stream of values, which might
be split into many PartialResultSet
messages to accommodate
large rows and/or large values. Every N complete values defines a
row, where N is equal to the number of entries in
metadata.row_type.fields.
Most values are encoded based on type as described
here.
It is possible that the last value in values is "chunked",
meaning that the rest of the value is sent in subsequent
PartialResultSet
(s). This is denoted by the chunked_value
field. Two or more chunked values can be merged to form a
complete value as follows:
bool/number/null
: cannot be chunkedstring
: concatenate the stringslist
: concatenate the lists. If the last element in a list is astring
,list
, orobject
, merge it with the first element in the next list by applying these rules recursively.object
: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. "foo", "bar" => "foobar" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. ["a", "b"], ["c", "d"] => ["a", "bc", "d"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"] # Non-overlapping object fields are combined. {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"} # Overlapping object fields are merged. {"a": "1"}, {"a": "2"} => {"a": "12"} # Examples of merging objects containing lists of strings. {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The followingPartialResultSet
s might be yielded: { "metadata": { ... } "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] "chunked_value": true "resume_token": "Bqp2..." } { "values": ["d"] "resume_token": "Zx1B..." } This sequence ofPartialResultSet
s encodes two rows, one containing the field value"Hello"
, and a second containing the field value"World" = "W" + "orl" + "d"
.
repeated .google.protobuf.Value values = 2;
Name | Description |
index | int |
Type | Description |
PartialResultSet.Builder |
setChunkedValue(boolean value)
public PartialResultSet.Builder setChunkedValue(boolean value)
If true, then the final value in values is chunked, and must
be combined with more values from subsequent PartialResultSet
s
to obtain a complete field value.
bool chunked_value = 3;
Name | Description |
value | boolean The chunkedValue to set. |
Type | Description |
PartialResultSet.Builder | This builder for chaining. |
setField(Descriptors.FieldDescriptor field, Object value)
public PartialResultSet.Builder setField(Descriptors.FieldDescriptor field, Object value)
Name | Description |
field | FieldDescriptor |
value | Object |
Type | Description |
PartialResultSet.Builder |
setMetadata(ResultSetMetadata value)
public PartialResultSet.Builder setMetadata(ResultSetMetadata value)
Metadata about the result set, such as row type information. Only present in the first response.
.google.spanner.v1.ResultSetMetadata metadata = 1;
Name | Description |
value | ResultSetMetadata |
Type | Description |
PartialResultSet.Builder |
setMetadata(ResultSetMetadata.Builder builderForValue)
public PartialResultSet.Builder setMetadata(ResultSetMetadata.Builder builderForValue)
Metadata about the result set, such as row type information. Only present in the first response.
.google.spanner.v1.ResultSetMetadata metadata = 1;
Name | Description |
builderForValue | ResultSetMetadata.Builder |
Type | Description |
PartialResultSet.Builder |
setRepeatedField(Descriptors.FieldDescriptor field, int index, Object value)
public PartialResultSet.Builder setRepeatedField(Descriptors.FieldDescriptor field, int index, Object value)
Name | Description |
field | FieldDescriptor |
index | int |
value | Object |
Type | Description |
PartialResultSet.Builder |
setResumeToken(ByteString value)
public PartialResultSet.Builder setResumeToken(ByteString value)
Streaming calls might be interrupted for a variety of reasons, such
as TCP connection loss. If this occurs, the stream of results can
be resumed by re-sending the original request and including
resume_token
. Note that executing any other transaction in the
same session invalidates the token.
bytes resume_token = 4;
Name | Description |
value | ByteString The resumeToken to set. |
Type | Description |
PartialResultSet.Builder | This builder for chaining. |
setStats(ResultSetStats value)
public PartialResultSet.Builder setStats(ResultSetStats value)
Query plan and execution statistics for the statement that produced this streaming result set. These can be requested by setting ExecuteSqlRequest.query_mode and are sent only once with the last response in the stream. This field will also be present in the last response for DML statements.
.google.spanner.v1.ResultSetStats stats = 5;
Name | Description |
value | ResultSetStats |
Type | Description |
PartialResultSet.Builder |
setStats(ResultSetStats.Builder builderForValue)
public PartialResultSet.Builder setStats(ResultSetStats.Builder builderForValue)
Query plan and execution statistics for the statement that produced this streaming result set. These can be requested by setting ExecuteSqlRequest.query_mode and are sent only once with the last response in the stream. This field will also be present in the last response for DML statements.
.google.spanner.v1.ResultSetStats stats = 5;
Name | Description |
builderForValue | ResultSetStats.Builder |
Type | Description |
PartialResultSet.Builder |
setUnknownFields(UnknownFieldSet unknownFields)
public final PartialResultSet.Builder setUnknownFields(UnknownFieldSet unknownFields)
Name | Description |
unknownFields | UnknownFieldSet |
Type | Description |
PartialResultSet.Builder |
setValues(int index, Value value)
public PartialResultSet.Builder setValues(int index, Value value)
A streamed result set consists of a stream of values, which might
be split into many PartialResultSet
messages to accommodate
large rows and/or large values. Every N complete values defines a
row, where N is equal to the number of entries in
metadata.row_type.fields.
Most values are encoded based on type as described
here.
It is possible that the last value in values is "chunked",
meaning that the rest of the value is sent in subsequent
PartialResultSet
(s). This is denoted by the chunked_value
field. Two or more chunked values can be merged to form a
complete value as follows:
bool/number/null
: cannot be chunkedstring
: concatenate the stringslist
: concatenate the lists. If the last element in a list is astring
,list
, orobject
, merge it with the first element in the next list by applying these rules recursively.object
: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. "foo", "bar" => "foobar" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. ["a", "b"], ["c", "d"] => ["a", "bc", "d"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"] # Non-overlapping object fields are combined. {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"} # Overlapping object fields are merged. {"a": "1"}, {"a": "2"} => {"a": "12"} # Examples of merging objects containing lists of strings. {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The followingPartialResultSet
s might be yielded: { "metadata": { ... } "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] "chunked_value": true "resume_token": "Bqp2..." } { "values": ["d"] "resume_token": "Zx1B..." } This sequence ofPartialResultSet
s encodes two rows, one containing the field value"Hello"
, and a second containing the field value"World" = "W" + "orl" + "d"
.
repeated .google.protobuf.Value values = 2;
Name | Description |
index | int |
value | Value |
Type | Description |
PartialResultSet.Builder |
setValues(int index, Value.Builder builderForValue)
public PartialResultSet.Builder setValues(int index, Value.Builder builderForValue)
A streamed result set consists of a stream of values, which might
be split into many PartialResultSet
messages to accommodate
large rows and/or large values. Every N complete values defines a
row, where N is equal to the number of entries in
metadata.row_type.fields.
Most values are encoded based on type as described
here.
It is possible that the last value in values is "chunked",
meaning that the rest of the value is sent in subsequent
PartialResultSet
(s). This is denoted by the chunked_value
field. Two or more chunked values can be merged to form a
complete value as follows:
bool/number/null
: cannot be chunkedstring
: concatenate the stringslist
: concatenate the lists. If the last element in a list is astring
,list
, orobject
, merge it with the first element in the next list by applying these rules recursively.object
: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. "foo", "bar" => "foobar" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. ["a", "b"], ["c", "d"] => ["a", "bc", "d"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"] # Non-overlapping object fields are combined. {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"} # Overlapping object fields are merged. {"a": "1"}, {"a": "2"} => {"a": "12"} # Examples of merging objects containing lists of strings. {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The followingPartialResultSet
s might be yielded: { "metadata": { ... } "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] "chunked_value": true "resume_token": "Bqp2..." } { "values": ["d"] "resume_token": "Zx1B..." } This sequence ofPartialResultSet
s encodes two rows, one containing the field value"Hello"
, and a second containing the field value"World" = "W" + "orl" + "d"
.
repeated .google.protobuf.Value values = 2;
Name | Description |
index | int |
builderForValue | Builder |
Type | Description |
PartialResultSet.Builder |