Hi David

since you mentioned Calcite and mentioned type name GEOGRAPHY

why do we need a new type instead of using existing Calcite's type
which is called GEOMETRY[1]?

[1] 
https://github.com/apache/calcite/blob/00aec5236cf9c57ce90eb4a30f777798c3b52abb/core/src/main/java/org/apache/calcite/sql/type/SqlTypeName.java#L137

On Fri, Jun 12, 2026 at 11:17 PM David Chaava via dev
<[email protected]> wrote:
>
> Hi Dylan,
>
>
>
> Thanks for the detailed review. I clarified these points in the proposal.
>
>
>
> Q1: The core proposal of this FLIP is the native `GEOGRAPHY` type and the
> interoperability contract support in Flink: SQL/planner type support,
> runtime representation, serialization/state, SQL Gateway/compiled plan
> support, and connector/format interoperability with
>
> Iceberg and Parquet. The FLIP does not intend that Flink core will become a
>
> replacement for dedicated geospatial projects such as Sedona.
>
>
>
> I added clarification of the function scope in the proposal doc. The v1
> function surface is intentionally small and is not meant to become a full
> geospatial function catalog. Constructor
>
> and conversion functions are part of making the native type usable for
> interoperability purposes. Richer geospatial processing, spatial joins,
> indexing, reprojection, and larger
>
> PostGIS/Sedona-like function coverage remains outside the scope of this
> FLIP.
>
>
>
> Q2: Regarding Sedona, I added clarification in the proposal doc that
> `GeographyData` is a Flink internal runtime representation, not a required
> computation API for Sedona. The stable interoperability path for Sedona and
> similar projects is ISO WKB via
>
> `GeographyData.toBytes()`, `ST_ASWKB`, and `ST_GEOGFROMWKB`. Sedona may
> still
>
> convert values into its own internal representation for computation and
> produce
>
> Flink `GEOGRAPHY` values back through WKB.
>
>
>
> Q3: For display and casts, I added clarification in the proposal that
> display rendering is separate from SQL casts. SQL Client,
> `TableResult.print()`, and SQL Gateway textual results should render
> `GEOGRAPHY` values as WKT, equivalent to `ST_ASTEXT`, for human-readable
> output. This display path does not imply an implicit cast to `STRING`. I
> also clarified that Java `toString()` should not be treated as the SQL
> conversion contract; explicit textual conversion remains `ST_ASTEXT`.
>
>
>
> Q4: For SQL semantics, I added explicit wording for equality, grouping, and
>
> comparability. The proposed v1 semantics are representation-based: equality
> and
>
> hashing are based on the stored/canonical WKB representation, not
> topological
>
> geospatial equality. `GROUP BY` and `DISTINCT` use the same equality/hash
>
> semantics. Topological equality, if exposed, is a separate geospatial
> predicate
>
> and should not be confused with SQL grouping semantics. `GEOGRAPHY` is not
>
> order-comparable, so ordering comparisons such as `<`, `<=`, `>`, `>=`, as
> well
>
> as `MIN` and `MAX`, are not defined for this type unless users explicitly
>
> convert the value to another representation, such as WKT or WKB.
>
>
>
> For the minor issues:
>
> - You are right about the JTS license. I corrected the license note. JTS
> would be included as a dependency (similar to how it’s included in Apache
> Sedona [1]), following Apache licensing guidelines for Eclipse Distribution
> License 1.0 [2].
>
> - I fixed the `GEOMETRYCOLLECTION` inconsistency. It remains listed as a
> supported standard 2D WKB subtype and was removed from Future Work.
>
>
>
> I hope this clarifies the intent and addresses your questions.
>
>
>
> Best,
>
> David
>
> [1] - https://github.com/apache/sedona/blob/master/pom.xml#L155-L159
>
> [2] - https://www.apache.org/legal/resolved.html
>
>
> On Thu, Jun 11, 2026 at 11:25 AM dylanhz <[email protected]> wrote:
>
> > Hi David,
> >
> > Thanks for the proposal. The FLIP is very detailed and explains the
> > motivation clearly. I have a few questions about the scope and semantics.
> >
> > 1. What is the expected scope of Flink in this area? Should Flink only
> > provide the native type and interoperability with formats/connectors, or
> > also maintain geospatial computation functions? I can understand having
> > constructor/conversion functions in core, but the supported scope and
> > long-term maintenance cost of domain-specific computation functions seem to
> > be an important concern. I am not sure whether those functions should be
> > maintained by Flink rather than a dedicated geospatial project such as
> > Sedona.
> >
> > 2. Have we considered how Sedona would adapt to this new type? Is the
> > proposed GeographyData interface enough for Sedona to consume and produce
> > GEOGRAPHY values efficiently? Or would Sedona not be able to directly use
> > Flink’s internal interface for computation and still need to convert to its
> > own internal representation?
> >
> > 3. If GEOGRAPHY does not support cast to STRING, how will values be
> > displayed in SQL Client, TableResult.print(), and SQL Gateway results? Do
> > we plan to add a display-specific converter, or should explicit cast to
> > STRING be supported?
> >
> > 4. Could the FLIP define the SQL semantics of GEOGRAPHY more explicitly?
> > For example, equality, comparability, GROUP BY and DISTINCT .
> >
> > A couple of minor issues:
> >
> > a. The JTS license in the document seems inaccurate.
> >
> > b. GEOMETRYCOLLECTION is listed as supported, but also appears in future
> > work.
> >
> >
> > ----------
> > Best regards,
> > dylanhz
> >
> >
> >
> >
> > > 2026年6月9日 02:32,David Chaava via dev <[email protected]> 写道:
> > >
> > > Hi Martijn,
> > >
> > >
> > >
> > > Thanks for raising this point. I updated the proposal with a dedicated
> > > Calcite / Planner Integration section to clarify how `GEOGRAPHY` and the
> > > proposed `ST_*` functions fit into Flink's SQL/planner path.
> > >
> > >
> > >
> > > Please let us know if this addresses the question or if there are any
> > > additional
> > > planner details you would like us to cover.
> > >
> > >
> > >
> > > Thanks
> > >
> > > On Mon, Jun 8, 2026 at 11:46 AM Martijn Visser <[email protected]
> > >
> > > wrote:
> > >
> > >> Hi David,
> > >>
> > >> Thanks for the FLIP. It doesn't contain any information/reference to
> > >> Calcite though. Are you not planning to leverage Calcite at all for
> > >> this?
> > >>
> > >> Best regards,
> > >>
> > >> Martijn
> > >>
> > >> Op vr 5 jun 2026 om 10:19 schreef David Chaava via dev <
> > >> [email protected]>:
> > >>>
> > >>> lHi everyone,
> > >>>
> > >>> I would like to start a discussion on FLIP-XXX: GEOGRAPHY type in Flink
> > >> SQL
> > >>> and Table API [1].
> > >>>
> > >>> Flink currently has no first-class geospatial type. Users working with
> > >>> geographic data are forced into unsatisfying workarounds — encoding
> > >>> geometries as raw strings, storing binary blobs, or pulling in external
> > >>> libraries with no SQL-level integration. None of these options are
> > >>> ergonomic, interoperable, or type-safe.
> > >>>
> > >>> We propose introducing a native GEOGRAPHY type to Flink SQL and the
> > Table
> > >>> API, bringing first-class geospatial support to streaming and batch
> > >>> pipelines. The key changes are:
> > >>>
> > >>> 1. New GEOGRAPHY Type - A dedicated logical type representing
> > geospatial
> > >>> values (points, lines, polygons, etc.) following the WKT/WKB standard,
> > >> with
> > >>> proper serialization and catalog integration.
> > >>>
> > >>> 2. Built-in Geospatial Functions - A set of SQL functions (e.g.
> > >>> ST_Distance, ST_Contains, ST_AsText) enabling spatial predicates and
> > >>> transformations directly in SQL queries.
> > >>>
> > >>> 3. Connector & Format Support - Pluggable encoding support so
> > connectors
> > >>> can read and write GEOGRAPHY values in standard formats (WKT, WKB,
> > >> GeoJSON).
> > >>>
> > >>> Looking forward to your feedback!
> > >>>
> > >>> Best regards,
> > >>> David Chaava
> > >>>
> > >>> [1]
> > >>>
> > >>
> > https://docs.google.com/document/d/1rpOTETT_Ui3TlEGioUr2NKJ1p1dlxjJQudXHndxBpO0/edit?usp=sharing
> > >>
> >
> >



-- 
Best regards,
Sergey

Reply via email to