1#![allow(unknown_lints)]
6#![allow(clippy::all)]
7
8#![allow(unused_attributes)]
9#![cfg_attr(rustfmt, rustfmt::skip)]
10
11#![allow(box_pointers)]
12#![allow(dead_code)]
13#![allow(missing_docs)]
14#![allow(non_camel_case_types)]
15#![allow(non_snake_case)]
16#![allow(non_upper_case_globals)]
17#![allow(trivial_casts)]
18#![allow(unused_imports)]
19#![allow(unused_results)]
20#[derive(PartialEq,Clone,Default)]
27pub struct ResultSet {
28 pub metadata: ::protobuf::SingularPtrField<ResultSetMetadata>,
30 pub rows: ::protobuf::RepeatedField<::protobuf::well_known_types::ListValue>,
31 pub stats: ::protobuf::SingularPtrField<ResultSetStats>,
32 pub unknown_fields: ::protobuf::UnknownFields,
34 pub cached_size: ::protobuf::CachedSize,
35}
36
37impl<'a> ::std::default::Default for &'a ResultSet {
38 fn default() -> &'a ResultSet {
39 <ResultSet as ::protobuf::Message>::default_instance()
40 }
41}
42
43impl ResultSet {
44 pub fn new() -> ResultSet {
45 ::std::default::Default::default()
46 }
47
48 pub fn get_metadata(&self) -> &ResultSetMetadata {
52 self.metadata.as_ref().unwrap_or_else(|| <ResultSetMetadata as ::protobuf::Message>::default_instance())
53 }
54 pub fn clear_metadata(&mut self) {
55 self.metadata.clear();
56 }
57
58 pub fn has_metadata(&self) -> bool {
59 self.metadata.is_some()
60 }
61
62 pub fn set_metadata(&mut self, v: ResultSetMetadata) {
64 self.metadata = ::protobuf::SingularPtrField::some(v);
65 }
66
67 pub fn mut_metadata(&mut self) -> &mut ResultSetMetadata {
70 if self.metadata.is_none() {
71 self.metadata.set_default();
72 }
73 self.metadata.as_mut().unwrap()
74 }
75
76 pub fn take_metadata(&mut self) -> ResultSetMetadata {
78 self.metadata.take().unwrap_or_else(|| ResultSetMetadata::new())
79 }
80
81 pub fn get_rows(&self) -> &[::protobuf::well_known_types::ListValue] {
85 &self.rows
86 }
87 pub fn clear_rows(&mut self) {
88 self.rows.clear();
89 }
90
91 pub fn set_rows(&mut self, v: ::protobuf::RepeatedField<::protobuf::well_known_types::ListValue>) {
93 self.rows = v;
94 }
95
96 pub fn mut_rows(&mut self) -> &mut ::protobuf::RepeatedField<::protobuf::well_known_types::ListValue> {
98 &mut self.rows
99 }
100
101 pub fn take_rows(&mut self) -> ::protobuf::RepeatedField<::protobuf::well_known_types::ListValue> {
103 ::std::mem::replace(&mut self.rows, ::protobuf::RepeatedField::new())
104 }
105
106 pub fn get_stats(&self) -> &ResultSetStats {
110 self.stats.as_ref().unwrap_or_else(|| <ResultSetStats as ::protobuf::Message>::default_instance())
111 }
112 pub fn clear_stats(&mut self) {
113 self.stats.clear();
114 }
115
116 pub fn has_stats(&self) -> bool {
117 self.stats.is_some()
118 }
119
120 pub fn set_stats(&mut self, v: ResultSetStats) {
122 self.stats = ::protobuf::SingularPtrField::some(v);
123 }
124
125 pub fn mut_stats(&mut self) -> &mut ResultSetStats {
128 if self.stats.is_none() {
129 self.stats.set_default();
130 }
131 self.stats.as_mut().unwrap()
132 }
133
134 pub fn take_stats(&mut self) -> ResultSetStats {
136 self.stats.take().unwrap_or_else(|| ResultSetStats::new())
137 }
138}
139
140impl ::protobuf::Message for ResultSet {
141 fn is_initialized(&self) -> bool {
142 for v in &self.metadata {
143 if !v.is_initialized() {
144 return false;
145 }
146 };
147 for v in &self.rows {
148 if !v.is_initialized() {
149 return false;
150 }
151 };
152 for v in &self.stats {
153 if !v.is_initialized() {
154 return false;
155 }
156 };
157 true
158 }
159
160 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
161 while !is.eof()? {
162 let (field_number, wire_type) = is.read_tag_unpack()?;
163 match field_number {
164 1 => {
165 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.metadata)?;
166 },
167 2 => {
168 ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.rows)?;
169 },
170 3 => {
171 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.stats)?;
172 },
173 _ => {
174 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
175 },
176 };
177 }
178 ::std::result::Result::Ok(())
179 }
180
181 #[allow(unused_variables)]
183 fn compute_size(&self) -> u32 {
184 let mut my_size = 0;
185 if let Some(ref v) = self.metadata.as_ref() {
186 let len = v.compute_size();
187 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
188 }
189 for value in &self.rows {
190 let len = value.compute_size();
191 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
192 };
193 if let Some(ref v) = self.stats.as_ref() {
194 let len = v.compute_size();
195 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
196 }
197 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
198 self.cached_size.set(my_size);
199 my_size
200 }
201
202 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
203 if let Some(ref v) = self.metadata.as_ref() {
204 os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
205 os.write_raw_varint32(v.get_cached_size())?;
206 v.write_to_with_cached_sizes(os)?;
207 }
208 for v in &self.rows {
209 os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
210 os.write_raw_varint32(v.get_cached_size())?;
211 v.write_to_with_cached_sizes(os)?;
212 };
213 if let Some(ref v) = self.stats.as_ref() {
214 os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
215 os.write_raw_varint32(v.get_cached_size())?;
216 v.write_to_with_cached_sizes(os)?;
217 }
218 os.write_unknown_fields(self.get_unknown_fields())?;
219 ::std::result::Result::Ok(())
220 }
221
222 fn get_cached_size(&self) -> u32 {
223 self.cached_size.get()
224 }
225
226 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
227 &self.unknown_fields
228 }
229
230 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
231 &mut self.unknown_fields
232 }
233
234 fn as_any(&self) -> &dyn (::std::any::Any) {
235 self as &dyn (::std::any::Any)
236 }
237 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
238 self as &mut dyn (::std::any::Any)
239 }
240 fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
241 self
242 }
243
244 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
245 Self::descriptor_static()
246 }
247
248 fn new() -> ResultSet {
249 ResultSet::new()
250 }
251
252 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
253 static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
254 descriptor.get(|| {
255 let mut fields = ::std::vec::Vec::new();
256 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ResultSetMetadata>>(
257 "metadata",
258 |m: &ResultSet| { &m.metadata },
259 |m: &mut ResultSet| { &mut m.metadata },
260 ));
261 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::ListValue>>(
262 "rows",
263 |m: &ResultSet| { &m.rows },
264 |m: &mut ResultSet| { &mut m.rows },
265 ));
266 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ResultSetStats>>(
267 "stats",
268 |m: &ResultSet| { &m.stats },
269 |m: &mut ResultSet| { &mut m.stats },
270 ));
271 ::protobuf::reflect::MessageDescriptor::new_pb_name::<ResultSet>(
272 "ResultSet",
273 fields,
274 file_descriptor_proto()
275 )
276 })
277 }
278
279 fn default_instance() -> &'static ResultSet {
280 static instance: ::protobuf::rt::LazyV2<ResultSet> = ::protobuf::rt::LazyV2::INIT;
281 instance.get(ResultSet::new)
282 }
283}
284
285impl ::protobuf::Clear for ResultSet {
286 fn clear(&mut self) {
287 self.metadata.clear();
288 self.rows.clear();
289 self.stats.clear();
290 self.unknown_fields.clear();
291 }
292}
293
294impl ::std::fmt::Debug for ResultSet {
295 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
296 ::protobuf::text_format::fmt(self, f)
297 }
298}
299
300impl ::protobuf::reflect::ProtobufValue for ResultSet {
301 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
302 ::protobuf::reflect::ReflectValueRef::Message(self)
303 }
304}
305
306#[derive(PartialEq,Clone,Default)]
307pub struct PartialResultSet {
308 pub metadata: ::protobuf::SingularPtrField<ResultSetMetadata>,
310 pub values: ::protobuf::RepeatedField<::protobuf::well_known_types::Value>,
311 pub chunked_value: bool,
312 pub resume_token: ::std::vec::Vec<u8>,
313 pub stats: ::protobuf::SingularPtrField<ResultSetStats>,
314 pub unknown_fields: ::protobuf::UnknownFields,
316 pub cached_size: ::protobuf::CachedSize,
317}
318
319impl<'a> ::std::default::Default for &'a PartialResultSet {
320 fn default() -> &'a PartialResultSet {
321 <PartialResultSet as ::protobuf::Message>::default_instance()
322 }
323}
324
325impl PartialResultSet {
326 pub fn new() -> PartialResultSet {
327 ::std::default::Default::default()
328 }
329
330 pub fn get_metadata(&self) -> &ResultSetMetadata {
334 self.metadata.as_ref().unwrap_or_else(|| <ResultSetMetadata as ::protobuf::Message>::default_instance())
335 }
336 pub fn clear_metadata(&mut self) {
337 self.metadata.clear();
338 }
339
340 pub fn has_metadata(&self) -> bool {
341 self.metadata.is_some()
342 }
343
344 pub fn set_metadata(&mut self, v: ResultSetMetadata) {
346 self.metadata = ::protobuf::SingularPtrField::some(v);
347 }
348
349 pub fn mut_metadata(&mut self) -> &mut ResultSetMetadata {
352 if self.metadata.is_none() {
353 self.metadata.set_default();
354 }
355 self.metadata.as_mut().unwrap()
356 }
357
358 pub fn take_metadata(&mut self) -> ResultSetMetadata {
360 self.metadata.take().unwrap_or_else(|| ResultSetMetadata::new())
361 }
362
363 pub fn get_values(&self) -> &[::protobuf::well_known_types::Value] {
367 &self.values
368 }
369 pub fn clear_values(&mut self) {
370 self.values.clear();
371 }
372
373 pub fn set_values(&mut self, v: ::protobuf::RepeatedField<::protobuf::well_known_types::Value>) {
375 self.values = v;
376 }
377
378 pub fn mut_values(&mut self) -> &mut ::protobuf::RepeatedField<::protobuf::well_known_types::Value> {
380 &mut self.values
381 }
382
383 pub fn take_values(&mut self) -> ::protobuf::RepeatedField<::protobuf::well_known_types::Value> {
385 ::std::mem::replace(&mut self.values, ::protobuf::RepeatedField::new())
386 }
387
388 pub fn get_chunked_value(&self) -> bool {
392 self.chunked_value
393 }
394 pub fn clear_chunked_value(&mut self) {
395 self.chunked_value = false;
396 }
397
398 pub fn set_chunked_value(&mut self, v: bool) {
400 self.chunked_value = v;
401 }
402
403 pub fn get_resume_token(&self) -> &[u8] {
407 &self.resume_token
408 }
409 pub fn clear_resume_token(&mut self) {
410 self.resume_token.clear();
411 }
412
413 pub fn set_resume_token(&mut self, v: ::std::vec::Vec<u8>) {
415 self.resume_token = v;
416 }
417
418 pub fn mut_resume_token(&mut self) -> &mut ::std::vec::Vec<u8> {
421 &mut self.resume_token
422 }
423
424 pub fn take_resume_token(&mut self) -> ::std::vec::Vec<u8> {
426 ::std::mem::replace(&mut self.resume_token, ::std::vec::Vec::new())
427 }
428
429 pub fn get_stats(&self) -> &ResultSetStats {
433 self.stats.as_ref().unwrap_or_else(|| <ResultSetStats as ::protobuf::Message>::default_instance())
434 }
435 pub fn clear_stats(&mut self) {
436 self.stats.clear();
437 }
438
439 pub fn has_stats(&self) -> bool {
440 self.stats.is_some()
441 }
442
443 pub fn set_stats(&mut self, v: ResultSetStats) {
445 self.stats = ::protobuf::SingularPtrField::some(v);
446 }
447
448 pub fn mut_stats(&mut self) -> &mut ResultSetStats {
451 if self.stats.is_none() {
452 self.stats.set_default();
453 }
454 self.stats.as_mut().unwrap()
455 }
456
457 pub fn take_stats(&mut self) -> ResultSetStats {
459 self.stats.take().unwrap_or_else(|| ResultSetStats::new())
460 }
461}
462
463impl ::protobuf::Message for PartialResultSet {
464 fn is_initialized(&self) -> bool {
465 for v in &self.metadata {
466 if !v.is_initialized() {
467 return false;
468 }
469 };
470 for v in &self.values {
471 if !v.is_initialized() {
472 return false;
473 }
474 };
475 for v in &self.stats {
476 if !v.is_initialized() {
477 return false;
478 }
479 };
480 true
481 }
482
483 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
484 while !is.eof()? {
485 let (field_number, wire_type) = is.read_tag_unpack()?;
486 match field_number {
487 1 => {
488 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.metadata)?;
489 },
490 2 => {
491 ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.values)?;
492 },
493 3 => {
494 if wire_type != ::protobuf::wire_format::WireTypeVarint {
495 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
496 }
497 let tmp = is.read_bool()?;
498 self.chunked_value = tmp;
499 },
500 4 => {
501 ::protobuf::rt::read_singular_proto3_bytes_into(wire_type, is, &mut self.resume_token)?;
502 },
503 5 => {
504 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.stats)?;
505 },
506 _ => {
507 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
508 },
509 };
510 }
511 ::std::result::Result::Ok(())
512 }
513
514 #[allow(unused_variables)]
516 fn compute_size(&self) -> u32 {
517 let mut my_size = 0;
518 if let Some(ref v) = self.metadata.as_ref() {
519 let len = v.compute_size();
520 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
521 }
522 for value in &self.values {
523 let len = value.compute_size();
524 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
525 };
526 if self.chunked_value != false {
527 my_size += 2;
528 }
529 if !self.resume_token.is_empty() {
530 my_size += ::protobuf::rt::bytes_size(4, &self.resume_token);
531 }
532 if let Some(ref v) = self.stats.as_ref() {
533 let len = v.compute_size();
534 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
535 }
536 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
537 self.cached_size.set(my_size);
538 my_size
539 }
540
541 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
542 if let Some(ref v) = self.metadata.as_ref() {
543 os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
544 os.write_raw_varint32(v.get_cached_size())?;
545 v.write_to_with_cached_sizes(os)?;
546 }
547 for v in &self.values {
548 os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
549 os.write_raw_varint32(v.get_cached_size())?;
550 v.write_to_with_cached_sizes(os)?;
551 };
552 if self.chunked_value != false {
553 os.write_bool(3, self.chunked_value)?;
554 }
555 if !self.resume_token.is_empty() {
556 os.write_bytes(4, &self.resume_token)?;
557 }
558 if let Some(ref v) = self.stats.as_ref() {
559 os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
560 os.write_raw_varint32(v.get_cached_size())?;
561 v.write_to_with_cached_sizes(os)?;
562 }
563 os.write_unknown_fields(self.get_unknown_fields())?;
564 ::std::result::Result::Ok(())
565 }
566
567 fn get_cached_size(&self) -> u32 {
568 self.cached_size.get()
569 }
570
571 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
572 &self.unknown_fields
573 }
574
575 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
576 &mut self.unknown_fields
577 }
578
579 fn as_any(&self) -> &dyn (::std::any::Any) {
580 self as &dyn (::std::any::Any)
581 }
582 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
583 self as &mut dyn (::std::any::Any)
584 }
585 fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
586 self
587 }
588
589 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
590 Self::descriptor_static()
591 }
592
593 fn new() -> PartialResultSet {
594 PartialResultSet::new()
595 }
596
597 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
598 static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
599 descriptor.get(|| {
600 let mut fields = ::std::vec::Vec::new();
601 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ResultSetMetadata>>(
602 "metadata",
603 |m: &PartialResultSet| { &m.metadata },
604 |m: &mut PartialResultSet| { &mut m.metadata },
605 ));
606 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Value>>(
607 "values",
608 |m: &PartialResultSet| { &m.values },
609 |m: &mut PartialResultSet| { &mut m.values },
610 ));
611 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
612 "chunked_value",
613 |m: &PartialResultSet| { &m.chunked_value },
614 |m: &mut PartialResultSet| { &mut m.chunked_value },
615 ));
616 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
617 "resume_token",
618 |m: &PartialResultSet| { &m.resume_token },
619 |m: &mut PartialResultSet| { &mut m.resume_token },
620 ));
621 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ResultSetStats>>(
622 "stats",
623 |m: &PartialResultSet| { &m.stats },
624 |m: &mut PartialResultSet| { &mut m.stats },
625 ));
626 ::protobuf::reflect::MessageDescriptor::new_pb_name::<PartialResultSet>(
627 "PartialResultSet",
628 fields,
629 file_descriptor_proto()
630 )
631 })
632 }
633
634 fn default_instance() -> &'static PartialResultSet {
635 static instance: ::protobuf::rt::LazyV2<PartialResultSet> = ::protobuf::rt::LazyV2::INIT;
636 instance.get(PartialResultSet::new)
637 }
638}
639
640impl ::protobuf::Clear for PartialResultSet {
641 fn clear(&mut self) {
642 self.metadata.clear();
643 self.values.clear();
644 self.chunked_value = false;
645 self.resume_token.clear();
646 self.stats.clear();
647 self.unknown_fields.clear();
648 }
649}
650
651impl ::std::fmt::Debug for PartialResultSet {
652 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
653 ::protobuf::text_format::fmt(self, f)
654 }
655}
656
657impl ::protobuf::reflect::ProtobufValue for PartialResultSet {
658 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
659 ::protobuf::reflect::ReflectValueRef::Message(self)
660 }
661}
662
663#[derive(PartialEq,Clone,Default)]
664pub struct ResultSetMetadata {
665 pub row_type: ::protobuf::SingularPtrField<super::type_pb::StructType>,
667 pub transaction: ::protobuf::SingularPtrField<super::transaction::Transaction>,
668 pub undeclared_parameters: ::protobuf::SingularPtrField<super::type_pb::StructType>,
669 pub unknown_fields: ::protobuf::UnknownFields,
671 pub cached_size: ::protobuf::CachedSize,
672}
673
674impl<'a> ::std::default::Default for &'a ResultSetMetadata {
675 fn default() -> &'a ResultSetMetadata {
676 <ResultSetMetadata as ::protobuf::Message>::default_instance()
677 }
678}
679
680impl ResultSetMetadata {
681 pub fn new() -> ResultSetMetadata {
682 ::std::default::Default::default()
683 }
684
685 pub fn get_row_type(&self) -> &super::type_pb::StructType {
689 self.row_type.as_ref().unwrap_or_else(|| <super::type_pb::StructType as ::protobuf::Message>::default_instance())
690 }
691 pub fn clear_row_type(&mut self) {
692 self.row_type.clear();
693 }
694
695 pub fn has_row_type(&self) -> bool {
696 self.row_type.is_some()
697 }
698
699 pub fn set_row_type(&mut self, v: super::type_pb::StructType) {
701 self.row_type = ::protobuf::SingularPtrField::some(v);
702 }
703
704 pub fn mut_row_type(&mut self) -> &mut super::type_pb::StructType {
707 if self.row_type.is_none() {
708 self.row_type.set_default();
709 }
710 self.row_type.as_mut().unwrap()
711 }
712
713 pub fn take_row_type(&mut self) -> super::type_pb::StructType {
715 self.row_type.take().unwrap_or_else(|| super::type_pb::StructType::new())
716 }
717
718 pub fn get_transaction(&self) -> &super::transaction::Transaction {
722 self.transaction.as_ref().unwrap_or_else(|| <super::transaction::Transaction as ::protobuf::Message>::default_instance())
723 }
724 pub fn clear_transaction(&mut self) {
725 self.transaction.clear();
726 }
727
728 pub fn has_transaction(&self) -> bool {
729 self.transaction.is_some()
730 }
731
732 pub fn set_transaction(&mut self, v: super::transaction::Transaction) {
734 self.transaction = ::protobuf::SingularPtrField::some(v);
735 }
736
737 pub fn mut_transaction(&mut self) -> &mut super::transaction::Transaction {
740 if self.transaction.is_none() {
741 self.transaction.set_default();
742 }
743 self.transaction.as_mut().unwrap()
744 }
745
746 pub fn take_transaction(&mut self) -> super::transaction::Transaction {
748 self.transaction.take().unwrap_or_else(|| super::transaction::Transaction::new())
749 }
750
751 pub fn get_undeclared_parameters(&self) -> &super::type_pb::StructType {
755 self.undeclared_parameters.as_ref().unwrap_or_else(|| <super::type_pb::StructType as ::protobuf::Message>::default_instance())
756 }
757 pub fn clear_undeclared_parameters(&mut self) {
758 self.undeclared_parameters.clear();
759 }
760
761 pub fn has_undeclared_parameters(&self) -> bool {
762 self.undeclared_parameters.is_some()
763 }
764
765 pub fn set_undeclared_parameters(&mut self, v: super::type_pb::StructType) {
767 self.undeclared_parameters = ::protobuf::SingularPtrField::some(v);
768 }
769
770 pub fn mut_undeclared_parameters(&mut self) -> &mut super::type_pb::StructType {
773 if self.undeclared_parameters.is_none() {
774 self.undeclared_parameters.set_default();
775 }
776 self.undeclared_parameters.as_mut().unwrap()
777 }
778
779 pub fn take_undeclared_parameters(&mut self) -> super::type_pb::StructType {
781 self.undeclared_parameters.take().unwrap_or_else(|| super::type_pb::StructType::new())
782 }
783}
784
785impl ::protobuf::Message for ResultSetMetadata {
786 fn is_initialized(&self) -> bool {
787 for v in &self.row_type {
788 if !v.is_initialized() {
789 return false;
790 }
791 };
792 for v in &self.transaction {
793 if !v.is_initialized() {
794 return false;
795 }
796 };
797 for v in &self.undeclared_parameters {
798 if !v.is_initialized() {
799 return false;
800 }
801 };
802 true
803 }
804
805 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
806 while !is.eof()? {
807 let (field_number, wire_type) = is.read_tag_unpack()?;
808 match field_number {
809 1 => {
810 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.row_type)?;
811 },
812 2 => {
813 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.transaction)?;
814 },
815 3 => {
816 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.undeclared_parameters)?;
817 },
818 _ => {
819 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
820 },
821 };
822 }
823 ::std::result::Result::Ok(())
824 }
825
826 #[allow(unused_variables)]
828 fn compute_size(&self) -> u32 {
829 let mut my_size = 0;
830 if let Some(ref v) = self.row_type.as_ref() {
831 let len = v.compute_size();
832 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
833 }
834 if let Some(ref v) = self.transaction.as_ref() {
835 let len = v.compute_size();
836 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
837 }
838 if let Some(ref v) = self.undeclared_parameters.as_ref() {
839 let len = v.compute_size();
840 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
841 }
842 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
843 self.cached_size.set(my_size);
844 my_size
845 }
846
847 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
848 if let Some(ref v) = self.row_type.as_ref() {
849 os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
850 os.write_raw_varint32(v.get_cached_size())?;
851 v.write_to_with_cached_sizes(os)?;
852 }
853 if let Some(ref v) = self.transaction.as_ref() {
854 os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
855 os.write_raw_varint32(v.get_cached_size())?;
856 v.write_to_with_cached_sizes(os)?;
857 }
858 if let Some(ref v) = self.undeclared_parameters.as_ref() {
859 os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
860 os.write_raw_varint32(v.get_cached_size())?;
861 v.write_to_with_cached_sizes(os)?;
862 }
863 os.write_unknown_fields(self.get_unknown_fields())?;
864 ::std::result::Result::Ok(())
865 }
866
867 fn get_cached_size(&self) -> u32 {
868 self.cached_size.get()
869 }
870
871 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
872 &self.unknown_fields
873 }
874
875 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
876 &mut self.unknown_fields
877 }
878
879 fn as_any(&self) -> &dyn (::std::any::Any) {
880 self as &dyn (::std::any::Any)
881 }
882 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
883 self as &mut dyn (::std::any::Any)
884 }
885 fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
886 self
887 }
888
889 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
890 Self::descriptor_static()
891 }
892
893 fn new() -> ResultSetMetadata {
894 ResultSetMetadata::new()
895 }
896
897 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
898 static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
899 descriptor.get(|| {
900 let mut fields = ::std::vec::Vec::new();
901 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::type_pb::StructType>>(
902 "row_type",
903 |m: &ResultSetMetadata| { &m.row_type },
904 |m: &mut ResultSetMetadata| { &mut m.row_type },
905 ));
906 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::transaction::Transaction>>(
907 "transaction",
908 |m: &ResultSetMetadata| { &m.transaction },
909 |m: &mut ResultSetMetadata| { &mut m.transaction },
910 ));
911 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::type_pb::StructType>>(
912 "undeclared_parameters",
913 |m: &ResultSetMetadata| { &m.undeclared_parameters },
914 |m: &mut ResultSetMetadata| { &mut m.undeclared_parameters },
915 ));
916 ::protobuf::reflect::MessageDescriptor::new_pb_name::<ResultSetMetadata>(
917 "ResultSetMetadata",
918 fields,
919 file_descriptor_proto()
920 )
921 })
922 }
923
924 fn default_instance() -> &'static ResultSetMetadata {
925 static instance: ::protobuf::rt::LazyV2<ResultSetMetadata> = ::protobuf::rt::LazyV2::INIT;
926 instance.get(ResultSetMetadata::new)
927 }
928}
929
930impl ::protobuf::Clear for ResultSetMetadata {
931 fn clear(&mut self) {
932 self.row_type.clear();
933 self.transaction.clear();
934 self.undeclared_parameters.clear();
935 self.unknown_fields.clear();
936 }
937}
938
939impl ::std::fmt::Debug for ResultSetMetadata {
940 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
941 ::protobuf::text_format::fmt(self, f)
942 }
943}
944
945impl ::protobuf::reflect::ProtobufValue for ResultSetMetadata {
946 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
947 ::protobuf::reflect::ReflectValueRef::Message(self)
948 }
949}
950
951#[derive(PartialEq,Clone,Default)]
952pub struct ResultSetStats {
953 pub query_plan: ::protobuf::SingularPtrField<super::query_plan::QueryPlan>,
955 pub query_stats: ::protobuf::SingularPtrField<::protobuf::well_known_types::Struct>,
956 pub row_count: ::std::option::Option<ResultSetStats_oneof_row_count>,
958 pub unknown_fields: ::protobuf::UnknownFields,
960 pub cached_size: ::protobuf::CachedSize,
961}
962
963impl<'a> ::std::default::Default for &'a ResultSetStats {
964 fn default() -> &'a ResultSetStats {
965 <ResultSetStats as ::protobuf::Message>::default_instance()
966 }
967}
968
969#[derive(Clone,PartialEq,Debug)]
970pub enum ResultSetStats_oneof_row_count {
971 row_count_exact(i64),
972 row_count_lower_bound(i64),
973}
974
975impl ResultSetStats {
976 pub fn new() -> ResultSetStats {
977 ::std::default::Default::default()
978 }
979
980 pub fn get_query_plan(&self) -> &super::query_plan::QueryPlan {
984 self.query_plan.as_ref().unwrap_or_else(|| <super::query_plan::QueryPlan as ::protobuf::Message>::default_instance())
985 }
986 pub fn clear_query_plan(&mut self) {
987 self.query_plan.clear();
988 }
989
990 pub fn has_query_plan(&self) -> bool {
991 self.query_plan.is_some()
992 }
993
994 pub fn set_query_plan(&mut self, v: super::query_plan::QueryPlan) {
996 self.query_plan = ::protobuf::SingularPtrField::some(v);
997 }
998
999 pub fn mut_query_plan(&mut self) -> &mut super::query_plan::QueryPlan {
1002 if self.query_plan.is_none() {
1003 self.query_plan.set_default();
1004 }
1005 self.query_plan.as_mut().unwrap()
1006 }
1007
1008 pub fn take_query_plan(&mut self) -> super::query_plan::QueryPlan {
1010 self.query_plan.take().unwrap_or_else(|| super::query_plan::QueryPlan::new())
1011 }
1012
1013 pub fn get_query_stats(&self) -> &::protobuf::well_known_types::Struct {
1017 self.query_stats.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Struct as ::protobuf::Message>::default_instance())
1018 }
1019 pub fn clear_query_stats(&mut self) {
1020 self.query_stats.clear();
1021 }
1022
1023 pub fn has_query_stats(&self) -> bool {
1024 self.query_stats.is_some()
1025 }
1026
1027 pub fn set_query_stats(&mut self, v: ::protobuf::well_known_types::Struct) {
1029 self.query_stats = ::protobuf::SingularPtrField::some(v);
1030 }
1031
1032 pub fn mut_query_stats(&mut self) -> &mut ::protobuf::well_known_types::Struct {
1035 if self.query_stats.is_none() {
1036 self.query_stats.set_default();
1037 }
1038 self.query_stats.as_mut().unwrap()
1039 }
1040
1041 pub fn take_query_stats(&mut self) -> ::protobuf::well_known_types::Struct {
1043 self.query_stats.take().unwrap_or_else(|| ::protobuf::well_known_types::Struct::new())
1044 }
1045
1046 pub fn get_row_count_exact(&self) -> i64 {
1050 match self.row_count {
1051 ::std::option::Option::Some(ResultSetStats_oneof_row_count::row_count_exact(v)) => v,
1052 _ => 0,
1053 }
1054 }
1055 pub fn clear_row_count_exact(&mut self) {
1056 self.row_count = ::std::option::Option::None;
1057 }
1058
1059 pub fn has_row_count_exact(&self) -> bool {
1060 match self.row_count {
1061 ::std::option::Option::Some(ResultSetStats_oneof_row_count::row_count_exact(..)) => true,
1062 _ => false,
1063 }
1064 }
1065
1066 pub fn set_row_count_exact(&mut self, v: i64) {
1068 self.row_count = ::std::option::Option::Some(ResultSetStats_oneof_row_count::row_count_exact(v))
1069 }
1070
1071 pub fn get_row_count_lower_bound(&self) -> i64 {
1075 match self.row_count {
1076 ::std::option::Option::Some(ResultSetStats_oneof_row_count::row_count_lower_bound(v)) => v,
1077 _ => 0,
1078 }
1079 }
1080 pub fn clear_row_count_lower_bound(&mut self) {
1081 self.row_count = ::std::option::Option::None;
1082 }
1083
1084 pub fn has_row_count_lower_bound(&self) -> bool {
1085 match self.row_count {
1086 ::std::option::Option::Some(ResultSetStats_oneof_row_count::row_count_lower_bound(..)) => true,
1087 _ => false,
1088 }
1089 }
1090
1091 pub fn set_row_count_lower_bound(&mut self, v: i64) {
1093 self.row_count = ::std::option::Option::Some(ResultSetStats_oneof_row_count::row_count_lower_bound(v))
1094 }
1095}
1096
1097impl ::protobuf::Message for ResultSetStats {
1098 fn is_initialized(&self) -> bool {
1099 for v in &self.query_plan {
1100 if !v.is_initialized() {
1101 return false;
1102 }
1103 };
1104 for v in &self.query_stats {
1105 if !v.is_initialized() {
1106 return false;
1107 }
1108 };
1109 true
1110 }
1111
1112 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1113 while !is.eof()? {
1114 let (field_number, wire_type) = is.read_tag_unpack()?;
1115 match field_number {
1116 1 => {
1117 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.query_plan)?;
1118 },
1119 2 => {
1120 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.query_stats)?;
1121 },
1122 3 => {
1123 if wire_type != ::protobuf::wire_format::WireTypeVarint {
1124 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1125 }
1126 self.row_count = ::std::option::Option::Some(ResultSetStats_oneof_row_count::row_count_exact(is.read_int64()?));
1127 },
1128 4 => {
1129 if wire_type != ::protobuf::wire_format::WireTypeVarint {
1130 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1131 }
1132 self.row_count = ::std::option::Option::Some(ResultSetStats_oneof_row_count::row_count_lower_bound(is.read_int64()?));
1133 },
1134 _ => {
1135 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1136 },
1137 };
1138 }
1139 ::std::result::Result::Ok(())
1140 }
1141
1142 #[allow(unused_variables)]
1144 fn compute_size(&self) -> u32 {
1145 let mut my_size = 0;
1146 if let Some(ref v) = self.query_plan.as_ref() {
1147 let len = v.compute_size();
1148 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1149 }
1150 if let Some(ref v) = self.query_stats.as_ref() {
1151 let len = v.compute_size();
1152 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1153 }
1154 if let ::std::option::Option::Some(ref v) = self.row_count {
1155 match v {
1156 &ResultSetStats_oneof_row_count::row_count_exact(v) => {
1157 my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
1158 },
1159 &ResultSetStats_oneof_row_count::row_count_lower_bound(v) => {
1160 my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
1161 },
1162 };
1163 }
1164 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1165 self.cached_size.set(my_size);
1166 my_size
1167 }
1168
1169 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1170 if let Some(ref v) = self.query_plan.as_ref() {
1171 os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1172 os.write_raw_varint32(v.get_cached_size())?;
1173 v.write_to_with_cached_sizes(os)?;
1174 }
1175 if let Some(ref v) = self.query_stats.as_ref() {
1176 os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1177 os.write_raw_varint32(v.get_cached_size())?;
1178 v.write_to_with_cached_sizes(os)?;
1179 }
1180 if let ::std::option::Option::Some(ref v) = self.row_count {
1181 match v {
1182 &ResultSetStats_oneof_row_count::row_count_exact(v) => {
1183 os.write_int64(3, v)?;
1184 },
1185 &ResultSetStats_oneof_row_count::row_count_lower_bound(v) => {
1186 os.write_int64(4, v)?;
1187 },
1188 };
1189 }
1190 os.write_unknown_fields(self.get_unknown_fields())?;
1191 ::std::result::Result::Ok(())
1192 }
1193
1194 fn get_cached_size(&self) -> u32 {
1195 self.cached_size.get()
1196 }
1197
1198 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1199 &self.unknown_fields
1200 }
1201
1202 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1203 &mut self.unknown_fields
1204 }
1205
1206 fn as_any(&self) -> &dyn (::std::any::Any) {
1207 self as &dyn (::std::any::Any)
1208 }
1209 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1210 self as &mut dyn (::std::any::Any)
1211 }
1212 fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1213 self
1214 }
1215
1216 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1217 Self::descriptor_static()
1218 }
1219
1220 fn new() -> ResultSetStats {
1221 ResultSetStats::new()
1222 }
1223
1224 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1225 static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1226 descriptor.get(|| {
1227 let mut fields = ::std::vec::Vec::new();
1228 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::query_plan::QueryPlan>>(
1229 "query_plan",
1230 |m: &ResultSetStats| { &m.query_plan },
1231 |m: &mut ResultSetStats| { &mut m.query_plan },
1232 ));
1233 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Struct>>(
1234 "query_stats",
1235 |m: &ResultSetStats| { &m.query_stats },
1236 |m: &mut ResultSetStats| { &mut m.query_stats },
1237 ));
1238 fields.push(::protobuf::reflect::accessor::make_singular_i64_accessor::<_>(
1239 "row_count_exact",
1240 ResultSetStats::has_row_count_exact,
1241 ResultSetStats::get_row_count_exact,
1242 ));
1243 fields.push(::protobuf::reflect::accessor::make_singular_i64_accessor::<_>(
1244 "row_count_lower_bound",
1245 ResultSetStats::has_row_count_lower_bound,
1246 ResultSetStats::get_row_count_lower_bound,
1247 ));
1248 ::protobuf::reflect::MessageDescriptor::new_pb_name::<ResultSetStats>(
1249 "ResultSetStats",
1250 fields,
1251 file_descriptor_proto()
1252 )
1253 })
1254 }
1255
1256 fn default_instance() -> &'static ResultSetStats {
1257 static instance: ::protobuf::rt::LazyV2<ResultSetStats> = ::protobuf::rt::LazyV2::INIT;
1258 instance.get(ResultSetStats::new)
1259 }
1260}
1261
1262impl ::protobuf::Clear for ResultSetStats {
1263 fn clear(&mut self) {
1264 self.query_plan.clear();
1265 self.query_stats.clear();
1266 self.row_count = ::std::option::Option::None;
1267 self.row_count = ::std::option::Option::None;
1268 self.unknown_fields.clear();
1269 }
1270}
1271
1272impl ::std::fmt::Debug for ResultSetStats {
1273 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1274 ::protobuf::text_format::fmt(self, f)
1275 }
1276}
1277
1278impl ::protobuf::reflect::ProtobufValue for ResultSetStats {
1279 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1280 ::protobuf::reflect::ReflectValueRef::Message(self)
1281 }
1282}
1283
1284static file_descriptor_proto_data: &'static [u8] = b"\
1285 \n\"google/spanner/v1/result_set.proto\x12\x11google.spanner.v1\x1a\x1cg\
1286 oogle/protobuf/struct.proto\x1a\"google/spanner/v1/query_plan.proto\x1a#\
1287 google/spanner/v1/transaction.proto\x1a\x1cgoogle/spanner/v1/type.proto\
1288 \"\xb6\x01\n\tResultSet\x12@\n\x08metadata\x18\x01\x20\x01(\x0b2$.google\
1289 .spanner.v1.ResultSetMetadataR\x08metadata\x12.\n\x04rows\x18\x02\x20\
1290 \x03(\x0b2\x1a.google.protobuf.ListValueR\x04rows\x127\n\x05stats\x18\
1291 \x03\x20\x01(\x0b2!.google.spanner.v1.ResultSetStatsR\x05stats\"\x85\x02\
1292 \n\x10PartialResultSet\x12@\n\x08metadata\x18\x01\x20\x01(\x0b2$.google.\
1293 spanner.v1.ResultSetMetadataR\x08metadata\x12.\n\x06values\x18\x02\x20\
1294 \x03(\x0b2\x16.google.protobuf.ValueR\x06values\x12#\n\rchunked_value\
1295 \x18\x03\x20\x01(\x08R\x0cchunkedValue\x12!\n\x0cresume_token\x18\x04\
1296 \x20\x01(\x0cR\x0bresumeToken\x127\n\x05stats\x18\x05\x20\x01(\x0b2!.goo\
1297 gle.spanner.v1.ResultSetStatsR\x05stats\"\xe3\x01\n\x11ResultSetMetadata\
1298 \x128\n\x08row_type\x18\x01\x20\x01(\x0b2\x1d.google.spanner.v1.StructTy\
1299 peR\x07rowType\x12@\n\x0btransaction\x18\x02\x20\x01(\x0b2\x1e.google.sp\
1300 anner.v1.TransactionR\x0btransaction\x12R\n\x15undeclared_parameters\x18\
1301 \x03\x20\x01(\x0b2\x1d.google.spanner.v1.StructTypeR\x14undeclaredParame\
1302 ters\"\xf3\x01\n\x0eResultSetStats\x12;\n\nquery_plan\x18\x01\x20\x01(\
1303 \x0b2\x1c.google.spanner.v1.QueryPlanR\tqueryPlan\x128\n\x0bquery_stats\
1304 \x18\x02\x20\x01(\x0b2\x17.google.protobuf.StructR\nqueryStats\x12(\n\
1305 \x0frow_count_exact\x18\x03\x20\x01(\x03H\0R\rrowCountExact\x123\n\x15ro\
1306 w_count_lower_bound\x18\x04\x20\x01(\x03H\0R\x12rowCountLowerBoundB\x0b\
1307 \n\trow_countB\xb4\x01\n\x15com.google.spanner.v1B\x0eResultSetProtoP\
1308 \x01Z5cloud.google.com/go/spanner/apiv1/spannerpb;spannerpb\xf8\x01\x01\
1309 \xaa\x02\x17Google.Cloud.Spanner.V1\xca\x02\x17Google\\Cloud\\Spanner\\V\
1310 1\xea\x02\x1aGoogle::Cloud::Spanner::V1J\xd3C\n\x07\x12\x05\x0e\0\xd7\
1311 \x01\x01\n\xbc\x04\n\x01\x0c\x12\x03\x0e\0\x122\xb1\x04\x20Copyright\x20\
1312 2022\x20Google\x20LLC\n\n\x20Licensed\x20under\x20the\x20Apache\x20Licen\
1313 se,\x20Version\x202.0\x20(the\x20\"License\");\n\x20you\x20may\x20not\
1314 \x20use\x20this\x20file\x20except\x20in\x20compliance\x20with\x20the\x20\
1315 License.\n\x20You\x20may\x20obtain\x20a\x20copy\x20of\x20the\x20License\
1316 \x20at\n\n\x20\x20\x20\x20\x20http://www.apache.org/licenses/LICENSE-2.0\
1317 \n\n\x20Unless\x20required\x20by\x20applicable\x20law\x20or\x20agreed\
1318 \x20to\x20in\x20writing,\x20software\n\x20distributed\x20under\x20the\
1319 \x20License\x20is\x20distributed\x20on\x20an\x20\"AS\x20IS\"\x20BASIS,\n\
1320 \x20WITHOUT\x20WARRANTIES\x20OR\x20CONDITIONS\x20OF\x20ANY\x20KIND,\x20e\
1321 ither\x20express\x20or\x20implied.\n\x20See\x20the\x20License\x20for\x20\
1322 the\x20specific\x20language\x20governing\x20permissions\x20and\n\x20limi\
1323 tations\x20under\x20the\x20License.\n\n\x08\n\x01\x02\x12\x03\x10\0\x1a\
1324 \n\t\n\x02\x03\0\x12\x03\x12\0&\n\t\n\x02\x03\x01\x12\x03\x13\0,\n\t\n\
1325 \x02\x03\x02\x12\x03\x14\0-\n\t\n\x02\x03\x03\x12\x03\x15\0&\n\x08\n\x01\
1326 \x08\x12\x03\x17\0\x1f\n\t\n\x02\x08\x1f\x12\x03\x17\0\x1f\n\x08\n\x01\
1327 \x08\x12\x03\x18\04\n\t\n\x02\x08%\x12\x03\x18\04\n\x08\n\x01\x08\x12\
1328 \x03\x19\0L\n\t\n\x02\x08\x0b\x12\x03\x19\0L\n\x08\n\x01\x08\x12\x03\x1a\
1329 \0\"\n\t\n\x02\x08\n\x12\x03\x1a\0\"\n\x08\n\x01\x08\x12\x03\x1b\0/\n\t\
1330 \n\x02\x08\x08\x12\x03\x1b\0/\n\x08\n\x01\x08\x12\x03\x1c\0.\n\t\n\x02\
1331 \x08\x01\x12\x03\x1c\0.\n\x08\n\x01\x08\x12\x03\x1d\04\n\t\n\x02\x08)\
1332 \x12\x03\x1d\04\n\x08\n\x01\x08\x12\x03\x1e\03\n\t\n\x02\x08-\x12\x03\
1333 \x1e\03\ny\n\x02\x04\0\x12\x04\"\07\x01\x1am\x20Results\x20from\x20[Read\
1334 ][google.spanner.v1.Spanner.Read]\x20or\n\x20[ExecuteSql][google.spanner\
1335 .v1.Spanner.ExecuteSql].\n\n\n\n\x03\x04\0\x01\x12\x03\"\x08\x11\nK\n\
1336 \x04\x04\0\x02\0\x12\x03$\x02!\x1a>\x20Metadata\x20about\x20the\x20resul\
1337 t\x20set,\x20such\x20as\x20row\x20type\x20information.\n\n\x0c\n\x05\x04\
1338 \0\x02\0\x06\x12\x03$\x02\x13\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03$\x14\
1339 \x1c\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03$\x1f\x20\n\xde\x02\n\x04\x04\0\
1340 \x02\x01\x12\x03,\x02.\x1a\xd0\x02\x20Each\x20element\x20in\x20`rows`\
1341 \x20is\x20a\x20row\x20whose\x20format\x20is\x20defined\x20by\n\x20[metad\
1342 ata.row_type][google.spanner.v1.ResultSetMetadata.row_type].\x20The\x20i\
1343 th\x20element\n\x20in\x20each\x20row\x20matches\x20the\x20ith\x20field\
1344 \x20in\n\x20[metadata.row_type][google.spanner.v1.ResultSetMetadata.row_\
1345 type].\x20Elements\x20are\n\x20encoded\x20based\x20on\x20type\x20as\x20d\
1346 escribed\n\x20[here][google.spanner.v1.TypeCode].\n\n\x0c\n\x05\x04\0\
1347 \x02\x01\x04\x12\x03,\x02\n\n\x0c\n\x05\x04\0\x02\x01\x06\x12\x03,\x0b$\
1348 \n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03,%)\n\x0c\n\x05\x04\0\x02\x01\x03\
1349 \x12\x03,,-\n\xf5\x04\n\x04\x04\0\x02\x02\x12\x036\x02\x1b\x1a\xe7\x04\
1350 \x20Query\x20plan\x20and\x20execution\x20statistics\x20for\x20the\x20SQL\
1351 \x20statement\x20that\n\x20produced\x20this\x20result\x20set.\x20These\
1352 \x20can\x20be\x20requested\x20by\x20setting\n\x20[ExecuteSqlRequest.quer\
1353 y_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].\n\x20DML\x20sta\
1354 tements\x20always\x20produce\x20stats\x20containing\x20the\x20number\x20\
1355 of\x20rows\n\x20modified,\x20unless\x20executed\x20using\x20the\n\x20[Ex\
1356 ecuteSqlRequest.QueryMode.PLAN][google.spanner.v1.ExecuteSqlRequest.Quer\
1357 yMode.PLAN]\x20[ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteS\
1358 qlRequest.query_mode].\n\x20Other\x20fields\x20may\x20or\x20may\x20not\
1359 \x20be\x20populated,\x20based\x20on\x20the\n\x20[ExecuteSqlRequest.query\
1360 _mode][google.spanner.v1.ExecuteSqlRequest.query_mode].\n\n\x0c\n\x05\
1361 \x04\0\x02\x02\x06\x12\x036\x02\x10\n\x0c\n\x05\x04\0\x02\x02\x01\x12\
1362 \x036\x11\x16\n\x0c\n\x05\x04\0\x02\x02\x03\x12\x036\x19\x1a\n\xcc\x01\n\
1363 \x02\x04\x01\x12\x05<\0\x9f\x01\x01\x1a\xbe\x01\x20Partial\x20results\
1364 \x20from\x20a\x20streaming\x20read\x20or\x20SQL\x20query.\x20Streaming\
1365 \x20reads\x20and\n\x20SQL\x20queries\x20better\x20tolerate\x20large\x20r\
1366 esult\x20sets,\x20large\x20rows,\x20and\x20large\n\x20values,\x20but\x20\
1367 are\x20a\x20little\x20trickier\x20to\x20consume.\n\n\n\n\x03\x04\x01\x01\
1368 \x12\x03<\x08\x18\np\n\x04\x04\x01\x02\0\x12\x03?\x02!\x1ac\x20Metadata\
1369 \x20about\x20the\x20result\x20set,\x20such\x20as\x20row\x20type\x20infor\
1370 mation.\n\x20Only\x20present\x20in\x20the\x20first\x20response.\n\n\x0c\
1371 \n\x05\x04\x01\x02\0\x06\x12\x03?\x02\x13\n\x0c\n\x05\x04\x01\x02\0\x01\
1372 \x12\x03?\x14\x1c\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03?\x1f\x20\n\xc0\
1373 \x15\n\x04\x04\x01\x02\x01\x12\x04\x8a\x01\x02,\x1a\xb1\x15\x20A\x20stre\
1374 amed\x20result\x20set\x20consists\x20of\x20a\x20stream\x20of\x20values,\
1375 \x20which\x20might\n\x20be\x20split\x20into\x20many\x20`PartialResultSet\
1376 `\x20messages\x20to\x20accommodate\n\x20large\x20rows\x20and/or\x20large\
1377 \x20values.\x20Every\x20N\x20complete\x20values\x20defines\x20a\n\x20row\
1378 ,\x20where\x20N\x20is\x20equal\x20to\x20the\x20number\x20of\x20entries\
1379 \x20in\n\x20[metadata.row_type.fields][google.spanner.v1.StructType.fiel\
1380 ds].\n\n\x20Most\x20values\x20are\x20encoded\x20based\x20on\x20type\x20a\
1381 s\x20described\n\x20[here][google.spanner.v1.TypeCode].\n\n\x20It\x20is\
1382 \x20possible\x20that\x20the\x20last\x20value\x20in\x20values\x20is\x20\"\
1383 chunked\",\n\x20meaning\x20that\x20the\x20rest\x20of\x20the\x20value\x20\
1384 is\x20sent\x20in\x20subsequent\n\x20`PartialResultSet`(s).\x20This\x20is\
1385 \x20denoted\x20by\x20the\x20[chunked_value][google.spanner.v1.PartialRes\
1386 ultSet.chunked_value]\n\x20field.\x20Two\x20or\x20more\x20chunked\x20val\
1387 ues\x20can\x20be\x20merged\x20to\x20form\x20a\n\x20complete\x20value\x20\
1388 as\x20follows:\n\n\x20\x20\x20*\x20`bool/number/null`:\x20cannot\x20be\
1389 \x20chunked\n\x20\x20\x20*\x20`string`:\x20concatenate\x20the\x20strings\
1390 \n\x20\x20\x20*\x20`list`:\x20concatenate\x20the\x20lists.\x20If\x20the\
1391 \x20last\x20element\x20in\x20a\x20list\x20is\x20a\n\x20\x20\x20\x20\x20`\
1392 string`,\x20`list`,\x20or\x20`object`,\x20merge\x20it\x20with\x20the\x20\
1393 first\x20element\x20in\n\x20\x20\x20\x20\x20the\x20next\x20list\x20by\
1394 \x20applying\x20these\x20rules\x20recursively.\n\x20\x20\x20*\x20`object\
1395 `:\x20concatenate\x20the\x20(field\x20name,\x20field\x20value)\x20pairs.\
1396 \x20If\x20a\n\x20\x20\x20\x20\x20field\x20name\x20is\x20duplicated,\x20t\
1397 hen\x20apply\x20these\x20rules\x20recursively\n\x20\x20\x20\x20\x20to\
1398 \x20merge\x20the\x20field\x20values.\n\n\x20Some\x20examples\x20of\x20me\
1399 rging:\n\n\x20\x20\x20\x20\x20#\x20Strings\x20are\x20concatenated.\n\x20\
1400 \x20\x20\x20\x20\"foo\",\x20\"bar\"\x20=>\x20\"foobar\"\n\n\x20\x20\x20\
1401 \x20\x20#\x20Lists\x20of\x20non-strings\x20are\x20concatenated.\n\x20\
1402 \x20\x20\x20\x20[2,\x203],\x20[4]\x20=>\x20[2,\x203,\x204]\n\n\x20\x20\
1403 \x20\x20\x20#\x20Lists\x20are\x20concatenated,\x20but\x20the\x20last\x20\
1404 and\x20first\x20elements\x20are\x20merged\n\x20\x20\x20\x20\x20#\x20beca\
1405 use\x20they\x20are\x20strings.\n\x20\x20\x20\x20\x20[\"a\",\x20\"b\"],\
1406 \x20[\"c\",\x20\"d\"]\x20=>\x20[\"a\",\x20\"bc\",\x20\"d\"]\n\n\x20\x20\
1407 \x20\x20\x20#\x20Lists\x20are\x20concatenated,\x20but\x20the\x20last\x20\
1408 and\x20first\x20elements\x20are\x20merged\n\x20\x20\x20\x20\x20#\x20beca\
1409 use\x20they\x20are\x20lists.\x20Recursively,\x20the\x20last\x20and\x20fi\
1410 rst\x20elements\n\x20\x20\x20\x20\x20#\x20of\x20the\x20inner\x20lists\
1411 \x20are\x20merged\x20because\x20they\x20are\x20strings.\n\x20\x20\x20\
1412 \x20\x20[\"a\",\x20[\"b\",\x20\"c\"]],\x20[[\"d\"],\x20\"e\"]\x20=>\x20[\
1413 \"a\",\x20[\"b\",\x20\"cd\"],\x20\"e\"]\n\n\x20\x20\x20\x20\x20#\x20Non-\
1414 overlapping\x20object\x20fields\x20are\x20combined.\n\x20\x20\x20\x20\
1415 \x20{\"a\":\x20\"1\"},\x20{\"b\":\x20\"2\"}\x20=>\x20{\"a\":\x20\"1\",\
1416 \x20\"b\":\x202\"}\n\n\x20\x20\x20\x20\x20#\x20Overlapping\x20object\x20\
1417 fields\x20are\x20merged.\n\x20\x20\x20\x20\x20{\"a\":\x20\"1\"},\x20{\"a\
1418 \":\x20\"2\"}\x20=>\x20{\"a\":\x20\"12\"}\n\n\x20\x20\x20\x20\x20#\x20Ex\
1419 amples\x20of\x20merging\x20objects\x20containing\x20lists\x20of\x20strin\
1420 gs.\n\x20\x20\x20\x20\x20{\"a\":\x20[\"1\"]},\x20{\"a\":\x20[\"2\"]}\x20\
1421 =>\x20{\"a\":\x20[\"12\"]}\n\n\x20For\x20a\x20more\x20complete\x20exampl\
1422 e,\x20suppose\x20a\x20streaming\x20SQL\x20query\x20is\n\x20yielding\x20a\
1423 \x20result\x20set\x20whose\x20rows\x20contain\x20a\x20single\x20string\n\
1424 \x20field.\x20The\x20following\x20`PartialResultSet`s\x20might\x20be\x20\
1425 yielded:\n\n\x20\x20\x20\x20\x20{\n\x20\x20\x20\x20\x20\x20\x20\"metadat\
1426 a\":\x20{\x20...\x20}\n\x20\x20\x20\x20\x20\x20\x20\"values\":\x20[\"Hel\
1427 lo\",\x20\"W\"]\n\x20\x20\x20\x20\x20\x20\x20\"chunked_value\":\x20true\
1428 \n\x20\x20\x20\x20\x20\x20\x20\"resume_token\":\x20\"Af65...\"\n\x20\x20\
1429 \x20\x20\x20}\n\x20\x20\x20\x20\x20{\n\x20\x20\x20\x20\x20\x20\x20\"valu\
1430 es\":\x20[\"orl\"]\n\x20\x20\x20\x20\x20\x20\x20\"chunked_value\":\x20tr\
1431 ue\n\x20\x20\x20\x20\x20\x20\x20\"resume_token\":\x20\"Bqp2...\"\n\x20\
1432 \x20\x20\x20\x20}\n\x20\x20\x20\x20\x20{\n\x20\x20\x20\x20\x20\x20\x20\"\
1433 values\":\x20[\"d\"]\n\x20\x20\x20\x20\x20\x20\x20\"resume_token\":\x20\
1434 \"Zx1B...\"\n\x20\x20\x20\x20\x20}\n\n\x20This\x20sequence\x20of\x20`Par\
1435 tialResultSet`s\x20encodes\x20two\x20rows,\x20one\n\x20containing\x20the\
1436 \x20field\x20value\x20`\"Hello\"`,\x20and\x20a\x20second\x20containing\
1437 \x20the\n\x20field\x20value\x20`\"World\"\x20=\x20\"W\"\x20+\x20\"orl\"\
1438 \x20+\x20\"d\"`.\n\n\r\n\x05\x04\x01\x02\x01\x04\x12\x04\x8a\x01\x02\n\n\
1439 \r\n\x05\x04\x01\x02\x01\x06\x12\x04\x8a\x01\x0b\x20\n\r\n\x05\x04\x01\
1440 \x02\x01\x01\x12\x04\x8a\x01!'\n\r\n\x05\x04\x01\x02\x01\x03\x12\x04\x8a\
1441 \x01*+\n\xdf\x01\n\x04\x04\x01\x02\x02\x12\x04\x8f\x01\x02\x19\x1a\xd0\
1442 \x01\x20If\x20true,\x20then\x20the\x20final\x20value\x20in\x20[values][g\
1443 oogle.spanner.v1.PartialResultSet.values]\x20is\x20chunked,\x20and\x20mu\
1444 st\n\x20be\x20combined\x20with\x20more\x20values\x20from\x20subsequent\
1445 \x20`PartialResultSet`s\n\x20to\x20obtain\x20a\x20complete\x20field\x20v\
1446 alue.\n\n\r\n\x05\x04\x01\x02\x02\x05\x12\x04\x8f\x01\x02\x06\n\r\n\x05\
1447 \x04\x01\x02\x02\x01\x12\x04\x8f\x01\x07\x14\n\r\n\x05\x04\x01\x02\x02\
1448 \x03\x12\x04\x8f\x01\x17\x18\n\xbb\x02\n\x04\x04\x01\x02\x03\x12\x04\x96\
1449 \x01\x02\x19\x1a\xac\x02\x20Streaming\x20calls\x20might\x20be\x20interru\
1450 pted\x20for\x20a\x20variety\x20of\x20reasons,\x20such\n\x20as\x20TCP\x20\
1451 connection\x20loss.\x20If\x20this\x20occurs,\x20the\x20stream\x20of\x20r\
1452 esults\x20can\n\x20be\x20resumed\x20by\x20re-sending\x20the\x20original\
1453 \x20request\x20and\x20including\n\x20`resume_token`.\x20Note\x20that\x20\
1454 executing\x20any\x20other\x20transaction\x20in\x20the\n\x20same\x20sessi\
1455 on\x20invalidates\x20the\x20token.\n\n\r\n\x05\x04\x01\x02\x03\x05\x12\
1456 \x04\x96\x01\x02\x07\n\r\n\x05\x04\x01\x02\x03\x01\x12\x04\x96\x01\x08\
1457 \x14\n\r\n\x05\x04\x01\x02\x03\x03\x12\x04\x96\x01\x17\x18\n\xeb\x02\n\
1458 \x04\x04\x01\x02\x04\x12\x04\x9e\x01\x02\x1b\x1a\xdc\x02\x20Query\x20pla\
1459 n\x20and\x20execution\x20statistics\x20for\x20the\x20statement\x20that\
1460 \x20produced\x20this\n\x20streaming\x20result\x20set.\x20These\x20can\
1461 \x20be\x20requested\x20by\x20setting\n\x20[ExecuteSqlRequest.query_mode]\
1462 [google.spanner.v1.ExecuteSqlRequest.query_mode]\x20and\x20are\x20sent\n\
1463 \x20only\x20once\x20with\x20the\x20last\x20response\x20in\x20the\x20stre\
1464 am.\n\x20This\x20field\x20will\x20also\x20be\x20present\x20in\x20the\x20\
1465 last\x20response\x20for\x20DML\n\x20statements.\n\n\r\n\x05\x04\x01\x02\
1466 \x04\x06\x12\x04\x9e\x01\x02\x10\n\r\n\x05\x04\x01\x02\x04\x01\x12\x04\
1467 \x9e\x01\x11\x16\n\r\n\x05\x04\x01\x02\x04\x03\x12\x04\x9e\x01\x19\x1a\n\
1468 \x84\x01\n\x02\x04\x02\x12\x06\xa2\x01\0\xbc\x01\x01\x1av\x20Metadata\
1469 \x20about\x20a\x20[ResultSet][google.spanner.v1.ResultSet]\x20or\x20[Par\
1470 tialResultSet][google.spanner.v1.PartialResultSet].\n\n\x0b\n\x03\x04\
1471 \x02\x01\x12\x04\xa2\x01\x08\x19\n\xd2\x02\n\x04\x04\x02\x02\0\x12\x04\
1472 \xab\x01\x02\x1a\x1a\xc3\x02\x20Indicates\x20the\x20field\x20names\x20an\
1473 d\x20types\x20for\x20the\x20rows\x20in\x20the\x20result\n\x20set.\x20\
1474 \x20For\x20example,\x20a\x20SQL\x20query\x20like\x20`\"SELECT\x20UserId,\
1475 \x20UserName\x20FROM\n\x20Users\"`\x20could\x20return\x20a\x20`row_type`\
1476 \x20value\x20like:\n\n\x20\x20\x20\x20\x20\"fields\":\x20[\n\x20\x20\x20\
1477 \x20\x20\x20\x20{\x20\"name\":\x20\"UserId\",\x20\"type\":\x20{\x20\"cod\
1478 e\":\x20\"INT64\"\x20}\x20},\n\x20\x20\x20\x20\x20\x20\x20{\x20\"name\":\
1479 \x20\"UserName\",\x20\"type\":\x20{\x20\"code\":\x20\"STRING\"\x20}\x20}\
1480 ,\n\x20\x20\x20\x20\x20]\n\n\r\n\x05\x04\x02\x02\0\x06\x12\x04\xab\x01\
1481 \x02\x0c\n\r\n\x05\x04\x02\x02\0\x01\x12\x04\xab\x01\r\x15\n\r\n\x05\x04\
1482 \x02\x02\0\x03\x12\x04\xab\x01\x18\x19\n\x8a\x01\n\x04\x04\x02\x02\x01\
1483 \x12\x04\xaf\x01\x02\x1e\x1a|\x20If\x20the\x20read\x20or\x20SQL\x20query\
1484 \x20began\x20a\x20transaction\x20as\x20a\x20side-effect,\x20the\n\x20inf\
1485 ormation\x20about\x20the\x20new\x20transaction\x20is\x20yielded\x20here.\
1486 \n\n\r\n\x05\x04\x02\x02\x01\x06\x12\x04\xaf\x01\x02\r\n\r\n\x05\x04\x02\
1487 \x02\x01\x01\x12\x04\xaf\x01\x0e\x19\n\r\n\x05\x04\x02\x02\x01\x03\x12\
1488 \x04\xaf\x01\x1c\x1d\n\xed\x03\n\x04\x04\x02\x02\x02\x12\x04\xbb\x01\x02\
1489 '\x1a\xde\x03\x20A\x20SQL\x20query\x20can\x20be\x20parameterized.\x20In\
1490 \x20PLAN\x20mode,\x20these\x20parameters\x20can\x20be\n\x20undeclared.\
1491 \x20This\x20indicates\x20the\x20field\x20names\x20and\x20types\x20for\
1492 \x20those\x20undeclared\n\x20parameters\x20in\x20the\x20SQL\x20query.\
1493 \x20For\x20example,\x20a\x20SQL\x20query\x20like\x20`\"SELECT\x20*\x20FR\
1494 OM\n\x20Users\x20where\x20UserId\x20=\x20@userId\x20and\x20UserName\x20=\
1495 \x20@userName\x20\"`\x20could\x20return\x20a\n\x20`undeclared_parameters\
1496 `\x20value\x20like:\n\n\x20\x20\x20\x20\x20\"fields\":\x20[\n\x20\x20\
1497 \x20\x20\x20\x20\x20{\x20\"name\":\x20\"UserId\",\x20\"type\":\x20{\x20\
1498 \"code\":\x20\"INT64\"\x20}\x20},\n\x20\x20\x20\x20\x20\x20\x20{\x20\"na\
1499 me\":\x20\"UserName\",\x20\"type\":\x20{\x20\"code\":\x20\"STRING\"\x20}\
1500 \x20},\n\x20\x20\x20\x20\x20]\n\n\r\n\x05\x04\x02\x02\x02\x06\x12\x04\
1501 \xbb\x01\x02\x0c\n\r\n\x05\x04\x02\x02\x02\x01\x12\x04\xbb\x01\r\"\n\r\n\
1502 \x05\x04\x02\x02\x02\x03\x12\x04\xbb\x01%&\n\x92\x01\n\x02\x04\x03\x12\
1503 \x06\xbf\x01\0\xd7\x01\x01\x1a\x83\x01\x20Additional\x20statistics\x20ab\
1504 out\x20a\x20[ResultSet][google.spanner.v1.ResultSet]\x20or\x20[PartialRe\
1505 sultSet][google.spanner.v1.PartialResultSet].\n\n\x0b\n\x03\x04\x03\x01\
1506 \x12\x04\xbf\x01\x08\x16\nc\n\x04\x04\x03\x02\0\x12\x04\xc1\x01\x02\x1b\
1507 \x1aU\x20[QueryPlan][google.spanner.v1.QueryPlan]\x20for\x20the\x20query\
1508 \x20associated\x20with\x20this\x20result.\n\n\r\n\x05\x04\x03\x02\0\x06\
1509 \x12\x04\xc1\x01\x02\x0b\n\r\n\x05\x04\x03\x02\0\x01\x12\x04\xc1\x01\x0c\
1510 \x16\n\r\n\x05\x04\x03\x02\0\x03\x12\x04\xc1\x01\x19\x1a\n\x9e\x02\n\x04\
1511 \x04\x03\x02\x01\x12\x04\xcc\x01\x02)\x1a\x8f\x02\x20Aggregated\x20stati\
1512 stics\x20from\x20the\x20execution\x20of\x20the\x20query.\x20Only\x20pres\
1513 ent\x20when\n\x20the\x20query\x20is\x20profiled.\x20For\x20example,\x20a\
1514 \x20query\x20could\x20return\x20the\x20statistics\x20as\n\x20follows:\n\
1515 \n\x20\x20\x20\x20\x20{\n\x20\x20\x20\x20\x20\x20\x20\"rows_returned\":\
1516 \x20\"3\",\n\x20\x20\x20\x20\x20\x20\x20\"elapsed_time\":\x20\"1.22\x20s\
1517 ecs\",\n\x20\x20\x20\x20\x20\x20\x20\"cpu_time\":\x20\"1.19\x20secs\"\n\
1518 \x20\x20\x20\x20\x20}\n\n\r\n\x05\x04\x03\x02\x01\x06\x12\x04\xcc\x01\
1519 \x02\x18\n\r\n\x05\x04\x03\x02\x01\x01\x12\x04\xcc\x01\x19$\n\r\n\x05\
1520 \x04\x03\x02\x01\x03\x12\x04\xcc\x01'(\nC\n\x04\x04\x03\x08\0\x12\x06\
1521 \xcf\x01\x02\xd6\x01\x03\x1a3\x20The\x20number\x20of\x20rows\x20modified\
1522 \x20by\x20the\x20DML\x20statement.\n\n\r\n\x05\x04\x03\x08\0\x01\x12\x04\
1523 \xcf\x01\x08\x11\nO\n\x04\x04\x03\x02\x02\x12\x04\xd1\x01\x04\x1e\x1aA\
1524 \x20Standard\x20DML\x20returns\x20an\x20exact\x20count\x20of\x20rows\x20\
1525 that\x20were\x20modified.\n\n\r\n\x05\x04\x03\x02\x02\x05\x12\x04\xd1\
1526 \x01\x04\t\n\r\n\x05\x04\x03\x02\x02\x01\x12\x04\xd1\x01\n\x19\n\r\n\x05\
1527 \x04\x03\x02\x02\x03\x12\x04\xd1\x01\x1c\x1d\ny\n\x04\x04\x03\x02\x03\
1528 \x12\x04\xd5\x01\x04$\x1ak\x20Partitioned\x20DML\x20does\x20not\x20offer\
1529 \x20exactly-once\x20semantics,\x20so\x20it\n\x20returns\x20a\x20lower\
1530 \x20bound\x20of\x20the\x20rows\x20modified.\n\n\r\n\x05\x04\x03\x02\x03\
1531 \x05\x12\x04\xd5\x01\x04\t\n\r\n\x05\x04\x03\x02\x03\x01\x12\x04\xd5\x01\
1532 \n\x1f\n\r\n\x05\x04\x03\x02\x03\x03\x12\x04\xd5\x01\"#b\x06proto3\
1533";
1534
1535static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
1536
1537fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
1538 ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
1539}
1540
1541pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
1542 file_descriptor_proto_lazy.get(|| {
1543 parse_descriptor_proto()
1544 })
1545}