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)

Reply via email to