Thanks for the review. I just committed the fix as 
http://git-wip-us.apache.org/repos/asf/calcite/commit/c1749ade 
<http://git-wip-us.apache.org/repos/asf/calcite/commit/c1749ade>. 

> On Dec 9, 2017, at 1:51 PM, Vamshi Krishna <vamshi.v.kris...@gmail.com> wrote:
> 
> Hi Julian,
> 
> I have tested the fix posted for CALCITE-2072 and i was able to use the
> geometry functions.
> 
> Thanks for the fix.
> 
> Thanks,
> Vamshi.
> 
> On Fri, Dec 8, 2017 at 4:38 PM, Julian Hyde <jh...@apache.org 
> <mailto:jh...@apache.org>> wrote:
> 
>> I don’t know. I don’t have time to look at the code right now.
>> 
>>> On Dec 8, 2017, at 12:53 PM, Vamshi Krishna <vamshi.v.kris...@gmail.com>
>> wrote:
>>> 
>>> I think you meant the following:
>>> 
>>> 1. Create a user defined operator table for spatial functions (Say
>>> SpatialOperatorTable).
>>> 2. Honor the newly defined operator table (SpatialOperatorTable) when
>>> fun=spatial at CalciteConnectionConfiImpl.java#L102
>>> 
>>> Regarding Step  1: I don't see a way to convert or load the functions in
>>> GeoFunctions class into SqlFunction format other than manually adding
>> them
>>> similar to OracleSqlOperatorTable. Is my understanding right ?
>>> 
>>> 
>>> 
>>> On Fri, Dec 8, 2017 at 2:01 PM, Julian Hyde <jh...@apache.org 
>>> <mailto:jh...@apache.org> <mailto:
>> jh...@apache.org <mailto:jh...@apache.org>>> wrote:
>>> 
>>>> You’re basically running into https://issues.apache.org/ 
>>>> <https://issues.apache.org/> <
>> https://issues.apache.org/ <https://issues.apache.org/>>
>>>> jira/browse/CALCITE-2072 <https://issues.apache.org/ 
>>>> <https://issues.apache.org/> <
>> https://issues.apache.org/ <https://issues.apache.org/>>
>>>> jira/browse/CALCITE-2072>. The fix for that issue is straightforward - a
>>>> couple of lines around https://github.com/apache/ 
>>>> <https://github.com/apache/> <
>> https://github.com/apache/ <https://github.com/apache/>>
>>>> calcite/blob/master/core/src/main/java/org/apache/calcite/config/
>>>> CalciteConnectionConfigImpl.java#L102 <https://github.com/apache/ 
>>>> <https://github.com/apache/> <
>> https://github.com/apache/ <https://github.com/apache/>>
>>>> calcite/blob/master/core/src/main/java/org/apache/calcite/config/
>>>> CalciteConnectionConfigImpl.java#L102> - so can you make that fix and
>> see
>>>> whether it fixes the problem.
>>>> 
>>>>> On Dec 8, 2017, at 6:52 AM, Vamshi Krishna <vamshi.v.kris...@gmail.com 
>>>>> <mailto:vamshi.v.kris...@gmail.com>
>>> 
>>>> wrote:
>>>>> 
>>>>> Hi Christian,
>>>>> 
>>>>> Yes,  I have changed the conformance level to LENIENT.
>>>>> I was able test the create table syntax using geometry data type.
>>>>> 
>>>>> 
>>>>> Here's what i have in the code:
>>>>> //create root schema
>>>>> rootSchema = Frameworks.createRootSchema(true);
>>>>> 
>>>>> //add geo functions
>>>>> ModelHandler.addFunctions(rootSchema, null,
>>>> ImmutableList.<String>of(),
>>>>>                       GeoFunctions.class.getName(), "*", true);
>>>>> 
>>>>> 
>>>>>  // Initialize default planner
>>>>>      FrameworkConfig calciteFrameworkConfig =
>>>>> Frameworks.newConfigBuilder()
>>>>>              .operatorTable(ChainedSqlOperatorTable.of(
>>>>> OracleSqlOperatorTable.instance(),SqlStdOperatorTable.instance()))
>>>>> 
>>>>> .parserConfig(SqlParser.configBuilder().setConformance(LENIENT)
>>>>>                      // Lexical configuration defines how identifiers
>>>>> are quoted, whether they are converted to upper or lower
>>>>>                      // case when they are read, and whether
>>>> identifiers
>>>>> are matched case-sensitively.
>>>>>                      .setParserFactory(SqlParserImpl.FACTORY)
>>>>>                      .setLex(Lex.ORACLE)
>>>>>                      .build())
>>>>>              // Sets the schema to use by the planner
>>>>>              .defaultSchema(rootSchema.add("CATALOG",schema))
>>>>>              .traitDefs(traitDefs)
>>>>>              // Context provides a way to store data within the
>> planner
>>>>> session that can be accessed in planner rules.
>>>>>              .context(Contexts.EMPTY_CONTEXT)
>>>>>              // Rule sets to use in transformation phases. Each
>>>>> transformation phase can use a different set of rules.
>>>>>              .ruleSets(RuleSets.ofList())
>>>>>              // Custom cost factory to use during optimization
>>>>>              .costFactory(null)
>>>>>              .typeSystem(RelDataTypeSystem.DEFAULT)
>>>>>              .build();
>>>>> 
>>>>>      this.planner = new CustomPlannerImpl(calciteFrameworkConfig);
>>>>> 
>>>>>      planner.parse();
>>>>> 
>>>>>      planner.validate(); <<-- reporting error with no match found.
>>>>> 
>>>>> Currently i am only looking for syntax and data type validation support
>>>> and
>>>>> not the runtime implementation of the geo functions.
>>>>> 
>>>>> 
>>>>> 
>>>>> I am not sure if the GeoFunctions extension can be used for this
>> purpose
>>>>> similar to functions in OracleSqlOperator.
>>>>> 
>>>>> Thanks,
>>>>> Vamshi.
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> On Thu, Dec 7, 2017 at 10:26 PM, Christian Tzolov <ctzo...@pivotal.io 
>>>>> <mailto:ctzo...@pivotal.io>>
>>>>> wrote:
>>>>> 
>>>>>> Hi Vamshi,
>>>>>> 
>>>>>> Have you set the conformance to such that supports Geometry? i've been
>>>>>> using lenient like this: jdbc:calcite:conformance=LENIENT;
>>>>>> ​model=...my model​
>>>>>> ​
>>>>>> ​
>>>>>> ​
>>>>>> 
>>>>>> On 7 December 2017 at 13:53, Vamshi Krishna <
>> vamshi.v.kris...@gmail.com <mailto:vamshi.v.kris...@gmail.com>
>>>>> 
>>>>>> wrote:
>>>>>> 
>>>>>>> Hello Team,
>>>>>>> 
>>>>>>> I have tried to use these functions by adding it to my schema as
>> given
>>>>>>> below:
>>>>>>> 
>>>>>>> ModelHandler.addFunctions(rootSchema, null,
>>>> ImmutableList.<String>of(),
>>>>>>> GeoFunctions.class.getName(), "*", true);
>>>>>>> 
>>>>>>> but i run into an validation issue when calling the planner's
>> validate
>>>>>>> routine with the below error:
>>>>>>> No match found for function signature ST_MAKEPOINT(<NUMERIC>,
>>>> <NUMERIC>,
>>>>>>> <NUMERIC>)
>>>>>>> 
>>>>>>> Do we have to register these functions manually similar to
>>>>>>> OracleSqlOperatorTable or is there another way out for this ?
>>>>>>> 
>>>>>>> 
>>>>>>> Thanks,
>>>>>>> Vamshi.
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> On Sat, Dec 2, 2017 at 4:33 AM, Christian Tzolov <ctzo...@pivotal.io 
>>>>>>> <mailto:ctzo...@pivotal.io>
>>> 
>>>>>>> wrote:
>>>>>>> 
>>>>>>>> @Michael, sure go ahead and use the query if you find it fit. I am
>>>>>>> looking
>>>>>>>> forward to read this paper! If you need an "external" opinion about
>>>> how
>>>>>>>> Calcite fits in the broader  data management ecosystem or "patterns"
>>>>>> for
>>>>>>>> building Calcite adapters i can share few ideas ;)
>>>>>>>> 
>>>>>>>> @Julian, i'm aware and agree with the approach for providing spatial
>>>>>>>> support. Currently I'm only trying to make it work (somehow) in the
>>>>>>> context
>>>>>>>> of the Geode adapter! My goal is to mention it during my talk at
>>>> Apache
>>>>>>>> Geode Summit [1] on Monday.
>>>>>>>> 
>>>>>>>> While on the topic of my talk [1], i've been looking for tempting
>>>>>> reasons
>>>>>>>> to engage/involve the Geode community with the project or at least
>>>>>> start
>>>>>>>> the argument. Here are my slides [2] (for internal use only until
>>>>>>> Monday).
>>>>>>>> In the pros and cons section i've shared some ideas:
>>>>>>>> 
>>>>>>>> 1. In the context of data exploration and cleansing, an obvious
>>>>>> advantage
>>>>>>>> is the easiness for integration with 3rd party DMS tools and
>>>>>>>> 
>>>>>>>> 2. In the same context the easy to correlate Geode data with data
>> from
>>>>>>>> multiple Sql and NoSql data stores (e.g. Data Federation).
>>>>>>>> 
>>>>>>>> 3. But given that Geode is primarily used for OLTP-ish (e.g.
>>>>>>>> transactional)  workloads, even the OQL is considered a second-class
>>>>>>>> citizen. Therefore i find the concept of "SQL Stream" quite relevant
>>>>>> and
>>>>>>> i
>>>>>>>> expect that the Geode community will find it interesting too. Geode
>>>>>>> already
>>>>>>>> provides limited CQ (Continues Querying) functionality and IMO the
>>>> "Sql
>>>>>>>> Stream" will be like advanced CQ++. Unfortunately i haven't had time
>>>> to
>>>>>>>> build and prototype in the context of Geode. Can you point me to
>> some
>>>>>>> code
>>>>>>>> examples? I know about the Tests but are there and actual adapters
>> or
>>>>>>> other
>>>>>>>> applications that use the "SQL Stream"?
>>>>>>>> 
>>>>>>>> 4. @Julian you have mentioned the idea about dynamic
>> materializations.
>>>>>>> But
>>>>>>>> i'm not sure i completely understand the approach and that confident
>>>> to
>>>>>>>> bring it for discussion. If you have some written references that
>> can
>>>>>>> help
>>>>>>>> me i will appreciate it.
>>>>>>>> 
>>>>>>>> Cheers,
>>>>>>>> Christian
>>>>>>>> 
>>>>>>>> 
>>>>>>>> [1] Enable SQL/JDBC Access to Apache Geode/GemFire Using Apache
>>>>>> Calcite:
>>>>>>>> https://springoneplatform.io/sessions/enable-sql-jdbc- 
>>>>>>>> <https://springoneplatform.io/sessions/enable-sql-jdbc->
>>>>>>>> access-to-apache-geode-gemfire-using-apache-calcite
>>>>>>>> [2] Slides:
>>>>>>>> https://docs.google.com/presentation/d/1zo473pcupWEjRXOA_ 
>>>>>>>> <https://docs.google.com/presentation/d/1zo473pcupWEjRXOA_>
>>>>>>>> W5rgaKSmS2Vmyl2U2ATKmrS26M/edit?usp=sharing
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On 1 December 2017 at 21:05, Julian Hyde <jh...@apache.org 
>>>>>>>> <mailto:jh...@apache.org>> wrote:
>>>>>>>> 
>>>>>>>>> The Natural earth dataset (which https://github.com/zzolo/geo_ 
>>>>>>>>> <https://github.com/zzolo/geo_>
>>>>>>>>> simple_countries_wkt_csv <https://github.com/zzolo/geo_ 
>>>>>>>>> <https://github.com/zzolo/geo_>
>>>>>>>>> simple_countries_wkt_csv> is based upon) is Public Domain, which
>>>>>> makes
>>>>>>> it
>>>>>>>>> suitable for our purposes.
>>>>>>>>> 
>>>>>>>>>> Although inefficient (all spatial computations happen on calcite
>>>>>>> side)
>>>>>>>>> it is still very cool! :)
>>>>>>>>> 
>>>>>>>>> That’s exactly what I was going for. First make it work (by adding
>>>>>> all
>>>>>>>>> OpenGIS functions as UDFs), then make it fast (by adding rewrite
>>>>>> rules
>>>>>>>> that
>>>>>>>>> recognize functions and particular patterns of materialized views).
>>>>>>>>> 
>>>>>>>>> Your query is a spatial join of polygons (cities) to polygons
>>>>>>>> (countries).
>>>>>>>>> I have in mind a materialized view where polygons are sliced into
>>>>>>>> bounding
>>>>>>>>> “tiles” and I think it should speed up this kind of query.
>>>>>>>>> 
>>>>>>>>> Julian
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>> On Dec 1, 2017, at 9:09 AM, Christian Tzolov <ctzo...@pivotal.io 
>>>>>>>>>> <mailto:ctzo...@pivotal.io>>
>>>>>>>> wrote:
>>>>>>>>>> 
>>>>>>>>>> The OpenGIS Spec datasets sounds like right, "canonical" spatial
>>>>>>>> dataset
>>>>>>>>> to have.
>>>>>>>>>> 
>>>>>>>>>> In the meantime for the purposes of my tests i found a dataset (
>>>>>>>>> https://github.com/zzolo/geo_simple_countries_wkt_csv 
>>>>>>>>> <https://github.com/zzolo/geo_simple_countries_wkt_csv> <
>>>>>>>>> https://github.com/zzolo/geo_simple_countries_wkt_csv 
>>>>>>>>> <https://github.com/zzolo/geo_simple_countries_wkt_csv>>) that
>>>>>> contains
>>>>>>>>> world country boundaries as WKT polygons along with their names,
>> ISO
>>>>>>>>> abbreviations  and other metadata. I've also converted the csv into
>>>>>>> json
>>>>>>>>> (attached) to make it easy for loading in Geode.
>>>>>>>>>> 
>>>>>>>>>> This allows me to run crazy queries like this :)
>>>>>>>>>> 
>>>>>>>>>> SELECT "NAME", ST_Distance("Country", ST_GeomFromText('POINT(23.
>>>>>>> 288269
>>>>>>>>> 42.731883)')) as "distanceToBG"
>>>>>>>>>> FROM (
>>>>>>>>>> SELECT
>>>>>>>>>> "NAME",
>>>>>>>>>>  ST_GeomFromText('POLYGON((4.822998 52.427652, 4.971313
>>>>>>> 52.427652,
>>>>>>>>> 4.971313 52.333661, 4.822998 52.333661, 4.822998 52.427652))') AS
>>>>>>>>> "Amsterdam",
>>>>>>>>>>  ST_GeomFromText("WKT") AS "Country"
>>>>>>>>>> FROM "geode"."Country"
>>>>>>>>>> )
>>>>>>>>>> WHERE ST_Contains("Country", "Amsterdam");
>>>>>>>>>> 
>>>>>>>>>> E.g. retrieves the countries that contain the Amsterdam, NL area
>>>>>> and
>>>>>>>> for
>>>>>>>>> the result computes the distances to Sofia, BG. The result is
>>>>>> actually
>>>>>>>>> correct :)
>>>>>>>>>> 
>>>>>>>>>> | Netherlands | 18.93796871505074 |
>>>>>>>>>> 
>>>>>>>>>> Although inefficient (all spatial computations happen on calcite
>>>>>>> side)
>>>>>>>>> it is still very cool! :)
>>>>>>>>>> 
>>>>>>>>>> Btw the dataset license seems permissive and if you are interested
>>>>>> i
>>>>>>>> can
>>>>>>>>> add the json version to the test-calcite project. If not mistaken
>>>>>> some
>>>>>>> of
>>>>>>>>> the other adapters load data from json datasets too?
>>>>>>>>>> 
>>>>>>>>>> Cheers,
>>>>>>>>>> Christian
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> On 30 November 2017 at 19:39, Julian Hyde <jh...@apache.org 
>>>>>>>>>> <mailto:jh...@apache.org>
>>>>>> <mailto:
>>>>>>>>> jh...@apache.org <mailto:jh...@apache.org>>> wrote:
>>>>>>>>>> Yes, a small heterogeneous data set. The OpenGIS spec has that —
>>>>>>> small
>>>>>>>>> enough, in fact, create the tables and populate them in a .iq
>> script.
>>>>>>>>>> 
>>>>>>>>>> If/when we do spatial joins (points to polygons or polygons to
>>>>>>>> polygons)
>>>>>>>>> a larger data set would be useful, e.g. the 50 US states and their
>>>>>>>> polygon
>>>>>>>>> boundaries (about 5 MB compressed), major US cities, and US
>> national
>>>>>>>> parks.
>>>>>>>>> In the past I have packaged up such data sets as hsqldb DBs
>> embedded
>>>>>> in
>>>>>>>>> JARs - so people can get them from maven central.
>>>>>>>>>> 
>>>>>>>>>> This is pretty fun: https://github.com/johan/ 
>>>>>>>>>> <https://github.com/johan/>
>>>>>>>> world.geo.json/tree/master/
>>>>>>>>> countries/USA <https://github.com/johan/ <https://github.com/johan/>
>> world.geo.json/tree/master/
>>>>>>>>> countries/USA><https://github.com/johan/world.geo.json/tree/ 
>>>>>>>>> <https://github.com/johan/world.geo.json/tree/>
>>>>>>>>> master/countries/USA <https://github.com/johan/ 
>>>>>>>>> <https://github.com/johan/>
>>>>>>>> world.geo.json/tree/master/
>>>>>>>>> countries/USA>> (especially as Github can render GeoJSON as a map
>> in
>>>>>>> your
>>>>>>>>> browser).
>>>>>>>>>> 
>>>>>>>>>>> On Nov 30, 2017, at 9:47 AM, Michael Mior <mm...@uwaterloo.ca 
>>>>>>>>>>> <mailto:mm...@uwaterloo.ca>
>>>>>>>> <mailto:
>>>>>>>>> mm...@uwaterloo.ca <mailto:mm...@uwaterloo.ca>>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>> Sounds like a good idea. I logged
>>>>>>>>>>> https://issues.apache.org/jira/browse/CALCITE-2072 
>>>>>>>>>>> <https://issues.apache.org/jira/browse/CALCITE-2072> <
>>>>>>>>> https://issues.apache.org/jira/browse/CALCITE-2072 
>>>>>>>>> <https://issues.apache.org/jira/browse/CALCITE-2072>> <
>>>>>>>>> https://issues.apache.org/jira/browse/CALCITE-2072 
>>>>>>>>> <https://issues.apache.org/jira/browse/CALCITE-2072> <
>>>>>>>>> https://issues.apache.org/jira/browse/CALCITE-2072 
>>>>>>>>> <https://issues.apache.org/jira/browse/CALCITE-2072>>>. I'd be up
>> for
>>>>>>>>> tackling
>>>>>>>>>>> this myself. I'm just not sure how the ScalarFunctions in
>>>>>>>> GeoFunctions
>>>>>>>>> can
>>>>>>>>>>> be converted to SqlFunctions for use in the operator table.
>>>>>>>>>>> 
>>>>>>>>>>> As for test data, I assume for testing the best would be
>>>>>> relatively
>>>>>>>>> small
>>>>>>>>>>> datasets (although we can subset ourselves if necessary) that
>>>>>>>> contain a
>>>>>>>>>>> diverse set of data types.
>>>>>>>>>>> 
>>>>>>>>>>> --
>>>>>>>>>>> Michael Mior
>>>>>>>>>>> mm...@apache.org <mailto:mm...@apache.org> <mailto:mm...@apache.org 
>>>>>>>>>>> <mailto:mm...@apache.org>> <mailto:
>>>>>>> mm...@apache.org <mailto:mm...@apache.org>
>>>>>>>>> <mailto:mm...@apache.org <mailto:mm...@apache.org>>>
>>>>>>>>>>> 
>>>>>>>>>>> 2017-11-28 20:36 GMT-05:00 Julian Hyde <jh...@apache.org 
>>>>>>>>>>> <mailto:jh...@apache.org>
>>>>>> <mailto:
>>>>>>>>> jh...@apache.org <mailto:jh...@apache.org>> <mailto:jh...@apache.org 
>>>>>>>>> <mailto:jh...@apache.org> <mailto:
>> jh...@apache.org <mailto:jh...@apache.org>
>>>>>>>>>> :
>>>>>>>>>>> 
>>>>>>>>>>>> There are no test data sets, I’m afraid. I would love to add a
>>>>>>> data
>>>>>>>>> set
>>>>>>>>>>>> that includes various kinds of geometries (points, lines,
>>>>>>> polygons).
>>>>>>>>> One
>>>>>>>>>>>> candidate is the one in the OpenGIS Simple Feature Access
>>>>>> spec[1]
>>>>>>>>> section
>>>>>>>>>>>> C.3.1.2 onwards.
>>>>>>>>>>>> 
>>>>>>>>>>>> There ought to be (but isn’t, right now) an easier way to import
>>>>>>> the
>>>>>>>>> list
>>>>>>>>>>>> of GIS functions than calling ModelHandler.addFunctions. You can
>>>>>>>>> currently
>>>>>>>>>>>> add ‘fun=oracle’ to the JDBC URL to load the operators in
>>>>>>>>>>>> OracleSqlOperatorTable; we ought to allow ‘fun=spatial’ or
>>>>>>>>>>>> ‘fun=oracle,spatial’.
>>>>>>>>>>>> 
>>>>>>>>>>>> Julian
>>>>>>>>>>>> 
>>>>>>>>>>>> [1] http://portal.opengeospatial.org/files/?artifact_id=25354 
>>>>>>>>>>>> <http://portal.opengeospatial.org/files/?artifact_id=25354> <
>>>>>>>>> http://portal.opengeospatial.org/files/?artifact_id=25354 
>>>>>>>>> <http://portal.opengeospatial.org/files/?artifact_id=25354>> <
>>>>>>>>>>>> http://portal.opengeospatial.org/files/?artifact_id=25354 
>>>>>>>>>>>> <http://portal.opengeospatial.org/files/?artifact_id=25354> <
>>>>>>>>> http://portal.opengeospatial.org/files/?artifact_id=25354 
>>>>>>>>> <http://portal.opengeospatial.org/files/?artifact_id=25354>> <
>>>>>>>>> http://portal.opengeospatial.org/files/?artifact_id=25354 
>>>>>>>>> <http://portal.opengeospatial.org/files/?artifact_id=25354> <
>>>>>>>>> http://portal.opengeospatial.org/files/?artifact_id=25354 
>>>>>>>>> <http://portal.opengeospatial.org/files/?artifact_id=25354>>>>
>>>>>>>>>>>> 
>>>>>>>>>>>>> On Nov 28, 2017, at 1:11 PM, Michael Mior <mm...@uwaterloo.ca 
>>>>>>>>>>>>> <mailto:mm...@uwaterloo.ca>
>>>>>>>>> <mailto:mm...@uwaterloo.ca <mailto:mm...@uwaterloo.ca>> 
>>>>>>>>> <mailto:mm...@uwaterloo.ca <mailto:mm...@uwaterloo.ca> <mailto:
>>>>>>>>> mm...@uwaterloo.ca <mailto:mm...@uwaterloo.ca>>>> wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Yes, you should not use quotes if upcase is true since all
>>>>>>>> functions
>>>>>>>>> are
>>>>>>>>>>>>> registered with uppercase names and all unquoted literals are
>>>>>>> also
>>>>>>>>>>>>> automatically upcased. Glad this helped!
>>>>>>>>>>>>> 
>>>>>>>>>>>>> --
>>>>>>>>>>>>> Michael Mior
>>>>>>>>>>>>> mm...@apache.org <mailto:mm...@apache.org> 
>>>>>>>>>>>>> <mailto:mm...@apache.org <mailto:mm...@apache.org>> <mailto:
>>>>>>>> mm...@apache.org <mailto:mm...@apache.org>
>>>>>>>>> <mailto:mm...@apache.org <mailto:mm...@apache.org>>>
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 2017-11-28 14:18 GMT-05:00 Christian Tzolov <
>>>>>> ctzo...@pivotal.io <mailto:ctzo...@pivotal.io>
>>>>>>>>> <mailto:ctzo...@pivotal.io <mailto:ctzo...@pivotal.io>> 
>>>>>>>>> <mailto:ctzo...@pivotal.io <mailto:ctzo...@pivotal.io> <mailto:
>>>>>>>>> ctzo...@pivotal.io <mailto:ctzo...@pivotal.io>>>>:
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> ​Ok, ​
>>>>>>>>>>>>>> I think i
>>>>>>>>>>>>>> ​ solved the riddle​
>>>>>>>>>>>>>> .
>>>>>>>>>>>>>> ​H
>>>>>>>>>>>>>> ad to remove
>>>>>>>>>>>>>> ​the ​
>>>>>>>>>>>>>> quotes from
>>>>>>>>>>>>>> ​the ​
>>>>>>>>>>>>>> function name (e.g. use ST_Point instead of "ST_Point"). This
>>>>>>>>>>>>>> ​ is due to the ​
>>>>>>>>>>>>>> upCase=TURE parameter
>>>>>>>>>>>>>> ​in
>>>>>>>>>>>>>> ​
>>>>>>>>>>>>>> addFunctions
>>>>>>>>>>>>>> ​ ​
>>>>>>>>>>>>>> .
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> I don't see the error anymore. Now i'm facing another issue i
>>>>>>>>> believe is
>>>>>>>>>>>>>> related with my adapter implementation.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Thanks for the support!
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On 28 November 2017 at 18:43, Christian Tzolov <
>>>>>>>> ctzo...@pivotal.io <mailto:ctzo...@pivotal.io>
>>>>>>>>> <mailto:ctzo...@pivotal.io <mailto:ctzo...@pivotal.io>> 
>>>>>>>>> <mailto:ctzo...@pivotal.io <mailto:ctzo...@pivotal.io> <mailto:
>>>>>>>>> ctzo...@pivotal.io <mailto:ctzo...@pivotal.io>>>>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Unfortunately it didn't help still get " No match found for
>>>>>>>>> function
>>>>>>>>>>>>>>> signature ST_Point(<NUMERIC>, <NUMERIC>)"
>>>>>>>>>>>>>>> ​.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> ​Could it be that i need to ad some schema or other prefix?
>>>>>>> e.g.
>>>>>>>>>>>>>>> "geode"."ST_Point"(
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Also can i check interactively what are the registered
>>>>>>>> functions? ​
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> On 28 November 2017 at 18:33, Michael Mior <
>>>>>> mm...@uwaterloo.ca <mailto:mm...@uwaterloo.ca>
>>>>>>>>> <mailto:mm...@uwaterloo.ca <mailto:mm...@uwaterloo.ca>>> wrote:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> I believe that should work. I'll let others correct me if
>>>>>> I'm
>>>>>>>>> missing
>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>> boat here.
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>> Michael Mior
>>>>>>>>>>>>>>>> mm...@apache.org <mailto:mm...@apache.org> 
>>>>>>>>>>>>>>>> <mailto:mm...@apache.org <mailto:mm...@apache.org>>
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 2017-11-28 12:31 GMT-05:00 Christian Tzolov <
>>>>>>> ctzo...@pivotal.io <mailto:ctzo...@pivotal.io>
>>>>>>>>> <mailto:ctzo...@pivotal.io <mailto: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 <mailto:mm...@uwaterloo.ca>
>>>>>>>>> <mailto:mm...@uwaterloo.ca <mailto: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 <mailto:mm...@apache.org> 
>>>>>>>>>>>>>>>>>> <mailto:mm...@apache.org <mailto:mm...@apache.org>>
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> 2017-11-28 4:27 GMT-05:00 Christian Tzolov <
>>>>>>>> ctzo...@pivotal.io <mailto:ctzo...@pivotal.io>
>>>>>>>>> <mailto:ctzo...@pivotal.io <mailto: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 <mailto:ctzo...@pivotal.io> 
>>>>>>>>>>>>>> <mailto:ctzo...@pivotal.io <mailto: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 <mailto:jh...@apache.org>
>>>>>>>>> <mailto:jh...@apache.org <mailto: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 <mailto:ctzo...@pivotal.io> 
>>>>>>>>>>>>>>>> <mailto:ctzo...@pivotal.io <mailto:ctzo...@pivotal.io>>
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> Hey there,
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> I'm exploring the new Spatial (
>>>>>>>>> https://calcite.apache.org/do <https://calcite.apache.org/do> 
>>>>>>>>> <https://calcite.apache.org/do <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 <
>>>>>>>>> http://www.linkedin.com/in/tzolov>> |
>>>>>>>>>>>>>> Principle
>>>>>>>>>>>>>>>>>>> Software
>>>>>>>>>>>>>>>>>>>> Engineer | Spring <https://spring.io/ <
>>>>>> https://spring.io/
>>>>>>>>>> .io
>>>>>>>>> | Pivotal <
>>>>>>>>>>>>>>>>>> http://pivotal.io/ <http://pivotal.io/>>
>>>>>>>>>>>>>>>>>>>> | ctzo...@pivotal.io <mailto:ctzo...@pivotal.io>
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>> Christian Tzolov <http://www.linkedin.com/in/tzolov <
>>>>>>>>> http://www.linkedin.com/in/tzolov>> | Principle
>>>>>>>>>>>>>>>>>> Software
>>>>>>>>>>>>>>>>>>> Engineer | Spring <https://spring.io/ <
>>>>>> https://spring.io/
>>>>>>>>>> .io
>>>>>>>>> | Pivotal <
>>>>>>>>>>>>>>>>> http://pivotal.io/ <http://pivotal.io/>>
>>>>>>>>>>>>>>>>>> |
>>>>>>>>>>>>>>>>>>> ctzo...@pivotal.io <mailto:ctzo...@pivotal.io>
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>> Christian Tzolov <http://www.linkedin.com/in/tzolov <
>>>>>>>>> http://www.linkedin.com/in/tzolov>> | Principle
>>>>>>>>>>>>>>>> Software
>>>>>>>>>>>>>>>>> Engineer | Spring <https://spring.io/ <https://spring.io/
>>>>>>>>> .io
>>>>>>>>> | Pivotal <
>>>>>>>>>>>>>> http://pivotal.io/ <http://pivotal.io/>>
>>>>>>>>>>>>>>>> |
>>>>>>>>>>>>>>>>> ctzo...@pivotal.io <mailto:ctzo...@pivotal.io>
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>> Christian Tzolov <http://www.linkedin.com/in/tzolov <
>>>>>>>>> http://www.linkedin.com/in/tzolov>> | Principle
>>>>>>>>>>>>>> Software
>>>>>>>>>>>>>>> Engineer | Spring <https://spring.io/ <https://spring.io/
>>>>>>>> .io
>>>>>>> |
>>>>>>>>> Pivotal <
>>>>>>>>>>>> http://pivotal.io/ <http://pivotal.io/>>
>>>>>>>>>>>>>>> | ctzo...@pivotal.io <mailto:ctzo...@pivotal.io>
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> Christian Tzolov <http://www.linkedin.com/in/tzolov <
>>>>>>>>> http://www.linkedin.com/in/tzolov>> | Principle
>>>>>>>>>>>> Software
>>>>>>>>>>>>>> Engineer | Spring <https://spring.io/ <https://spring.io/
>>>>>>>> .io
>>>>>>> |
>>>>>>>>> Pivotal <http://pivotal.io/ <http://pivotal.io/>>
>>>>>>>>>>>> |
>>>>>>>>>>>>>> ctzo...@pivotal.io <mailto: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 <mailto:
>> ctzo...@pivotal.io
>>>>>>> <
>>>>>>>>> wkt-countries.json.zip>
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> --
>>>>>>>> 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