final case class PartialResultSet(metadata: Option[ResultSetMetadata] = _root_.scala.None, values: Seq[Value] = _root_.scala.Seq.empty, chunkedValue: Boolean = false, resumeToken: ByteString = ..., stats: Option[ResultSetStats] = _root_.scala.None, unknownFields: UnknownFieldSet = ...) extends GeneratedMessage with Updatable[PartialResultSet] with Product with Serializable
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.
- metadata
Metadata about the result set, such as row type information. Only present in the first response.
- values
A streamed result set consists of a stream of values, which might be split into many
PartialResultSetmessages 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][google.spanner.v1.StructType.fields]. Most values are encoded based on type as described [here][google.spanner.v1.TypeCode]. It is possible that the last value in values is "chunked", meaning that the rest of the value is sent in subsequentPartialResultSet(s). This is denoted by the [chunked_value][google.spanner.v1.PartialResultSet.chunked_value] field. Two or more chunked values can be merged to form a complete value as follows: *bool/number/null: cannot be chunked *string: concatenate the strings *list: 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"]], "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 followingPartialResultSets 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 ofPartialResultSets encodes two rows, one containing the field value"Hello", and a second containing the field value"World" = "W" + "orl" + "d".- chunkedValue
If true, then the final value in [values][google.spanner.v1.PartialResultSet.values] is chunked, and must be combined with more values from subsequent
PartialResultSets to obtain a complete field value.- resumeToken
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.- stats
Query plan and execution statistics for the statement that produced this streaming result set. These can be requested by setting [ExecuteSqlRequest.query_mode][google.spanner.v1.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.
- Annotations
- @SerialVersionUID()
- Alphabetic
- By Inheritance
- PartialResultSet
- Product
- Equals
- Updatable
- GeneratedMessage
- Serializable
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
PartialResultSet(metadata: Option[ResultSetMetadata] = _root_.scala.None, values: Seq[Value] = _root_.scala.Seq.empty, chunkedValue: Boolean = false, resumeToken: ByteString = ..., stats: Option[ResultSetStats] = _root_.scala.None, unknownFields: UnknownFieldSet = ...)
- metadata
Metadata about the result set, such as row type information. Only present in the first response.
- values
A streamed result set consists of a stream of values, which might be split into many
PartialResultSetmessages 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][google.spanner.v1.StructType.fields]. Most values are encoded based on type as described [here][google.spanner.v1.TypeCode]. It is possible that the last value in values is "chunked", meaning that the rest of the value is sent in subsequentPartialResultSet(s). This is denoted by the [chunked_value][google.spanner.v1.PartialResultSet.chunked_value] field. Two or more chunked values can be merged to form a complete value as follows: *bool/number/null: cannot be chunked *string: concatenate the strings *list: 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"]], "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 followingPartialResultSets 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 ofPartialResultSets encodes two rows, one containing the field value"Hello", and a second containing the field value"World" = "W" + "orl" + "d".- chunkedValue
If true, then the final value in [values][google.spanner.v1.PartialResultSet.values] is chunked, and must be combined with more values from subsequent
PartialResultSets to obtain a complete field value.- resumeToken
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.- stats
Query plan and execution statistics for the statement that produced this streaming result set. These can be requested by setting [ExecuteSqlRequest.query_mode][google.spanner.v1.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.
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def addAllValues(__vs: Iterable[Value]): PartialResultSet
- def addValues(__vs: Value*): PartialResultSet
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
- val chunkedValue: Boolean
- def clearMetadata: PartialResultSet
- def clearStats: PartialResultSet
- def clearValues: PartialResultSet
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
companion: PartialResultSet.type
- Definition Classes
- PartialResultSet → GeneratedMessage
- def discardUnknownFields: PartialResultSet
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
getField(__field: FieldDescriptor): PValue
- Definition Classes
- PartialResultSet → GeneratedMessage
-
def
getFieldByNumber(__fieldNumber: Int): Any
- Definition Classes
- PartialResultSet → GeneratedMessage
- def getMetadata: ResultSetMetadata
- def getStats: ResultSetStats
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val metadata: Option[ResultSetMetadata]
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- val resumeToken: ByteString
-
def
serializedSize: Int
- Definition Classes
- PartialResultSet → GeneratedMessage
- val stats: Option[ResultSetStats]
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
final
def
toByteArray: Array[Byte]
- Definition Classes
- GeneratedMessage
-
final
def
toByteString: ByteString
- Definition Classes
- GeneratedMessage
-
final
def
toPMessage: PMessage
- Definition Classes
- GeneratedMessage
-
def
toProtoString: String
- Definition Classes
- PartialResultSet → GeneratedMessage
- val unknownFields: UnknownFieldSet
-
def
update(ms: (Lens[PartialResultSet, PartialResultSet]) ⇒ scalapb.lenses.Mutation[PartialResultSet]*): PartialResultSet
- Definition Classes
- Updatable
- val values: Seq[Value]
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
- def withChunkedValue(__v: Boolean): PartialResultSet
- def withMetadata(__v: ResultSetMetadata): PartialResultSet
- def withResumeToken(__v: ByteString): PartialResultSet
- def withStats(__v: ResultSetStats): PartialResultSet
- def withUnknownFields(__v: UnknownFieldSet): PartialResultSet
- def withValues(__v: Seq[Value]): PartialResultSet
-
final
def
writeDelimitedTo(output: OutputStream): Unit
- Definition Classes
- GeneratedMessage
-
def
writeTo(_output__: CodedOutputStream): Unit
- Definition Classes
- PartialResultSet → GeneratedMessage
-
final
def
writeTo(output: OutputStream): Unit
- Definition Classes
- GeneratedMessage