pub struct CdcTableDesc {
pub table_id: TableId,
pub source_id: TableId,
pub external_table_name: String,
pub pk: Vec<ColumnOrder>,
pub columns: Vec<ColumnDesc>,
pub stream_key: Vec<usize>,
pub connect_properties: BTreeMap<String, String>,
pub secret_refs: BTreeMap<String, PbSecretRef>,
}
Expand description
Necessary information for compute node to access data in the external database. Compute node will use this information to connect to the external database and scan the table.
Fields§
§table_id: TableId
Id of the table in RW
source_id: TableId
Id of the upstream source in sharing cdc mode
external_table_name: String
The full name of the table in external database, e.g. database_name.table_name
in MySQL
and schema_name.table_name
in the Postgres.
pk: Vec<ColumnOrder>
The key used to sort in storage.
columns: Vec<ColumnDesc>
All columns in the table, noticed it is NOT sorted by columnId in the vec.
stream_key: Vec<usize>
Column indices for primary keys.
connect_properties: BTreeMap<String, String>
properties will be passed into the StreamScanNode
secret_refs: BTreeMap<String, PbSecretRef>
Secret refs
Implementations§
source§impl CdcTableDesc
impl CdcTableDesc
pub fn order_column_indices(&self) -> Vec<usize>
pub fn order_column_ids(&self) -> Vec<ColumnId>
pub fn to_protobuf(&self) -> ExternalTableDesc
sourcepub fn get_id_to_op_idx_mapping(&self) -> HashMap<ColumnId, usize>
pub fn get_id_to_op_idx_mapping(&self) -> HashMap<ColumnId, usize>
Helper function to create a mapping from column id
to column index
Trait Implementations§
source§impl Clone for CdcTableDesc
impl Clone for CdcTableDesc
source§fn clone(&self) -> CdcTableDesc
fn clone(&self) -> CdcTableDesc
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 CdcTableDesc
impl Debug for CdcTableDesc
source§impl Default for CdcTableDesc
impl Default for CdcTableDesc
source§fn default() -> CdcTableDesc
fn default() -> CdcTableDesc
Returns the “default value” for a type. Read more
source§impl Hash for CdcTableDesc
impl Hash for CdcTableDesc
source§impl PartialEq for CdcTableDesc
impl PartialEq for CdcTableDesc
impl Eq for CdcTableDesc
impl StructuralPartialEq for CdcTableDesc
Auto Trait Implementations§
impl Freeze for CdcTableDesc
impl RefUnwindSafe for CdcTableDesc
impl Send for CdcTableDesc
impl Sync for CdcTableDesc
impl Unpin for CdcTableDesc
impl UnwindSafe for CdcTableDesc
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.