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.
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
>

Reply via email to