Skip to main content

AppendRowsRequest

Struct AppendRowsRequest 

Source
#[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
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§write_stream: String

Required. 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: String

Id 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: MissingValueInterpretation

Optional. 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

Source

pub fn new() -> Self

Creates a new default instance.

Source

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}"));
Source

pub fn set_offset<T>(self, v: T) -> Self
where T: Into<Int64Value>,

Sets the value of offset.

§Example
ⓘ
use wkt::Int64Value;
let x = AppendRowsRequest::new().set_offset(Int64Value::default()/* use setters */);
Source

pub fn set_or_clear_offset<T>(self, v: Option<T>) -> Self
where T: Into<Int64Value>,

Sets or clears the value of offset.

§Example
ⓘ
use wkt::Int64Value;
let x = AppendRowsRequest::new().set_or_clear_offset(Some(Int64Value::default()/* use setters */));
let x = AppendRowsRequest::new().set_or_clear_offset(None::<Int64Value>);
Source

pub fn set_trace_id<T: Into<String>>(self, v: T) -> Self

Sets the value of trace_id.

§Example
ⓘ
let x = AppendRowsRequest::new().set_trace_id("example");
Source

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),
]);
Source

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);
Source

pub fn set_client_stats<T>(self, v: T) -> Self
where 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 */);
Source

pub fn set_or_clear_client_stats<T>(self, v: Option<T>) -> Self
where 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>);
Source

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())));
Source

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.

Source

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());
Source

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.

Source

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

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AppendRowsRequest

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for AppendRowsRequest

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Message for AppendRowsRequest

Source§

fn typename() -> &'static str

The typename of this message.
Source§

impl PartialEq for AppendRowsRequest

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for AppendRowsRequest

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self> ⓘ

Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more