MCPcopy Create free account
hub / github.com/apache/datafusion / object_name_to_table_reference

Function object_name_to_table_reference

datafusion/sql/src/planner.rs:919–937  ·  view source on GitHub ↗

Create a [`TableReference`] after normalizing the specified ObjectName Examples ```text ['foo'] -> Bare { table: "foo" } ['"foo.bar"]] -> Bare { table: "foo.bar" } ['foo', 'Bar'] -> Partial { schema: "foo", table: "bar" } <-- note lower case "bar" ['foo', 'bar'] -> Partial { schema: "foo", table: "bar" } ['foo', '"Bar"'] -> Partial { schema: "foo", table: "Bar" } ```

(
    object_name: ObjectName,
    enable_normalization: bool,
)

Source from the content-addressed store, hash-verified

917/// ['foo', '"Bar"'] -> Partial { schema: "foo", table: "Bar" }
918/// ```
919pub fn object_name_to_table_reference(
920 object_name: ObjectName,
921 enable_normalization: bool,
922) -> Result<TableReference> {
923 // Use destructure to make it clear no fields on ObjectName are ignored
924 let ObjectName(object_name_parts) = object_name;
925 let idents = object_name_parts
926 .into_iter()
927 .map(|object_name_part| {
928 object_name_part.as_ident().cloned().ok_or_else(|| {
929 plan_datafusion_err!(
930 "Expected identifier, but found: {:?}",
931 object_name_part
932 )
933 })
934 })
935 .collect::<Result<Vec<_>>>()?;
936 idents_to_table_reference(idents, enable_normalization)
937}
938
939struct IdentTaker {
940 normalizer: IdentNormalizer,

Callers 4

insert_relationMethod · 0.85
pre_visit_queryMethod · 0.85
pre_visit_statementMethod · 0.85

Calls 5

as_identMethod · 0.80
mapMethod · 0.45
into_iterMethod · 0.45
clonedMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…