Skip to content

Commit f724a6e

Browse files
committed
Move Derby class name out into derby_driver_class()
1 parent bb92463 commit f724a6e

2 files changed

Lines changed: 17 additions & 9 deletions

File tree

rust/operator-binary/src/controller.rs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ use crate::{
9898
STACKABLE_CONFIG_MOUNT_DIR, STACKABLE_CONFIG_MOUNT_DIR_NAME,
9999
STACKABLE_LOG_CONFIG_MOUNT_DIR, STACKABLE_LOG_CONFIG_MOUNT_DIR_NAME, STACKABLE_LOG_DIR,
100100
STACKABLE_LOG_DIR_NAME,
101-
databases::MetadataDatabaseConnection,
101+
databases::{MetadataDatabaseConnection, derby_driver_class},
102102
v1alpha1::{self, HiveMetastoreRoleConfig},
103103
},
104104
discovery::{self},
@@ -633,14 +633,7 @@ fn build_metastore_rolegroup_config_map(
633633
// The Derby driver class needs some special handling
634634
let driver = match &hive.spec.cluster_config.metadata_database {
635635
MetadataDatabaseConnection::Derby(_) => {
636-
// The driver class changed for hive 4.2.0
637-
if ["3.1.3", "4.0.0", "4.0.1", "4.1.0"]
638-
.contains(&resolved_product_image.product_version.as_str())
639-
{
640-
"org.apache.derby.jdbc.EmbeddedDriver"
641-
} else {
642-
"org.apache.derby.iapi.jdbc.AutoloadedDriver"
643-
}
636+
derby_driver_class(&resolved_product_image.product_version)
644637
}
645638
_ => database_connection_details.driver.as_str(),
646639
};

rust/operator-binary/src/crd/databases.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,18 @@ impl MetadataDatabaseConnection {
5454
}
5555
}
5656
}
57+
58+
/// (Hive specific) Derby driver class.
59+
///
60+
/// The driver class changed for Hive 4.2.0 from `org.apache.derby.jdbc.EmbeddedDriver` to
61+
/// `org.apache.derby.iapi.jdbc.AutoloadedDriver`.
62+
pub fn derby_driver_class(product_version: &str) -> &str {
63+
if product_version.starts_with("3.")
64+
|| product_version.starts_with("4.0.")
65+
|| product_version.starts_with("4.1.")
66+
{
67+
"org.apache.derby.jdbc.EmbeddedDriver"
68+
} else {
69+
"org.apache.derby.iapi.jdbc.AutoloadedDriver"
70+
}
71+
}

0 commit comments

Comments
 (0)