get an immutable list of rules that will always be used when running logical planning . this can not be a static singleton because some of the rules need to reference state owned by the current query including its allocator . if a logical rule needs to be user configurable , such as turning it on and off with a system/session option , add it in the getdrilluserconfigurablelogicalrules method instead of here . concode_field_sep RelOptRule DRILL_LOPT_OPTIMIZE_JOIN_RULE concode_elem_sep RelOptRule DRILL_JOIN_TO_MULTIJOIN_RULE concode_elem_sep ImmutableSet<RelOptRule> rules concode_elem_sep RuleSet DRILL_PHYSICAL_DISK concode_elem_sep ImmutableSet<RelOptRule> staticRuleSet concode_field_sep Iterator<RelOptRule> iterator concode_elem_sep RuleSet getPhysicalRules concode_elem_sep RuleSet getDirPruneScanRules concode_elem_sep RuleSet getDrillUserConfigurableLogicalRules concode_elem_sep RuleSet create concode_elem_sep RuleSet mergedRuleSets concode_elem_sep RuleSet getJoinPermRules concode_elem_sep RuleSet getPruneScanRules
RuleSet function ( OptimizerRulesContext arg0 ) { final ImmutableSet < RelOptRule > loc0 = ImmutableSet . < RelOptRule > builder ( ) . addAll ( staticRuleSet ) . add ( DrillMergeProjectRule . getInstance ( true , RelFactories . DEFAULT_PROJECT_FACTORY , arg0 . getFunctionRegistry ( ) ) ) . build ( ) ; return new DrillRuleSet ( loc0 ) ; }