|
35 | 35 | import org.apache.calcite.sql.type.SqlTypeName; |
36 | 36 | import org.apache.parquet.io.api.Binary; |
37 | 37 | import org.apache.parquet.schema.PrimitiveType; |
| 38 | +import org.locationtech.jts.geom.Envelope; |
38 | 39 | import org.locationtech.jts.geom.Geometry; |
| 40 | +import org.locationtech.jts.geom.GeometryFactory; |
39 | 41 |
|
40 | 42 | public class GeoParquetTypeConversion { |
41 | 43 |
|
42 | 44 | private static final ObjectMapper MAPPER = new ObjectMapper(); |
| 45 | + private static final GeometryFactory GEOMETRY_FACTORY = new GeometryFactory(); |
43 | 46 |
|
44 | 47 | private GeoParquetTypeConversion() {} |
45 | 48 |
|
@@ -77,13 +80,7 @@ private static RelDataType toRelDataTypeFromField(RelDataTypeFactory typeFactory |
77 | 80 | } else if (type == Type.GEOMETRY) { |
78 | 81 | return typeFactory.createJavaType(Geometry.class); |
79 | 82 | } else if (type == Type.ENVELOPE) { |
80 | | - return typeFactory.createStructType( |
81 | | - List.of( |
82 | | - typeFactory.createSqlType(SqlTypeName.DOUBLE), |
83 | | - typeFactory.createSqlType(SqlTypeName.DOUBLE), |
84 | | - typeFactory.createSqlType(SqlTypeName.DOUBLE), |
85 | | - typeFactory.createSqlType(SqlTypeName.DOUBLE)), |
86 | | - List.of("minx", "miny", "maxx", "maxy")); |
| 83 | + return typeFactory.createJavaType(Envelope.class); |
87 | 84 | } else if (type == Type.LONG || type == Type.INT96) { |
88 | 85 | return typeFactory.createSqlType(SqlTypeName.BIGINT); |
89 | 86 | } else if (type == Type.GROUP) { |
|
0 commit comments