in baremaps-calcite/src/main/java/org/apache/baremaps/calcite/shapefile/ShapefileTable.java [102:123]
private RelDataType mapDBaseTypeToSqlType(RelDataTypeFactory typeFactory,
DBaseFieldDescriptor fieldDescriptor) {
return switch (fieldDescriptor.getType()) {
case CHARACTER -> typeFactory.createSqlType(SqlTypeName.VARCHAR);
case NUMBER -> fieldDescriptor.getDecimalCount() == 0
? typeFactory.createSqlType(SqlTypeName.BIGINT)
: typeFactory.createSqlType(SqlTypeName.DOUBLE);
case CURRENCY -> typeFactory.createSqlType(SqlTypeName.DOUBLE);
case DOUBLE -> typeFactory.createSqlType(SqlTypeName.DOUBLE);
case INTEGER -> typeFactory.createSqlType(SqlTypeName.INTEGER);
case AUTO_INCREMENT -> typeFactory.createSqlType(SqlTypeName.INTEGER);
case LOGICAL -> typeFactory.createSqlType(SqlTypeName.BOOLEAN);
case DATE -> typeFactory.createSqlType(SqlTypeName.DATE);
case MEMO -> typeFactory.createSqlType(SqlTypeName.VARCHAR);
case FLOATING_POINT -> typeFactory.createSqlType(SqlTypeName.FLOAT);
case PICTURE -> typeFactory.createSqlType(SqlTypeName.VARCHAR);
case VARI_FIELD -> typeFactory.createSqlType(SqlTypeName.VARCHAR);
case VARIANT -> typeFactory.createSqlType(SqlTypeName.VARCHAR);
case TIMESTAMP -> typeFactory.createSqlType(SqlTypeName.TIMESTAMP);
case DATE_TIME -> typeFactory.createSqlType(SqlTypeName.TIMESTAMP);
};
}