@@ -49,45 +49,46 @@ abstract class MaxMinBy extends DeclarativeAggregate {
4949 TypeUtils .checkForOrderingExpr(orderingExpr.dataType, s " function $funcName" )
5050
5151 // The attributes used to keep extremum (max or min) and associated aggregated values.
52- private lazy val maxOrdering = AttributeReference (" maxOrdering" , orderingExpr.dataType)()
53- private lazy val valueWithMaxOrdering =
54- AttributeReference (" valueWithMaxOrdering" , valueExpr.dataType)()
52+ private lazy val extremumOrdering =
53+ AttributeReference (" extremumOrdering" , orderingExpr.dataType)()
54+ private lazy val valueWithExtremumOrdering =
55+ AttributeReference (" valueWithExtremumOrdering" , valueExpr.dataType)()
5556
5657 override lazy val aggBufferAttributes : Seq [AttributeReference ] =
57- valueWithMaxOrdering :: maxOrdering :: Nil
58+ valueWithExtremumOrdering :: extremumOrdering :: Nil
5859
5960 private lazy val nullValue = Literal .create(null , valueExpr.dataType)
6061 private lazy val nullOrdering = Literal .create(null , orderingExpr.dataType)
6162
6263 override lazy val initialValues : Seq [Literal ] = Seq (
63- /* valueWithMaxOrdering = */ nullValue,
64- /* maxOrdering = */ nullOrdering
64+ /* valueWithExtremumOrdering = */ nullValue,
65+ /* extremumOrdering = */ nullOrdering
6566 )
6667
6768 override lazy val updateExpressions : Seq [Expression ] = Seq (
68- /* valueWithMaxOrdering = */
69+ /* valueWithExtremumOrdering = */
6970 CaseWhen (
70- (maxOrdering .isNull && orderingExpr.isNull, nullValue) ::
71- (maxOrdering .isNull, valueExpr) ::
72- (orderingExpr.isNull, valueWithMaxOrdering ) :: Nil ,
73- If (predicate(maxOrdering , orderingExpr), valueWithMaxOrdering , valueExpr)
71+ (extremumOrdering .isNull && orderingExpr.isNull, nullValue) ::
72+ (extremumOrdering .isNull, valueExpr) ::
73+ (orderingExpr.isNull, valueWithExtremumOrdering ) :: Nil ,
74+ If (predicate(extremumOrdering , orderingExpr), valueWithExtremumOrdering , valueExpr)
7475 ),
75- /* maxOrdering = */ orderingUpdater(maxOrdering , orderingExpr)
76+ /* extremumOrdering = */ orderingUpdater(extremumOrdering , orderingExpr)
7677 )
7778
7879 override lazy val mergeExpressions : Seq [Expression ] = Seq (
79- /* valueWithMaxOrdering = */
80+ /* valueWithExtremumOrdering = */
8081 CaseWhen (
81- (maxOrdering .left.isNull && maxOrdering .right.isNull, nullValue) ::
82- (maxOrdering .left.isNull, valueWithMaxOrdering .right) ::
83- (maxOrdering .right.isNull, valueWithMaxOrdering .left) :: Nil ,
84- If (predicate(maxOrdering .left, maxOrdering .right),
85- valueWithMaxOrdering .left, valueWithMaxOrdering .right)
82+ (extremumOrdering .left.isNull && extremumOrdering .right.isNull, nullValue) ::
83+ (extremumOrdering .left.isNull, valueWithExtremumOrdering .right) ::
84+ (extremumOrdering .right.isNull, valueWithExtremumOrdering .left) :: Nil ,
85+ If (predicate(extremumOrdering .left, extremumOrdering .right),
86+ valueWithExtremumOrdering .left, valueWithExtremumOrdering .right)
8687 ),
87- /* maxOrdering = */ orderingUpdater(maxOrdering .left, maxOrdering .right)
88+ /* extremumOrdering = */ orderingUpdater(extremumOrdering .left, extremumOrdering .right)
8889 )
8990
90- override lazy val evaluateExpression : AttributeReference = valueWithMaxOrdering
91+ override lazy val evaluateExpression : AttributeReference = valueWithExtremumOrdering
9192}
9293
9394@ ExpressionDescription (
0 commit comments