Looks good.

One remark about your change: a missing property, e.g. "'coordinates' is 
missing in configuration”, is a user error. We should not be using 
Preconditions.checkState to check for these conditions, because that is for 
internal (coding) errors.

https://github.com/apache/calcite/pull/1028/files#diff-b75b1ca5d0ef9f9b6b1aa37ffafcf2d0R58
 
<https://github.com/apache/calcite/pull/1028/files#diff-b75b1ca5d0ef9f9b6b1aa37ffafcf2d0R58>
 


> On Feb 5, 2019, at 8:26 AM, Andrei Sereda <and...@sereda.cc> wrote:
> 
> I have removed userConfig from ElasticsearchSchemaFactory. It is not used
> anymore.
> 
> https://github.com/apache/calcite/pull/1028
> 
> On Mon, Feb 4, 2019 at 2:34 PM Michael Mior <mm...@apache.org> wrote:
> 
>> This looks like a bug. Could you try adding another key "userConfig":
>> "{}" under "operand" in your model file and see if that runs?
>> --
>> Michael Mior
>> mm...@apache.org
>> 
>> 
>> Le lun. 4 févr. 2019 à 14:29, Allan Keers <allan.ke...@isentia.com> a
>> écrit :
>>> 
>>> Hi there,
>>> I can connect my Calcite installation to the sample csv and query the
>> tables.
>>> When I try to connect to Elasticsearch I get the following error.
>>> Any help would be appreciated.
>>> Thanks,
>>> Allan Keers
>>> 
>>> 
>>> sqlline version 1.6.0
>>> 
>>> sqlline> !connect
>> jdbc:calcite:model=/Users/Administrator/dev/calcite/elasticsearch/elasticsearch.json
>> admin admin
>>> 
>>> java.lang.RuntimeException: Error instantiating
>> JsonCustomSchema(name=elasticsearch)
>>> 
>>> at org.apache.calcite.model.ModelHandler.visit(ModelHandler.java:287)
>>> 
>>> at
>> org.apache.calcite.model.JsonCustomSchema.accept(JsonCustomSchema.java:45)
>>> 
>>> at org.apache.calcite.model.ModelHandler.visit(ModelHandler.java:208)
>>> 
>>> at org.apache.calcite.model.ModelHandler.<init>(ModelHandler.java:100)
>>> 
>>> at org.apache.calcite.jdbc.Driver$1.onConnectionInit(Driver.java:104)
>>> 
>>> at
>> org.apache.calcite.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:139)
>>> 
>>> at sqlline.DatabaseConnection.connect(DatabaseConnection.java:130)
>>> 
>>> at sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:179)
>>> 
>>> at sqlline.Commands.connect(Commands.java:1247)
>>> 
>>> at sqlline.Commands.connect(Commands.java:1139)
>>> 
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> 
>>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>> 
>>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>> 
>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>> 
>>> at
>> sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:38)
>>> 
>>> at sqlline.SqlLine.dispatch(SqlLine.java:722)
>>> 
>>> at sqlline.SqlLine.begin(SqlLine.java:540)
>>> 
>>> at sqlline.SqlLine.start(SqlLine.java:264)
>>> 
>>> at sqlline.SqlLine.main(SqlLine.java:195)
>>> 
>>> Caused by: java.lang.NullPointerException
>>> 
>>> at
>> com.fasterxml.jackson.core.JsonFactory.createParser(JsonFactory.java:889)
>>> 
>>> at
>> com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3023)
>>> 
>>> at
>> org.apache.calcite.adapter.elasticsearch.ElasticsearchSchemaFactory.create(ElasticsearchSchemaFactory.java:65)
>>> 
>>> at org.apache.calcite.model.ModelHandler.visit(ModelHandler.java:282)
>>> 
>>> ... 18 more
>>> 
>>> 
>>> I'm running on Macbook Pro Mac OS Mojave 10.14.1
>>> Elasticsearch version:
>>> {
>>>    "name": "i-xxxxxxxxxxxx",
>>>    "cluster_name": "prod-xxxxx",
>>>    "cluster_uuid": "r2G1fHbtQO6a3ft_JLbLcg",
>>>    "version": {
>>>        "number": "5.6.8",
>>>        "build_hash": "688ecce",
>>>        "build_date": "2018-02-16T16:46:30.010Z",
>>>        "build_snapshot": false,
>>>        "lucene_version": "6.6.1"
>>>    },
>>>    "tagline": "You Know, for Search"
>>> }
>>> 
>>> elasticsearch.json:
>>> {
>>>  "version": "1.0",
>>>  "defaultSchema": "elasticsearch",
>>>  "schemas": [
>>>    {
>>>      "type": "custom",
>>>      "name": "elasticsearch",
>>>      "factory":
>> "org.apache.calcite.adapter.elasticsearch.ElasticsearchSchemaFactory",
>>>      "operand": {
>>>        "coordinates": "{'99.99.99.99': 80}",
>>>        "index": "mp_mediaitems_v220190116"
>>>      }
>>>    }
>>>  ]
>>> }
>>> 
>> 

Reply via email to