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

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


The following commit(s) were added to refs/heads/master by this push:
     new 266f3a5699c [FLINK-36792][table] Remove FlinkJoinPushExpressionsRule
266f3a5699c is described below

commit 266f3a5699cf9c3c23fc179a4b6e494372885436
Author: Jacky Lau <[email protected]>
AuthorDate: Thu Dec 5 06:30:45 2024 +0800

    [FLINK-36792][table] Remove FlinkJoinPushExpressionsRule
---
 .../logical/FlinkJoinPushExpressionsRule.java      | 80 ----------------------
 .../planner/plan/rules/FlinkBatchRuleSets.scala    |  4 +-
 .../planner/plan/rules/FlinkStreamRuleSets.scala   |  4 +-
 ...uleTest.xml => JoinPushExpressionsRuleTest.xml} |  0
 ...est.scala => JoinPushExpressionsRuleTest.scala} |  7 +-
 5 files changed, 8 insertions(+), 87 deletions(-)

diff --git 
a/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/rules/logical/FlinkJoinPushExpressionsRule.java
 
b/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/rules/logical/FlinkJoinPushExpressionsRule.java
deleted file mode 100644
index a2681666398..00000000000
--- 
a/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/rules/logical/FlinkJoinPushExpressionsRule.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.flink.table.planner.plan.rules.logical;
-
-import org.apache.calcite.plan.RelOptRule;
-import org.apache.calcite.plan.RelOptRuleCall;
-import org.apache.calcite.plan.RelOptUtil;
-import org.apache.calcite.rel.RelNode;
-import org.apache.calcite.rel.core.Join;
-import org.apache.calcite.rel.core.RelFactories;
-import org.apache.calcite.rex.RexNode;
-import org.apache.calcite.tools.RelBuilder;
-import org.apache.calcite.tools.RelBuilderFactory;
-
-/**
- * This rules is copied from Calcite's {@link 
org.apache.calcite.rel.rules.JoinPushExpressionsRule}.
- * Modification: - Supports SEMI/ANTI join using {@link
- * 
org.apache.flink.table.planner.plan.utils.FlinkRelOptUtil#pushDownJoinConditions}
 - Only push
- * down calls on non-time-indicator field.
- */
-
-/**
- * Planner rule that pushes down expressions in "equal" join condition.
- *
- * <p>For example, given "emp JOIN dept ON emp.deptno + 1 = dept.deptno", adds 
a project above "emp"
- * that computes the expression "emp.deptno + 1". The resulting join condition 
is a simple
- * combination of AND, equals, and input fields, plus the remaining non-equal 
conditions.
- */
-public class FlinkJoinPushExpressionsRule extends RelOptRule {
-
-    public static final FlinkJoinPushExpressionsRule INSTANCE =
-            new FlinkJoinPushExpressionsRule(Join.class, 
RelFactories.LOGICAL_BUILDER);
-
-    /** Creates a JoinPushExpressionsRule. */
-    public FlinkJoinPushExpressionsRule(
-            Class<? extends Join> clazz, RelBuilderFactory relBuilderFactory) {
-        super(operand(clazz, any()), relBuilderFactory, null);
-    }
-
-    @Deprecated // to be removed before 2.0
-    public FlinkJoinPushExpressionsRule(
-            Class<? extends Join> clazz, RelFactories.ProjectFactory 
projectFactory) {
-        this(clazz, RelBuilder.proto(projectFactory));
-    }
-
-    @Override
-    public void onMatch(RelOptRuleCall call) {
-        Join join = call.rel(0);
-
-        // Push expression in join condition into Project below Join.
-        RelNode newJoin = RelOptUtil.pushDownJoinConditions(join, 
call.builder());
-
-        // If the join is the same, we bail out
-        if (newJoin instanceof Join) {
-            final RexNode newCondition = ((Join) newJoin).getCondition();
-            if (join.getCondition().equals(newCondition)) {
-                return;
-            }
-        }
-
-        call.transformTo(newJoin);
-    }
-}
-
-// End FlinkJoinPushExpressionsRule.java
diff --git 
a/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/plan/rules/FlinkBatchRuleSets.scala
 
b/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/plan/rules/FlinkBatchRuleSets.scala
index 4611cacb26a..8e11cf08fc9 100644
--- 
a/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/plan/rules/FlinkBatchRuleSets.scala
+++ 
b/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/plan/rules/FlinkBatchRuleSets.scala
@@ -36,7 +36,7 @@ object FlinkBatchRuleSets {
     FlinkRewriteSubQueryRule.FILTER,
     FlinkSubQueryRemoveRule.FILTER,
     JoinConditionTypeCoerceRule.INSTANCE,
-    FlinkJoinPushExpressionsRule.INSTANCE
+    CoreRules.JOIN_PUSH_EXPRESSIONS
   )
 
   /** Convert sub-queries before query decorrelation. */
@@ -246,7 +246,7 @@ object FlinkBatchRuleSets {
     CoreRules.SORT_REMOVE,
 
     // join rules
-    FlinkJoinPushExpressionsRule.INSTANCE,
+    CoreRules.JOIN_PUSH_EXPRESSIONS,
     SimplifyJoinConditionRule.INSTANCE,
 
     // remove union with only a single child
diff --git 
a/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/plan/rules/FlinkStreamRuleSets.scala
 
b/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/plan/rules/FlinkStreamRuleSets.scala
index 109a982d216..e3abb9b1f04 100644
--- 
a/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/plan/rules/FlinkStreamRuleSets.scala
+++ 
b/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/plan/rules/FlinkStreamRuleSets.scala
@@ -36,7 +36,7 @@ object FlinkStreamRuleSets {
     FlinkRewriteSubQueryRule.FILTER,
     FlinkSubQueryRemoveRule.FILTER,
     JoinConditionTypeCoerceRule.INSTANCE,
-    FlinkJoinPushExpressionsRule.INSTANCE
+    CoreRules.JOIN_PUSH_EXPRESSIONS
   )
 
   /** Convert sub-queries before query decorrelation. */
@@ -249,7 +249,7 @@ object FlinkStreamRuleSets {
     CoreRules.SORT_REMOVE,
 
     // join rules
-    FlinkJoinPushExpressionsRule.INSTANCE,
+    CoreRules.JOIN_PUSH_EXPRESSIONS,
     SimplifyJoinConditionRule.INSTANCE,
 
     // remove union with only a single child
diff --git 
a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/logical/FlinkJoinPushExpressionsRuleTest.xml
 
b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/logical/JoinPushExpressionsRuleTest.xml
similarity index 100%
rename from 
flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/logical/FlinkJoinPushExpressionsRuleTest.xml
rename to 
flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/rules/logical/JoinPushExpressionsRuleTest.xml
diff --git 
a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/rules/logical/FlinkJoinPushExpressionsRuleTest.scala
 
b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/rules/logical/JoinPushExpressionsRuleTest.scala
similarity index 92%
rename from 
flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/rules/logical/FlinkJoinPushExpressionsRuleTest.scala
rename to 
flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/rules/logical/JoinPushExpressionsRuleTest.scala
index 3b04f9d5671..d336690932f 100644
--- 
a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/rules/logical/FlinkJoinPushExpressionsRuleTest.scala
+++ 
b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/rules/logical/JoinPushExpressionsRuleTest.scala
@@ -22,11 +22,12 @@ import 
org.apache.flink.table.planner.plan.optimize.program.{BatchOptimizeContex
 import org.apache.flink.table.planner.utils.TableTestBase
 
 import org.apache.calcite.plan.hep.HepMatchOrder
+import org.apache.calcite.rel.rules.{CoreRules, JoinPushExpressionsRule}
 import org.apache.calcite.tools.RuleSets
 import org.junit.jupiter.api.{BeforeEach, Test}
 
-/** Tests for [[FlinkJoinPushExpressionsRule]]. */
-class FlinkJoinPushExpressionsRuleTest extends TableTestBase {
+/** Tests for [[JoinPushExpressionsRule]]. */
+class JoinPushExpressionsRuleTest extends TableTestBase {
 
   private val util = batchTestUtil()
 
@@ -43,7 +44,7 @@ class FlinkJoinPushExpressionsRuleTest extends TableTestBase {
           FlinkRewriteSubQueryRule.FILTER,
           FlinkSubQueryRemoveRule.FILTER,
           JoinConditionTypeCoerceRule.INSTANCE,
-          FlinkJoinPushExpressionsRule.INSTANCE
+          CoreRules.JOIN_PUSH_EXPRESSIONS
         ))
         .build()
     )

Reply via email to