protected RelOptPlanner createPlanner(OptiqPrepare.Context prepareContext,
org.eigenbase.relopt.Context externalContext,
RelOptCostFactory costFactory) {
final VolcanoPlanner planner =
new VolcanoPlanner(costFactory, externalContext);
planner.addRelTraitDef(ConventionTraitDef.INSTANCE);
if (ENABLE_COLLATION_TRAIT) {
planner.addRelTraitDef(RelCollationTraitDef.INSTANCE);
planner.registerAbstractRelationalRules();
}
RelOptUtil.registerAbstractRels(planner);