#[non_exhaustive]pub struct AppendRowsRequest {
pub write_stream: String,
pub offset: Option<Int64Value>,
pub trace_id: String,
pub missing_value_interpretations: HashMap<String, MissingValueInterpretation>,
pub default_missing_value_interpretation: MissingValueInterpretation,
pub client_stats: Option<ClientStats>,
pub rows: Option<Rows>,
/* private fields */
}Expand description
Request message for AppendRows.
Because AppendRows is a bidirectional streaming RPC, certain parts of the AppendRowsRequest need only be specified for the first request before switching table destinations. You can also switch table destinations within the same connection for the default stream.
The size of a single AppendRowsRequest must be less than 20 MB in size.
Requests larger than this return an error, typically INVALID_ARGUMENT.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.write_stream: StringRequired. The write_stream identifies the append operation. It must be provided in the following scenarios:
-
In the first request to an AppendRows connection.
-
In all subsequent requests to an AppendRows connection, if you use the same connection to write to multiple tables or change the input schema for default streams.
For explicitly created write streams, the format is:
projects/{project}/datasets/{dataset}/tables/{table}/streams/{id}
For the special default stream, the format is:
projects/{project}/datasets/{dataset}/tables/{table}/streams/_default.
An example of a possible sequence of requests with write_stream fields within a single connection:
-
r1: {write_stream: stream_name_1}
-
r2: {write_stream: /omit/}
-
r3: {write_stream: /omit/}
-
r4: {write_stream: stream_name_2}
-
r5: {write_stream: stream_name_2}
The destination changed in request_4, so the write_stream field must be populated in all subsequent requests in this stream.
offset: Option<Int64Value>If present, the write is only performed if the next append offset is same as the provided value. If not present, the write is performed at the current end of stream. Specifying a value for this field is not allowed when calling AppendRows for the ‘_default’ stream.
trace_id: StringId set by client to annotate its identity. Only initial request setting is respected.
missing_value_interpretations: HashMap<String, MissingValueInterpretation>A map to indicate how to interpret missing value for some fields. Missing values are fields present in user schema but missing in rows. The key is the field name. The value is the interpretation of missing values for the field.
For example, a map {‘foo’: NULL_VALUE, ‘bar’: DEFAULT_VALUE} means all missing values in field foo are interpreted as NULL, all missing values in field bar are interpreted as the default value of field bar in table schema.
If a field is not in this map and has missing values, the missing values in this field are interpreted as NULL.
This field only applies to the current request, it won’t affect other requests on the connection.
Currently, field name can only be top-level column name, can’t be a struct field path like ‘foo.bar’.
default_missing_value_interpretation: MissingValueInterpretationOptional. Default missing value interpretation for all columns in the
table. When a value is specified on an AppendRowsRequest, it is applied
to all requests from that point forward, until a subsequent
AppendRowsRequest sets it to a different value.
missing_value_interpretation can override
default_missing_value_interpretation. For example, if you want to write
NULL instead of using default values for some columns, you can set
default_missing_value_interpretation to DEFAULT_VALUE and at the same
time, set missing_value_interpretations to NULL_VALUE on those columns.
client_stats: Option<ClientStats>Optional. Stats and telemetry data gathered on the client side.
rows: Option<Rows>Input rows. The writer_schema field must be specified at the initial
request and currently, it will be ignored if specified in following
requests. Following requests must have data in the same format as the
initial request.
Implementations§
Source§impl AppendRowsRequest
impl AppendRowsRequest
Sourcepub fn set_write_stream<T: Into<String>>(self, v: T) -> Self
pub fn set_write_stream<T: Into<String>>(self, v: T) -> Self
Sets the value of write_stream.
§Example
let x = AppendRowsRequest::new().set_write_stream(format!("projects/{project_id}/datasets/{dataset_id}/tables/{table_id}/streams/{stream_id}"));Sourcepub fn set_offset<T>(self, v: T) -> Selfwhere
T: Into<Int64Value>,
pub fn set_offset<T>(self, v: T) -> Selfwhere
T: Into<Int64Value>,
Sourcepub fn set_or_clear_offset<T>(self, v: Option<T>) -> Selfwhere
T: Into<Int64Value>,
pub fn set_or_clear_offset<T>(self, v: Option<T>) -> Selfwhere
T: Into<Int64Value>,
Sourcepub fn set_trace_id<T: Into<String>>(self, v: T) -> Self
pub fn set_trace_id<T: Into<String>>(self, v: T) -> Self
Sourcepub fn set_missing_value_interpretations<T, K, V>(self, v: T) -> Self
pub fn set_missing_value_interpretations<T, K, V>(self, v: T) -> Self
Sets the value of missing_value_interpretations.
§Example
use google_cloud_bigquery::model::append_rows_request::MissingValueInterpretation;
let x = AppendRowsRequest::new().set_missing_value_interpretations([
("key0", MissingValueInterpretation::NullValue),
("key1", MissingValueInterpretation::DefaultValue),
]);Sourcepub fn set_default_missing_value_interpretation<T: Into<MissingValueInterpretation>>(
self,
v: T,
) -> Self
pub fn set_default_missing_value_interpretation<T: Into<MissingValueInterpretation>>( self, v: T, ) -> Self
Sets the value of default_missing_value_interpretation.
§Example
use google_cloud_bigquery::model::append_rows_request::MissingValueInterpretation;
let x0 = AppendRowsRequest::new().set_default_missing_value_interpretation(MissingValueInterpretation::NullValue);
let x1 = AppendRowsRequest::new().set_default_missing_value_interpretation(MissingValueInterpretation::DefaultValue);Sourcepub fn set_client_stats<T>(self, v: T) -> Selfwhere
T: Into<ClientStats>,
pub fn set_client_stats<T>(self, v: T) -> Selfwhere
T: Into<ClientStats>,
Sets the value of client_stats.
§Example
use google_cloud_bigquery::model::ClientStats;
let x = AppendRowsRequest::new().set_client_stats(ClientStats::default()/* use setters */);Sourcepub fn set_or_clear_client_stats<T>(self, v: Option<T>) -> Selfwhere
T: Into<ClientStats>,
pub fn set_or_clear_client_stats<T>(self, v: Option<T>) -> Selfwhere
T: Into<ClientStats>,
Sets or clears the value of client_stats.
§Example
use google_cloud_bigquery::model::ClientStats;
let x = AppendRowsRequest::new().set_or_clear_client_stats(Some(ClientStats::default()/* use setters */));
let x = AppendRowsRequest::new().set_or_clear_client_stats(None::<ClientStats>);Sourcepub fn set_rows<T: Into<Option<Rows>>>(self, v: T) -> Self
pub fn set_rows<T: Into<Option<Rows>>>(self, v: T) -> Self
Sets the value of rows.
Note that all the setters affecting rows are mutually
exclusive.
§Example
use google_cloud_bigquery::model::append_rows_request::ProtoData;
let x = AppendRowsRequest::new().set_rows(Some(
google_cloud_bigquery::model::append_rows_request::Rows::ProtoRows(ProtoData::default().into())));Sourcepub fn proto_rows(&self) -> Option<&Box<ProtoData>>
pub fn proto_rows(&self) -> Option<&Box<ProtoData>>
The value of rows
if it holds a ProtoRows, None if the field is not set or
holds a different branch.
Sourcepub fn set_proto_rows<T: Into<Box<ProtoData>>>(self, v: T) -> Self
pub fn set_proto_rows<T: Into<Box<ProtoData>>>(self, v: T) -> Self
Sets the value of rows
to hold a ProtoRows.
Note that all the setters affecting rows are
mutually exclusive.
§Example
use google_cloud_bigquery::model::append_rows_request::ProtoData;
let x = AppendRowsRequest::new().set_proto_rows(ProtoData::default()/* use setters */);
assert!(x.proto_rows().is_some());
assert!(x.arrow_rows().is_none());Sourcepub fn arrow_rows(&self) -> Option<&Box<ArrowData>>
pub fn arrow_rows(&self) -> Option<&Box<ArrowData>>
The value of rows
if it holds a ArrowRows, None if the field is not set or
holds a different branch.
Sourcepub fn set_arrow_rows<T: Into<Box<ArrowData>>>(self, v: T) -> Self
pub fn set_arrow_rows<T: Into<Box<ArrowData>>>(self, v: T) -> Self
Sets the value of rows
to hold a ArrowRows.
Note that all the setters affecting rows are
mutually exclusive.
§Example
use google_cloud_bigquery::model::append_rows_request::ArrowData;
let x = AppendRowsRequest::new().set_arrow_rows(ArrowData::default()/* use setters */);
assert!(x.arrow_rows().is_some());
assert!(x.proto_rows().is_none());Trait Implementations§
Source§impl Clone for AppendRowsRequest
impl Clone for AppendRowsRequest
Source§impl Debug for AppendRowsRequest
impl Debug for AppendRowsRequest
Source§impl Default for AppendRowsRequest
impl Default for AppendRowsRequest
Source§impl Message for AppendRowsRequest
impl Message for AppendRowsRequest
Source§impl PartialEq for AppendRowsRequest
impl PartialEq for AppendRowsRequest
impl StructuralPartialEq for AppendRowsRequest
Auto Trait Implementations§
impl Freeze for AppendRowsRequest
impl RefUnwindSafe for AppendRowsRequest
impl Send for AppendRowsRequest
impl Sync for AppendRowsRequest
impl Unpin for AppendRowsRequest
impl UnsafeUnpin for AppendRowsRequest
impl UnwindSafe for AppendRowsRequest
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request