On 2017/07/04 17:25, Etsuro Fujita wrote: > On 2017/07/03 18:54, Amit Langote wrote: >> On 2017/07/02 20:10, Robert Haas wrote: >>> That >>> seems pretty easy to do - just have expand_inherited_rtentry() notice >>> that it's got a partitioned table and call >>> RelationGetPartitionDispatchInfo() instead of find_all_inheritors() to >>> produce the list of OIDs. > Seems like a good idea. > >> Interesting idea. >> >> If we are going to do this, I think we may need to modify >> RelationGetPartitionDispatchInfo() a bit or invent an alternative that >> does not do as much work. Currently, it assumes that it's only ever >> called by ExecSetupPartitionTupleRouting() and hence also generates >> PartitionDispatchInfo objects for partitioned child tables. We don't need >> that if called from within the planner. >> >> Actually, it seems that RelationGetPartitionDispatchInfo() is too coupled >> with its usage within the executor, because there is this comment: >> >> /* >> * We keep the partitioned ones open until we're done using the >> * information being collected here (for example, see >> * ExecEndModifyTable). >> */ > > Yeah, we need some refactoring work. Is anyone working on that?
I would like to take a shot at that if someone else hasn't already cooked up a patch. Working on making RelationGetPartitionDispatchInfo() a routine callable from both within the planner and the executor should be a worthwhile effort. Thanks, Amit -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers