Skip to content

Commit 5de541b

Browse files
committed
Use nullSafeCodeGen.
1 parent a8b1842 commit 5de541b

File tree

1 file changed

+12
-17
lines changed
  • sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions

1 file changed

+12
-17
lines changed

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/predicates.scala

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -375,23 +375,18 @@ case class InSet(child: Expression, hset: Set[Any]) extends UnaryExpression with
375375
}
376376

377377
override def doGenCode(ctx: CodegenContext, ev: ExprCode): ExprCode = {
378-
val setTerm = ctx.addReferenceObj("set", set)
379-
val childGen = child.genCode(ctx)
380-
val setIsNull = if (hasNull) {
381-
s"${ev.isNull} = !${ev.value};"
382-
} else {
383-
""
384-
}
385-
ev.copy(code =
386-
code"""
387-
|${childGen.code}
388-
|${CodeGenerator.JAVA_BOOLEAN} ${ev.isNull} = ${childGen.isNull};
389-
|${CodeGenerator.JAVA_BOOLEAN} ${ev.value} = false;
390-
|if (!${ev.isNull}) {
391-
| ${ev.value} = $setTerm.contains(${childGen.value});
392-
| $setIsNull
393-
|}
394-
""".stripMargin)
378+
nullSafeCodeGen(ctx, ev, c => {
379+
val setTerm = ctx.addReferenceObj("set", set)
380+
val setIsNull = if (hasNull) {
381+
s"${ev.isNull} = !${ev.value};"
382+
} else {
383+
""
384+
}
385+
s"""
386+
|${ev.value} = $setTerm.contains($c);
387+
|$setIsNull
388+
""".stripMargin
389+
})
395390
}
396391

397392
override def sql: String = {

0 commit comments

Comments
 (0)