Skip to content

Commit f9a90aa

Browse files
committed
Remove semanticEquals Expression
1 parent 3c9968a commit f9a90aa

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/QueryPlanConstraints.scala

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,10 @@ trait ConstraintHelper {
143143
inferredConstraints ++= inferInequalityConstraints(lessThans - lt, r, l, lt)
144144
case _ => // No inference
145145
}
146-
inferredConstraints -- constraints -- greaterThans -- lessThans
146+
(inferredConstraints -- constraints -- greaterThans -- lessThans).foldLeft(Set[Expression]()) {
147+
case (acc, e) if acc.exists(_.semanticEquals(e)) => acc.dropWhile(_.semanticEquals(e))
148+
case (acc, e) => acc + e
149+
}
147150
}
148151

149152
private def replaceConstraints(

sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/optimizer/InferFiltersFromConstraintsSuite.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,7 @@ class InferFiltersFromConstraintsSuite extends PlanTest {
402402
test("Constraints inferred from inequality attributes: case2") {
403403
val original = testRelation.where('a < 'b && 'b < 'c && 'c < 5)
404404
val optimized = testRelation.where(IsNotNull('a) && IsNotNull('b) && IsNotNull('c)
405-
&& 'a < 'b && 'b < 'c && 'a < 5 && 'b < 5 && 'c < 5 && 'c > 'a)
405+
&& 'a < 'b && 'b < 'c && 'a < 5 && 'b < 5 && 'c < 5)
406406
comparePlans(Optimize.execute(original.analyze), optimized.analyze)
407407
}
408408

0 commit comments

Comments
 (0)