tabla no encontrada con calcita apache

Estoy tratando de hacer algunas cosas básicas con calcita para entender el marco. He configurado un ejemplo simple que se supone que debe leer de 2 archivos json. Mi modelo se parece

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

En mi prueba, parece que el modelo se está cargando bien porque cuando obtengo la información de metadatos de la base de datos, puedo ver que mi archivo se está cargando como una tabla en el esquema PEOPLE. Pero justo después de esa declaración, estoy tratando de hacer unselect * de esa tabla y recibo un error de que no se encontró la tabla.

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

La primera línea en la salida muestra las tablas de los metadatos de la base de datos "- nulo PEOPLE a TABLE ->". Esto muestra que una tabla "a" está presente bajo el esquema "personas" y es del tipo "tabla".

Mi código de prueba se ve así

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

¿Alguna idea de por qué no puedo hacer una selección en la tabla cargada?

Otra cosa interesante que noté es que para 1 archivo,Schema.getTableMap se llama 4 veces

Puede encontrar el código completo del proyecto.en github

Respuestas a la pregunta(1)

Su respuesta a la pregunta