Skip to content

Commit 4f9dcaa

Browse files
committed
refactor: remove unused CometAesDecrypt direct path
AesDecrypt extends RuntimeReplaceable in Spark, so it is always rewritten to StaticInvoke before Comet's serde runs. Remove the direct CometAesDecrypt handler and CometAesDecryptHelper, keeping only the CometAesDecryptStaticInvoke path.
1 parent 3b599e1 commit 4f9dcaa

2 files changed

Lines changed: 9 additions & 23 deletions

File tree

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,8 @@ object QueryPlanSerde extends Logging with CometExprShim {
222222

223223
private val miscExpressions: Map[Class[_ <: Expression], CometExpressionSerde[_]] = Map(
224224
// TODO PromotePrecision
225-
classOf[AesDecrypt] -> CometAesDecrypt,
225+
// AesDecrypt extends RuntimeReplaceable and is rewritten to StaticInvoke before Comet's
226+
// serde runs, so it is handled via CometStaticInvoke / CometAesDecryptStaticInvoke.
226227
classOf[Alias] -> CometAlias,
227228
classOf[AttributeReference] -> CometAttributeReference,
228229
classOf[BloomFilterMightContain] -> CometBloomFilterMightContain,

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

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,18 @@
1919

2020
package org.apache.comet.serde
2121

22-
import org.apache.spark.sql.catalyst.expressions.{AesDecrypt, Attribute, Expression}
22+
import org.apache.spark.sql.catalyst.expressions.Attribute
2323
import org.apache.spark.sql.catalyst.expressions.objects.StaticInvoke
2424

2525
import org.apache.comet.serde.ExprOuterClass.Expr
2626
import org.apache.comet.serde.QueryPlanSerde.{exprToProtoInternal, optExprWithInfo, scalarFunctionExprToProtoWithReturnType}
2727

28-
private object CometAesDecryptHelper {
29-
def convertToAesDecryptExpr[T <: Expression](
30-
expr: T,
28+
// AesDecrypt extends RuntimeReplaceable in Spark, so by the time Comet's serde runs it has
29+
// already been replaced with a StaticInvoke. This handler is registered in CometStaticInvoke's
30+
// staticInvokeExpressions map under the ("aesDecrypt", ExpressionImplUtils) key.
31+
object CometAesDecryptStaticInvoke extends CometExpressionSerde[StaticInvoke] {
32+
override def convert(
33+
expr: StaticInvoke,
3134
inputs: Seq[Attribute],
3235
binding: Boolean): Option[Expr] = {
3336
val childExpr = expr.children.map(exprToProtoInternal(_, inputs, binding))
@@ -39,21 +42,3 @@ private object CometAesDecryptHelper {
3942
optExprWithInfo(optExpr, expr, expr.children: _*)
4043
}
4144
}
42-
43-
object CometAesDecrypt extends CometExpressionSerde[AesDecrypt] {
44-
override def convert(
45-
expr: AesDecrypt,
46-
inputs: Seq[Attribute],
47-
binding: Boolean): Option[Expr] = {
48-
CometAesDecryptHelper.convertToAesDecryptExpr(expr, inputs, binding)
49-
}
50-
}
51-
52-
object CometAesDecryptStaticInvoke extends CometExpressionSerde[StaticInvoke] {
53-
override def convert(
54-
expr: StaticInvoke,
55-
inputs: Seq[Attribute],
56-
binding: Boolean): Option[Expr] = {
57-
CometAesDecryptHelper.convertToAesDecryptExpr(expr, inputs, binding)
58-
}
59-
}

0 commit comments

Comments
 (0)