You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jd...@apache.org on 2015/08/11 01:31:23 UTC

[2/2] hive git commit: HIVE-8889 - JDBC Driver ResultSet.getXXXXXX(String columnLabel) methods Broken (Chaoyu Tang via Brock)

HIVE-8889 - JDBC Driver ResultSet.getXXXXXX(String columnLabel) methods Broken (Chaoyu Tang via Brock)

git-svn-id: https://svn.apache.org/repos/asf/hive/trunk@1642470 13f79535-47bb-0310-9956-ffa450edef68


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/4afa6321
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/4afa6321
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/4afa6321

Branch: refs/heads/branch-1.0
Commit: 4afa632100c20f53fb334a9f5b2dd3153e528c44
Parents: a661514
Author: Brock Noland <br...@apache.org>
Authored: Sat Nov 29 20:12:02 2014 +0000
Committer: Jason Dere <jd...@hortonworks.com>
Committed: Mon Aug 10 16:28:34 2015 -0700

----------------------------------------------------------------------
 .../org/apache/hive/jdbc/TestJdbcDriver2.java    | 19 ++++++++++++++-----
 .../org/apache/hive/jdbc/HiveBaseResultSet.java  | 18 ++++++++++++++----
 2 files changed, 28 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/4afa6321/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 e7428ba..ad0fd84 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
@@ -583,6 +583,12 @@ public class TestJdbcDriver2 {
   }
 
   @Test
+  public final void testSelectAllFromView() throws Exception {
+    doTestSelectAll(viewName, -1, -1); // tests not setting maxRows (return all)
+    doTestSelectAll(viewName, 0, -1); // tests setting maxRows to 0 (return all)
+  }
+
+  @Test
   public final void testSelectAllPartioned() throws Exception {
     doTestSelectAll(partitionedTableName, -1, -1); // tests not setting maxRows
     // (return all)
@@ -877,17 +883,20 @@ public class TestJdbcDriver2 {
     assertEquals(
         "Unexpected column count", expectedColCount, meta.getColumnCount());
 
-    String colQualifier = ((tableName != null) && !tableName.isEmpty()) ? tableName.toLowerCase() + "."  : "";
     boolean moreRow = res.next();
     while (moreRow) {
       try {
         i++;
-        assertEquals(res.getInt(1), res.getInt(colQualifier + "under_col"));
-        assertEquals(res.getString(1), res.getString(colQualifier + "under_col"));
-        assertEquals(res.getString(2), res.getString(colQualifier + "value"));
+        assertEquals(res.getInt(1), res.getInt(tableName + ".under_col"));
+        assertEquals(res.getInt(1), res.getInt("under_col"));
+        assertEquals(res.getString(1), res.getString(tableName + ".under_col"));
+        assertEquals(res.getString(1), res.getString("under_col"));
+        assertEquals(res.getString(2), res.getString(tableName + ".value"));
+        assertEquals(res.getString(2), res.getString("value"));
         if (isPartitionTable) {
           assertEquals(res.getString(3), partitionedColumnValue);
-          assertEquals(res.getString(3), res.getString(colQualifier + partitionedColumnName));
+          assertEquals(res.getString(3), res.getString(partitionedColumnName));
+          assertEquals(res.getString(3), res.getString(tableName + "."+ partitionedColumnName));
         }
         assertFalse("Last result value was not null", res.wasNull());
         assertNull("No warnings should be found on ResultSet", res

http://git-wip-us.apache.org/repos/asf/hive/blob/4afa6321/jdbc/src/java/org/apache/hive/jdbc/HiveBaseResultSet.java
----------------------------------------------------------------------
diff --git a/jdbc/src/java/org/apache/hive/jdbc/HiveBaseResultSet.java b/jdbc/src/java/org/apache/hive/jdbc/HiveBaseResultSet.java
index 8cbf9e7..cd1916f 100644
--- a/jdbc/src/java/org/apache/hive/jdbc/HiveBaseResultSet.java
+++ b/jdbc/src/java/org/apache/hive/jdbc/HiveBaseResultSet.java
@@ -85,11 +85,21 @@ public abstract class HiveBaseResultSet implements ResultSet {
   }
 
   public int findColumn(String columnName) throws SQLException {
-    int columnIndex = normalizedColumnNames.indexOf(columnName.toLowerCase());
-    if (columnIndex==-1) {
-      throw new SQLException();
+    int columnIndex = 0;
+    boolean findColumn = false;
+    for (String normalizedColumnName : normalizedColumnNames) {
+      ++columnIndex;
+      String[] names = normalizedColumnName.split("\\.");
+      String name = names[names.length -1];
+      if (name.equalsIgnoreCase(columnName) || normalizedColumnName.equalsIgnoreCase(columnName)) {
+        findColumn = true;
+        break;
+      }
+    }
+    if (!findColumn) {
+      throw new SQLException("Could not find " + columnName + " in " + normalizedColumnNames);
     } else {
-      return ++columnIndex;
+      return columnIndex;
     }
   }