From 94139557c56cea318d4a4f82a4deaf72198f349a Mon Sep 17 00:00:00 2001 From: Daoyuan Wang Date: Tue, 20 Oct 2015 09:20:35 -0700 Subject: [PATCH] [SPARK-10463] [SQL] remove PromotePrecision during optimization PromotePrecision is not necessary after HiveTypeCoercion done. Jira: https://issues.apache.org/jira/browse/SPARK-10463 Author: Daoyuan Wang Closes #8621 from adrian-wang/promoterm. --- .../apache/spark/sql/catalyst/optimizer/Optimizer.scala | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala index 63602eaa8c..6557c7005d 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala @@ -57,7 +57,7 @@ object DefaultOptimizer extends Optimizer { ConstantFolding, LikeSimplification, BooleanSimplification, - RemovePositive, + RemoveDispensable, SimplifyFilters, SimplifyCasts, SimplifyCaseConversionExpressions) :: @@ -784,11 +784,12 @@ object SimplifyCasts extends Rule[LogicalPlan] { } /** - * Removes [[UnaryPositive]] identify function + * Removes nodes that are not necessary. */ -object RemovePositive extends Rule[LogicalPlan] { +object RemoveDispensable extends Rule[LogicalPlan] { def apply(plan: LogicalPlan): LogicalPlan = plan transformAllExpressions { case UnaryPositive(child) => child + case PromotePrecision(child) => child } }