or a follow up question: have you considered first adding GEOGRAPHY
type to Calcite and then using it from Flink?

On Sat, Jun 20, 2026 at 11:33 PM Sergey Nuyanzin <[email protected]> wrote:
>
> 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



-- 
Best regards,
Sergey

Reply via email to