Tim Thorpe created HIVE-26767:
---------------------------------
Summary: Support for custom RDBMS is broken
Key: HIVE-26767
URL: https://issues.apache.org/jira/browse/HIVE-26767
Project: Hive
Issue Type: Bug
Components: Metastore
Affects Versions: 4.0.0
Reporter: Tim Thorpe
HIVE-24120 introduced code to support custom RDBMS.
DatabaseProduct.getDbType(String productName) will return `DbType.UNDEFINED`
for anything other than the hardcoded/internally supported database types.
When initializing DatabaseProduct with an external/custom RDBMS, it follows
this logic:
```
boolean isExternal = MetastoreConf.getBoolVar(conf,
ConfVars.USE_CUSTOM_RDBMS);
if (isExternal) {
// The DatabaseProduct will be created by instantiating an external
class via
// reflection. The external class can override any method in the
current class
String className = MetastoreConf.getVar(conf,
ConfVars.CUSTOM_RDBMS_CLASSNAME);
if (className != null) {
try {
theDatabaseProduct = (DatabaseProduct)
ReflectionUtils.newInstance(Class.forName(className), conf);
LOG.info(String.format("Using custom RDBMS %s", className));
dbt = DbType.CUSTOM;
```
These 2 database types (DbType.UNDEFINED, DbType.CUSTOM) are then compared to
each other to make sure they are the same.
`Preconditions.checkState(theDatabaseProduct.dbType == getDbType(productName));`
[https://github.com/gatorblue/hive/blob/3a65c6cf9cb552e7c34bfb449a419abfde0a58b6/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/DatabaseProduct.java#L80]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)