private List parseResults()

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;
    }