Skip to content

Commit

Permalink
Add printout of SQL ResultSet metadata (raw fields descriptions retur…
Browse files Browse the repository at this point in the history
…n by a SQL result).
  • Loading branch information
Ruslan Altynnikov committed Feb 5, 2023
1 parent b4e5a38 commit 7bd0191
Showing 1 changed file with 18 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -122,15 +122,11 @@ private static SchemaBuilder.FieldAssembler<Schema> createAvroFields(
final AvroSchemaMetadataProvider provider)
throws SQLException {

final StringBuilder sqlMetadataLog = new StringBuilder("Sql ResultSet metadata: { ");

for (int i = 1; i <= meta.getColumnCount(); i++) {

final String columnName;
if (meta.getColumnName(i).isEmpty()) {
columnName = meta.getColumnLabel(i);
} else {
columnName = meta.getColumnName(i);
}

final String columnName = getColumnName(meta, i);
final int columnType = meta.getColumnType(i);
final String typeName = JDBCType.valueOf(columnType).getName();
final String columnClassName = meta.getColumnClassName(i);
Expand Down Expand Up @@ -160,10 +156,25 @@ private static SchemaBuilder.FieldAssembler<Schema> createAvroFields(
fieldSchemaBuilder);

schemaFieldAssembler.endUnion().nullDefault();

sqlMetadataLog.append(String.format("#[%d] name[%s] type[%s], ", i, columnName, typeName));
}

LOGGER.info(sqlMetadataLog.append(" }").toString());

return builder;
}

private static String getColumnName(ResultSetMetaData meta, int i) throws SQLException {
final String columnName;
if (meta.getColumnName(i).isEmpty()) {
columnName = meta.getColumnLabel(i);
} else {
columnName = meta.getColumnName(i);
}
return columnName;
}

/**
* Creates Avro field schema based on JDBC MetaData
*
Expand Down

0 comments on commit 7bd0191

Please sign in to comment.