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]

Reply via email to