From a30c0bdb05865983f0ffaef162eb3e2a8ee0089a Mon Sep 17 00:00:00 2001 From: maryannxue Date: Wed, 9 Jan 2019 12:05:00 -0600 Subject: [PATCH] fix --- .../sql/catalyst/optimizer/EliminateResolvedHint.scala | 2 +- .../test/scala/org/apache/spark/sql/JoinHintSuite.scala | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/EliminateResolvedHint.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/EliminateResolvedHint.scala index bbe4eee4b4326..a136f0493699e 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/EliminateResolvedHint.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/EliminateResolvedHint.scala @@ -34,7 +34,7 @@ object EliminateResolvedHint extends Rule[LogicalPlan] { val rightHint = mergeHints(collectHints(j.right)) j.copy(hint = JoinHint(leftHint, rightHint)) } - pulledUp.transform { + pulledUp.transformUp { case h: ResolvedHint => h.child } } diff --git a/sql/core/src/test/scala/org/apache/spark/sql/JoinHintSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/JoinHintSuite.scala index 3652895ff43d8..55f210cb04dbf 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/JoinHintSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/JoinHintSuite.scala @@ -190,4 +190,13 @@ class JoinHintSuite extends PlanTest with SharedSQLContext { Some(HintInfo(broadcast = true))) :: Nil ) } + + test("nested hint") { + verifyJoinHint( + df.hint("broadcast").hint("broadcast").filter('id > 2).join(df, "id"), + JoinHint( + Some(HintInfo(broadcast = true)), + None) :: Nil + ) + } }