Skip to content

Commit 7a34897

Browse files
committed
[#1984] Return typeName column metadata for results
This information is now available and it's required when working with JSON.
1 parent 8d11bf2 commit 7a34897

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

hibernate-reactive-core/src/main/java/org/hibernate/reactive/adaptor/impl/ResultSetAdaptor.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1323,10 +1323,25 @@ private static class MetaData implements ResultSetMetaData {
13231323

13241324
private final List<String> columns;
13251325
private final List<ColumnDescriptor> descriptors;
1326+
private final String[] typeNames;
1327+
13261328

13271329
public MetaData(List<String> columnNames, List<ColumnDescriptor> columnDescriptors) {
13281330
columns = columnNames;
13291331
descriptors = columnDescriptors;
1332+
typeNames = initTypeNames( columnDescriptors );
1333+
}
1334+
1335+
private static String[] initTypeNames(List<ColumnDescriptor> columnDescriptors) {
1336+
if ( columnDescriptors == null ) {
1337+
return null;
1338+
}
1339+
final String[] typeNames = new String[columnDescriptors.size()];
1340+
int i = 0;
1341+
for ( ColumnDescriptor columnDescriptor : columnDescriptors ) {
1342+
typeNames[i++] = columnDescriptor.typeName();
1343+
}
1344+
return typeNames;
13301345
}
13311346

13321347
@Override
@@ -1412,9 +1427,7 @@ public String getCatalogName(int column) {
14121427

14131428
@Override
14141429
public String getColumnTypeName(int column) {
1415-
// This information is in rows.columnDescriptors().get( column-1 ).dataType.name
1416-
// but does not appear to be accessible.
1417-
return null;
1430+
return typeNames[column - 1];
14181431
}
14191432

14201433
@Override

0 commit comments

Comments
 (0)