pub enum TableReference {
    Bare {
        table: Arc<str>,
    },
    Partial {
        schema: Arc<str>,
        table: Arc<str>,
    },
    Full {
        catalog: Arc<str>,
        schema: Arc<str>,
        table: Arc<str>,
    },
}Expand description
A multi part identifier (path) to a table that may require further
resolution (e.g. foo.bar).
TableReferences are cheap to clone() as they are implemented with
Arc.
See ResolvedTableReference for a fully resolved table reference.
§Creating TableReference
When converting strings to TableReferences, the string is parsed as
though it were a SQL identifier, normalizing (convert to lowercase) any
unquoted identifiers.  TableReference::bare creates references without
applying normalization semantics.
§Examples
// Get a table reference to 'mytable'
let table_reference = TableReference::from("mytable");
assert_eq!(table_reference, TableReference::bare("mytable"));
// Get a table reference to 'mytable' (note the capitalization)
let table_reference = TableReference::from("MyTable");
assert_eq!(table_reference, TableReference::bare("mytable"));
// Get a table reference to 'MyTable' (note the capitalization) using double quotes
// (programatically it is better to use `TableReference::bare` for this)
let table_reference = TableReference::from(r#""MyTable""#);
assert_eq!(table_reference, TableReference::bare("MyTable"));
// Get a table reference to 'myschema.mytable' (note the capitalization)
let table_reference = TableReference::from("MySchema.MyTable");
assert_eq!(table_reference, TableReference::partial("myschema", "mytable"));Variants§
Bare
An unqualified table reference, e.g. “table”
Partial
A partially resolved table reference, e.g. “schema.table”
Full
A fully resolved table reference, e.g. “catalog.schema.table”
Implementations§
source§impl TableReference
 
impl TableReference
sourcepub fn none() -> Option<TableReference>
 
pub fn none() -> Option<TableReference>
Convenience method for creating a typed none None
sourcepub fn bare(table: impl Into<Arc<str>>) -> TableReference
 
pub fn bare(table: impl Into<Arc<str>>) -> TableReference
Convenience method for creating a TableReference::Bare
As described on TableReference this does NO normalization at
all, so “Foo.Bar” stays as a reference to the table named
“Foo.Bar” (rather than “foo”.“bar”)
sourcepub fn partial(
    schema: impl Into<Arc<str>>,
    table: impl Into<Arc<str>>,
) -> TableReference
 
pub fn partial( schema: impl Into<Arc<str>>, table: impl Into<Arc<str>>, ) -> TableReference
Convenience method for creating a TableReference::Partial.
Note: NO normalization is applied to the schema or table name.
sourcepub fn full(
    catalog: impl Into<Arc<str>>,
    schema: impl Into<Arc<str>>,
    table: impl Into<Arc<str>>,
) -> TableReference
 
pub fn full( catalog: impl Into<Arc<str>>, schema: impl Into<Arc<str>>, table: impl Into<Arc<str>>, ) -> TableReference
Convenience method for creating a TableReference::Full
Note: NO normalization is applied to the catalog, schema or table name.
sourcepub fn schema(&self) -> Option<&str>
 
pub fn schema(&self) -> Option<&str>
Retrieve the schema name if [Self::Partial] or [Self::Full], None` otherwise.
sourcepub fn catalog(&self) -> Option<&str>
 
pub fn catalog(&self) -> Option<&str>
Retrieve the catalog name if  Self::Full, None otherwise.
sourcepub fn resolved_eq(&self, other: &Self) -> bool
 
pub fn resolved_eq(&self, other: &Self) -> bool
Compare with another TableReference as if both are resolved.
This allows comparing across variants. If a field is not present
in both variants being compared then it is ignored in the comparison.
e.g. this allows a TableReference::Bare to be considered equal to a
fully qualified TableReference::Full if the table names match.
sourcepub fn resolve(
    self,
    default_catalog: &str,
    default_schema: &str,
) -> ResolvedTableReference
 
pub fn resolve( self, default_catalog: &str, default_schema: &str, ) -> ResolvedTableReference
Given a default catalog and schema, ensure this table reference is fully resolved
sourcepub fn to_quoted_string(&self) -> String
 
pub fn to_quoted_string(&self) -> String
Forms a string where the identifiers are quoted
§Example
let table_reference = TableReference::partial("myschema", "mytable");
assert_eq!(table_reference.to_quoted_string(), "myschema.mytable");
let table_reference = TableReference::partial("MySchema", "MyTable");
assert_eq!(table_reference.to_quoted_string(), r#""MySchema"."MyTable""#);sourcepub fn parse_str(s: &str) -> Self
 
pub fn parse_str(s: &str) -> Self
Forms a TableReference by parsing s as a multipart SQL
identifier. See docs on TableReference for more details.
sourcepub fn to_vec(&self) -> Vec<String>
 
pub fn to_vec(&self) -> Vec<String>
Decompose a TableReference to separate parts. The result vector contains
at most three elements in the following sequence:
[<catalog>, <schema>, table]
Trait Implementations§
source§impl Clone for TableReference
 
impl Clone for TableReference
source§fn clone(&self) -> TableReference
 
fn clone(&self) -> TableReference
1.0.0 · source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for TableReference
 
impl Debug for TableReference
source§impl Display for TableReference
 
impl Display for TableReference
source§impl<'a> From<&'a String> for TableReference
 
impl<'a> From<&'a String> for TableReference
source§impl<'a> From<&'a str> for TableReference
 
impl<'a> From<&'a str> for TableReference
Parse a string into a TableReference, normalizing where appropriate
See full details on TableReference::parse_str
source§impl From<ResolvedTableReference> for TableReference
 
impl From<ResolvedTableReference> for TableReference
source§fn from(resolved: ResolvedTableReference) -> Self
 
fn from(resolved: ResolvedTableReference) -> Self
source§impl From<String> for TableReference
 
impl From<String> for TableReference
source§impl Hash for TableReference
 
impl Hash for TableReference
source§impl Ord for TableReference
 
impl Ord for TableReference
source§fn cmp(&self, other: &TableReference) -> Ordering
 
fn cmp(&self, other: &TableReference) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
    Self: Sized,
 
fn max(self, other: Self) -> Selfwhere
    Self: Sized,
source§impl PartialEq for TableReference
 
impl PartialEq for TableReference
source§fn eq(&self, other: &TableReference) -> bool
 
fn eq(&self, other: &TableReference) -> bool
self and other values to be equal, and is used
by ==.source§impl PartialOrd for TableReference
 
impl PartialOrd for TableReference
source§fn partial_cmp(&self, other: &TableReference) -> Option<Ordering>
 
fn partial_cmp(&self, other: &TableReference) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
 
fn le(&self, other: &Rhs) -> bool
self and other) and is used by the <=
operator. Read moreimpl Eq for TableReference
impl StructuralPartialEq for TableReference
Auto Trait Implementations§
impl Freeze for TableReference
impl RefUnwindSafe for TableReference
impl Send for TableReference
impl Sync for TableReference
impl Unpin for TableReference
impl UnwindSafe for TableReference
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
source§impl<Q, K> Comparable<K> for Q
 
impl<Q, K> Comparable<K> for Q
source§impl<Q, K> Equivalent<K> for Q
 
impl<Q, K> Equivalent<K> for Q
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
key and return true if they are equal.