public static RelDataType postgresTypeToRelDataType()

in baremaps-calcite/src/main/java/org/apache/baremaps/calcite/postgres/PostgresTypeConversion.java [44:98]


  public static RelDataType postgresTypeToRelDataType(
      RelDataTypeFactory typeFactory, String postgresType) {
    switch (postgresType.toLowerCase()) {
      case "int4":
      case "integer":
        return typeFactory.createSqlType(SqlTypeName.INTEGER);
      case "bigint":
      case "int8":
        return typeFactory.createSqlType(SqlTypeName.BIGINT);
      case "smallint":
      case "int2":
        return typeFactory.createSqlType(SqlTypeName.SMALLINT);
      case "real":
      case "float4":
        return typeFactory.createSqlType(SqlTypeName.FLOAT);
      case "double precision":
      case "float8":
        return typeFactory.createSqlType(SqlTypeName.DOUBLE);
      case "numeric":
      case "decimal":
        return typeFactory.createSqlType(SqlTypeName.DECIMAL);
      case "boolean":
      case "bool":
        return typeFactory.createSqlType(SqlTypeName.BOOLEAN);
      case "varchar":
      case "character varying":
      case "text":
        return typeFactory.createSqlType(SqlTypeName.VARCHAR);
      case "char":
      case "character":
        return typeFactory.createSqlType(SqlTypeName.CHAR);
      case "date":
        return typeFactory.createSqlType(SqlTypeName.DATE);
      case "timestamp":
      case "timestamp without time zone":
        return typeFactory.createSqlType(SqlTypeName.TIMESTAMP);
      case "timestamp with time zone":
        return typeFactory.createSqlType(SqlTypeName.TIMESTAMP_WITH_LOCAL_TIME_ZONE);
      case "time":
      case "time without time zone":
        return typeFactory.createSqlType(SqlTypeName.TIME);
      case "time with time zone":
        return typeFactory.createSqlType(SqlTypeName.TIME_WITH_LOCAL_TIME_ZONE);
      case "bytea":
        return typeFactory.createSqlType(SqlTypeName.BINARY);
      case "geometry":
        return typeFactory.createSqlType(SqlTypeName.GEOMETRY);
      case "json":
      case "jsonb":
        return typeFactory.createSqlType(SqlTypeName.OTHER);
      default:
        // Default to VARCHAR for unknown types
        return typeFactory.createSqlType(SqlTypeName.VARCHAR);
    }
  }