On Sat, Apr 11, 2020 at 5:32 PM Andres Freund <and...@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 <and...@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