|
|
@ -1200,12 +1200,12 @@ ExecInitExprRec(Expr *node, ExprState *state, |
|
|
|
* field's values[]/nulls[] entries as both the caseval |
|
|
|
* field's values[]/nulls[] entries as both the caseval |
|
|
|
* source and the result address for this subexpression. |
|
|
|
* source and the result address for this subexpression. |
|
|
|
* That's okay only because (1) both FieldStore and |
|
|
|
* That's okay only because (1) both FieldStore and |
|
|
|
* ArrayRef evaluate their arg or refexpr inputs first, |
|
|
|
* SubscriptingRef evaluate their arg or refexpr inputs |
|
|
|
* and (2) any such CaseTestExpr is directly the arg or |
|
|
|
* first, and (2) any such CaseTestExpr is directly the |
|
|
|
* refexpr input. So any read of the caseval will occur |
|
|
|
* arg or refexpr input. So any read of the caseval will |
|
|
|
* before there's a chance to overwrite it. Also, if |
|
|
|
* occur before there's a chance to overwrite it. Also, |
|
|
|
* multiple entries in the newvals/fieldnums lists target |
|
|
|
* if multiple entries in the newvals/fieldnums lists |
|
|
|
* the same field, they'll effectively be applied |
|
|
|
* target the same field, they'll effectively be applied |
|
|
|
* left-to-right which is what we want. |
|
|
|
* left-to-right which is what we want. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
save_innermost_caseval = state->innermost_caseval; |
|
|
|
save_innermost_caseval = state->innermost_caseval; |
|
|
|