File tree Expand file tree Collapse file tree
testkit/src/main/java/org/apache/calcite/test Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -348,7 +348,8 @@ public static class SubPlanCommand extends AbstractCommand {
348348 relNode = RelDecorrelator .decorrelateQuery (relNode , relBuilder );
349349 }
350350
351- x .echo (ImmutableList .of (RelOptUtil .toString (relNode )));
351+ final String s = RelOptUtil .toString (relNode );
352+ x .echo (ImmutableList .copyOf (s .split (System .lineSeparator ())));
352353 }
353354 } else {
354355 x .echo (content );
@@ -664,7 +665,26 @@ private static void applyRulesInOrder(String value,
664665
665666 public static RelOptRule getCoreRule (String ruleName ) {
666667 try {
667- Field ruleField = CoreRules .class .getField (ruleName );
668+ // Support "ClassName.FIELD_NAME" syntax for non-CoreRules rule classes.
669+ // E.g. "PruneEmptyRules.PROJECT_INSTANCE"
670+ final Class <?> ruleClass ;
671+ final String fieldName ;
672+ int dotIndex = ruleName .indexOf ('.' );
673+ if (dotIndex >= 0 ) {
674+ String className = ruleName .substring (0 , dotIndex );
675+ fieldName = ruleName .substring (dotIndex + 1 );
676+ switch (className ) {
677+ case "PruneEmptyRules" :
678+ ruleClass = PruneEmptyRules .class ;
679+ break ;
680+ default :
681+ throw new IllegalArgumentException ("Unknown rule class: " + className );
682+ }
683+ } else {
684+ ruleClass = CoreRules .class ;
685+ fieldName = ruleName ;
686+ }
687+ Field ruleField = ruleClass .getField (fieldName );
668688 Object o = ruleField .get (null );
669689
670690 if (o instanceof RelOptRule ) {
You can’t perform that action at this time.
0 commit comments