Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
`Frameworks` currently assumes that a `Schema` can only be created inside a connection, and therefore each optimizer run needs to create a new schema. The `getPlanner` method reflects this:
```java
public static Planner getPlanner(
Lex lex,
Function1<SchemaPlus, Schema> schemaFactory,
List<RelTraitDef> traitDefs,
SqlStdOperatorTable operatorTable,
RuleSet... ruleSets);
```
Instead we should add
```java
public static SchemaPlus createRootSchema()
```
and let clients build their own schemas under that root schema that can be re-used. The signature of `getPlanner` would become
```java
public static Planner getPlanner(
Lex lex,
SchemaPlus rootSchema,
Schema defaultSchema,
List<RelTraitDef> traitDefs,
SqlStdOperatorTable operatorTable,
RuleSet... ruleSets);
```
`defaultSchema` can be null or a schema under `rootSchema`.
---------------- Imported from GitHub ----------------
Url: https://github.com/julianhyde/optiq/issues/214
Created by: julianhyde
Labels:
Created at: Sat Mar 29 22:50:22 CET 2014
State: closed