Maybe the “zips” table is upper-case. If so, your SQL query should be select count(*) from mongoDB.ZIPS
It may not be the cause, but you should also change defaultSchema: ‘mongo' to defaultSchema: 'mongoDB' The difference between sqlline and Java is that sqlline is using the default lexical policy (because sqlline doesn't pass a Properties object when it opens a connection). If you want to use a lexical policy from sqlline, you need to add “;lex=SQL_SERVER” to the connect string. Julian > On Dec 20, 2016, at 8:24 AM, Julian Stenzel <[email protected]> > wrote: > > Hello Team, > atm iam trying to execute some queries in java. > my code: > Class.forName("org.apache.calcite.jdbc.Driver");info = new > Properties();info.setProperty("lex", "SQL_SERVER"); > connection = DriverManager.getConnection("jdbc:calcite:database/config.json", > info);statement = connection.createStatement(); > ResultSet resultSet = statement.executeQuery("select count(*) from > mongoDB.zips");// > or select count(*) from zips > my config.json: > { version: '1.0', defaultSchema: 'mongo', schemas: [ { type: > 'custom', name: 'mongoDB', factory: > 'org.apache.calcite.adapter.mongodb.MongoSchemaFactory', operand: { > host: 'localhost', database: 'darwin_test', > } } ]} > i encounter Caused by: org.apache.calcite.sql.validate.SqlValidatorException: > Table 'mongoDB.zips' not found. The query works fine with sqlline.bat and the > same config (config.json). Am I making any obvious mistake?Thank youJulian > > > >
