override protected def nullSafeCodeGen()

in src/main/scala/org/apache/spark/sql/datasketches/kll/expressions/KllDoublesSketchExpressions.scala [121:133]


  override protected def nullSafeCodeGen(ctx: CodegenContext, ev: ExprCode, f: String => String): ExprCode = {
    val sketchEval = child.genCode(ctx)
    val sketch = ctx.freshName("sketch")

    val code =
      s"""
         |${sketchEval.code}
         |final org.apache.datasketches.kll.KllDoublesSketch $sketch = org.apache.spark.sql.datasketches.kll.types.KllDoublesSketchType.wrap(${sketchEval.value});
         |final double ${ev.value} = $sketch.getMaxItem();
         |final boolean ${ev.isNull} = ${sketchEval.isNull};
       """.stripMargin
    ev.copy(code = CodeBlock(Seq(code), Seq.empty))
  }