• Tom Lane's avatar
    Fix dependencies generated during ALTER TABLE ADD CONSTRAINT USING INDEX. · b5380035
    Tom Lane authored
    This command generated new pg_depend entries linking the index to the
    constraint and the constraint to the table, which match the entries made
    when a unique or primary key constraint is built de novo.  However, it did
    not bother to get rid of the entries linking the index directly to the
    table.  We had considered the issue when the ADD CONSTRAINT USING INDEX
    patch was written, and concluded that we didn't need to get rid of the
    extra entries.  But this is wrong: ALTER COLUMN TYPE wasn't expecting such
    redundant dependencies to exist, as reported by Hubert Depesz Lubaczewski.
    On reflection it seems rather likely to break other things as well, since
    there are many bits of code that crawl pg_depend for one purpose or
    another, and most of them are pretty naive about what relationships they're
    expecting to find.  Fortunately it's not that hard to get rid of the extra
    dependency entries, so let's do that.
    
    Back-patch to 9.1, where ALTER TABLE ADD CONSTRAINT USING INDEX was added.
    b5380035
index.h 2.78 KB