Github user cloud-fan commented on a diff in the pull request:
https://github.com/apache/spark/pull/19901#discussion_r155131468
--- Diff:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/conditionalExpressions.scala
---
@@ -180,13 +180,13 @@ case class CaseWhen(
}
override def doGenCode(ctx: CodegenContext, ev: ExprCode): ExprCode = {
- // This variable represents whether the first successful condition is
met or not.
- // It is initialized to `false` and it is set to `true` when the first
condition which
- // evaluates to `true` is met and therefore is not needed to go on
anymore on the computation
+ // This variable represents whether the condition is met with
true/false or not met.
+ // It is initialized to -1 and it is set to 0 or 1 when the condition
which evaluates to
--- End diff --
```
This variable represents whether the condition is met and if the result is
null.
It is initialized to `-1`, which means the condition is not met yet and the
result is unknown.
When the first condition is met, it is set to `1` if result is null, or `0`
if result is not null.
We won't go on anymore on the computation if it's set to `1` or `0`.
```
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]