You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2013/07/01 19:20:31 UTC
svn commit: r1498576 - in /hive/trunk/jdbc/src:
java/org/apache/hive/jdbc/HiveResultSetMetaData.java
test/org/apache/hive/jdbc/TestJdbcDriver2.java
Author: hashutosh
Date: Mon Jul 1 17:20:31 2013
New Revision: 1498576
URL: http://svn.apache.org/r1498576
Log:
HIVE-4785 : Implement isCaseSensitive for Hive JDBC driver (Robert Roland via Ashutosh Chauhan)
Modified:
hive/trunk/jdbc/src/java/org/apache/hive/jdbc/HiveResultSetMetaData.java
hive/trunk/jdbc/src/test/org/apache/hive/jdbc/TestJdbcDriver2.java
Modified: hive/trunk/jdbc/src/java/org/apache/hive/jdbc/HiveResultSetMetaData.java
URL: http://svn.apache.org/viewvc/hive/trunk/jdbc/src/java/org/apache/hive/jdbc/HiveResultSetMetaData.java?rev=1498576&r1=1498575&r2=1498576&view=diff
==============================================================================
--- hive/trunk/jdbc/src/java/org/apache/hive/jdbc/HiveResultSetMetaData.java (original)
+++ hive/trunk/jdbc/src/java/org/apache/hive/jdbc/HiveResultSetMetaData.java Mon Jul 1 17:20:31 2013
@@ -82,14 +82,7 @@ public class HiveResultSetMetaData imple
}
public String getColumnTypeName(int column) throws SQLException {
- if (columnTypes == null) {
- throw new SQLException(
- "Could not determine column type name for ResultSet");
- }
-
- if (column < 1 || column > columnTypes.size()) {
- throw new SQLException("Invalid column value: " + column);
- }
+ validateColumnType(column);
// we need to convert the Hive type to the SQL type name
// TODO: this would be better handled in an enum
@@ -155,7 +148,17 @@ public class HiveResultSetMetaData imple
}
public boolean isCaseSensitive(int column) throws SQLException {
- throw new SQLException("Method not supported");
+ validateColumnType(column);
+
+ // we need to convert the Hive type to the SQL type name
+ // TODO: this would be better handled in an enum
+ String type = columnTypes.get(column - 1);
+
+ if("string".equalsIgnoreCase(type)) {
+ return true;
+ } else {
+ return false;
+ }
}
public boolean isCurrency(int column) throws SQLException {
@@ -196,4 +199,14 @@ public class HiveResultSetMetaData imple
throw new SQLException("Method not supported");
}
+ protected void validateColumnType(int column) throws SQLException {
+ if (columnTypes == null) {
+ throw new SQLException(
+ "Could not determine column type name for ResultSet");
+ }
+
+ if (column < 1 || column > columnTypes.size()) {
+ throw new SQLException("Invalid column value: " + column);
+ }
+ }
}
Modified: hive/trunk/jdbc/src/test/org/apache/hive/jdbc/TestJdbcDriver2.java
URL: http://svn.apache.org/viewvc/hive/trunk/jdbc/src/test/org/apache/hive/jdbc/TestJdbcDriver2.java?rev=1498576&r1=1498575&r2=1498576&view=diff
==============================================================================
--- hive/trunk/jdbc/src/test/org/apache/hive/jdbc/TestJdbcDriver2.java (original)
+++ hive/trunk/jdbc/src/test/org/apache/hive/jdbc/TestJdbcDriver2.java Mon Jul 1 17:20:31 2013
@@ -478,6 +478,12 @@ public class TestJdbcDriver2 extends Tes
assertEquals(true, res.getBoolean(1));
assertEquals(true, res.getBoolean(4));
+ // test case sensitivity
+ assertFalse(meta.isCaseSensitive(1));
+ assertFalse(meta.isCaseSensitive(2));
+ assertFalse(meta.isCaseSensitive(3));
+ assertTrue(meta.isCaseSensitive(4));
+
// no more rows
assertFalse(res.next());
}