• Tom Lane's avatar
    Fix pg_extension_config_dump() to handle update cases more sanely. · 343c2a86
    Tom Lane authored
    If pg_extension_config_dump() is executed again for a table already listed
    in the extension's extconfig, the code was blindly making a new array entry.
    This does not seem useful.  Fix it to replace the existing array entry
    instead, so that it's possible for extension update scripts to alter the
    filter conditions for configuration tables.
    
    In addition, teach ALTER EXTENSION DROP TABLE to check for an extconfig
    entry for the target table, and remove it if present.  This is not a 100%
    solution because it's allowed for an extension update script to just
    summarily DROP a member table, and that code path doesn't go through
    ExecAlterExtensionContentsStmt.  We could probably make that case clean
    things up if we had to, but it would involve sticking a very ugly wart
    somewhere in the guts of dependency.c.  Since on the whole it seems quite
    unlikely that extension updates would want to remove pre-existing
    configuration tables, making the case possible with an explicit command
    seems sufficient.
    
    Per bug #7756 from Regina Obe.  Back-patch to 9.1 where extensions were
    introduced.
    343c2a86
extend.sgml 47.3 KB