drin commented on code in PR #18187:
URL: https://github.com/apache/datafusion/pull/18187#discussion_r2448864357
##########
datafusion/common/src/table_reference.rs:
##########
@@ -269,24 +269,48 @@ impl TableReference {
}
/// Forms a [`TableReference`] by parsing `s` as a multipart SQL
- /// identifier. See docs on [`TableReference`] for more details.
+ /// identifier, normalizing `s` to lowercase.
+ /// See docs on [`TableReference`] for more details.
pub fn parse_str(s: &str) -> Self {
- let mut parts = parse_identifiers_normalized(s, false);
+ Self::parse_str_normalized(s, false)
+ }
+
+ /// Forms a [`TableReference`] by parsing `s` as a multipart SQL
+ /// identifier, normalizing `s` to lowercase if `ignore_case` is `false`.
+ /// See docs on [`TableReference`] for more details.
+ pub fn parse_str_normalized(s: &str, ignore_case: bool) -> Self {
+ let table_parts = parse_identifiers_normalized(s, ignore_case);
+
+ Self::from_vec(table_parts)
+ .unwrap_or(Self::Bare { table: s.into() })
+ }
+ /// Compose a [`TableReference`] from separate parts. The input vector
should contain
+ /// at most three elements in the following sequence:
+ /// ```no_rust
+ /// [<catalog>, <schema>, table]
+ /// ```
+ pub fn from_vec(mut parts: Vec<String>) -> Option<Self> {
Review Comment:
actually, a little LLM magic explained `&[]` syntax and I see the intended
wider surface now (even though this specific case means an extra copy and the
vec will go away anyways)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]