pub struct TableRef {Show 17 fields
pub name: Identifier,
pub schema: Option<Identifier>,
pub catalog: Option<Identifier>,
pub alias: Option<Identifier>,
pub alias_explicit_as: bool,
pub column_aliases: Vec<Identifier>,
pub trailing_comments: Vec<String>,
pub when: Option<Box<HistoricalData>>,
pub only: bool,
pub final_: bool,
pub table_sample: Option<Box<Sample>>,
pub hints: Vec<Expression>,
pub system_time: Option<String>,
pub partitions: Vec<Identifier>,
pub identifier_func: Option<Box<Expression>>,
pub changes: Option<Box<Changes>>,
pub version: Option<Box<Version>>,
}Expand description
Represent a table reference with optional schema and catalog qualifiers.
Renders as name, schema.name, or catalog.schema.name depending on
which qualifiers are present. Supports aliases, column alias lists,
time-travel clauses (Snowflake, BigQuery), table hints (TSQL), and
several other dialect-specific extensions.
Fields§
§name: IdentifierThe unqualified table name.
schema: Option<Identifier>Optional schema qualifier (e.g. public in public.users).
catalog: Option<Identifier>Optional catalog qualifier (e.g. mydb in mydb.public.users).
alias: Option<Identifier>Optional table alias (e.g. t in FROM users AS t).
alias_explicit_as: boolWhether AS keyword was explicitly used for the alias
column_aliases: Vec<Identifier>Column aliases for table alias: AS t(c1, c2)
trailing_comments: Vec<String>Trailing comments that appeared after this table reference
when: Option<Box<HistoricalData>>Snowflake time travel: BEFORE (STATEMENT => …) or AT (TIMESTAMP => …)
only: boolPostgreSQL ONLY modifier: prevents scanning child tables in inheritance hierarchy
final_: boolClickHouse FINAL modifier: forces final aggregation for MergeTree tables
table_sample: Option<Box<Sample>>TABLESAMPLE clause attached to this table reference (DuckDB, BigQuery)
hints: Vec<Expression>TSQL table hints: WITH (TABLOCK, INDEX(myindex), …)
system_time: Option<String>TSQL: FOR SYSTEM_TIME temporal clause Contains the full clause text, e.g., “FOR SYSTEM_TIME BETWEEN c AND d”
partitions: Vec<Identifier>MySQL: PARTITION(p0, p1, …) hint for reading from specific partitions
identifier_func: Option<Box<Expression>>Snowflake IDENTIFIER() function: dynamic table name from string/variable When set, this is used instead of the name field
changes: Option<Box<Changes>>Snowflake CHANGES clause: CHANGES (INFORMATION => …) AT (…) END (…)
version: Option<Box<Version>>Time travel version clause: FOR VERSION AS OF / FOR TIMESTAMP AS OF (Presto/Trino, BigQuery, Databricks)
Implementations§
Source§impl TableRef
impl TableRef
pub fn new(name: impl Into<String>) -> Self
Sourcepub fn new_with_schema(
name: impl Into<String>,
schema: impl Into<String>,
) -> Self
pub fn new_with_schema( name: impl Into<String>, schema: impl Into<String>, ) -> Self
Create with a schema qualifier.
Sourcepub fn new_with_catalog(
name: impl Into<String>,
schema: impl Into<String>,
catalog: impl Into<String>,
) -> Self
pub fn new_with_catalog( name: impl Into<String>, schema: impl Into<String>, catalog: impl Into<String>, ) -> Self
Create with catalog and schema qualifiers.
Sourcepub fn from_identifier(name: Identifier) -> Self
pub fn from_identifier(name: Identifier) -> Self
Create from an Identifier, preserving the quoted flag