fix: preserve case in database name from connection string (#8062)

`parse_optional_catalog_and_schema_from_db_string` unconditionally
lowercased database/schema names, causing quoted database names (e.g.
`CREATE DATABASE "TestQuery"`) to be stored with preserved case but
looked up as lowercase on connection, resulting in "Database not found".

Fixes #8059

Signed-off-by: Lei, HUANG <mrsatangel@gmail.com>
This commit is contained in:
Lei, HUANG
2026-05-06 17:12:55 +08:00
committed by GitHub
parent 9faa012fa1
commit f5c1d5d9bc

View File

@@ -74,9 +74,9 @@ pub fn parse_catalog_and_schema_from_db_string(db: &str) -> (String, String) {
pub fn parse_optional_catalog_and_schema_from_db_string(db: &str) -> (Option<String>, String) {
let parts = db.splitn(2, '-').collect::<Vec<&str>>();
if parts.len() == 2 {
(Some(parts[0].to_lowercase()), parts[1].to_lowercase())
(Some(parts[0].to_string()), parts[1].to_string())
} else {
(None, db.to_lowercase())
(None, db.to_string())
}
}
@@ -118,7 +118,7 @@ mod tests {
);
assert_eq!(
(Some("catalog".to_string()), "schema".to_string()),
(Some("CATALOG".to_string()), "SCHEMA".to_string()),
parse_optional_catalog_and_schema_from_db_string("CATALOG-SCHEMA")
);