#![allow(unknown_lints)]
#![allow(clippy::all)]
#![allow(unused_attributes)]
#![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(unused_imports)]
#![allow(unused_results)]
#[derive(PartialEq,Clone,Default)]
pub struct CreateSessionRequest {
pub database: ::std::string::String,
pub session: ::protobuf::SingularPtrField<Session>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a CreateSessionRequest {
fn default() -> &'a CreateSessionRequest {
<CreateSessionRequest as ::protobuf::Message>::default_instance()
}
}
impl CreateSessionRequest {
pub fn new() -> CreateSessionRequest {
::std::default::Default::default()
}
pub fn get_database(&self) -> &str {
&self.database
}
pub fn clear_database(&mut self) {
self.database.clear();
}
pub fn set_database(&mut self, v: ::std::string::String) {
self.database = v;
}
pub fn mut_database(&mut self) -> &mut ::std::string::String {
&mut self.database
}
pub fn take_database(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.database, ::std::string::String::new())
}
pub fn get_session(&self) -> &Session {
self.session.as_ref().unwrap_or_else(|| <Session as ::protobuf::Message>::default_instance())
}
pub fn clear_session(&mut self) {
self.session.clear();
}
pub fn has_session(&self) -> bool {
self.session.is_some()
}
pub fn set_session(&mut self, v: Session) {
self.session = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_session(&mut self) -> &mut Session {
if self.session.is_none() {
self.session.set_default();
}
self.session.as_mut().unwrap()
}
pub fn take_session(&mut self) -> Session {
self.session.take().unwrap_or_else(|| Session::new())
}
}
impl ::protobuf::Message for CreateSessionRequest {
fn is_initialized(&self) -> bool {
for v in &self.session {
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_proto3_string_into(wire_type, is, &mut self.database)?;
},
2 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.session)?;
},
_ => {
::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 !self.database.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.database);
}
if let Some(ref v) = self.session.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 !self.database.is_empty() {
os.write_string(1, &self.database)?;
}
if let Some(ref v) = self.session.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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> CreateSessionRequest {
CreateSessionRequest::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"database",
|m: &CreateSessionRequest| { &m.database },
|m: &mut CreateSessionRequest| { &mut m.database },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Session>>(
"session",
|m: &CreateSessionRequest| { &m.session },
|m: &mut CreateSessionRequest| { &mut m.session },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<CreateSessionRequest>(
"CreateSessionRequest",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static CreateSessionRequest {
static instance: ::protobuf::rt::LazyV2<CreateSessionRequest> = ::protobuf::rt::LazyV2::INIT;
instance.get(CreateSessionRequest::new)
}
}
impl ::protobuf::Clear for CreateSessionRequest {
fn clear(&mut self) {
self.database.clear();
self.session.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for CreateSessionRequest {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for CreateSessionRequest {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct BatchCreateSessionsRequest {
pub database: ::std::string::String,
pub session_template: ::protobuf::SingularPtrField<Session>,
pub session_count: i32,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a BatchCreateSessionsRequest {
fn default() -> &'a BatchCreateSessionsRequest {
<BatchCreateSessionsRequest as ::protobuf::Message>::default_instance()
}
}
impl BatchCreateSessionsRequest {
pub fn new() -> BatchCreateSessionsRequest {
::std::default::Default::default()
}
pub fn get_database(&self) -> &str {
&self.database
}
pub fn clear_database(&mut self) {
self.database.clear();
}
pub fn set_database(&mut self, v: ::std::string::String) {
self.database = v;
}
pub fn mut_database(&mut self) -> &mut ::std::string::String {
&mut self.database
}
pub fn take_database(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.database, ::std::string::String::new())
}
pub fn get_session_template(&self) -> &Session {
self.session_template.as_ref().unwrap_or_else(|| <Session as ::protobuf::Message>::default_instance())
}
pub fn clear_session_template(&mut self) {
self.session_template.clear();
}
pub fn has_session_template(&self) -> bool {
self.session_template.is_some()
}
pub fn set_session_template(&mut self, v: Session) {
self.session_template = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_session_template(&mut self) -> &mut Session {
if self.session_template.is_none() {
self.session_template.set_default();
}
self.session_template.as_mut().unwrap()
}
pub fn take_session_template(&mut self) -> Session {
self.session_template.take().unwrap_or_else(|| Session::new())
}
pub fn get_session_count(&self) -> i32 {
self.session_count
}
pub fn clear_session_count(&mut self) {
self.session_count = 0;
}
pub fn set_session_count(&mut self, v: i32) {
self.session_count = v;
}
}
impl ::protobuf::Message for BatchCreateSessionsRequest {
fn is_initialized(&self) -> bool {
for v in &self.session_template {
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_proto3_string_into(wire_type, is, &mut self.database)?;
},
2 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.session_template)?;
},
3 => {
if wire_type != ::protobuf::wire_format::WireTypeVarint {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_int32()?;
self.session_count = tmp;
},
_ => {
::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 !self.database.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.database);
}
if let Some(ref v) = self.session_template.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
if self.session_count != 0 {
my_size += ::protobuf::rt::value_size(3, self.session_count, ::protobuf::wire_format::WireTypeVarint);
}
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 !self.database.is_empty() {
os.write_string(1, &self.database)?;
}
if let Some(ref v) = self.session_template.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)?;
}
if self.session_count != 0 {
os.write_int32(3, self.session_count)?;
}
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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> BatchCreateSessionsRequest {
BatchCreateSessionsRequest::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"database",
|m: &BatchCreateSessionsRequest| { &m.database },
|m: &mut BatchCreateSessionsRequest| { &mut m.database },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Session>>(
"session_template",
|m: &BatchCreateSessionsRequest| { &m.session_template },
|m: &mut BatchCreateSessionsRequest| { &mut m.session_template },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
"session_count",
|m: &BatchCreateSessionsRequest| { &m.session_count },
|m: &mut BatchCreateSessionsRequest| { &mut m.session_count },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<BatchCreateSessionsRequest>(
"BatchCreateSessionsRequest",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static BatchCreateSessionsRequest {
static instance: ::protobuf::rt::LazyV2<BatchCreateSessionsRequest> = ::protobuf::rt::LazyV2::INIT;
instance.get(BatchCreateSessionsRequest::new)
}
}
impl ::protobuf::Clear for BatchCreateSessionsRequest {
fn clear(&mut self) {
self.database.clear();
self.session_template.clear();
self.session_count = 0;
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for BatchCreateSessionsRequest {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for BatchCreateSessionsRequest {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct BatchCreateSessionsResponse {
pub session: ::protobuf::RepeatedField<Session>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a BatchCreateSessionsResponse {
fn default() -> &'a BatchCreateSessionsResponse {
<BatchCreateSessionsResponse as ::protobuf::Message>::default_instance()
}
}
impl BatchCreateSessionsResponse {
pub fn new() -> BatchCreateSessionsResponse {
::std::default::Default::default()
}
pub fn get_session(&self) -> &[Session] {
&self.session
}
pub fn clear_session(&mut self) {
self.session.clear();
}
pub fn set_session(&mut self, v: ::protobuf::RepeatedField<Session>) {
self.session = v;
}
pub fn mut_session(&mut self) -> &mut ::protobuf::RepeatedField<Session> {
&mut self.session
}
pub fn take_session(&mut self) -> ::protobuf::RepeatedField<Session> {
::std::mem::replace(&mut self.session, ::protobuf::RepeatedField::new())
}
}
impl ::protobuf::Message for BatchCreateSessionsResponse {
fn is_initialized(&self) -> bool {
for v in &self.session {
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_repeated_message_into(wire_type, is, &mut self.session)?;
},
_ => {
::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;
for value in &self.session {
let len = value.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<()> {
for v in &self.session {
os.write_tag(1, ::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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> BatchCreateSessionsResponse {
BatchCreateSessionsResponse::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Session>>(
"session",
|m: &BatchCreateSessionsResponse| { &m.session },
|m: &mut BatchCreateSessionsResponse| { &mut m.session },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<BatchCreateSessionsResponse>(
"BatchCreateSessionsResponse",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static BatchCreateSessionsResponse {
static instance: ::protobuf::rt::LazyV2<BatchCreateSessionsResponse> = ::protobuf::rt::LazyV2::INIT;
instance.get(BatchCreateSessionsResponse::new)
}
}
impl ::protobuf::Clear for BatchCreateSessionsResponse {
fn clear(&mut self) {
self.session.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for BatchCreateSessionsResponse {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for BatchCreateSessionsResponse {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct Session {
pub name: ::std::string::String,
pub labels: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
pub create_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
pub approximate_last_use_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
pub creator_role: ::std::string::String,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a Session {
fn default() -> &'a Session {
<Session as ::protobuf::Message>::default_instance()
}
}
impl Session {
pub fn new() -> Session {
::std::default::Default::default()
}
pub fn get_name(&self) -> &str {
&self.name
}
pub fn clear_name(&mut self) {
self.name.clear();
}
pub fn set_name(&mut self, v: ::std::string::String) {
self.name = v;
}
pub fn mut_name(&mut self) -> &mut ::std::string::String {
&mut self.name
}
pub fn take_name(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.name, ::std::string::String::new())
}
pub fn get_labels(&self) -> &::std::collections::HashMap<::std::string::String, ::std::string::String> {
&self.labels
}
pub fn clear_labels(&mut self) {
self.labels.clear();
}
pub fn set_labels(&mut self, v: ::std::collections::HashMap<::std::string::String, ::std::string::String>) {
self.labels = v;
}
pub fn mut_labels(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, ::std::string::String> {
&mut self.labels
}
pub fn take_labels(&mut self) -> ::std::collections::HashMap<::std::string::String, ::std::string::String> {
::std::mem::replace(&mut self.labels, ::std::collections::HashMap::new())
}
pub fn get_create_time(&self) -> &::protobuf::well_known_types::Timestamp {
self.create_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
}
pub fn clear_create_time(&mut self) {
self.create_time.clear();
}
pub fn has_create_time(&self) -> bool {
self.create_time.is_some()
}
pub fn set_create_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
self.create_time = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_create_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
if self.create_time.is_none() {
self.create_time.set_default();
}
self.create_time.as_mut().unwrap()
}
pub fn take_create_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
self.create_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
}
pub fn get_approximate_last_use_time(&self) -> &::protobuf::well_known_types::Timestamp {
self.approximate_last_use_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
}
pub fn clear_approximate_last_use_time(&mut self) {
self.approximate_last_use_time.clear();
}
pub fn has_approximate_last_use_time(&self) -> bool {
self.approximate_last_use_time.is_some()
}
pub fn set_approximate_last_use_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
self.approximate_last_use_time = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_approximate_last_use_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
if self.approximate_last_use_time.is_none() {
self.approximate_last_use_time.set_default();
}
self.approximate_last_use_time.as_mut().unwrap()
}
pub fn take_approximate_last_use_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
self.approximate_last_use_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
}
pub fn get_creator_role(&self) -> &str {
&self.creator_role
}
pub fn clear_creator_role(&mut self) {
self.creator_role.clear();
}
pub fn set_creator_role(&mut self, v: ::std::string::String) {
self.creator_role = v;
}
pub fn mut_creator_role(&mut self) -> &mut ::std::string::String {
&mut self.creator_role
}
pub fn take_creator_role(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.creator_role, ::std::string::String::new())
}
}
impl ::protobuf::Message for Session {
fn is_initialized(&self) -> bool {
for v in &self.create_time {
if !v.is_initialized() {
return false;
}
};
for v in &self.approximate_last_use_time {
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_proto3_string_into(wire_type, is, &mut self.name)?;
},
2 => {
::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(wire_type, is, &mut self.labels)?;
},
3 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.create_time)?;
},
4 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.approximate_last_use_time)?;
},
5 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.creator_role)?;
},
_ => {
::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 !self.name.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.name);
}
my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(2, &self.labels);
if let Some(ref v) = self.create_time.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
if let Some(ref v) = self.approximate_last_use_time.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
if !self.creator_role.is_empty() {
my_size += ::protobuf::rt::string_size(5, &self.creator_role);
}
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 !self.name.is_empty() {
os.write_string(1, &self.name)?;
}
::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(2, &self.labels, os)?;
if let Some(ref v) = self.create_time.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)?;
}
if let Some(ref v) = self.approximate_last_use_time.as_ref() {
os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
}
if !self.creator_role.is_empty() {
os.write_string(5, &self.creator_role)?;
}
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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> Session {
Session::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"name",
|m: &Session| { &m.name },
|m: &mut Session| { &mut m.name },
));
fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(
"labels",
|m: &Session| { &m.labels },
|m: &mut Session| { &mut m.labels },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
"create_time",
|m: &Session| { &m.create_time },
|m: &mut Session| { &mut m.create_time },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
"approximate_last_use_time",
|m: &Session| { &m.approximate_last_use_time },
|m: &mut Session| { &mut m.approximate_last_use_time },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"creator_role",
|m: &Session| { &m.creator_role },
|m: &mut Session| { &mut m.creator_role },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<Session>(
"Session",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static Session {
static instance: ::protobuf::rt::LazyV2<Session> = ::protobuf::rt::LazyV2::INIT;
instance.get(Session::new)
}
}
impl ::protobuf::Clear for Session {
fn clear(&mut self) {
self.name.clear();
self.labels.clear();
self.create_time.clear();
self.approximate_last_use_time.clear();
self.creator_role.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for Session {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Session {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct GetSessionRequest {
pub name: ::std::string::String,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a GetSessionRequest {
fn default() -> &'a GetSessionRequest {
<GetSessionRequest as ::protobuf::Message>::default_instance()
}
}
impl GetSessionRequest {
pub fn new() -> GetSessionRequest {
::std::default::Default::default()
}
pub fn get_name(&self) -> &str {
&self.name
}
pub fn clear_name(&mut self) {
self.name.clear();
}
pub fn set_name(&mut self, v: ::std::string::String) {
self.name = v;
}
pub fn mut_name(&mut self) -> &mut ::std::string::String {
&mut self.name
}
pub fn take_name(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.name, ::std::string::String::new())
}
}
impl ::protobuf::Message for GetSessionRequest {
fn is_initialized(&self) -> bool {
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_proto3_string_into(wire_type, is, &mut self.name)?;
},
_ => {
::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 !self.name.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.name);
}
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 !self.name.is_empty() {
os.write_string(1, &self.name)?;
}
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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> GetSessionRequest {
GetSessionRequest::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"name",
|m: &GetSessionRequest| { &m.name },
|m: &mut GetSessionRequest| { &mut m.name },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<GetSessionRequest>(
"GetSessionRequest",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static GetSessionRequest {
static instance: ::protobuf::rt::LazyV2<GetSessionRequest> = ::protobuf::rt::LazyV2::INIT;
instance.get(GetSessionRequest::new)
}
}
impl ::protobuf::Clear for GetSessionRequest {
fn clear(&mut self) {
self.name.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for GetSessionRequest {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for GetSessionRequest {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct ListSessionsRequest {
pub database: ::std::string::String,
pub page_size: i32,
pub page_token: ::std::string::String,
pub filter: ::std::string::String,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a ListSessionsRequest {
fn default() -> &'a ListSessionsRequest {
<ListSessionsRequest as ::protobuf::Message>::default_instance()
}
}
impl ListSessionsRequest {
pub fn new() -> ListSessionsRequest {
::std::default::Default::default()
}
pub fn get_database(&self) -> &str {
&self.database
}
pub fn clear_database(&mut self) {
self.database.clear();
}
pub fn set_database(&mut self, v: ::std::string::String) {
self.database = v;
}
pub fn mut_database(&mut self) -> &mut ::std::string::String {
&mut self.database
}
pub fn take_database(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.database, ::std::string::String::new())
}
pub fn get_page_size(&self) -> i32 {
self.page_size
}
pub fn clear_page_size(&mut self) {
self.page_size = 0;
}
pub fn set_page_size(&mut self, v: i32) {
self.page_size = v;
}
pub fn get_page_token(&self) -> &str {
&self.page_token
}
pub fn clear_page_token(&mut self) {
self.page_token.clear();
}
pub fn set_page_token(&mut self, v: ::std::string::String) {
self.page_token = v;
}
pub fn mut_page_token(&mut self) -> &mut ::std::string::String {
&mut self.page_token
}
pub fn take_page_token(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.page_token, ::std::string::String::new())
}
pub fn get_filter(&self) -> &str {
&self.filter
}
pub fn clear_filter(&mut self) {
self.filter.clear();
}
pub fn set_filter(&mut self, v: ::std::string::String) {
self.filter = v;
}
pub fn mut_filter(&mut self) -> &mut ::std::string::String {
&mut self.filter
}
pub fn take_filter(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.filter, ::std::string::String::new())
}
}
impl ::protobuf::Message for ListSessionsRequest {
fn is_initialized(&self) -> bool {
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_proto3_string_into(wire_type, is, &mut self.database)?;
},
2 => {
if wire_type != ::protobuf::wire_format::WireTypeVarint {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_int32()?;
self.page_size = tmp;
},
3 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.page_token)?;
},
4 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.filter)?;
},
_ => {
::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 !self.database.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.database);
}
if self.page_size != 0 {
my_size += ::protobuf::rt::value_size(2, self.page_size, ::protobuf::wire_format::WireTypeVarint);
}
if !self.page_token.is_empty() {
my_size += ::protobuf::rt::string_size(3, &self.page_token);
}
if !self.filter.is_empty() {
my_size += ::protobuf::rt::string_size(4, &self.filter);
}
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 !self.database.is_empty() {
os.write_string(1, &self.database)?;
}
if self.page_size != 0 {
os.write_int32(2, self.page_size)?;
}
if !self.page_token.is_empty() {
os.write_string(3, &self.page_token)?;
}
if !self.filter.is_empty() {
os.write_string(4, &self.filter)?;
}
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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> ListSessionsRequest {
ListSessionsRequest::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"database",
|m: &ListSessionsRequest| { &m.database },
|m: &mut ListSessionsRequest| { &mut m.database },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
"page_size",
|m: &ListSessionsRequest| { &m.page_size },
|m: &mut ListSessionsRequest| { &mut m.page_size },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"page_token",
|m: &ListSessionsRequest| { &m.page_token },
|m: &mut ListSessionsRequest| { &mut m.page_token },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"filter",
|m: &ListSessionsRequest| { &m.filter },
|m: &mut ListSessionsRequest| { &mut m.filter },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<ListSessionsRequest>(
"ListSessionsRequest",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static ListSessionsRequest {
static instance: ::protobuf::rt::LazyV2<ListSessionsRequest> = ::protobuf::rt::LazyV2::INIT;
instance.get(ListSessionsRequest::new)
}
}
impl ::protobuf::Clear for ListSessionsRequest {
fn clear(&mut self) {
self.database.clear();
self.page_size = 0;
self.page_token.clear();
self.filter.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for ListSessionsRequest {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for ListSessionsRequest {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct ListSessionsResponse {
pub sessions: ::protobuf::RepeatedField<Session>,
pub next_page_token: ::std::string::String,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a ListSessionsResponse {
fn default() -> &'a ListSessionsResponse {
<ListSessionsResponse as ::protobuf::Message>::default_instance()
}
}
impl ListSessionsResponse {
pub fn new() -> ListSessionsResponse {
::std::default::Default::default()
}
pub fn get_sessions(&self) -> &[Session] {
&self.sessions
}
pub fn clear_sessions(&mut self) {
self.sessions.clear();
}
pub fn set_sessions(&mut self, v: ::protobuf::RepeatedField<Session>) {
self.sessions = v;
}
pub fn mut_sessions(&mut self) -> &mut ::protobuf::RepeatedField<Session> {
&mut self.sessions
}
pub fn take_sessions(&mut self) -> ::protobuf::RepeatedField<Session> {
::std::mem::replace(&mut self.sessions, ::protobuf::RepeatedField::new())
}
pub fn get_next_page_token(&self) -> &str {
&self.next_page_token
}
pub fn clear_next_page_token(&mut self) {
self.next_page_token.clear();
}
pub fn set_next_page_token(&mut self, v: ::std::string::String) {
self.next_page_token = v;
}
pub fn mut_next_page_token(&mut self) -> &mut ::std::string::String {
&mut self.next_page_token
}
pub fn take_next_page_token(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.next_page_token, ::std::string::String::new())
}
}
impl ::protobuf::Message for ListSessionsResponse {
fn is_initialized(&self) -> bool {
for v in &self.sessions {
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_repeated_message_into(wire_type, is, &mut self.sessions)?;
},
2 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.next_page_token)?;
},
_ => {
::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;
for value in &self.sessions {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
};
if !self.next_page_token.is_empty() {
my_size += ::protobuf::rt::string_size(2, &self.next_page_token);
}
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<()> {
for v in &self.sessions {
os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
};
if !self.next_page_token.is_empty() {
os.write_string(2, &self.next_page_token)?;
}
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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> ListSessionsResponse {
ListSessionsResponse::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Session>>(
"sessions",
|m: &ListSessionsResponse| { &m.sessions },
|m: &mut ListSessionsResponse| { &mut m.sessions },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"next_page_token",
|m: &ListSessionsResponse| { &m.next_page_token },
|m: &mut ListSessionsResponse| { &mut m.next_page_token },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<ListSessionsResponse>(
"ListSessionsResponse",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static ListSessionsResponse {
static instance: ::protobuf::rt::LazyV2<ListSessionsResponse> = ::protobuf::rt::LazyV2::INIT;
instance.get(ListSessionsResponse::new)
}
}
impl ::protobuf::Clear for ListSessionsResponse {
fn clear(&mut self) {
self.sessions.clear();
self.next_page_token.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for ListSessionsResponse {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for ListSessionsResponse {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct DeleteSessionRequest {
pub name: ::std::string::String,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a DeleteSessionRequest {
fn default() -> &'a DeleteSessionRequest {
<DeleteSessionRequest as ::protobuf::Message>::default_instance()
}
}
impl DeleteSessionRequest {
pub fn new() -> DeleteSessionRequest {
::std::default::Default::default()
}
pub fn get_name(&self) -> &str {
&self.name
}
pub fn clear_name(&mut self) {
self.name.clear();
}
pub fn set_name(&mut self, v: ::std::string::String) {
self.name = v;
}
pub fn mut_name(&mut self) -> &mut ::std::string::String {
&mut self.name
}
pub fn take_name(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.name, ::std::string::String::new())
}
}
impl ::protobuf::Message for DeleteSessionRequest {
fn is_initialized(&self) -> bool {
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_proto3_string_into(wire_type, is, &mut self.name)?;
},
_ => {
::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 !self.name.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.name);
}
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 !self.name.is_empty() {
os.write_string(1, &self.name)?;
}
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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> DeleteSessionRequest {
DeleteSessionRequest::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"name",
|m: &DeleteSessionRequest| { &m.name },
|m: &mut DeleteSessionRequest| { &mut m.name },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<DeleteSessionRequest>(
"DeleteSessionRequest",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static DeleteSessionRequest {
static instance: ::protobuf::rt::LazyV2<DeleteSessionRequest> = ::protobuf::rt::LazyV2::INIT;
instance.get(DeleteSessionRequest::new)
}
}
impl ::protobuf::Clear for DeleteSessionRequest {
fn clear(&mut self) {
self.name.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for DeleteSessionRequest {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for DeleteSessionRequest {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct RequestOptions {
pub priority: RequestOptions_Priority,
pub request_tag: ::std::string::String,
pub transaction_tag: ::std::string::String,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a RequestOptions {
fn default() -> &'a RequestOptions {
<RequestOptions as ::protobuf::Message>::default_instance()
}
}
impl RequestOptions {
pub fn new() -> RequestOptions {
::std::default::Default::default()
}
pub fn get_priority(&self) -> RequestOptions_Priority {
self.priority
}
pub fn clear_priority(&mut self) {
self.priority = RequestOptions_Priority::PRIORITY_UNSPECIFIED;
}
pub fn set_priority(&mut self, v: RequestOptions_Priority) {
self.priority = v;
}
pub fn get_request_tag(&self) -> &str {
&self.request_tag
}
pub fn clear_request_tag(&mut self) {
self.request_tag.clear();
}
pub fn set_request_tag(&mut self, v: ::std::string::String) {
self.request_tag = v;
}
pub fn mut_request_tag(&mut self) -> &mut ::std::string::String {
&mut self.request_tag
}
pub fn take_request_tag(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.request_tag, ::std::string::String::new())
}
pub fn get_transaction_tag(&self) -> &str {
&self.transaction_tag
}
pub fn clear_transaction_tag(&mut self) {
self.transaction_tag.clear();
}
pub fn set_transaction_tag(&mut self, v: ::std::string::String) {
self.transaction_tag = v;
}
pub fn mut_transaction_tag(&mut self) -> &mut ::std::string::String {
&mut self.transaction_tag
}
pub fn take_transaction_tag(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.transaction_tag, ::std::string::String::new())
}
}
impl ::protobuf::Message for RequestOptions {
fn is_initialized(&self) -> bool {
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_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.priority, 1, &mut self.unknown_fields)?
},
2 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.request_tag)?;
},
3 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.transaction_tag)?;
},
_ => {
::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 self.priority != RequestOptions_Priority::PRIORITY_UNSPECIFIED {
my_size += ::protobuf::rt::enum_size(1, self.priority);
}
if !self.request_tag.is_empty() {
my_size += ::protobuf::rt::string_size(2, &self.request_tag);
}
if !self.transaction_tag.is_empty() {
my_size += ::protobuf::rt::string_size(3, &self.transaction_tag);
}
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 self.priority != RequestOptions_Priority::PRIORITY_UNSPECIFIED {
os.write_enum(1, ::protobuf::ProtobufEnum::value(&self.priority))?;
}
if !self.request_tag.is_empty() {
os.write_string(2, &self.request_tag)?;
}
if !self.transaction_tag.is_empty() {
os.write_string(3, &self.transaction_tag)?;
}
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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> RequestOptions {
RequestOptions::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<RequestOptions_Priority>>(
"priority",
|m: &RequestOptions| { &m.priority },
|m: &mut RequestOptions| { &mut m.priority },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"request_tag",
|m: &RequestOptions| { &m.request_tag },
|m: &mut RequestOptions| { &mut m.request_tag },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"transaction_tag",
|m: &RequestOptions| { &m.transaction_tag },
|m: &mut RequestOptions| { &mut m.transaction_tag },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<RequestOptions>(
"RequestOptions",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static RequestOptions {
static instance: ::protobuf::rt::LazyV2<RequestOptions> = ::protobuf::rt::LazyV2::INIT;
instance.get(RequestOptions::new)
}
}
impl ::protobuf::Clear for RequestOptions {
fn clear(&mut self) {
self.priority = RequestOptions_Priority::PRIORITY_UNSPECIFIED;
self.request_tag.clear();
self.transaction_tag.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for RequestOptions {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for RequestOptions {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(Clone,PartialEq,Eq,Debug,Hash)]
pub enum RequestOptions_Priority {
PRIORITY_UNSPECIFIED = 0,
PRIORITY_LOW = 1,
PRIORITY_MEDIUM = 2,
PRIORITY_HIGH = 3,
}
impl ::protobuf::ProtobufEnum for RequestOptions_Priority {
fn value(&self) -> i32 {
*self as i32
}
fn from_i32(value: i32) -> ::std::option::Option<RequestOptions_Priority> {
match value {
0 => ::std::option::Option::Some(RequestOptions_Priority::PRIORITY_UNSPECIFIED),
1 => ::std::option::Option::Some(RequestOptions_Priority::PRIORITY_LOW),
2 => ::std::option::Option::Some(RequestOptions_Priority::PRIORITY_MEDIUM),
3 => ::std::option::Option::Some(RequestOptions_Priority::PRIORITY_HIGH),
_ => ::std::option::Option::None
}
}
fn values() -> &'static [Self] {
static values: &'static [RequestOptions_Priority] = &[
RequestOptions_Priority::PRIORITY_UNSPECIFIED,
RequestOptions_Priority::PRIORITY_LOW,
RequestOptions_Priority::PRIORITY_MEDIUM,
RequestOptions_Priority::PRIORITY_HIGH,
];
values
}
fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
::protobuf::reflect::EnumDescriptor::new_pb_name::<RequestOptions_Priority>("RequestOptions.Priority", file_descriptor_proto())
})
}
}
impl ::std::marker::Copy for RequestOptions_Priority {
}
impl ::std::default::Default for RequestOptions_Priority {
fn default() -> Self {
RequestOptions_Priority::PRIORITY_UNSPECIFIED
}
}
impl ::protobuf::reflect::ProtobufValue for RequestOptions_Priority {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
}
}
#[derive(PartialEq,Clone,Default)]
pub struct ExecuteSqlRequest {
pub session: ::std::string::String,
pub transaction: ::protobuf::SingularPtrField<super::transaction::TransactionSelector>,
pub sql: ::std::string::String,
pub params: ::protobuf::SingularPtrField<::protobuf::well_known_types::Struct>,
pub param_types: ::std::collections::HashMap<::std::string::String, super::type_pb::Type>,
pub resume_token: ::std::vec::Vec<u8>,
pub query_mode: ExecuteSqlRequest_QueryMode,
pub partition_token: ::std::vec::Vec<u8>,
pub seqno: i64,
pub query_options: ::protobuf::SingularPtrField<ExecuteSqlRequest_QueryOptions>,
pub request_options: ::protobuf::SingularPtrField<RequestOptions>,
pub data_boost_enabled: bool,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a ExecuteSqlRequest {
fn default() -> &'a ExecuteSqlRequest {
<ExecuteSqlRequest as ::protobuf::Message>::default_instance()
}
}
impl ExecuteSqlRequest {
pub fn new() -> ExecuteSqlRequest {
::std::default::Default::default()
}
pub fn get_session(&self) -> &str {
&self.session
}
pub fn clear_session(&mut self) {
self.session.clear();
}
pub fn set_session(&mut self, v: ::std::string::String) {
self.session = v;
}
pub fn mut_session(&mut self) -> &mut ::std::string::String {
&mut self.session
}
pub fn take_session(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.session, ::std::string::String::new())
}
pub fn get_transaction(&self) -> &super::transaction::TransactionSelector {
self.transaction.as_ref().unwrap_or_else(|| <super::transaction::TransactionSelector as ::protobuf::Message>::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::TransactionSelector) {
self.transaction = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_transaction(&mut self) -> &mut super::transaction::TransactionSelector {
if self.transaction.is_none() {
self.transaction.set_default();
}
self.transaction.as_mut().unwrap()
}
pub fn take_transaction(&mut self) -> super::transaction::TransactionSelector {
self.transaction.take().unwrap_or_else(|| super::transaction::TransactionSelector::new())
}
pub fn get_sql(&self) -> &str {
&self.sql
}
pub fn clear_sql(&mut self) {
self.sql.clear();
}
pub fn set_sql(&mut self, v: ::std::string::String) {
self.sql = v;
}
pub fn mut_sql(&mut self) -> &mut ::std::string::String {
&mut self.sql
}
pub fn take_sql(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.sql, ::std::string::String::new())
}
pub fn get_params(&self) -> &::protobuf::well_known_types::Struct {
self.params.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Struct as ::protobuf::Message>::default_instance())
}
pub fn clear_params(&mut self) {
self.params.clear();
}
pub fn has_params(&self) -> bool {
self.params.is_some()
}
pub fn set_params(&mut self, v: ::protobuf::well_known_types::Struct) {
self.params = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_params(&mut self) -> &mut ::protobuf::well_known_types::Struct {
if self.params.is_none() {
self.params.set_default();
}
self.params.as_mut().unwrap()
}
pub fn take_params(&mut self) -> ::protobuf::well_known_types::Struct {
self.params.take().unwrap_or_else(|| ::protobuf::well_known_types::Struct::new())
}
pub fn get_param_types(&self) -> &::std::collections::HashMap<::std::string::String, super::type_pb::Type> {
&self.param_types
}
pub fn clear_param_types(&mut self) {
self.param_types.clear();
}
pub fn set_param_types(&mut self, v: ::std::collections::HashMap<::std::string::String, super::type_pb::Type>) {
self.param_types = v;
}
pub fn mut_param_types(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, super::type_pb::Type> {
&mut self.param_types
}
pub fn take_param_types(&mut self) -> ::std::collections::HashMap<::std::string::String, super::type_pb::Type> {
::std::mem::replace(&mut self.param_types, ::std::collections::HashMap::new())
}
pub fn get_resume_token(&self) -> &[u8] {
&self.resume_token
}
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_query_mode(&self) -> ExecuteSqlRequest_QueryMode {
self.query_mode
}
pub fn clear_query_mode(&mut self) {
self.query_mode = ExecuteSqlRequest_QueryMode::NORMAL;
}
pub fn set_query_mode(&mut self, v: ExecuteSqlRequest_QueryMode) {
self.query_mode = v;
}
pub fn get_partition_token(&self) -> &[u8] {
&self.partition_token
}
pub fn clear_partition_token(&mut self) {
self.partition_token.clear();
}
pub fn set_partition_token(&mut self, v: ::std::vec::Vec<u8>) {
self.partition_token = v;
}
pub fn mut_partition_token(&mut self) -> &mut ::std::vec::Vec<u8> {
&mut self.partition_token
}
pub fn take_partition_token(&mut self) -> ::std::vec::Vec<u8> {
::std::mem::replace(&mut self.partition_token, ::std::vec::Vec::new())
}
pub fn get_seqno(&self) -> i64 {
self.seqno
}
pub fn clear_seqno(&mut self) {
self.seqno = 0;
}
pub fn set_seqno(&mut self, v: i64) {
self.seqno = v;
}
pub fn get_query_options(&self) -> &ExecuteSqlRequest_QueryOptions {
self.query_options.as_ref().unwrap_or_else(|| <ExecuteSqlRequest_QueryOptions as ::protobuf::Message>::default_instance())
}
pub fn clear_query_options(&mut self) {
self.query_options.clear();
}
pub fn has_query_options(&self) -> bool {
self.query_options.is_some()
}
pub fn set_query_options(&mut self, v: ExecuteSqlRequest_QueryOptions) {
self.query_options = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_query_options(&mut self) -> &mut ExecuteSqlRequest_QueryOptions {
if self.query_options.is_none() {
self.query_options.set_default();
}
self.query_options.as_mut().unwrap()
}
pub fn take_query_options(&mut self) -> ExecuteSqlRequest_QueryOptions {
self.query_options.take().unwrap_or_else(|| ExecuteSqlRequest_QueryOptions::new())
}
pub fn get_request_options(&self) -> &RequestOptions {
self.request_options.as_ref().unwrap_or_else(|| <RequestOptions as ::protobuf::Message>::default_instance())
}
pub fn clear_request_options(&mut self) {
self.request_options.clear();
}
pub fn has_request_options(&self) -> bool {
self.request_options.is_some()
}
pub fn set_request_options(&mut self, v: RequestOptions) {
self.request_options = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_request_options(&mut self) -> &mut RequestOptions {
if self.request_options.is_none() {
self.request_options.set_default();
}
self.request_options.as_mut().unwrap()
}
pub fn take_request_options(&mut self) -> RequestOptions {
self.request_options.take().unwrap_or_else(|| RequestOptions::new())
}
pub fn get_data_boost_enabled(&self) -> bool {
self.data_boost_enabled
}
pub fn clear_data_boost_enabled(&mut self) {
self.data_boost_enabled = false;
}
pub fn set_data_boost_enabled(&mut self, v: bool) {
self.data_boost_enabled = v;
}
}
impl ::protobuf::Message for ExecuteSqlRequest {
fn is_initialized(&self) -> bool {
for v in &self.transaction {
if !v.is_initialized() {
return false;
}
};
for v in &self.params {
if !v.is_initialized() {
return false;
}
};
for v in &self.query_options {
if !v.is_initialized() {
return false;
}
};
for v in &self.request_options {
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_proto3_string_into(wire_type, is, &mut self.session)?;
},
2 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.transaction)?;
},
3 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.sql)?;
},
4 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.params)?;
},
5 => {
::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<super::type_pb::Type>>(wire_type, is, &mut self.param_types)?;
},
6 => {
::protobuf::rt::read_singular_proto3_bytes_into(wire_type, is, &mut self.resume_token)?;
},
7 => {
::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.query_mode, 7, &mut self.unknown_fields)?
},
8 => {
::protobuf::rt::read_singular_proto3_bytes_into(wire_type, is, &mut self.partition_token)?;
},
9 => {
if wire_type != ::protobuf::wire_format::WireTypeVarint {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_int64()?;
self.seqno = tmp;
},
10 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.query_options)?;
},
11 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.request_options)?;
},
16 => {
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.data_boost_enabled = tmp;
},
_ => {
::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 !self.session.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.session);
}
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;
}
if !self.sql.is_empty() {
my_size += ::protobuf::rt::string_size(3, &self.sql);
}
if let Some(ref v) = self.params.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<super::type_pb::Type>>(5, &self.param_types);
if !self.resume_token.is_empty() {
my_size += ::protobuf::rt::bytes_size(6, &self.resume_token);
}
if self.query_mode != ExecuteSqlRequest_QueryMode::NORMAL {
my_size += ::protobuf::rt::enum_size(7, self.query_mode);
}
if !self.partition_token.is_empty() {
my_size += ::protobuf::rt::bytes_size(8, &self.partition_token);
}
if self.seqno != 0 {
my_size += ::protobuf::rt::value_size(9, self.seqno, ::protobuf::wire_format::WireTypeVarint);
}
if let Some(ref v) = self.query_options.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
if let Some(ref v) = self.request_options.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
if self.data_boost_enabled != false {
my_size += 3;
}
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 !self.session.is_empty() {
os.write_string(1, &self.session)?;
}
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)?;
}
if !self.sql.is_empty() {
os.write_string(3, &self.sql)?;
}
if let Some(ref v) = self.params.as_ref() {
os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
}
::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<super::type_pb::Type>>(5, &self.param_types, os)?;
if !self.resume_token.is_empty() {
os.write_bytes(6, &self.resume_token)?;
}
if self.query_mode != ExecuteSqlRequest_QueryMode::NORMAL {
os.write_enum(7, ::protobuf::ProtobufEnum::value(&self.query_mode))?;
}
if !self.partition_token.is_empty() {
os.write_bytes(8, &self.partition_token)?;
}
if self.seqno != 0 {
os.write_int64(9, self.seqno)?;
}
if let Some(ref v) = self.query_options.as_ref() {
os.write_tag(10, ::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.request_options.as_ref() {
os.write_tag(11, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
}
if self.data_boost_enabled != false {
os.write_bool(16, self.data_boost_enabled)?;
}
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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> ExecuteSqlRequest {
ExecuteSqlRequest::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"session",
|m: &ExecuteSqlRequest| { &m.session },
|m: &mut ExecuteSqlRequest| { &mut m.session },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::transaction::TransactionSelector>>(
"transaction",
|m: &ExecuteSqlRequest| { &m.transaction },
|m: &mut ExecuteSqlRequest| { &mut m.transaction },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"sql",
|m: &ExecuteSqlRequest| { &m.sql },
|m: &mut ExecuteSqlRequest| { &mut m.sql },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Struct>>(
"params",
|m: &ExecuteSqlRequest| { &m.params },
|m: &mut ExecuteSqlRequest| { &mut m.params },
));
fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<super::type_pb::Type>>(
"param_types",
|m: &ExecuteSqlRequest| { &m.param_types },
|m: &mut ExecuteSqlRequest| { &mut m.param_types },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
"resume_token",
|m: &ExecuteSqlRequest| { &m.resume_token },
|m: &mut ExecuteSqlRequest| { &mut m.resume_token },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<ExecuteSqlRequest_QueryMode>>(
"query_mode",
|m: &ExecuteSqlRequest| { &m.query_mode },
|m: &mut ExecuteSqlRequest| { &mut m.query_mode },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
"partition_token",
|m: &ExecuteSqlRequest| { &m.partition_token },
|m: &mut ExecuteSqlRequest| { &mut m.partition_token },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
"seqno",
|m: &ExecuteSqlRequest| { &m.seqno },
|m: &mut ExecuteSqlRequest| { &mut m.seqno },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ExecuteSqlRequest_QueryOptions>>(
"query_options",
|m: &ExecuteSqlRequest| { &m.query_options },
|m: &mut ExecuteSqlRequest| { &mut m.query_options },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<RequestOptions>>(
"request_options",
|m: &ExecuteSqlRequest| { &m.request_options },
|m: &mut ExecuteSqlRequest| { &mut m.request_options },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
"data_boost_enabled",
|m: &ExecuteSqlRequest| { &m.data_boost_enabled },
|m: &mut ExecuteSqlRequest| { &mut m.data_boost_enabled },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<ExecuteSqlRequest>(
"ExecuteSqlRequest",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static ExecuteSqlRequest {
static instance: ::protobuf::rt::LazyV2<ExecuteSqlRequest> = ::protobuf::rt::LazyV2::INIT;
instance.get(ExecuteSqlRequest::new)
}
}
impl ::protobuf::Clear for ExecuteSqlRequest {
fn clear(&mut self) {
self.session.clear();
self.transaction.clear();
self.sql.clear();
self.params.clear();
self.param_types.clear();
self.resume_token.clear();
self.query_mode = ExecuteSqlRequest_QueryMode::NORMAL;
self.partition_token.clear();
self.seqno = 0;
self.query_options.clear();
self.request_options.clear();
self.data_boost_enabled = false;
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for ExecuteSqlRequest {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for ExecuteSqlRequest {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct ExecuteSqlRequest_QueryOptions {
pub optimizer_version: ::std::string::String,
pub optimizer_statistics_package: ::std::string::String,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a ExecuteSqlRequest_QueryOptions {
fn default() -> &'a ExecuteSqlRequest_QueryOptions {
<ExecuteSqlRequest_QueryOptions as ::protobuf::Message>::default_instance()
}
}
impl ExecuteSqlRequest_QueryOptions {
pub fn new() -> ExecuteSqlRequest_QueryOptions {
::std::default::Default::default()
}
pub fn get_optimizer_version(&self) -> &str {
&self.optimizer_version
}
pub fn clear_optimizer_version(&mut self) {
self.optimizer_version.clear();
}
pub fn set_optimizer_version(&mut self, v: ::std::string::String) {
self.optimizer_version = v;
}
pub fn mut_optimizer_version(&mut self) -> &mut ::std::string::String {
&mut self.optimizer_version
}
pub fn take_optimizer_version(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.optimizer_version, ::std::string::String::new())
}
pub fn get_optimizer_statistics_package(&self) -> &str {
&self.optimizer_statistics_package
}
pub fn clear_optimizer_statistics_package(&mut self) {
self.optimizer_statistics_package.clear();
}
pub fn set_optimizer_statistics_package(&mut self, v: ::std::string::String) {
self.optimizer_statistics_package = v;
}
pub fn mut_optimizer_statistics_package(&mut self) -> &mut ::std::string::String {
&mut self.optimizer_statistics_package
}
pub fn take_optimizer_statistics_package(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.optimizer_statistics_package, ::std::string::String::new())
}
}
impl ::protobuf::Message for ExecuteSqlRequest_QueryOptions {
fn is_initialized(&self) -> bool {
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_proto3_string_into(wire_type, is, &mut self.optimizer_version)?;
},
2 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.optimizer_statistics_package)?;
},
_ => {
::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 !self.optimizer_version.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.optimizer_version);
}
if !self.optimizer_statistics_package.is_empty() {
my_size += ::protobuf::rt::string_size(2, &self.optimizer_statistics_package);
}
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 !self.optimizer_version.is_empty() {
os.write_string(1, &self.optimizer_version)?;
}
if !self.optimizer_statistics_package.is_empty() {
os.write_string(2, &self.optimizer_statistics_package)?;
}
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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> ExecuteSqlRequest_QueryOptions {
ExecuteSqlRequest_QueryOptions::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"optimizer_version",
|m: &ExecuteSqlRequest_QueryOptions| { &m.optimizer_version },
|m: &mut ExecuteSqlRequest_QueryOptions| { &mut m.optimizer_version },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"optimizer_statistics_package",
|m: &ExecuteSqlRequest_QueryOptions| { &m.optimizer_statistics_package },
|m: &mut ExecuteSqlRequest_QueryOptions| { &mut m.optimizer_statistics_package },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<ExecuteSqlRequest_QueryOptions>(
"ExecuteSqlRequest.QueryOptions",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static ExecuteSqlRequest_QueryOptions {
static instance: ::protobuf::rt::LazyV2<ExecuteSqlRequest_QueryOptions> = ::protobuf::rt::LazyV2::INIT;
instance.get(ExecuteSqlRequest_QueryOptions::new)
}
}
impl ::protobuf::Clear for ExecuteSqlRequest_QueryOptions {
fn clear(&mut self) {
self.optimizer_version.clear();
self.optimizer_statistics_package.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for ExecuteSqlRequest_QueryOptions {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for ExecuteSqlRequest_QueryOptions {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(Clone,PartialEq,Eq,Debug,Hash)]
pub enum ExecuteSqlRequest_QueryMode {
NORMAL = 0,
PLAN = 1,
PROFILE = 2,
}
impl ::protobuf::ProtobufEnum for ExecuteSqlRequest_QueryMode {
fn value(&self) -> i32 {
*self as i32
}
fn from_i32(value: i32) -> ::std::option::Option<ExecuteSqlRequest_QueryMode> {
match value {
0 => ::std::option::Option::Some(ExecuteSqlRequest_QueryMode::NORMAL),
1 => ::std::option::Option::Some(ExecuteSqlRequest_QueryMode::PLAN),
2 => ::std::option::Option::Some(ExecuteSqlRequest_QueryMode::PROFILE),
_ => ::std::option::Option::None
}
}
fn values() -> &'static [Self] {
static values: &'static [ExecuteSqlRequest_QueryMode] = &[
ExecuteSqlRequest_QueryMode::NORMAL,
ExecuteSqlRequest_QueryMode::PLAN,
ExecuteSqlRequest_QueryMode::PROFILE,
];
values
}
fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
::protobuf::reflect::EnumDescriptor::new_pb_name::<ExecuteSqlRequest_QueryMode>("ExecuteSqlRequest.QueryMode", file_descriptor_proto())
})
}
}
impl ::std::marker::Copy for ExecuteSqlRequest_QueryMode {
}
impl ::std::default::Default for ExecuteSqlRequest_QueryMode {
fn default() -> Self {
ExecuteSqlRequest_QueryMode::NORMAL
}
}
impl ::protobuf::reflect::ProtobufValue for ExecuteSqlRequest_QueryMode {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
}
}
#[derive(PartialEq,Clone,Default)]
pub struct ExecuteBatchDmlRequest {
pub session: ::std::string::String,
pub transaction: ::protobuf::SingularPtrField<super::transaction::TransactionSelector>,
pub statements: ::protobuf::RepeatedField<ExecuteBatchDmlRequest_Statement>,
pub seqno: i64,
pub request_options: ::protobuf::SingularPtrField<RequestOptions>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a ExecuteBatchDmlRequest {
fn default() -> &'a ExecuteBatchDmlRequest {
<ExecuteBatchDmlRequest as ::protobuf::Message>::default_instance()
}
}
impl ExecuteBatchDmlRequest {
pub fn new() -> ExecuteBatchDmlRequest {
::std::default::Default::default()
}
pub fn get_session(&self) -> &str {
&self.session
}
pub fn clear_session(&mut self) {
self.session.clear();
}
pub fn set_session(&mut self, v: ::std::string::String) {
self.session = v;
}
pub fn mut_session(&mut self) -> &mut ::std::string::String {
&mut self.session
}
pub fn take_session(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.session, ::std::string::String::new())
}
pub fn get_transaction(&self) -> &super::transaction::TransactionSelector {
self.transaction.as_ref().unwrap_or_else(|| <super::transaction::TransactionSelector as ::protobuf::Message>::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::TransactionSelector) {
self.transaction = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_transaction(&mut self) -> &mut super::transaction::TransactionSelector {
if self.transaction.is_none() {
self.transaction.set_default();
}
self.transaction.as_mut().unwrap()
}
pub fn take_transaction(&mut self) -> super::transaction::TransactionSelector {
self.transaction.take().unwrap_or_else(|| super::transaction::TransactionSelector::new())
}
pub fn get_statements(&self) -> &[ExecuteBatchDmlRequest_Statement] {
&self.statements
}
pub fn clear_statements(&mut self) {
self.statements.clear();
}
pub fn set_statements(&mut self, v: ::protobuf::RepeatedField<ExecuteBatchDmlRequest_Statement>) {
self.statements = v;
}
pub fn mut_statements(&mut self) -> &mut ::protobuf::RepeatedField<ExecuteBatchDmlRequest_Statement> {
&mut self.statements
}
pub fn take_statements(&mut self) -> ::protobuf::RepeatedField<ExecuteBatchDmlRequest_Statement> {
::std::mem::replace(&mut self.statements, ::protobuf::RepeatedField::new())
}
pub fn get_seqno(&self) -> i64 {
self.seqno
}
pub fn clear_seqno(&mut self) {
self.seqno = 0;
}
pub fn set_seqno(&mut self, v: i64) {
self.seqno = v;
}
pub fn get_request_options(&self) -> &RequestOptions {
self.request_options.as_ref().unwrap_or_else(|| <RequestOptions as ::protobuf::Message>::default_instance())
}
pub fn clear_request_options(&mut self) {
self.request_options.clear();
}
pub fn has_request_options(&self) -> bool {
self.request_options.is_some()
}
pub fn set_request_options(&mut self, v: RequestOptions) {
self.request_options = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_request_options(&mut self) -> &mut RequestOptions {
if self.request_options.is_none() {
self.request_options.set_default();
}
self.request_options.as_mut().unwrap()
}
pub fn take_request_options(&mut self) -> RequestOptions {
self.request_options.take().unwrap_or_else(|| RequestOptions::new())
}
}
impl ::protobuf::Message for ExecuteBatchDmlRequest {
fn is_initialized(&self) -> bool {
for v in &self.transaction {
if !v.is_initialized() {
return false;
}
};
for v in &self.statements {
if !v.is_initialized() {
return false;
}
};
for v in &self.request_options {
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_proto3_string_into(wire_type, is, &mut self.session)?;
},
2 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.transaction)?;
},
3 => {
::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.statements)?;
},
4 => {
if wire_type != ::protobuf::wire_format::WireTypeVarint {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_int64()?;
self.seqno = tmp;
},
5 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.request_options)?;
},
_ => {
::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 !self.session.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.session);
}
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;
}
for value in &self.statements {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
};
if self.seqno != 0 {
my_size += ::protobuf::rt::value_size(4, self.seqno, ::protobuf::wire_format::WireTypeVarint);
}
if let Some(ref v) = self.request_options.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 !self.session.is_empty() {
os.write_string(1, &self.session)?;
}
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)?;
}
for v in &self.statements {
os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
};
if self.seqno != 0 {
os.write_int64(4, self.seqno)?;
}
if let Some(ref v) = self.request_options.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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> ExecuteBatchDmlRequest {
ExecuteBatchDmlRequest::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"session",
|m: &ExecuteBatchDmlRequest| { &m.session },
|m: &mut ExecuteBatchDmlRequest| { &mut m.session },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::transaction::TransactionSelector>>(
"transaction",
|m: &ExecuteBatchDmlRequest| { &m.transaction },
|m: &mut ExecuteBatchDmlRequest| { &mut m.transaction },
));
fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ExecuteBatchDmlRequest_Statement>>(
"statements",
|m: &ExecuteBatchDmlRequest| { &m.statements },
|m: &mut ExecuteBatchDmlRequest| { &mut m.statements },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
"seqno",
|m: &ExecuteBatchDmlRequest| { &m.seqno },
|m: &mut ExecuteBatchDmlRequest| { &mut m.seqno },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<RequestOptions>>(
"request_options",
|m: &ExecuteBatchDmlRequest| { &m.request_options },
|m: &mut ExecuteBatchDmlRequest| { &mut m.request_options },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<ExecuteBatchDmlRequest>(
"ExecuteBatchDmlRequest",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static ExecuteBatchDmlRequest {
static instance: ::protobuf::rt::LazyV2<ExecuteBatchDmlRequest> = ::protobuf::rt::LazyV2::INIT;
instance.get(ExecuteBatchDmlRequest::new)
}
}
impl ::protobuf::Clear for ExecuteBatchDmlRequest {
fn clear(&mut self) {
self.session.clear();
self.transaction.clear();
self.statements.clear();
self.seqno = 0;
self.request_options.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for ExecuteBatchDmlRequest {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for ExecuteBatchDmlRequest {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct ExecuteBatchDmlRequest_Statement {
pub sql: ::std::string::String,
pub params: ::protobuf::SingularPtrField<::protobuf::well_known_types::Struct>,
pub param_types: ::std::collections::HashMap<::std::string::String, super::type_pb::Type>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a ExecuteBatchDmlRequest_Statement {
fn default() -> &'a ExecuteBatchDmlRequest_Statement {
<ExecuteBatchDmlRequest_Statement as ::protobuf::Message>::default_instance()
}
}
impl ExecuteBatchDmlRequest_Statement {
pub fn new() -> ExecuteBatchDmlRequest_Statement {
::std::default::Default::default()
}
pub fn get_sql(&self) -> &str {
&self.sql
}
pub fn clear_sql(&mut self) {
self.sql.clear();
}
pub fn set_sql(&mut self, v: ::std::string::String) {
self.sql = v;
}
pub fn mut_sql(&mut self) -> &mut ::std::string::String {
&mut self.sql
}
pub fn take_sql(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.sql, ::std::string::String::new())
}
pub fn get_params(&self) -> &::protobuf::well_known_types::Struct {
self.params.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Struct as ::protobuf::Message>::default_instance())
}
pub fn clear_params(&mut self) {
self.params.clear();
}
pub fn has_params(&self) -> bool {
self.params.is_some()
}
pub fn set_params(&mut self, v: ::protobuf::well_known_types::Struct) {
self.params = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_params(&mut self) -> &mut ::protobuf::well_known_types::Struct {
if self.params.is_none() {
self.params.set_default();
}
self.params.as_mut().unwrap()
}
pub fn take_params(&mut self) -> ::protobuf::well_known_types::Struct {
self.params.take().unwrap_or_else(|| ::protobuf::well_known_types::Struct::new())
}
pub fn get_param_types(&self) -> &::std::collections::HashMap<::std::string::String, super::type_pb::Type> {
&self.param_types
}
pub fn clear_param_types(&mut self) {
self.param_types.clear();
}
pub fn set_param_types(&mut self, v: ::std::collections::HashMap<::std::string::String, super::type_pb::Type>) {
self.param_types = v;
}
pub fn mut_param_types(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, super::type_pb::Type> {
&mut self.param_types
}
pub fn take_param_types(&mut self) -> ::std::collections::HashMap<::std::string::String, super::type_pb::Type> {
::std::mem::replace(&mut self.param_types, ::std::collections::HashMap::new())
}
}
impl ::protobuf::Message for ExecuteBatchDmlRequest_Statement {
fn is_initialized(&self) -> bool {
for v in &self.params {
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_proto3_string_into(wire_type, is, &mut self.sql)?;
},
2 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.params)?;
},
3 => {
::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<super::type_pb::Type>>(wire_type, is, &mut self.param_types)?;
},
_ => {
::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 !self.sql.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.sql);
}
if let Some(ref v) = self.params.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<super::type_pb::Type>>(3, &self.param_types);
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 !self.sql.is_empty() {
os.write_string(1, &self.sql)?;
}
if let Some(ref v) = self.params.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)?;
}
::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<super::type_pb::Type>>(3, &self.param_types, 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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> ExecuteBatchDmlRequest_Statement {
ExecuteBatchDmlRequest_Statement::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"sql",
|m: &ExecuteBatchDmlRequest_Statement| { &m.sql },
|m: &mut ExecuteBatchDmlRequest_Statement| { &mut m.sql },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Struct>>(
"params",
|m: &ExecuteBatchDmlRequest_Statement| { &m.params },
|m: &mut ExecuteBatchDmlRequest_Statement| { &mut m.params },
));
fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<super::type_pb::Type>>(
"param_types",
|m: &ExecuteBatchDmlRequest_Statement| { &m.param_types },
|m: &mut ExecuteBatchDmlRequest_Statement| { &mut m.param_types },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<ExecuteBatchDmlRequest_Statement>(
"ExecuteBatchDmlRequest.Statement",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static ExecuteBatchDmlRequest_Statement {
static instance: ::protobuf::rt::LazyV2<ExecuteBatchDmlRequest_Statement> = ::protobuf::rt::LazyV2::INIT;
instance.get(ExecuteBatchDmlRequest_Statement::new)
}
}
impl ::protobuf::Clear for ExecuteBatchDmlRequest_Statement {
fn clear(&mut self) {
self.sql.clear();
self.params.clear();
self.param_types.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for ExecuteBatchDmlRequest_Statement {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for ExecuteBatchDmlRequest_Statement {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct ExecuteBatchDmlResponse {
pub result_sets: ::protobuf::RepeatedField<super::result_set::ResultSet>,
pub status: ::protobuf::SingularPtrField<super::status::Status>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a ExecuteBatchDmlResponse {
fn default() -> &'a ExecuteBatchDmlResponse {
<ExecuteBatchDmlResponse as ::protobuf::Message>::default_instance()
}
}
impl ExecuteBatchDmlResponse {
pub fn new() -> ExecuteBatchDmlResponse {
::std::default::Default::default()
}
pub fn get_result_sets(&self) -> &[super::result_set::ResultSet] {
&self.result_sets
}
pub fn clear_result_sets(&mut self) {
self.result_sets.clear();
}
pub fn set_result_sets(&mut self, v: ::protobuf::RepeatedField<super::result_set::ResultSet>) {
self.result_sets = v;
}
pub fn mut_result_sets(&mut self) -> &mut ::protobuf::RepeatedField<super::result_set::ResultSet> {
&mut self.result_sets
}
pub fn take_result_sets(&mut self) -> ::protobuf::RepeatedField<super::result_set::ResultSet> {
::std::mem::replace(&mut self.result_sets, ::protobuf::RepeatedField::new())
}
pub fn get_status(&self) -> &super::status::Status {
self.status.as_ref().unwrap_or_else(|| <super::status::Status as ::protobuf::Message>::default_instance())
}
pub fn clear_status(&mut self) {
self.status.clear();
}
pub fn has_status(&self) -> bool {
self.status.is_some()
}
pub fn set_status(&mut self, v: super::status::Status) {
self.status = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_status(&mut self) -> &mut super::status::Status {
if self.status.is_none() {
self.status.set_default();
}
self.status.as_mut().unwrap()
}
pub fn take_status(&mut self) -> super::status::Status {
self.status.take().unwrap_or_else(|| super::status::Status::new())
}
}
impl ::protobuf::Message for ExecuteBatchDmlResponse {
fn is_initialized(&self) -> bool {
for v in &self.result_sets {
if !v.is_initialized() {
return false;
}
};
for v in &self.status {
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_repeated_message_into(wire_type, is, &mut self.result_sets)?;
},
2 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.status)?;
},
_ => {
::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;
for value in &self.result_sets {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
};
if let Some(ref v) = self.status.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<()> {
for v in &self.result_sets {
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.status.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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> ExecuteBatchDmlResponse {
ExecuteBatchDmlResponse::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::result_set::ResultSet>>(
"result_sets",
|m: &ExecuteBatchDmlResponse| { &m.result_sets },
|m: &mut ExecuteBatchDmlResponse| { &mut m.result_sets },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::status::Status>>(
"status",
|m: &ExecuteBatchDmlResponse| { &m.status },
|m: &mut ExecuteBatchDmlResponse| { &mut m.status },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<ExecuteBatchDmlResponse>(
"ExecuteBatchDmlResponse",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static ExecuteBatchDmlResponse {
static instance: ::protobuf::rt::LazyV2<ExecuteBatchDmlResponse> = ::protobuf::rt::LazyV2::INIT;
instance.get(ExecuteBatchDmlResponse::new)
}
}
impl ::protobuf::Clear for ExecuteBatchDmlResponse {
fn clear(&mut self) {
self.result_sets.clear();
self.status.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for ExecuteBatchDmlResponse {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for ExecuteBatchDmlResponse {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct PartitionOptions {
pub partition_size_bytes: i64,
pub max_partitions: i64,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a PartitionOptions {
fn default() -> &'a PartitionOptions {
<PartitionOptions as ::protobuf::Message>::default_instance()
}
}
impl PartitionOptions {
pub fn new() -> PartitionOptions {
::std::default::Default::default()
}
pub fn get_partition_size_bytes(&self) -> i64 {
self.partition_size_bytes
}
pub fn clear_partition_size_bytes(&mut self) {
self.partition_size_bytes = 0;
}
pub fn set_partition_size_bytes(&mut self, v: i64) {
self.partition_size_bytes = v;
}
pub fn get_max_partitions(&self) -> i64 {
self.max_partitions
}
pub fn clear_max_partitions(&mut self) {
self.max_partitions = 0;
}
pub fn set_max_partitions(&mut self, v: i64) {
self.max_partitions = v;
}
}
impl ::protobuf::Message for PartitionOptions {
fn is_initialized(&self) -> bool {
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 => {
if wire_type != ::protobuf::wire_format::WireTypeVarint {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_int64()?;
self.partition_size_bytes = tmp;
},
2 => {
if wire_type != ::protobuf::wire_format::WireTypeVarint {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_int64()?;
self.max_partitions = tmp;
},
_ => {
::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 self.partition_size_bytes != 0 {
my_size += ::protobuf::rt::value_size(1, self.partition_size_bytes, ::protobuf::wire_format::WireTypeVarint);
}
if self.max_partitions != 0 {
my_size += ::protobuf::rt::value_size(2, self.max_partitions, ::protobuf::wire_format::WireTypeVarint);
}
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 self.partition_size_bytes != 0 {
os.write_int64(1, self.partition_size_bytes)?;
}
if self.max_partitions != 0 {
os.write_int64(2, self.max_partitions)?;
}
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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> PartitionOptions {
PartitionOptions::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
"partition_size_bytes",
|m: &PartitionOptions| { &m.partition_size_bytes },
|m: &mut PartitionOptions| { &mut m.partition_size_bytes },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
"max_partitions",
|m: &PartitionOptions| { &m.max_partitions },
|m: &mut PartitionOptions| { &mut m.max_partitions },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<PartitionOptions>(
"PartitionOptions",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static PartitionOptions {
static instance: ::protobuf::rt::LazyV2<PartitionOptions> = ::protobuf::rt::LazyV2::INIT;
instance.get(PartitionOptions::new)
}
}
impl ::protobuf::Clear for PartitionOptions {
fn clear(&mut self) {
self.partition_size_bytes = 0;
self.max_partitions = 0;
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for PartitionOptions {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for PartitionOptions {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct PartitionQueryRequest {
pub session: ::std::string::String,
pub transaction: ::protobuf::SingularPtrField<super::transaction::TransactionSelector>,
pub sql: ::std::string::String,
pub params: ::protobuf::SingularPtrField<::protobuf::well_known_types::Struct>,
pub param_types: ::std::collections::HashMap<::std::string::String, super::type_pb::Type>,
pub partition_options: ::protobuf::SingularPtrField<PartitionOptions>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a PartitionQueryRequest {
fn default() -> &'a PartitionQueryRequest {
<PartitionQueryRequest as ::protobuf::Message>::default_instance()
}
}
impl PartitionQueryRequest {
pub fn new() -> PartitionQueryRequest {
::std::default::Default::default()
}
pub fn get_session(&self) -> &str {
&self.session
}
pub fn clear_session(&mut self) {
self.session.clear();
}
pub fn set_session(&mut self, v: ::std::string::String) {
self.session = v;
}
pub fn mut_session(&mut self) -> &mut ::std::string::String {
&mut self.session
}
pub fn take_session(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.session, ::std::string::String::new())
}
pub fn get_transaction(&self) -> &super::transaction::TransactionSelector {
self.transaction.as_ref().unwrap_or_else(|| <super::transaction::TransactionSelector as ::protobuf::Message>::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::TransactionSelector) {
self.transaction = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_transaction(&mut self) -> &mut super::transaction::TransactionSelector {
if self.transaction.is_none() {
self.transaction.set_default();
}
self.transaction.as_mut().unwrap()
}
pub fn take_transaction(&mut self) -> super::transaction::TransactionSelector {
self.transaction.take().unwrap_or_else(|| super::transaction::TransactionSelector::new())
}
pub fn get_sql(&self) -> &str {
&self.sql
}
pub fn clear_sql(&mut self) {
self.sql.clear();
}
pub fn set_sql(&mut self, v: ::std::string::String) {
self.sql = v;
}
pub fn mut_sql(&mut self) -> &mut ::std::string::String {
&mut self.sql
}
pub fn take_sql(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.sql, ::std::string::String::new())
}
pub fn get_params(&self) -> &::protobuf::well_known_types::Struct {
self.params.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Struct as ::protobuf::Message>::default_instance())
}
pub fn clear_params(&mut self) {
self.params.clear();
}
pub fn has_params(&self) -> bool {
self.params.is_some()
}
pub fn set_params(&mut self, v: ::protobuf::well_known_types::Struct) {
self.params = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_params(&mut self) -> &mut ::protobuf::well_known_types::Struct {
if self.params.is_none() {
self.params.set_default();
}
self.params.as_mut().unwrap()
}
pub fn take_params(&mut self) -> ::protobuf::well_known_types::Struct {
self.params.take().unwrap_or_else(|| ::protobuf::well_known_types::Struct::new())
}
pub fn get_param_types(&self) -> &::std::collections::HashMap<::std::string::String, super::type_pb::Type> {
&self.param_types
}
pub fn clear_param_types(&mut self) {
self.param_types.clear();
}
pub fn set_param_types(&mut self, v: ::std::collections::HashMap<::std::string::String, super::type_pb::Type>) {
self.param_types = v;
}
pub fn mut_param_types(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, super::type_pb::Type> {
&mut self.param_types
}
pub fn take_param_types(&mut self) -> ::std::collections::HashMap<::std::string::String, super::type_pb::Type> {
::std::mem::replace(&mut self.param_types, ::std::collections::HashMap::new())
}
pub fn get_partition_options(&self) -> &PartitionOptions {
self.partition_options.as_ref().unwrap_or_else(|| <PartitionOptions as ::protobuf::Message>::default_instance())
}
pub fn clear_partition_options(&mut self) {
self.partition_options.clear();
}
pub fn has_partition_options(&self) -> bool {
self.partition_options.is_some()
}
pub fn set_partition_options(&mut self, v: PartitionOptions) {
self.partition_options = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_partition_options(&mut self) -> &mut PartitionOptions {
if self.partition_options.is_none() {
self.partition_options.set_default();
}
self.partition_options.as_mut().unwrap()
}
pub fn take_partition_options(&mut self) -> PartitionOptions {
self.partition_options.take().unwrap_or_else(|| PartitionOptions::new())
}
}
impl ::protobuf::Message for PartitionQueryRequest {
fn is_initialized(&self) -> bool {
for v in &self.transaction {
if !v.is_initialized() {
return false;
}
};
for v in &self.params {
if !v.is_initialized() {
return false;
}
};
for v in &self.partition_options {
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_proto3_string_into(wire_type, is, &mut self.session)?;
},
2 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.transaction)?;
},
3 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.sql)?;
},
4 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.params)?;
},
5 => {
::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<super::type_pb::Type>>(wire_type, is, &mut self.param_types)?;
},
6 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.partition_options)?;
},
_ => {
::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 !self.session.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.session);
}
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;
}
if !self.sql.is_empty() {
my_size += ::protobuf::rt::string_size(3, &self.sql);
}
if let Some(ref v) = self.params.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<super::type_pb::Type>>(5, &self.param_types);
if let Some(ref v) = self.partition_options.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 !self.session.is_empty() {
os.write_string(1, &self.session)?;
}
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)?;
}
if !self.sql.is_empty() {
os.write_string(3, &self.sql)?;
}
if let Some(ref v) = self.params.as_ref() {
os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
}
::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<super::type_pb::Type>>(5, &self.param_types, os)?;
if let Some(ref v) = self.partition_options.as_ref() {
os.write_tag(6, ::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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> PartitionQueryRequest {
PartitionQueryRequest::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"session",
|m: &PartitionQueryRequest| { &m.session },
|m: &mut PartitionQueryRequest| { &mut m.session },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::transaction::TransactionSelector>>(
"transaction",
|m: &PartitionQueryRequest| { &m.transaction },
|m: &mut PartitionQueryRequest| { &mut m.transaction },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"sql",
|m: &PartitionQueryRequest| { &m.sql },
|m: &mut PartitionQueryRequest| { &mut m.sql },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Struct>>(
"params",
|m: &PartitionQueryRequest| { &m.params },
|m: &mut PartitionQueryRequest| { &mut m.params },
));
fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<super::type_pb::Type>>(
"param_types",
|m: &PartitionQueryRequest| { &m.param_types },
|m: &mut PartitionQueryRequest| { &mut m.param_types },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<PartitionOptions>>(
"partition_options",
|m: &PartitionQueryRequest| { &m.partition_options },
|m: &mut PartitionQueryRequest| { &mut m.partition_options },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<PartitionQueryRequest>(
"PartitionQueryRequest",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static PartitionQueryRequest {
static instance: ::protobuf::rt::LazyV2<PartitionQueryRequest> = ::protobuf::rt::LazyV2::INIT;
instance.get(PartitionQueryRequest::new)
}
}
impl ::protobuf::Clear for PartitionQueryRequest {
fn clear(&mut self) {
self.session.clear();
self.transaction.clear();
self.sql.clear();
self.params.clear();
self.param_types.clear();
self.partition_options.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for PartitionQueryRequest {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for PartitionQueryRequest {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct PartitionReadRequest {
pub session: ::std::string::String,
pub transaction: ::protobuf::SingularPtrField<super::transaction::TransactionSelector>,
pub table: ::std::string::String,
pub index: ::std::string::String,
pub columns: ::protobuf::RepeatedField<::std::string::String>,
pub key_set: ::protobuf::SingularPtrField<super::keys::KeySet>,
pub partition_options: ::protobuf::SingularPtrField<PartitionOptions>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a PartitionReadRequest {
fn default() -> &'a PartitionReadRequest {
<PartitionReadRequest as ::protobuf::Message>::default_instance()
}
}
impl PartitionReadRequest {
pub fn new() -> PartitionReadRequest {
::std::default::Default::default()
}
pub fn get_session(&self) -> &str {
&self.session
}
pub fn clear_session(&mut self) {
self.session.clear();
}
pub fn set_session(&mut self, v: ::std::string::String) {
self.session = v;
}
pub fn mut_session(&mut self) -> &mut ::std::string::String {
&mut self.session
}
pub fn take_session(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.session, ::std::string::String::new())
}
pub fn get_transaction(&self) -> &super::transaction::TransactionSelector {
self.transaction.as_ref().unwrap_or_else(|| <super::transaction::TransactionSelector as ::protobuf::Message>::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::TransactionSelector) {
self.transaction = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_transaction(&mut self) -> &mut super::transaction::TransactionSelector {
if self.transaction.is_none() {
self.transaction.set_default();
}
self.transaction.as_mut().unwrap()
}
pub fn take_transaction(&mut self) -> super::transaction::TransactionSelector {
self.transaction.take().unwrap_or_else(|| super::transaction::TransactionSelector::new())
}
pub fn get_table(&self) -> &str {
&self.table
}
pub fn clear_table(&mut self) {
self.table.clear();
}
pub fn set_table(&mut self, v: ::std::string::String) {
self.table = v;
}
pub fn mut_table(&mut self) -> &mut ::std::string::String {
&mut self.table
}
pub fn take_table(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.table, ::std::string::String::new())
}
pub fn get_index(&self) -> &str {
&self.index
}
pub fn clear_index(&mut self) {
self.index.clear();
}
pub fn set_index(&mut self, v: ::std::string::String) {
self.index = v;
}
pub fn mut_index(&mut self) -> &mut ::std::string::String {
&mut self.index
}
pub fn take_index(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.index, ::std::string::String::new())
}
pub fn get_columns(&self) -> &[::std::string::String] {
&self.columns
}
pub fn clear_columns(&mut self) {
self.columns.clear();
}
pub fn set_columns(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
self.columns = v;
}
pub fn mut_columns(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
&mut self.columns
}
pub fn take_columns(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
::std::mem::replace(&mut self.columns, ::protobuf::RepeatedField::new())
}
pub fn get_key_set(&self) -> &super::keys::KeySet {
self.key_set.as_ref().unwrap_or_else(|| <super::keys::KeySet as ::protobuf::Message>::default_instance())
}
pub fn clear_key_set(&mut self) {
self.key_set.clear();
}
pub fn has_key_set(&self) -> bool {
self.key_set.is_some()
}
pub fn set_key_set(&mut self, v: super::keys::KeySet) {
self.key_set = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_key_set(&mut self) -> &mut super::keys::KeySet {
if self.key_set.is_none() {
self.key_set.set_default();
}
self.key_set.as_mut().unwrap()
}
pub fn take_key_set(&mut self) -> super::keys::KeySet {
self.key_set.take().unwrap_or_else(|| super::keys::KeySet::new())
}
pub fn get_partition_options(&self) -> &PartitionOptions {
self.partition_options.as_ref().unwrap_or_else(|| <PartitionOptions as ::protobuf::Message>::default_instance())
}
pub fn clear_partition_options(&mut self) {
self.partition_options.clear();
}
pub fn has_partition_options(&self) -> bool {
self.partition_options.is_some()
}
pub fn set_partition_options(&mut self, v: PartitionOptions) {
self.partition_options = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_partition_options(&mut self) -> &mut PartitionOptions {
if self.partition_options.is_none() {
self.partition_options.set_default();
}
self.partition_options.as_mut().unwrap()
}
pub fn take_partition_options(&mut self) -> PartitionOptions {
self.partition_options.take().unwrap_or_else(|| PartitionOptions::new())
}
}
impl ::protobuf::Message for PartitionReadRequest {
fn is_initialized(&self) -> bool {
for v in &self.transaction {
if !v.is_initialized() {
return false;
}
};
for v in &self.key_set {
if !v.is_initialized() {
return false;
}
};
for v in &self.partition_options {
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_proto3_string_into(wire_type, is, &mut self.session)?;
},
2 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.transaction)?;
},
3 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.table)?;
},
4 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.index)?;
},
5 => {
::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.columns)?;
},
6 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.key_set)?;
},
9 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.partition_options)?;
},
_ => {
::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 !self.session.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.session);
}
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;
}
if !self.table.is_empty() {
my_size += ::protobuf::rt::string_size(3, &self.table);
}
if !self.index.is_empty() {
my_size += ::protobuf::rt::string_size(4, &self.index);
}
for value in &self.columns {
my_size += ::protobuf::rt::string_size(5, &value);
};
if let Some(ref v) = self.key_set.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
if let Some(ref v) = self.partition_options.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 !self.session.is_empty() {
os.write_string(1, &self.session)?;
}
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)?;
}
if !self.table.is_empty() {
os.write_string(3, &self.table)?;
}
if !self.index.is_empty() {
os.write_string(4, &self.index)?;
}
for v in &self.columns {
os.write_string(5, &v)?;
};
if let Some(ref v) = self.key_set.as_ref() {
os.write_tag(6, ::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.partition_options.as_ref() {
os.write_tag(9, ::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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> PartitionReadRequest {
PartitionReadRequest::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"session",
|m: &PartitionReadRequest| { &m.session },
|m: &mut PartitionReadRequest| { &mut m.session },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::transaction::TransactionSelector>>(
"transaction",
|m: &PartitionReadRequest| { &m.transaction },
|m: &mut PartitionReadRequest| { &mut m.transaction },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"table",
|m: &PartitionReadRequest| { &m.table },
|m: &mut PartitionReadRequest| { &mut m.table },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"index",
|m: &PartitionReadRequest| { &m.index },
|m: &mut PartitionReadRequest| { &mut m.index },
));
fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"columns",
|m: &PartitionReadRequest| { &m.columns },
|m: &mut PartitionReadRequest| { &mut m.columns },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::keys::KeySet>>(
"key_set",
|m: &PartitionReadRequest| { &m.key_set },
|m: &mut PartitionReadRequest| { &mut m.key_set },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<PartitionOptions>>(
"partition_options",
|m: &PartitionReadRequest| { &m.partition_options },
|m: &mut PartitionReadRequest| { &mut m.partition_options },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<PartitionReadRequest>(
"PartitionReadRequest",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static PartitionReadRequest {
static instance: ::protobuf::rt::LazyV2<PartitionReadRequest> = ::protobuf::rt::LazyV2::INIT;
instance.get(PartitionReadRequest::new)
}
}
impl ::protobuf::Clear for PartitionReadRequest {
fn clear(&mut self) {
self.session.clear();
self.transaction.clear();
self.table.clear();
self.index.clear();
self.columns.clear();
self.key_set.clear();
self.partition_options.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for PartitionReadRequest {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for PartitionReadRequest {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct Partition {
pub partition_token: ::std::vec::Vec<u8>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a Partition {
fn default() -> &'a Partition {
<Partition as ::protobuf::Message>::default_instance()
}
}
impl Partition {
pub fn new() -> Partition {
::std::default::Default::default()
}
pub fn get_partition_token(&self) -> &[u8] {
&self.partition_token
}
pub fn clear_partition_token(&mut self) {
self.partition_token.clear();
}
pub fn set_partition_token(&mut self, v: ::std::vec::Vec<u8>) {
self.partition_token = v;
}
pub fn mut_partition_token(&mut self) -> &mut ::std::vec::Vec<u8> {
&mut self.partition_token
}
pub fn take_partition_token(&mut self) -> ::std::vec::Vec<u8> {
::std::mem::replace(&mut self.partition_token, ::std::vec::Vec::new())
}
}
impl ::protobuf::Message for Partition {
fn is_initialized(&self) -> bool {
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_proto3_bytes_into(wire_type, is, &mut self.partition_token)?;
},
_ => {
::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 !self.partition_token.is_empty() {
my_size += ::protobuf::rt::bytes_size(1, &self.partition_token);
}
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 !self.partition_token.is_empty() {
os.write_bytes(1, &self.partition_token)?;
}
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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> Partition {
Partition::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
"partition_token",
|m: &Partition| { &m.partition_token },
|m: &mut Partition| { &mut m.partition_token },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<Partition>(
"Partition",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static Partition {
static instance: ::protobuf::rt::LazyV2<Partition> = ::protobuf::rt::LazyV2::INIT;
instance.get(Partition::new)
}
}
impl ::protobuf::Clear for Partition {
fn clear(&mut self) {
self.partition_token.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for Partition {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Partition {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct PartitionResponse {
pub partitions: ::protobuf::RepeatedField<Partition>,
pub transaction: ::protobuf::SingularPtrField<super::transaction::Transaction>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a PartitionResponse {
fn default() -> &'a PartitionResponse {
<PartitionResponse as ::protobuf::Message>::default_instance()
}
}
impl PartitionResponse {
pub fn new() -> PartitionResponse {
::std::default::Default::default()
}
pub fn get_partitions(&self) -> &[Partition] {
&self.partitions
}
pub fn clear_partitions(&mut self) {
self.partitions.clear();
}
pub fn set_partitions(&mut self, v: ::protobuf::RepeatedField<Partition>) {
self.partitions = v;
}
pub fn mut_partitions(&mut self) -> &mut ::protobuf::RepeatedField<Partition> {
&mut self.partitions
}
pub fn take_partitions(&mut self) -> ::protobuf::RepeatedField<Partition> {
::std::mem::replace(&mut self.partitions, ::protobuf::RepeatedField::new())
}
pub fn get_transaction(&self) -> &super::transaction::Transaction {
self.transaction.as_ref().unwrap_or_else(|| <super::transaction::Transaction as ::protobuf::Message>::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())
}
}
impl ::protobuf::Message for PartitionResponse {
fn is_initialized(&self) -> bool {
for v in &self.partitions {
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_repeated_message_into(wire_type, is, &mut self.partitions)?;
},
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;
for value in &self.partitions {
let len = value.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<()> {
for v in &self.partitions {
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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> PartitionResponse {
PartitionResponse::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Partition>>(
"partitions",
|m: &PartitionResponse| { &m.partitions },
|m: &mut PartitionResponse| { &mut m.partitions },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::transaction::Transaction>>(
"transaction",
|m: &PartitionResponse| { &m.transaction },
|m: &mut PartitionResponse| { &mut m.transaction },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<PartitionResponse>(
"PartitionResponse",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static PartitionResponse {
static instance: ::protobuf::rt::LazyV2<PartitionResponse> = ::protobuf::rt::LazyV2::INIT;
instance.get(PartitionResponse::new)
}
}
impl ::protobuf::Clear for PartitionResponse {
fn clear(&mut self) {
self.partitions.clear();
self.transaction.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for PartitionResponse {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for PartitionResponse {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct ReadRequest {
pub session: ::std::string::String,
pub transaction: ::protobuf::SingularPtrField<super::transaction::TransactionSelector>,
pub table: ::std::string::String,
pub index: ::std::string::String,
pub columns: ::protobuf::RepeatedField<::std::string::String>,
pub key_set: ::protobuf::SingularPtrField<super::keys::KeySet>,
pub limit: i64,
pub resume_token: ::std::vec::Vec<u8>,
pub partition_token: ::std::vec::Vec<u8>,
pub request_options: ::protobuf::SingularPtrField<RequestOptions>,
pub data_boost_enabled: bool,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a ReadRequest {
fn default() -> &'a ReadRequest {
<ReadRequest as ::protobuf::Message>::default_instance()
}
}
impl ReadRequest {
pub fn new() -> ReadRequest {
::std::default::Default::default()
}
pub fn get_session(&self) -> &str {
&self.session
}
pub fn clear_session(&mut self) {
self.session.clear();
}
pub fn set_session(&mut self, v: ::std::string::String) {
self.session = v;
}
pub fn mut_session(&mut self) -> &mut ::std::string::String {
&mut self.session
}
pub fn take_session(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.session, ::std::string::String::new())
}
pub fn get_transaction(&self) -> &super::transaction::TransactionSelector {
self.transaction.as_ref().unwrap_or_else(|| <super::transaction::TransactionSelector as ::protobuf::Message>::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::TransactionSelector) {
self.transaction = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_transaction(&mut self) -> &mut super::transaction::TransactionSelector {
if self.transaction.is_none() {
self.transaction.set_default();
}
self.transaction.as_mut().unwrap()
}
pub fn take_transaction(&mut self) -> super::transaction::TransactionSelector {
self.transaction.take().unwrap_or_else(|| super::transaction::TransactionSelector::new())
}
pub fn get_table(&self) -> &str {
&self.table
}
pub fn clear_table(&mut self) {
self.table.clear();
}
pub fn set_table(&mut self, v: ::std::string::String) {
self.table = v;
}
pub fn mut_table(&mut self) -> &mut ::std::string::String {
&mut self.table
}
pub fn take_table(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.table, ::std::string::String::new())
}
pub fn get_index(&self) -> &str {
&self.index
}
pub fn clear_index(&mut self) {
self.index.clear();
}
pub fn set_index(&mut self, v: ::std::string::String) {
self.index = v;
}
pub fn mut_index(&mut self) -> &mut ::std::string::String {
&mut self.index
}
pub fn take_index(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.index, ::std::string::String::new())
}
pub fn get_columns(&self) -> &[::std::string::String] {
&self.columns
}
pub fn clear_columns(&mut self) {
self.columns.clear();
}
pub fn set_columns(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
self.columns = v;
}
pub fn mut_columns(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
&mut self.columns
}
pub fn take_columns(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
::std::mem::replace(&mut self.columns, ::protobuf::RepeatedField::new())
}
pub fn get_key_set(&self) -> &super::keys::KeySet {
self.key_set.as_ref().unwrap_or_else(|| <super::keys::KeySet as ::protobuf::Message>::default_instance())
}
pub fn clear_key_set(&mut self) {
self.key_set.clear();
}
pub fn has_key_set(&self) -> bool {
self.key_set.is_some()
}
pub fn set_key_set(&mut self, v: super::keys::KeySet) {
self.key_set = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_key_set(&mut self) -> &mut super::keys::KeySet {
if self.key_set.is_none() {
self.key_set.set_default();
}
self.key_set.as_mut().unwrap()
}
pub fn take_key_set(&mut self) -> super::keys::KeySet {
self.key_set.take().unwrap_or_else(|| super::keys::KeySet::new())
}
pub fn get_limit(&self) -> i64 {
self.limit
}
pub fn clear_limit(&mut self) {
self.limit = 0;
}
pub fn set_limit(&mut self, v: i64) {
self.limit = v;
}
pub fn get_resume_token(&self) -> &[u8] {
&self.resume_token
}
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_partition_token(&self) -> &[u8] {
&self.partition_token
}
pub fn clear_partition_token(&mut self) {
self.partition_token.clear();
}
pub fn set_partition_token(&mut self, v: ::std::vec::Vec<u8>) {
self.partition_token = v;
}
pub fn mut_partition_token(&mut self) -> &mut ::std::vec::Vec<u8> {
&mut self.partition_token
}
pub fn take_partition_token(&mut self) -> ::std::vec::Vec<u8> {
::std::mem::replace(&mut self.partition_token, ::std::vec::Vec::new())
}
pub fn get_request_options(&self) -> &RequestOptions {
self.request_options.as_ref().unwrap_or_else(|| <RequestOptions as ::protobuf::Message>::default_instance())
}
pub fn clear_request_options(&mut self) {
self.request_options.clear();
}
pub fn has_request_options(&self) -> bool {
self.request_options.is_some()
}
pub fn set_request_options(&mut self, v: RequestOptions) {
self.request_options = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_request_options(&mut self) -> &mut RequestOptions {
if self.request_options.is_none() {
self.request_options.set_default();
}
self.request_options.as_mut().unwrap()
}
pub fn take_request_options(&mut self) -> RequestOptions {
self.request_options.take().unwrap_or_else(|| RequestOptions::new())
}
pub fn get_data_boost_enabled(&self) -> bool {
self.data_boost_enabled
}
pub fn clear_data_boost_enabled(&mut self) {
self.data_boost_enabled = false;
}
pub fn set_data_boost_enabled(&mut self, v: bool) {
self.data_boost_enabled = v;
}
}
impl ::protobuf::Message for ReadRequest {
fn is_initialized(&self) -> bool {
for v in &self.transaction {
if !v.is_initialized() {
return false;
}
};
for v in &self.key_set {
if !v.is_initialized() {
return false;
}
};
for v in &self.request_options {
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_proto3_string_into(wire_type, is, &mut self.session)?;
},
2 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.transaction)?;
},
3 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.table)?;
},
4 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.index)?;
},
5 => {
::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.columns)?;
},
6 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.key_set)?;
},
8 => {
if wire_type != ::protobuf::wire_format::WireTypeVarint {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_int64()?;
self.limit = tmp;
},
9 => {
::protobuf::rt::read_singular_proto3_bytes_into(wire_type, is, &mut self.resume_token)?;
},
10 => {
::protobuf::rt::read_singular_proto3_bytes_into(wire_type, is, &mut self.partition_token)?;
},
11 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.request_options)?;
},
15 => {
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.data_boost_enabled = tmp;
},
_ => {
::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 !self.session.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.session);
}
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;
}
if !self.table.is_empty() {
my_size += ::protobuf::rt::string_size(3, &self.table);
}
if !self.index.is_empty() {
my_size += ::protobuf::rt::string_size(4, &self.index);
}
for value in &self.columns {
my_size += ::protobuf::rt::string_size(5, &value);
};
if let Some(ref v) = self.key_set.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
if self.limit != 0 {
my_size += ::protobuf::rt::value_size(8, self.limit, ::protobuf::wire_format::WireTypeVarint);
}
if !self.resume_token.is_empty() {
my_size += ::protobuf::rt::bytes_size(9, &self.resume_token);
}
if !self.partition_token.is_empty() {
my_size += ::protobuf::rt::bytes_size(10, &self.partition_token);
}
if let Some(ref v) = self.request_options.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
if self.data_boost_enabled != false {
my_size += 2;
}
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 !self.session.is_empty() {
os.write_string(1, &self.session)?;
}
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)?;
}
if !self.table.is_empty() {
os.write_string(3, &self.table)?;
}
if !self.index.is_empty() {
os.write_string(4, &self.index)?;
}
for v in &self.columns {
os.write_string(5, &v)?;
};
if let Some(ref v) = self.key_set.as_ref() {
os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
}
if self.limit != 0 {
os.write_int64(8, self.limit)?;
}
if !self.resume_token.is_empty() {
os.write_bytes(9, &self.resume_token)?;
}
if !self.partition_token.is_empty() {
os.write_bytes(10, &self.partition_token)?;
}
if let Some(ref v) = self.request_options.as_ref() {
os.write_tag(11, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
}
if self.data_boost_enabled != false {
os.write_bool(15, self.data_boost_enabled)?;
}
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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> ReadRequest {
ReadRequest::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"session",
|m: &ReadRequest| { &m.session },
|m: &mut ReadRequest| { &mut m.session },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::transaction::TransactionSelector>>(
"transaction",
|m: &ReadRequest| { &m.transaction },
|m: &mut ReadRequest| { &mut m.transaction },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"table",
|m: &ReadRequest| { &m.table },
|m: &mut ReadRequest| { &mut m.table },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"index",
|m: &ReadRequest| { &m.index },
|m: &mut ReadRequest| { &mut m.index },
));
fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"columns",
|m: &ReadRequest| { &m.columns },
|m: &mut ReadRequest| { &mut m.columns },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::keys::KeySet>>(
"key_set",
|m: &ReadRequest| { &m.key_set },
|m: &mut ReadRequest| { &mut m.key_set },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
"limit",
|m: &ReadRequest| { &m.limit },
|m: &mut ReadRequest| { &mut m.limit },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
"resume_token",
|m: &ReadRequest| { &m.resume_token },
|m: &mut ReadRequest| { &mut m.resume_token },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
"partition_token",
|m: &ReadRequest| { &m.partition_token },
|m: &mut ReadRequest| { &mut m.partition_token },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<RequestOptions>>(
"request_options",
|m: &ReadRequest| { &m.request_options },
|m: &mut ReadRequest| { &mut m.request_options },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
"data_boost_enabled",
|m: &ReadRequest| { &m.data_boost_enabled },
|m: &mut ReadRequest| { &mut m.data_boost_enabled },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<ReadRequest>(
"ReadRequest",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static ReadRequest {
static instance: ::protobuf::rt::LazyV2<ReadRequest> = ::protobuf::rt::LazyV2::INIT;
instance.get(ReadRequest::new)
}
}
impl ::protobuf::Clear for ReadRequest {
fn clear(&mut self) {
self.session.clear();
self.transaction.clear();
self.table.clear();
self.index.clear();
self.columns.clear();
self.key_set.clear();
self.limit = 0;
self.resume_token.clear();
self.partition_token.clear();
self.request_options.clear();
self.data_boost_enabled = false;
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for ReadRequest {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for ReadRequest {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct BeginTransactionRequest {
pub session: ::std::string::String,
pub options: ::protobuf::SingularPtrField<super::transaction::TransactionOptions>,
pub request_options: ::protobuf::SingularPtrField<RequestOptions>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a BeginTransactionRequest {
fn default() -> &'a BeginTransactionRequest {
<BeginTransactionRequest as ::protobuf::Message>::default_instance()
}
}
impl BeginTransactionRequest {
pub fn new() -> BeginTransactionRequest {
::std::default::Default::default()
}
pub fn get_session(&self) -> &str {
&self.session
}
pub fn clear_session(&mut self) {
self.session.clear();
}
pub fn set_session(&mut self, v: ::std::string::String) {
self.session = v;
}
pub fn mut_session(&mut self) -> &mut ::std::string::String {
&mut self.session
}
pub fn take_session(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.session, ::std::string::String::new())
}
pub fn get_options(&self) -> &super::transaction::TransactionOptions {
self.options.as_ref().unwrap_or_else(|| <super::transaction::TransactionOptions as ::protobuf::Message>::default_instance())
}
pub fn clear_options(&mut self) {
self.options.clear();
}
pub fn has_options(&self) -> bool {
self.options.is_some()
}
pub fn set_options(&mut self, v: super::transaction::TransactionOptions) {
self.options = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_options(&mut self) -> &mut super::transaction::TransactionOptions {
if self.options.is_none() {
self.options.set_default();
}
self.options.as_mut().unwrap()
}
pub fn take_options(&mut self) -> super::transaction::TransactionOptions {
self.options.take().unwrap_or_else(|| super::transaction::TransactionOptions::new())
}
pub fn get_request_options(&self) -> &RequestOptions {
self.request_options.as_ref().unwrap_or_else(|| <RequestOptions as ::protobuf::Message>::default_instance())
}
pub fn clear_request_options(&mut self) {
self.request_options.clear();
}
pub fn has_request_options(&self) -> bool {
self.request_options.is_some()
}
pub fn set_request_options(&mut self, v: RequestOptions) {
self.request_options = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_request_options(&mut self) -> &mut RequestOptions {
if self.request_options.is_none() {
self.request_options.set_default();
}
self.request_options.as_mut().unwrap()
}
pub fn take_request_options(&mut self) -> RequestOptions {
self.request_options.take().unwrap_or_else(|| RequestOptions::new())
}
}
impl ::protobuf::Message for BeginTransactionRequest {
fn is_initialized(&self) -> bool {
for v in &self.options {
if !v.is_initialized() {
return false;
}
};
for v in &self.request_options {
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_proto3_string_into(wire_type, is, &mut self.session)?;
},
2 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.options)?;
},
3 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.request_options)?;
},
_ => {
::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 !self.session.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.session);
}
if let Some(ref v) = self.options.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
if let Some(ref v) = self.request_options.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 !self.session.is_empty() {
os.write_string(1, &self.session)?;
}
if let Some(ref v) = self.options.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)?;
}
if let Some(ref v) = self.request_options.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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> BeginTransactionRequest {
BeginTransactionRequest::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"session",
|m: &BeginTransactionRequest| { &m.session },
|m: &mut BeginTransactionRequest| { &mut m.session },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::transaction::TransactionOptions>>(
"options",
|m: &BeginTransactionRequest| { &m.options },
|m: &mut BeginTransactionRequest| { &mut m.options },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<RequestOptions>>(
"request_options",
|m: &BeginTransactionRequest| { &m.request_options },
|m: &mut BeginTransactionRequest| { &mut m.request_options },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<BeginTransactionRequest>(
"BeginTransactionRequest",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static BeginTransactionRequest {
static instance: ::protobuf::rt::LazyV2<BeginTransactionRequest> = ::protobuf::rt::LazyV2::INIT;
instance.get(BeginTransactionRequest::new)
}
}
impl ::protobuf::Clear for BeginTransactionRequest {
fn clear(&mut self) {
self.session.clear();
self.options.clear();
self.request_options.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for BeginTransactionRequest {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for BeginTransactionRequest {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct CommitRequest {
pub session: ::std::string::String,
pub mutations: ::protobuf::RepeatedField<super::mutation::Mutation>,
pub return_commit_stats: bool,
pub request_options: ::protobuf::SingularPtrField<RequestOptions>,
pub transaction: ::std::option::Option<CommitRequest_oneof_transaction>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a CommitRequest {
fn default() -> &'a CommitRequest {
<CommitRequest as ::protobuf::Message>::default_instance()
}
}
#[derive(Clone,PartialEq,Debug)]
pub enum CommitRequest_oneof_transaction {
transaction_id(::std::vec::Vec<u8>),
single_use_transaction(super::transaction::TransactionOptions),
}
impl CommitRequest {
pub fn new() -> CommitRequest {
::std::default::Default::default()
}
pub fn get_session(&self) -> &str {
&self.session
}
pub fn clear_session(&mut self) {
self.session.clear();
}
pub fn set_session(&mut self, v: ::std::string::String) {
self.session = v;
}
pub fn mut_session(&mut self) -> &mut ::std::string::String {
&mut self.session
}
pub fn take_session(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.session, ::std::string::String::new())
}
pub fn get_transaction_id(&self) -> &[u8] {
match self.transaction {
::std::option::Option::Some(CommitRequest_oneof_transaction::transaction_id(ref v)) => v,
_ => &[],
}
}
pub fn clear_transaction_id(&mut self) {
self.transaction = ::std::option::Option::None;
}
pub fn has_transaction_id(&self) -> bool {
match self.transaction {
::std::option::Option::Some(CommitRequest_oneof_transaction::transaction_id(..)) => true,
_ => false,
}
}
pub fn set_transaction_id(&mut self, v: ::std::vec::Vec<u8>) {
self.transaction = ::std::option::Option::Some(CommitRequest_oneof_transaction::transaction_id(v))
}
pub fn mut_transaction_id(&mut self) -> &mut ::std::vec::Vec<u8> {
if let ::std::option::Option::Some(CommitRequest_oneof_transaction::transaction_id(_)) = self.transaction {
} else {
self.transaction = ::std::option::Option::Some(CommitRequest_oneof_transaction::transaction_id(::std::vec::Vec::new()));
}
match self.transaction {
::std::option::Option::Some(CommitRequest_oneof_transaction::transaction_id(ref mut v)) => v,
_ => panic!(),
}
}
pub fn take_transaction_id(&mut self) -> ::std::vec::Vec<u8> {
if self.has_transaction_id() {
match self.transaction.take() {
::std::option::Option::Some(CommitRequest_oneof_transaction::transaction_id(v)) => v,
_ => panic!(),
}
} else {
::std::vec::Vec::new()
}
}
pub fn get_single_use_transaction(&self) -> &super::transaction::TransactionOptions {
match self.transaction {
::std::option::Option::Some(CommitRequest_oneof_transaction::single_use_transaction(ref v)) => v,
_ => <super::transaction::TransactionOptions as ::protobuf::Message>::default_instance(),
}
}
pub fn clear_single_use_transaction(&mut self) {
self.transaction = ::std::option::Option::None;
}
pub fn has_single_use_transaction(&self) -> bool {
match self.transaction {
::std::option::Option::Some(CommitRequest_oneof_transaction::single_use_transaction(..)) => true,
_ => false,
}
}
pub fn set_single_use_transaction(&mut self, v: super::transaction::TransactionOptions) {
self.transaction = ::std::option::Option::Some(CommitRequest_oneof_transaction::single_use_transaction(v))
}
pub fn mut_single_use_transaction(&mut self) -> &mut super::transaction::TransactionOptions {
if let ::std::option::Option::Some(CommitRequest_oneof_transaction::single_use_transaction(_)) = self.transaction {
} else {
self.transaction = ::std::option::Option::Some(CommitRequest_oneof_transaction::single_use_transaction(super::transaction::TransactionOptions::new()));
}
match self.transaction {
::std::option::Option::Some(CommitRequest_oneof_transaction::single_use_transaction(ref mut v)) => v,
_ => panic!(),
}
}
pub fn take_single_use_transaction(&mut self) -> super::transaction::TransactionOptions {
if self.has_single_use_transaction() {
match self.transaction.take() {
::std::option::Option::Some(CommitRequest_oneof_transaction::single_use_transaction(v)) => v,
_ => panic!(),
}
} else {
super::transaction::TransactionOptions::new()
}
}
pub fn get_mutations(&self) -> &[super::mutation::Mutation] {
&self.mutations
}
pub fn clear_mutations(&mut self) {
self.mutations.clear();
}
pub fn set_mutations(&mut self, v: ::protobuf::RepeatedField<super::mutation::Mutation>) {
self.mutations = v;
}
pub fn mut_mutations(&mut self) -> &mut ::protobuf::RepeatedField<super::mutation::Mutation> {
&mut self.mutations
}
pub fn take_mutations(&mut self) -> ::protobuf::RepeatedField<super::mutation::Mutation> {
::std::mem::replace(&mut self.mutations, ::protobuf::RepeatedField::new())
}
pub fn get_return_commit_stats(&self) -> bool {
self.return_commit_stats
}
pub fn clear_return_commit_stats(&mut self) {
self.return_commit_stats = false;
}
pub fn set_return_commit_stats(&mut self, v: bool) {
self.return_commit_stats = v;
}
pub fn get_request_options(&self) -> &RequestOptions {
self.request_options.as_ref().unwrap_or_else(|| <RequestOptions as ::protobuf::Message>::default_instance())
}
pub fn clear_request_options(&mut self) {
self.request_options.clear();
}
pub fn has_request_options(&self) -> bool {
self.request_options.is_some()
}
pub fn set_request_options(&mut self, v: RequestOptions) {
self.request_options = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_request_options(&mut self) -> &mut RequestOptions {
if self.request_options.is_none() {
self.request_options.set_default();
}
self.request_options.as_mut().unwrap()
}
pub fn take_request_options(&mut self) -> RequestOptions {
self.request_options.take().unwrap_or_else(|| RequestOptions::new())
}
}
impl ::protobuf::Message for CommitRequest {
fn is_initialized(&self) -> bool {
if let Some(CommitRequest_oneof_transaction::single_use_transaction(ref v)) = self.transaction {
if !v.is_initialized() {
return false;
}
}
for v in &self.mutations {
if !v.is_initialized() {
return false;
}
};
for v in &self.request_options {
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_proto3_string_into(wire_type, is, &mut self.session)?;
},
2 => {
if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
self.transaction = ::std::option::Option::Some(CommitRequest_oneof_transaction::transaction_id(is.read_bytes()?));
},
3 => {
if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
self.transaction = ::std::option::Option::Some(CommitRequest_oneof_transaction::single_use_transaction(is.read_message()?));
},
4 => {
::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.mutations)?;
},
5 => {
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.return_commit_stats = tmp;
},
6 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.request_options)?;
},
_ => {
::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 !self.session.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.session);
}
for value in &self.mutations {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
};
if self.return_commit_stats != false {
my_size += 2;
}
if let Some(ref v) = self.request_options.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
if let ::std::option::Option::Some(ref v) = self.transaction {
match v {
&CommitRequest_oneof_transaction::transaction_id(ref v) => {
my_size += ::protobuf::rt::bytes_size(2, &v);
},
&CommitRequest_oneof_transaction::single_use_transaction(ref v) => {
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 !self.session.is_empty() {
os.write_string(1, &self.session)?;
}
for v in &self.mutations {
os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
};
if self.return_commit_stats != false {
os.write_bool(5, self.return_commit_stats)?;
}
if let Some(ref v) = self.request_options.as_ref() {
os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
}
if let ::std::option::Option::Some(ref v) = self.transaction {
match v {
&CommitRequest_oneof_transaction::transaction_id(ref v) => {
os.write_bytes(2, v)?;
},
&CommitRequest_oneof_transaction::single_use_transaction(ref v) => {
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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> CommitRequest {
CommitRequest::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"session",
|m: &CommitRequest| { &m.session },
|m: &mut CommitRequest| { &mut m.session },
));
fields.push(::protobuf::reflect::accessor::make_singular_bytes_accessor::<_>(
"transaction_id",
CommitRequest::has_transaction_id,
CommitRequest::get_transaction_id,
));
fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, super::transaction::TransactionOptions>(
"single_use_transaction",
CommitRequest::has_single_use_transaction,
CommitRequest::get_single_use_transaction,
));
fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::mutation::Mutation>>(
"mutations",
|m: &CommitRequest| { &m.mutations },
|m: &mut CommitRequest| { &mut m.mutations },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
"return_commit_stats",
|m: &CommitRequest| { &m.return_commit_stats },
|m: &mut CommitRequest| { &mut m.return_commit_stats },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<RequestOptions>>(
"request_options",
|m: &CommitRequest| { &m.request_options },
|m: &mut CommitRequest| { &mut m.request_options },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<CommitRequest>(
"CommitRequest",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static CommitRequest {
static instance: ::protobuf::rt::LazyV2<CommitRequest> = ::protobuf::rt::LazyV2::INIT;
instance.get(CommitRequest::new)
}
}
impl ::protobuf::Clear for CommitRequest {
fn clear(&mut self) {
self.session.clear();
self.transaction = ::std::option::Option::None;
self.transaction = ::std::option::Option::None;
self.mutations.clear();
self.return_commit_stats = false;
self.request_options.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for CommitRequest {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for CommitRequest {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct RollbackRequest {
pub session: ::std::string::String,
pub transaction_id: ::std::vec::Vec<u8>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a RollbackRequest {
fn default() -> &'a RollbackRequest {
<RollbackRequest as ::protobuf::Message>::default_instance()
}
}
impl RollbackRequest {
pub fn new() -> RollbackRequest {
::std::default::Default::default()
}
pub fn get_session(&self) -> &str {
&self.session
}
pub fn clear_session(&mut self) {
self.session.clear();
}
pub fn set_session(&mut self, v: ::std::string::String) {
self.session = v;
}
pub fn mut_session(&mut self) -> &mut ::std::string::String {
&mut self.session
}
pub fn take_session(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.session, ::std::string::String::new())
}
pub fn get_transaction_id(&self) -> &[u8] {
&self.transaction_id
}
pub fn clear_transaction_id(&mut self) {
self.transaction_id.clear();
}
pub fn set_transaction_id(&mut self, v: ::std::vec::Vec<u8>) {
self.transaction_id = v;
}
pub fn mut_transaction_id(&mut self) -> &mut ::std::vec::Vec<u8> {
&mut self.transaction_id
}
pub fn take_transaction_id(&mut self) -> ::std::vec::Vec<u8> {
::std::mem::replace(&mut self.transaction_id, ::std::vec::Vec::new())
}
}
impl ::protobuf::Message for RollbackRequest {
fn is_initialized(&self) -> bool {
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_proto3_string_into(wire_type, is, &mut self.session)?;
},
2 => {
::protobuf::rt::read_singular_proto3_bytes_into(wire_type, is, &mut self.transaction_id)?;
},
_ => {
::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 !self.session.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.session);
}
if !self.transaction_id.is_empty() {
my_size += ::protobuf::rt::bytes_size(2, &self.transaction_id);
}
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 !self.session.is_empty() {
os.write_string(1, &self.session)?;
}
if !self.transaction_id.is_empty() {
os.write_bytes(2, &self.transaction_id)?;
}
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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> RollbackRequest {
RollbackRequest::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"session",
|m: &RollbackRequest| { &m.session },
|m: &mut RollbackRequest| { &mut m.session },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
"transaction_id",
|m: &RollbackRequest| { &m.transaction_id },
|m: &mut RollbackRequest| { &mut m.transaction_id },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<RollbackRequest>(
"RollbackRequest",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static RollbackRequest {
static instance: ::protobuf::rt::LazyV2<RollbackRequest> = ::protobuf::rt::LazyV2::INIT;
instance.get(RollbackRequest::new)
}
}
impl ::protobuf::Clear for RollbackRequest {
fn clear(&mut self) {
self.session.clear();
self.transaction_id.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for RollbackRequest {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for RollbackRequest {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct BatchWriteRequest {
pub session: ::std::string::String,
pub request_options: ::protobuf::SingularPtrField<RequestOptions>,
pub mutation_groups: ::protobuf::RepeatedField<BatchWriteRequest_MutationGroup>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a BatchWriteRequest {
fn default() -> &'a BatchWriteRequest {
<BatchWriteRequest as ::protobuf::Message>::default_instance()
}
}
impl BatchWriteRequest {
pub fn new() -> BatchWriteRequest {
::std::default::Default::default()
}
pub fn get_session(&self) -> &str {
&self.session
}
pub fn clear_session(&mut self) {
self.session.clear();
}
pub fn set_session(&mut self, v: ::std::string::String) {
self.session = v;
}
pub fn mut_session(&mut self) -> &mut ::std::string::String {
&mut self.session
}
pub fn take_session(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.session, ::std::string::String::new())
}
pub fn get_request_options(&self) -> &RequestOptions {
self.request_options.as_ref().unwrap_or_else(|| <RequestOptions as ::protobuf::Message>::default_instance())
}
pub fn clear_request_options(&mut self) {
self.request_options.clear();
}
pub fn has_request_options(&self) -> bool {
self.request_options.is_some()
}
pub fn set_request_options(&mut self, v: RequestOptions) {
self.request_options = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_request_options(&mut self) -> &mut RequestOptions {
if self.request_options.is_none() {
self.request_options.set_default();
}
self.request_options.as_mut().unwrap()
}
pub fn take_request_options(&mut self) -> RequestOptions {
self.request_options.take().unwrap_or_else(|| RequestOptions::new())
}
pub fn get_mutation_groups(&self) -> &[BatchWriteRequest_MutationGroup] {
&self.mutation_groups
}
pub fn clear_mutation_groups(&mut self) {
self.mutation_groups.clear();
}
pub fn set_mutation_groups(&mut self, v: ::protobuf::RepeatedField<BatchWriteRequest_MutationGroup>) {
self.mutation_groups = v;
}
pub fn mut_mutation_groups(&mut self) -> &mut ::protobuf::RepeatedField<BatchWriteRequest_MutationGroup> {
&mut self.mutation_groups
}
pub fn take_mutation_groups(&mut self) -> ::protobuf::RepeatedField<BatchWriteRequest_MutationGroup> {
::std::mem::replace(&mut self.mutation_groups, ::protobuf::RepeatedField::new())
}
}
impl ::protobuf::Message for BatchWriteRequest {
fn is_initialized(&self) -> bool {
for v in &self.request_options {
if !v.is_initialized() {
return false;
}
};
for v in &self.mutation_groups {
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_proto3_string_into(wire_type, is, &mut self.session)?;
},
3 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.request_options)?;
},
4 => {
::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.mutation_groups)?;
},
_ => {
::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 !self.session.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.session);
}
if let Some(ref v) = self.request_options.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
for value in &self.mutation_groups {
let len = value.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 !self.session.is_empty() {
os.write_string(1, &self.session)?;
}
if let Some(ref v) = self.request_options.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)?;
}
for v in &self.mutation_groups {
os.write_tag(4, ::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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> BatchWriteRequest {
BatchWriteRequest::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"session",
|m: &BatchWriteRequest| { &m.session },
|m: &mut BatchWriteRequest| { &mut m.session },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<RequestOptions>>(
"request_options",
|m: &BatchWriteRequest| { &m.request_options },
|m: &mut BatchWriteRequest| { &mut m.request_options },
));
fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<BatchWriteRequest_MutationGroup>>(
"mutation_groups",
|m: &BatchWriteRequest| { &m.mutation_groups },
|m: &mut BatchWriteRequest| { &mut m.mutation_groups },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<BatchWriteRequest>(
"BatchWriteRequest",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static BatchWriteRequest {
static instance: ::protobuf::rt::LazyV2<BatchWriteRequest> = ::protobuf::rt::LazyV2::INIT;
instance.get(BatchWriteRequest::new)
}
}
impl ::protobuf::Clear for BatchWriteRequest {
fn clear(&mut self) {
self.session.clear();
self.request_options.clear();
self.mutation_groups.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for BatchWriteRequest {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for BatchWriteRequest {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct BatchWriteRequest_MutationGroup {
pub mutations: ::protobuf::RepeatedField<super::mutation::Mutation>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a BatchWriteRequest_MutationGroup {
fn default() -> &'a BatchWriteRequest_MutationGroup {
<BatchWriteRequest_MutationGroup as ::protobuf::Message>::default_instance()
}
}
impl BatchWriteRequest_MutationGroup {
pub fn new() -> BatchWriteRequest_MutationGroup {
::std::default::Default::default()
}
pub fn get_mutations(&self) -> &[super::mutation::Mutation] {
&self.mutations
}
pub fn clear_mutations(&mut self) {
self.mutations.clear();
}
pub fn set_mutations(&mut self, v: ::protobuf::RepeatedField<super::mutation::Mutation>) {
self.mutations = v;
}
pub fn mut_mutations(&mut self) -> &mut ::protobuf::RepeatedField<super::mutation::Mutation> {
&mut self.mutations
}
pub fn take_mutations(&mut self) -> ::protobuf::RepeatedField<super::mutation::Mutation> {
::std::mem::replace(&mut self.mutations, ::protobuf::RepeatedField::new())
}
}
impl ::protobuf::Message for BatchWriteRequest_MutationGroup {
fn is_initialized(&self) -> bool {
for v in &self.mutations {
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_repeated_message_into(wire_type, is, &mut self.mutations)?;
},
_ => {
::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;
for value in &self.mutations {
let len = value.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<()> {
for v in &self.mutations {
os.write_tag(1, ::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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> BatchWriteRequest_MutationGroup {
BatchWriteRequest_MutationGroup::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::mutation::Mutation>>(
"mutations",
|m: &BatchWriteRequest_MutationGroup| { &m.mutations },
|m: &mut BatchWriteRequest_MutationGroup| { &mut m.mutations },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<BatchWriteRequest_MutationGroup>(
"BatchWriteRequest.MutationGroup",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static BatchWriteRequest_MutationGroup {
static instance: ::protobuf::rt::LazyV2<BatchWriteRequest_MutationGroup> = ::protobuf::rt::LazyV2::INIT;
instance.get(BatchWriteRequest_MutationGroup::new)
}
}
impl ::protobuf::Clear for BatchWriteRequest_MutationGroup {
fn clear(&mut self) {
self.mutations.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for BatchWriteRequest_MutationGroup {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for BatchWriteRequest_MutationGroup {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct BatchWriteResponse {
pub indexes: ::std::vec::Vec<i32>,
pub status: ::protobuf::SingularPtrField<super::status::Status>,
pub commit_timestamp: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a BatchWriteResponse {
fn default() -> &'a BatchWriteResponse {
<BatchWriteResponse as ::protobuf::Message>::default_instance()
}
}
impl BatchWriteResponse {
pub fn new() -> BatchWriteResponse {
::std::default::Default::default()
}
pub fn get_indexes(&self) -> &[i32] {
&self.indexes
}
pub fn clear_indexes(&mut self) {
self.indexes.clear();
}
pub fn set_indexes(&mut self, v: ::std::vec::Vec<i32>) {
self.indexes = v;
}
pub fn mut_indexes(&mut self) -> &mut ::std::vec::Vec<i32> {
&mut self.indexes
}
pub fn take_indexes(&mut self) -> ::std::vec::Vec<i32> {
::std::mem::replace(&mut self.indexes, ::std::vec::Vec::new())
}
pub fn get_status(&self) -> &super::status::Status {
self.status.as_ref().unwrap_or_else(|| <super::status::Status as ::protobuf::Message>::default_instance())
}
pub fn clear_status(&mut self) {
self.status.clear();
}
pub fn has_status(&self) -> bool {
self.status.is_some()
}
pub fn set_status(&mut self, v: super::status::Status) {
self.status = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_status(&mut self) -> &mut super::status::Status {
if self.status.is_none() {
self.status.set_default();
}
self.status.as_mut().unwrap()
}
pub fn take_status(&mut self) -> super::status::Status {
self.status.take().unwrap_or_else(|| super::status::Status::new())
}
pub fn get_commit_timestamp(&self) -> &::protobuf::well_known_types::Timestamp {
self.commit_timestamp.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
}
pub fn clear_commit_timestamp(&mut self) {
self.commit_timestamp.clear();
}
pub fn has_commit_timestamp(&self) -> bool {
self.commit_timestamp.is_some()
}
pub fn set_commit_timestamp(&mut self, v: ::protobuf::well_known_types::Timestamp) {
self.commit_timestamp = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_commit_timestamp(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
if self.commit_timestamp.is_none() {
self.commit_timestamp.set_default();
}
self.commit_timestamp.as_mut().unwrap()
}
pub fn take_commit_timestamp(&mut self) -> ::protobuf::well_known_types::Timestamp {
self.commit_timestamp.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
}
}
impl ::protobuf::Message for BatchWriteResponse {
fn is_initialized(&self) -> bool {
for v in &self.status {
if !v.is_initialized() {
return false;
}
};
for v in &self.commit_timestamp {
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_repeated_int32_into(wire_type, is, &mut self.indexes)?;
},
2 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.status)?;
},
3 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.commit_timestamp)?;
},
_ => {
::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;
for value in &self.indexes {
my_size += ::protobuf::rt::value_size(1, *value, ::protobuf::wire_format::WireTypeVarint);
};
if let Some(ref v) = self.status.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
if let Some(ref v) = self.commit_timestamp.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<()> {
for v in &self.indexes {
os.write_int32(1, *v)?;
};
if let Some(ref v) = self.status.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)?;
}
if let Some(ref v) = self.commit_timestamp.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) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> BatchWriteResponse {
BatchWriteResponse::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
"indexes",
|m: &BatchWriteResponse| { &m.indexes },
|m: &mut BatchWriteResponse| { &mut m.indexes },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::status::Status>>(
"status",
|m: &BatchWriteResponse| { &m.status },
|m: &mut BatchWriteResponse| { &mut m.status },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
"commit_timestamp",
|m: &BatchWriteResponse| { &m.commit_timestamp },
|m: &mut BatchWriteResponse| { &mut m.commit_timestamp },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<BatchWriteResponse>(
"BatchWriteResponse",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static BatchWriteResponse {
static instance: ::protobuf::rt::LazyV2<BatchWriteResponse> = ::protobuf::rt::LazyV2::INIT;
instance.get(BatchWriteResponse::new)
}
}
impl ::protobuf::Clear for BatchWriteResponse {
fn clear(&mut self) {
self.indexes.clear();
self.status.clear();
self.commit_timestamp.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for BatchWriteResponse {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for BatchWriteResponse {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
static file_descriptor_proto_data: &'static [u8] = b"\
\n\x1fgoogle/spanner/v1/spanner.proto\x12\x11google.spanner.v1\x1a\x1cgo\
ogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/\
api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1bgoogle/\
protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/p\
rotobuf/timestamp.proto\x1a\x17google/rpc/status.proto\x1a'google/spanne\
r/v1/commit_response.proto\x1a\x1cgoogle/spanner/v1/keys.proto\x1a\x20go\
ogle/spanner/v1/mutation.proto\x1a\"google/spanner/v1/result_set.proto\
\x1a#google/spanner/v1/transaction.proto\x1a\x1cgoogle/spanner/v1/type.p\
rotoP\x08\"\x96\x01\n\x14CreateSessionRequest\x12C\n\x08database\x18\x01\
\x20\x01(\tR\x08databaseB'\xfaA!\n\x1fspanner.googleapis.com/Database\
\xe0A\x02\x129\n\x07session\x18\x02\x20\x01(\x0b2\x1a.google.spanner.v1.\
SessionR\x07sessionB\x03\xe0A\x02\"\xd2\x01\n\x1aBatchCreateSessionsRequ\
est\x12C\n\x08database\x18\x01\x20\x01(\tR\x08databaseB'\xfaA!\n\x1fspan\
ner.googleapis.com/Database\xe0A\x02\x12E\n\x10session_template\x18\x02\
\x20\x01(\x0b2\x1a.google.spanner.v1.SessionR\x0fsessionTemplate\x12(\n\
\rsession_count\x18\x03\x20\x01(\x05R\x0csessionCountB\x03\xe0A\x02\"S\n\
\x1bBatchCreateSessionsResponse\x124\n\x07session\x18\x01\x20\x03(\x0b2\
\x1a.google.spanner.v1.SessionR\x07session\"\xd4\x03\n\x07Session\x12\
\x17\n\x04name\x18\x01\x20\x01(\tR\x04nameB\x03\xe0A\x03\x12>\n\x06label\
s\x18\x02\x20\x03(\x0b2&.google.spanner.v1.Session.LabelsEntryR\x06label\
s\x12@\n\x0bcreate_time\x18\x03\x20\x01(\x0b2\x1a.google.protobuf.Timest\
ampR\ncreateTimeB\x03\xe0A\x03\x12Z\n\x19approximate_last_use_time\x18\
\x04\x20\x01(\x0b2\x1a.google.protobuf.TimestampR\x16approximateLastUseT\
imeB\x03\xe0A\x03\x12!\n\x0ccreator_role\x18\x05\x20\x01(\tR\x0bcreatorR\
ole\x1a9\n\x0bLabelsEntry\x12\x10\n\x03key\x18\x01\x20\x01(\tR\x03key\
\x12\x14\n\x05value\x18\x02\x20\x01(\tR\x05value:\x028\x01:t\xeaAq\n\x1e\
spanner.googleapis.com/Session\x12Oprojects/{project}/instances/{instanc\
e}/databases/{database}/sessions/{session}\"O\n\x11GetSessionRequest\x12\
:\n\x04name\x18\x01\x20\x01(\tR\x04nameB&\xfaA\x20\n\x1espanner.googleap\
is.com/Session\xe0A\x02\"\xae\x01\n\x13ListSessionsRequest\x12C\n\x08dat\
abase\x18\x01\x20\x01(\tR\x08databaseB'\xfaA!\n\x1fspanner.googleapis.co\
m/Database\xe0A\x02\x12\x1b\n\tpage_size\x18\x02\x20\x01(\x05R\x08pageSi\
ze\x12\x1d\n\npage_token\x18\x03\x20\x01(\tR\tpageToken\x12\x16\n\x06fil\
ter\x18\x04\x20\x01(\tR\x06filter\"v\n\x14ListSessionsResponse\x126\n\
\x08sessions\x18\x01\x20\x03(\x0b2\x1a.google.spanner.v1.SessionR\x08ses\
sions\x12&\n\x0fnext_page_token\x18\x02\x20\x01(\tR\rnextPageToken\"R\n\
\x14DeleteSessionRequest\x12:\n\x04name\x18\x01\x20\x01(\tR\x04nameB&\
\xfaA\x20\n\x1espanner.googleapis.com/Session\xe0A\x02\"\x82\x02\n\x0eRe\
questOptions\x12F\n\x08priority\x18\x01\x20\x01(\x0e2*.google.spanner.v1\
.RequestOptions.PriorityR\x08priority\x12\x1f\n\x0brequest_tag\x18\x02\
\x20\x01(\tR\nrequestTag\x12'\n\x0ftransaction_tag\x18\x03\x20\x01(\tR\
\x0etransactionTag\"^\n\x08Priority\x12\x18\n\x14PRIORITY_UNSPECIFIED\
\x10\0\x12\x10\n\x0cPRIORITY_LOW\x10\x01\x12\x13\n\x0fPRIORITY_MEDIUM\
\x10\x02\x12\x11\n\rPRIORITY_HIGH\x10\x03\"\xc8\x07\n\x11ExecuteSqlReque\
st\x12@\n\x07session\x18\x01\x20\x01(\tR\x07sessionB&\xfaA\x20\n\x1espan\
ner.googleapis.com/Session\xe0A\x02\x12H\n\x0btransaction\x18\x02\x20\
\x01(\x0b2&.google.spanner.v1.TransactionSelectorR\x0btransaction\x12\
\x15\n\x03sql\x18\x03\x20\x01(\tR\x03sqlB\x03\xe0A\x02\x12/\n\x06params\
\x18\x04\x20\x01(\x0b2\x17.google.protobuf.StructR\x06params\x12U\n\x0bp\
aram_types\x18\x05\x20\x03(\x0b24.google.spanner.v1.ExecuteSqlRequest.Pa\
ramTypesEntryR\nparamTypes\x12!\n\x0cresume_token\x18\x06\x20\x01(\x0cR\
\x0bresumeToken\x12M\n\nquery_mode\x18\x07\x20\x01(\x0e2..google.spanner\
.v1.ExecuteSqlRequest.QueryModeR\tqueryMode\x12'\n\x0fpartition_token\
\x18\x08\x20\x01(\x0cR\x0epartitionToken\x12\x14\n\x05seqno\x18\t\x20\
\x01(\x03R\x05seqno\x12V\n\rquery_options\x18\n\x20\x01(\x0b21.google.sp\
anner.v1.ExecuteSqlRequest.QueryOptionsR\x0cqueryOptions\x12J\n\x0freque\
st_options\x18\x0b\x20\x01(\x0b2!.google.spanner.v1.RequestOptionsR\x0er\
equestOptions\x12,\n\x12data_boost_enabled\x18\x10\x20\x01(\x08R\x10data\
BoostEnabled\x1a}\n\x0cQueryOptions\x12+\n\x11optimizer_version\x18\x01\
\x20\x01(\tR\x10optimizerVersion\x12@\n\x1coptimizer_statistics_package\
\x18\x02\x20\x01(\tR\x1aoptimizerStatisticsPackage\x1aV\n\x0fParamTypesE\
ntry\x12\x10\n\x03key\x18\x01\x20\x01(\tR\x03key\x12-\n\x05value\x18\x02\
\x20\x01(\x0b2\x17.google.spanner.v1.TypeR\x05value:\x028\x01\".\n\tQuer\
yMode\x12\n\n\x06NORMAL\x10\0\x12\x08\n\x04PLAN\x10\x01\x12\x0b\n\x07PRO\
FILE\x10\x02\"\xfe\x04\n\x16ExecuteBatchDmlRequest\x12@\n\x07session\x18\
\x01\x20\x01(\tR\x07sessionB&\xfaA\x20\n\x1espanner.googleapis.com/Sessi\
on\xe0A\x02\x12M\n\x0btransaction\x18\x02\x20\x01(\x0b2&.google.spanner.\
v1.TransactionSelectorR\x0btransactionB\x03\xe0A\x02\x12X\n\nstatements\
\x18\x03\x20\x03(\x0b23.google.spanner.v1.ExecuteBatchDmlRequest.Stateme\
ntR\nstatementsB\x03\xe0A\x02\x12\x19\n\x05seqno\x18\x04\x20\x01(\x03R\
\x05seqnoB\x03\xe0A\x02\x12J\n\x0frequest_options\x18\x05\x20\x01(\x0b2!\
.google.spanner.v1.RequestOptionsR\x0erequestOptions\x1a\x91\x02\n\tStat\
ement\x12\x15\n\x03sql\x18\x01\x20\x01(\tR\x03sqlB\x03\xe0A\x02\x12/\n\
\x06params\x18\x02\x20\x01(\x0b2\x17.google.protobuf.StructR\x06params\
\x12d\n\x0bparam_types\x18\x03\x20\x03(\x0b2C.google.spanner.v1.ExecuteB\
atchDmlRequest.Statement.ParamTypesEntryR\nparamTypes\x1aV\n\x0fParamTyp\
esEntry\x12\x10\n\x03key\x18\x01\x20\x01(\tR\x03key\x12-\n\x05value\x18\
\x02\x20\x01(\x0b2\x17.google.spanner.v1.TypeR\x05value:\x028\x01\"\x84\
\x01\n\x17ExecuteBatchDmlResponse\x12=\n\x0bresult_sets\x18\x01\x20\x03(\
\x0b2\x1c.google.spanner.v1.ResultSetR\nresultSets\x12*\n\x06status\x18\
\x02\x20\x01(\x0b2\x12.google.rpc.StatusR\x06status\"k\n\x10PartitionOpt\
ions\x120\n\x14partition_size_bytes\x18\x01\x20\x01(\x03R\x12partitionSi\
zeBytes\x12%\n\x0emax_partitions\x18\x02\x20\x01(\x03R\rmaxPartitions\"\
\xf0\x03\n\x15PartitionQueryRequest\x12@\n\x07session\x18\x01\x20\x01(\t\
R\x07sessionB&\xfaA\x20\n\x1espanner.googleapis.com/Session\xe0A\x02\x12\
H\n\x0btransaction\x18\x02\x20\x01(\x0b2&.google.spanner.v1.TransactionS\
electorR\x0btransaction\x12\x15\n\x03sql\x18\x03\x20\x01(\tR\x03sqlB\x03\
\xe0A\x02\x12/\n\x06params\x18\x04\x20\x01(\x0b2\x17.google.protobuf.Str\
uctR\x06params\x12Y\n\x0bparam_types\x18\x05\x20\x03(\x0b28.google.spann\
er.v1.PartitionQueryRequest.ParamTypesEntryR\nparamTypes\x12P\n\x11parti\
tion_options\x18\x06\x20\x01(\x0b2#.google.spanner.v1.PartitionOptionsR\
\x10partitionOptions\x1aV\n\x0fParamTypesEntry\x12\x10\n\x03key\x18\x01\
\x20\x01(\tR\x03key\x12-\n\x05value\x18\x02\x20\x01(\x0b2\x17.google.spa\
nner.v1.TypeR\x05value:\x028\x01\"\xf8\x02\n\x14PartitionReadRequest\x12\
@\n\x07session\x18\x01\x20\x01(\tR\x07sessionB&\xfaA\x20\n\x1espanner.go\
ogleapis.com/Session\xe0A\x02\x12H\n\x0btransaction\x18\x02\x20\x01(\x0b\
2&.google.spanner.v1.TransactionSelectorR\x0btransaction\x12\x19\n\x05ta\
ble\x18\x03\x20\x01(\tR\x05tableB\x03\xe0A\x02\x12\x14\n\x05index\x18\
\x04\x20\x01(\tR\x05index\x12\x18\n\x07columns\x18\x05\x20\x03(\tR\x07co\
lumns\x127\n\x07key_set\x18\x06\x20\x01(\x0b2\x19.google.spanner.v1.KeyS\
etR\x06keySetB\x03\xe0A\x02\x12P\n\x11partition_options\x18\t\x20\x01(\
\x0b2#.google.spanner.v1.PartitionOptionsR\x10partitionOptions\"4\n\tPar\
tition\x12'\n\x0fpartition_token\x18\x01\x20\x01(\x0cR\x0epartitionToken\
\"\x93\x01\n\x11PartitionResponse\x12<\n\npartitions\x18\x01\x20\x03(\
\x0b2\x1c.google.spanner.v1.PartitionR\npartitions\x12@\n\x0btransaction\
\x18\x02\x20\x01(\x0b2\x1e.google.spanner.v1.TransactionR\x0btransaction\
\"\xfe\x03\n\x0bReadRequest\x12@\n\x07session\x18\x01\x20\x01(\tR\x07ses\
sionB&\xfaA\x20\n\x1espanner.googleapis.com/Session\xe0A\x02\x12H\n\x0bt\
ransaction\x18\x02\x20\x01(\x0b2&.google.spanner.v1.TransactionSelectorR\
\x0btransaction\x12\x19\n\x05table\x18\x03\x20\x01(\tR\x05tableB\x03\xe0\
A\x02\x12\x14\n\x05index\x18\x04\x20\x01(\tR\x05index\x12\x1d\n\x07colum\
ns\x18\x05\x20\x03(\tR\x07columnsB\x03\xe0A\x02\x127\n\x07key_set\x18\
\x06\x20\x01(\x0b2\x19.google.spanner.v1.KeySetR\x06keySetB\x03\xe0A\x02\
\x12\x14\n\x05limit\x18\x08\x20\x01(\x03R\x05limit\x12!\n\x0cresume_toke\
n\x18\t\x20\x01(\x0cR\x0bresumeToken\x12'\n\x0fpartition_token\x18\n\x20\
\x01(\x0cR\x0epartitionToken\x12J\n\x0frequest_options\x18\x0b\x20\x01(\
\x0b2!.google.spanner.v1.RequestOptionsR\x0erequestOptions\x12,\n\x12dat\
a_boost_enabled\x18\x0f\x20\x01(\x08R\x10dataBoostEnabled\"\xed\x01\n\
\x17BeginTransactionRequest\x12@\n\x07session\x18\x01\x20\x01(\tR\x07ses\
sionB&\xfaA\x20\n\x1espanner.googleapis.com/Session\xe0A\x02\x12D\n\x07o\
ptions\x18\x02\x20\x01(\x0b2%.google.spanner.v1.TransactionOptionsR\x07o\
ptionsB\x03\xe0A\x02\x12J\n\x0frequest_options\x18\x03\x20\x01(\x0b2!.go\
ogle.spanner.v1.RequestOptionsR\x0erequestOptions\"\x9f\x03\n\rCommitReq\
uest\x12@\n\x07session\x18\x01\x20\x01(\tR\x07sessionB&\xfaA\x20\n\x1esp\
anner.googleapis.com/Session\xe0A\x02\x12'\n\x0etransaction_id\x18\x02\
\x20\x01(\x0cH\0R\rtransactionId\x12]\n\x16single_use_transaction\x18\
\x03\x20\x01(\x0b2%.google.spanner.v1.TransactionOptionsH\0R\x14singleUs\
eTransaction\x129\n\tmutations\x18\x04\x20\x03(\x0b2\x1b.google.spanner.\
v1.MutationR\tmutations\x12.\n\x13return_commit_stats\x18\x05\x20\x01(\
\x08R\x11returnCommitStats\x12J\n\x0frequest_options\x18\x06\x20\x01(\
\x0b2!.google.spanner.v1.RequestOptionsR\x0erequestOptionsB\r\n\x0btrans\
action\"\x7f\n\x0fRollbackRequest\x12@\n\x07session\x18\x01\x20\x01(\tR\
\x07sessionB&\xfaA\x20\n\x1espanner.googleapis.com/Session\xe0A\x02\x12*\
\n\x0etransaction_id\x18\x02\x20\x01(\x0cR\rtransactionIdB\x03\xe0A\x02\
\"\xd4\x02\n\x11BatchWriteRequest\x12@\n\x07session\x18\x01\x20\x01(\tR\
\x07sessionB&\xfaA\x20\n\x1espanner.googleapis.com/Session\xe0A\x02\x12J\
\n\x0frequest_options\x18\x03\x20\x01(\x0b2!.google.spanner.v1.RequestOp\
tionsR\x0erequestOptions\x12`\n\x0fmutation_groups\x18\x04\x20\x03(\x0b2\
2.google.spanner.v1.BatchWriteRequest.MutationGroupR\x0emutationGroupsB\
\x03\xe0A\x02\x1aO\n\rMutationGroup\x12>\n\tmutations\x18\x01\x20\x03(\
\x0b2\x1b.google.spanner.v1.MutationR\tmutationsB\x03\xe0A\x02\"\xa1\x01\
\n\x12BatchWriteResponse\x12\x18\n\x07indexes\x18\x01\x20\x03(\x05R\x07i\
ndexes\x12*\n\x06status\x18\x02\x20\x01(\x0b2\x12.google.rpc.StatusR\x06\
status\x12E\n\x10commit_timestamp\x18\x03\x20\x01(\x0b2\x1a.google.proto\
buf.TimestampR\x0fcommitTimestamp2\x8b\x18\n\x07Spanner\x12\xa6\x01\n\rC\
reateSession\x12'.google.spanner.v1.CreateSessionRequest\x1a\x1a.google.\
spanner.v1.Session\"P\x82\xd3\xe4\x93\x02?\":/v1/{database=projects/*/in\
stances/*/databases/*}/sessions:\x01*\xdaA\x08database\x12\xe0\x01\n\x13\
BatchCreateSessions\x12-.google.spanner.v1.BatchCreateSessionsRequest\
\x1a..google.spanner.v1.BatchCreateSessionsResponse\"j\x82\xd3\xe4\x93\
\x02K\"F/v1/{database=projects/*/instances/*/databases/*}/sessions:batch\
Create:\x01*\xdaA\x16database,session_count\x12\x97\x01\n\nGetSession\
\x12$.google.spanner.v1.GetSessionRequest\x1a\x1a.google.spanner.v1.Sess\
ion\"G\x82\xd3\xe4\x93\x02:\x128/v1/{name=projects/*/instances/*/databas\
es/*/sessions/*}\xdaA\x04name\x12\xae\x01\n\x0cListSessions\x12&.google.\
spanner.v1.ListSessionsRequest\x1a'.google.spanner.v1.ListSessionsRespon\
se\"M\x82\xd3\xe4\x93\x02<\x12:/v1/{database=projects/*/instances/*/data\
bases/*}/sessions\xdaA\x08database\x12\x99\x01\n\rDeleteSession\x12'.goo\
gle.spanner.v1.DeleteSessionRequest\x1a\x16.google.protobuf.Empty\"G\x82\
\xd3\xe4\x93\x02:*8/v1/{name=projects/*/instances/*/databases/*/sessions\
/*}\xdaA\x04name\x12\xa3\x01\n\nExecuteSql\x12$.google.spanner.v1.Execut\
eSqlRequest\x1a\x1c.google.spanner.v1.ResultSet\"Q\x82\xd3\xe4\x93\x02K\
\"F/v1/{session=projects/*/instances/*/databases/*/sessions/*}:executeSq\
l:\x01*\x12\xbe\x01\n\x13ExecuteStreamingSql\x12$.google.spanner.v1.Exec\
uteSqlRequest\x1a#.google.spanner.v1.PartialResultSet\"Z\x82\xd3\xe4\x93\
\x02T\"O/v1/{session=projects/*/instances/*/databases/*/sessions/*}:exec\
uteStreamingSql:\x01*0\x01\x12\xc0\x01\n\x0fExecuteBatchDml\x12).google.\
spanner.v1.ExecuteBatchDmlRequest\x1a*.google.spanner.v1.ExecuteBatchDml\
Response\"V\x82\xd3\xe4\x93\x02P\"K/v1/{session=projects/*/instances/*/d\
atabases/*/sessions/*}:executeBatchDml:\x01*\x12\x91\x01\n\x04Read\x12\
\x1e.google.spanner.v1.ReadRequest\x1a\x1c.google.spanner.v1.ResultSet\"\
K\x82\xd3\xe4\x93\x02E\"@/v1/{session=projects/*/instances/*/databases/*\
/sessions/*}:read:\x01*\x12\xac\x01\n\rStreamingRead\x12\x1e.google.span\
ner.v1.ReadRequest\x1a#.google.spanner.v1.PartialResultSet\"T\x82\xd3\
\xe4\x93\x02N\"I/v1/{session=projects/*/instances/*/databases/*/sessions\
/*}:streamingRead:\x01*0\x01\x12\xc9\x01\n\x10BeginTransaction\x12*.goog\
le.spanner.v1.BeginTransactionRequest\x1a\x1e.google.spanner.v1.Transact\
ion\"i\x82\xd3\xe4\x93\x02Q\"L/v1/{session=projects/*/instances/*/databa\
ses/*/sessions/*}:beginTransaction:\x01*\xdaA\x0fsession,options\x12\xeb\
\x01\n\x06Commit\x12\x20.google.spanner.v1.CommitRequest\x1a!.google.spa\
nner.v1.CommitResponse\"\x9b\x01\x82\xd3\xe4\x93\x02G\"B/v1/{session=pro\
jects/*/instances/*/databases/*/sessions/*}:commit:\x01*\xdaA\x20session\
,transaction_id,mutations\xdaA(session,single_use_transaction,mutations\
\x12\xb0\x01\n\x08Rollback\x12\".google.spanner.v1.RollbackRequest\x1a\
\x16.google.protobuf.Empty\"h\x82\xd3\xe4\x93\x02I\"D/v1/{session=projec\
ts/*/instances/*/databases/*/sessions/*}:rollback:\x01*\xdaA\x16session,\
transaction_id\x12\xb7\x01\n\x0ePartitionQuery\x12(.google.spanner.v1.Pa\
rtitionQueryRequest\x1a$.google.spanner.v1.PartitionResponse\"U\x82\xd3\
\xe4\x93\x02O\"J/v1/{session=projects/*/instances/*/databases/*/sessions\
/*}:partitionQuery:\x01*\x12\xb4\x01\n\rPartitionRead\x12'.google.spanne\
r.v1.PartitionReadRequest\x1a$.google.spanner.v1.PartitionResponse\"T\
\x82\xd3\xe4\x93\x02N\"I/v1/{session=projects/*/instances/*/databases/*/\
sessions/*}:partitionRead:\x01*\x12\xc8\x01\n\nBatchWrite\x12$.google.sp\
anner.v1.BatchWriteRequest\x1a%.google.spanner.v1.BatchWriteResponse\"k\
\x82\xd3\xe4\x93\x02K\"F/v1/{session=projects/*/instances/*/databases/*/\
sessions/*}:batchWrite:\x01*\xdaA\x17session,mutation_groups0\x01\x1aw\
\xd2A[https://www.googleapis.com/auth/cloud-platform,https://www.googlea\
pis.com/auth/spanner.data\xcaA\x16spanner.googleapis.comB\x91\x02\n\x15c\
om.google.spanner.v1B\x0cSpannerProtoP\x01Z5cloud.google.com/go/spanner/\
apiv1/spannerpb;spannerpb\xaa\x02\x17Google.Cloud.Spanner.V1\xca\x02\x17\
Google\\Cloud\\Spanner\\V1\xea\x02\x1aGoogle::Cloud::Spanner::V1\xeaA_\n\
\x1fspanner.googleapis.com/Database\x12<projects/{project}/instances/{in\
stance}/databases/{database}J\xbb\xe0\x02\n\x07\x12\x05\x0e\0\xce\x08\
\x01\n\xbc\x04\n\x01\x0c\x12\x03\x0e\0\x122\xb1\x04\x20Copyright\x202022\
\x20Google\x20LLC\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\0\x1a\n\t\n\
\x02\x03\0\x12\x03\x12\0&\n\t\n\x02\x03\x01\x12\x03\x13\0!\n\t\n\x02\x03\
\x02\x12\x03\x14\0)\n\t\n\x02\x03\x03\x12\x03\x15\0#\n\t\n\x02\x03\x04\
\x12\x03\x16\0%\n\t\n\x02\x03\x05\x12\x03\x17\0&\n\t\n\x02\x03\x06\x12\
\x03\x18\0)\n\t\n\x02\x03\x07\x12\x03\x19\0!\n\t\n\x02\x03\x08\x12\x03\
\x1a\08\n\t\n\x02\n\0\x12\x03\x1a\x07\r\n\t\n\x02\x03\t\x12\x03\x1b\0&\n\
\t\n\x02\x03\n\x12\x03\x1c\0*\n\t\n\x02\x03\x0b\x12\x03\x1d\0,\n\t\n\x02\
\x03\x0c\x12\x03\x1e\0-\n\t\n\x02\x03\r\x12\x03\x1f\0&\n\x08\n\x01\x08\
\x12\x03!\04\n\t\n\x02\x08%\x12\x03!\04\n\x08\n\x01\x08\x12\x03\"\0L\n\t\
\n\x02\x08\x0b\x12\x03\"\0L\n\x08\n\x01\x08\x12\x03#\0\"\n\t\n\x02\x08\n\
\x12\x03#\0\"\n\x08\n\x01\x08\x12\x03$\0-\n\t\n\x02\x08\x08\x12\x03$\0-\
\n\x08\n\x01\x08\x12\x03%\0.\n\t\n\x02\x08\x01\x12\x03%\0.\n\x08\n\x01\
\x08\x12\x03&\04\n\t\n\x02\x08)\x12\x03&\04\n\x08\n\x01\x08\x12\x03'\03\
\n\t\n\x02\x08-\x12\x03'\03\n\t\n\x01\x08\x12\x04(\0+\x02\n\x0c\n\x04\
\x08\x9d\x08\0\x12\x04(\0+\x02\n\x9d\x01\n\x02\x06\0\x12\x051\0\xb9\x02\
\x01\x1a\x8f\x01\x20Cloud\x20Spanner\x20API\n\n\x20The\x20Cloud\x20Spann\
er\x20API\x20can\x20be\x20used\x20to\x20manage\x20sessions\x20and\x20exe\
cute\n\x20transactions\x20on\x20data\x20stored\x20in\x20Cloud\x20Spanner\
\x20databases.\n\n\n\n\x03\x06\0\x01\x12\x031\x08\x0f\n\n\n\x03\x06\0\
\x03\x12\x032\x02>\n\x0c\n\x05\x06\0\x03\x99\x08\x12\x032\x02>\n\x0b\n\
\x03\x06\0\x03\x12\x043\x0255\n\r\n\x05\x06\0\x03\x9a\x08\x12\x043\x0255\
\n\xe7\x06\n\x04\x06\0\x02\0\x12\x04J\x02P\x03\x1a\xd8\x06\x20Creates\
\x20a\x20new\x20session.\x20A\x20session\x20can\x20be\x20used\x20to\x20p\
erform\n\x20transactions\x20that\x20read\x20and/or\x20modify\x20data\x20\
in\x20a\x20Cloud\x20Spanner\x20database.\n\x20Sessions\x20are\x20meant\
\x20to\x20be\x20reused\x20for\x20many\x20consecutive\n\x20transactions.\
\n\n\x20Sessions\x20can\x20only\x20execute\x20one\x20transaction\x20at\
\x20a\x20time.\x20To\x20execute\n\x20multiple\x20concurrent\x20read-writ\
e/write-only\x20transactions,\x20create\n\x20multiple\x20sessions.\x20No\
te\x20that\x20standalone\x20reads\x20and\x20queries\x20use\x20a\n\x20tra\
nsaction\x20internally,\x20and\x20count\x20toward\x20the\x20one\x20trans\
action\n\x20limit.\n\n\x20Active\x20sessions\x20use\x20additional\x20ser\
ver\x20resources,\x20so\x20it\x20is\x20a\x20good\x20idea\x20to\n\x20dele\
te\x20idle\x20and\x20unneeded\x20sessions.\n\x20Aside\x20from\x20explici\
t\x20deletes,\x20Cloud\x20Spanner\x20may\x20delete\x20sessions\x20for\
\x20which\x20no\n\x20operations\x20are\x20sent\x20for\x20more\x20than\
\x20an\x20hour.\x20If\x20a\x20session\x20is\x20deleted,\n\x20requests\
\x20to\x20it\x20return\x20`NOT_FOUND`.\n\n\x20Idle\x20sessions\x20can\
\x20be\x20kept\x20alive\x20by\x20sending\x20a\x20trivial\x20SQL\x20query\
\n\x20periodically,\x20e.g.,\x20`\"SELECT\x201\"`.\n\n\x0c\n\x05\x06\0\
\x02\0\x01\x12\x03J\x06\x13\n\x0c\n\x05\x06\0\x02\0\x02\x12\x03J\x14(\n\
\x0c\n\x05\x06\0\x02\0\x03\x12\x03J3:\n\r\n\x05\x06\0\x02\0\x04\x12\x04K\
\x04N\x06\n\x11\n\t\x06\0\x02\0\x04\xb0\xca\xbc\"\x12\x04K\x04N\x06\n\
\x0c\n\x05\x06\0\x02\0\x04\x12\x03O\x046\n\x0f\n\x08\x06\0\x02\0\x04\x9b\
\x08\0\x12\x03O\x046\n\xbf\x01\n\x04\x06\0\x02\x01\x12\x04V\x02\\\x03\
\x1a\xb0\x01\x20Creates\x20multiple\x20new\x20sessions.\n\n\x20This\x20A\
PI\x20can\x20be\x20used\x20to\x20initialize\x20a\x20session\x20cache\x20\
on\x20the\x20clients.\n\x20See\x20https://goo.gl/TgSFN2\x20for\x20best\
\x20practices\x20on\x20session\x20cache\x20management.\n\n\x0c\n\x05\x06\
\0\x02\x01\x01\x12\x03V\x06\x19\n\x0c\n\x05\x06\0\x02\x01\x02\x12\x03V\
\x1a4\n\x0c\n\x05\x06\0\x02\x01\x03\x12\x03V?Z\n\r\n\x05\x06\0\x02\x01\
\x04\x12\x04W\x04Z\x06\n\x11\n\t\x06\0\x02\x01\x04\xb0\xca\xbc\"\x12\x04\
W\x04Z\x06\n\x0c\n\x05\x06\0\x02\x01\x04\x12\x03[\x04D\n\x0f\n\x08\x06\0\
\x02\x01\x04\x9b\x08\0\x12\x03[\x04D\n\x9d\x01\n\x04\x06\0\x02\x02\x12\
\x04a\x02f\x03\x1a\x8e\x01\x20Gets\x20a\x20session.\x20Returns\x20`NOT_F\
OUND`\x20if\x20the\x20session\x20does\x20not\x20exist.\n\x20This\x20is\
\x20mainly\x20useful\x20for\x20determining\x20whether\x20a\x20session\
\x20is\x20still\n\x20alive.\n\n\x0c\n\x05\x06\0\x02\x02\x01\x12\x03a\x06\
\x10\n\x0c\n\x05\x06\0\x02\x02\x02\x12\x03a\x11\"\n\x0c\n\x05\x06\0\x02\
\x02\x03\x12\x03a-4\n\r\n\x05\x06\0\x02\x02\x04\x12\x04b\x04d\x06\n\x11\
\n\t\x06\0\x02\x02\x04\xb0\xca\xbc\"\x12\x04b\x04d\x06\n\x0c\n\x05\x06\0\
\x02\x02\x04\x12\x03e\x042\n\x0f\n\x08\x06\0\x02\x02\x04\x9b\x08\0\x12\
\x03e\x042\n7\n\x04\x06\0\x02\x03\x12\x04i\x02n\x03\x1a)\x20Lists\x20all\
\x20sessions\x20in\x20a\x20given\x20database.\n\n\x0c\n\x05\x06\0\x02\
\x03\x01\x12\x03i\x06\x12\n\x0c\n\x05\x06\0\x02\x03\x02\x12\x03i\x13&\n\
\x0c\n\x05\x06\0\x02\x03\x03\x12\x03i1E\n\r\n\x05\x06\0\x02\x03\x04\x12\
\x04j\x04l\x06\n\x11\n\t\x06\0\x02\x03\x04\xb0\xca\xbc\"\x12\x04j\x04l\
\x06\n\x0c\n\x05\x06\0\x02\x03\x04\x12\x03m\x046\n\x0f\n\x08\x06\0\x02\
\x03\x04\x9b\x08\0\x12\x03m\x046\n\xb5\x01\n\x04\x06\0\x02\x04\x12\x04s\
\x02x\x03\x1a\xa6\x01\x20Ends\x20a\x20session,\x20releasing\x20server\
\x20resources\x20associated\x20with\x20it.\x20This\x20will\n\x20asynchro\
nously\x20trigger\x20cancellation\x20of\x20any\x20operations\x20that\x20\
are\x20running\x20with\n\x20this\x20session.\n\n\x0c\n\x05\x06\0\x02\x04\
\x01\x12\x03s\x06\x13\n\x0c\n\x05\x06\0\x02\x04\x02\x12\x03s\x14(\n\x0c\
\n\x05\x06\0\x02\x04\x03\x12\x03s3H\n\r\n\x05\x06\0\x02\x04\x04\x12\x04t\
\x04v\x06\n\x11\n\t\x06\0\x02\x04\x04\xb0\xca\xbc\"\x12\x04t\x04v\x06\n\
\x0c\n\x05\x06\0\x02\x04\x04\x12\x03w\x042\n\x0f\n\x08\x06\0\x02\x04\x04\
\x9b\x08\0\x12\x03w\x042\n\xeb\x04\n\x04\x06\0\x02\x05\x12\x06\x85\x01\
\x02\x8a\x01\x03\x1a\xda\x04\x20Executes\x20an\x20SQL\x20statement,\x20r\
eturning\x20all\x20results\x20in\x20a\x20single\x20reply.\x20This\n\x20m\
ethod\x20cannot\x20be\x20used\x20to\x20return\x20a\x20result\x20set\x20l\
arger\x20than\x2010\x20MiB;\n\x20if\x20the\x20query\x20yields\x20more\
\x20data\x20than\x20that,\x20the\x20query\x20fails\x20with\n\x20a\x20`FA\
ILED_PRECONDITION`\x20error.\n\n\x20Operations\x20inside\x20read-write\
\x20transactions\x20might\x20return\x20`ABORTED`.\x20If\n\x20this\x20occ\
urs,\x20the\x20application\x20should\x20restart\x20the\x20transaction\
\x20from\n\x20the\x20beginning.\x20See\x20[Transaction][google.spanner.v\
1.Transaction]\x20for\x20more\x20details.\n\n\x20Larger\x20result\x20set\
s\x20can\x20be\x20fetched\x20in\x20streaming\x20fashion\x20by\x20calling\
\n\x20[ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSq\
l]\x20instead.\n\n\r\n\x05\x06\0\x02\x05\x01\x12\x04\x85\x01\x06\x10\n\r\
\n\x05\x06\0\x02\x05\x02\x12\x04\x85\x01\x11\"\n\r\n\x05\x06\0\x02\x05\
\x03\x12\x04\x85\x01-6\n\x0f\n\x05\x06\0\x02\x05\x04\x12\x06\x86\x01\x04\
\x89\x01\x06\n\x13\n\t\x06\0\x02\x05\x04\xb0\xca\xbc\"\x12\x06\x86\x01\
\x04\x89\x01\x06\n\xd7\x02\n\x04\x06\0\x02\x06\x12\x06\x91\x01\x02\x96\
\x01\x03\x1a\xc6\x02\x20Like\x20[ExecuteSql][google.spanner.v1.Spanner.E\
xecuteSql],\x20except\x20returns\x20the\x20result\n\x20set\x20as\x20a\
\x20stream.\x20Unlike\x20[ExecuteSql][google.spanner.v1.Spanner.ExecuteS\
ql],\x20there\n\x20is\x20no\x20limit\x20on\x20the\x20size\x20of\x20the\
\x20returned\x20result\x20set.\x20However,\x20no\n\x20individual\x20row\
\x20in\x20the\x20result\x20set\x20can\x20exceed\x20100\x20MiB,\x20and\
\x20no\n\x20column\x20value\x20can\x20exceed\x2010\x20MiB.\n\n\r\n\x05\
\x06\0\x02\x06\x01\x12\x04\x91\x01\x06\x19\n\r\n\x05\x06\0\x02\x06\x02\
\x12\x04\x91\x01\x1a+\n\r\n\x05\x06\0\x02\x06\x06\x12\x04\x91\x016<\n\r\
\n\x05\x06\0\x02\x06\x03\x12\x04\x91\x01=M\n\x0f\n\x05\x06\0\x02\x06\x04\
\x12\x06\x92\x01\x04\x95\x01\x06\n\x13\n\t\x06\0\x02\x06\x04\xb0\xca\xbc\
\"\x12\x06\x92\x01\x04\x95\x01\x06\n\x85\x05\n\x04\x06\0\x02\x07\x12\x06\
\xa3\x01\x02\xa8\x01\x03\x1a\xf4\x04\x20Executes\x20a\x20batch\x20of\x20\
SQL\x20DML\x20statements.\x20This\x20method\x20allows\x20many\x20stateme\
nts\n\x20to\x20be\x20run\x20with\x20lower\x20latency\x20than\x20submitti\
ng\x20them\x20sequentially\x20with\n\x20[ExecuteSql][google.spanner.v1.S\
panner.ExecuteSql].\n\n\x20Statements\x20are\x20executed\x20in\x20sequen\
tial\x20order.\x20A\x20request\x20can\x20succeed\x20even\x20if\n\x20a\
\x20statement\x20fails.\x20The\x20[ExecuteBatchDmlResponse.status][googl\
e.spanner.v1.ExecuteBatchDmlResponse.status]\x20field\x20in\x20the\n\x20\
response\x20provides\x20information\x20about\x20the\x20statement\x20that\
\x20failed.\x20Clients\x20must\n\x20inspect\x20this\x20field\x20to\x20de\
termine\x20whether\x20an\x20error\x20occurred.\n\n\x20Execution\x20stops\
\x20after\x20the\x20first\x20failed\x20statement;\x20the\x20remaining\
\x20statements\n\x20are\x20not\x20executed.\n\n\r\n\x05\x06\0\x02\x07\
\x01\x12\x04\xa3\x01\x06\x15\n\r\n\x05\x06\0\x02\x07\x02\x12\x04\xa3\x01\
\x16,\n\r\n\x05\x06\0\x02\x07\x03\x12\x04\xa3\x017N\n\x0f\n\x05\x06\0\
\x02\x07\x04\x12\x06\xa4\x01\x04\xa7\x01\x06\n\x13\n\t\x06\0\x02\x07\x04\
\xb0\xca\xbc\"\x12\x06\xa4\x01\x04\xa7\x01\x06\n\xb1\x05\n\x04\x06\0\x02\
\x08\x12\x06\xb7\x01\x02\xbc\x01\x03\x1a\xa0\x05\x20Reads\x20rows\x20fro\
m\x20the\x20database\x20using\x20key\x20lookups\x20and\x20scans,\x20as\
\x20a\n\x20simple\x20key/value\x20style\x20alternative\x20to\n\x20[Execu\
teSql][google.spanner.v1.Spanner.ExecuteSql].\x20\x20This\x20method\x20c\
annot\x20be\x20used\x20to\n\x20return\x20a\x20result\x20set\x20larger\
\x20than\x2010\x20MiB;\x20if\x20the\x20read\x20matches\x20more\n\x20data\
\x20than\x20that,\x20the\x20read\x20fails\x20with\x20a\x20`FAILED_PRECON\
DITION`\n\x20error.\n\n\x20Reads\x20inside\x20read-write\x20transactions\
\x20might\x20return\x20`ABORTED`.\x20If\n\x20this\x20occurs,\x20the\x20a\
pplication\x20should\x20restart\x20the\x20transaction\x20from\n\x20the\
\x20beginning.\x20See\x20[Transaction][google.spanner.v1.Transaction]\
\x20for\x20more\x20details.\n\n\x20Larger\x20result\x20sets\x20can\x20be\
\x20yielded\x20in\x20streaming\x20fashion\x20by\x20calling\n\x20[Streami\
ngRead][google.spanner.v1.Spanner.StreamingRead]\x20instead.\n\n\r\n\x05\
\x06\0\x02\x08\x01\x12\x04\xb7\x01\x06\n\n\r\n\x05\x06\0\x02\x08\x02\x12\
\x04\xb7\x01\x0b\x16\n\r\n\x05\x06\0\x02\x08\x03\x12\x04\xb7\x01!*\n\x0f\
\n\x05\x06\0\x02\x08\x04\x12\x06\xb8\x01\x04\xbb\x01\x06\n\x13\n\t\x06\0\
\x02\x08\x04\xb0\xca\xbc\"\x12\x06\xb8\x01\x04\xbb\x01\x06\n\xbf\x02\n\
\x04\x06\0\x02\t\x12\x06\xc3\x01\x02\xc8\x01\x03\x1a\xae\x02\x20Like\x20\
[Read][google.spanner.v1.Spanner.Read],\x20except\x20returns\x20the\x20r\
esult\x20set\x20as\x20a\n\x20stream.\x20Unlike\x20[Read][google.spanner.\
v1.Spanner.Read],\x20there\x20is\x20no\x20limit\x20on\x20the\n\x20size\
\x20of\x20the\x20returned\x20result\x20set.\x20However,\x20no\x20individ\
ual\x20row\x20in\n\x20the\x20result\x20set\x20can\x20exceed\x20100\x20Mi\
B,\x20and\x20no\x20column\x20value\x20can\x20exceed\n\x2010\x20MiB.\n\n\
\r\n\x05\x06\0\x02\t\x01\x12\x04\xc3\x01\x06\x13\n\r\n\x05\x06\0\x02\t\
\x02\x12\x04\xc3\x01\x14\x1f\n\r\n\x05\x06\0\x02\t\x06\x12\x04\xc3\x01*0\
\n\r\n\x05\x06\0\x02\t\x03\x12\x04\xc3\x011A\n\x0f\n\x05\x06\0\x02\t\x04\
\x12\x06\xc4\x01\x04\xc7\x01\x06\n\x13\n\t\x06\0\x02\t\x04\xb0\xca\xbc\"\
\x12\x06\xc4\x01\x04\xc7\x01\x06\n\x87\x02\n\x04\x06\0\x02\n\x12\x06\xce\
\x01\x02\xd4\x01\x03\x1a\xf6\x01\x20Begins\x20a\x20new\x20transaction.\
\x20This\x20step\x20can\x20often\x20be\x20skipped:\n\x20[Read][google.sp\
anner.v1.Spanner.Read],\x20[ExecuteSql][google.spanner.v1.Spanner.Execut\
eSql]\x20and\n\x20[Commit][google.spanner.v1.Spanner.Commit]\x20can\x20b\
egin\x20a\x20new\x20transaction\x20as\x20a\n\x20side-effect.\n\n\r\n\x05\
\x06\0\x02\n\x01\x12\x04\xce\x01\x06\x16\n\r\n\x05\x06\0\x02\n\x02\x12\
\x04\xce\x01\x17.\n\r\n\x05\x06\0\x02\n\x03\x12\x04\xce\x019D\n\x0f\n\
\x05\x06\0\x02\n\x04\x12\x06\xcf\x01\x04\xd2\x01\x06\n\x13\n\t\x06\0\x02\
\n\x04\xb0\xca\xbc\"\x12\x06\xcf\x01\x04\xd2\x01\x06\n\r\n\x05\x06\0\x02\
\n\x04\x12\x04\xd3\x01\x04=\n\x10\n\x08\x06\0\x02\n\x04\x9b\x08\0\x12\
\x04\xd3\x01\x04=\n\x83\x06\n\x04\x06\0\x02\x0b\x12\x06\xe4\x01\x02\xeb\
\x01\x03\x1a\xf2\x05\x20Commits\x20a\x20transaction.\x20The\x20request\
\x20includes\x20the\x20mutations\x20to\x20be\n\x20applied\x20to\x20rows\
\x20in\x20the\x20database.\n\n\x20`Commit`\x20might\x20return\x20an\x20`\
ABORTED`\x20error.\x20This\x20can\x20occur\x20at\x20any\x20time;\n\x20co\
mmonly,\x20the\x20cause\x20is\x20conflicts\x20with\x20concurrent\n\x20tr\
ansactions.\x20However,\x20it\x20can\x20also\x20happen\x20for\x20a\x20va\
riety\x20of\x20other\n\x20reasons.\x20If\x20`Commit`\x20returns\x20`ABOR\
TED`,\x20the\x20caller\x20should\x20re-attempt\n\x20the\x20transaction\
\x20from\x20the\x20beginning,\x20re-using\x20the\x20same\x20session.\n\n\
\x20On\x20very\x20rare\x20occasions,\x20`Commit`\x20might\x20return\x20`\
UNKNOWN`.\x20This\x20can\x20happen,\n\x20for\x20example,\x20if\x20the\
\x20client\x20job\x20experiences\x20a\x201+\x20hour\x20networking\x20fai\
lure.\n\x20At\x20that\x20point,\x20Cloud\x20Spanner\x20has\x20lost\x20tr\
ack\x20of\x20the\x20transaction\x20outcome\x20and\n\x20we\x20recommend\
\x20that\x20you\x20perform\x20another\x20read\x20from\x20the\x20database\
\x20to\x20see\x20the\n\x20state\x20of\x20things\x20as\x20they\x20are\x20\
now.\n\n\r\n\x05\x06\0\x02\x0b\x01\x12\x04\xe4\x01\x06\x0c\n\r\n\x05\x06\
\0\x02\x0b\x02\x12\x04\xe4\x01\r\x1a\n\r\n\x05\x06\0\x02\x0b\x03\x12\x04\
\xe4\x01%3\n\x0f\n\x05\x06\0\x02\x0b\x04\x12\x06\xe5\x01\x04\xe8\x01\x06\
\n\x13\n\t\x06\0\x02\x0b\x04\xb0\xca\xbc\"\x12\x06\xe5\x01\x04\xe8\x01\
\x06\n\r\n\x05\x06\0\x02\x0b\x04\x12\x04\xe9\x01\x04N\n\x10\n\x08\x06\0\
\x02\x0b\x04\x9b\x08\0\x12\x04\xe9\x01\x04N\n\r\n\x05\x06\0\x02\x0b\x04\
\x12\x04\xea\x01\x04V\n\x10\n\x08\x06\0\x02\x0b\x04\x9b\x08\x01\x12\x04\
\xea\x01\x04V\n\xd7\x03\n\x04\x06\0\x02\x0c\x12\x06\xf5\x01\x02\xfb\x01\
\x03\x1a\xc6\x03\x20Rolls\x20back\x20a\x20transaction,\x20releasing\x20a\
ny\x20locks\x20it\x20holds.\x20It\x20is\x20a\x20good\n\x20idea\x20to\x20\
call\x20this\x20for\x20any\x20transaction\x20that\x20includes\x20one\x20\
or\x20more\n\x20[Read][google.spanner.v1.Spanner.Read]\x20or\x20[Execute\
Sql][google.spanner.v1.Spanner.ExecuteSql]\x20requests\x20and\n\x20ultim\
ately\x20decides\x20not\x20to\x20commit.\n\n\x20`Rollback`\x20returns\
\x20`OK`\x20if\x20it\x20successfully\x20aborts\x20the\x20transaction,\
\x20the\n\x20transaction\x20was\x20already\x20aborted,\x20or\x20the\x20t\
ransaction\x20is\x20not\n\x20found.\x20`Rollback`\x20never\x20returns\
\x20`ABORTED`.\n\n\r\n\x05\x06\0\x02\x0c\x01\x12\x04\xf5\x01\x06\x0e\n\r\
\n\x05\x06\0\x02\x0c\x02\x12\x04\xf5\x01\x0f\x1e\n\r\n\x05\x06\0\x02\x0c\
\x03\x12\x04\xf5\x01)>\n\x0f\n\x05\x06\0\x02\x0c\x04\x12\x06\xf6\x01\x04\
\xf9\x01\x06\n\x13\n\t\x06\0\x02\x0c\x04\xb0\xca\xbc\"\x12\x06\xf6\x01\
\x04\xf9\x01\x06\n\r\n\x05\x06\0\x02\x0c\x04\x12\x04\xfa\x01\x04D\n\x10\
\n\x08\x06\0\x02\x0c\x04\x9b\x08\0\x12\x04\xfa\x01\x04D\n\xef\x05\n\x04\
\x06\0\x02\r\x12\x06\x88\x02\x02\x8d\x02\x03\x1a\xde\x05\x20Creates\x20a\
\x20set\x20of\x20partition\x20tokens\x20that\x20can\x20be\x20used\x20to\
\x20execute\x20a\x20query\n\x20operation\x20in\x20parallel.\x20\x20Each\
\x20of\x20the\x20returned\x20partition\x20tokens\x20can\x20be\x20used\n\
\x20by\x20[ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreami\
ngSql]\x20to\x20specify\x20a\x20subset\n\x20of\x20the\x20query\x20result\
\x20to\x20read.\x20\x20The\x20same\x20session\x20and\x20read-only\x20tra\
nsaction\n\x20must\x20be\x20used\x20by\x20the\x20PartitionQueryRequest\
\x20used\x20to\x20create\x20the\n\x20partition\x20tokens\x20and\x20the\
\x20ExecuteSqlRequests\x20that\x20use\x20the\x20partition\x20tokens.\n\n\
\x20Partition\x20tokens\x20become\x20invalid\x20when\x20the\x20session\
\x20used\x20to\x20create\x20them\n\x20is\x20deleted,\x20is\x20idle\x20fo\
r\x20too\x20long,\x20begins\x20a\x20new\x20transaction,\x20or\x20becomes\
\x20too\n\x20old.\x20\x20When\x20any\x20of\x20these\x20happen,\x20it\x20\
is\x20not\x20possible\x20to\x20resume\x20the\x20query,\x20and\n\x20the\
\x20whole\x20operation\x20must\x20be\x20restarted\x20from\x20the\x20begi\
nning.\n\n\r\n\x05\x06\0\x02\r\x01\x12\x04\x88\x02\x06\x14\n\r\n\x05\x06\
\0\x02\r\x02\x12\x04\x88\x02\x15*\n\r\n\x05\x06\0\x02\r\x03\x12\x04\x88\
\x025F\n\x0f\n\x05\x06\0\x02\r\x04\x12\x06\x89\x02\x04\x8c\x02\x06\n\x13\
\n\t\x06\0\x02\r\x04\xb0\xca\xbc\"\x12\x06\x89\x02\x04\x8c\x02\x06\n\x84\
\x07\n\x04\x06\0\x02\x0e\x12\x06\x9c\x02\x02\xa1\x02\x03\x1a\xf3\x06\x20\
Creates\x20a\x20set\x20of\x20partition\x20tokens\x20that\x20can\x20be\
\x20used\x20to\x20execute\x20a\x20read\n\x20operation\x20in\x20parallel.\
\x20\x20Each\x20of\x20the\x20returned\x20partition\x20tokens\x20can\x20b\
e\x20used\n\x20by\x20[StreamingRead][google.spanner.v1.Spanner.Streaming\
Read]\x20to\x20specify\x20a\x20subset\x20of\x20the\x20read\n\x20result\
\x20to\x20read.\x20\x20The\x20same\x20session\x20and\x20read-only\x20tra\
nsaction\x20must\x20be\x20used\x20by\n\x20the\x20PartitionReadRequest\
\x20used\x20to\x20create\x20the\x20partition\x20tokens\x20and\x20the\n\
\x20ReadRequests\x20that\x20use\x20the\x20partition\x20tokens.\x20\x20Th\
ere\x20are\x20no\x20ordering\n\x20guarantees\x20on\x20rows\x20returned\
\x20among\x20the\x20returned\x20partition\x20tokens,\x20or\x20even\n\x20\
within\x20each\x20individual\x20StreamingRead\x20call\x20issued\x20with\
\x20a\x20partition_token.\n\n\x20Partition\x20tokens\x20become\x20invali\
d\x20when\x20the\x20session\x20used\x20to\x20create\x20them\n\x20is\x20d\
eleted,\x20is\x20idle\x20for\x20too\x20long,\x20begins\x20a\x20new\x20tr\
ansaction,\x20or\x20becomes\x20too\n\x20old.\x20\x20When\x20any\x20of\
\x20these\x20happen,\x20it\x20is\x20not\x20possible\x20to\x20resume\x20t\
he\x20read,\x20and\n\x20the\x20whole\x20operation\x20must\x20be\x20resta\
rted\x20from\x20the\x20beginning.\n\n\r\n\x05\x06\0\x02\x0e\x01\x12\x04\
\x9c\x02\x06\x13\n\r\n\x05\x06\0\x02\x0e\x02\x12\x04\x9c\x02\x14(\n\r\n\
\x05\x06\0\x02\x0e\x03\x12\x04\x9c\x023D\n\x0f\n\x05\x06\0\x02\x0e\x04\
\x12\x06\x9d\x02\x04\xa0\x02\x06\n\x13\n\t\x06\0\x02\x0e\x04\xb0\xca\xbc\
\"\x12\x06\x9d\x02\x04\xa0\x02\x06\n\xcd\x07\n\x04\x06\0\x02\x0f\x12\x06\
\xb2\x02\x02\xb8\x02\x03\x1a\xbc\x07\x20Batches\x20the\x20supplied\x20mu\
tation\x20groups\x20in\x20a\x20collection\x20of\x20efficient\n\x20transa\
ctions.\x20All\x20mutations\x20in\x20a\x20group\x20are\x20committed\x20a\
tomically.\x20However,\n\x20mutations\x20across\x20groups\x20can\x20be\
\x20committed\x20non-atomically\x20in\x20an\x20unspecified\n\x20order\
\x20and\x20thus,\x20they\x20must\x20be\x20independent\x20of\x20each\x20o\
ther.\x20Partial\x20failure\x20is\n\x20possible,\x20i.e.,\x20some\x20gro\
ups\x20may\x20have\x20been\x20committed\x20successfully,\x20while\n\x20s\
ome\x20may\x20have\x20failed.\x20The\x20results\x20of\x20individual\x20b\
atches\x20are\x20streamed\x20into\n\x20the\x20response\x20as\x20the\x20b\
atches\x20are\x20applied.\n\n\x20BatchWrite\x20requests\x20are\x20not\
\x20replay\x20protected,\x20meaning\x20that\x20each\x20mutation\n\x20gro\
up\x20may\x20be\x20applied\x20more\x20than\x20once.\x20Replays\x20of\x20\
non-idempotent\x20mutations\n\x20may\x20have\x20undesirable\x20effects.\
\x20For\x20example,\x20replays\x20of\x20an\x20insert\x20mutation\n\x20ma\
y\x20produce\x20an\x20already\x20exists\x20error\x20or\x20if\x20you\x20u\
se\x20generated\x20or\x20commit\n\x20timestamp-based\x20keys,\x20it\x20m\
ay\x20result\x20in\x20additional\x20rows\x20being\x20added\x20to\x20the\
\n\x20mutation's\x20table.\x20We\x20recommend\x20structuring\x20your\x20\
mutation\x20groups\x20to\x20be\n\x20idempotent\x20to\x20avoid\x20this\
\x20issue.\n\n\r\n\x05\x06\0\x02\x0f\x01\x12\x04\xb2\x02\x06\x10\n\r\n\
\x05\x06\0\x02\x0f\x02\x12\x04\xb2\x02\x11\"\n\r\n\x05\x06\0\x02\x0f\x06\
\x12\x04\xb2\x02-3\n\r\n\x05\x06\0\x02\x0f\x03\x12\x04\xb2\x024F\n\x0f\n\
\x05\x06\0\x02\x0f\x04\x12\x06\xb3\x02\x04\xb6\x02\x06\n\x13\n\t\x06\0\
\x02\x0f\x04\xb0\xca\xbc\"\x12\x06\xb3\x02\x04\xb6\x02\x06\n\r\n\x05\x06\
\0\x02\x0f\x04\x12\x04\xb7\x02\x04E\n\x10\n\x08\x06\0\x02\x0f\x04\x9b\
\x08\0\x12\x04\xb7\x02\x04E\nY\n\x02\x04\0\x12\x06\xbc\x02\0\xc7\x02\x01\
\x1aK\x20The\x20request\x20for\x20[CreateSession][google.spanner.v1.Span\
ner.CreateSession].\n\n\x0b\n\x03\x04\0\x01\x12\x04\xbc\x02\x08\x1c\nM\n\
\x04\x04\0\x02\0\x12\x06\xbe\x02\x02\xc3\x02\x04\x1a=\x20Required.\x20Th\
e\x20database\x20in\x20which\x20the\x20new\x20session\x20is\x20created.\
\n\n\r\n\x05\x04\0\x02\0\x05\x12\x04\xbe\x02\x02\x08\n\r\n\x05\x04\0\x02\
\0\x01\x12\x04\xbe\x02\t\x11\n\r\n\x05\x04\0\x02\0\x03\x12\x04\xbe\x02\
\x14\x15\n\x0f\n\x05\x04\0\x02\0\x08\x12\x06\xbe\x02\x16\xc3\x02\x03\n\
\x10\n\x08\x04\0\x02\0\x08\x9c\x08\0\x12\x04\xbf\x02\x04*\n\x11\n\x07\
\x04\0\x02\0\x08\x9f\x08\x12\x06\xc0\x02\x04\xc2\x02\x05\n0\n\x04\x04\0\
\x02\x01\x12\x04\xc6\x02\x02?\x1a\"\x20Required.\x20The\x20session\x20to\
\x20create.\n\n\r\n\x05\x04\0\x02\x01\x06\x12\x04\xc6\x02\x02\t\n\r\n\
\x05\x04\0\x02\x01\x01\x12\x04\xc6\x02\n\x11\n\r\n\x05\x04\0\x02\x01\x03\
\x12\x04\xc6\x02\x14\x15\n\r\n\x05\x04\0\x02\x01\x08\x12\x04\xc6\x02\x16\
>\n\x10\n\x08\x04\0\x02\x01\x08\x9c\x08\0\x12\x04\xc6\x02\x17=\ne\n\x02\
\x04\x01\x12\x06\xca\x02\0\xdc\x02\x01\x1aW\x20The\x20request\x20for\x20\
[BatchCreateSessions][google.spanner.v1.Spanner.BatchCreateSessions].\n\
\n\x0b\n\x03\x04\x01\x01\x12\x04\xca\x02\x08\"\nO\n\x04\x04\x01\x02\0\
\x12\x06\xcc\x02\x02\xd1\x02\x04\x1a?\x20Required.\x20The\x20database\
\x20in\x20which\x20the\x20new\x20sessions\x20are\x20created.\n\n\r\n\x05\
\x04\x01\x02\0\x05\x12\x04\xcc\x02\x02\x08\n\r\n\x05\x04\x01\x02\0\x01\
\x12\x04\xcc\x02\t\x11\n\r\n\x05\x04\x01\x02\0\x03\x12\x04\xcc\x02\x14\
\x15\n\x0f\n\x05\x04\x01\x02\0\x08\x12\x06\xcc\x02\x16\xd1\x02\x03\n\x10\
\n\x08\x04\x01\x02\0\x08\x9c\x08\0\x12\x04\xcd\x02\x04*\n\x11\n\x07\x04\
\x01\x02\0\x08\x9f\x08\x12\x06\xce\x02\x04\xd0\x02\x05\nA\n\x04\x04\x01\
\x02\x01\x12\x04\xd4\x02\x02\x1f\x1a3\x20Parameters\x20to\x20be\x20appli\
ed\x20to\x20each\x20created\x20session.\n\n\r\n\x05\x04\x01\x02\x01\x06\
\x12\x04\xd4\x02\x02\t\n\r\n\x05\x04\x01\x02\x01\x01\x12\x04\xd4\x02\n\
\x1a\n\r\n\x05\x04\x01\x02\x01\x03\x12\x04\xd4\x02\x1d\x1e\n\xe7\x02\n\
\x04\x04\x01\x02\x02\x12\x04\xdb\x02\x02C\x1a\xd8\x02\x20Required.\x20Th\
e\x20number\x20of\x20sessions\x20to\x20be\x20created\x20in\x20this\x20ba\
tch\x20call.\n\x20The\x20API\x20may\x20return\x20fewer\x20than\x20the\
\x20requested\x20number\x20of\x20sessions.\x20If\x20a\n\x20specific\x20n\
umber\x20of\x20sessions\x20are\x20desired,\x20the\x20client\x20can\x20ma\
ke\x20additional\n\x20calls\x20to\x20BatchCreateSessions\x20(adjusting\n\
\x20[session_count][google.spanner.v1.BatchCreateSessionsRequest.session\
_count]\x20as\x20necessary).\n\n\r\n\x05\x04\x01\x02\x02\x05\x12\x04\xdb\
\x02\x02\x07\n\r\n\x05\x04\x01\x02\x02\x01\x12\x04\xdb\x02\x08\x15\n\r\n\
\x05\x04\x01\x02\x02\x03\x12\x04\xdb\x02\x18\x19\n\r\n\x05\x04\x01\x02\
\x02\x08\x12\x04\xdb\x02\x1aB\n\x10\n\x08\x04\x01\x02\x02\x08\x9c\x08\0\
\x12\x04\xdb\x02\x1bA\nf\n\x02\x04\x02\x12\x06\xdf\x02\0\xe2\x02\x01\x1a\
X\x20The\x20response\x20for\x20[BatchCreateSessions][google.spanner.v1.S\
panner.BatchCreateSessions].\n\n\x0b\n\x03\x04\x02\x01\x12\x04\xdf\x02\
\x08#\n-\n\x04\x04\x02\x02\0\x12\x04\xe1\x02\x02\x1f\x1a\x1f\x20The\x20f\
reshly\x20created\x20sessions.\n\n\r\n\x05\x04\x02\x02\0\x04\x12\x04\xe1\
\x02\x02\n\n\r\n\x05\x04\x02\x02\0\x06\x12\x04\xe1\x02\x0b\x12\n\r\n\x05\
\x04\x02\x02\0\x01\x12\x04\xe1\x02\x13\x1a\n\r\n\x05\x04\x02\x02\0\x03\
\x12\x04\xe1\x02\x1d\x1e\n3\n\x02\x04\x03\x12\x06\xe5\x02\0\x82\x03\x01\
\x1a%\x20A\x20session\x20in\x20the\x20Cloud\x20Spanner\x20API.\n\n\x0b\n\
\x03\x04\x03\x01\x12\x04\xe5\x02\x08\x0f\n\r\n\x03\x04\x03\x07\x12\x06\
\xe6\x02\x02\xe9\x02\x04\n\x0f\n\x05\x04\x03\x07\x9d\x08\x12\x06\xe6\x02\
\x02\xe9\x02\x04\nU\n\x04\x04\x03\x02\0\x12\x04\xec\x02\x02>\x1aG\x20Out\
put\x20only.\x20The\x20name\x20of\x20the\x20session.\x20This\x20is\x20al\
ways\x20system-assigned.\n\n\r\n\x05\x04\x03\x02\0\x05\x12\x04\xec\x02\
\x02\x08\n\r\n\x05\x04\x03\x02\0\x01\x12\x04\xec\x02\t\r\n\r\n\x05\x04\
\x03\x02\0\x03\x12\x04\xec\x02\x10\x11\n\r\n\x05\x04\x03\x02\0\x08\x12\
\x04\xec\x02\x12=\n\x10\n\x08\x04\x03\x02\0\x08\x9c\x08\0\x12\x04\xec\
\x02\x13<\n\xd6\x03\n\x04\x04\x03\x02\x01\x12\x04\xf7\x02\x02!\x1a\xc7\
\x03\x20The\x20labels\x20for\x20the\x20session.\n\n\x20\x20*\x20Label\
\x20keys\x20must\x20be\x20between\x201\x20and\x2063\x20characters\x20lon\
g\x20and\x20must\x20conform\x20to\n\x20\x20\x20\x20the\x20following\x20r\
egular\x20expression:\x20`[a-z]([-a-z0-9]*[a-z0-9])?`.\n\x20\x20*\x20Lab\
el\x20values\x20must\x20be\x20between\x200\x20and\x2063\x20characters\
\x20long\x20and\x20must\x20conform\n\x20\x20\x20\x20to\x20the\x20regular\
\x20expression\x20`([a-z]([-a-z0-9]*[a-z0-9])?)?`.\n\x20\x20*\x20No\x20m\
ore\x20than\x2064\x20labels\x20can\x20be\x20associated\x20with\x20a\x20g\
iven\x20session.\n\n\x20See\x20https://goo.gl/xmQnxf\x20for\x20more\x20i\
nformation\x20on\x20and\x20examples\x20of\x20labels.\n\n\r\n\x05\x04\x03\
\x02\x01\x06\x12\x04\xf7\x02\x02\x15\n\r\n\x05\x04\x03\x02\x01\x01\x12\
\x04\xf7\x02\x16\x1c\n\r\n\x05\x04\x03\x02\x01\x03\x12\x04\xf7\x02\x1f\
\x20\nG\n\x04\x04\x03\x02\x02\x12\x04\xfa\x02\x02X\x1a9\x20Output\x20onl\
y.\x20The\x20timestamp\x20when\x20the\x20session\x20is\x20created.\n\n\r\
\n\x05\x04\x03\x02\x02\x06\x12\x04\xfa\x02\x02\x1b\n\r\n\x05\x04\x03\x02\
\x02\x01\x12\x04\xfa\x02\x1c'\n\r\n\x05\x04\x03\x02\x02\x03\x12\x04\xfa\
\x02*+\n\r\n\x05\x04\x03\x02\x02\x08\x12\x04\xfa\x02,W\n\x10\n\x08\x04\
\x03\x02\x02\x08\x9c\x08\0\x12\x04\xfa\x02-V\n\x8d\x01\n\x04\x04\x03\x02\
\x03\x12\x04\xfe\x02\x02f\x1a\x7f\x20Output\x20only.\x20The\x20approxima\
te\x20timestamp\x20when\x20the\x20session\x20is\x20last\x20used.\x20It\
\x20is\n\x20typically\x20earlier\x20than\x20the\x20actual\x20last\x20use\
\x20time.\n\n\r\n\x05\x04\x03\x02\x03\x06\x12\x04\xfe\x02\x02\x1b\n\r\n\
\x05\x04\x03\x02\x03\x01\x12\x04\xfe\x02\x1c5\n\r\n\x05\x04\x03\x02\x03\
\x03\x12\x04\xfe\x0289\n\r\n\x05\x04\x03\x02\x03\x08\x12\x04\xfe\x02:e\n\
\x10\n\x08\x04\x03\x02\x03\x08\x9c\x08\0\x12\x04\xfe\x02;d\n=\n\x04\x04\
\x03\x02\x04\x12\x04\x81\x03\x02\x1a\x1a/\x20The\x20database\x20role\x20\
which\x20created\x20this\x20session.\n\n\r\n\x05\x04\x03\x02\x04\x05\x12\
\x04\x81\x03\x02\x08\n\r\n\x05\x04\x03\x02\x04\x01\x12\x04\x81\x03\t\x15\
\n\r\n\x05\x04\x03\x02\x04\x03\x12\x04\x81\x03\x18\x19\nS\n\x02\x04\x04\
\x12\x06\x85\x03\0\x8d\x03\x01\x1aE\x20The\x20request\x20for\x20[GetSess\
ion][google.spanner.v1.Spanner.GetSession].\n\n\x0b\n\x03\x04\x04\x01\
\x12\x04\x85\x03\x08\x19\n@\n\x04\x04\x04\x02\0\x12\x06\x87\x03\x02\x8c\
\x03\x04\x1a0\x20Required.\x20The\x20name\x20of\x20the\x20session\x20to\
\x20retrieve.\n\n\r\n\x05\x04\x04\x02\0\x05\x12\x04\x87\x03\x02\x08\n\r\
\n\x05\x04\x04\x02\0\x01\x12\x04\x87\x03\t\r\n\r\n\x05\x04\x04\x02\0\x03\
\x12\x04\x87\x03\x10\x11\n\x0f\n\x05\x04\x04\x02\0\x08\x12\x06\x87\x03\
\x12\x8c\x03\x03\n\x10\n\x08\x04\x04\x02\0\x08\x9c\x08\0\x12\x04\x88\x03\
\x04*\n\x11\n\x07\x04\x04\x02\0\x08\x9f\x08\x12\x06\x89\x03\x04\x8b\x03\
\x05\nW\n\x02\x04\x05\x12\x06\x90\x03\0\xad\x03\x01\x1aI\x20The\x20reque\
st\x20for\x20[ListSessions][google.spanner.v1.Spanner.ListSessions].\n\n\
\x0b\n\x03\x04\x05\x01\x12\x04\x90\x03\x08\x1b\nC\n\x04\x04\x05\x02\0\
\x12\x06\x92\x03\x02\x97\x03\x04\x1a3\x20Required.\x20The\x20database\
\x20in\x20which\x20to\x20list\x20sessions.\n\n\r\n\x05\x04\x05\x02\0\x05\
\x12\x04\x92\x03\x02\x08\n\r\n\x05\x04\x05\x02\0\x01\x12\x04\x92\x03\t\
\x11\n\r\n\x05\x04\x05\x02\0\x03\x12\x04\x92\x03\x14\x15\n\x0f\n\x05\x04\
\x05\x02\0\x08\x12\x06\x92\x03\x16\x97\x03\x03\n\x10\n\x08\x04\x05\x02\0\
\x08\x9c\x08\0\x12\x04\x93\x03\x04*\n\x11\n\x07\x04\x05\x02\0\x08\x9f\
\x08\x12\x06\x94\x03\x04\x96\x03\x05\n\x85\x01\n\x04\x04\x05\x02\x01\x12\
\x04\x9b\x03\x02\x16\x1aw\x20Number\x20of\x20sessions\x20to\x20be\x20ret\
urned\x20in\x20the\x20response.\x20If\x200\x20or\x20less,\x20defaults\n\
\x20to\x20the\x20server's\x20maximum\x20allowed\x20page\x20size.\n\n\r\n\
\x05\x04\x05\x02\x01\x05\x12\x04\x9b\x03\x02\x07\n\r\n\x05\x04\x05\x02\
\x01\x01\x12\x04\x9b\x03\x08\x11\n\r\n\x05\x04\x05\x02\x01\x03\x12\x04\
\x9b\x03\x14\x15\n\xd8\x01\n\x04\x04\x05\x02\x02\x12\x04\xa0\x03\x02\x18\
\x1a\xc9\x01\x20If\x20non-empty,\x20`page_token`\x20should\x20contain\
\x20a\n\x20[next_page_token][google.spanner.v1.ListSessionsResponse.next\
_page_token]\x20from\x20a\x20previous\n\x20[ListSessionsResponse][google\
.spanner.v1.ListSessionsResponse].\n\n\r\n\x05\x04\x05\x02\x02\x05\x12\
\x04\xa0\x03\x02\x08\n\r\n\x05\x04\x05\x02\x02\x01\x12\x04\xa0\x03\t\x13\
\n\r\n\x05\x04\x05\x02\x02\x03\x12\x04\xa0\x03\x16\x17\n\xaf\x03\n\x04\
\x04\x05\x02\x03\x12\x04\xac\x03\x02\x14\x1a\xa0\x03\x20An\x20expression\
\x20for\x20filtering\x20the\x20results\x20of\x20the\x20request.\x20Filte\
r\x20rules\x20are\n\x20case\x20insensitive.\x20The\x20fields\x20eligible\
\x20for\x20filtering\x20are:\n\n\x20\x20\x20*\x20`labels.key`\x20where\
\x20key\x20is\x20the\x20name\x20of\x20a\x20label\n\n\x20Some\x20examples\
\x20of\x20using\x20filters\x20are:\n\n\x20\x20\x20*\x20`labels.env:*`\
\x20-->\x20The\x20session\x20has\x20the\x20label\x20\"env\".\n\x20\x20\
\x20*\x20`labels.env:dev`\x20-->\x20The\x20session\x20has\x20the\x20labe\
l\x20\"env\"\x20and\x20the\x20value\x20of\n\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20the\
\x20label\x20contains\x20the\x20string\x20\"dev\".\n\n\r\n\x05\x04\x05\
\x02\x03\x05\x12\x04\xac\x03\x02\x08\n\r\n\x05\x04\x05\x02\x03\x01\x12\
\x04\xac\x03\t\x0f\n\r\n\x05\x04\x05\x02\x03\x03\x12\x04\xac\x03\x12\x13\
\nX\n\x02\x04\x06\x12\x06\xb0\x03\0\xb8\x03\x01\x1aJ\x20The\x20response\
\x20for\x20[ListSessions][google.spanner.v1.Spanner.ListSessions].\n\n\
\x0b\n\x03\x04\x06\x01\x12\x04\xb0\x03\x08\x1c\n/\n\x04\x04\x06\x02\0\
\x12\x04\xb2\x03\x02\x20\x1a!\x20The\x20list\x20of\x20requested\x20sessi\
ons.\n\n\r\n\x05\x04\x06\x02\0\x04\x12\x04\xb2\x03\x02\n\n\r\n\x05\x04\
\x06\x02\0\x06\x12\x04\xb2\x03\x0b\x12\n\r\n\x05\x04\x06\x02\0\x01\x12\
\x04\xb2\x03\x13\x1b\n\r\n\x05\x04\x06\x02\0\x03\x12\x04\xb2\x03\x1e\x1f\
\n\xa4\x01\n\x04\x04\x06\x02\x01\x12\x04\xb7\x03\x02\x1d\x1a\x95\x01\x20\
`next_page_token`\x20can\x20be\x20sent\x20in\x20a\x20subsequent\n\x20[Li\
stSessions][google.spanner.v1.Spanner.ListSessions]\x20call\x20to\x20fet\
ch\x20more\x20of\x20the\x20matching\n\x20sessions.\n\n\r\n\x05\x04\x06\
\x02\x01\x05\x12\x04\xb7\x03\x02\x08\n\r\n\x05\x04\x06\x02\x01\x01\x12\
\x04\xb7\x03\t\x18\n\r\n\x05\x04\x06\x02\x01\x03\x12\x04\xb7\x03\x1b\x1c\
\nY\n\x02\x04\x07\x12\x06\xbb\x03\0\xc3\x03\x01\x1aK\x20The\x20request\
\x20for\x20[DeleteSession][google.spanner.v1.Spanner.DeleteSession].\n\n\
\x0b\n\x03\x04\x07\x01\x12\x04\xbb\x03\x08\x1c\n>\n\x04\x04\x07\x02\0\
\x12\x06\xbd\x03\x02\xc2\x03\x04\x1a.\x20Required.\x20The\x20name\x20of\
\x20the\x20session\x20to\x20delete.\n\n\r\n\x05\x04\x07\x02\0\x05\x12\
\x04\xbd\x03\x02\x08\n\r\n\x05\x04\x07\x02\0\x01\x12\x04\xbd\x03\t\r\n\r\
\n\x05\x04\x07\x02\0\x03\x12\x04\xbd\x03\x10\x11\n\x0f\n\x05\x04\x07\x02\
\0\x08\x12\x06\xbd\x03\x12\xc2\x03\x03\n\x10\n\x08\x04\x07\x02\0\x08\x9c\
\x08\0\x12\x04\xbe\x03\x04*\n\x11\n\x07\x04\x07\x02\0\x08\x9f\x08\x12\
\x06\xbf\x03\x04\xc1\x03\x05\n8\n\x02\x04\x08\x12\x06\xc6\x03\0\x80\x04\
\x01\x1a*\x20Common\x20request\x20options\x20for\x20various\x20APIs.\n\n\
\x0b\n\x03\x04\x08\x01\x12\x04\xc6\x03\x08\x16\n\x83\x07\n\x04\x04\x08\
\x04\0\x12\x06\xd7\x03\x02\xe3\x03\x03\x1a\xf2\x06\x20The\x20relative\
\x20priority\x20for\x20requests.\x20Note\x20that\x20priority\x20is\x20no\
t\x20applicable\n\x20for\x20[BeginTransaction][google.spanner.v1.Spanner\
.BeginTransaction].\n\n\x20The\x20priority\x20acts\x20as\x20a\x20hint\
\x20to\x20the\x20Cloud\x20Spanner\x20scheduler\x20and\x20does\x20not\n\
\x20guarantee\x20priority\x20or\x20order\x20of\x20execution.\x20For\x20e\
xample:\n\n\x20*\x20Some\x20parts\x20of\x20a\x20write\x20operation\x20al\
ways\x20execute\x20at\x20`PRIORITY_HIGH`,\n\x20\x20\x20regardless\x20of\
\x20the\x20specified\x20priority.\x20This\x20may\x20cause\x20you\x20to\
\x20see\x20an\n\x20\x20\x20increase\x20in\x20high\x20priority\x20workloa\
d\x20even\x20when\x20executing\x20a\x20low\x20priority\n\x20\x20\x20requ\
est.\x20This\x20can\x20also\x20potentially\x20cause\x20a\x20priority\x20\
inversion\x20where\x20a\n\x20\x20\x20lower\x20priority\x20request\x20wil\
l\x20be\x20fulfilled\x20ahead\x20of\x20a\x20higher\x20priority\n\x20\x20\
\x20request.\n\x20*\x20If\x20a\x20transaction\x20contains\x20multiple\
\x20operations\x20with\x20different\x20priorities,\n\x20\x20\x20Cloud\
\x20Spanner\x20does\x20not\x20guarantee\x20to\x20process\x20the\x20highe\
r\x20priority\n\x20\x20\x20operations\x20first.\x20There\x20may\x20be\
\x20other\x20constraints\x20to\x20satisfy,\x20such\x20as\n\x20\x20\x20or\
der\x20of\x20operations.\n\n\r\n\x05\x04\x08\x04\0\x01\x12\x04\xd7\x03\
\x07\x0f\nJ\n\x06\x04\x08\x04\0\x02\0\x12\x04\xd9\x03\x04\x1d\x1a:\x20`P\
RIORITY_UNSPECIFIED`\x20is\x20equivalent\x20to\x20`PRIORITY_HIGH`.\n\n\
\x0f\n\x07\x04\x08\x04\0\x02\0\x01\x12\x04\xd9\x03\x04\x18\n\x0f\n\x07\
\x04\x08\x04\0\x02\0\x02\x12\x04\xd9\x03\x1b\x1c\nB\n\x06\x04\x08\x04\0\
\x02\x01\x12\x04\xdc\x03\x04\x15\x1a2\x20This\x20specifies\x20that\x20th\
e\x20request\x20is\x20low\x20priority.\n\n\x0f\n\x07\x04\x08\x04\0\x02\
\x01\x01\x12\x04\xdc\x03\x04\x10\n\x0f\n\x07\x04\x08\x04\0\x02\x01\x02\
\x12\x04\xdc\x03\x13\x14\nE\n\x06\x04\x08\x04\0\x02\x02\x12\x04\xdf\x03\
\x04\x18\x1a5\x20This\x20specifies\x20that\x20the\x20request\x20is\x20me\
dium\x20priority.\n\n\x0f\n\x07\x04\x08\x04\0\x02\x02\x01\x12\x04\xdf\
\x03\x04\x13\n\x0f\n\x07\x04\x08\x04\0\x02\x02\x02\x12\x04\xdf\x03\x16\
\x17\nC\n\x06\x04\x08\x04\0\x02\x03\x12\x04\xe2\x03\x04\x16\x1a3\x20This\
\x20specifies\x20that\x20the\x20request\x20is\x20high\x20priority.\n\n\
\x0f\n\x07\x04\x08\x04\0\x02\x03\x01\x12\x04\xe2\x03\x04\x11\n\x0f\n\x07\
\x04\x08\x04\0\x02\x03\x02\x12\x04\xe2\x03\x14\x15\n)\n\x04\x04\x08\x02\
\0\x12\x04\xe6\x03\x02\x18\x1a\x1b\x20Priority\x20for\x20the\x20request.\
\n\n\r\n\x05\x04\x08\x02\0\x06\x12\x04\xe6\x03\x02\n\n\r\n\x05\x04\x08\
\x02\0\x01\x12\x04\xe6\x03\x0b\x13\n\r\n\x05\x04\x08\x02\0\x03\x12\x04\
\xe6\x03\x16\x17\n\xba\x04\n\x04\x04\x08\x02\x01\x12\x04\xf2\x03\x02\x19\
\x1a\xab\x04\x20A\x20per-request\x20tag\x20which\x20can\x20be\x20applied\
\x20to\x20queries\x20or\x20reads,\x20used\x20for\n\x20statistics\x20coll\
ection.\n\x20Both\x20request_tag\x20and\x20transaction_tag\x20can\x20be\
\x20specified\x20for\x20a\x20read\x20or\x20query\n\x20that\x20belongs\
\x20to\x20a\x20transaction.\n\x20This\x20field\x20is\x20ignored\x20for\
\x20requests\x20where\x20it's\x20not\x20applicable\x20(e.g.\n\x20CommitR\
equest).\n\x20Legal\x20characters\x20for\x20`request_tag`\x20values\x20a\
re\x20all\x20printable\x20characters\n\x20(ASCII\x2032\x20-\x20126)\x20a\
nd\x20the\x20length\x20of\x20a\x20request_tag\x20is\x20limited\x20to\x20\
50\n\x20characters.\x20Values\x20that\x20exceed\x20this\x20limit\x20are\
\x20truncated.\n\x20Any\x20leading\x20underscore\x20(_)\x20characters\
\x20will\x20be\x20removed\x20from\x20the\x20string.\n\n\r\n\x05\x04\x08\
\x02\x01\x05\x12\x04\xf2\x03\x02\x08\n\r\n\x05\x04\x08\x02\x01\x01\x12\
\x04\xf2\x03\t\x14\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\xf2\x03\x17\x18\
\n\x89\x05\n\x04\x04\x08\x02\x02\x12\x04\xff\x03\x02\x1d\x1a\xfa\x04\x20\
A\x20tag\x20used\x20for\x20statistics\x20collection\x20about\x20this\x20\
transaction.\n\x20Both\x20request_tag\x20and\x20transaction_tag\x20can\
\x20be\x20specified\x20for\x20a\x20read\x20or\x20query\n\x20that\x20belo\
ngs\x20to\x20a\x20transaction.\n\x20The\x20value\x20of\x20transaction_ta\
g\x20should\x20be\x20the\x20same\x20for\x20all\x20requests\x20belonging\
\n\x20to\x20the\x20same\x20transaction.\n\x20If\x20this\x20request\x20do\
esn't\x20belong\x20to\x20any\x20transaction,\x20transaction_tag\x20will\
\x20be\n\x20ignored.\n\x20Legal\x20characters\x20for\x20`transaction_tag\
`\x20values\x20are\x20all\x20printable\x20characters\n\x20(ASCII\x2032\
\x20-\x20126)\x20and\x20the\x20length\x20of\x20a\x20transaction_tag\x20i\
s\x20limited\x20to\x2050\n\x20characters.\x20Values\x20that\x20exceed\
\x20this\x20limit\x20are\x20truncated.\n\x20Any\x20leading\x20underscore\
\x20(_)\x20characters\x20will\x20be\x20removed\x20from\x20the\x20string.\
\n\n\r\n\x05\x04\x08\x02\x02\x05\x12\x04\xff\x03\x02\x08\n\r\n\x05\x04\
\x08\x02\x02\x01\x12\x04\xff\x03\t\x18\n\r\n\x05\x04\x08\x02\x02\x03\x12\
\x04\xff\x03\x1b\x1c\n\x9e\x01\n\x02\x04\t\x12\x06\x84\x04\0\xa3\x05\x01\
\x1a\x8f\x01\x20The\x20request\x20for\x20[ExecuteSql][google.spanner.v1.\
Spanner.ExecuteSql]\x20and\n\x20[ExecuteStreamingSql][google.spanner.v1.\
Spanner.ExecuteStreamingSql].\n\n\x0b\n\x03\x04\t\x01\x12\x04\x84\x04\
\x08\x19\n@\n\x04\x04\t\x04\0\x12\x06\x86\x04\x02\x91\x04\x03\x1a0\x20Mo\
de\x20in\x20which\x20the\x20statement\x20must\x20be\x20processed.\n\n\r\
\n\x05\x04\t\x04\0\x01\x12\x04\x86\x04\x07\x10\nL\n\x06\x04\t\x04\0\x02\
\0\x12\x04\x88\x04\x04\x0f\x1a<\x20The\x20default\x20mode.\x20Only\x20th\
e\x20statement\x20results\x20are\x20returned.\n\n\x0f\n\x07\x04\t\x04\0\
\x02\0\x01\x12\x04\x88\x04\x04\n\n\x0f\n\x07\x04\t\x04\0\x02\0\x02\x12\
\x04\x88\x04\r\x0e\nr\n\x06\x04\t\x04\0\x02\x01\x12\x04\x8c\x04\x04\r\
\x1ab\x20This\x20mode\x20returns\x20only\x20the\x20query\x20plan,\x20wit\
hout\x20any\x20results\x20or\n\x20execution\x20statistics\x20information\
.\n\n\x0f\n\x07\x04\t\x04\0\x02\x01\x01\x12\x04\x8c\x04\x04\x08\n\x0f\n\
\x07\x04\t\x04\0\x02\x01\x02\x12\x04\x8c\x04\x0b\x0c\nm\n\x06\x04\t\x04\
\0\x02\x02\x12\x04\x90\x04\x04\x10\x1a]\x20This\x20mode\x20returns\x20bo\
th\x20the\x20query\x20plan\x20and\x20the\x20execution\x20statistics\x20a\
long\n\x20with\x20the\x20results.\n\n\x0f\n\x07\x04\t\x04\0\x02\x02\x01\
\x12\x04\x90\x04\x04\x0b\n\x0f\n\x07\x04\t\x04\0\x02\x02\x02\x12\x04\x90\
\x04\x0e\x0f\n0\n\x04\x04\t\x03\0\x12\x06\x94\x04\x02\xc6\x04\x03\x1a\
\x20\x20Query\x20optimizer\x20configuration.\n\n\r\n\x05\x04\t\x03\0\x01\
\x12\x04\x94\x04\n\x16\n\xa2\x07\n\x06\x04\t\x03\0\x02\0\x12\x04\xab\x04\
\x04!\x1a\x91\x07\x20An\x20option\x20to\x20control\x20the\x20selection\
\x20of\x20optimizer\x20version.\n\n\x20This\x20parameter\x20allows\x20in\
dividual\x20queries\x20to\x20pick\x20different\x20query\n\x20optimizer\
\x20versions.\n\n\x20Specifying\x20`latest`\x20as\x20a\x20value\x20instr\
ucts\x20Cloud\x20Spanner\x20to\x20use\x20the\n\x20latest\x20supported\
\x20query\x20optimizer\x20version.\x20If\x20not\x20specified,\x20Cloud\
\x20Spanner\n\x20uses\x20the\x20optimizer\x20version\x20set\x20at\x20the\
\x20database\x20level\x20options.\x20Any\x20other\n\x20positive\x20integ\
er\x20(from\x20the\x20list\x20of\x20supported\x20optimizer\x20versions)\
\n\x20overrides\x20the\x20default\x20optimizer\x20version\x20for\x20quer\
y\x20execution.\n\n\x20The\x20list\x20of\x20supported\x20optimizer\x20ve\
rsions\x20can\x20be\x20queried\x20from\n\x20SPANNER_SYS.SUPPORTED_OPTIMI\
ZER_VERSIONS.\n\n\x20Executing\x20a\x20SQL\x20statement\x20with\x20an\
\x20invalid\x20optimizer\x20version\x20fails\x20with\n\x20an\x20`INVALID\
_ARGUMENT`\x20error.\n\n\x20See\n\x20https://cloud.google.com/spanner/do\
cs/query-optimizer/manage-query-optimizer\n\x20for\x20more\x20informatio\
n\x20on\x20managing\x20the\x20query\x20optimizer.\n\n\x20The\x20`optimiz\
er_version`\x20statement\x20hint\x20has\x20precedence\x20over\x20this\
\x20setting.\n\n\x0f\n\x07\x04\t\x03\0\x02\0\x05\x12\x04\xab\x04\x04\n\n\
\x0f\n\x07\x04\t\x03\0\x02\0\x01\x12\x04\xab\x04\x0b\x1c\n\x0f\n\x07\x04\
\t\x03\0\x02\0\x03\x12\x04\xab\x04\x1f\x20\n\xb2\x07\n\x06\x04\t\x03\0\
\x02\x01\x12\x04\xc5\x04\x04,\x1a\xa1\x07\x20An\x20option\x20to\x20contr\
ol\x20the\x20selection\x20of\x20optimizer\x20statistics\x20package.\n\n\
\x20This\x20parameter\x20allows\x20individual\x20queries\x20to\x20use\
\x20a\x20different\x20query\n\x20optimizer\x20statistics\x20package.\n\n\
\x20Specifying\x20`latest`\x20as\x20a\x20value\x20instructs\x20Cloud\x20\
Spanner\x20to\x20use\x20the\x20latest\n\x20generated\x20statistics\x20pa\
ckage.\x20If\x20not\x20specified,\x20Cloud\x20Spanner\x20uses\n\x20the\
\x20statistics\x20package\x20set\x20at\x20the\x20database\x20level\x20op\
tions,\x20or\x20the\x20latest\n\x20package\x20if\x20the\x20database\x20o\
ption\x20is\x20not\x20set.\n\n\x20The\x20statistics\x20package\x20reques\
ted\x20by\x20the\x20query\x20has\x20to\x20be\x20exempt\x20from\n\x20garb\
age\x20collection.\x20This\x20can\x20be\x20achieved\x20with\x20the\x20fo\
llowing\x20DDL\n\x20statement:\n\n\x20```\n\x20ALTER\x20STATISTICS\x20<p\
ackage_name>\x20SET\x20OPTIONS\x20(allow_gc=false)\n\x20```\n\n\x20The\
\x20list\x20of\x20available\x20statistics\x20packages\x20can\x20be\x20qu\
eried\x20from\n\x20`INFORMATION_SCHEMA.SPANNER_STATISTICS`.\n\n\x20Execu\
ting\x20a\x20SQL\x20statement\x20with\x20an\x20invalid\x20optimizer\x20s\
tatistics\x20package\n\x20or\x20with\x20a\x20statistics\x20package\x20th\
at\x20allows\x20garbage\x20collection\x20fails\x20with\n\x20an\x20`INVAL\
ID_ARGUMENT`\x20error.\n\n\x0f\n\x07\x04\t\x03\0\x02\x01\x05\x12\x04\xc5\
\x04\x04\n\n\x0f\n\x07\x04\t\x03\0\x02\x01\x01\x12\x04\xc5\x04\x0b'\n\
\x0f\n\x07\x04\t\x03\0\x02\x01\x03\x12\x04\xc5\x04*+\nS\n\x04\x04\t\x02\
\0\x12\x06\xc9\x04\x02\xce\x04\x04\x1aC\x20Required.\x20The\x20session\
\x20in\x20which\x20the\x20SQL\x20query\x20should\x20be\x20performed.\n\n\
\r\n\x05\x04\t\x02\0\x05\x12\x04\xc9\x04\x02\x08\n\r\n\x05\x04\t\x02\0\
\x01\x12\x04\xc9\x04\t\x10\n\r\n\x05\x04\t\x02\0\x03\x12\x04\xc9\x04\x13\
\x14\n\x0f\n\x05\x04\t\x02\0\x08\x12\x06\xc9\x04\x15\xce\x04\x03\n\x10\n\
\x08\x04\t\x02\0\x08\x9c\x08\0\x12\x04\xca\x04\x04*\n\x11\n\x07\x04\t\
\x02\0\x08\x9f\x08\x12\x06\xcb\x04\x04\xcd\x04\x05\n\xb9\x03\n\x04\x04\t\
\x02\x01\x12\x04\xda\x04\x02&\x1a\xaa\x03\x20The\x20transaction\x20to\
\x20use.\n\n\x20For\x20queries,\x20if\x20none\x20is\x20provided,\x20the\
\x20default\x20is\x20a\x20temporary\x20read-only\n\x20transaction\x20wit\
h\x20strong\x20concurrency.\n\n\x20Standard\x20DML\x20statements\x20requ\
ire\x20a\x20read-write\x20transaction.\x20To\x20protect\n\x20against\x20\
replays,\x20single-use\x20transactions\x20are\x20not\x20supported.\x20\
\x20The\x20caller\n\x20must\x20either\x20supply\x20an\x20existing\x20tra\
nsaction\x20ID\x20or\x20begin\x20a\x20new\x20transaction.\n\n\x20Partiti\
oned\x20DML\x20requires\x20an\x20existing\x20Partitioned\x20DML\x20trans\
action\x20ID.\n\n\r\n\x05\x04\t\x02\x01\x06\x12\x04\xda\x04\x02\x15\n\r\
\n\x05\x04\t\x02\x01\x01\x12\x04\xda\x04\x16!\n\r\n\x05\x04\t\x02\x01\
\x03\x12\x04\xda\x04$%\n)\n\x04\x04\t\x02\x02\x12\x04\xdd\x04\x02:\x1a\
\x1b\x20Required.\x20The\x20SQL\x20string.\n\n\r\n\x05\x04\t\x02\x02\x05\
\x12\x04\xdd\x04\x02\x08\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\xdd\x04\t\
\x0c\n\r\n\x05\x04\t\x02\x02\x03\x12\x04\xdd\x04\x0f\x10\n\r\n\x05\x04\t\
\x02\x02\x08\x12\x04\xdd\x04\x119\n\x10\n\x08\x04\t\x02\x02\x08\x9c\x08\
\0\x12\x04\xdd\x04\x128\n\xdc\x04\n\x04\x04\t\x02\x03\x12\x04\xec\x04\
\x02$\x1a\xcd\x04\x20Parameter\x20names\x20and\x20values\x20that\x20bind\
\x20to\x20placeholders\x20in\x20the\x20SQL\x20string.\n\n\x20A\x20parame\
ter\x20placeholder\x20consists\x20of\x20the\x20`@`\x20character\x20follo\
wed\x20by\x20the\n\x20parameter\x20name\x20(for\x20example,\x20`@firstNa\
me`).\x20Parameter\x20names\x20must\x20conform\n\x20to\x20the\x20naming\
\x20requirements\x20of\x20identifiers\x20as\x20specified\x20at\n\x20http\
s://cloud.google.com/spanner/docs/lexical#identifiers.\n\n\x20Parameters\
\x20can\x20appear\x20anywhere\x20that\x20a\x20literal\x20value\x20is\x20\
expected.\x20\x20The\x20same\n\x20parameter\x20name\x20can\x20be\x20used\
\x20more\x20than\x20once,\x20for\x20example:\n\n\x20`\"WHERE\x20id\x20>\
\x20@msg_id\x20AND\x20id\x20<\x20@msg_id\x20+\x20100\"`\n\n\x20It\x20is\
\x20an\x20error\x20to\x20execute\x20a\x20SQL\x20statement\x20with\x20unb\
ound\x20parameters.\n\n\r\n\x05\x04\t\x02\x03\x06\x12\x04\xec\x04\x02\
\x18\n\r\n\x05\x04\t\x02\x03\x01\x12\x04\xec\x04\x19\x1f\n\r\n\x05\x04\t\
\x02\x03\x03\x12\x04\xec\x04\"#\n\xdc\x03\n\x04\x04\t\x02\x04\x12\x04\
\xf6\x04\x02$\x1a\xcd\x03\x20It\x20is\x20not\x20always\x20possible\x20fo\
r\x20Cloud\x20Spanner\x20to\x20infer\x20the\x20right\x20SQL\x20type\n\
\x20from\x20a\x20JSON\x20value.\x20\x20For\x20example,\x20values\x20of\
\x20type\x20`BYTES`\x20and\x20values\n\x20of\x20type\x20`STRING`\x20both\
\x20appear\x20in\x20[params][google.spanner.v1.ExecuteSqlRequest.params]\
\x20as\x20JSON\x20strings.\n\n\x20In\x20these\x20cases,\x20`param_types`\
\x20can\x20be\x20used\x20to\x20specify\x20the\x20exact\n\x20SQL\x20type\
\x20for\x20some\x20or\x20all\x20of\x20the\x20SQL\x20statement\x20paramet\
ers.\x20See\x20the\n\x20definition\x20of\x20[Type][google.spanner.v1.Typ\
e]\x20for\x20more\x20information\n\x20about\x20SQL\x20types.\n\n\r\n\x05\
\x04\t\x02\x04\x06\x12\x04\xf6\x04\x02\x13\n\r\n\x05\x04\t\x02\x04\x01\
\x12\x04\xf6\x04\x14\x1f\n\r\n\x05\x04\t\x02\x04\x03\x12\x04\xf6\x04\"#\
\n\x9e\x03\n\x04\x04\t\x02\x05\x12\x04\xfe\x04\x02\x19\x1a\x8f\x03\x20If\
\x20this\x20request\x20is\x20resuming\x20a\x20previously\x20interrupted\
\x20SQL\x20statement\n\x20execution,\x20`resume_token`\x20should\x20be\
\x20copied\x20from\x20the\x20last\n\x20[PartialResultSet][google.spanner\
.v1.PartialResultSet]\x20yielded\x20before\x20the\x20interruption.\x20Do\
ing\x20this\n\x20enables\x20the\x20new\x20SQL\x20statement\x20execution\
\x20to\x20resume\x20where\x20the\x20last\x20one\x20left\n\x20off.\x20The\
\x20rest\x20of\x20the\x20request\x20parameters\x20must\x20exactly\x20mat\
ch\x20the\n\x20request\x20that\x20yielded\x20this\x20token.\n\n\r\n\x05\
\x04\t\x02\x05\x05\x12\x04\xfe\x04\x02\x07\n\r\n\x05\x04\t\x02\x05\x01\
\x12\x04\xfe\x04\x08\x14\n\r\n\x05\x04\t\x02\x05\x03\x12\x04\xfe\x04\x17\
\x18\n\xf2\x02\n\x04\x04\t\x02\x06\x12\x04\x83\x05\x02\x1b\x1a\xe3\x02\
\x20Used\x20to\x20control\x20the\x20amount\x20of\x20debugging\x20informa\
tion\x20returned\x20in\n\x20[ResultSetStats][google.spanner.v1.ResultSet\
Stats].\x20If\x20[partition_token][google.spanner.v1.ExecuteSqlRequest.p\
artition_token]\x20is\x20set,\x20[query_mode][google.spanner.v1.ExecuteS\
qlRequest.query_mode]\x20can\x20only\n\x20be\x20set\x20to\x20[QueryMode.\
NORMAL][google.spanner.v1.ExecuteSqlRequest.QueryMode.NORMAL].\n\n\r\n\
\x05\x04\t\x02\x06\x06\x12\x04\x83\x05\x02\x0b\n\r\n\x05\x04\t\x02\x06\
\x01\x12\x04\x83\x05\x0c\x16\n\r\n\x05\x04\t\x02\x06\x03\x12\x04\x83\x05\
\x19\x1a\n\x99\x02\n\x04\x04\t\x02\x07\x12\x04\x89\x05\x02\x1c\x1a\x8a\
\x02\x20If\x20present,\x20results\x20will\x20be\x20restricted\x20to\x20t\
he\x20specified\x20partition\n\x20previously\x20created\x20using\x20Part\
itionQuery().\x20\x20There\x20must\x20be\x20an\x20exact\n\x20match\x20fo\
r\x20the\x20values\x20of\x20fields\x20common\x20to\x20this\x20message\
\x20and\x20the\n\x20PartitionQueryRequest\x20message\x20used\x20to\x20cr\
eate\x20this\x20partition_token.\n\n\r\n\x05\x04\t\x02\x07\x05\x12\x04\
\x89\x05\x02\x07\n\r\n\x05\x04\t\x02\x07\x01\x12\x04\x89\x05\x08\x17\n\r\
\n\x05\x04\t\x02\x07\x03\x12\x04\x89\x05\x1a\x1b\n\x9b\x04\n\x04\x04\t\
\x02\x08\x12\x04\x95\x05\x02\x12\x1a\x8c\x04\x20A\x20per-transaction\x20\
sequence\x20number\x20used\x20to\x20identify\x20this\x20request.\x20This\
\x20field\n\x20makes\x20each\x20request\x20idempotent\x20such\x20that\
\x20if\x20the\x20request\x20is\x20received\x20multiple\n\x20times,\x20at\
\x20most\x20one\x20will\x20succeed.\n\n\x20The\x20sequence\x20number\x20\
must\x20be\x20monotonically\x20increasing\x20within\x20the\n\x20transact\
ion.\x20If\x20a\x20request\x20arrives\x20for\x20the\x20first\x20time\x20\
with\x20an\x20out-of-order\n\x20sequence\x20number,\x20the\x20transactio\
n\x20may\x20be\x20aborted.\x20Replays\x20of\x20previously\n\x20handled\
\x20requests\x20will\x20yield\x20the\x20same\x20response\x20as\x20the\
\x20first\x20execution.\n\n\x20Required\x20for\x20DML\x20statements.\x20\
Ignored\x20for\x20queries.\n\n\r\n\x05\x04\t\x02\x08\x05\x12\x04\x95\x05\
\x02\x07\n\r\n\x05\x04\t\x02\x08\x01\x12\x04\x95\x05\x08\r\n\r\n\x05\x04\
\t\x02\x08\x03\x12\x04\x95\x05\x10\x11\nI\n\x04\x04\t\x02\t\x12\x04\x98\
\x05\x02\"\x1a;\x20Query\x20optimizer\x20configuration\x20to\x20use\x20f\
or\x20the\x20given\x20query.\n\n\r\n\x05\x04\t\x02\t\x06\x12\x04\x98\x05\
\x02\x0e\n\r\n\x05\x04\t\x02\t\x01\x12\x04\x98\x05\x0f\x1c\n\r\n\x05\x04\
\t\x02\t\x03\x12\x04\x98\x05\x1f!\n0\n\x04\x04\t\x02\n\x12\x04\x9b\x05\
\x02&\x1a\"\x20Common\x20options\x20for\x20this\x20request.\n\n\r\n\x05\
\x04\t\x02\n\x06\x12\x04\x9b\x05\x02\x10\n\r\n\x05\x04\t\x02\n\x01\x12\
\x04\x9b\x05\x11\x20\n\r\n\x05\x04\t\x02\n\x03\x12\x04\x9b\x05#%\n\x9f\
\x02\n\x04\x04\t\x02\x0b\x12\x04\xa2\x05\x02\x1f\x1a\x90\x02\x20If\x20th\
is\x20is\x20for\x20a\x20partitioned\x20query\x20and\x20this\x20field\x20\
is\x20set\x20to\x20`true`,\x20the\n\x20request\x20will\x20be\x20executed\
\x20via\x20Spanner\x20independent\x20compute\x20resources.\n\n\x20If\x20\
the\x20field\x20is\x20set\x20to\x20`true`\x20but\x20the\x20request\x20do\
es\x20not\x20set\n\x20`partition_token`,\x20the\x20API\x20will\x20return\
\x20an\x20`INVALID_ARGUMENT`\x20error.\n\n\r\n\x05\x04\t\x02\x0b\x05\x12\
\x04\xa2\x05\x02\x06\n\r\n\x05\x04\t\x02\x0b\x01\x12\x04\xa2\x05\x07\x19\
\n\r\n\x05\x04\t\x02\x0b\x03\x12\x04\xa2\x05\x1c\x1e\n]\n\x02\x04\n\x12\
\x06\xa6\x05\0\xe8\x05\x01\x1aO\x20The\x20request\x20for\x20[ExecuteBatc\
hDml][google.spanner.v1.Spanner.ExecuteBatchDml].\n\n\x0b\n\x03\x04\n\
\x01\x12\x04\xa6\x05\x08\x1e\n)\n\x04\x04\n\x03\0\x12\x06\xa8\x05\x02\
\xc3\x05\x03\x1a\x19\x20A\x20single\x20DML\x20statement.\n\n\r\n\x05\x04\
\n\x03\0\x01\x12\x04\xa8\x05\n\x13\n+\n\x06\x04\n\x03\0\x02\0\x12\x04\
\xaa\x05\x04<\x1a\x1b\x20Required.\x20The\x20DML\x20string.\n\n\x0f\n\
\x07\x04\n\x03\0\x02\0\x05\x12\x04\xaa\x05\x04\n\n\x0f\n\x07\x04\n\x03\0\
\x02\0\x01\x12\x04\xaa\x05\x0b\x0e\n\x0f\n\x07\x04\n\x03\0\x02\0\x03\x12\
\x04\xaa\x05\x11\x12\n\x0f\n\x07\x04\n\x03\0\x02\0\x08\x12\x04\xaa\x05\
\x13;\n\x12\n\n\x04\n\x03\0\x02\0\x08\x9c\x08\0\x12\x04\xaa\x05\x14:\n\
\x8a\x04\n\x06\x04\n\x03\0\x02\x01\x12\x04\xb8\x05\x04&\x1a\xf9\x03\x20P\
arameter\x20names\x20and\x20values\x20that\x20bind\x20to\x20placeholders\
\x20in\x20the\x20DML\x20string.\n\n\x20A\x20parameter\x20placeholder\x20\
consists\x20of\x20the\x20`@`\x20character\x20followed\x20by\x20the\n\x20\
parameter\x20name\x20(for\x20example,\x20`@firstName`).\x20Parameter\x20\
names\x20can\x20contain\n\x20letters,\x20numbers,\x20and\x20underscores.\
\n\n\x20Parameters\x20can\x20appear\x20anywhere\x20that\x20a\x20literal\
\x20value\x20is\x20expected.\x20\x20The\n\x20same\x20parameter\x20name\
\x20can\x20be\x20used\x20more\x20than\x20once,\x20for\x20example:\n\n\
\x20`\"WHERE\x20id\x20>\x20@msg_id\x20AND\x20id\x20<\x20@msg_id\x20+\x20\
100\"`\n\n\x20It\x20is\x20an\x20error\x20to\x20execute\x20a\x20SQL\x20st\
atement\x20with\x20unbound\x20parameters.\n\n\x0f\n\x07\x04\n\x03\0\x02\
\x01\x06\x12\x04\xb8\x05\x04\x1a\n\x0f\n\x07\x04\n\x03\0\x02\x01\x01\x12\
\x04\xb8\x05\x1b!\n\x0f\n\x07\x04\n\x03\0\x02\x01\x03\x12\x04\xb8\x05$%\
\n\xed\x03\n\x06\x04\n\x03\0\x02\x02\x12\x04\xc2\x05\x04&\x1a\xdc\x03\
\x20It\x20is\x20not\x20always\x20possible\x20for\x20Cloud\x20Spanner\x20\
to\x20infer\x20the\x20right\x20SQL\x20type\n\x20from\x20a\x20JSON\x20val\
ue.\x20\x20For\x20example,\x20values\x20of\x20type\x20`BYTES`\x20and\x20\
values\n\x20of\x20type\x20`STRING`\x20both\x20appear\x20in\x20[params][g\
oogle.spanner.v1.ExecuteBatchDmlRequest.Statement.params]\x20as\x20JSON\
\x20strings.\n\n\x20In\x20these\x20cases,\x20`param_types`\x20can\x20be\
\x20used\x20to\x20specify\x20the\x20exact\n\x20SQL\x20type\x20for\x20som\
e\x20or\x20all\x20of\x20the\x20SQL\x20statement\x20parameters.\x20See\
\x20the\n\x20definition\x20of\x20[Type][google.spanner.v1.Type]\x20for\
\x20more\x20information\n\x20about\x20SQL\x20types.\n\n\x0f\n\x07\x04\n\
\x03\0\x02\x02\x06\x12\x04\xc2\x05\x04\x15\n\x0f\n\x07\x04\n\x03\0\x02\
\x02\x01\x12\x04\xc2\x05\x16!\n\x0f\n\x07\x04\n\x03\0\x02\x02\x03\x12\
\x04\xc2\x05$%\nX\n\x04\x04\n\x02\0\x12\x06\xc6\x05\x02\xcb\x05\x04\x1aH\
\x20Required.\x20The\x20session\x20in\x20which\x20the\x20DML\x20statemen\
ts\x20should\x20be\x20performed.\n\n\r\n\x05\x04\n\x02\0\x05\x12\x04\xc6\
\x05\x02\x08\n\r\n\x05\x04\n\x02\0\x01\x12\x04\xc6\x05\t\x10\n\r\n\x05\
\x04\n\x02\0\x03\x12\x04\xc6\x05\x13\x14\n\x0f\n\x05\x04\n\x02\0\x08\x12\
\x06\xc6\x05\x15\xcb\x05\x03\n\x10\n\x08\x04\n\x02\0\x08\x9c\x08\0\x12\
\x04\xc7\x05\x04*\n\x11\n\x07\x04\n\x02\0\x08\x9f\x08\x12\x06\xc8\x05\
\x04\xca\x05\x05\n\xf4\x01\n\x04\x04\n\x02\x01\x12\x04\xd2\x05\x02O\x1a\
\xe5\x01\x20Required.\x20The\x20transaction\x20to\x20use.\x20Must\x20be\
\x20a\x20read-write\x20transaction.\n\n\x20To\x20protect\x20against\x20r\
eplays,\x20single-use\x20transactions\x20are\x20not\x20supported.\x20The\
\n\x20caller\x20must\x20either\x20supply\x20an\x20existing\x20transactio\
n\x20ID\x20or\x20begin\x20a\x20new\n\x20transaction.\n\n\r\n\x05\x04\n\
\x02\x01\x06\x12\x04\xd2\x05\x02\x15\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\
\xd2\x05\x16!\n\r\n\x05\x04\n\x02\x01\x03\x12\x04\xd2\x05$%\n\r\n\x05\
\x04\n\x02\x01\x08\x12\x04\xd2\x05&N\n\x10\n\x08\x04\n\x02\x01\x08\x9c\
\x08\0\x12\x04\xd2\x05'M\n\xe8\x02\n\x04\x04\n\x02\x02\x12\x04\xda\x05\
\x02M\x1a\xd9\x02\x20Required.\x20The\x20list\x20of\x20statements\x20to\
\x20execute\x20in\x20this\x20batch.\x20Statements\x20are\x20executed\n\
\x20serially,\x20such\x20that\x20the\x20effects\x20of\x20statement\x20`i\
`\x20are\x20visible\x20to\x20statement\n\x20`i+1`.\x20Each\x20statement\
\x20must\x20be\x20a\x20DML\x20statement.\x20Execution\x20stops\x20at\x20\
the\n\x20first\x20failed\x20statement;\x20the\x20remaining\x20statements\
\x20are\x20not\x20executed.\n\n\x20Callers\x20must\x20provide\x20at\x20l\
east\x20one\x20statement.\n\n\r\n\x05\x04\n\x02\x02\x04\x12\x04\xda\x05\
\x02\n\n\r\n\x05\x04\n\x02\x02\x06\x12\x04\xda\x05\x0b\x14\n\r\n\x05\x04\
\n\x02\x02\x01\x12\x04\xda\x05\x15\x1f\n\r\n\x05\x04\n\x02\x02\x03\x12\
\x04\xda\x05\"#\n\r\n\x05\x04\n\x02\x02\x08\x12\x04\xda\x05$L\n\x10\n\
\x08\x04\n\x02\x02\x08\x9c\x08\0\x12\x04\xda\x05%K\n\xf1\x03\n\x04\x04\n\
\x02\x03\x12\x04\xe4\x05\x02;\x1a\xe2\x03\x20Required.\x20A\x20per-trans\
action\x20sequence\x20number\x20used\x20to\x20identify\x20this\x20reques\
t.\x20This\x20field\n\x20makes\x20each\x20request\x20idempotent\x20such\
\x20that\x20if\x20the\x20request\x20is\x20received\x20multiple\n\x20time\
s,\x20at\x20most\x20one\x20will\x20succeed.\n\n\x20The\x20sequence\x20nu\
mber\x20must\x20be\x20monotonically\x20increasing\x20within\x20the\n\x20\
transaction.\x20If\x20a\x20request\x20arrives\x20for\x20the\x20first\x20\
time\x20with\x20an\x20out-of-order\n\x20sequence\x20number,\x20the\x20tr\
ansaction\x20may\x20be\x20aborted.\x20Replays\x20of\x20previously\n\x20h\
andled\x20requests\x20will\x20yield\x20the\x20same\x20response\x20as\x20\
the\x20first\x20execution.\n\n\r\n\x05\x04\n\x02\x03\x05\x12\x04\xe4\x05\
\x02\x07\n\r\n\x05\x04\n\x02\x03\x01\x12\x04\xe4\x05\x08\r\n\r\n\x05\x04\
\n\x02\x03\x03\x12\x04\xe4\x05\x10\x11\n\r\n\x05\x04\n\x02\x03\x08\x12\
\x04\xe4\x05\x12:\n\x10\n\x08\x04\n\x02\x03\x08\x9c\x08\0\x12\x04\xe4\
\x05\x139\n0\n\x04\x04\n\x02\x04\x12\x04\xe7\x05\x02%\x1a\"\x20Common\
\x20options\x20for\x20this\x20request.\n\n\r\n\x05\x04\n\x02\x04\x06\x12\
\x04\xe7\x05\x02\x10\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\xe7\x05\x11\x20\
\n\r\n\x05\x04\n\x02\x04\x03\x12\x04\xe7\x05#$\n\xbf\n\n\x02\x04\x0b\x12\
\x06\x82\x06\0\x8f\x06\x01\x1a\xb0\n\x20The\x20response\x20for\x20[Execu\
teBatchDml][google.spanner.v1.Spanner.ExecuteBatchDml].\x20Contains\x20a\
\x20list\n\x20of\x20[ResultSet][google.spanner.v1.ResultSet]\x20messages\
,\x20one\x20for\x20each\x20DML\x20statement\x20that\x20has\x20successful\
ly\n\x20executed,\x20in\x20the\x20same\x20order\x20as\x20the\x20statemen\
ts\x20in\x20the\x20request.\x20If\x20a\x20statement\n\x20fails,\x20the\
\x20status\x20in\x20the\x20response\x20body\x20identifies\x20the\x20caus\
e\x20of\x20the\x20failure.\n\n\x20To\x20check\x20for\x20DML\x20statement\
s\x20that\x20failed,\x20use\x20the\x20following\x20approach:\n\n\x201.\
\x20Check\x20the\x20status\x20in\x20the\x20response\x20message.\x20The\
\x20[google.rpc.Code][google.rpc.Code]\x20enum\n\x20\x20\x20\x20value\
\x20`OK`\x20indicates\x20that\x20all\x20statements\x20were\x20executed\
\x20successfully.\n\x202.\x20If\x20the\x20status\x20was\x20not\x20`OK`,\
\x20check\x20the\x20number\x20of\x20result\x20sets\x20in\x20the\n\x20\
\x20\x20\x20response.\x20If\x20the\x20response\x20contains\x20`N`\x20[Re\
sultSet][google.spanner.v1.ResultSet]\x20messages,\x20then\n\x20\x20\x20\
\x20statement\x20`N+1`\x20in\x20the\x20request\x20failed.\n\n\x20Example\
\x201:\n\n\x20*\x20Request:\x205\x20DML\x20statements,\x20all\x20execute\
d\x20successfully.\n\x20*\x20Response:\x205\x20[ResultSet][google.spanne\
r.v1.ResultSet]\x20messages,\x20with\x20the\x20status\x20`OK`.\n\n\x20Ex\
ample\x202:\n\n\x20*\x20Request:\x205\x20DML\x20statements.\x20The\x20th\
ird\x20statement\x20has\x20a\x20syntax\x20error.\n\x20*\x20Response:\x20\
2\x20[ResultSet][google.spanner.v1.ResultSet]\x20messages,\x20and\x20a\
\x20syntax\x20error\x20(`INVALID_ARGUMENT`)\n\x20\x20\x20status.\x20The\
\x20number\x20of\x20[ResultSet][google.spanner.v1.ResultSet]\x20messages\
\x20indicates\x20that\x20the\x20third\n\x20\x20\x20statement\x20failed,\
\x20and\x20the\x20fourth\x20and\x20fifth\x20statements\x20were\x20not\
\x20executed.\n\n\x0b\n\x03\x04\x0b\x01\x12\x04\x82\x06\x08\x1f\n\xa8\
\x04\n\x04\x04\x0b\x02\0\x12\x04\x8a\x06\x02%\x1a\x99\x04\x20One\x20[Res\
ultSet][google.spanner.v1.ResultSet]\x20for\x20each\x20statement\x20in\
\x20the\x20request\x20that\x20ran\x20successfully,\n\x20in\x20the\x20sam\
e\x20order\x20as\x20the\x20statements\x20in\x20the\x20request.\x20Each\
\x20[ResultSet][google.spanner.v1.ResultSet]\x20does\n\x20not\x20contain\
\x20any\x20rows.\x20The\x20[ResultSetStats][google.spanner.v1.ResultSetS\
tats]\x20in\x20each\x20[ResultSet][google.spanner.v1.ResultSet]\x20conta\
in\n\x20the\x20number\x20of\x20rows\x20modified\x20by\x20the\x20statemen\
t.\n\n\x20Only\x20the\x20first\x20[ResultSet][google.spanner.v1.ResultSe\
t]\x20in\x20the\x20response\x20contains\x20valid\n\x20[ResultSetMetadata\
][google.spanner.v1.ResultSetMetadata].\n\n\r\n\x05\x04\x0b\x02\0\x04\
\x12\x04\x8a\x06\x02\n\n\r\n\x05\x04\x0b\x02\0\x06\x12\x04\x8a\x06\x0b\
\x14\n\r\n\x05\x04\x0b\x02\0\x01\x12\x04\x8a\x06\x15\x20\n\r\n\x05\x04\
\x0b\x02\0\x03\x12\x04\x8a\x06#$\n\x91\x01\n\x04\x04\x0b\x02\x01\x12\x04\
\x8e\x06\x02\x1f\x1a\x82\x01\x20If\x20all\x20DML\x20statements\x20are\
\x20executed\x20successfully,\x20the\x20status\x20is\x20`OK`.\n\x20Other\
wise,\x20the\x20error\x20status\x20of\x20the\x20first\x20failed\x20state\
ment.\n\n\r\n\x05\x04\x0b\x02\x01\x06\x12\x04\x8e\x06\x02\x13\n\r\n\x05\
\x04\x0b\x02\x01\x01\x12\x04\x8e\x06\x14\x1a\n\r\n\x05\x04\x0b\x02\x01\
\x03\x12\x04\x8e\x06\x1d\x1e\nN\n\x02\x04\x0c\x12\x06\x93\x06\0\xa5\x06\
\x01\x1a@\x20Options\x20for\x20a\x20PartitionQueryRequest\x20and\n\x20Pa\
rtitionReadRequest.\n\n\x0b\n\x03\x04\x0c\x01\x12\x04\x93\x06\x08\x18\n\
\xba\x02\n\x04\x04\x0c\x02\0\x12\x04\x9a\x06\x02!\x1a\xab\x02\x20**Note:\
**\x20This\x20hint\x20is\x20currently\x20ignored\x20by\x20PartitionQuery\
\x20and\n\x20PartitionRead\x20requests.\n\n\x20The\x20desired\x20data\
\x20size\x20for\x20each\x20partition\x20generated.\x20\x20The\x20default\
\x20for\x20this\n\x20option\x20is\x20currently\x201\x20GiB.\x20\x20This\
\x20is\x20only\x20a\x20hint.\x20The\x20actual\x20size\x20of\x20each\n\
\x20partition\x20may\x20be\x20smaller\x20or\x20larger\x20than\x20this\
\x20size\x20request.\n\n\r\n\x05\x04\x0c\x02\0\x05\x12\x04\x9a\x06\x02\
\x07\n\r\n\x05\x04\x0c\x02\0\x01\x12\x04\x9a\x06\x08\x1c\n\r\n\x05\x04\
\x0c\x02\0\x03\x12\x04\x9a\x06\x1f\x20\n\xb8\x03\n\x04\x04\x0c\x02\x01\
\x12\x04\xa4\x06\x02\x1b\x1a\xa9\x03\x20**Note:**\x20This\x20hint\x20is\
\x20currently\x20ignored\x20by\x20PartitionQuery\x20and\n\x20PartitionRe\
ad\x20requests.\n\n\x20The\x20desired\x20maximum\x20number\x20of\x20part\
itions\x20to\x20return.\x20\x20For\x20example,\x20this\x20may\n\x20be\
\x20set\x20to\x20the\x20number\x20of\x20workers\x20available.\x20\x20The\
\x20default\x20for\x20this\x20option\n\x20is\x20currently\x2010,000.\x20\
The\x20maximum\x20value\x20is\x20currently\x20200,000.\x20\x20This\x20is\
\x20only\n\x20a\x20hint.\x20\x20The\x20actual\x20number\x20of\x20partiti\
ons\x20returned\x20may\x20be\x20smaller\x20or\x20larger\n\x20than\x20thi\
s\x20maximum\x20count\x20request.\n\n\r\n\x05\x04\x0c\x02\x01\x05\x12\
\x04\xa4\x06\x02\x07\n\r\n\x05\x04\x0c\x02\x01\x01\x12\x04\xa4\x06\x08\
\x16\n\r\n\x05\x04\x0c\x02\x01\x03\x12\x04\xa4\x06\x19\x1a\nZ\n\x02\x04\
\r\x12\x06\xa8\x06\0\xdb\x06\x01\x1aL\x20The\x20request\x20for\x20[Parti\
tionQuery][google.spanner.v1.Spanner.PartitionQuery]\n\n\x0b\n\x03\x04\r\
\x01\x12\x04\xa8\x06\x08\x1d\nF\n\x04\x04\r\x02\0\x12\x06\xaa\x06\x02\
\xaf\x06\x04\x1a6\x20Required.\x20The\x20session\x20used\x20to\x20create\
\x20the\x20partitions.\n\n\r\n\x05\x04\r\x02\0\x05\x12\x04\xaa\x06\x02\
\x08\n\r\n\x05\x04\r\x02\0\x01\x12\x04\xaa\x06\t\x10\n\r\n\x05\x04\r\x02\
\0\x03\x12\x04\xaa\x06\x13\x14\n\x0f\n\x05\x04\r\x02\0\x08\x12\x06\xaa\
\x06\x15\xaf\x06\x03\n\x10\n\x08\x04\r\x02\0\x08\x9c\x08\0\x12\x04\xab\
\x06\x04*\n\x11\n\x07\x04\r\x02\0\x08\x9f\x08\x12\x06\xac\x06\x04\xae\
\x06\x05\no\n\x04\x04\r\x02\x01\x12\x04\xb3\x06\x02&\x1aa\x20Read\x20onl\
y\x20snapshot\x20transactions\x20are\x20supported,\x20read/write\x20and\
\x20single\x20use\n\x20transactions\x20are\x20not.\n\n\r\n\x05\x04\r\x02\
\x01\x06\x12\x04\xb3\x06\x02\x15\n\r\n\x05\x04\r\x02\x01\x01\x12\x04\xb3\
\x06\x16!\n\r\n\x05\x04\r\x02\x01\x03\x12\x04\xb3\x06$%\n\xf8\x04\n\x04\
\x04\r\x02\x02\x12\x04\xbf\x06\x02:\x1a\xe9\x04\x20Required.\x20The\x20q\
uery\x20request\x20to\x20generate\x20partitions\x20for.\x20The\x20reques\
t\x20will\x20fail\x20if\n\x20the\x20query\x20is\x20not\x20root\x20partit\
ionable.\x20The\x20query\x20plan\x20of\x20a\x20root\n\x20partitionable\
\x20query\x20has\x20a\x20single\x20distributed\x20union\x20operator.\x20\
A\x20distributed\n\x20union\x20operator\x20conceptually\x20divides\x20on\
e\x20or\x20more\x20tables\x20into\x20multiple\n\x20splits,\x20remotely\
\x20evaluates\x20a\x20subquery\x20independently\x20on\x20each\x20split,\
\x20and\n\x20then\x20unions\x20all\x20results.\n\n\x20This\x20must\x20no\
t\x20contain\x20DML\x20commands,\x20such\x20as\x20INSERT,\x20UPDATE,\x20\
or\n\x20DELETE.\x20Use\x20[ExecuteStreamingSql][google.spanner.v1.Spanne\
r.ExecuteStreamingSql]\x20with\x20a\n\x20PartitionedDml\x20transaction\
\x20for\x20large,\x20partition-friendly\x20DML\x20operations.\n\n\r\n\
\x05\x04\r\x02\x02\x05\x12\x04\xbf\x06\x02\x08\n\r\n\x05\x04\r\x02\x02\
\x01\x12\x04\xbf\x06\t\x0c\n\r\n\x05\x04\r\x02\x02\x03\x12\x04\xbf\x06\
\x0f\x10\n\r\n\x05\x04\r\x02\x02\x08\x12\x04\xbf\x06\x119\n\x10\n\x08\
\x04\r\x02\x02\x08\x9c\x08\0\x12\x04\xbf\x06\x128\n\x88\x04\n\x04\x04\r\
\x02\x03\x12\x04\xcd\x06\x02$\x1a\xf9\x03\x20Parameter\x20names\x20and\
\x20values\x20that\x20bind\x20to\x20placeholders\x20in\x20the\x20SQL\x20\
string.\n\n\x20A\x20parameter\x20placeholder\x20consists\x20of\x20the\
\x20`@`\x20character\x20followed\x20by\x20the\n\x20parameter\x20name\x20\
(for\x20example,\x20`@firstName`).\x20Parameter\x20names\x20can\x20conta\
in\n\x20letters,\x20numbers,\x20and\x20underscores.\n\n\x20Parameters\
\x20can\x20appear\x20anywhere\x20that\x20a\x20literal\x20value\x20is\x20\
expected.\x20\x20The\x20same\n\x20parameter\x20name\x20can\x20be\x20used\
\x20more\x20than\x20once,\x20for\x20example:\n\n\x20`\"WHERE\x20id\x20>\
\x20@msg_id\x20AND\x20id\x20<\x20@msg_id\x20+\x20100\"`\n\n\x20It\x20is\
\x20an\x20error\x20to\x20execute\x20a\x20SQL\x20statement\x20with\x20unb\
ound\x20parameters.\n\n\r\n\x05\x04\r\x02\x03\x06\x12\x04\xcd\x06\x02\
\x18\n\r\n\x05\x04\r\x02\x03\x01\x12\x04\xcd\x06\x19\x1f\n\r\n\x05\x04\r\
\x02\x03\x03\x12\x04\xcd\x06\"#\n\xdc\x03\n\x04\x04\r\x02\x04\x12\x04\
\xd7\x06\x02$\x1a\xcd\x03\x20It\x20is\x20not\x20always\x20possible\x20fo\
r\x20Cloud\x20Spanner\x20to\x20infer\x20the\x20right\x20SQL\x20type\n\
\x20from\x20a\x20JSON\x20value.\x20\x20For\x20example,\x20values\x20of\
\x20type\x20`BYTES`\x20and\x20values\n\x20of\x20type\x20`STRING`\x20both\
\x20appear\x20in\x20[params][google.spanner.v1.PartitionQueryRequest.par\
ams]\x20as\x20JSON\x20strings.\n\n\x20In\x20these\x20cases,\x20`param_ty\
pes`\x20can\x20be\x20used\x20to\x20specify\x20the\x20exact\n\x20SQL\x20t\
ype\x20for\x20some\x20or\x20all\x20of\x20the\x20SQL\x20query\x20paramete\
rs.\x20See\x20the\n\x20definition\x20of\x20[Type][google.spanner.v1.Type\
]\x20for\x20more\x20information\n\x20about\x20SQL\x20types.\n\n\r\n\x05\
\x04\r\x02\x04\x06\x12\x04\xd7\x06\x02\x13\n\r\n\x05\x04\r\x02\x04\x01\
\x12\x04\xd7\x06\x14\x1f\n\r\n\x05\x04\r\x02\x04\x03\x12\x04\xd7\x06\"#\
\nO\n\x04\x04\r\x02\x05\x12\x04\xda\x06\x02)\x1aA\x20Additional\x20optio\
ns\x20that\x20affect\x20how\x20many\x20partitions\x20are\x20created.\n\n\
\r\n\x05\x04\r\x02\x05\x06\x12\x04\xda\x06\x02\x12\n\r\n\x05\x04\r\x02\
\x05\x01\x12\x04\xda\x06\x13$\n\r\n\x05\x04\r\x02\x05\x03\x12\x04\xda\
\x06'(\nX\n\x02\x04\x0e\x12\x06\xde\x06\0\x82\x07\x01\x1aJ\x20The\x20req\
uest\x20for\x20[PartitionRead][google.spanner.v1.Spanner.PartitionRead]\
\n\n\x0b\n\x03\x04\x0e\x01\x12\x04\xde\x06\x08\x1c\nF\n\x04\x04\x0e\x02\
\0\x12\x06\xe0\x06\x02\xe5\x06\x04\x1a6\x20Required.\x20The\x20session\
\x20used\x20to\x20create\x20the\x20partitions.\n\n\r\n\x05\x04\x0e\x02\0\
\x05\x12\x04\xe0\x06\x02\x08\n\r\n\x05\x04\x0e\x02\0\x01\x12\x04\xe0\x06\
\t\x10\n\r\n\x05\x04\x0e\x02\0\x03\x12\x04\xe0\x06\x13\x14\n\x0f\n\x05\
\x04\x0e\x02\0\x08\x12\x06\xe0\x06\x15\xe5\x06\x03\n\x10\n\x08\x04\x0e\
\x02\0\x08\x9c\x08\0\x12\x04\xe1\x06\x04*\n\x11\n\x07\x04\x0e\x02\0\x08\
\x9f\x08\x12\x06\xe2\x06\x04\xe4\x06\x05\no\n\x04\x04\x0e\x02\x01\x12\
\x04\xe9\x06\x02&\x1aa\x20Read\x20only\x20snapshot\x20transactions\x20ar\
e\x20supported,\x20read/write\x20and\x20single\x20use\n\x20transactions\
\x20are\x20not.\n\n\r\n\x05\x04\x0e\x02\x01\x06\x12\x04\xe9\x06\x02\x15\
\n\r\n\x05\x04\x0e\x02\x01\x01\x12\x04\xe9\x06\x16!\n\r\n\x05\x04\x0e\
\x02\x01\x03\x12\x04\xe9\x06$%\nK\n\x04\x04\x0e\x02\x02\x12\x04\xec\x06\
\x02<\x1a=\x20Required.\x20The\x20name\x20of\x20the\x20table\x20in\x20th\
e\x20database\x20to\x20be\x20read.\n\n\r\n\x05\x04\x0e\x02\x02\x05\x12\
\x04\xec\x06\x02\x08\n\r\n\x05\x04\x0e\x02\x02\x01\x12\x04\xec\x06\t\x0e\
\n\r\n\x05\x04\x0e\x02\x02\x03\x12\x04\xec\x06\x11\x12\n\r\n\x05\x04\x0e\
\x02\x02\x08\x12\x04\xec\x06\x13;\n\x10\n\x08\x04\x0e\x02\x02\x08\x9c\
\x08\0\x12\x04\xec\x06\x14:\n\xdf\x02\n\x04\x04\x0e\x02\x03\x12\x04\xf1\
\x06\x02\x13\x1a\xd0\x02\x20If\x20non-empty,\x20the\x20name\x20of\x20an\
\x20index\x20on\x20[table][google.spanner.v1.PartitionReadRequest.table]\
.\x20This\x20index\x20is\n\x20used\x20instead\x20of\x20the\x20table\x20p\
rimary\x20key\x20when\x20interpreting\x20[key_set][google.spanner.v1.Par\
titionReadRequest.key_set]\n\x20and\x20sorting\x20result\x20rows.\x20See\
\x20[key_set][google.spanner.v1.PartitionReadRequest.key_set]\x20for\x20\
further\x20information.\n\n\r\n\x05\x04\x0e\x02\x03\x05\x12\x04\xf1\x06\
\x02\x08\n\r\n\x05\x04\x0e\x02\x03\x01\x12\x04\xf1\x06\t\x0e\n\r\n\x05\
\x04\x0e\x02\x03\x03\x12\x04\xf1\x06\x11\x12\n\x88\x01\n\x04\x04\x0e\x02\
\x04\x12\x04\xf5\x06\x02\x1e\x1az\x20The\x20columns\x20of\x20[table][goo\
gle.spanner.v1.PartitionReadRequest.table]\x20to\x20be\x20returned\x20fo\
r\x20each\x20row\x20matching\n\x20this\x20request.\n\n\r\n\x05\x04\x0e\
\x02\x04\x04\x12\x04\xf5\x06\x02\n\n\r\n\x05\x04\x0e\x02\x04\x05\x12\x04\
\xf5\x06\x0b\x11\n\r\n\x05\x04\x0e\x02\x04\x01\x12\x04\xf5\x06\x12\x19\n\
\r\n\x05\x04\x0e\x02\x04\x03\x12\x04\xf5\x06\x1c\x1d\n\xe1\x04\n\x04\x04\
\x0e\x02\x05\x12\x04\xfe\x06\x02>\x1a\xd2\x04\x20Required.\x20`key_set`\
\x20identifies\x20the\x20rows\x20to\x20be\x20yielded.\x20`key_set`\x20na\
mes\x20the\n\x20primary\x20keys\x20of\x20the\x20rows\x20in\x20[table][go\
ogle.spanner.v1.PartitionReadRequest.table]\x20to\x20be\x20yielded,\x20u\
nless\x20[index][google.spanner.v1.PartitionReadRequest.index]\n\x20is\
\x20present.\x20If\x20[index][google.spanner.v1.PartitionReadRequest.ind\
ex]\x20is\x20present,\x20then\x20[key_set][google.spanner.v1.PartitionRe\
adRequest.key_set]\x20instead\x20names\n\x20index\x20keys\x20in\x20[inde\
x][google.spanner.v1.PartitionReadRequest.index].\n\n\x20It\x20is\x20not\
\x20an\x20error\x20for\x20the\x20`key_set`\x20to\x20name\x20rows\x20that\
\x20do\x20not\n\x20exist\x20in\x20the\x20database.\x20Read\x20yields\x20\
nothing\x20for\x20nonexistent\x20rows.\n\n\r\n\x05\x04\x0e\x02\x05\x06\
\x12\x04\xfe\x06\x02\x08\n\r\n\x05\x04\x0e\x02\x05\x01\x12\x04\xfe\x06\t\
\x10\n\r\n\x05\x04\x0e\x02\x05\x03\x12\x04\xfe\x06\x13\x14\n\r\n\x05\x04\
\x0e\x02\x05\x08\x12\x04\xfe\x06\x15=\n\x10\n\x08\x04\x0e\x02\x05\x08\
\x9c\x08\0\x12\x04\xfe\x06\x16<\nO\n\x04\x04\x0e\x02\x06\x12\x04\x81\x07\
\x02)\x1aA\x20Additional\x20options\x20that\x20affect\x20how\x20many\x20\
partitions\x20are\x20created.\n\n\r\n\x05\x04\x0e\x02\x06\x06\x12\x04\
\x81\x07\x02\x12\n\r\n\x05\x04\x0e\x02\x06\x01\x12\x04\x81\x07\x13$\n\r\
\n\x05\x04\x0e\x02\x06\x03\x12\x04\x81\x07'(\nY\n\x02\x04\x0f\x12\x06\
\x86\x07\0\x8b\x07\x01\x1aK\x20Information\x20returned\x20for\x20each\
\x20partition\x20returned\x20in\x20a\n\x20PartitionResponse.\n\n\x0b\n\
\x03\x04\x0f\x01\x12\x04\x86\x07\x08\x11\n\xb4\x01\n\x04\x04\x0f\x02\0\
\x12\x04\x8a\x07\x02\x1c\x1a\xa5\x01\x20This\x20token\x20can\x20be\x20pa\
ssed\x20to\x20Read,\x20StreamingRead,\x20ExecuteSql,\x20or\n\x20ExecuteS\
treamingSql\x20requests\x20to\x20restrict\x20the\x20results\x20to\x20tho\
se\x20identified\x20by\n\x20this\x20partition\x20token.\n\n\r\n\x05\x04\
\x0f\x02\0\x05\x12\x04\x8a\x07\x02\x07\n\r\n\x05\x04\x0f\x02\0\x01\x12\
\x04\x8a\x07\x08\x17\n\r\n\x05\x04\x0f\x02\0\x03\x12\x04\x8a\x07\x1a\x1b\
\n\x99\x01\n\x02\x04\x10\x12\x06\x8f\x07\0\x95\x07\x01\x1a\x8a\x01\x20Th\
e\x20response\x20for\x20[PartitionQuery][google.spanner.v1.Spanner.Parti\
tionQuery]\n\x20or\x20[PartitionRead][google.spanner.v1.Spanner.Partitio\
nRead]\n\n\x0b\n\x03\x04\x10\x01\x12\x04\x8f\x07\x08\x19\n3\n\x04\x04\
\x10\x02\0\x12\x04\x91\x07\x02$\x1a%\x20Partitions\x20created\x20by\x20t\
his\x20request.\n\n\r\n\x05\x04\x10\x02\0\x04\x12\x04\x91\x07\x02\n\n\r\
\n\x05\x04\x10\x02\0\x06\x12\x04\x91\x07\x0b\x14\n\r\n\x05\x04\x10\x02\0\
\x01\x12\x04\x91\x07\x15\x1f\n\r\n\x05\x04\x10\x02\0\x03\x12\x04\x91\x07\
\"#\n4\n\x04\x04\x10\x02\x01\x12\x04\x94\x07\x02\x1e\x1a&\x20Transaction\
\x20created\x20by\x20this\x20request.\n\n\r\n\x05\x04\x10\x02\x01\x06\
\x12\x04\x94\x07\x02\r\n\r\n\x05\x04\x10\x02\x01\x01\x12\x04\x94\x07\x0e\
\x19\n\r\n\x05\x04\x10\x02\x01\x03\x12\x04\x94\x07\x1c\x1d\n\x85\x01\n\
\x02\x04\x11\x12\x06\x99\x07\0\xdc\x07\x01\x1aw\x20The\x20request\x20for\
\x20[Read][google.spanner.v1.Spanner.Read]\x20and\n\x20[StreamingRead][g\
oogle.spanner.v1.Spanner.StreamingRead].\n\n\x0b\n\x03\x04\x11\x01\x12\
\x04\x99\x07\x08\x13\nN\n\x04\x04\x11\x02\0\x12\x06\x9b\x07\x02\xa0\x07\
\x04\x1a>\x20Required.\x20The\x20session\x20in\x20which\x20the\x20read\
\x20should\x20be\x20performed.\n\n\r\n\x05\x04\x11\x02\0\x05\x12\x04\x9b\
\x07\x02\x08\n\r\n\x05\x04\x11\x02\0\x01\x12\x04\x9b\x07\t\x10\n\r\n\x05\
\x04\x11\x02\0\x03\x12\x04\x9b\x07\x13\x14\n\x0f\n\x05\x04\x11\x02\0\x08\
\x12\x06\x9b\x07\x15\xa0\x07\x03\n\x10\n\x08\x04\x11\x02\0\x08\x9c\x08\0\
\x12\x04\x9c\x07\x04*\n\x11\n\x07\x04\x11\x02\0\x08\x9f\x08\x12\x06\x9d\
\x07\x04\x9f\x07\x05\n\x87\x01\n\x04\x04\x11\x02\x01\x12\x04\xa4\x07\x02\
&\x1ay\x20The\x20transaction\x20to\x20use.\x20If\x20none\x20is\x20provid\
ed,\x20the\x20default\x20is\x20a\n\x20temporary\x20read-only\x20transact\
ion\x20with\x20strong\x20concurrency.\n\n\r\n\x05\x04\x11\x02\x01\x06\
\x12\x04\xa4\x07\x02\x15\n\r\n\x05\x04\x11\x02\x01\x01\x12\x04\xa4\x07\
\x16!\n\r\n\x05\x04\x11\x02\x01\x03\x12\x04\xa4\x07$%\nK\n\x04\x04\x11\
\x02\x02\x12\x04\xa7\x07\x02<\x1a=\x20Required.\x20The\x20name\x20of\x20\
the\x20table\x20in\x20the\x20database\x20to\x20be\x20read.\n\n\r\n\x05\
\x04\x11\x02\x02\x05\x12\x04\xa7\x07\x02\x08\n\r\n\x05\x04\x11\x02\x02\
\x01\x12\x04\xa7\x07\t\x0e\n\r\n\x05\x04\x11\x02\x02\x03\x12\x04\xa7\x07\
\x11\x12\n\r\n\x05\x04\x11\x02\x02\x08\x12\x04\xa7\x07\x13;\n\x10\n\x08\
\x04\x11\x02\x02\x08\x9c\x08\0\x12\x04\xa7\x07\x14:\n\xc4\x02\n\x04\x04\
\x11\x02\x03\x12\x04\xac\x07\x02\x13\x1a\xb5\x02\x20If\x20non-empty,\x20\
the\x20name\x20of\x20an\x20index\x20on\x20[table][google.spanner.v1.Read\
Request.table].\x20This\x20index\x20is\n\x20used\x20instead\x20of\x20the\
\x20table\x20primary\x20key\x20when\x20interpreting\x20[key_set][google.\
spanner.v1.ReadRequest.key_set]\n\x20and\x20sorting\x20result\x20rows.\
\x20See\x20[key_set][google.spanner.v1.ReadRequest.key_set]\x20for\x20fu\
rther\x20information.\n\n\r\n\x05\x04\x11\x02\x03\x05\x12\x04\xac\x07\
\x02\x08\n\r\n\x05\x04\x11\x02\x03\x01\x12\x04\xac\x07\t\x0e\n\r\n\x05\
\x04\x11\x02\x03\x03\x12\x04\xac\x07\x11\x12\n\x89\x01\n\x04\x04\x11\x02\
\x04\x12\x04\xb0\x07\x02G\x1a{\x20Required.\x20The\x20columns\x20of\x20[\
table][google.spanner.v1.ReadRequest.table]\x20to\x20be\x20returned\x20f\
or\x20each\x20row\x20matching\n\x20this\x20request.\n\n\r\n\x05\x04\x11\
\x02\x04\x04\x12\x04\xb0\x07\x02\n\n\r\n\x05\x04\x11\x02\x04\x05\x12\x04\
\xb0\x07\x0b\x11\n\r\n\x05\x04\x11\x02\x04\x01\x12\x04\xb0\x07\x12\x19\n\
\r\n\x05\x04\x11\x02\x04\x03\x12\x04\xb0\x07\x1c\x1d\n\r\n\x05\x04\x11\
\x02\x04\x08\x12\x04\xb0\x07\x1eF\n\x10\n\x08\x04\x11\x02\x04\x08\x9c\
\x08\0\x12\x04\xb0\x07\x1fE\n\xd6\x07\n\x04\x04\x11\x02\x05\x12\x04\xbe\
\x07\x02>\x1a\xc7\x07\x20Required.\x20`key_set`\x20identifies\x20the\x20\
rows\x20to\x20be\x20yielded.\x20`key_set`\x20names\x20the\n\x20primary\
\x20keys\x20of\x20the\x20rows\x20in\x20[table][google.spanner.v1.ReadReq\
uest.table]\x20to\x20be\x20yielded,\x20unless\x20[index][google.spanner.\
v1.ReadRequest.index]\n\x20is\x20present.\x20If\x20[index][google.spanne\
r.v1.ReadRequest.index]\x20is\x20present,\x20then\x20[key_set][google.sp\
anner.v1.ReadRequest.key_set]\x20instead\x20names\n\x20index\x20keys\x20\
in\x20[index][google.spanner.v1.ReadRequest.index].\n\n\x20If\x20the\x20\
[partition_token][google.spanner.v1.ReadRequest.partition_token]\x20fiel\
d\x20is\x20empty,\x20rows\x20are\x20yielded\n\x20in\x20table\x20primary\
\x20key\x20order\x20(if\x20[index][google.spanner.v1.ReadRequest.index]\
\x20is\x20empty)\x20or\x20index\x20key\x20order\n\x20(if\x20[index][goog\
le.spanner.v1.ReadRequest.index]\x20is\x20non-empty).\x20\x20If\x20the\
\x20[partition_token][google.spanner.v1.ReadRequest.partition_token]\x20\
field\x20is\x20not\n\x20empty,\x20rows\x20will\x20be\x20yielded\x20in\
\x20an\x20unspecified\x20order.\n\n\x20It\x20is\x20not\x20an\x20error\
\x20for\x20the\x20`key_set`\x20to\x20name\x20rows\x20that\x20do\x20not\n\
\x20exist\x20in\x20the\x20database.\x20Read\x20yields\x20nothing\x20for\
\x20nonexistent\x20rows.\n\n\r\n\x05\x04\x11\x02\x05\x06\x12\x04\xbe\x07\
\x02\x08\n\r\n\x05\x04\x11\x02\x05\x01\x12\x04\xbe\x07\t\x10\n\r\n\x05\
\x04\x11\x02\x05\x03\x12\x04\xbe\x07\x13\x14\n\r\n\x05\x04\x11\x02\x05\
\x08\x12\x04\xbe\x07\x15=\n\x10\n\x08\x04\x11\x02\x05\x08\x9c\x08\0\x12\
\x04\xbe\x07\x16<\n\xb7\x01\n\x04\x04\x11\x02\x06\x12\x04\xc3\x07\x02\
\x12\x1a\xa8\x01\x20If\x20greater\x20than\x20zero,\x20only\x20the\x20fir\
st\x20`limit`\x20rows\x20are\x20yielded.\x20If\x20`limit`\n\x20is\x20zer\
o,\x20the\x20default\x20is\x20no\x20limit.\x20A\x20limit\x20cannot\x20be\
\x20specified\x20if\n\x20`partition_token`\x20is\x20set.\n\n\r\n\x05\x04\
\x11\x02\x06\x05\x12\x04\xc3\x07\x02\x07\n\r\n\x05\x04\x11\x02\x06\x01\
\x12\x04\xc3\x07\x08\r\n\r\n\x05\x04\x11\x02\x06\x03\x12\x04\xc3\x07\x10\
\x11\n\xf9\x02\n\x04\x04\x11\x02\x07\x12\x04\xcb\x07\x02\x19\x1a\xea\x02\
\x20If\x20this\x20request\x20is\x20resuming\x20a\x20previously\x20interr\
upted\x20read,\n\x20`resume_token`\x20should\x20be\x20copied\x20from\x20\
the\x20last\n\x20[PartialResultSet][google.spanner.v1.PartialResultSet]\
\x20yielded\x20before\x20the\x20interruption.\x20Doing\x20this\n\x20enab\
les\x20the\x20new\x20read\x20to\x20resume\x20where\x20the\x20last\x20rea\
d\x20left\x20off.\x20The\n\x20rest\x20of\x20the\x20request\x20parameters\
\x20must\x20exactly\x20match\x20the\x20request\n\x20that\x20yielded\x20t\
his\x20token.\n\n\r\n\x05\x04\x11\x02\x07\x05\x12\x04\xcb\x07\x02\x07\n\
\r\n\x05\x04\x11\x02\x07\x01\x12\x04\xcb\x07\x08\x14\n\r\n\x05\x04\x11\
\x02\x07\x03\x12\x04\xcb\x07\x17\x18\n\x99\x02\n\x04\x04\x11\x02\x08\x12\
\x04\xd1\x07\x02\x1d\x1a\x8a\x02\x20If\x20present,\x20results\x20will\
\x20be\x20restricted\x20to\x20the\x20specified\x20partition\n\x20previou\
sly\x20created\x20using\x20PartitionRead().\x20\x20\x20\x20There\x20must\
\x20be\x20an\x20exact\n\x20match\x20for\x20the\x20values\x20of\x20fields\
\x20common\x20to\x20this\x20message\x20and\x20the\n\x20PartitionReadRequ\
est\x20message\x20used\x20to\x20create\x20this\x20partition_token.\n\n\r\
\n\x05\x04\x11\x02\x08\x05\x12\x04\xd1\x07\x02\x07\n\r\n\x05\x04\x11\x02\
\x08\x01\x12\x04\xd1\x07\x08\x17\n\r\n\x05\x04\x11\x02\x08\x03\x12\x04\
\xd1\x07\x1a\x1c\n0\n\x04\x04\x11\x02\t\x12\x04\xd4\x07\x02&\x1a\"\x20Co\
mmon\x20options\x20for\x20this\x20request.\n\n\r\n\x05\x04\x11\x02\t\x06\
\x12\x04\xd4\x07\x02\x10\n\r\n\x05\x04\x11\x02\t\x01\x12\x04\xd4\x07\x11\
\x20\n\r\n\x05\x04\x11\x02\t\x03\x12\x04\xd4\x07#%\n\x9e\x02\n\x04\x04\
\x11\x02\n\x12\x04\xdb\x07\x02\x1f\x1a\x8f\x02\x20If\x20this\x20is\x20fo\
r\x20a\x20partitioned\x20read\x20and\x20this\x20field\x20is\x20set\x20to\
\x20`true`,\x20the\n\x20request\x20will\x20be\x20executed\x20via\x20Span\
ner\x20independent\x20compute\x20resources.\n\n\x20If\x20the\x20field\
\x20is\x20set\x20to\x20`true`\x20but\x20the\x20request\x20does\x20not\
\x20set\n\x20`partition_token`,\x20the\x20API\x20will\x20return\x20an\
\x20`INVALID_ARGUMENT`\x20error.\n\n\r\n\x05\x04\x11\x02\n\x05\x12\x04\
\xdb\x07\x02\x06\n\r\n\x05\x04\x11\x02\n\x01\x12\x04\xdb\x07\x07\x19\n\r\
\n\x05\x04\x11\x02\n\x03\x12\x04\xdb\x07\x1c\x1e\n_\n\x02\x04\x12\x12\
\x06\xdf\x07\0\xf1\x07\x01\x1aQ\x20The\x20request\x20for\x20[BeginTransa\
ction][google.spanner.v1.Spanner.BeginTransaction].\n\n\x0b\n\x03\x04\
\x12\x01\x12\x04\xdf\x07\x08\x1f\nF\n\x04\x04\x12\x02\0\x12\x06\xe1\x07\
\x02\xe6\x07\x04\x1a6\x20Required.\x20The\x20session\x20in\x20which\x20t\
he\x20transaction\x20runs.\n\n\r\n\x05\x04\x12\x02\0\x05\x12\x04\xe1\x07\
\x02\x08\n\r\n\x05\x04\x12\x02\0\x01\x12\x04\xe1\x07\t\x10\n\r\n\x05\x04\
\x12\x02\0\x03\x12\x04\xe1\x07\x13\x14\n\x0f\n\x05\x04\x12\x02\0\x08\x12\
\x06\xe1\x07\x15\xe6\x07\x03\n\x10\n\x08\x04\x12\x02\0\x08\x9c\x08\0\x12\
\x04\xe2\x07\x04*\n\x11\n\x07\x04\x12\x02\0\x08\x9f\x08\x12\x06\xe3\x07\
\x04\xe5\x07\x05\n:\n\x04\x04\x12\x02\x01\x12\x04\xe9\x07\x02J\x1a,\x20R\
equired.\x20Options\x20for\x20the\x20new\x20transaction.\n\n\r\n\x05\x04\
\x12\x02\x01\x06\x12\x04\xe9\x07\x02\x14\n\r\n\x05\x04\x12\x02\x01\x01\
\x12\x04\xe9\x07\x15\x1c\n\r\n\x05\x04\x12\x02\x01\x03\x12\x04\xe9\x07\
\x1f\x20\n\r\n\x05\x04\x12\x02\x01\x08\x12\x04\xe9\x07!I\n\x10\n\x08\x04\
\x12\x02\x01\x08\x9c\x08\0\x12\x04\xe9\x07\"H\n\x96\x02\n\x04\x04\x12\
\x02\x02\x12\x04\xf0\x07\x02%\x1a\x87\x02\x20Common\x20options\x20for\
\x20this\x20request.\n\x20Priority\x20is\x20ignored\x20for\x20this\x20re\
quest.\x20Setting\x20the\x20priority\x20in\x20this\n\x20request_options\
\x20struct\x20will\x20not\x20do\x20anything.\x20To\x20set\x20the\x20prio\
rity\x20for\x20a\n\x20transaction,\x20set\x20it\x20on\x20the\x20reads\
\x20and\x20writes\x20that\x20are\x20part\x20of\x20this\n\x20transaction\
\x20instead.\n\n\r\n\x05\x04\x12\x02\x02\x06\x12\x04\xf0\x07\x02\x10\n\r\
\n\x05\x04\x12\x02\x02\x01\x12\x04\xf0\x07\x11\x20\n\r\n\x05\x04\x12\x02\
\x02\x03\x12\x04\xf0\x07#$\nK\n\x02\x04\x13\x12\x06\xf4\x07\0\x9a\x08\
\x01\x1a=\x20The\x20request\x20for\x20[Commit][google.spanner.v1.Spanner\
.Commit].\n\n\x0b\n\x03\x04\x13\x01\x12\x04\xf4\x07\x08\x15\n\\\n\x04\
\x04\x13\x02\0\x12\x06\xf6\x07\x02\xfb\x07\x04\x1aL\x20Required.\x20The\
\x20session\x20in\x20which\x20the\x20transaction\x20to\x20be\x20committe\
d\x20is\x20running.\n\n\r\n\x05\x04\x13\x02\0\x05\x12\x04\xf6\x07\x02\
\x08\n\r\n\x05\x04\x13\x02\0\x01\x12\x04\xf6\x07\t\x10\n\r\n\x05\x04\x13\
\x02\0\x03\x12\x04\xf6\x07\x13\x14\n\x0f\n\x05\x04\x13\x02\0\x08\x12\x06\
\xf6\x07\x15\xfb\x07\x03\n\x10\n\x08\x04\x13\x02\0\x08\x9c\x08\0\x12\x04\
\xf7\x07\x04*\n\x11\n\x07\x04\x13\x02\0\x08\x9f\x08\x12\x06\xf8\x07\x04\
\xfa\x07\x05\n?\n\x04\x04\x13\x08\0\x12\x06\xfe\x07\x02\x8c\x08\x03\x1a/\
\x20Required.\x20The\x20transaction\x20in\x20which\x20to\x20commit.\n\n\
\r\n\x05\x04\x13\x08\0\x01\x12\x04\xfe\x07\x08\x13\n8\n\x04\x04\x13\x02\
\x01\x12\x04\x80\x08\x04\x1d\x1a*\x20Commit\x20a\x20previously-started\
\x20transaction.\n\n\r\n\x05\x04\x13\x02\x01\x05\x12\x04\x80\x08\x04\t\n\
\r\n\x05\x04\x13\x02\x01\x01\x12\x04\x80\x08\n\x18\n\r\n\x05\x04\x13\x02\
\x01\x03\x12\x04\x80\x08\x1b\x1c\n\xa4\x04\n\x04\x04\x13\x02\x02\x12\x04\
\x8b\x08\x042\x1a\x95\x04\x20Execute\x20mutations\x20in\x20a\x20temporar\
y\x20transaction.\x20Note\x20that\x20unlike\n\x20commit\x20of\x20a\x20pr\
eviously-started\x20transaction,\x20commit\x20with\x20a\n\x20temporary\
\x20transaction\x20is\x20non-idempotent.\x20That\x20is,\x20if\x20the\n\
\x20`CommitRequest`\x20is\x20sent\x20to\x20Cloud\x20Spanner\x20more\x20t\
han\x20once\x20(for\n\x20instance,\x20due\x20to\x20retries\x20in\x20the\
\x20application,\x20or\x20in\x20the\n\x20transport\x20library),\x20it\
\x20is\x20possible\x20that\x20the\x20mutations\x20are\n\x20executed\x20m\
ore\x20than\x20once.\x20If\x20this\x20is\x20undesirable,\x20use\n\x20[Be\
ginTransaction][google.spanner.v1.Spanner.BeginTransaction]\x20and\n\x20\
[Commit][google.spanner.v1.Spanner.Commit]\x20instead.\n\n\r\n\x05\x04\
\x13\x02\x02\x06\x12\x04\x8b\x08\x04\x16\n\r\n\x05\x04\x13\x02\x02\x01\
\x12\x04\x8b\x08\x17-\n\r\n\x05\x04\x13\x02\x02\x03\x12\x04\x8b\x0801\n\
\x9b\x01\n\x04\x04\x13\x02\x03\x12\x04\x91\x08\x02\"\x1a\x8c\x01\x20The\
\x20mutations\x20to\x20be\x20executed\x20when\x20this\x20transaction\x20\
commits.\x20All\n\x20mutations\x20are\x20applied\x20atomically,\x20in\
\x20the\x20order\x20they\x20appear\x20in\n\x20this\x20list.\n\n\r\n\x05\
\x04\x13\x02\x03\x04\x12\x04\x91\x08\x02\n\n\r\n\x05\x04\x13\x02\x03\x06\
\x12\x04\x91\x08\x0b\x13\n\r\n\x05\x04\x13\x02\x03\x01\x12\x04\x91\x08\
\x14\x1d\n\r\n\x05\x04\x13\x02\x03\x03\x12\x04\x91\x08\x20!\n\xbb\x01\n\
\x04\x04\x13\x02\x04\x12\x04\x96\x08\x02\x1f\x1a\xac\x01\x20If\x20`true`\
,\x20then\x20statistics\x20related\x20to\x20the\x20transaction\x20will\
\x20be\x20included\x20in\n\x20the\x20[CommitResponse][google.spanner.v1.\
CommitResponse.commit_stats].\x20Default\x20value\x20is\n\x20`false`.\n\
\n\r\n\x05\x04\x13\x02\x04\x05\x12\x04\x96\x08\x02\x06\n\r\n\x05\x04\x13\
\x02\x04\x01\x12\x04\x96\x08\x07\x1a\n\r\n\x05\x04\x13\x02\x04\x03\x12\
\x04\x96\x08\x1d\x1e\n0\n\x04\x04\x13\x02\x05\x12\x04\x99\x08\x02%\x1a\"\
\x20Common\x20options\x20for\x20this\x20request.\n\n\r\n\x05\x04\x13\x02\
\x05\x06\x12\x04\x99\x08\x02\x10\n\r\n\x05\x04\x13\x02\x05\x01\x12\x04\
\x99\x08\x11\x20\n\r\n\x05\x04\x13\x02\x05\x03\x12\x04\x99\x08#$\nO\n\
\x02\x04\x14\x12\x06\x9d\x08\0\xa8\x08\x01\x1aA\x20The\x20request\x20for\
\x20[Rollback][google.spanner.v1.Spanner.Rollback].\n\n\x0b\n\x03\x04\
\x14\x01\x12\x04\x9d\x08\x08\x17\nY\n\x04\x04\x14\x02\0\x12\x06\x9f\x08\
\x02\xa4\x08\x04\x1aI\x20Required.\x20The\x20session\x20in\x20which\x20t\
he\x20transaction\x20to\x20roll\x20back\x20is\x20running.\n\n\r\n\x05\
\x04\x14\x02\0\x05\x12\x04\x9f\x08\x02\x08\n\r\n\x05\x04\x14\x02\0\x01\
\x12\x04\x9f\x08\t\x10\n\r\n\x05\x04\x14\x02\0\x03\x12\x04\x9f\x08\x13\
\x14\n\x0f\n\x05\x04\x14\x02\0\x08\x12\x06\x9f\x08\x15\xa4\x08\x03\n\x10\
\n\x08\x04\x14\x02\0\x08\x9c\x08\0\x12\x04\xa0\x08\x04*\n\x11\n\x07\x04\
\x14\x02\0\x08\x9f\x08\x12\x06\xa1\x08\x04\xa3\x08\x05\n7\n\x04\x04\x14\
\x02\x01\x12\x04\xa7\x08\x02D\x1a)\x20Required.\x20The\x20transaction\
\x20to\x20roll\x20back.\n\n\r\n\x05\x04\x14\x02\x01\x05\x12\x04\xa7\x08\
\x02\x07\n\r\n\x05\x04\x14\x02\x01\x01\x12\x04\xa7\x08\x08\x16\n\r\n\x05\
\x04\x14\x02\x01\x03\x12\x04\xa7\x08\x19\x1a\n\r\n\x05\x04\x14\x02\x01\
\x08\x12\x04\xa7\x08\x1bC\n\x10\n\x08\x04\x14\x02\x01\x08\x9c\x08\0\x12\
\x04\xa7\x08\x1cB\nS\n\x02\x04\x15\x12\x06\xab\x08\0\xc0\x08\x01\x1aE\
\x20The\x20request\x20for\x20[BatchWrite][google.spanner.v1.Spanner.Batc\
hWrite].\n\n\x0b\n\x03\x04\x15\x01\x12\x04\xab\x08\x08\x19\n\xea\x01\n\
\x04\x04\x15\x03\0\x12\x06\xaf\x08\x02\xb2\x08\x03\x1a\xd9\x01\x20A\x20g\
roup\x20of\x20mutations\x20to\x20be\x20committed\x20together.\x20Related\
\x20mutations\x20should\x20be\n\x20placed\x20in\x20a\x20group.\x20For\
\x20example,\x20two\x20mutations\x20inserting\x20rows\x20with\x20the\x20\
same\n\x20primary\x20key\x20prefix\x20in\x20both\x20parent\x20and\x20chi\
ld\x20tables\x20are\x20related.\n\n\r\n\x05\x04\x15\x03\0\x01\x12\x04\
\xaf\x08\n\x17\n8\n\x06\x04\x15\x03\0\x02\0\x12\x04\xb1\x08\x04M\x1a(\
\x20Required.\x20The\x20mutations\x20in\x20this\x20group.\n\n\x0f\n\x07\
\x04\x15\x03\0\x02\0\x04\x12\x04\xb1\x08\x04\x0c\n\x0f\n\x07\x04\x15\x03\
\0\x02\0\x06\x12\x04\xb1\x08\r\x15\n\x0f\n\x07\x04\x15\x03\0\x02\0\x01\
\x12\x04\xb1\x08\x16\x1f\n\x0f\n\x07\x04\x15\x03\0\x02\0\x03\x12\x04\xb1\
\x08\"#\n\x0f\n\x07\x04\x15\x03\0\x02\0\x08\x12\x04\xb1\x08$L\n\x12\n\n\
\x04\x15\x03\0\x02\0\x08\x9c\x08\0\x12\x04\xb1\x08%K\nP\n\x04\x04\x15\
\x02\0\x12\x06\xb5\x08\x02\xb8\x08\x04\x1a@\x20Required.\x20The\x20sessi\
on\x20in\x20which\x20the\x20batch\x20request\x20is\x20to\x20be\x20run.\n\
\n\r\n\x05\x04\x15\x02\0\x05\x12\x04\xb5\x08\x02\x08\n\r\n\x05\x04\x15\
\x02\0\x01\x12\x04\xb5\x08\t\x10\n\r\n\x05\x04\x15\x02\0\x03\x12\x04\xb5\
\x08\x13\x14\n\x0f\n\x05\x04\x15\x02\0\x08\x12\x06\xb5\x08\x15\xb8\x08\
\x03\n\x10\n\x08\x04\x15\x02\0\x08\x9c\x08\0\x12\x04\xb6\x08\x04*\n\x0f\
\n\x07\x04\x15\x02\0\x08\x9f\x08\x12\x04\xb7\x08\x04P\n0\n\x04\x04\x15\
\x02\x01\x12\x04\xbb\x08\x02%\x1a\"\x20Common\x20options\x20for\x20this\
\x20request.\n\n\r\n\x05\x04\x15\x02\x01\x06\x12\x04\xbb\x08\x02\x10\n\r\
\n\x05\x04\x15\x02\x01\x01\x12\x04\xbb\x08\x11\x20\n\r\n\x05\x04\x15\x02\
\x01\x03\x12\x04\xbb\x08#$\nB\n\x04\x04\x15\x02\x02\x12\x06\xbe\x08\x02\
\xbf\x08/\x1a2\x20Required.\x20The\x20groups\x20of\x20mutations\x20to\
\x20be\x20applied.\n\n\r\n\x05\x04\x15\x02\x02\x04\x12\x04\xbe\x08\x02\n\
\n\r\n\x05\x04\x15\x02\x02\x06\x12\x04\xbe\x08\x0b\x18\n\r\n\x05\x04\x15\
\x02\x02\x01\x12\x04\xbe\x08\x19(\n\r\n\x05\x04\x15\x02\x02\x03\x12\x04\
\xbe\x08+,\n\r\n\x05\x04\x15\x02\x02\x08\x12\x04\xbf\x08\x06.\n\x10\n\
\x08\x04\x15\x02\x02\x08\x9c\x08\0\x12\x04\xbf\x08\x07-\n<\n\x02\x04\x16\
\x12\x06\xc3\x08\0\xce\x08\x01\x1a.\x20The\x20result\x20of\x20applying\
\x20a\x20batch\x20of\x20mutations.\n\n\x0b\n\x03\x04\x16\x01\x12\x04\xc3\
\x08\x08\x1a\n\x98\x01\n\x04\x04\x16\x02\0\x12\x04\xc6\x08\x02\x1d\x1a\
\x89\x01\x20The\x20mutation\x20groups\x20applied\x20in\x20this\x20batch.\
\x20The\x20values\x20index\x20into\x20the\n\x20`mutation_groups`\x20fiel\
d\x20in\x20the\x20corresponding\x20`BatchWriteRequest`.\n\n\r\n\x05\x04\
\x16\x02\0\x04\x12\x04\xc6\x08\x02\n\n\r\n\x05\x04\x16\x02\0\x05\x12\x04\
\xc6\x08\x0b\x10\n\r\n\x05\x04\x16\x02\0\x01\x12\x04\xc6\x08\x11\x18\n\r\
\n\x05\x04\x16\x02\0\x03\x12\x04\xc6\x08\x1b\x1c\nW\n\x04\x04\x16\x02\
\x01\x12\x04\xc9\x08\x02\x1f\x1aI\x20An\x20`OK`\x20status\x20indicates\
\x20success.\x20Any\x20other\x20status\x20indicates\x20a\x20failure.\n\n\
\r\n\x05\x04\x16\x02\x01\x06\x12\x04\xc9\x08\x02\x13\n\r\n\x05\x04\x16\
\x02\x01\x01\x12\x04\xc9\x08\x14\x1a\n\r\n\x05\x04\x16\x02\x01\x03\x12\
\x04\xc9\x08\x1d\x1e\n\x80\x01\n\x04\x04\x16\x02\x02\x12\x04\xcd\x08\x02\
1\x1ar\x20The\x20commit\x20timestamp\x20of\x20the\x20transaction\x20that\
\x20applied\x20this\x20batch.\n\x20Present\x20if\x20`status`\x20is\x20`O\
K`,\x20absent\x20otherwise.\n\n\r\n\x05\x04\x16\x02\x02\x06\x12\x04\xcd\
\x08\x02\x1b\n\r\n\x05\x04\x16\x02\x02\x01\x12\x04\xcd\x08\x1c,\n\r\n\
\x05\x04\x16\x02\x02\x03\x12\x04\xcd\x08/0b\x06proto3\
";
static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
}
pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
file_descriptor_proto_lazy.get(|| {
parse_descriptor_proto()
})
}