Hi, I was doing some testing for my default partitioning work, and I realized that there seem to be a some optimization possible (and I think we should really have this optimization) for logic around handling the "key IS NOT NULL" constraints followed by predicate_implied_by() call.
1. Consider, if predicate_implied_by() returns false, in that case skip_validate is left set to false, and we really do not want to do lots of stuff followed this decision just to prove that the scan cannot be avoided(which is already decided in this case) if there is no NOT NULL constraint on the partition key column. 2. Further, if we have already decided not to skip the scan, we should really have a break in following if block: if (!partition_accepts_null && (partattno == 0 || !bms_is_member(partattno, not_null_attrs))) skip_validate = false; I have made above changes in the attached patch. PFA, and let me know if I am missing something here. Regards, Jeevan Ladhe
fix_atexecattahpartition.patch
Description: Binary data
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers