Skip to content

Commit 6596327

Browse files
committed
Add PushDownPredicate
1 parent c8d1b91 commit 6596327

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ abstract class Optimizer(sessionCatalog: SessionCatalog)
175175
RewritePredicateSubquery,
176176
ColumnPruning,
177177
InferFiltersFromConstraints,
178+
PushDownPredicate,
178179
CollapseProject,
179180
RemoveRedundantProject) :+
180181
Batch("UpdateAttributeReferences", Once,

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ class RewriteSubquerySuite extends PlanTest {
3535
RewritePredicateSubquery,
3636
ColumnPruning,
3737
InferFiltersFromConstraints,
38+
PushDownPredicate,
3839
CollapseProject,
3940
RemoveRedundantProject) :: Nil
4041
}
@@ -56,7 +57,7 @@ class RewriteSubquerySuite extends PlanTest {
5657
}
5758
}
5859

59-
test("Infer filters from constraints after rewriting predicate subquery") {
60+
test("Infer filters and push down predicate after rewriting predicate subquery") {
6061
withSQLConf(SQLConf.CONSTRAINT_PROPAGATION_ENABLED.key -> "true") {
6162
val relation = LocalRelation('a.int, 'b.int)
6263
val relInSubquery = LocalRelation('x.int, 'y.int, 'z.int)
@@ -65,8 +66,8 @@ class RewriteSubquerySuite extends PlanTest {
6566

6667
val optimized = Optimize.execute(query.analyze)
6768
val correctAnswer = relation
68-
.select('a).where(IsNotNull('a))
69-
.join(relInSubquery.select('x).where(IsNotNull('x)), LeftSemi, Some('a === 'x))
69+
.where(IsNotNull('a)).select('a)
70+
.join(relInSubquery.where(IsNotNull('x)).select('x), LeftSemi, Some('a === 'x))
7071
.analyze
7172

7273
comparePlans(optimized, correctAnswer)

0 commit comments

Comments
 (0)