You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Deepesh Khandelwal (JIRA)" <ji...@apache.org> on 2015/08/24 21:37:45 UTC
[jira] [Updated] (HIVE-11628) DB type detection code is failing on
Oracle 12
[ https://issues.apache.org/jira/browse/HIVE-11628?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Deepesh Khandelwal updated HIVE-11628:
--------------------------------------
Attachment: HIVE-11628.patch
Attaching the patch for review.
> DB type detection code is failing on Oracle 12
> ----------------------------------------------
>
> Key: HIVE-11628
> URL: https://issues.apache.org/jira/browse/HIVE-11628
> Project: Hive
> Issue Type: Bug
> Components: Metastore
> Environment: Oracle 12
> Reporter: Deepesh Khandelwal
> Assignee: Deepesh Khandelwal
> Attachments: HIVE-11628.patch
>
>
> DB type detection code is failing when using Oracle 12 as backing store.
> When determining qualification for direct SQL, in the logs following message is seen:
> {noformat}
> 2015-08-14 01:15:16,020 INFO [pool-6-thread-109]: metastore.MetaStoreDirectSql (MetaStoreDirectSql.java:<init>(131)) - Using direct SQL, underlying DB is OTHER
> {noformat}
> Currently in org/apache/hadoop/hive/metastore/MetaStoreDirectSql, there is a code snippet:
> {code}
> private DB determineDbType() {
> DB dbType = DB.OTHER;
> if (runDbCheck("SET @@session.sql_mode=ANSI_QUOTES", "MySql")) {
> dbType = DB.MYSQL;
> } else if (runDbCheck("SELECT version from v$instance", "Oracle")) {
> dbType = DB.ORACLE;
> } else if (runDbCheck("SELECT @@version", "MSSQL")) {
> dbType = DB.MSSQL;
> } else {
> // TODO: maybe we should use getProductName to identify all the DBs
> String productName = getProductName();
> if (productName != null && productName.toLowerCase().contains("derby")) {
> dbType = DB.DERBY;
> }
> }
> return dbType;
> }
> {code}
> The code relies on access to v$instance in order to identify the backend DB as Oracle, but this can fail if users are not granted select privileges on v$ tables. An alternate way is specified on [Oracle Database Reference pages|http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_4224.htm] works.
> I will attach a potential patch that should work.
> Without the patch the workaround here would be to grant select privileges on v$ tables.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)