Skip to content

Commit 178ab5d

Browse files
authored
chore: Add type parameter to CometAggregateExpressionSerde (#2249)
1 parent da51528 commit 178ab5d

File tree

2 files changed

+57
-84
lines changed

2 files changed

+57
-84
lines changed

spark/src/main/scala/org/apache/comet/serde/QueryPlanSerde.scala

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ object QueryPlanSerde extends Logging with CometExprShim {
174174
/**
175175
* Mapping of Spark aggregate expression class to Comet expression handler.
176176
*/
177-
private val aggrSerdeMap: Map[Class[_], CometAggregateExpressionSerde] = Map(
177+
private val aggrSerdeMap: Map[Class[_], CometAggregateExpressionSerde[_]] = Map(
178178
classOf[Sum] -> CometSum,
179179
classOf[Average] -> CometAverage,
180180
classOf[Count] -> CometCount,
@@ -498,7 +498,9 @@ object QueryPlanSerde extends Logging with CometExprShim {
498498
val cometExpr = aggrSerdeMap.get(fn.getClass)
499499
cometExpr match {
500500
case Some(handler) =>
501-
handler.convert(aggExpr, fn, inputs, binding, conf)
501+
handler
502+
.asInstanceOf[CometAggregateExpressionSerde[AggregateFunction]]
503+
.convert(aggExpr, fn, inputs, binding, conf)
502504
case _ =>
503505
withInfo(
504506
aggExpr,
@@ -2456,7 +2458,7 @@ trait CometExpressionSerde[T <: Expression] {
24562458
/**
24572459
* Trait for providing serialization logic for aggregate expressions.
24582460
*/
2459-
trait CometAggregateExpressionSerde {
2461+
trait CometAggregateExpressionSerde[T <: AggregateFunction] {
24602462

24612463
/**
24622464
* Convert a Spark expression into a protocol buffer representation that can be passed into
@@ -2479,7 +2481,7 @@ trait CometAggregateExpressionSerde {
24792481
*/
24802482
def convert(
24812483
aggExpr: AggregateExpression,
2482-
expr: Expression,
2484+
expr: T,
24832485
inputs: Seq[Attribute],
24842486
binding: Boolean,
24852487
conf: SQLConf): Option[ExprOuterClass.AggExpr]

0 commit comments

Comments
 (0)