You're right!  I try to query with "select count(*) from `default`" ,it works!
Thank you  sooo   much again.(* ̄︶ ̄)


Maria.
在 2019-04-03 23:57:17,"Andrei Sereda" <[email protected]> 写道:
>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.
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>>

Reply via email to