Type Alias datafusion_common::OwnedTableReference
source · pub type OwnedTableReference = TableReference<'static>;
Expand description
This is a TableReference
that has ’static lifetime (aka it
owns the underlying string)
To convert a TableReference
to an OwnedTableReference
, use
let table_reference = TableReference::from("mytable");
let owned_reference = table_reference.to_owned_reference();
Aliased Type§
enum OwnedTableReference {
Bare {
table: Cow<'static, str>,
},
Partial {
schema: Cow<'static, str>,
table: Cow<'static, str>,
},
Full {
catalog: Cow<'static, str>,
schema: Cow<'static, str>,
table: Cow<'static, str>,
},
}
Variants§
Bare
An unqualified table reference, e.g. “table”
Partial
Fields
A partially resolved table reference, e.g. “schema.table”
Full
Fields
A fully resolved table reference, e.g. “catalog.schema.table”
Implementations§
source§impl<'a> TableReference<'a>
impl<'a> TableReference<'a>
sourcepub fn none() -> Option<TableReference<'a>>
pub fn none() -> Option<TableReference<'a>>
Convenience method for creating a typed none None
sourcepub fn bare(table: impl Into<Cow<'a, str>>) -> TableReference<'a>
pub fn bare(table: impl Into<Cow<'a, str>>) -> TableReference<'a>
Convenience method for creating a TableReference::Bare
As described on TableReference
this does NO parsing 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<Cow<'a, str>>,
table: impl Into<Cow<'a, str>>
) -> TableReference<'a>
pub fn partial( schema: impl Into<Cow<'a, str>>, table: impl Into<Cow<'a, str>> ) -> TableReference<'a>
Convenience method for creating a TableReference::Partial
.
As described on TableReference
this does NO parsing at all.
sourcepub fn full(
catalog: impl Into<Cow<'a, str>>,
schema: impl Into<Cow<'a, str>>,
table: impl Into<Cow<'a, str>>
) -> TableReference<'a>
pub fn full( catalog: impl Into<Cow<'a, str>>, schema: impl Into<Cow<'a, str>>, table: impl Into<Cow<'a, str>> ) -> TableReference<'a>
Convenience method for creating a TableReference::Full
As described on TableReference
this does NO parsing at all.
sourcepub fn schema(&self) -> Option<&str>
pub fn schema(&self) -> Option<&str>
Retrieve the schema name if in the Partial
or Full
qualification
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, where 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: &'a str,
default_schema: &'a str
) -> ResolvedTableReference<'a>
pub fn resolve( self, default_catalog: &'a str, default_schema: &'a str ) -> ResolvedTableReference<'a>
Given a default catalog and schema, ensure this table reference is fully resolved
sourcepub fn to_owned_reference(&self) -> OwnedTableReference
pub fn to_owned_reference(&self) -> OwnedTableReference
Converts directly into an OwnedTableReference
by cloning
the underlying data.
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: &'a str) -> Self
pub fn parse_str(s: &'a 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<'a> Clone for TableReference<'a>
impl<'a> Clone for TableReference<'a>
source§fn clone(&self) -> TableReference<'a>
fn clone(&self) -> TableReference<'a>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<'a> Debug for TableReference<'a>
impl<'a> Debug for TableReference<'a>
source§impl Display for TableReference<'_>
impl Display for TableReference<'_>
source§impl<'a> From<&'a String> for TableReference<'a>
impl<'a> From<&'a String> for TableReference<'a>
source§impl<'a> From<&'a TableReference<'static>> for TableReference<'a>
impl<'a> From<&'a TableReference<'static>> for TableReference<'a>
source§fn from(value: &'a OwnedTableReference) -> Self
fn from(value: &'a OwnedTableReference) -> Self
source§impl<'a> From<&'a str> for TableReference<'a>
impl<'a> From<&'a str> for TableReference<'a>
Parse a string into a TableReference, normalizing where appropriate
See full details on TableReference::parse_str
source§impl<'a> From<ResolvedTableReference<'a>> for TableReference<'a>
impl<'a> From<ResolvedTableReference<'a>> for TableReference<'a>
source§fn from(resolved: ResolvedTableReference<'a>) -> Self
fn from(resolved: ResolvedTableReference<'a>) -> Self
source§impl From<String> for OwnedTableReference
impl From<String> for OwnedTableReference
Parse a String
into a OwnedTableReference as a multipart SQL identifier.
source§impl<'a> Hash for TableReference<'a>
impl<'a> Hash for TableReference<'a>
source§impl<'a> Ord for TableReference<'a>
impl<'a> Ord for TableReference<'a>
source§fn cmp(&self, other: &TableReference<'a>) -> Ordering
fn cmp(&self, other: &TableReference<'a>) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere Self: Sized,
source§impl<'a> PartialEq<TableReference<'a>> for TableReference<'a>
impl<'a> PartialEq<TableReference<'a>> for TableReference<'a>
source§fn eq(&self, other: &TableReference<'a>) -> bool
fn eq(&self, other: &TableReference<'a>) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl<'a> PartialOrd<TableReference<'a>> for TableReference<'a>
impl<'a> PartialOrd<TableReference<'a>> for TableReference<'a>
source§fn partial_cmp(&self, other: &TableReference<'a>) -> Option<Ordering>
fn partial_cmp(&self, other: &TableReference<'a>) -> 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 more