in jdbc/src/main/java/software/amazon/timestream/jdbc/TimestreamColumnsResultSet.java [151:201]
private void populateCurrentRows() throws SQLException {
final List<TimestreamResultSetMetaData.ColInfo> colInfo = new ArrayList<>();
while (result.next()) {
final String columnName = result.getString(1);
if (!this.columnNameMatcher.reset(columnName).matches()) {
// This column name does not pass the column pattern.
continue;
}
colInfo.add(new TimestreamResultSetMetaData.ColInfo(
new Type().withScalarType(result.getString(2)),
columnName));
}
final ResultSetMetaData rsMeta = new TimestreamResultSetMetaData(colInfo);
final int numColumns = rsMeta.getColumnCount();
final List<Row> columns = new ArrayList<>();
for (int i = 1; i <= numColumns; ++i) {
final int columnType = rsMeta.getColumnType(i);
columns.add(new Row().withData(
createDatum(curDatabase),
NULL_DATUM,
createDatum(curTable),
createDatum(rsMeta.getColumnName(i)),
createDatum(columnType),
createDatum(rsMeta.getColumnTypeName(i)),
createDatum(rsMeta.getColumnDisplaySize(i)),
NULL_DATUM,
((columnType == Types.TIME) || (columnType == Types.TIMESTAMP)) ? createDatum(9)
: NULL_DATUM,
(columnType == Types.DOUBLE) ? createDatum(10) : NULL_DATUM,
createDatum(DatabaseMetaData.columnNullable),
NULL_DATUM,
NULL_DATUM,
createDatum(columnType),
((columnType == Types.DATE) || (columnType == Types.TIME) || (columnType
== Types.TIMESTAMP)) ?
createDatum(columnType % 90) : NULL_DATUM,
(columnType == Types.VARCHAR) ? createDatum(Integer.MAX_VALUE) : NULL_DATUM,
createDatum(i),
createDatum(Constants.YES_STRING),
NULL_DATUM,
NULL_DATUM,
NULL_DATUM,
NULL_DATUM,
createDatum(Constants.NO_STRING),
createDatum(Constants.NO_STRING)));
}
this.rowItr = columns.iterator();
}