On 2018-Nov-16, Alvaro Herrera wrote:
> One thing I don't quite like is the inconsistency in handling memory
> context switches in the various function allocating stuff. It seems
> rather haphazard. I'd rather have a memcxt member in
> PartitionTupleRouting, which is set when the struct is created, and then
> have all the other functions allocating stuff use that one.
So while researching this I finally realized that there was a "lexical
disconnect" between setting a ResultRelInfo's ri_PartitionInfo
struct/pointer and adding it to the PartitionTupleRoute arrays.
However, if you think about it, these things are one and the same, so we
don't need to do them separately; just merge the new function I wrote
into the existing ExecInitRoutingInfo(). Patch attached.
(This version also rebases across Andres' recent conflicting
TupleTableSlot changes.)
I'll now see about the commit message and push shortly.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services