You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by jo...@apache.org on 2019/06/11 20:01:58 UTC
[impala] 01/05: Add option to set driver in ImpalaJdbcDriver
This is an automated email from the ASF dual-hosted git repository.
joemcdonnell pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git
commit 2f3780e846d8c0870e73788837af67019481ae23
Author: Thomas Tauber-Marshall <tm...@cloudera.com>
AuthorDate: Mon Jun 3 11:41:06 2019 -0700
Add option to set driver in ImpalaJdbcDriver
ImpalaJdbcDriver is a simple class that provides a wrapper around the
Hive Jdbc driver for use in testing. This patch adds a '-d' parameter
that takes a driver class and executes queries with that driver
instead of the Hive driver, if its in the classpath.
This makes it easy to use ./bin/run-jdbc-client.sh to test other
Jdbc drivers, such as the proprietary Cloudera Impala driver.
Change-Id: Ie6c8cec2f61e76b7c8321c954eef830778d8a8ee
Reviewed-on: http://gerrit.cloudera.org:8080/13514
Reviewed-by: Thomas Marshall <tm...@cloudera.com>
Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
.../apache/impala/testutil/ImpalaJdbcClient.java | 40 ++++++++++++++--------
1 file changed, 26 insertions(+), 14 deletions(-)
diff --git a/fe/src/test/java/org/apache/impala/testutil/ImpalaJdbcClient.java b/fe/src/test/java/org/apache/impala/testutil/ImpalaJdbcClient.java
index 01a4b2f..c52399a 100644
--- a/fe/src/test/java/org/apache/impala/testutil/ImpalaJdbcClient.java
+++ b/fe/src/test/java/org/apache/impala/testutil/ImpalaJdbcClient.java
@@ -103,7 +103,7 @@ public class ImpalaJdbcClient {
// Make sure the driver can be found, throws a ClassNotFoundException if
// it is not available.
Class.forName(driverName_);
- conn_ = DriverManager.getConnection(connString_, "", "");
+ conn_ = DriverManager.getConnection(connString_);
stmt_ = conn_.createStatement();
}
@@ -145,17 +145,20 @@ public class ImpalaJdbcClient {
return stmt_;
}
+ public static ImpalaJdbcClient createClient(String driver, String connString) {
+ return new ImpalaJdbcClient(driver, connString);
+ }
+
public static ImpalaJdbcClient createClientUsingHiveJdbcDriver() {
- return new ImpalaJdbcClient(
- HIVE_SERVER2_DRIVER_NAME, getNoAuthConnectionStr("binary"));
+ return createClient(HIVE_SERVER2_DRIVER_NAME, getNoAuthConnectionStr("binary"));
}
public static ImpalaJdbcClient createClientUsingHiveJdbcDriver(String connString) {
- return new ImpalaJdbcClient(HIVE_SERVER2_DRIVER_NAME, connString);
+ return createClient(HIVE_SERVER2_DRIVER_NAME, connString);
}
public static ImpalaJdbcClient createHttpClientUsingHiveJdbcDriver() {
- return new ImpalaJdbcClient(HIVE_SERVER2_DRIVER_NAME, getNoAuthConnectionStr("http"));
+ return createClient(HIVE_SERVER2_DRIVER_NAME, getNoAuthConnectionStr("http"));
}
public static String getNoAuthConnectionStr(String connType) {
@@ -183,10 +186,12 @@ public class ImpalaJdbcClient {
private static class ClientExecOptions {
private final String connStr;
private final String query;
+ private final String driver;
- public ClientExecOptions(String connStr, String query) {
+ public ClientExecOptions(String connStr, String query, String driver) {
this.connStr = connStr;
this.query = query;
+ this.driver = driver;
}
public String getQuery() {
@@ -196,6 +201,10 @@ public class ImpalaJdbcClient {
public String getConnStr() {
return connStr;
}
+
+ public String getDriver() {
+ return driver;
+ }
}
/**
@@ -208,6 +217,7 @@ public class ImpalaJdbcClient {
"Full connection string to use. Overrides host/port value");
options.addOption("t", true, "SASL/NOSASL, whether to use SASL transport or not");
options.addOption("q", true, "Query String");
+ options.addOption("d", true, "Driver name, default: org.apache.hive.jdbc.HiveDriver");
options.addOption("help", false, "Help");
BasicParser optionParser = new BasicParser();
@@ -235,12 +245,12 @@ public class ImpalaJdbcClient {
if (connStr == null) {
String hostPort = cmdArgs.getOptionValue("i", "localhost:21050");
connStr = "jdbc:hive2://" + hostPort + "/";
- }
- // Append appropriate auth option to connection string.
- if (useSasl) {
- connStr = connStr + SASL_AUTH_SPEC;
- } else {
- connStr = connStr + NOSASL_AUTH_SPEC;
+ // Append appropriate auth option to connection string.
+ if (useSasl) {
+ connStr = connStr + SASL_AUTH_SPEC;
+ } else {
+ connStr = connStr + NOSASL_AUTH_SPEC;
+ }
}
String query = cmdArgs.getOptionValue("q");
@@ -250,7 +260,9 @@ public class ImpalaJdbcClient {
System.exit(1);
}
- return new ClientExecOptions(connStr, query);
+ String driver = cmdArgs.getOptionValue("d", HIVE_SERVER2_DRIVER_NAME);
+
+ return new ClientExecOptions(connStr, query, driver);
}
private static String formatColumnValue(String colVal, String columnType)
@@ -338,7 +350,7 @@ public class ImpalaJdbcClient {
ClientExecOptions execOptions = parseOptions(args);
ImpalaJdbcClient client =
- ImpalaJdbcClient.createClientUsingHiveJdbcDriver(execOptions.getConnStr());
+ ImpalaJdbcClient.createClient(execOptions.getDriver(), execOptions.getConnStr());
try {
client.connect();