David Mollitor created HIVE-23307:
-------------------------------------
Summary: Cache ColumnIndex in HiveBaseResultSet
Key: HIVE-23307
URL: https://issues.apache.org/jira/browse/HIVE-23307
Project: Hive
Issue Type: New Feature
Components: JDBC
Affects Versions: 3.1.2
Reporter: David Mollitor
{code:java}
public int findColumn(String columnName) throws 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;
}
}
{code}
Cache the column name to column index map to avoid having to look it up again
and again for each row O(n^2)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)