Github user mgaido91 commented on a diff in the pull request:
https://github.com/apache/spark/pull/19827#discussion_r153253813
--- Diff:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/hash.scala
---
@@ -608,12 +611,17 @@ case class HiveHash(children: Seq[Expression])
extends HashExpression[Int] {
override def doGenCode(ctx: CodegenContext, ev: ExprCode): ExprCode = {
ev.isNull = "false"
val childHash = ctx.freshName("childHash")
- val childrenHash = ctx.splitExpressions(ctx.INPUT_ROW, children.map {
child =>
+ val childrenHash = ctx.splitExpressions(children.map { child =>
val childGen = child.genCode(ctx)
- childGen.code + ctx.nullSafeExec(child.nullable, childGen.isNull) {
+ val codeToComputeHash = ctx.nullSafeExec(child.nullable,
childGen.isNull) {
computeHash(childGen.value, child.dataType, childHash, ctx)
- } + s"${ev.value} = (31 * ${ev.value}) + $childHash;" +
- s"\n$childHash = 0;"
+ }
+ s"""
+ |${childGen.code}
+ |$codeToComputeHash
+ |${ev.value} = (31 * ${ev.value}) + $childHash;
+ |$childHash = 0;
+ """.stripMargin
--- End diff --
ditto
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]