Github user cloud-fan commented on a diff in the pull request:
https://github.com/apache/spark/pull/19878#discussion_r154682872
--- Diff:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/hash.scala
---
@@ -270,17 +270,36 @@ abstract class HashExpression[E] extends Expression {
override def doGenCode(ctx: CodegenContext, ev: ExprCode): ExprCode = {
ev.isNull = "false"
- val childrenHash = ctx.splitExpressions(children.map { child =>
+
+ val childrenHash = children.map { child =>
val childGen = child.genCode(ctx)
childGen.code + ctx.nullSafeExec(child.nullable, childGen.isNull) {
computeHash(childGen.value, child.dataType, ev.value, ctx)
}
- })
+ }
+
+ val hashResultType = ctx.javaType(dataType)
+ val codes = if (ctx.INPUT_ROW == null || ctx.currentVars != null) {
--- End diff --
This pattern appears many times in the code base, we may need to create a
`ctx.splitExpressionsWithCurrentInput` for it later.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]