On Wed, Mar 16, 2016 at 2:47 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: > Robert Haas <robertmh...@gmail.com> writes: >> On Mon, Mar 14, 2016 at 9:21 PM, Kouhei Kaigai <kai...@ak.jp.nec.com> wrote: >>> So, even though we don't need to define multiple hook declarations, >>> I think the hook invocation is needed just after create_xxxx_paths() >>> for each. It will need to inform extension the context of hook >>> invocation, the argument list will take UpperRelationKind. > >> That actually seems like a pretty good point. Otherwise you can't >> push anything from the upper rels down unless you are prepared to >> handle all of it. > > I'm not exactly convinced of the use-case for that. What external > thing is likely to handle window functions but not aggregation, > for example?
I'm not going to say that you're entirely wrong, but I think that attitude is a bit short-sighted. If somebody comes up with a new, awesome strategy for evaluating window functions, they're not going to be able to make it work in all cases without cut-and-pasting the logic for generating grouping paths. Now maybe nobody will ever come up with such a strategy, but if they do, this will get in the way. Also, KaiGai offered a different example of how this might get in the way. I'm not prepared to do battle over this right now, but I think that there are an awful lot of cases where extension authors haven't been able to quite do what they want to do without core changes because they couldn't get control in quite the right place; or they could do it but they had to cut-and-paste a lot of code. I don't think it requires all that much imagination to see how that could also happen here. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (email@example.com) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers