wenhuitang commented on a change in pull request #1275: [CALCITE-3136]Fix the 
default rule description of ConverterRule
URL: https://github.com/apache/calcite/pull/1275#discussion_r299813649
 
 

 ##########
 File path: core/src/test/java/org/apache/calcite/plan/RelOptUtilTest.java
 ##########
 @@ -143,6 +152,74 @@ public RelOptUtilTest() {
     }
   }
 
+  /** Test case for
+   * <a 
href="https://issues.apache.org/jira/browse/CALCITE-3136";>[CALCITE-3136]
+   * Fix the default rule description of ConverterRule</a>. */
+  @Test public void testConvertRuleDefaultRuleDescription() {
+    RelCollation collation1 =
+            RelCollations.of(new RelFieldCollation(4, 
RelFieldCollation.Direction.DESCENDING));
+    RelCollation collation2 =
+            RelCollations.of(new RelFieldCollation(0, 
RelFieldCollation.Direction.DESCENDING));
+    RelDistribution distribution1 = RelDistributions.hash(ImmutableList.of(0, 
1));
+    RelDistribution distribution2 =  
RelDistributions.range(ImmutableList.of());
+    RelOptRule collationConvertRule = new ConverterRule(RelNode.class,
+            collation1,
+            collation2,
+            null) {
+      @Override public RelNode convert(RelNode rel) {
+        return null;
+      }
+    };
+    RelOptRule distributionConvertRule = new ConverterRule(RelNode.class,
+            distribution1,
+            distribution2,
+            null) {
+      @Override public RelNode convert(RelNode rel) {
+        return null;
+      }
+    };
+    RelOptRule compositeConvertRule = new ConverterRule(RelNode.class,
+            RelCompositeTrait.of(RelCollationTraitDef.INSTANCE,
+                    ImmutableList.of(collation2, collation1)),
+            RelCompositeTrait.of(RelCollationTraitDef.INSTANCE,
+                    ImmutableList.of(collation1)),
+            null) {
+      @Override public RelNode convert(RelNode rel) {
+        return null;
+      }
+    };
+    RelOptRule compositeConvertRule0 = new ConverterRule(RelNode.class,
+            RelCompositeTrait.of(RelDistributionTraitDef.INSTANCE,
+                    ImmutableList.of(distribution1, distribution2)),
+            RelCompositeTrait.of(RelDistributionTraitDef.INSTANCE,
+                    ImmutableList.of(distribution1)),
+            null) {
+      @Override public RelNode convert(RelNode rel) {
+        return null;
+      }
+    };
+    assertEquals("ConverterRule(in:[4 DESC],out:[0 DESC])", 
collationConvertRule.toString());
+    assertEquals("ConverterRule(in:hash[0, 1],out:range)", 
distributionConvertRule.toString());
+    assertEquals("ConverterRule(in:[[0 DESC], [4 DESC]],out:[4 DESC])",
+            compositeConvertRule.toString());
+    assertEquals("ConverterRule(in:[hash[0, 1], range],out:hash[0, 1])",
+            compositeConvertRule0.toString());
+    try {
+      RelOptRule conventionRule = new ConverterRule(RelNode.class,
+              new Convention.Impl("{sourceConvention}", RelNode.class),
+              new Convention.Impl("<targetConvention>", RelNode.class),
+              null) {
+        @Override public RelNode convert(RelNode rel) {
+          return null;
+        }
+      };
+    } catch (RuntimeException e) {
+      assertEquals(
 
 Review comment:
   Yes! I have addressed. Thanks for comments.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to