Skip to content

Commit 2636a91

Browse files
committed
Refactor GeoParquet type conversion to use Envelope class instead of struct type for geometry envelope handling.
1 parent 06b4276 commit 2636a91

File tree

1 file changed

+4
-7
lines changed

1 file changed

+4
-7
lines changed

baremaps-calcite/src/main/java/org/apache/baremaps/calcite/geoparquet/GeoParquetTypeConversion.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,14 @@
3535
import org.apache.calcite.sql.type.SqlTypeName;
3636
import org.apache.parquet.io.api.Binary;
3737
import org.apache.parquet.schema.PrimitiveType;
38+
import org.locationtech.jts.geom.Envelope;
3839
import org.locationtech.jts.geom.Geometry;
40+
import org.locationtech.jts.geom.GeometryFactory;
3941

4042
public class GeoParquetTypeConversion {
4143

4244
private static final ObjectMapper MAPPER = new ObjectMapper();
45+
private static final GeometryFactory GEOMETRY_FACTORY = new GeometryFactory();
4346

4447
private GeoParquetTypeConversion() {}
4548

@@ -77,13 +80,7 @@ private static RelDataType toRelDataTypeFromField(RelDataTypeFactory typeFactory
7780
} else if (type == Type.GEOMETRY) {
7881
return typeFactory.createJavaType(Geometry.class);
7982
} 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);
8784
} else if (type == Type.LONG || type == Type.INT96) {
8885
return typeFactory.createSqlType(SqlTypeName.BIGINT);
8986
} else if (type == Type.GROUP) {

0 commit comments

Comments
 (0)