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 <[email protected]> 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" <[email protected]> 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 <[email protected]>,写道: > >> 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. > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> >
