in modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/util/TypeUtils.java [328:390]
public static ColumnType columnType(RelDataType type) {
switch (type.getSqlTypeName()) {
case VARCHAR:
case CHAR:
return ColumnType.STRING;
case DATE:
return ColumnType.DATE;
case TIME:
case TIME_WITH_LOCAL_TIME_ZONE:
return ColumnType.TIME;
case INTEGER:
return ColumnType.INT32;
case TIMESTAMP:
return ColumnType.DATETIME;
case TIMESTAMP_WITH_LOCAL_TIME_ZONE:
return ColumnType.TIMESTAMP;
case BIGINT:
return ColumnType.INT64;
case SMALLINT:
return ColumnType.INT16;
case TINYINT:
return ColumnType.INT8;
case BOOLEAN:
return ColumnType.BOOLEAN;
case DECIMAL:
return ColumnType.DECIMAL;
case DOUBLE:
return ColumnType.DOUBLE;
case REAL:
case FLOAT:
return ColumnType.FLOAT;
case BINARY:
case VARBINARY:
case ANY:
if (type instanceof IgniteCustomType) {
IgniteCustomType customType = (IgniteCustomType) type;
return customType.spec().columnType();
}
// fallthrough
case OTHER:
return ColumnType.BYTE_ARRAY;
case INTERVAL_YEAR:
case INTERVAL_YEAR_MONTH:
case INTERVAL_MONTH:
return ColumnType.PERIOD;
case INTERVAL_DAY_HOUR:
case INTERVAL_DAY_MINUTE:
case INTERVAL_DAY_SECOND:
case INTERVAL_HOUR:
case INTERVAL_HOUR_MINUTE:
case INTERVAL_HOUR_SECOND:
case INTERVAL_MINUTE:
case INTERVAL_MINUTE_SECOND:
case INTERVAL_SECOND:
case INTERVAL_DAY:
return ColumnType.DURATION;
case NULL:
return ColumnType.NULL;
default:
assert false : "Unexpected type of result: " + type.getSqlTypeName();
return null;
}
}