Andres Freund <andres@anarazel.de> writes:
> On 2016-03-10 13:48:31 -0500, Tom Lane wrote:
>> That was intentional: in my opinion, nothing outside createplan.c ought
>> to be making Plan nodes anymore. The expectation is that you make a
>> Path describing what you want. Can you explain why, in the new planner
>> structure, it would be sane to have external callers of these functions?
> In Citus' case a full PlannedStmt is generated on the master node, to
> combine the data generated on worker nodes (where the bog standard
> postgres planner is used). It's not the only way to do things, but I
> don't see why the approach would be entirely invalidated by the
> pathification work.
I don't deny that you *could* continue to do things that way, but
I dispute that it's a good idea. Why can't you generate a Path tree
and then ask create_plan() to convert it? Otherwise you're buying
into knowing a whole lot about the internals of createplan.c, and having
to track changes therein.
regards, tom lane