This is an automated email from the ASF dual-hosted git repository.
okumin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push:
new 41bd75622ce HIVE-29273: Default port appended should respect transport
mode when … (#6137)
41bd75622ce is described below
commit 41bd75622ce311b33a60038a6cf754f67de1480b
Author: Tanishq Chugh <[email protected]>
AuthorDate: Mon Oct 20 11:13:27 2025 +0530
HIVE-29273: Default port appended should respect transport mode when …
(#6137)
* HIVE-29273: Default port appended should respect transport mode when host
is specified without port
* Update the utility function to use default variable values instead of
hardcoding
* Update the test case
* Address checkstyle issues
* Remove unnecessary redundant null check
---
jdbc/src/java/org/apache/hive/jdbc/HiveDriver.java | 2 +-
jdbc/src/java/org/apache/hive/jdbc/Utils.java | 21 +++++++++++++++------
.../org/apache/hive/jdbc/TestHiveConnection.java | 5 ++++-
3 files changed, 20 insertions(+), 8 deletions(-)
diff --git a/jdbc/src/java/org/apache/hive/jdbc/HiveDriver.java
b/jdbc/src/java/org/apache/hive/jdbc/HiveDriver.java
index edd9e574150..862a71f4496 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 @@ private Properties parseURLforPropertyInfo(String url,
Properties defaults) thro
port = "";
}
else if(port.equals("0") || port.equals("-1")){
- port = Utils.DEFAULT_PORT;
+ port = Utils.getDefaultPort(params);
}
String db = params.getDbName();
urlProps.put(HOST_PROPERTY_KEY, host);
diff --git a/jdbc/src/java/org/apache/hive/jdbc/Utils.java
b/jdbc/src/java/org/apache/hive/jdbc/Utils.java
index 023c23f7ca0..a5bba8b8c45 100644
--- a/jdbc/src/java/org/apache/hive/jdbc/Utils.java
+++ b/jdbc/src/java/org/apache/hive/jdbc/Utils.java
@@ -50,11 +50,6 @@ public class Utils {
*/
public static final String URL_PREFIX = "jdbc:hive2://";
- /**
- * If host is provided, without a port.
- */
- static final String DEFAULT_PORT = "10000";
-
// To parse the intermediate URI as a Java URI, we'll give a dummy
authority(dummyhost:00000).
// Later, we'll substitute the dummy authority for a resolved authority.
static final String dummyAuthorityString = "dummyhost:00000";
@@ -641,7 +636,7 @@ public static JdbcConnectionParams
extractURLComponents(String uri, Properties i
// Set the port to default value; we do support jdbc url like:
// jdbc:hive2://localhost/db
if (port <= 0) {
- port = Integer.parseInt(Utils.DEFAULT_PORT);
+ port = Integer.parseInt(Utils.getDefaultPort(connParams));
}
connParams.setHost(host);
connParams.setPort(port);
@@ -890,4 +885,18 @@ public static String getPassword(Map<String, String>
confMap, String key) {
}
return password;
}
+
+ /**
+ * Method to get the default port based on the transport mode.
+ * @param connectionParams JDBC connection parameters
+ * @return defaultPort
+ */
+ public static String getDefaultPort(JdbcConnectionParams connectionParams) {
+ String port = HiveConf.ConfVars.HIVE_SERVER2_THRIFT_PORT.getDefaultValue();
+ String transportMode =
connectionParams.getSessionVars().get(JdbcConnectionParams.TRANSPORT_MODE);
+ if ("http".equalsIgnoreCase(transportMode)) {
+ port = HiveConf.ConfVars.HIVE_SERVER2_THRIFT_HTTP_PORT.getDefaultValue();
+ }
+ return port;
+ }
}
diff --git a/jdbc/src/test/org/apache/hive/jdbc/TestHiveConnection.java
b/jdbc/src/test/org/apache/hive/jdbc/TestHiveConnection.java
index a9e54167eeb..1ad35c6e90a 100644
--- a/jdbc/src/test/org/apache/hive/jdbc/TestHiveConnection.java
+++ b/jdbc/src/test/org/apache/hive/jdbc/TestHiveConnection.java
@@ -75,7 +75,10 @@ public void testHiveConnectionParameters() throws
SQLException, ZooKeeperHiveCli
Assert.assertEquals("true",
params.getSessionVars().get(JdbcConnectionParams.JDBC_PARAM_REQUEST_TRACK));
JdbcConnectionParams nonPortParams =
Utils.parseURL("jdbc:hive2://hello.host/default");
- Assert.assertEquals(Integer.parseInt(Utils.DEFAULT_PORT),
nonPortParams.getPort());
+ Assert.assertEquals(10000, nonPortParams.getPort());
+
+ JdbcConnectionParams nonPortHttpParams =
Utils.parseURL("jdbc:hive2://hello.host/default;transportMode=http");
+ Assert.assertEquals(10001, nonPortHttpParams.getPort());
}
@Test