Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ case class CaseWhen(
"CASE" + cases + elseCase + " END"
}

private def multiBranchesCodegen(ctx: CodegenContext, ev: ExprCode): ExprCode = {
override def doGenCode(ctx: CodegenContext, ev: ExprCode): ExprCode = {
// This variable holds the state of the result:
// -1 means the condition is not met yet and the result is unknown.
val NOT_MATCHED = -1
Expand Down Expand Up @@ -279,18 +279,6 @@ case class CaseWhen(
|final boolean ${ev.isNull} = ($resultState != $HAS_NONNULL);
""".stripMargin)
}

override def doGenCode(ctx: CodegenContext, ev: ExprCode): ExprCode = {
if (branches.length == 1) {
// If we have only single branch we can use If expression and its codeGen
If(
branches(0)._1,
branches(0)._2,
elseValue.getOrElse(Literal.create(null, branches(0)._2.dataType))).doGenCode(ctx, ev)
} else {
multiBranchesCodegen(ctx, ev)
}
}
}

/** Factory methods for CaseWhen. */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -505,6 +505,10 @@ object SimplifyConditionals extends Rule[LogicalPlan] with PredicateHelper {
} else {
e.copy(branches = branches.take(i).map(branch => (branch._1, elseValue)))
}

case e @ CaseWhen(branches, elseValue) if branches.length == 1 =>
If(branches.head._1, branches.head._2,
elseValue.getOrElse(Literal.create(null, e.dataType)));
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -208,8 +208,19 @@ class ReplaceNullWithFalseInPredicateSuite extends PlanTest {
FalseLiteral)
val branches = Seq((UnresolvedAttribute("i") > Literal(10)) -> branchValue)
val condition = CaseWhen(branches)
testFilter(originalCond = condition, expectedCond = condition)
testJoin(originalCond = condition, expectedCond = condition)
val simplifiedCond = If(
UnresolvedAttribute("i") > Literal(10),
If(
Literal(2) === If(
UnresolvedAttribute("i") > Literal(20),
Literal(2),
Literal(null, IntegerType)
),
TrueLiteral,
FalseLiteral),
FalseLiteral)
testFilter(originalCond = condition, expectedCond = simplifiedCond)
testJoin(originalCond = condition, expectedCond = simplifiedCond)
}

test("inability to replace null in non-boolean branches of If inside another If") {
Expand Down Expand Up @@ -305,7 +316,8 @@ class ReplaceNullWithFalseInPredicateSuite extends PlanTest {
UnresolvedAttribute("i"),
If(UnresolvedAttribute("b"), Literal(null, IntegerType), Literal(4)))
val column = CaseWhen(Seq(condition -> Literal(5)), Literal(2)).as("out")
testProjection(originalExpr = column, expectedExpr = column)
val simplifiedColumn = If(condition, Literal(5), Literal(2)).as("out")
testProjection(originalExpr = column, expectedExpr = simplifiedColumn)
}

private def lv(s: Symbol) = UnresolvedNamedLambdaVariable(Seq(s.name))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ class SimplifyConditionalSuite extends PlanTest with PredicateHelper {
// i.e. removing branches whose conditions are always false
assertEquivalent(
CaseWhen(unreachableBranch :: normalBranch :: unreachableBranch :: nullBranch :: Nil, None),
CaseWhen(normalBranch :: Nil, None))
If(normalBranch._1, normalBranch._2, Literal.create(null, IntegerType)))
}

test("remove entire CaseWhen if only the else branch is reachable") {
Expand Down Expand Up @@ -165,4 +165,10 @@ class SimplifyConditionalSuite extends PlanTest with PredicateHelper {
Literal(1))
)
}

test("SPARK-32727 : replace CaseWhen with If when there is only one case") {
assertEquivalent(
CaseWhen(('a.isNotNull, Literal(10)) :: Nil, Literal(20)),
If('a.isNotNull, Literal(10), Literal(20)))
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ Input [6]: [d_day_name#3, ss_store_sk#6, ss_sales_price#7, s_store_sk#8, s_store
(18) HashAggregate [codegen id : 3]
Input [4]: [d_day_name#3, ss_sales_price#7, s_store_id#9, s_store_name#10]
Keys [2]: [s_store_name#10, s_store_id#9]
Functions [7]: [partial_sum(UnscaledValue(CASE WHEN (d_day_name#3 = Sunday) THEN ss_sales_price#7 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#3 = Monday) THEN ss_sales_price#7 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#3 = Tuesday) THEN ss_sales_price#7 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#3 = Wednesday) THEN ss_sales_price#7 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#3 = Thursday) THEN ss_sales_price#7 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#3 = Friday) THEN ss_sales_price#7 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#3 = Saturday) THEN ss_sales_price#7 ELSE null END))]
Functions [7]: [partial_sum(UnscaledValue(if ((d_day_name#3 = Sunday)) ss_sales_price#7 else null)), partial_sum(UnscaledValue(if ((d_day_name#3 = Monday)) ss_sales_price#7 else null)), partial_sum(UnscaledValue(if ((d_day_name#3 = Tuesday)) ss_sales_price#7 else null)), partial_sum(UnscaledValue(if ((d_day_name#3 = Wednesday)) ss_sales_price#7 else null)), partial_sum(UnscaledValue(if ((d_day_name#3 = Thursday)) ss_sales_price#7 else null)), partial_sum(UnscaledValue(if ((d_day_name#3 = Friday)) ss_sales_price#7 else null)), partial_sum(UnscaledValue(if ((d_day_name#3 = Saturday)) ss_sales_price#7 else null))]
Aggregate Attributes [7]: [sum#13, sum#14, sum#15, sum#16, sum#17, sum#18, sum#19]
Results [9]: [s_store_name#10, s_store_id#9, sum#20, sum#21, sum#22, sum#23, sum#24, sum#25, sum#26]

Expand All @@ -112,9 +112,9 @@ Arguments: hashpartitioning(s_store_name#10, s_store_id#9, 5), true, [id=#27]
(20) HashAggregate [codegen id : 4]
Input [9]: [s_store_name#10, s_store_id#9, sum#20, sum#21, sum#22, sum#23, sum#24, sum#25, sum#26]
Keys [2]: [s_store_name#10, s_store_id#9]
Functions [7]: [sum(UnscaledValue(CASE WHEN (d_day_name#3 = Sunday) THEN ss_sales_price#7 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#3 = Monday) THEN ss_sales_price#7 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#3 = Tuesday) THEN ss_sales_price#7 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#3 = Wednesday) THEN ss_sales_price#7 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#3 = Thursday) THEN ss_sales_price#7 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#3 = Friday) THEN ss_sales_price#7 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#3 = Saturday) THEN ss_sales_price#7 ELSE null END))]
Aggregate Attributes [7]: [sum(UnscaledValue(CASE WHEN (d_day_name#3 = Sunday) THEN ss_sales_price#7 ELSE null END))#28, sum(UnscaledValue(CASE WHEN (d_day_name#3 = Monday) THEN ss_sales_price#7 ELSE null END))#29, sum(UnscaledValue(CASE WHEN (d_day_name#3 = Tuesday) THEN ss_sales_price#7 ELSE null END))#30, sum(UnscaledValue(CASE WHEN (d_day_name#3 = Wednesday) THEN ss_sales_price#7 ELSE null END))#31, sum(UnscaledValue(CASE WHEN (d_day_name#3 = Thursday) THEN ss_sales_price#7 ELSE null END))#32, sum(UnscaledValue(CASE WHEN (d_day_name#3 = Friday) THEN ss_sales_price#7 ELSE null END))#33, sum(UnscaledValue(CASE WHEN (d_day_name#3 = Saturday) THEN ss_sales_price#7 ELSE null END))#34]
Results [9]: [s_store_name#10, s_store_id#9, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#3 = Sunday) THEN ss_sales_price#7 ELSE null END))#28,17,2) AS sun_sales#35, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#3 = Monday) THEN ss_sales_price#7 ELSE null END))#29,17,2) AS mon_sales#36, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#3 = Tuesday) THEN ss_sales_price#7 ELSE null END))#30,17,2) AS tue_sales#37, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#3 = Wednesday) THEN ss_sales_price#7 ELSE null END))#31,17,2) AS wed_sales#38, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#3 = Thursday) THEN ss_sales_price#7 ELSE null END))#32,17,2) AS thu_sales#39, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#3 = Friday) THEN ss_sales_price#7 ELSE null END))#33,17,2) AS fri_sales#40, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#3 = Saturday) THEN ss_sales_price#7 ELSE null END))#34,17,2) AS sat_sales#41]
Functions [7]: [sum(UnscaledValue(if ((d_day_name#3 = Sunday)) ss_sales_price#7 else null)), sum(UnscaledValue(if ((d_day_name#3 = Monday)) ss_sales_price#7 else null)), sum(UnscaledValue(if ((d_day_name#3 = Tuesday)) ss_sales_price#7 else null)), sum(UnscaledValue(if ((d_day_name#3 = Wednesday)) ss_sales_price#7 else null)), sum(UnscaledValue(if ((d_day_name#3 = Thursday)) ss_sales_price#7 else null)), sum(UnscaledValue(if ((d_day_name#3 = Friday)) ss_sales_price#7 else null)), sum(UnscaledValue(if ((d_day_name#3 = Saturday)) ss_sales_price#7 else null))]
Aggregate Attributes [7]: [sum(UnscaledValue(if ((d_day_name#3 = Sunday)) ss_sales_price#7 else null))#28, sum(UnscaledValue(if ((d_day_name#3 = Monday)) ss_sales_price#7 else null))#29, sum(UnscaledValue(if ((d_day_name#3 = Tuesday)) ss_sales_price#7 else null))#30, sum(UnscaledValue(if ((d_day_name#3 = Wednesday)) ss_sales_price#7 else null))#31, sum(UnscaledValue(if ((d_day_name#3 = Thursday)) ss_sales_price#7 else null))#32, sum(UnscaledValue(if ((d_day_name#3 = Friday)) ss_sales_price#7 else null))#33, sum(UnscaledValue(if ((d_day_name#3 = Saturday)) ss_sales_price#7 else null))#34]
Results [9]: [s_store_name#10, s_store_id#9, MakeDecimal(sum(UnscaledValue(if ((d_day_name#3 = Sunday)) ss_sales_price#7 else null))#28,17,2) AS sun_sales#35, MakeDecimal(sum(UnscaledValue(if ((d_day_name#3 = Monday)) ss_sales_price#7 else null))#29,17,2) AS mon_sales#36, MakeDecimal(sum(UnscaledValue(if ((d_day_name#3 = Tuesday)) ss_sales_price#7 else null))#30,17,2) AS tue_sales#37, MakeDecimal(sum(UnscaledValue(if ((d_day_name#3 = Wednesday)) ss_sales_price#7 else null))#31,17,2) AS wed_sales#38, MakeDecimal(sum(UnscaledValue(if ((d_day_name#3 = Thursday)) ss_sales_price#7 else null))#32,17,2) AS thu_sales#39, MakeDecimal(sum(UnscaledValue(if ((d_day_name#3 = Friday)) ss_sales_price#7 else null))#33,17,2) AS fri_sales#40, MakeDecimal(sum(UnscaledValue(if ((d_day_name#3 = Saturday)) ss_sales_price#7 else null))#34,17,2) AS sat_sales#41]

(21) TakeOrderedAndProject
Input [9]: [s_store_name#10, s_store_id#9, sun_sales#35, mon_sales#36, tue_sales#37, wed_sales#38, thu_sales#39, fri_sales#40, sat_sales#41]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
TakeOrderedAndProject [fri_sales,mon_sales,s_store_id,s_store_name,sat_sales,sun_sales,thu_sales,tue_sales,wed_sales]
WholeStageCodegen (4)
HashAggregate [s_store_id,s_store_name,sum,sum,sum,sum,sum,sum,sum] [fri_sales,mon_sales,sat_sales,sum,sum,sum,sum,sum,sum,sum,sum(UnscaledValue(CASE WHEN (d_day_name = Friday) THEN ss_sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Monday) THEN ss_sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Saturday) THEN ss_sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Sunday) THEN ss_sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Thursday) THEN ss_sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Tuesday) THEN ss_sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Wednesday) THEN ss_sales_price ELSE null END)),sun_sales,thu_sales,tue_sales,wed_sales]
HashAggregate [s_store_id,s_store_name,sum,sum,sum,sum,sum,sum,sum] [fri_sales,mon_sales,sat_sales,sum,sum,sum,sum,sum,sum,sum,sum(UnscaledValue(if ((d_day_name = Friday)) ss_sales_price else null)),sum(UnscaledValue(if ((d_day_name = Monday)) ss_sales_price else null)),sum(UnscaledValue(if ((d_day_name = Saturday)) ss_sales_price else null)),sum(UnscaledValue(if ((d_day_name = Sunday)) ss_sales_price else null)),sum(UnscaledValue(if ((d_day_name = Thursday)) ss_sales_price else null)),sum(UnscaledValue(if ((d_day_name = Tuesday)) ss_sales_price else null)),sum(UnscaledValue(if ((d_day_name = Wednesday)) ss_sales_price else null)),sun_sales,thu_sales,tue_sales,wed_sales]
InputAdapter
Exchange [s_store_id,s_store_name] #1
WholeStageCodegen (3)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ Input [6]: [d_day_name#3, ss_store_sk#5, ss_sales_price#6, s_store_sk#8, s_store
(18) HashAggregate [codegen id : 3]
Input [4]: [d_day_name#3, ss_sales_price#6, s_store_id#9, s_store_name#10]
Keys [2]: [s_store_name#10, s_store_id#9]
Functions [7]: [partial_sum(UnscaledValue(CASE WHEN (d_day_name#3 = Sunday) THEN ss_sales_price#6 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#3 = Monday) THEN ss_sales_price#6 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#3 = Tuesday) THEN ss_sales_price#6 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#3 = Wednesday) THEN ss_sales_price#6 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#3 = Thursday) THEN ss_sales_price#6 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#3 = Friday) THEN ss_sales_price#6 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#3 = Saturday) THEN ss_sales_price#6 ELSE null END))]
Functions [7]: [partial_sum(UnscaledValue(if ((d_day_name#3 = Sunday)) ss_sales_price#6 else null)), partial_sum(UnscaledValue(if ((d_day_name#3 = Monday)) ss_sales_price#6 else null)), partial_sum(UnscaledValue(if ((d_day_name#3 = Tuesday)) ss_sales_price#6 else null)), partial_sum(UnscaledValue(if ((d_day_name#3 = Wednesday)) ss_sales_price#6 else null)), partial_sum(UnscaledValue(if ((d_day_name#3 = Thursday)) ss_sales_price#6 else null)), partial_sum(UnscaledValue(if ((d_day_name#3 = Friday)) ss_sales_price#6 else null)), partial_sum(UnscaledValue(if ((d_day_name#3 = Saturday)) ss_sales_price#6 else null))]
Aggregate Attributes [7]: [sum#13, sum#14, sum#15, sum#16, sum#17, sum#18, sum#19]
Results [9]: [s_store_name#10, s_store_id#9, sum#20, sum#21, sum#22, sum#23, sum#24, sum#25, sum#26]

Expand All @@ -112,9 +112,9 @@ Arguments: hashpartitioning(s_store_name#10, s_store_id#9, 5), true, [id=#27]
(20) HashAggregate [codegen id : 4]
Input [9]: [s_store_name#10, s_store_id#9, sum#20, sum#21, sum#22, sum#23, sum#24, sum#25, sum#26]
Keys [2]: [s_store_name#10, s_store_id#9]
Functions [7]: [sum(UnscaledValue(CASE WHEN (d_day_name#3 = Sunday) THEN ss_sales_price#6 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#3 = Monday) THEN ss_sales_price#6 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#3 = Tuesday) THEN ss_sales_price#6 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#3 = Wednesday) THEN ss_sales_price#6 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#3 = Thursday) THEN ss_sales_price#6 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#3 = Friday) THEN ss_sales_price#6 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#3 = Saturday) THEN ss_sales_price#6 ELSE null END))]
Aggregate Attributes [7]: [sum(UnscaledValue(CASE WHEN (d_day_name#3 = Sunday) THEN ss_sales_price#6 ELSE null END))#28, sum(UnscaledValue(CASE WHEN (d_day_name#3 = Monday) THEN ss_sales_price#6 ELSE null END))#29, sum(UnscaledValue(CASE WHEN (d_day_name#3 = Tuesday) THEN ss_sales_price#6 ELSE null END))#30, sum(UnscaledValue(CASE WHEN (d_day_name#3 = Wednesday) THEN ss_sales_price#6 ELSE null END))#31, sum(UnscaledValue(CASE WHEN (d_day_name#3 = Thursday) THEN ss_sales_price#6 ELSE null END))#32, sum(UnscaledValue(CASE WHEN (d_day_name#3 = Friday) THEN ss_sales_price#6 ELSE null END))#33, sum(UnscaledValue(CASE WHEN (d_day_name#3 = Saturday) THEN ss_sales_price#6 ELSE null END))#34]
Results [9]: [s_store_name#10, s_store_id#9, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#3 = Sunday) THEN ss_sales_price#6 ELSE null END))#28,17,2) AS sun_sales#35, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#3 = Monday) THEN ss_sales_price#6 ELSE null END))#29,17,2) AS mon_sales#36, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#3 = Tuesday) THEN ss_sales_price#6 ELSE null END))#30,17,2) AS tue_sales#37, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#3 = Wednesday) THEN ss_sales_price#6 ELSE null END))#31,17,2) AS wed_sales#38, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#3 = Thursday) THEN ss_sales_price#6 ELSE null END))#32,17,2) AS thu_sales#39, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#3 = Friday) THEN ss_sales_price#6 ELSE null END))#33,17,2) AS fri_sales#40, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#3 = Saturday) THEN ss_sales_price#6 ELSE null END))#34,17,2) AS sat_sales#41]
Functions [7]: [sum(UnscaledValue(if ((d_day_name#3 = Sunday)) ss_sales_price#6 else null)), sum(UnscaledValue(if ((d_day_name#3 = Monday)) ss_sales_price#6 else null)), sum(UnscaledValue(if ((d_day_name#3 = Tuesday)) ss_sales_price#6 else null)), sum(UnscaledValue(if ((d_day_name#3 = Wednesday)) ss_sales_price#6 else null)), sum(UnscaledValue(if ((d_day_name#3 = Thursday)) ss_sales_price#6 else null)), sum(UnscaledValue(if ((d_day_name#3 = Friday)) ss_sales_price#6 else null)), sum(UnscaledValue(if ((d_day_name#3 = Saturday)) ss_sales_price#6 else null))]
Aggregate Attributes [7]: [sum(UnscaledValue(if ((d_day_name#3 = Sunday)) ss_sales_price#6 else null))#28, sum(UnscaledValue(if ((d_day_name#3 = Monday)) ss_sales_price#6 else null))#29, sum(UnscaledValue(if ((d_day_name#3 = Tuesday)) ss_sales_price#6 else null))#30, sum(UnscaledValue(if ((d_day_name#3 = Wednesday)) ss_sales_price#6 else null))#31, sum(UnscaledValue(if ((d_day_name#3 = Thursday)) ss_sales_price#6 else null))#32, sum(UnscaledValue(if ((d_day_name#3 = Friday)) ss_sales_price#6 else null))#33, sum(UnscaledValue(if ((d_day_name#3 = Saturday)) ss_sales_price#6 else null))#34]
Results [9]: [s_store_name#10, s_store_id#9, MakeDecimal(sum(UnscaledValue(if ((d_day_name#3 = Sunday)) ss_sales_price#6 else null))#28,17,2) AS sun_sales#35, MakeDecimal(sum(UnscaledValue(if ((d_day_name#3 = Monday)) ss_sales_price#6 else null))#29,17,2) AS mon_sales#36, MakeDecimal(sum(UnscaledValue(if ((d_day_name#3 = Tuesday)) ss_sales_price#6 else null))#30,17,2) AS tue_sales#37, MakeDecimal(sum(UnscaledValue(if ((d_day_name#3 = Wednesday)) ss_sales_price#6 else null))#31,17,2) AS wed_sales#38, MakeDecimal(sum(UnscaledValue(if ((d_day_name#3 = Thursday)) ss_sales_price#6 else null))#32,17,2) AS thu_sales#39, MakeDecimal(sum(UnscaledValue(if ((d_day_name#3 = Friday)) ss_sales_price#6 else null))#33,17,2) AS fri_sales#40, MakeDecimal(sum(UnscaledValue(if ((d_day_name#3 = Saturday)) ss_sales_price#6 else null))#34,17,2) AS sat_sales#41]

(21) TakeOrderedAndProject
Input [9]: [s_store_name#10, s_store_id#9, sun_sales#35, mon_sales#36, tue_sales#37, wed_sales#38, thu_sales#39, fri_sales#40, sat_sales#41]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
TakeOrderedAndProject [fri_sales,mon_sales,s_store_id,s_store_name,sat_sales,sun_sales,thu_sales,tue_sales,wed_sales]
WholeStageCodegen (4)
HashAggregate [s_store_id,s_store_name,sum,sum,sum,sum,sum,sum,sum] [fri_sales,mon_sales,sat_sales,sum,sum,sum,sum,sum,sum,sum,sum(UnscaledValue(CASE WHEN (d_day_name = Friday) THEN ss_sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Monday) THEN ss_sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Saturday) THEN ss_sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Sunday) THEN ss_sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Thursday) THEN ss_sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Tuesday) THEN ss_sales_price ELSE null END)),sum(UnscaledValue(CASE WHEN (d_day_name = Wednesday) THEN ss_sales_price ELSE null END)),sun_sales,thu_sales,tue_sales,wed_sales]
HashAggregate [s_store_id,s_store_name,sum,sum,sum,sum,sum,sum,sum] [fri_sales,mon_sales,sat_sales,sum,sum,sum,sum,sum,sum,sum,sum(UnscaledValue(if ((d_day_name = Friday)) ss_sales_price else null)),sum(UnscaledValue(if ((d_day_name = Monday)) ss_sales_price else null)),sum(UnscaledValue(if ((d_day_name = Saturday)) ss_sales_price else null)),sum(UnscaledValue(if ((d_day_name = Sunday)) ss_sales_price else null)),sum(UnscaledValue(if ((d_day_name = Thursday)) ss_sales_price else null)),sum(UnscaledValue(if ((d_day_name = Tuesday)) ss_sales_price else null)),sum(UnscaledValue(if ((d_day_name = Wednesday)) ss_sales_price else null)),sun_sales,thu_sales,tue_sales,wed_sales]
InputAdapter
Exchange [s_store_id,s_store_name] #1
WholeStageCodegen (3)
Expand Down
Loading