• Alvaro Herrera's avatar
    Fix creation of duplicate foreign keys on partitions · 0325d7a5
    Alvaro Herrera authored
    When creating a foreign key in a partitioned table, if some partitions
    already have equivalent constraints, we wastefully create duplicates of
    the constraints instead of attaching to the existing ones.  That's
    inconsistent with the de-duplication that is applied when a table is
    attached as a partition.  To fix, reuse the FK-cloning code instead of
    having a separate code path.
    
    Backpatch to Postgres 11.  This is a subtle behavior change, but surely
    a welcome one since there's no use in having duplicate foreign keys.
    
    Discovered by Álvaro Herrera while thinking about a different problem
    reported by Jesper Pedersen (bug #15587).
    
    Author: Álvaro Herrera
    Discussion: https://postgr.es/m/201901151935.zfadrzvyof4k@alvherre.pgsql
    0325d7a5
tablecmds.c 470 KB