I believe that should work. I'll let others correct me if I'm missing the
boat here.

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

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

> Thanks @Michael!  Can i assume that
> ​ ​
> in
> ​ ​
> the SchemaFactory
> ​#​
> create(SchemaPlus parentSchema, String name,
> ​ ...​
> )
> ​ method ​the root schema is constructed?  And can i use the
> parentSchema
> ​ like this:
>
> ModelHandler.addFunctions(parentSchema, null, ImmutableList.<String>of(),
> ​ ​
> GeoFunctions.class.getName(), "*", true);
>
> On 28 November 2017 at 16:58, Michael Mior <mm...@uwaterloo.ca> wrote:
>
> > 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
> > >
> >
>
>
>
> --
> 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