таблица не найдена с апачским кальцитом

Я пытаюсь сделать некоторые основные вещи с кальцитом, чтобы понять структуру. Я установил простой пример, который должен читать из 2 файлов JSON. Моя модель выглядит

{
  version: '1.0',
  defaultSchema: 'PEOPLE',
  schemas: [
    {
      name: 'PEOPLE',
      type: 'custom',
      factory: 'demo.JsonSchemaFactory',
      operand: {
        directory: '/..../calcite-json/src/test/resources/files'
      }
    }
  ]
}

В моем тесте кажется, что модель загружается нормально, потому что, когда я извлекаю информацию метаданных базы данных, я вижу, что мой файл загружается в виде таблицы в схеме PEOPLE. Но потом сразу после этого заявления я пытаюсь сделатьselect * из этой таблицы, и я получаю сообщение об ошибке, что таблица не была найдена.

> --
null
PEOPLE
a
TABLE
-->
Jun 29, 2015 8:53:30 AM org.apache.calcite.sql.validate.SqlValidatorException <init>
SEVERE: org.apache.calcite.sql.validate.SqlValidatorException: Table 'A' not found
Jun 29, 2015 8:53:30 AM org.apache.calcite.runtime.CalciteException <init>
SEVERE: org.apache.calcite.runtime.CalciteContextException: At line 1, column 26: Table 'A' not found

Первая строка в выводе показывает таблицы из метаданных базы данных "- null PEOPLE a TABLE ->". Это показывает, что таблица «a» присутствует в схеме «people» и имеет тип «table».

Мой тестовый код выглядит так

@Test
public void testModel() throws SQLException {
    Properties props = new Properties();
    props.put("model", getPath("/model.json"));
    System.out.println("model = " + props.get("model"));
    Connection conn = DriverManager.getConnection("jdbc:calcite:", props);

    DatabaseMetaData md = conn.getMetaData();
    ResultSet tables = md.getTables(null, "PEOPLE", "%", null);
    while (tables.next()) {
        System.out.println("--");
        System.out.println(tables.getString(1));
        System.out.println(tables.getString(2));
        System.out.println(tables.getString(3));
        System.out.println(tables.getString(4));
        System.out.println("-->");
    }

    Statement stat = conn.createStatement();
    stat.execute("select _MAP['name'] from a");

    stat.close();
    conn.close();
}

Любые идеи, почему я не могу сделать выбор на загруженной таблице?

Еще одна интересная вещь, которую я заметил, что для 1 файла,Schema.getTableMap вызывается 4 раза.

Полный код проекта можно найтина GitHub

Ответы на вопрос(1)

Ваш ответ на вопрос