.../org/apache/hive/jdbc/HiveDatabaseMetaData.java | 2 +- .../apache/hive/jdbc/HiveMetaDataResultSet.java | 42 ++++++++++++---------- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/jdbc/src/java/org/apache/hive/jdbc/HiveDatabaseMetaData.java b/jdbc/src/java/org/apache/hive/jdbc/HiveDatabaseMetaData.java index e3bdb68..eb54a90 100644 --- a/jdbc/src/java/org/apache/hive/jdbc/HiveDatabaseMetaData.java +++ b/jdbc/src/java/org/apache/hive/jdbc/HiveDatabaseMetaData.java @@ -760,7 +760,7 @@ public ResultSet getTypeInfo() throws SQLException { public ResultSet getUDTs(String catalog, String schemaPattern, String typeNamePattern, int[] types) throws SQLException { - return new HiveMetaDataResultSet( + return new HiveMetaDataResultSet( Arrays.asList("TYPE_CAT", "TYPE_SCHEM", "TYPE_NAME", "CLASS_NAME", "DATA_TYPE" , "REMARKS", "BASE_TYPE") , Arrays.asList("STRING", "STRING", "STRING", "STRING", "INT", "STRING", "INT") diff --git a/jdbc/src/java/org/apache/hive/jdbc/HiveMetaDataResultSet.java b/jdbc/src/java/org/apache/hive/jdbc/HiveMetaDataResultSet.java index c1bd898..587d32e 100644 --- a/jdbc/src/java/org/apache/hive/jdbc/HiveMetaDataResultSet.java +++ b/jdbc/src/java/org/apache/hive/jdbc/HiveMetaDataResultSet.java @@ -20,35 +20,41 @@ import java.sql.SQLException; import java.util.ArrayList; +import java.util.Collections; import java.util.List; public abstract class HiveMetaDataResultSet extends HiveBaseResultSet { - protected final List data; - @SuppressWarnings("unchecked") - public HiveMetaDataResultSet(final List columnNames - , final List columnTypes - , final List data) throws SQLException { - if (data!=null) { + protected List data = Collections.emptyList(); + + public HiveMetaDataResultSet(final List columnNames, final List columnTypes, + final List data) throws SQLException { + + if (data != null) { this.data = new ArrayList(data); + } + + if (columnTypes != null) { + this.columnTypes = new ArrayList(columnTypes); } else { - this.data = new ArrayList(); + this.columnTypes = Collections.emptyList(); } - if (columnNames!=null) { + + if (columnNames != null) { this.columnNames = new ArrayList(columnNames); - this.normalizedColumnNames = new ArrayList(); - for (String colName : columnNames) { - this.normalizedColumnNames.add(colName.toLowerCase()); - } + this.normalizedColumnNames = normalizeColumnNames(columnNames); } else { - this.columnNames = new ArrayList(); - this.normalizedColumnNames = new ArrayList(); + this.columnNames = Collections.emptyList(); + this.normalizedColumnNames = Collections.emptyList(); } - if (columnTypes!=null) { - this.columnTypes = new ArrayList(columnTypes); - } else { - this.columnTypes = new ArrayList(); + } + + private List normalizeColumnNames(final List columnNames) { + List result = new ArrayList(columnNames.size()); + for (String colName : columnNames) { + result.add(colName.toLowerCase()); } + return result; } @Override