override protected def nullSafeCodeGen()

in src/main/scala/org/apache/spark/sql/datasketches/theta/expressions/ThetaExpressions.scala [61:75]


  override protected def nullSafeCodeGen(ctx: CodegenContext, ev: ExprCode, f: String => String): ExprCode = {
    val childEval = child.genCode(ctx)
    val sketch = ctx.freshName("sketch")
    val code = s"""
      ${childEval.code}
      final boolean ${ev.isNull} = ${childEval.isNull};
      double ${ev.value} = 0.0;
      if (!${ev.isNull}) {
        final org.apache.datasketches.theta.Sketch $$sketch =
          org.apache.spark.sql.datasketches.theta.types.ThetaSketchWrapper.wrapAsReadOnlySketch(${childEval.value});
        ${ev.value} = $$sketch.getEstimate();
      }
    """
    ev.copy(code = CodeBlock(Seq(code), Seq.empty), isNull = childEval.isNull)
  }