From fa7e1b1dccb007840cbd536707d6d7ea098ffb9a Mon Sep 17 00:00:00 2001 From: Takuya UESHIN Date: Thu, 9 Aug 2018 01:12:42 +0900 Subject: [PATCH] Fix comparison of `ev.code`. --- .../spark/sql/catalyst/expressions/codegen/javaCode.scala | 4 +++- .../apache/spark/sql/execution/WholeStageCodegenExec.scala | 2 +- .../spark/sql/execution/joins/BroadcastHashJoinExec.scala | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/javaCode.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/javaCode.scala index 2f8c853e836ba..558cbfa560053 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/javaCode.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/javaCode.scala @@ -130,7 +130,9 @@ trait Block extends TreeNode[Block] with JavaCode { def length: Int = toString.length - def nonEmpty: Boolean = toString.nonEmpty + def isEmpty: Boolean = toString.isEmpty + + def nonEmpty: Boolean = !isEmpty // The leading prefix that should be stripped from each line. // By default we strip blanks or control characters followed by '|' from the line. diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/WholeStageCodegenExec.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/WholeStageCodegenExec.scala index 372dc3db36ce6..80f886ea1adc8 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/execution/WholeStageCodegenExec.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/WholeStageCodegenExec.scala @@ -275,7 +275,7 @@ trait CodegenSupport extends SparkPlan { required: AttributeSet): String = { val evaluateVars = new StringBuilder variables.zipWithIndex.foreach { case (ev, i) => - if (ev.code != "" && required.contains(attributes(i))) { + if (ev.code.nonEmpty && required.contains(attributes(i))) { evaluateVars.append(ev.code.toString + "\n") ev.code = EmptyBlock } diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/joins/BroadcastHashJoinExec.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/joins/BroadcastHashJoinExec.scala index 0da0e8610c392..a6f3ea47c8492 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/execution/joins/BroadcastHashJoinExec.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/joins/BroadcastHashJoinExec.scala @@ -320,7 +320,7 @@ case class BroadcastHashJoinExec( |if (!$conditionPassed) { | $matched = null; | // reset the variables those are already evaluated. - | ${buildVars.filter(_.code == "").map(v => s"${v.isNull} = true;").mkString("\n")} + | ${buildVars.filter(_.code.isEmpty).map(v => s"${v.isNull} = true;").mkString("\n")} |} |$numOutput.add(1); |${consume(ctx, resultVars)}