fix(h2): ignore stale JDBC driver class

This commit is contained in:
t8y2 2026-07-31 00:47:27 +08:00
parent 5ad5b4fcc3
commit 774b1612dc
No known key found for this signature in database
1 changed files with 26 additions and 1 deletions

View File

@ -9,7 +9,9 @@ const ZOOKEEPER_MIN_CONNECTION_TIMEOUT_MS: u64 = 15_000;
fn agent_jdbc_driver_class(config: &ConnectionConfig) -> &str {
let driver_class = config.jdbc_driver_class.as_deref().unwrap_or("");
if config.db_type == DatabaseType::SapHana && matches!(driver_class, "sap_hana" | "saphana") {
if config.db_type == DatabaseType::H2
|| (config.db_type == DatabaseType::SapHana && matches!(driver_class, "sap_hana" | "saphana"))
{
""
} else {
driver_class
@ -736,6 +738,19 @@ mod tests {
assert_eq!(params["connection_string"], "");
}
#[test]
fn h2_agent_connect_params_ignore_stale_driver_class() {
for driver_profile in [None, Some("h2-legacy")] {
let mut cfg = config(DatabaseType::H2, Some("test"));
cfg.driver_profile = driver_profile.map(str::to_string);
cfg.jdbc_driver_class = Some("h2_embedded".to_string());
let params = agent_connect_params(&cfg, "127.0.0.1", 9092, "test");
assert_eq!(params["jdbc_driver_class"], "");
}
}
#[test]
fn vastbase_agent_url_defaults_to_postgres_database_when_empty() {
let cfg = config(DatabaseType::Vastbase, Some(""));
@ -1065,6 +1080,16 @@ mod tests {
assert_eq!(params["jdbc_driver_paths"], serde_json::json!(["/tmp/custom-driver.jar"]));
}
#[test]
fn generic_jdbc_agent_connect_params_preserve_custom_driver_class() {
let mut cfg = config(DatabaseType::Jdbc, Some("test"));
cfg.jdbc_driver_class = Some("com.example.CustomDriver".to_string());
let params = agent_connect_params(&cfg, "jdbc.example.com", 1234, "test");
assert_eq!(params["jdbc_driver_class"], "com.example.CustomDriver");
}
#[test]
fn trino_agent_url_uses_jdbc_scheme_without_ssl_by_default() {
let mut cfg = config(DatabaseType::Trino, Some("hive"));