I believe the geospatial functions are not currently registered by default.
You can see an example of how to do this in CalciteAssert.java. Once you
have constructed the root schema, the following should be sufficient:

ModelHandler.addFunctions(rootSchema, null, ImmutableList.<String>of(),
GeoFunctions.class.getName(), "*", true);

--
Michael Mior
mm...@apache.org

2017-11-28 4:27 GMT-05:00 Christian Tzolov <ctzo...@pivotal.io>:

> I've tried to cast the Zip's loc column into double like this:
>
> SELECT
> ​ ​
> "city",  cast("loc" [0] AS DOUBLE) AS "lon",  cast("loc" [1] AS DOUBLE) AS
> "lat"
> ​ ​
> FROM "geode"."Zips"
> ​ ​
> LIMIT  10;
>
> ​This seems to work fine. ​But when i try to use the ST_Point function i
> get: "No match found for function signature ST_Point(<NUMERIC>, <NUMERIC>)"
> (full stack is below)
>
> It seems like i've not registered a jar dependency or haven't enabled
> something else?
>
>
> jdbc:calcite:conformance=LENIENT> SELECT "city", "ST_Point"(cast("loc" [0]
> AS DOUBLE), cast("loc" [1] AS DOUBLE)) FROM "geode"."Zips"LIMIT 10;
> 2017-11-28 10:19:15,199 [main] ERROR -
> org.apache.calcite.sql.validate.SqlValidatorException: No match found for
> function signature ST_Point(<NUMERIC>, <NUMERIC>)
> 2017-11-28 10:19:15,199 [main] ERROR -
> org.apache.calcite.runtime.CalciteContextException: From line 1, column 16
> to line 1, column 79: No match found for function signature
> ST_Point(<NUMERIC>, <NUMERIC>)
> Error: Error while executing SQL "SELECT "city", "ST_Point"(cast("loc" [0]
> AS DOUBLE), cast("loc" [1] AS DOUBLE)) FROM "geode"."Zips"LIMIT 10": From
> line 1, column 16 to line 1, column 79: No match found for function
> signature ST_Point(<NUMERIC>, <NUMERIC>) (state=,code=0)
>
> On 28 November 2017 at 09:32, Christian Tzolov <ctzo...@pivotal.io> wrote:
>
> > @Julian are there some tests, json datasets? Perhaps in
> > calcite-test-dataset?
> > Also I will try to cast the "loc" from Zips into DOUBLE columns to test
> > the ST_Point
> >
> > On 28 November 2017 at 02:24, Julian Hyde <jh...@apache.org> wrote:
> >
> >> It’s true that you can’t define a GEOMETRY column in a foreign table.
> But
> >> you can define a VARCHAR column and apply the ST_GeomFromText to it, or
> if
> >> you want a point you can define a pair of DOUBLE columns and apply the
> >> ST_Point function.
> >>
> >> In essence, our implementation of GEOMETRY is only an in-memory format
> >> right now, not an on-disk format. It’s a little less efficient than a
> >> native GEOMETRY data type but hopefully over time we will write
> optimizer
> >> rules that push down filters etc. so we don’t literally construct an
> >> in-memory geometry object for every row, only the rows we are
> interested in.
> >>
> >> Julian
> >>
> >> > On Nov 27, 2017, at 2:59 AM, Christian Tzolov <ctzo...@pivotal.io>
> >> wrote:
> >> >
> >> > Hey there,
> >> >
> >> > I'm exploring the new Spatial (https://calcite.apache.org/do
> >> cs/spatial.html)
> >> > functionality and i've been trying to figure out what are the minimal
> >> > requirements for using it with my custom adapter.
> >> >
> >> > Following the guidelines i've set LENIENT  conformance in my jdbc URL
> (
> >> > jdbc:calcite:conformance=LENIENT;
> >> > ​model=...my model​
> >> > ​
> >> > ​
> >> > ​)
> >> >
> >> > But I am not sure how define the GEOMETRY column types?​
> >> >
> >> > Currently my custom Schema/Table factory implementation infers the
> >> column
> >> > types from the underlaying system's field types.
> >> >
> >> > So it seems that i need to change my implementation and somehow to
> hint
> >> > which fields needs to be mapped to GEOMETRY types?  Or perhaps i can
> >> try to
> >> > do some expensive casting in SQL?
> >> >
> >> > Are there any guidelines, examples ​for using Spatial functionality on
> >> 3rd
> >> > party (e.g. custom) adapters?
> >> >
> >> > Thanks,
> >> > Christian
> >>
> >>
> >
> >
> > --
> > Christian Tzolov <http://www.linkedin.com/in/tzolov> | Principle
> Software
> > Engineer | Spring <https://spring.io/>.io | Pivotal <http://pivotal.io/>
> > | ctzo...@pivotal.io
> >
>
>
>
> --
> Christian Tzolov <http://www.linkedin.com/in/tzolov> | Principle Software
> Engineer | Spring <https://spring.io/>.io | Pivotal <http://pivotal.io/> |
> ctzo...@pivotal.io
>

Reply via email to