Thread

  1. General Bug Report: pg_dump sets quotes wrong when dumping groups-acls.

    Unprivileged user <nobody> — 1999-05-03T11:18:13Z

    ============================================================================
                            POSTGRESQL BUG REPORT TEMPLATE
    ============================================================================
    
    
    Your name               : Bernhard Weisshuhn
    Your email address      : bkw@weisshuhn.de
    
    Category                : runtime: front-end
    Severity                : serious
    
    Summary: pg_dump sets quotes wrong when dumping groups-acls.
    
    System Configuration
    --------------------
      Operating System   : Linux 2.0.36 ELF
    
      PostgreSQL version : 6.4.2
    
      Compiler used      : gcc 2.7.2.3
    
    Hardware:
    ---------
    Redhat 5.2, custom-built postgresql (no RPM)
    
    Versions of other tools:
    ------------------------
    n/a
    
    --------------------------------------------------------------------------
    
    Problem Description:
    --------------------
    When executing
    % pg_dump -z somedatabase
    and a database contains acl-permissions like
    => "GRANT ALL on sometable to group somegroup"
    pg_dump incorrectly generates the line:
      GRANT ALL on "sometable" to "group somegroup";
    instead of
      GRANT ALL on "sometable" to group "bosses";
    
    The incorrect output generates errors when restoring
    databases from the dump and fails to set the correct
    permissions.
    
    --------------------------------------------------------------------------
    
    Test Case:
    ----------
    createdb grouptestdb;
    psql grouptestdb -c "insert into pg_group (groname,grosysid,grolist) VALUES ('testgroup',1000,'{500}');"
    psql grouptestdb -c "create table dummy (foobar int4);"
    psql grouptestdb -c "grant ALL on dummy to group testgroup;"
    pg_dump -z -s -t dummy grouptestdb
    
    
    
    --------------------------------------------------------------------------
    
    Solution:
    ---------
    Obviously, pg_dump does not seem to know about groups at all,
    so it treats "group testgroup" as a user.
    Sorry, this one is too hard for me to fix the right way, 
    maybe we could just check, if the userstring begins with 
    'group ' and alter the quotes accordingly, but this does
    not look like a clean solution to me.
    
    --------------------------------------------------------------------------