• Tom Lane's avatar
    Avoid creating duplicate cached plans for inherited FK constraints. · c3ffe348
    Tom Lane authored
    When a foreign key constraint is applied to a partitioned table, each
    leaf partition inherits a similar FK constraint.  We were processing all
    of those constraints independently, meaning that in large partitioning
    trees we'd build up large collections of cached FK-checking query plans.
    However, in all cases but one, the generated queries are actually
    identical for all members of the inheritance tree (because, in most
    cases, the query only mentions the topmost table of the other side of
    the FK relationship).  So we can share a single cached plan among all
    the partitions, saving memory, not to mention time to build and maintain
    the cached plans.
    
    Keisuke Kuroda and Amit Langote
    
    Discussion: https://postgr.es/m/cab4b85d-9292-967d-adf2-be0d803c3e23@nttcom.co.jp_1
    c3ffe348
foreign_key.out 108 KB