On Sun, 6 Dec 2020 at 03:52, Andy Fan <zhihui.fan1...@gmail.com> wrote: > > On Fri, Dec 4, 2020 at 10:41 PM David Rowley <dgrowle...@gmail.com> wrote: >> >> I also >> noticed that the code I'd written to build the cache lookup expression >> included a step to deform the outer tuple. This was unnecessary and >> slowed down the expression evaluation. >> > > I thought it would be something like my 3rd suggestion on [1], however after > I read the code, it looked like no. Could you explain what changes it is? > I probably missed something.
Basically, an extra argument in ExecBuildParamSetEqual() which allows the TupleTableSlotOps for the left and right side to be set individually. Previously I was passing a single TupleTableSlotOps of TTSOpsMinimalTuple. The probeslot is a TTSOpsVirtual tuple, so passing TTSOpsMinimalTuple causes the function to add a needless EEOP_OUTER_FETCHSOME step to the expression. David