On Sat, Apr 11, 2020 at 5:32 PM Andres Freund <andres@anarazel.de> wrote:
>
> Hi,
>
> On 2020-04-11 15:53:11 -0400, James Coleman wrote:
> > On Sat, Apr 11, 2020 at 2:01 PM Andres Freund <andres@anarazel.de> wrote:
> > > > - If not, is there a way in that framework to know if the array expr
> > > > has stayed the same through multiple evaluations of the expression
> > > > tree (i.e., so you could expand and sort it just once)?
> > >
> > > No.
> >
> > Ok. Seems like it'd be likely to be interesting (maybe in other places
> > too?) to know if:
> > - Something is actually a param that can change, and,
> > - When (perhaps by some kind of flag or counter) it has changed.
>
> We do have the param logic inside the executor, which does signal which
> params have changed. It's just independent of expression evaluation.
>
> I'm not convinced (or well, even doubtful) this is something we want to
> have at the expression evaluation level.
Perhaps I'll discover the reason as I internalize the code, but could
you expound a bit? Is that because you believe there's a better way to
optimize subexpressions that don't change? Or that it's likely to add
a lot of cost to non-optimized cases?
James