Определение схемы для JdbcAdapter

Я запрашиваю таблицу базы данных H2 через кальцит. Я создал следующую таблицу в H2, используя драйвер jdbc H2 CREATE TABLE 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 ())

Однако, если я изменю схему на следующую (добавлю ноль), все будет работать как положено

{
"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" из "test"."EMP" завершится неудачно.

После отладки кажется, что он перезаписывается (непосредственно перед вызовом baz), выбирает "ENAME" из *."EMP" и завершается неудачно

Это ожидается (кальцит нуб здесь)

0 ответов

Другие вопросы по тегам