@Override protected Map<String, Table> getTableMap() { final Map<String, Table> map = new LinkedHashMap<String, Table>(); for (String name : sourceSchema.getTableNames()) { final QueryableTable sourceTable = (QueryableTable) sourceSchema.getTable(name); map.put(name, createCloneTable(MATERIALIZATION_CONNECTION, sourceTable, name)); } return map; }
@Override public <E> Table<E> getTable(String name, Class<E> elementType) { // TODO: check elementType matches table.elementType assert elementType != null; Table<E> table = super.getTable(name, elementType); if (table != null) { return table; } // TODO: make thread safe! Table<E> sourceTable = sourceSchema.getTable(name, elementType); if (sourceTable != null) { //noinspection unchecked return createCloneTable(sourceTable, name); } return null; }
private Table createCloneTable(QueryProvider queryProvider, QueryableTable sourceTable, String name) { final Queryable<Object> queryable = sourceTable.asQueryable(queryProvider, sourceSchema, name); final JavaTypeFactory typeFactory = ((OptiqConnection) queryProvider).getTypeFactory(); return createCloneTable(typeFactory, Schemas.proto(sourceTable), null, queryable); }
private <T> Table<T> createCloneTable(Table<T> sourceTable, String name) { final TableInSchema tableInSchema = createCloneTable(this, name, sourceTable.getRowType(), sourceTable); addTable(tableInSchema); return tableInSchema.getTable(null); }
Schemas.prepare(schema, viewSchemaPath, viewSql); materializedTable = CloneSchema.createCloneTable((MutableSchema) schema, tableName, prepareResult.rowType, new AbstractQueryable<Object>() {
final JavaTypeFactory typeFactory = connection.getTypeFactory(); materializedTable = CloneSchema.createCloneTable(typeFactory, RelDataTypeImpl.proto(prepareResult.rowType), Functions.adapt(prepareResult.structType.columns,