All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.api.services.spanner.v1.model.PartialResultSet Maven / Gradle / Ivy

There is a newer version: v1-rev20241020-2.0.0
Show newest version
/*
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */
/*
 * This code was generated by https://github.com/googleapis/google-api-java-client-services/
 * Modify at your own risk.
 */

package com.google.api.services.spanner.v1.model;

/**
 * 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.
 *
 * 

This is the Java data model class that specifies how to parse/serialize into the JSON that is * transmitted over HTTP when working with the Cloud Spanner API. For a detailed explanation see: * https://developers.google.com/api-client-library/java/google-http-java-client/json *

* * @author Google, Inc. */ @SuppressWarnings("javadoc") public final class PartialResultSet extends com.google.api.client.json.GenericJson { /** * 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. * The value may be {@code null}. */ @com.google.api.client.util.Key private java.lang.Boolean chunkedValue; /** * Metadata about the result set, such as row type information. Only present in the first * response. * The value may be {@code null}. */ @com.google.api.client.util.Key private ResultSetMetadata metadata; /** * 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. * The value may be {@code null}. */ @com.google.api.client.util.Key private java.lang.String resumeToken; /** * 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. * The value may be {@code null}. */ @com.google.api.client.util.Key private ResultSetStats stats; /** * 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 chunked * * `string`: concatenate the strings * `list`: concatenate the lists. If the last element in a * list is a `string`, `list`, or `object`, 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 following `PartialResultSet`s might be yielded: { "metadata": { ... } * "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] * "chunked_value": true } { "values": ["d"] "resume_token": "Zx1B..." } This sequence of * `PartialResultSet`s encodes two rows, one containing the field value `"Hello"`, and a second * containing the field value `"World" = "W" + "orl" + "d"`. Not all `PartialResultSet`s contain a * `resume_token`. Execution can only be resumed from a previously yielded `resume_token`. For the * above sequence of `PartialResultSet`s, resuming the query with `"resume_token": "Af65..."` will * yield results from the `PartialResultSet` with value `["orl"]`. * The value may be {@code null}. */ @com.google.api.client.util.Key private java.util.List values; /** * 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. * @return value or {@code null} for none */ public java.lang.Boolean getChunkedValue() { return chunkedValue; } /** * 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. * @param chunkedValue chunkedValue or {@code null} for none */ public PartialResultSet setChunkedValue(java.lang.Boolean chunkedValue) { this.chunkedValue = chunkedValue; return this; } /** * Metadata about the result set, such as row type information. Only present in the first * response. * @return value or {@code null} for none */ public ResultSetMetadata getMetadata() { return metadata; } /** * Metadata about the result set, such as row type information. Only present in the first * response. * @param metadata metadata or {@code null} for none */ public PartialResultSet setMetadata(ResultSetMetadata metadata) { this.metadata = metadata; return this; } /** * 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. * @see #decodeResumeToken() * @return value or {@code null} for none */ public java.lang.String getResumeToken() { return 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. * @see #getResumeToken() * @return Base64 decoded value or {@code null} for none * * @since 1.14 */ public byte[] decodeResumeToken() { return com.google.api.client.util.Base64.decodeBase64(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. * @see #encodeResumeToken() * @param resumeToken resumeToken or {@code null} for none */ public PartialResultSet setResumeToken(java.lang.String resumeToken) { this.resumeToken = resumeToken; return this; } /** * 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. * @see #setResumeToken() * *

* The value is encoded Base64 or {@code null} for none. *

* * @since 1.14 */ public PartialResultSet encodeResumeToken(byte[] resumeToken) { this.resumeToken = com.google.api.client.util.Base64.encodeBase64URLSafeString(resumeToken); return this; } /** * 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. * @return value or {@code null} for none */ public ResultSetStats getStats() { return stats; } /** * 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. * @param stats stats or {@code null} for none */ public PartialResultSet setStats(ResultSetStats stats) { this.stats = stats; return this; } /** * 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 chunked * * `string`: concatenate the strings * `list`: concatenate the lists. If the last element in a * list is a `string`, `list`, or `object`, 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 following `PartialResultSet`s might be yielded: { "metadata": { ... } * "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] * "chunked_value": true } { "values": ["d"] "resume_token": "Zx1B..." } This sequence of * `PartialResultSet`s encodes two rows, one containing the field value `"Hello"`, and a second * containing the field value `"World" = "W" + "orl" + "d"`. Not all `PartialResultSet`s contain a * `resume_token`. Execution can only be resumed from a previously yielded `resume_token`. For the * above sequence of `PartialResultSet`s, resuming the query with `"resume_token": "Af65..."` will * yield results from the `PartialResultSet` with value `["orl"]`. * @return value or {@code null} for none */ public java.util.List getValues() { return 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 chunked * * `string`: concatenate the strings * `list`: concatenate the lists. If the last element in a * list is a `string`, `list`, or `object`, 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 following `PartialResultSet`s might be yielded: { "metadata": { ... } * "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } { "values": ["orl"] * "chunked_value": true } { "values": ["d"] "resume_token": "Zx1B..." } This sequence of * `PartialResultSet`s encodes two rows, one containing the field value `"Hello"`, and a second * containing the field value `"World" = "W" + "orl" + "d"`. Not all `PartialResultSet`s contain a * `resume_token`. Execution can only be resumed from a previously yielded `resume_token`. For the * above sequence of `PartialResultSet`s, resuming the query with `"resume_token": "Af65..."` will * yield results from the `PartialResultSet` with value `["orl"]`. * @param values values or {@code null} for none */ public PartialResultSet setValues(java.util.List values) { this.values = values; return this; } @Override public PartialResultSet set(String fieldName, Object value) { return (PartialResultSet) super.set(fieldName, value); } @Override public PartialResultSet clone() { return (PartialResultSet) super.clone(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy