pub struct ColumnDesc {
pub data_type: DataType,
pub column_id: ColumnId,
pub name: String,
pub field_descs: Vec<ColumnDesc>,
pub type_name: String,
pub generated_or_default_column: Option<GeneratedOrDefaultColumn>,
pub description: Option<String>,
pub additional_column: AdditionalColumn,
pub version: ColumnDescVersion,
pub system_column: Option<SystemColumn>,
}
Fields§
§data_type: DataType
§column_id: ColumnId
§name: String
§field_descs: Vec<ColumnDesc>
§type_name: String
§generated_or_default_column: Option<GeneratedOrDefaultColumn>
§description: Option<String>
§additional_column: AdditionalColumn
§version: ColumnDescVersion
§system_column: Option<SystemColumn>
Currently the system column is used for _rw_timestamp
only and is generated at runtime,
so this field is not persisted.
Implementations§
source§impl ColumnDesc
impl ColumnDesc
pub fn unnamed(column_id: ColumnId, data_type: DataType) -> ColumnDesc
pub fn named( name: impl Into<String>, column_id: ColumnId, data_type: DataType, ) -> ColumnDesc
pub fn named_with_default_value( name: impl Into<String>, column_id: ColumnId, data_type: DataType, snapshot_value: Datum, ) -> ColumnDesc
pub fn named_with_additional_column( name: impl Into<String>, column_id: ColumnId, data_type: DataType, additional_column_type: AdditionalColumn, ) -> ColumnDesc
pub fn named_with_system_column( name: impl Into<String>, column_id: ColumnId, data_type: DataType, system_column: SystemColumn, ) -> ColumnDesc
sourcepub fn to_protobuf(&self) -> PbColumnDesc
pub fn to_protobuf(&self) -> PbColumnDesc
Convert to proto
sourcepub fn flatten(&self) -> Vec<ColumnDesc>
pub fn flatten(&self) -> Vec<ColumnDesc>
Flatten a nested column to a list of columns (including itself). If the type is atomic, it returns simply itself. If the type has multiple nesting levels, it traverses for the tree-like schema, and returns every tree node.
pub fn new_atomic(data_type: DataType, name: &str, column_id: i32) -> Self
pub fn new_struct( name: &str, column_id: i32, type_name: &str, fields: Vec<ColumnDesc>, ) -> Self
pub fn from_field_with_column_id(field: &Field, id: i32) -> Self
pub fn from_field_without_column_id(field: &Field) -> Self
pub fn is_generated(&self) -> bool
pub fn is_default(&self) -> bool
Trait Implementations§
source§impl Clone for ColumnDesc
impl Clone for ColumnDesc
source§fn clone(&self) -> ColumnDesc
fn clone(&self) -> ColumnDesc
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for ColumnDesc
impl Debug for ColumnDesc
source§impl From<&ColumnDesc> for ColumnDesc
impl From<&ColumnDesc> for ColumnDesc
source§fn from(prost: &PbColumnDesc) -> Self
fn from(prost: &PbColumnDesc) -> Self
Converts to this type from the input type.
source§impl From<&ColumnDesc> for PbColumnDesc
impl From<&ColumnDesc> for PbColumnDesc
source§fn from(c: &ColumnDesc) -> Self
fn from(c: &ColumnDesc) -> Self
Converts to this type from the input type.
source§impl From<&ColumnDesc> for Field
impl From<&ColumnDesc> for Field
source§fn from(desc: &ColumnDesc) -> Self
fn from(desc: &ColumnDesc) -> Self
Converts to this type from the input type.
source§impl From<ColumnDesc> for ColumnDesc
impl From<ColumnDesc> for ColumnDesc
source§fn from(prost: PbColumnDesc) -> Self
fn from(prost: PbColumnDesc) -> Self
Converts to this type from the input type.
source§impl From<ColumnDesc> for Field
impl From<ColumnDesc> for Field
source§fn from(column_desc: ColumnDesc) -> Self
fn from(column_desc: ColumnDesc) -> Self
Converts to this type from the input type.
source§impl Hash for ColumnDesc
impl Hash for ColumnDesc
source§impl PartialEq for ColumnDesc
impl PartialEq for ColumnDesc
impl Eq for ColumnDesc
impl StructuralPartialEq for ColumnDesc
Auto Trait Implementations§
impl Freeze for ColumnDesc
impl RefUnwindSafe for ColumnDesc
impl Send for ColumnDesc
impl Sync for ColumnDesc
impl Unpin for ColumnDesc
impl UnwindSafe for ColumnDesc
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
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<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> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§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>
Wrap the input message
T
in a tonic::Request
§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
type Err = Infallible
fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>
source§impl<M> MetricVecRelabelExt for M
impl<M> MetricVecRelabelExt for M
source§fn relabel(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level
.source§fn relabel_n(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
relabel_num: usize,
) -> RelabeledMetricVec<M>
fn relabel_n( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, relabel_num: usize, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level_relabel_n
.source§fn relabel_debug_1(
self,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel_debug_1( self, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level_relabel_n
with metric_level
set to
MetricLevel::Debug
and relabel_num
set to 1.