And, if the name is not correct, creating ElasticsearchSchema will be failed.  
The program will not performs "ResultSet result = ss.excuteQuery(sql);"

At 2019-04-03 09:47:02, "Andrei Sereda" <and...@sereda.cc> wrote:
>Can you check that it's not because of lex ?
>What if you quote table name "test" ? Maybe uppercase ?
>
>On Tue, Apr 2, 2019, 22:42 Maria <linanmengxia...@126.com> wrote:
>
>> Firstly,thanks for your reply.
>> But I'm sure that my local elasticsearch-model.json has been loaded
>> correctly,because when getting connect,read the elastic info   from that
>> file.
>> I will debug the test-demo again...Search for the cause of the problem.
>>
>>
>> Best wishes.
>>
>>
>> Maria.
>> At 2019-04-02 19:54:24, "Yuzhao Chen" <yuzhao....@gmail.com> wrote:
>> >For Object 'test' not found it means Calcite does not load your son model
>> correctly, so it can not find then validate the table there. Maybe you
>> model file is not load correctly.
>> >
>> >I saw a demo in Calcite code in [1], the path sep is </> while your sep
>> is <\\>, can you have a try ?
>> >
>> >[1]
>> https://github.com/apache/calcite/blob/a75a689eff2f1333adc8fb800bdfa077e94da562/core/src/test/java/org/apache/calcite/test/LatticeTest.java#L914
>> >
>> >Best,
>> >Danny Chan
>> >在 2019年4月2日 +0800 PM8:33,Maria <linanmengxia...@126.com>,写道:
>> >> Hi, calcite developers. I met a question about es-adapter and still
>> cannot resove it: .
>> >>
>> >>
>> >> 1) calcite version :1.18.0
>> >> 2) ES version : 5.4.1(I know that in calcite-1.18.0 is 6.4.2)
>> >> 3) test sql : select count(*) from test
>> >> 4) elasticsearch-model.json as follow:
>> >> {
>> >> "version": "1.0","defaultSchema": "elasticsearch", "schemas": [ {
>> "type": "custom", "name": "test", "factory":
>> "org.apache.calcite.adapter.elasticsearch.ElasticsearchSchemaFactory",
>> "operand": {
>> >> "coordinates": "{'xx.xx.xx.xx': 9205}",
>> >> "userConfig": "{'bulk.flush.max.actions': 10, 'bulk.flush.max.size.mb':
>> 1}",
>> >> "index": "test" } } ] }
>> >> 5) test-code:
>> >> try {
>> >> Class.forName("org.apache.calcite.jdbc.Driver");
>> >> } catch (ClassNotFoundException e) {
>> >> Throw new RuntimeException(e);
>> >> }
>> >> Properties pp = new Properties();
>> >> pp.put("lex", "JAVA");
>> >> Connection conn = null;
>> >> try {
>> >> conn =
>> DriverManager.getConnection("jdbc:calcite:model=D:\\calcite\\pre-git\\calcite-test\\conf\\elasticsearch-model.json",
>> pp);
>> >> Statement ss = conn.createStatement();
>> >> String sql = "select count(*) from test";
>> >> ResultSet result = ss.escuteQuery(sql);
>> >> output(resultSet, System.out);
>> >> } catch() {
>> >> Throw new RuntimeException("======get data failed" , e);
>> >> }
>> >>
>> >>
>> >> 6) excaptions :
>> >> org.apache.calcite.sql.validate.SqlValidatorException:Object 'test' not
>> found
>> >> Exception in thread "main" java.lang.RuntimeException: ======get data
>> failed
>> >> .........
>> >> caused by:org.apache.calcite.runtime.CalciteContestException: From line
>> 1, column 22 to line 1, column 25: Object 'test' not found<4 internal calls>
>> >> at
>> org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:463)
>> >> at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:787)
>> >> at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:772)
>> >> at
>> org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:4788)
>> >> at
>> org.apache.calcite.sql.validate.IdentifierNamespace.resolveImpl(IdentifierNamespace.java:172)
>> >> .........
>> >> 7) other confusions:
>> >> [1] I know that in elasticsearch apdator, test case is done by
>> EmbeddedElasticsearch, why not add one standard JDBC test case?
>> >> [2] model.json in
>> http://calcite.apache.org/docs/elasticsearch_adapter.html need to be
>> update,should add "userConfig", or else will be failed.
>> >>
>> >>
>> >>
>> >>
>> >> any reply will be appreciated
>> >>
>> >>
>> >> Maria.
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>>

Reply via email to