You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by th...@apache.org on 2015/12/03 00:54:59 UTC
hive git commit: HIVE-12500 : JDBC driver not overlaying params
supplied via properties object when reading params from ZK (Vaibhav Gumashta
via Thejas Nair)
Repository: hive
Updated Branches:
refs/heads/master 0e5911a84 -> 187829fa9
HIVE-12500 : JDBC driver not overlaying params supplied via properties object when reading params from ZK (Vaibhav Gumashta via Thejas Nair)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/187829fa
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/187829fa
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/187829fa
Branch: refs/heads/master
Commit: 187829fa90f9fd0e81f564f80ab148baa24306d0
Parents: 0e5911a
Author: Vaibhav Gumashta <vg...@apache.org>
Authored: Wed Dec 2 15:54:48 2015 -0800
Committer: Thejas Nair <th...@hortonworks.com>
Committed: Wed Dec 2 15:54:48 2015 -0800
----------------------------------------------------------------------
.../org/apache/hive/jdbc/TestJdbcDriver2.java | 2 +-
.../hive/jdbc/cbo_rp_TestJdbcDriver2.java | 4 +--
.../org/apache/hive/jdbc/HiveConnection.java | 28 +----------------
.../java/org/apache/hive/jdbc/HiveDriver.java | 2 +-
jdbc/src/java/org/apache/hive/jdbc/Utils.java | 33 +++++++++++++++++++-
5 files changed, 37 insertions(+), 32 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/187829fa/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java
----------------------------------------------------------------------
diff --git a/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java b/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java
index 7bbacd5..65016b7 100644
--- a/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java
+++ b/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java
@@ -1953,7 +1953,7 @@ public void testParseUrlHttpMode() throws SQLException, JdbcUriParseException,
ZooKeeperHiveClientException {
new HiveDriver();
for (String[] testValues : HTTP_URL_PROPERTIES) {
- JdbcConnectionParams params = Utils.parseURL(testValues[0]);
+ JdbcConnectionParams params = Utils.parseURL(testValues[0], new Properties());
assertEquals(params.getHost(), testValues[1]);
assertEquals(params.getPort(), Integer.parseInt(testValues[2]));
assertEquals(params.getDbName(), testValues[3]);
http://git-wip-us.apache.org/repos/asf/hive/blob/187829fa/itests/hive-unit/src/test/java/org/apache/hive/jdbc/cbo_rp_TestJdbcDriver2.java
----------------------------------------------------------------------
diff --git a/itests/hive-unit/src/test/java/org/apache/hive/jdbc/cbo_rp_TestJdbcDriver2.java b/itests/hive-unit/src/test/java/org/apache/hive/jdbc/cbo_rp_TestJdbcDriver2.java
index 05361d2..c66f166 100644
--- a/itests/hive-unit/src/test/java/org/apache/hive/jdbc/cbo_rp_TestJdbcDriver2.java
+++ b/itests/hive-unit/src/test/java/org/apache/hive/jdbc/cbo_rp_TestJdbcDriver2.java
@@ -1138,7 +1138,7 @@ public class cbo_rp_TestJdbcDriver2 {
for (String checkPattern: tests.keySet()) {
ResultSet rs = con.getMetaData().getTables("default", null, checkPattern, null);
ResultSetMetaData resMeta = rs.getMetaData();
- assertEquals(5, resMeta.getColumnCount());
+ assertEquals(10, resMeta.getColumnCount());
assertEquals("TABLE_CAT", resMeta.getColumnName(1));
assertEquals("TABLE_SCHEM", resMeta.getColumnName(2));
assertEquals("TABLE_NAME", resMeta.getColumnName(3));
@@ -1817,7 +1817,7 @@ public void testParseUrlHttpMode() throws SQLException, JdbcUriParseException,
ZooKeeperHiveClientException {
new HiveDriver();
for (String[] testValues : HTTP_URL_PROPERTIES) {
- JdbcConnectionParams params = Utils.parseURL(testValues[0]);
+ JdbcConnectionParams params = Utils.parseURL(testValues[0], new Properties());
assertEquals(params.getHost(), testValues[1]);
assertEquals(params.getPort(), Integer.parseInt(testValues[2]));
assertEquals(params.getDbName(), testValues[3]);
http://git-wip-us.apache.org/repos/asf/hive/blob/187829fa/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java
----------------------------------------------------------------------
diff --git a/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java b/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java
index f79d73d..c312ece 100644
--- a/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java
+++ b/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java
@@ -103,8 +103,6 @@ import java.util.concurrent.TimeUnit;
*/
public class HiveConnection implements java.sql.Connection {
public static final Logger LOG = LoggerFactory.getLogger(HiveConnection.class.getName());
- private static final String HIVE_VAR_PREFIX = "hivevar:";
- private static final String HIVE_CONF_PREFIX = "hiveconf:";
private String jdbcUriString;
private String host;
@@ -128,12 +126,11 @@ public class HiveConnection implements java.sql.Connection {
public HiveConnection(String uri, Properties info) throws SQLException {
setupLoginTimeout();
try {
- connParams = Utils.parseURL(uri);
+ connParams = Utils.parseURL(uri, info);
} catch (ZooKeeperHiveClientException e) {
throw new SQLException(e);
}
jdbcUriString = connParams.getJdbcUriString();
- // extract parsed connection parameters:
// JDBC URL: jdbc:hive2://<host>:<port>/dbName;sess_var_list?hive_conf_list#hive_var_list
// each list: <key1>=<val1>;<key2>=<val2> and so on
// sess_var_list -> sessConfMap
@@ -143,19 +140,7 @@ public class HiveConnection implements java.sql.Connection {
port = connParams.getPort();
sessConfMap = connParams.getSessionVars();
hiveConfMap = connParams.getHiveConfs();
-
hiveVarMap = connParams.getHiveVars();
- for (Map.Entry<Object, Object> kv : info.entrySet()) {
- if ((kv.getKey() instanceof String)) {
- String key = (String) kv.getKey();
- if (key.startsWith(HIVE_VAR_PREFIX)) {
- hiveVarMap.put(key.substring(HIVE_VAR_PREFIX.length()), info.getProperty(key));
- } else if (key.startsWith(HIVE_CONF_PREFIX)) {
- hiveConfMap.put(key.substring(HIVE_CONF_PREFIX.length()), info.getProperty(key));
- }
- }
- }
-
isEmbeddedMode = connParams.isEmbeddedMode();
if (isEmbeddedMode) {
@@ -163,17 +148,6 @@ public class HiveConnection implements java.sql.Connection {
embeddedClient.init(null);
client = embeddedClient;
} else {
- // extract user/password from JDBC connection properties if its not supplied in the
- // connection URL
- if (info.containsKey(JdbcConnectionParams.AUTH_USER)) {
- sessConfMap.put(JdbcConnectionParams.AUTH_USER, info.getProperty(JdbcConnectionParams.AUTH_USER));
- if (info.containsKey(JdbcConnectionParams.AUTH_PASSWD)) {
- sessConfMap.put(JdbcConnectionParams.AUTH_PASSWD, info.getProperty(JdbcConnectionParams.AUTH_PASSWD));
- }
- }
- if (info.containsKey(JdbcConnectionParams.AUTH_TYPE)) {
- sessConfMap.put(JdbcConnectionParams.AUTH_TYPE, info.getProperty(JdbcConnectionParams.AUTH_TYPE));
- }
// open the client transport
openTransport();
// set up the client
http://git-wip-us.apache.org/repos/asf/hive/blob/187829fa/jdbc/src/java/org/apache/hive/jdbc/HiveDriver.java
----------------------------------------------------------------------
diff --git a/jdbc/src/java/org/apache/hive/jdbc/HiveDriver.java b/jdbc/src/java/org/apache/hive/jdbc/HiveDriver.java
index dbc9612..a349f8b 100644
--- a/jdbc/src/java/org/apache/hive/jdbc/HiveDriver.java
+++ b/jdbc/src/java/org/apache/hive/jdbc/HiveDriver.java
@@ -238,7 +238,7 @@ public class HiveDriver implements Driver {
JdbcConnectionParams params = null;
try {
- params = Utils.parseURL(url);
+ params = Utils.parseURL(url, defaults);
} catch (ZooKeeperHiveClientException e) {
throw new SQLException(e);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/187829fa/jdbc/src/java/org/apache/hive/jdbc/Utils.java
----------------------------------------------------------------------
diff --git a/jdbc/src/java/org/apache/hive/jdbc/Utils.java b/jdbc/src/java/org/apache/hive/jdbc/Utils.java
index 11b4109..d3f8878 100644
--- a/jdbc/src/java/org/apache/hive/jdbc/Utils.java
+++ b/jdbc/src/java/org/apache/hive/jdbc/Utils.java
@@ -25,6 +25,7 @@ import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -127,6 +128,8 @@ class Utils {
// Currently supports JKS keystore format
static final String SSL_TRUST_STORE_TYPE = "JKS";
+ private static final String HIVE_VAR_PREFIX = "hivevar:";
+ private static final String HIVE_CONF_PREFIX = "hiveconf:";
private String host = null;
private int port = 0;
private String jdbcUriString;
@@ -278,7 +281,7 @@ class Utils {
* @return
* @throws SQLException
*/
- static JdbcConnectionParams parseURL(String uri) throws JdbcUriParseException,
+ static JdbcConnectionParams parseURL(String uri, Properties info) throws JdbcUriParseException,
SQLException, ZooKeeperHiveClientException {
JdbcConnectionParams connParams = new JdbcConnectionParams();
@@ -363,6 +366,34 @@ class Utils {
connParams.getHiveVars().put(varMatcher.group(1), varMatcher.group(2));
}
}
+
+ // Apply configs supplied in the JDBC connection properties object
+ for (Map.Entry<Object, Object> kv : info.entrySet()) {
+ if ((kv.getKey() instanceof String)) {
+ String key = (String) kv.getKey();
+ if (key.startsWith(JdbcConnectionParams.HIVE_VAR_PREFIX)) {
+ connParams.getHiveVars().put(
+ key.substring(JdbcConnectionParams.HIVE_VAR_PREFIX.length()), info.getProperty(key));
+ } else if (key.startsWith(JdbcConnectionParams.HIVE_CONF_PREFIX)) {
+ connParams.getHiveConfs().put(
+ key.substring(JdbcConnectionParams.HIVE_CONF_PREFIX.length()), info.getProperty(key));
+ }
+ }
+ }
+ // Extract user/password from JDBC connection properties if its not supplied
+ // in the connection URL
+ if (info.containsKey(JdbcConnectionParams.AUTH_USER)) {
+ connParams.getSessionVars().put(JdbcConnectionParams.AUTH_USER,
+ info.getProperty(JdbcConnectionParams.AUTH_USER));
+ if (info.containsKey(JdbcConnectionParams.AUTH_PASSWD)) {
+ connParams.getSessionVars().put(JdbcConnectionParams.AUTH_PASSWD,
+ info.getProperty(JdbcConnectionParams.AUTH_PASSWD));
+ }
+ }
+ if (info.containsKey(JdbcConnectionParams.AUTH_TYPE)) {
+ connParams.getSessionVars().put(JdbcConnectionParams.AUTH_TYPE,
+ info.getProperty(JdbcConnectionParams.AUTH_TYPE));
+ }
// Handle all deprecations here:
String newUsage;