static class Frameworks.StdFrameworkConfig extends Object implements FrameworkConfig
FrameworkConfig that uses standard Calcite
classes to provide basic planner functionality.| Modifier and Type | Field and Description |
|---|---|
private Context |
context |
private SqlRexConvertletTable |
convertletTable |
private RelOptCostFactory |
costFactory |
private SchemaPlus |
defaultSchema |
private RexExecutor |
executor |
private SqlOperatorTable |
operatorTable |
private SqlParser.Config |
parserConfig |
private com.google.common.collect.ImmutableList<Program> |
programs |
private SqlToRelConverter.Config |
sqlToRelConverterConfig |
private com.google.common.collect.ImmutableList<RelTraitDef> |
traitDefs |
private RelDataTypeSystem |
typeSystem |
| Constructor and Description |
|---|
StdFrameworkConfig(Context context,
SqlRexConvertletTable convertletTable,
SqlOperatorTable operatorTable,
com.google.common.collect.ImmutableList<Program> programs,
com.google.common.collect.ImmutableList<RelTraitDef> traitDefs,
SqlParser.Config parserConfig,
SqlToRelConverter.Config sqlToRelConverterConfig,
SchemaPlus defaultSchema,
RelOptCostFactory costFactory,
RelDataTypeSystem typeSystem,
RexExecutor executor) |
| Modifier and Type | Method and Description |
|---|---|
Context |
getContext()
Returns the PlannerContext that should be made available during planning by
calling
RelOptPlanner.getContext(). |
SqlRexConvertletTable |
getConvertletTable()
Returns the convertlet table that should be used when converting from SQL
to row expressions
|
RelOptCostFactory |
getCostFactory()
Returns the cost factory that should be used when creating the planner.
|
SchemaPlus |
getDefaultSchema()
Returns the default schema that should be checked before looking at the
root schema.
|
RexExecutor |
getExecutor()
Returns the executor used to evaluate constant expressions.
|
SqlOperatorTable |
getOperatorTable()
Returns operator table that should be used to
resolve functions and operators during query validation.
|
SqlParser.Config |
getParserConfig()
The configuration of SQL parser.
|
com.google.common.collect.ImmutableList<Program> |
getPrograms()
Returns a list of one or more programs used during the course of query
evaluation.
|
SqlToRelConverter.Config |
getSqlToRelConverterConfig()
The configuration of
SqlToRelConverter. |
com.google.common.collect.ImmutableList<RelTraitDef> |
getTraitDefs()
Returns a list of trait definitions.
|
RelDataTypeSystem |
getTypeSystem()
Returns the type system.
|
private final Context context
private final SqlRexConvertletTable convertletTable
private final SqlOperatorTable operatorTable
private final com.google.common.collect.ImmutableList<Program> programs
private final com.google.common.collect.ImmutableList<RelTraitDef> traitDefs
private final SqlParser.Config parserConfig
private final SqlToRelConverter.Config sqlToRelConverterConfig
private final SchemaPlus defaultSchema
private final RelOptCostFactory costFactory
private final RelDataTypeSystem typeSystem
private final RexExecutor executor
StdFrameworkConfig(Context context, SqlRexConvertletTable convertletTable, SqlOperatorTable operatorTable, com.google.common.collect.ImmutableList<Program> programs, com.google.common.collect.ImmutableList<RelTraitDef> traitDefs, SqlParser.Config parserConfig, SqlToRelConverter.Config sqlToRelConverterConfig, SchemaPlus defaultSchema, RelOptCostFactory costFactory, RelDataTypeSystem typeSystem, RexExecutor executor)
public SqlParser.Config getParserConfig()
FrameworkConfiggetParserConfig in interface FrameworkConfigpublic SqlToRelConverter.Config getSqlToRelConverterConfig()
FrameworkConfigSqlToRelConverter.getSqlToRelConverterConfig in interface FrameworkConfigpublic SchemaPlus getDefaultSchema()
FrameworkConfiggetDefaultSchema in interface FrameworkConfigpublic RexExecutor getExecutor()
FrameworkConfiggetExecutor in interface FrameworkConfigpublic com.google.common.collect.ImmutableList<Program> getPrograms()
FrameworkConfigThe common use case is when there is a single program
created using Programs.of(RuleSet)
and Planner.transform(int, org.apache.calcite.plan.RelTraitSet, org.apache.calcite.rel.RelNode)
will only be called once.
However, consumers may also create programs
not based on rule sets, register multiple programs,
and do multiple repetitions
of Planner.transform(int, org.apache.calcite.plan.RelTraitSet, org.apache.calcite.rel.RelNode) planning cycles using different indices.
The order of programs provided here determines the zero-based indices of programs elsewhere in this class.
getPrograms in interface FrameworkConfigpublic RelOptCostFactory getCostFactory()
FrameworkConfiggetCostFactory in interface FrameworkConfigpublic com.google.common.collect.ImmutableList<RelTraitDef> getTraitDefs()
FrameworkConfigIf the list is not null, the planner first de-registers any
existing RelTraitDefs, then registers the RelTraitDefs in
this list.
The order of RelTraitDefs in the list matters if the
planner is VolcanoPlanner. The planner calls RelTraitDef.convert(org.apache.calcite.plan.RelOptPlanner, org.apache.calcite.rel.RelNode, T, boolean) in
the order of this list. The most important trait comes first in the list,
followed by the second most important one, etc.
getTraitDefs in interface FrameworkConfigpublic SqlRexConvertletTable getConvertletTable()
FrameworkConfiggetConvertletTable in interface FrameworkConfigpublic Context getContext()
FrameworkConfigRelOptPlanner.getContext().getContext in interface FrameworkConfigpublic SqlOperatorTable getOperatorTable()
FrameworkConfiggetOperatorTable in interface FrameworkConfigpublic RelDataTypeSystem getTypeSystem()
FrameworkConfiggetTypeSystem in interface FrameworkConfigCopyright © 2012–2018 The Apache Software Foundation. All rights reserved.