Skip to content
Snippets Groups Projects
  • Tom Lane's avatar
    d691cb91
    Fix erroneous handling of shared dependencies (ie dependencies on roles) · d691cb91
    Tom Lane authored
    in CREATE OR REPLACE FUNCTION.  The original code would update pg_shdepend
    as if a new function was being created, even if it wasn't, with two bad
    consequences: pg_shdepend might record the wrong owner for the function,
    and any dependencies for roles mentioned in the function's ACL would be lost.
    The fix is very easy: just don't touch pg_shdepend at all when doing a
    function replacement.
    
    Also update the CREATE FUNCTION reference page, which never explained
    exactly what changes and doesn't change in a function replacement.
    In passing, fix the CREATE VIEW reference page similarly; there's no
    code bug there, but the docs didn't say what happens.
    d691cb91
    History
    Fix erroneous handling of shared dependencies (ie dependencies on roles)
    Tom Lane authored
    in CREATE OR REPLACE FUNCTION.  The original code would update pg_shdepend
    as if a new function was being created, even if it wasn't, with two bad
    consequences: pg_shdepend might record the wrong owner for the function,
    and any dependencies for roles mentioned in the function's ACL would be lost.
    The fix is very easy: just don't touch pg_shdepend at all when doing a
    function replacement.
    
    Also update the CREATE FUNCTION reference page, which never explained
    exactly what changes and doesn't change in a function replacement.
    In passing, fix the CREATE VIEW reference page similarly; there's no
    code bug there, but the docs didn't say what happens.