Sergio Peña created HIVE-8330:
---------------------------------

             Summary: HiveResultSet.findColumn() parameters are case sensitive
                 Key: HIVE-8330
                 URL: https://issues.apache.org/jira/browse/HIVE-8330
             Project: Hive
          Issue Type: Bug
    Affects Versions: 0.13.1
            Reporter: Sergio Peña
            Assignee: Sergio Peña


Look at the following code:
{noformat}
Class.forName("org.apache.hive.jdbc.HiveDriver");

        Connection db = null;
        Statement stmt = null;
        ResultSet rs = null;
        try {
            db = 
DriverManager.getConnection("jdbc:hive2://localhost:10000/default", "hive", "");
            stmt = db.createStatement();
            rs = stmt.executeQuery("SELECT * FROM sample_07 limit 1");

            ResultSetMetaData metaData = rs.getMetaData();
            for (int i = 1; i <= metaData.getColumnCount(); i++) {
                System.out.println("Column " + i + ": " + 
metaData.getColumnName(i));
            }

            while (rs.next()) {
                System.out.println(rs.findColumn("code"));
            }
        } finally {
            DbUtils.closeQuietly(db, stmt, rs);
        }
{noformat}

Above program will generate following result on my cluster:
{noformat}
Column 1: code
Column 2: description
Column 3: total_emp
Column 4: salary
1
{noformat}

However, if the last print sentence is changed as following (using uppercase 
characters):
{noformat}
System.out.println(rs.findColumn("Code"));
{noformat}

The program will fail at exactly that line. The same happens if the column name 
is changed as "CODE"

Based on the JDBC ResultSet documentation, this method should be case 
insensitive.

"Column names used as input to getter methods are case insensitive"
http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to