JdbcAdapter的架构定义

时间:2018-12-26 20:34:57

标签: apache-calcite

我正在通过方解石查询H2数据库表。我使用H2 jdbc驱动程序在H2中创建了下表 创建表EMP(ENAME VARCHAR(10),DEPTNO INT,GENDER VARCHAR(1))

在方解石中,我正在使用以下架构进行连接

{
  "version": "1.0",
  "defaultSchema": "test",
  "schemas": [
    {
  "type": "jdbc",
  "name": "test",
  "jdbcDriver":"org.h2.Driver",
  "jdbcUser": "sa",
  "jdbcPassword": "",
  "jdbcUrl": "jdbc:h2:~/test;user=sa;password=",
  "jdbcCatalog":null,
  "jdbcSchema":"test"

    }
  ]
}

这不起作用,并且我得到SqlValidatorException(似乎表对方解石不可见) (通过getMetaData()函数验证)

但是,如果我将架构更改为以下内容(添加null),一切都会按预期运行

{
"version": "1.0",
"defaultSchema": "test",
"schemas": [
 {
  "type": "jdbc",
  "name": "test",
  "jdbcDriver":"org.h2.Driver",
  "jdbcUser": "sa",
  "jdbcPassword": "",
  "jdbcUrl": "jdbc:h2:~/test;user=sa;password=",
  "jdbcCatalog":null,
  "jdbcSchema": null

}
]
 }

还有另外一种有趣的情况要考虑,如果我将jdbcSchema更改为“”(空)字符串,则测试中的表(emp,dept)可见,但查询- 从“测试”中选择“ ENAME”。“ EMP”失败。

在调试之后,它似乎已被重新写入(就在baz调用之前) 从*中选择“ ENAME”。“ EMP”失败

这是预期的吗(方解石菜鸟在这里)

0 个答案:

没有答案