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]

Reply via email to