Jim Nasby <Jim@Nasby.net> writes:
> (looking at original case)... the original bug wasn't actually
> recursive.
No, there are two different cases being dealt with here. If the first
call of an expression results in an error, and then we come back and try
to re-use the expression state tree, we can have trouble because the
state tree contains partially-updated internal state for the called
function. This doesn't require any recursion but it leads to pretty
much the same problems as the recursive case.
regards, tom lane