This is an automated email from the ASF dual-hosted git repository.

danny0405 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/calcite.git


The following commit(s) were added to refs/heads/master by this push:
     new 5c01713  [CALCITE-3236] Handle issues found in static code analysis 
(DonnyZone)
5c01713 is described below

commit 5c017135b6b923abbf1b465ac1962bcec7886dfd
Author: wellfengzhu <wellfeng...@gmail.com>
AuthorDate: Thu Aug 8 13:20:27 2019 +0800

    [CALCITE-3236] Handle issues found in static code analysis (DonnyZone)
    
    close apache/calcite#1362
---
 .../java/org/apache/calcite/plan/SubstitutionVisitor.java    |  3 ++-
 .../apache/calcite/rel/mutable/MutableTableFunctionScan.java |  2 +-
 .../test/java/org/apache/calcite/test/MutableRelTest.java    | 12 ++++++++++++
 3 files changed, 15 insertions(+), 2 deletions(-)

diff --git 
a/core/src/main/java/org/apache/calcite/plan/SubstitutionVisitor.java 
b/core/src/main/java/org/apache/calcite/plan/SubstitutionVisitor.java
index 4bbf8e9..b477fbc 100644
--- a/core/src/main/java/org/apache/calcite/plan/SubstitutionVisitor.java
+++ b/core/src/main/java/org/apache/calcite/plan/SubstitutionVisitor.java
@@ -757,7 +757,8 @@ public class SubstitutionVisitor {
 
   private UnifyResult apply(UnifyRule rule, MutableRel query,
       MutableRel target) {
-    final UnifyRuleCall call = new UnifyRuleCall(rule, query, target, null);
+    final UnifyRuleCall call =
+        new UnifyRuleCall(rule, query, target, ImmutableList.of());
     return rule.apply(call);
   }
 
diff --git 
a/core/src/main/java/org/apache/calcite/rel/mutable/MutableTableFunctionScan.java
 
b/core/src/main/java/org/apache/calcite/rel/mutable/MutableTableFunctionScan.java
index 514cdf2..c5dc296 100644
--- 
a/core/src/main/java/org/apache/calcite/rel/mutable/MutableTableFunctionScan.java
+++ 
b/core/src/main/java/org/apache/calcite/rel/mutable/MutableTableFunctionScan.java
@@ -69,7 +69,7 @@ public class MutableTableFunctionScan extends MutableMultiRel 
{
             ((MutableTableFunctionScan) obj).elementType)
         && Objects.equals(columnMappings,
             ((MutableTableFunctionScan) obj).columnMappings)
-        && inputs.equals(((MutableSetOp) obj).getInputs());
+        && inputs.equals(((MutableTableFunctionScan) obj).getInputs());
   }
 
   @Override public int hashCode() {
diff --git a/core/src/test/java/org/apache/calcite/test/MutableRelTest.java 
b/core/src/test/java/org/apache/calcite/test/MutableRelTest.java
index 3427a96..d112852 100644
--- a/core/src/test/java/org/apache/calcite/test/MutableRelTest.java
+++ b/core/src/test/java/org/apache/calcite/test/MutableRelTest.java
@@ -204,6 +204,18 @@ public class MutableRelTest {
     }
   }
 
+  @Test public void testMutableTableFunctionScanEquals() {
+    final String sql = "SELECT * FROM TABLE(RAMP(3))";
+    final MutableRel mutableRel1 = createMutableRel(sql);
+    final MutableRel mutableRel2 = createMutableRel(sql);
+    final String actual = 
RelOptUtil.toString(MutableRels.fromMutable(mutableRel1));
+    final String expected = ""
+        + "LogicalProject(I=[$0])\n"
+        + "  LogicalTableFunctionScan(invocation=[RAMP(3)], 
rowType=[RecordType(INTEGER I)])\n";
+    MatcherAssert.assertThat(actual, Matchers.isLinux(expected));
+    Assert.assertEquals(mutableRel1, mutableRel2);
+  }
+
   /** Verifies that after conversion to and from a MutableRel, the new
    * RelNode remains identical to the original RelNode. */
   private static void checkConvertMutableRel(String rel, String sql) {

Reply via email to