risingwave_pb::catalog

Type Alias PbTable

source
pub type PbTable = Table;
Expand description

Alias for Table.

Aliased Type§

struct PbTable {
Show 38 fields pub id: u32, pub schema_id: u32, pub database_id: u32, pub name: String, pub columns: Vec<ColumnCatalog>, pub pk: Vec<ColumnOrder>, pub dependent_relations: Vec<u32>, pub table_type: i32, pub distribution_key: Vec<i32>, pub stream_key: Vec<i32>, pub append_only: bool, pub owner: u32, pub fragment_id: u32, pub vnode_col_index: Option<u32>, pub row_id_index: Option<u32>, pub value_indices: Vec<i32>, pub definition: String, pub handle_pk_conflict_behavior: i32, pub read_prefix_len_hint: u32, pub watermark_indices: Vec<i32>, pub dist_key_in_pk: Vec<i32>, pub dml_fragment_id: Option<u32>, pub cardinality: Option<Cardinality>, pub initialized_at_epoch: Option<u64>, pub created_at_epoch: Option<u64>, pub cleaned_by_watermark: bool, pub stream_job_status: i32, pub create_type: i32, pub description: Option<String>, pub incoming_sinks: Vec<u32>, pub initialized_at_cluster_version: Option<String>, pub created_at_cluster_version: Option<String>, pub retention_seconds: Option<u32>, pub version_column_index: Option<u32>, pub cdc_table_id: Option<String>, pub maybe_vnode_count: Option<u32>, pub version: Option<TableVersion>, pub optional_associated_source_id: Option<OptionalAssociatedSourceId>,
}

Fields§

§id: u32§schema_id: u32§database_id: u32§name: String§columns: Vec<ColumnCatalog>§pk: Vec<ColumnOrder>§dependent_relations: Vec<u32>

For cdc table created from a cdc source, here records the source id.

TODO(rc): deprecate this by passing dependencies via Request message

§table_type: i32§distribution_key: Vec<i32>§stream_key: Vec<i32>

pk_indices of the corresponding materialize operator’s output.

§append_only: bool§owner: u32§fragment_id: u32§vnode_col_index: Option<u32>

an optional column index which is the vnode of each row computed by the table’s consistent hash distribution

§row_id_index: Option<u32>

An optional column index of row id. If the primary key is specified by users, this will be None.

§value_indices: Vec<i32>

The column indices which are stored in the state store’s value with row-encoding. Currently is not supported yet and expected to be \[0..columns.len()\].

§definition: String§handle_pk_conflict_behavior: i32

Used to control whether handling pk conflict for incoming data.

§read_prefix_len_hint: u32

Anticipated read prefix pattern (number of fields) for the table, which can be utilized for implementing the table’s bloom filter or other storage optimization techniques.

§watermark_indices: Vec<i32>§dist_key_in_pk: Vec<i32>§dml_fragment_id: Option<u32>

A dml fragment id corresponds to the table, used to decide where the dml statement is executed.

§cardinality: Option<Cardinality>

The range of row count of the table. This field is not always present due to backward compatibility. Use Cardinality::unknown in this case.

§initialized_at_epoch: Option<u64>§created_at_epoch: Option<u64>§cleaned_by_watermark: bool

This field is introduced in v1.2.0. It is used to indicate whether the table should use watermark_cache to avoid state cleaning as a performance optimization. In older versions we can just initialize without it.

§stream_job_status: i32

Used to filter created / creating tables in meta.

§create_type: i32§description: Option<String>

This field is used to store the description set by the comment on clause.

§incoming_sinks: Vec<u32>

This field is used to mark the the sink into this table.

§initialized_at_cluster_version: Option<String>

Cluster version (tracked by git commit) when initialized/created

§created_at_cluster_version: Option<String>§retention_seconds: Option<u32>

TTL of the record in the table, to ensure the consistency with other tables in the streaming plan, it only applies to append-only tables.

§version_column_index: Option<u32>

This field specifies the index of the column set in the “with version column” within all the columns. It is used for filtering during “on conflict” operations.

§cdc_table_id: Option<String>

The unique identifier of the upstream table if it is a CDC table. It will be used in auto schema change to get the Table which mapped to the upstream table.

§maybe_vnode_count: Option<u32>

Total vnode count of the table.

Use VnodeCountCompat::vnode_count to access it.

  • Can be unset if the table is created in older versions where variable vnode count is not supported, in which case a default value of 256 (or 1 for singleton) should be used.
  • Can be placeholder value Some(0) if the catalog is generated by the frontend and the corresponding job is still in Creating status, in which case calling vnode_count will panic.

Please note that this field is not intended to describe the expected vnode count for a streaming job. Instead, refer to stream_plan.StreamFragmentGraph.max_parallelism.

§version: Option<TableVersion>

Per-table catalog version, used by schema change. None for internal tables and tests. Not to be confused with the global catalog version for notification service.

§optional_associated_source_id: Option<OptionalAssociatedSourceId>