> On Thursday, March 12, 2026, Damian Lukowski <pgsql-bugs(at)arcsin(dot)de> wrote:
>
>> We have never promised to avoid constant-folding within the
>> subexpressions of a CASE [1]. So it was pure accident that
>> this example worked before, and I don't think it's a bug that
>> it doesn't work now.
>
> For a better understanding, which one is the constant that is
> being folded? I have found several articles explaining constant
> folding but their examples are obvious, e.g. `7 + 1` can be folded
> to `8` [1, 2], or `1 = 1` can be folded to `TRUE` [3].
>
> However, I have not found any articles that resemble this case.
> Aren't `arg` and `$1` variables? Where is the boundary between
> constants and non-constants?
>
> The system is capable of postponing planning until (or performing
> replanning) after parameter values are known, in which the values they
> are given are constants.
The `data` table could have millions of rows. Is the planner invoked for
every actual call to `func`, or only once before any pages are read?