in core/src/main/java/org/apache/calcite/avatica/ColumnMetaData.java [86:134]
public ColumnMetaData(
@JsonProperty("ordinal") int ordinal,
@JsonProperty("autoIncrement") boolean autoIncrement,
@JsonProperty("caseSensitive") boolean caseSensitive,
@JsonProperty("searchable") boolean searchable,
@JsonProperty("currency") boolean currency,
@JsonProperty("nullable") int nullable,
@JsonProperty("signed") boolean signed,
@JsonProperty("displaySize") int displaySize,
@JsonProperty("label") String label,
@JsonProperty("columnName") String columnName,
@JsonProperty("schemaName") String schemaName,
@JsonProperty("precision") int precision,
@JsonProperty("scale") int scale,
@JsonProperty("tableName") String tableName,
@JsonProperty("catalogName") String catalogName,
@JsonProperty("type") AvaticaType type,
@JsonProperty("readOnly") boolean readOnly,
@JsonProperty("writable") boolean writable,
@JsonProperty("definitelyWritable") boolean definitelyWritable,
@JsonProperty("columnClassName") String columnClassName) {
this.ordinal = ordinal;
this.autoIncrement = autoIncrement;
this.caseSensitive = caseSensitive;
this.searchable = searchable;
this.currency = currency;
this.nullable = nullable;
this.signed = signed;
this.displaySize = displaySize;
this.label = label;
// Per the JDBC spec this should be just columnName.
// For example, the query
// select 1 as x, c as y from t
// should give columns
// (label=x, column=null, table=null)
// (label=y, column=c table=t)
// But DbUnit requires every column to have a name. Duh.
this.columnName = first(columnName, label);
this.schemaName = schemaName;
this.precision = precision;
this.scale = scale;
this.tableName = tableName;
this.catalogName = catalogName;
this.type = type;
this.readOnly = readOnly;
this.writable = writable;
this.definitelyWritable = definitelyWritable;
this.columnClassName = columnClassName;
}