default is a reserved keyword in calcite. Perhaps you should try test."default" (ie quote it)
On Wed, Apr 3, 2019 at 2:56 AM Maria <[email protected]> wrote: > Thank you so much ,Andrei ,your perspective inspired me. > There is no test.test in test index. > I changed another table which has multi-type, it works! > > > BUT, also, I hava one another question: why elasticsearch-adapter do not > support querying "default" type(eg. test.default) ? > > At 2019-04-03 10:32:55, "Andrei Sereda" <[email protected]> wrote: > >You define your default schema as "elasticsearch" but then elastic schema > >is called "test" : > > > >, "schemas": [ { "type": "custom", "name": "test" ..., index:"test" }] > > > >Also if you don't explicitly specify ES type all types for index "test" > >will be imported. So it is possible that there is no test.test type. > > > >On Tue, Apr 2, 2019 at 11:18 PM Maria <[email protected]> wrote: > > > >> > >> > >> 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" <[email protected]> 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 <[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. > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> > >> >
