#![allow(unknown_lints)]
#![allow(clippy)]
#![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(box_pointers)]
#![allow(dead_code)]
#![allow(missing_docs)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(trivial_casts)]
#![allow(unsafe_code)]
#![allow(unused_imports)]
#![allow(unused_results)]
use protobuf::Message as Message_imported_for_functions;
use protobuf::ProtobufEnum as ProtobufEnum_imported_for_functions;
#[derive(PartialEq,Clone,Default)]
pub struct ResultSet {
pub metadata: ::protobuf::SingularPtrField<ResultSetMetadata>,
pub rows: ::protobuf::RepeatedField<::protobuf::well_known_types::ListValue>,
pub stats: ::protobuf::SingularPtrField<ResultSetStats>,
unknown_fields: ::protobuf::UnknownFields,
cached_size: ::protobuf::CachedSize,
}
impl ResultSet {
pub fn new() -> ResultSet {
::std::default::Default::default()
}
pub fn clear_metadata(&mut self) {
self.metadata.clear();
}
pub fn has_metadata(&self) -> bool {
self.metadata.is_some()
}
pub fn set_metadata(&mut self, v: ResultSetMetadata) {
self.metadata = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_metadata(&mut self) -> &mut ResultSetMetadata {
if self.metadata.is_none() {
self.metadata.set_default();
}
self.metadata.as_mut().unwrap()
}
pub fn take_metadata(&mut self) -> ResultSetMetadata {
self.metadata.take().unwrap_or_else(|| ResultSetMetadata::new())
}
pub fn get_metadata(&self) -> &ResultSetMetadata {
self.metadata.as_ref().unwrap_or_else(|| ResultSetMetadata::default_instance())
}
pub fn clear_rows(&mut self) {
self.rows.clear();
}
pub fn set_rows(&mut self, v: ::protobuf::RepeatedField<::protobuf::well_known_types::ListValue>) {
self.rows = v;
}
pub fn mut_rows(&mut self) -> &mut ::protobuf::RepeatedField<::protobuf::well_known_types::ListValue> {
&mut self.rows
}
pub fn take_rows(&mut self) -> ::protobuf::RepeatedField<::protobuf::well_known_types::ListValue> {
::std::mem::replace(&mut self.rows, ::protobuf::RepeatedField::new())
}
pub fn get_rows(&self) -> &[::protobuf::well_known_types::ListValue] {
&self.rows
}
pub fn clear_stats(&mut self) {
self.stats.clear();
}
pub fn has_stats(&self) -> bool {
self.stats.is_some()
}
pub fn set_stats(&mut self, v: ResultSetStats) {
self.stats = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_stats(&mut self) -> &mut ResultSetStats {
if self.stats.is_none() {
self.stats.set_default();
}
self.stats.as_mut().unwrap()
}
pub fn take_stats(&mut self) -> ResultSetStats {
self.stats.take().unwrap_or_else(|| ResultSetStats::new())
}
pub fn get_stats(&self) -> &ResultSetStats {
self.stats.as_ref().unwrap_or_else(|| ResultSetStats::default_instance())
}
}
impl ::protobuf::Message for ResultSet {
fn is_initialized(&self) -> bool {
for v in &self.metadata {
if !v.is_initialized() {
return false;
}
};
for v in &self.rows {
if !v.is_initialized() {
return false;
}
};
for v in &self.stats {
if !v.is_initialized() {
return false;
}
};
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
while !is.eof()? {
let (field_number, wire_type) = is.read_tag_unpack()?;
match field_number {
1 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.metadata)?;
},
2 => {
::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.rows)?;
},
3 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.stats)?;
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if let Some(ref v) = self.metadata.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
for value in &self.rows {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
};
if let Some(ref v) = self.stats.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
self.cached_size.set(my_size);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
if let Some(ref v) = self.metadata.as_ref() {
os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
}
for v in &self.rows {
os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
};
if let Some(ref v) = self.stats.as_ref() {
os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
}
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &::std::any::Any {
self as &::std::any::Any
}
fn as_any_mut(&mut self) -> &mut ::std::any::Any {
self as &mut ::std::any::Any
}
fn into_any(self: Box<Self>) -> ::std::boxed::Box<::std::any::Any> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> ResultSet {
ResultSet::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
lock: ::protobuf::lazy::ONCE_INIT,
ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
};
unsafe {
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ResultSetMetadata>>(
"metadata",
|m: &ResultSet| { &m.metadata },
|m: &mut ResultSet| { &mut m.metadata },
));
fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::ListValue>>(
"rows",
|m: &ResultSet| { &m.rows },
|m: &mut ResultSet| { &mut m.rows },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ResultSetStats>>(
"stats",
|m: &ResultSet| { &m.stats },
|m: &mut ResultSet| { &mut m.stats },
));
::protobuf::reflect::MessageDescriptor::new::<ResultSet>(
"ResultSet",
fields,
file_descriptor_proto()
)
})
}
}
fn default_instance() -> &'static ResultSet {
static mut instance: ::protobuf::lazy::Lazy<ResultSet> = ::protobuf::lazy::Lazy {
lock: ::protobuf::lazy::ONCE_INIT,
ptr: 0 as *const ResultSet,
};
unsafe {
instance.get(ResultSet::new)
}
}
}
impl ::protobuf::Clear for ResultSet {
fn clear(&mut self) {
self.clear_metadata();
self.clear_rows();
self.clear_stats();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for ResultSet {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for ResultSet {
fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
::protobuf::reflect::ProtobufValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct PartialResultSet {
pub metadata: ::protobuf::SingularPtrField<ResultSetMetadata>,
pub values: ::protobuf::RepeatedField<::protobuf::well_known_types::Value>,
pub chunked_value: bool,
pub resume_token: ::std::vec::Vec<u8>,
pub stats: ::protobuf::SingularPtrField<ResultSetStats>,
unknown_fields: ::protobuf::UnknownFields,
cached_size: ::protobuf::CachedSize,
}
impl PartialResultSet {
pub fn new() -> PartialResultSet {
::std::default::Default::default()
}
pub fn clear_metadata(&mut self) {
self.metadata.clear();
}
pub fn has_metadata(&self) -> bool {
self.metadata.is_some()
}
pub fn set_metadata(&mut self, v: ResultSetMetadata) {
self.metadata = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_metadata(&mut self) -> &mut ResultSetMetadata {
if self.metadata.is_none() {
self.metadata.set_default();
}
self.metadata.as_mut().unwrap()
}
pub fn take_metadata(&mut self) -> ResultSetMetadata {
self.metadata.take().unwrap_or_else(|| ResultSetMetadata::new())
}
pub fn get_metadata(&self) -> &ResultSetMetadata {
self.metadata.as_ref().unwrap_or_else(|| ResultSetMetadata::default_instance())
}
pub fn clear_values(&mut self) {
self.values.clear();
}
pub fn set_values(&mut self, v: ::protobuf::RepeatedField<::protobuf::well_known_types::Value>) {
self.values = v;
}
pub fn mut_values(&mut self) -> &mut ::protobuf::RepeatedField<::protobuf::well_known_types::Value> {
&mut self.values
}
pub fn take_values(&mut self) -> ::protobuf::RepeatedField<::protobuf::well_known_types::Value> {
::std::mem::replace(&mut self.values, ::protobuf::RepeatedField::new())
}
pub fn get_values(&self) -> &[::protobuf::well_known_types::Value] {
&self.values
}
pub fn clear_chunked_value(&mut self) {
self.chunked_value = false;
}
pub fn set_chunked_value(&mut self, v: bool) {
self.chunked_value = v;
}
pub fn get_chunked_value(&self) -> bool {
self.chunked_value
}
pub fn clear_resume_token(&mut self) {
self.resume_token.clear();
}
pub fn set_resume_token(&mut self, v: ::std::vec::Vec<u8>) {
self.resume_token = v;
}
pub fn mut_resume_token(&mut self) -> &mut ::std::vec::Vec<u8> {
&mut self.resume_token
}
pub fn take_resume_token(&mut self) -> ::std::vec::Vec<u8> {
::std::mem::replace(&mut self.resume_token, ::std::vec::Vec::new())
}
pub fn get_resume_token(&self) -> &[u8] {
&self.resume_token
}
pub fn clear_stats(&mut self) {
self.stats.clear();
}
pub fn has_stats(&self) -> bool {
self.stats.is_some()
}
pub fn set_stats(&mut self, v: ResultSetStats) {
self.stats = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_stats(&mut self) -> &mut ResultSetStats {
if self.stats.is_none() {
self.stats.set_default();
}
self.stats.as_mut().unwrap()
}
pub fn take_stats(&mut self) -> ResultSetStats {
self.stats.take().unwrap_or_else(|| ResultSetStats::new())
}
pub fn get_stats(&self) -> &ResultSetStats {
self.stats.as_ref().unwrap_or_else(|| ResultSetStats::default_instance())
}
}
impl ::protobuf::Message for PartialResultSet {
fn is_initialized(&self) -> bool {
for v in &self.metadata {
if !v.is_initialized() {
return false;
}
};
for v in &self.values {
if !v.is_initialized() {
return false;
}
};
for v in &self.stats {
if !v.is_initialized() {
return false;
}
};
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
while !is.eof()? {
let (field_number, wire_type) = is.read_tag_unpack()?;
match field_number {
1 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.metadata)?;
},
2 => {
::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.values)?;
},
3 => {
if wire_type != ::protobuf::wire_format::WireTypeVarint {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_bool()?;
self.chunked_value = tmp;
},
4 => {
::protobuf::rt::read_singular_proto3_bytes_into(wire_type, is, &mut self.resume_token)?;
},
5 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.stats)?;
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if let Some(ref v) = self.metadata.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
for value in &self.values {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
};
if self.chunked_value != false {
my_size += 2;
}
if !self.resume_token.is_empty() {
my_size += ::protobuf::rt::bytes_size(4, &self.resume_token);
}
if let Some(ref v) = self.stats.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
self.cached_size.set(my_size);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
if let Some(ref v) = self.metadata.as_ref() {
os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
}
for v in &self.values {
os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
};
if self.chunked_value != false {
os.write_bool(3, self.chunked_value)?;
}
if !self.resume_token.is_empty() {
os.write_bytes(4, &self.resume_token)?;
}
if let Some(ref v) = self.stats.as_ref() {
os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
}
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &::std::any::Any {
self as &::std::any::Any
}
fn as_any_mut(&mut self) -> &mut ::std::any::Any {
self as &mut ::std::any::Any
}
fn into_any(self: Box<Self>) -> ::std::boxed::Box<::std::any::Any> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> PartialResultSet {
PartialResultSet::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
lock: ::protobuf::lazy::ONCE_INIT,
ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
};
unsafe {
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ResultSetMetadata>>(
"metadata",
|m: &PartialResultSet| { &m.metadata },
|m: &mut PartialResultSet| { &mut m.metadata },
));
fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Value>>(
"values",
|m: &PartialResultSet| { &m.values },
|m: &mut PartialResultSet| { &mut m.values },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
"chunked_value",
|m: &PartialResultSet| { &m.chunked_value },
|m: &mut PartialResultSet| { &mut m.chunked_value },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
"resume_token",
|m: &PartialResultSet| { &m.resume_token },
|m: &mut PartialResultSet| { &mut m.resume_token },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ResultSetStats>>(
"stats",
|m: &PartialResultSet| { &m.stats },
|m: &mut PartialResultSet| { &mut m.stats },
));
::protobuf::reflect::MessageDescriptor::new::<PartialResultSet>(
"PartialResultSet",
fields,
file_descriptor_proto()
)
})
}
}
fn default_instance() -> &'static PartialResultSet {
static mut instance: ::protobuf::lazy::Lazy<PartialResultSet> = ::protobuf::lazy::Lazy {
lock: ::protobuf::lazy::ONCE_INIT,
ptr: 0 as *const PartialResultSet,
};
unsafe {
instance.get(PartialResultSet::new)
}
}
}
impl ::protobuf::Clear for PartialResultSet {
fn clear(&mut self) {
self.clear_metadata();
self.clear_values();
self.clear_chunked_value();
self.clear_resume_token();
self.clear_stats();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for PartialResultSet {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for PartialResultSet {
fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
::protobuf::reflect::ProtobufValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct ResultSetMetadata {
pub row_type: ::protobuf::SingularPtrField<super::type_pb::StructType>,
pub transaction: ::protobuf::SingularPtrField<super::transaction::Transaction>,
unknown_fields: ::protobuf::UnknownFields,
cached_size: ::protobuf::CachedSize,
}
impl ResultSetMetadata {
pub fn new() -> ResultSetMetadata {
::std::default::Default::default()
}
pub fn clear_row_type(&mut self) {
self.row_type.clear();
}
pub fn has_row_type(&self) -> bool {
self.row_type.is_some()
}
pub fn set_row_type(&mut self, v: super::type_pb::StructType) {
self.row_type = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_row_type(&mut self) -> &mut super::type_pb::StructType {
if self.row_type.is_none() {
self.row_type.set_default();
}
self.row_type.as_mut().unwrap()
}
pub fn take_row_type(&mut self) -> super::type_pb::StructType {
self.row_type.take().unwrap_or_else(|| super::type_pb::StructType::new())
}
pub fn get_row_type(&self) -> &super::type_pb::StructType {
self.row_type.as_ref().unwrap_or_else(|| super::type_pb::StructType::default_instance())
}
pub fn clear_transaction(&mut self) {
self.transaction.clear();
}
pub fn has_transaction(&self) -> bool {
self.transaction.is_some()
}
pub fn set_transaction(&mut self, v: super::transaction::Transaction) {
self.transaction = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_transaction(&mut self) -> &mut super::transaction::Transaction {
if self.transaction.is_none() {
self.transaction.set_default();
}
self.transaction.as_mut().unwrap()
}
pub fn take_transaction(&mut self) -> super::transaction::Transaction {
self.transaction.take().unwrap_or_else(|| super::transaction::Transaction::new())
}
pub fn get_transaction(&self) -> &super::transaction::Transaction {
self.transaction.as_ref().unwrap_or_else(|| super::transaction::Transaction::default_instance())
}
}
impl ::protobuf::Message for ResultSetMetadata {
fn is_initialized(&self) -> bool {
for v in &self.row_type {
if !v.is_initialized() {
return false;
}
};
for v in &self.transaction {
if !v.is_initialized() {
return false;
}
};
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
while !is.eof()? {
let (field_number, wire_type) = is.read_tag_unpack()?;
match field_number {
1 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.row_type)?;
},
2 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.transaction)?;
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if let Some(ref v) = self.row_type.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
if let Some(ref v) = self.transaction.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
self.cached_size.set(my_size);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
if let Some(ref v) = self.row_type.as_ref() {
os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
}
if let Some(ref v) = self.transaction.as_ref() {
os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
}
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &::std::any::Any {
self as &::std::any::Any
}
fn as_any_mut(&mut self) -> &mut ::std::any::Any {
self as &mut ::std::any::Any
}
fn into_any(self: Box<Self>) -> ::std::boxed::Box<::std::any::Any> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> ResultSetMetadata {
ResultSetMetadata::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
lock: ::protobuf::lazy::ONCE_INIT,
ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
};
unsafe {
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::type_pb::StructType>>(
"row_type",
|m: &ResultSetMetadata| { &m.row_type },
|m: &mut ResultSetMetadata| { &mut m.row_type },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::transaction::Transaction>>(
"transaction",
|m: &ResultSetMetadata| { &m.transaction },
|m: &mut ResultSetMetadata| { &mut m.transaction },
));
::protobuf::reflect::MessageDescriptor::new::<ResultSetMetadata>(
"ResultSetMetadata",
fields,
file_descriptor_proto()
)
})
}
}
fn default_instance() -> &'static ResultSetMetadata {
static mut instance: ::protobuf::lazy::Lazy<ResultSetMetadata> = ::protobuf::lazy::Lazy {
lock: ::protobuf::lazy::ONCE_INIT,
ptr: 0 as *const ResultSetMetadata,
};
unsafe {
instance.get(ResultSetMetadata::new)
}
}
}
impl ::protobuf::Clear for ResultSetMetadata {
fn clear(&mut self) {
self.clear_row_type();
self.clear_transaction();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for ResultSetMetadata {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for ResultSetMetadata {
fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
::protobuf::reflect::ProtobufValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct ResultSetStats {
pub query_plan: ::protobuf::SingularPtrField<super::query_plan::QueryPlan>,
pub query_stats: ::protobuf::SingularPtrField<::protobuf::well_known_types::Struct>,
unknown_fields: ::protobuf::UnknownFields,
cached_size: ::protobuf::CachedSize,
}
impl ResultSetStats {
pub fn new() -> ResultSetStats {
::std::default::Default::default()
}
pub fn clear_query_plan(&mut self) {
self.query_plan.clear();
}
pub fn has_query_plan(&self) -> bool {
self.query_plan.is_some()
}
pub fn set_query_plan(&mut self, v: super::query_plan::QueryPlan) {
self.query_plan = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_query_plan(&mut self) -> &mut super::query_plan::QueryPlan {
if self.query_plan.is_none() {
self.query_plan.set_default();
}
self.query_plan.as_mut().unwrap()
}
pub fn take_query_plan(&mut self) -> super::query_plan::QueryPlan {
self.query_plan.take().unwrap_or_else(|| super::query_plan::QueryPlan::new())
}
pub fn get_query_plan(&self) -> &super::query_plan::QueryPlan {
self.query_plan.as_ref().unwrap_or_else(|| super::query_plan::QueryPlan::default_instance())
}
pub fn clear_query_stats(&mut self) {
self.query_stats.clear();
}
pub fn has_query_stats(&self) -> bool {
self.query_stats.is_some()
}
pub fn set_query_stats(&mut self, v: ::protobuf::well_known_types::Struct) {
self.query_stats = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_query_stats(&mut self) -> &mut ::protobuf::well_known_types::Struct {
if self.query_stats.is_none() {
self.query_stats.set_default();
}
self.query_stats.as_mut().unwrap()
}
pub fn take_query_stats(&mut self) -> ::protobuf::well_known_types::Struct {
self.query_stats.take().unwrap_or_else(|| ::protobuf::well_known_types::Struct::new())
}
pub fn get_query_stats(&self) -> &::protobuf::well_known_types::Struct {
self.query_stats.as_ref().unwrap_or_else(|| ::protobuf::well_known_types::Struct::default_instance())
}
}
impl ::protobuf::Message for ResultSetStats {
fn is_initialized(&self) -> bool {
for v in &self.query_plan {
if !v.is_initialized() {
return false;
}
};
for v in &self.query_stats {
if !v.is_initialized() {
return false;
}
};
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
while !is.eof()? {
let (field_number, wire_type) = is.read_tag_unpack()?;
match field_number {
1 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.query_plan)?;
},
2 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.query_stats)?;
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if let Some(ref v) = self.query_plan.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
if let Some(ref v) = self.query_stats.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
self.cached_size.set(my_size);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
if let Some(ref v) = self.query_plan.as_ref() {
os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
}
if let Some(ref v) = self.query_stats.as_ref() {
os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
}
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &::std::any::Any {
self as &::std::any::Any
}
fn as_any_mut(&mut self) -> &mut ::std::any::Any {
self as &mut ::std::any::Any
}
fn into_any(self: Box<Self>) -> ::std::boxed::Box<::std::any::Any> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> ResultSetStats {
ResultSetStats::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
lock: ::protobuf::lazy::ONCE_INIT,
ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
};
unsafe {
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::query_plan::QueryPlan>>(
"query_plan",
|m: &ResultSetStats| { &m.query_plan },
|m: &mut ResultSetStats| { &mut m.query_plan },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Struct>>(
"query_stats",
|m: &ResultSetStats| { &m.query_stats },
|m: &mut ResultSetStats| { &mut m.query_stats },
));
::protobuf::reflect::MessageDescriptor::new::<ResultSetStats>(
"ResultSetStats",
fields,
file_descriptor_proto()
)
})
}
}
fn default_instance() -> &'static ResultSetStats {
static mut instance: ::protobuf::lazy::Lazy<ResultSetStats> = ::protobuf::lazy::Lazy {
lock: ::protobuf::lazy::ONCE_INIT,
ptr: 0 as *const ResultSetStats,
};
unsafe {
instance.get(ResultSetStats::new)
}
}
}
impl ::protobuf::Clear for ResultSetStats {
fn clear(&mut self) {
self.clear_query_plan();
self.clear_query_stats();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for ResultSetStats {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for ResultSetStats {
fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
::protobuf::reflect::ProtobufValueRef::Message(self)
}
}
static file_descriptor_proto_data: &'static [u8] = b"\
\n\"google/spanner/v1/result_set.proto\x12\x11google.spanner.v1\x1a\x1cg\
oogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\"goo\
gle/spanner/v1/query_plan.proto\x1a#google/spanner/v1/transaction.proto\
\x1a\x1cgoogle/spanner/v1/type.proto\"\xb6\x01\n\tResultSet\x12@\n\x08me\
tadata\x18\x01\x20\x01(\x0b2$.google.spanner.v1.ResultSetMetadataR\x08me\
tadata\x12.\n\x04rows\x18\x02\x20\x03(\x0b2\x1a.google.protobuf.ListValu\
eR\x04rows\x127\n\x05stats\x18\x03\x20\x01(\x0b2!.google.spanner.v1.Resu\
ltSetStatsR\x05stats\"\x85\x02\n\x10PartialResultSet\x12@\n\x08metadata\
\x18\x01\x20\x01(\x0b2$.google.spanner.v1.ResultSetMetadataR\x08metadata\
\x12.\n\x06values\x18\x02\x20\x03(\x0b2\x16.google.protobuf.ValueR\x06va\
lues\x12#\n\rchunked_value\x18\x03\x20\x01(\x08R\x0cchunkedValue\x12!\n\
\x0cresume_token\x18\x04\x20\x01(\x0cR\x0bresumeToken\x127\n\x05stats\
\x18\x05\x20\x01(\x0b2!.google.spanner.v1.ResultSetStatsR\x05stats\"\x8f\
\x01\n\x11ResultSetMetadata\x128\n\x08row_type\x18\x01\x20\x01(\x0b2\x1d\
.google.spanner.v1.StructTypeR\x07rowType\x12@\n\x0btransaction\x18\x02\
\x20\x01(\x0b2\x1e.google.spanner.v1.TransactionR\x0btransaction\"\x87\
\x01\n\x0eResultSetStats\x12;\n\nquery_plan\x18\x01\x20\x01(\x0b2\x1c.go\
ogle.spanner.v1.QueryPlanR\tqueryPlan\x128\n\x0bquery_stats\x18\x02\x20\
\x01(\x0b2\x17.google.protobuf.StructR\nqueryStatsB\x9a\x01\n\x15com.goo\
gle.spanner.v1B\x0eResultSetProtoP\x01Z8google.golang.org/genproto/googl\
eapis/spanner/v1;spanner\xf8\x01\x01\xaa\x02\x17Google.Cloud.Spanner.V1\
\xca\x02\x17Google\\Cloud\\Spanner\\V1J\x92=\n\x07\x12\x05\x0e\0\xbb\x01\
\x01\n\xbd\x04\n\x01\x0c\x12\x03\x0e\0\x122\xb2\x04\x20Copyright\x202018\
\x20Google\x20Inc.\n\n\x20Licensed\x20under\x20the\x20Apache\x20License,\
\x20Version\x202.0\x20(the\x20\"License\");\n\x20you\x20may\x20not\x20us\
e\x20this\x20file\x20except\x20in\x20compliance\x20with\x20the\x20Licens\
e.\n\x20You\x20may\x20obtain\x20a\x20copy\x20of\x20the\x20License\x20at\
\n\n\x20\x20\x20\x20\x20http://www.apache.org/licenses/LICENSE-2.0\n\n\
\x20Unless\x20required\x20by\x20applicable\x20law\x20or\x20agreed\x20to\
\x20in\x20writing,\x20software\n\x20distributed\x20under\x20the\x20Licen\
se\x20is\x20distributed\x20on\x20an\x20\"AS\x20IS\"\x20BASIS,\n\x20WITHO\
UT\x20WARRANTIES\x20OR\x20CONDITIONS\x20OF\x20ANY\x20KIND,\x20either\x20\
express\x20or\x20implied.\n\x20See\x20the\x20License\x20for\x20the\x20sp\
ecific\x20language\x20governing\x20permissions\x20and\n\x20limitations\
\x20under\x20the\x20License.\n\n\x08\n\x01\x02\x12\x03\x10\x08\x19\n\t\n\
\x02\x03\0\x12\x03\x12\x07%\n\t\n\x02\x03\x01\x12\x03\x13\x07%\n\t\n\x02\
\x03\x02\x12\x03\x14\x07+\n\t\n\x02\x03\x03\x12\x03\x15\x07,\n\t\n\x02\
\x03\x04\x12\x03\x16\x07%\n\x08\n\x01\x08\x12\x03\x18\0\x1f\n\x0b\n\x04\
\x08\xe7\x07\0\x12\x03\x18\0\x1f\n\x0c\n\x05\x08\xe7\x07\0\x02\x12\x03\
\x18\x07\x17\n\r\n\x06\x08\xe7\x07\0\x02\0\x12\x03\x18\x07\x17\n\x0e\n\
\x07\x08\xe7\x07\0\x02\0\x01\x12\x03\x18\x07\x17\n\x0c\n\x05\x08\xe7\x07\
\0\x03\x12\x03\x18\x1a\x1e\n\x08\n\x01\x08\x12\x03\x19\04\n\x0b\n\x04\
\x08\xe7\x07\x01\x12\x03\x19\04\n\x0c\n\x05\x08\xe7\x07\x01\x02\x12\x03\
\x19\x07\x17\n\r\n\x06\x08\xe7\x07\x01\x02\0\x12\x03\x19\x07\x17\n\x0e\n\
\x07\x08\xe7\x07\x01\x02\0\x01\x12\x03\x19\x07\x17\n\x0c\n\x05\x08\xe7\
\x07\x01\x07\x12\x03\x19\x1a3\n\x08\n\x01\x08\x12\x03\x1a\0O\n\x0b\n\x04\
\x08\xe7\x07\x02\x12\x03\x1a\0O\n\x0c\n\x05\x08\xe7\x07\x02\x02\x12\x03\
\x1a\x07\x11\n\r\n\x06\x08\xe7\x07\x02\x02\0\x12\x03\x1a\x07\x11\n\x0e\n\
\x07\x08\xe7\x07\x02\x02\0\x01\x12\x03\x1a\x07\x11\n\x0c\n\x05\x08\xe7\
\x07\x02\x07\x12\x03\x1a\x14N\n\x08\n\x01\x08\x12\x03\x1b\0\"\n\x0b\n\
\x04\x08\xe7\x07\x03\x12\x03\x1b\0\"\n\x0c\n\x05\x08\xe7\x07\x03\x02\x12\
\x03\x1b\x07\x1a\n\r\n\x06\x08\xe7\x07\x03\x02\0\x12\x03\x1b\x07\x1a\n\
\x0e\n\x07\x08\xe7\x07\x03\x02\0\x01\x12\x03\x1b\x07\x1a\n\x0c\n\x05\x08\
\xe7\x07\x03\x03\x12\x03\x1b\x1d!\n\x08\n\x01\x08\x12\x03\x1c\0/\n\x0b\n\
\x04\x08\xe7\x07\x04\x12\x03\x1c\0/\n\x0c\n\x05\x08\xe7\x07\x04\x02\x12\
\x03\x1c\x07\x1b\n\r\n\x06\x08\xe7\x07\x04\x02\0\x12\x03\x1c\x07\x1b\n\
\x0e\n\x07\x08\xe7\x07\x04\x02\0\x01\x12\x03\x1c\x07\x1b\n\x0c\n\x05\x08\
\xe7\x07\x04\x07\x12\x03\x1c\x1e.\n\x08\n\x01\x08\x12\x03\x1d\0.\n\x0b\n\
\x04\x08\xe7\x07\x05\x12\x03\x1d\0.\n\x0c\n\x05\x08\xe7\x07\x05\x02\x12\
\x03\x1d\x07\x13\n\r\n\x06\x08\xe7\x07\x05\x02\0\x12\x03\x1d\x07\x13\n\
\x0e\n\x07\x08\xe7\x07\x05\x02\0\x01\x12\x03\x1d\x07\x13\n\x0c\n\x05\x08\
\xe7\x07\x05\x07\x12\x03\x1d\x16-\n\x08\n\x01\x08\x12\x03\x1e\04\n\x0b\n\
\x04\x08\xe7\x07\x06\x12\x03\x1e\04\n\x0c\n\x05\x08\xe7\x07\x06\x02\x12\
\x03\x1e\x07\x14\n\r\n\x06\x08\xe7\x07\x06\x02\0\x12\x03\x1e\x07\x14\n\
\x0e\n\x07\x08\xe7\x07\x06\x02\0\x01\x12\x03\x1e\x07\x14\n\x0c\n\x05\x08\
\xe7\x07\x06\x07\x12\x03\x1e\x173\ny\n\x02\x04\0\x12\x04#\03\x01\x1am\
\x20Results\x20from\x20[Read][google.spanner.v1.Spanner.Read]\x20or\n\
\x20[ExecuteSql][google.spanner.v1.Spanner.ExecuteSql].\n\n\n\n\x03\x04\
\0\x01\x12\x03#\x08\x11\nK\n\x04\x04\0\x02\0\x12\x03%\x02!\x1a>\x20Metad\
ata\x20about\x20the\x20result\x20set,\x20such\x20as\x20row\x20type\x20in\
formation.\n\n\r\n\x05\x04\0\x02\0\x04\x12\x04%\x02#\x13\n\x0c\n\x05\x04\
\0\x02\0\x06\x12\x03%\x02\x13\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03%\x14\
\x1c\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03%\x1f\x20\n\xde\x02\n\x04\x04\0\
\x02\x01\x12\x03-\x02.\x1a\xd0\x02\x20Each\x20element\x20in\x20`rows`\
\x20is\x20a\x20row\x20whose\x20format\x20is\x20defined\x20by\n\x20[metad\
ata.row_type][google.spanner.v1.ResultSetMetadata.row_type].\x20The\x20i\
th\x20element\n\x20in\x20each\x20row\x20matches\x20the\x20ith\x20field\
\x20in\n\x20[metadata.row_type][google.spanner.v1.ResultSetMetadata.row_\
type].\x20Elements\x20are\n\x20encoded\x20based\x20on\x20type\x20as\x20d\
escribed\n\x20[here][google.spanner.v1.TypeCode].\n\n\x0c\n\x05\x04\0\
\x02\x01\x04\x12\x03-\x02\n\n\x0c\n\x05\x04\0\x02\x01\x06\x12\x03-\x0b$\
\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03-%)\n\x0c\n\x05\x04\0\x02\x01\x03\
\x12\x03-,-\n\xd4\x01\n\x04\x04\0\x02\x02\x12\x032\x02\x1b\x1a\xc6\x01\
\x20Query\x20plan\x20and\x20execution\x20statistics\x20for\x20the\x20que\
ry\x20that\x20produced\x20this\n\x20result\x20set.\x20These\x20can\x20be\
\x20requested\x20by\x20setting\n\x20[ExecuteSqlRequest.query_mode][googl\
e.spanner.v1.ExecuteSqlRequest.query_mode].\n\n\r\n\x05\x04\0\x02\x02\
\x04\x12\x042\x02-.\n\x0c\n\x05\x04\0\x02\x02\x06\x12\x032\x02\x10\n\x0c\
\n\x05\x04\0\x02\x02\x01\x12\x032\x11\x16\n\x0c\n\x05\x04\0\x02\x02\x03\
\x12\x032\x19\x1a\n\xcc\x01\n\x02\x04\x01\x12\x058\0\x99\x01\x01\x1a\xbe\
\x01\x20Partial\x20results\x20from\x20a\x20streaming\x20read\x20or\x20SQ\
L\x20query.\x20Streaming\x20reads\x20and\n\x20SQL\x20queries\x20better\
\x20tolerate\x20large\x20result\x20sets,\x20large\x20rows,\x20and\x20lar\
ge\n\x20values,\x20but\x20are\x20a\x20little\x20trickier\x20to\x20consum\
e.\n\n\n\n\x03\x04\x01\x01\x12\x038\x08\x18\np\n\x04\x04\x01\x02\0\x12\
\x03;\x02!\x1ac\x20Metadata\x20about\x20the\x20result\x20set,\x20such\
\x20as\x20row\x20type\x20information.\n\x20Only\x20present\x20in\x20the\
\x20first\x20response.\n\n\r\n\x05\x04\x01\x02\0\x04\x12\x04;\x028\x1a\n\
\x0c\n\x05\x04\x01\x02\0\x06\x12\x03;\x02\x13\n\x0c\n\x05\x04\x01\x02\0\
\x01\x12\x03;\x14\x1c\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03;\x1f\x20\n\
\xc0\x15\n\x04\x04\x01\x02\x01\x12\x04\x86\x01\x02,\x1a\xb1\x15\x20A\x20\
streamed\x20result\x20set\x20consists\x20of\x20a\x20stream\x20of\x20valu\
es,\x20which\x20might\n\x20be\x20split\x20into\x20many\x20`PartialResult\
Set`\x20messages\x20to\x20accommodate\n\x20large\x20rows\x20and/or\x20la\
rge\x20values.\x20Every\x20N\x20complete\x20values\x20defines\x20a\n\x20\
row,\x20where\x20N\x20is\x20equal\x20to\x20the\x20number\x20of\x20entrie\
s\x20in\n\x20[metadata.row_type.fields][google.spanner.v1.StructType.fie\
lds].\n\n\x20Most\x20values\x20are\x20encoded\x20based\x20on\x20type\x20\
as\x20described\n\x20[here][google.spanner.v1.TypeCode].\n\n\x20It\x20is\
\x20possible\x20that\x20the\x20last\x20value\x20in\x20values\x20is\x20\"\
chunked\",\n\x20meaning\x20that\x20the\x20rest\x20of\x20the\x20value\x20\
is\x20sent\x20in\x20subsequent\n\x20`PartialResultSet`(s).\x20This\x20is\
\x20denoted\x20by\x20the\x20[chunked_value][google.spanner.v1.PartialRes\
ultSet.chunked_value]\n\x20field.\x20Two\x20or\x20more\x20chunked\x20val\
ues\x20can\x20be\x20merged\x20to\x20form\x20a\n\x20complete\x20value\x20\
as\x20follows:\n\n\x20\x20\x20*\x20`bool/number/null`:\x20cannot\x20be\
\x20chunked\n\x20\x20\x20*\x20`string`:\x20concatenate\x20the\x20strings\
\n\x20\x20\x20*\x20`list`:\x20concatenate\x20the\x20lists.\x20If\x20the\
\x20last\x20element\x20in\x20a\x20list\x20is\x20a\n\x20\x20\x20\x20\x20`\
string`,\x20`list`,\x20or\x20`object`,\x20merge\x20it\x20with\x20the\x20\
first\x20element\x20in\n\x20\x20\x20\x20\x20the\x20next\x20list\x20by\
\x20applying\x20these\x20rules\x20recursively.\n\x20\x20\x20*\x20`object\
`:\x20concatenate\x20the\x20(field\x20name,\x20field\x20value)\x20pairs.\
\x20If\x20a\n\x20\x20\x20\x20\x20field\x20name\x20is\x20duplicated,\x20t\
hen\x20apply\x20these\x20rules\x20recursively\n\x20\x20\x20\x20\x20to\
\x20merge\x20the\x20field\x20values.\n\n\x20Some\x20examples\x20of\x20me\
rging:\n\n\x20\x20\x20\x20\x20#\x20Strings\x20are\x20concatenated.\n\x20\
\x20\x20\x20\x20\"foo\",\x20\"bar\"\x20=>\x20\"foobar\"\n\n\x20\x20\x20\
\x20\x20#\x20Lists\x20of\x20non-strings\x20are\x20concatenated.\n\x20\
\x20\x20\x20\x20[2,\x203],\x20[4]\x20=>\x20[2,\x203,\x204]\n\n\x20\x20\
\x20\x20\x20#\x20Lists\x20are\x20concatenated,\x20but\x20the\x20last\x20\
and\x20first\x20elements\x20are\x20merged\n\x20\x20\x20\x20\x20#\x20beca\
use\x20they\x20are\x20strings.\n\x20\x20\x20\x20\x20[\"a\",\x20\"b\"],\
\x20[\"c\",\x20\"d\"]\x20=>\x20[\"a\",\x20\"bc\",\x20\"d\"]\n\n\x20\x20\
\x20\x20\x20#\x20Lists\x20are\x20concatenated,\x20but\x20the\x20last\x20\
and\x20first\x20elements\x20are\x20merged\n\x20\x20\x20\x20\x20#\x20beca\
use\x20they\x20are\x20lists.\x20Recursively,\x20the\x20last\x20and\x20fi\
rst\x20elements\n\x20\x20\x20\x20\x20#\x20of\x20the\x20inner\x20lists\
\x20are\x20merged\x20because\x20they\x20are\x20strings.\n\x20\x20\x20\
\x20\x20[\"a\",\x20[\"b\",\x20\"c\"]],\x20[[\"d\"],\x20\"e\"]\x20=>\x20[\
\"a\",\x20[\"b\",\x20\"cd\"],\x20\"e\"]\n\n\x20\x20\x20\x20\x20#\x20Non-\
overlapping\x20object\x20fields\x20are\x20combined.\n\x20\x20\x20\x20\
\x20{\"a\":\x20\"1\"},\x20{\"b\":\x20\"2\"}\x20=>\x20{\"a\":\x20\"1\",\
\x20\"b\":\x202\"}\n\n\x20\x20\x20\x20\x20#\x20Overlapping\x20object\x20\
fields\x20are\x20merged.\n\x20\x20\x20\x20\x20{\"a\":\x20\"1\"},\x20{\"a\
\":\x20\"2\"}\x20=>\x20{\"a\":\x20\"12\"}\n\n\x20\x20\x20\x20\x20#\x20Ex\
amples\x20of\x20merging\x20objects\x20containing\x20lists\x20of\x20strin\
gs.\n\x20\x20\x20\x20\x20{\"a\":\x20[\"1\"]},\x20{\"a\":\x20[\"2\"]}\x20\
=>\x20{\"a\":\x20[\"12\"]}\n\n\x20For\x20a\x20more\x20complete\x20exampl\
e,\x20suppose\x20a\x20streaming\x20SQL\x20query\x20is\n\x20yielding\x20a\
\x20result\x20set\x20whose\x20rows\x20contain\x20a\x20single\x20string\n\
\x20field.\x20The\x20following\x20`PartialResultSet`s\x20might\x20be\x20\
yielded:\n\n\x20\x20\x20\x20\x20{\n\x20\x20\x20\x20\x20\x20\x20\"metadat\
a\":\x20{\x20...\x20}\n\x20\x20\x20\x20\x20\x20\x20\"values\":\x20[\"Hel\
lo\",\x20\"W\"]\n\x20\x20\x20\x20\x20\x20\x20\"chunked_value\":\x20true\
\n\x20\x20\x20\x20\x20\x20\x20\"resume_token\":\x20\"Af65...\"\n\x20\x20\
\x20\x20\x20}\n\x20\x20\x20\x20\x20{\n\x20\x20\x20\x20\x20\x20\x20\"valu\
es\":\x20[\"orl\"]\n\x20\x20\x20\x20\x20\x20\x20\"chunked_value\":\x20tr\
ue\n\x20\x20\x20\x20\x20\x20\x20\"resume_token\":\x20\"Bqp2...\"\n\x20\
\x20\x20\x20\x20}\n\x20\x20\x20\x20\x20{\n\x20\x20\x20\x20\x20\x20\x20\"\
values\":\x20[\"d\"]\n\x20\x20\x20\x20\x20\x20\x20\"resume_token\":\x20\
\"Zx1B...\"\n\x20\x20\x20\x20\x20}\n\n\x20This\x20sequence\x20of\x20`Par\
tialResultSet`s\x20encodes\x20two\x20rows,\x20one\n\x20containing\x20the\
\x20field\x20value\x20`\"Hello\"`,\x20and\x20a\x20second\x20containing\
\x20the\n\x20field\x20value\x20`\"World\"\x20=\x20\"W\"\x20+\x20\"orl\"\
\x20+\x20\"d\"`.\n\n\r\n\x05\x04\x01\x02\x01\x04\x12\x04\x86\x01\x02\n\n\
\r\n\x05\x04\x01\x02\x01\x06\x12\x04\x86\x01\x0b\x20\n\r\n\x05\x04\x01\
\x02\x01\x01\x12\x04\x86\x01!'\n\r\n\x05\x04\x01\x02\x01\x03\x12\x04\x86\
\x01*+\n\xdf\x01\n\x04\x04\x01\x02\x02\x12\x04\x8b\x01\x02\x19\x1a\xd0\
\x01\x20If\x20true,\x20then\x20the\x20final\x20value\x20in\x20[values][g\
oogle.spanner.v1.PartialResultSet.values]\x20is\x20chunked,\x20and\x20mu\
st\n\x20be\x20combined\x20with\x20more\x20values\x20from\x20subsequent\
\x20`PartialResultSet`s\n\x20to\x20obtain\x20a\x20complete\x20field\x20v\
alue.\n\n\x0f\n\x05\x04\x01\x02\x02\x04\x12\x06\x8b\x01\x02\x86\x01,\n\r\
\n\x05\x04\x01\x02\x02\x05\x12\x04\x8b\x01\x02\x06\n\r\n\x05\x04\x01\x02\
\x02\x01\x12\x04\x8b\x01\x07\x14\n\r\n\x05\x04\x01\x02\x02\x03\x12\x04\
\x8b\x01\x17\x18\n\xbb\x02\n\x04\x04\x01\x02\x03\x12\x04\x92\x01\x02\x19\
\x1a\xac\x02\x20Streaming\x20calls\x20might\x20be\x20interrupted\x20for\
\x20a\x20variety\x20of\x20reasons,\x20such\n\x20as\x20TCP\x20connection\
\x20loss.\x20If\x20this\x20occurs,\x20the\x20stream\x20of\x20results\x20\
can\n\x20be\x20resumed\x20by\x20re-sending\x20the\x20original\x20request\
\x20and\x20including\n\x20`resume_token`.\x20Note\x20that\x20executing\
\x20any\x20other\x20transaction\x20in\x20the\n\x20same\x20session\x20inv\
alidates\x20the\x20token.\n\n\x0f\n\x05\x04\x01\x02\x03\x04\x12\x06\x92\
\x01\x02\x8b\x01\x19\n\r\n\x05\x04\x01\x02\x03\x05\x12\x04\x92\x01\x02\
\x07\n\r\n\x05\x04\x01\x02\x03\x01\x12\x04\x92\x01\x08\x14\n\r\n\x05\x04\
\x01\x02\x03\x03\x12\x04\x92\x01\x17\x18\n\x9c\x02\n\x04\x04\x01\x02\x04\
\x12\x04\x98\x01\x02\x1b\x1a\x8d\x02\x20Query\x20plan\x20and\x20executio\
n\x20statistics\x20for\x20the\x20query\x20that\x20produced\x20this\n\x20\
streaming\x20result\x20set.\x20These\x20can\x20be\x20requested\x20by\x20\
setting\n\x20[ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSql\
Request.query_mode]\x20and\x20are\x20sent\n\x20only\x20once\x20with\x20t\
he\x20last\x20response\x20in\x20the\x20stream.\n\n\x0f\n\x05\x04\x01\x02\
\x04\x04\x12\x06\x98\x01\x02\x92\x01\x19\n\r\n\x05\x04\x01\x02\x04\x06\
\x12\x04\x98\x01\x02\x10\n\r\n\x05\x04\x01\x02\x04\x01\x12\x04\x98\x01\
\x11\x16\n\r\n\x05\x04\x01\x02\x04\x03\x12\x04\x98\x01\x19\x1a\n\x84\x01\
\n\x02\x04\x02\x12\x06\x9c\x01\0\xaa\x01\x01\x1av\x20Metadata\x20about\
\x20a\x20[ResultSet][google.spanner.v1.ResultSet]\x20or\x20[PartialResul\
tSet][google.spanner.v1.PartialResultSet].\n\n\x0b\n\x03\x04\x02\x01\x12\
\x04\x9c\x01\x08\x19\n\xd2\x02\n\x04\x04\x02\x02\0\x12\x04\xa5\x01\x02\
\x1a\x1a\xc3\x02\x20Indicates\x20the\x20field\x20names\x20and\x20types\
\x20for\x20the\x20rows\x20in\x20the\x20result\n\x20set.\x20\x20For\x20ex\
ample,\x20a\x20SQL\x20query\x20like\x20`\"SELECT\x20UserId,\x20UserName\
\x20FROM\n\x20Users\"`\x20could\x20return\x20a\x20`row_type`\x20value\
\x20like:\n\n\x20\x20\x20\x20\x20\"fields\":\x20[\n\x20\x20\x20\x20\x20\
\x20\x20{\x20\"name\":\x20\"UserId\",\x20\"type\":\x20{\x20\"code\":\x20\
\"INT64\"\x20}\x20},\n\x20\x20\x20\x20\x20\x20\x20{\x20\"name\":\x20\"Us\
erName\",\x20\"type\":\x20{\x20\"code\":\x20\"STRING\"\x20}\x20},\n\x20\
\x20\x20\x20\x20]\n\n\x0f\n\x05\x04\x02\x02\0\x04\x12\x06\xa5\x01\x02\
\x9c\x01\x1b\n\r\n\x05\x04\x02\x02\0\x06\x12\x04\xa5\x01\x02\x0c\n\r\n\
\x05\x04\x02\x02\0\x01\x12\x04\xa5\x01\r\x15\n\r\n\x05\x04\x02\x02\0\x03\
\x12\x04\xa5\x01\x18\x19\n\x8a\x01\n\x04\x04\x02\x02\x01\x12\x04\xa9\x01\
\x02\x1e\x1a|\x20If\x20the\x20read\x20or\x20SQL\x20query\x20began\x20a\
\x20transaction\x20as\x20a\x20side-effect,\x20the\n\x20information\x20ab\
out\x20the\x20new\x20transaction\x20is\x20yielded\x20here.\n\n\x0f\n\x05\
\x04\x02\x02\x01\x04\x12\x06\xa9\x01\x02\xa5\x01\x1a\n\r\n\x05\x04\x02\
\x02\x01\x06\x12\x04\xa9\x01\x02\r\n\r\n\x05\x04\x02\x02\x01\x01\x12\x04\
\xa9\x01\x0e\x19\n\r\n\x05\x04\x02\x02\x01\x03\x12\x04\xa9\x01\x1c\x1d\n\
\x92\x01\n\x02\x04\x03\x12\x06\xad\x01\0\xbb\x01\x01\x1a\x83\x01\x20Addi\
tional\x20statistics\x20about\x20a\x20[ResultSet][google.spanner.v1.Resu\
ltSet]\x20or\x20[PartialResultSet][google.spanner.v1.PartialResultSet].\
\n\n\x0b\n\x03\x04\x03\x01\x12\x04\xad\x01\x08\x16\nc\n\x04\x04\x03\x02\
\0\x12\x04\xaf\x01\x02\x1b\x1aU\x20[QueryPlan][google.spanner.v1.QueryPl\
an]\x20for\x20the\x20query\x20associated\x20with\x20this\x20result.\n\n\
\x0f\n\x05\x04\x03\x02\0\x04\x12\x06\xaf\x01\x02\xad\x01\x18\n\r\n\x05\
\x04\x03\x02\0\x06\x12\x04\xaf\x01\x02\x0b\n\r\n\x05\x04\x03\x02\0\x01\
\x12\x04\xaf\x01\x0c\x16\n\r\n\x05\x04\x03\x02\0\x03\x12\x04\xaf\x01\x19\
\x1a\n\x9e\x02\n\x04\x04\x03\x02\x01\x12\x04\xba\x01\x02)\x1a\x8f\x02\
\x20Aggregated\x20statistics\x20from\x20the\x20execution\x20of\x20the\
\x20query.\x20Only\x20present\x20when\n\x20the\x20query\x20is\x20profile\
d.\x20For\x20example,\x20a\x20query\x20could\x20return\x20the\x20statist\
ics\x20as\n\x20follows:\n\n\x20\x20\x20\x20\x20{\n\x20\x20\x20\x20\x20\
\x20\x20\"rows_returned\":\x20\"3\",\n\x20\x20\x20\x20\x20\x20\x20\"elap\
sed_time\":\x20\"1.22\x20secs\",\n\x20\x20\x20\x20\x20\x20\x20\"cpu_time\
\":\x20\"1.19\x20secs\"\n\x20\x20\x20\x20\x20}\n\n\x0f\n\x05\x04\x03\x02\
\x01\x04\x12\x06\xba\x01\x02\xaf\x01\x1b\n\r\n\x05\x04\x03\x02\x01\x06\
\x12\x04\xba\x01\x02\x18\n\r\n\x05\x04\x03\x02\x01\x01\x12\x04\xba\x01\
\x19$\n\r\n\x05\x04\x03\x02\x01\x03\x12\x04\xba\x01'(b\x06proto3\
";
static mut file_descriptor_proto_lazy: ::protobuf::lazy::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::lazy::Lazy {
lock: ::protobuf::lazy::ONCE_INIT,
ptr: 0 as *const ::protobuf::descriptor::FileDescriptorProto,
};
fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
::protobuf::parse_from_bytes(file_descriptor_proto_data).unwrap()
}
pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
unsafe {
file_descriptor_proto_lazy.get(|| {
parse_descriptor_proto()
})
}
}