tabela não encontrada com calcita apache

Estou tentando fazer algumas coisas básicas com calcita para entender a estrutura. Eu configurei um exemplo simples que deve ler de 2 arquivos json. Meu modelo parece

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

No meu teste, parece que o modelo está sendo carregado corretamente, porque quando eu puxo as informações de metadados do banco de dados, vejo que meu arquivo está sendo carregado como uma tabela no esquema PEOPLE. Mas logo após essa afirmação, estou tentando fazer umaselect * dessa tabela e recebo um erro de que a tabela não foi encontrada.

> --
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

A primeira linha na saída mostra as tabelas dos metadados do banco de dados "- null PEOPLE a TABLE ->". Isso mostra que uma tabela "a" está presente no esquema "pessoas" e é do tipo "tabela".

Meu código de teste é assim

@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();
}

Alguma idéia de por que não consigo fazer uma seleção na tabela carregada?

Outra coisa interessante que notei é que, para 1 arquivo,Schema.getTableMap está sendo chamado 4 vezes.

O código completo do projeto pode ser encontradono github

questionAnswers(1)

yourAnswerToTheQuestion