I wrote: > I just thought of a possible compromise though: maybe we could invent an > intermediate constraint_exclusion setting that makes the checks only for > inheritance-child tables. This would avoid the overhead for simple > queries and still get the benefit for most of the cases where it's > actually useful. I'm not sure how hard this'd be to shoehorn into the > planner, ...
Actually, it looks like it'd be totally trivial to implement: just check rel->reloptkind == RELOPT_OTHER_MEMBER_REL to detect whether we're looking at an inheritance child. (Actually this would also succeed for a UNION ALL member, but that's good because that's the other case where constraint exclusion is more likely to be useful.) So, barring objections, I'll go make this happen. What do we want to call the intermediate constraint_exclusion value? The first thing that comes to mind is constraint_exclusion = 'child', but perhaps someone has a better idea. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers