in core/src/main/java/org/apache/calcite/avatica/ColumnMetaData.java [186:226]
public static ColumnMetaData fromProto(Common.ColumnMetaData proto) {
AvaticaType nestedType = AvaticaType.fromProto(proto.getType());
String catalogName = null;
if (proto.hasField(CATALOG_NAME_DESCRIPTOR)) {
catalogName = proto.getCatalogName();
}
String schemaName = null;
if (proto.hasField(SCHEMA_NAME_DESCRIPTOR)) {
schemaName = proto.getSchemaName();
}
String label = null;
if (proto.hasField(LABEL_DESCRIPTOR)) {
label = proto.getLabel();
}
String columnName = null;
if (proto.hasField(COLUMN_NAME_DESCRIPTOR)) {
columnName = proto.getColumnName();
}
String tableName = null;
if (proto.hasField(TABLE_NAME_DESCRIPTOR)) {
tableName = proto.getTableName();
}
String columnClassName = null;
if (proto.hasField(COLUMN_CLASS_NAME_DESCRIPTOR)) {
columnClassName = proto.getColumnClassName();
}
// Recreate the ColumnMetaData
return new ColumnMetaData(proto.getOrdinal(), proto.getAutoIncrement(),
proto.getCaseSensitive(), proto.getSearchable(), proto.getCurrency(), proto.getNullable(),
proto.getSigned(), proto.getDisplaySize(), label, columnName,
schemaName, proto.getPrecision(), proto.getScale(), tableName,
catalogName, nestedType, proto.getReadOnly(), proto.getWritable(),
proto.getDefinitelyWritable(), columnClassName);
}