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)
}