public DrillJdbcConvention(SqlDialect dialect, String name) { super(dialect, ConstantUntypedNull.INSTANCE, name); // build rules for this convention. ImmutableSet.Builder<RelOptRule> builder = ImmutableSet.builder(); builder.add(JDBC_PRULE_INSTANCE); builder.add(new JdbcDrelConverterRule(this)); builder.add(new DrillJdbcProjectRule(this)); builder.add(new DrillJdbcFilterRule(this)); outside: for (RelOptRule rule : JdbcRules.rules(this)) { final String description = rule.toString(); // we want to black list some rules but the parent Calcite package is all or none. // Therefore, we remove rules with names we don't like. for(String black : RULES_TO_AVOID){ if(description.equals(black)){ continue outside; } } builder.add(rule); } builder.add(RuleInstance.FILTER_SET_OP_TRANSPOSE_RULE); builder.add(RuleInstance.PROJECT_REMOVE_RULE); rules = builder.build(); }
public static List<RelOptRule> rules(JdbcConvention out) { return rules(out, RelFactories.LOGICAL_BUILDER); }
public static List<RelOptRule> rules(JdbcConvention out) { return rules(out, RelFactories.LOGICAL_BUILDER); }
@Override public void register(RelOptPlanner planner) { for (RelOptRule rule : JdbcRules.rules(this)) { planner.addRule(rule); } planner.addRule(FilterSetOpTransposeRule.INSTANCE); planner.addRule(ProjectRemoveRule.INSTANCE); } }
@Override public void register(RelOptPlanner planner) { for (RelOptRule rule : JdbcRules.rules(this)) { planner.addRule(rule); } planner.addRule(FilterSetOpTransposeRule.INSTANCE); planner.addRule(ProjectRemoveRule.INSTANCE); } }
@Override public void register(RelOptPlanner planner) { final JdbcConvention out = (JdbcConvention) getConvention(); for (RelOptRule rule : JdbcRules.rules(out)) { planner.addRule(rule); } }
@Override public void register(RelOptPlanner planner) { final JdbcConvention out = (JdbcConvention) getConvention(); for (RelOptRule rule : JdbcRules.rules(out)) { planner.addRule(rule); } }