GEOMESA-3584 Derive geometry type + name information from geomesa SFT spec metadata#3590
Open
cwdobbins wants to merge 2 commits into
Open
GEOMESA-3584 Derive geometry type + name information from geomesa SFT spec metadata#3590cwdobbins wants to merge 2 commits into
cwdobbins wants to merge 2 commits into
Conversation
elahrvivaz
requested changes
Jul 20, 2026
cwdobbins
force-pushed
the
feature/geometry-subtype-binding
branch
from
July 21, 2026 00:18
47d3cc8 to
7d75363
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
GEOMESA-3584: Derive geometry tyes from their stored SFT metadata attibutes
Deferred from #3573.
Background
TrinoTypeMapperbound every geometry column toPointor genericGeometry—Pointwhen the column carried a__X_z2__companion,Geometryotherwise. Consumers of the discovered GeoTools schema got no more than that, even though the table's geometry is often a precise subtype (LineString,Polygon,MultiPolygon, …).Change
When an Iceberg table carries a GeoMesa-encoded SimpleFeatureType, schema discovery now parses it and binds each geometry attribute to the subtype it declares; it falls back to the previous naming heuristic when no SFT metadata is present.
TrinoSchemaDiscoveryreads thegeomesa.sft.spec(andgeomesa.sft.name) table properties from the Iceberg"<table>$properties"metadata table. The spec is parsed with GeoMesa'sSimpleFeatureTypes.createType, and each geometry attribute's JTS binding drives the descriptor.TrinoTypeMapper.toDescriptortakes the resolved geometry bindingClass.$properties, or an unparseable spec all fall back to the Point | Geometry heuristic.geomesa-utilsexplicitly in the datastore pom sinceSimpleFeatureTypesis now used directly.