in tools/query_verification/src/main/java/com/google/bigquery/TeradataManager.java [272:318]
private List<Object> parseResults(ResultSet values, ResultSetMetaData metadata) throws SQLException {
List<Object> results = new ArrayList<Object>();
// Result set columns start at 1 instead of 0
for (int i = 1; i <= metadata.getColumnCount(); i++) {
Object result;
int type = metadata.getColumnType(i);
switch (type) {
case Types.BOOLEAN:
result = values.getBoolean(i);
break;
case Types.DECIMAL:
case Types.NUMERIC:
result = values.getBigDecimal(i).setScale(QueryVerifier.DECIMAL_PRECISION, RoundingMode.FLOOR);
break;
case Types.FLOAT:
result = BigDecimal.valueOf(values.getFloat(i)).setScale(QueryVerifier.DECIMAL_PRECISION, RoundingMode.FLOOR);
break;
case Types.DOUBLE:
result = BigDecimal.valueOf(values.getDouble(i)).setScale(QueryVerifier.DECIMAL_PRECISION, RoundingMode.FLOOR);
break;
case Types.SMALLINT:
case Types.BIGINT:
case Types.INTEGER:
result = values.getLong(i);
break;
// TODO Add support for Types.STRUCT
case Types.DATE:
case Types.TIME:
case Types.TIMESTAMP:
result = values.getDate(i);
break;
case Types.VARCHAR:
result = values.getString(i);
break;
default:
// Handle unknown/unsupported types as String
System.err.println("Warning: Unsupported type: " + metadata.getColumnTypeName(i));
result = values.getString(i);
}
results.add(result);
}
return results;
}