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)