Thread

  1. pg_restore logging inconsistency

    Josh Kupershmidt <schmiddy@gmail.com> — 2012-05-30T18:55:12Z

    Hi all,
    
    Bosco Rama recently complained[1] about not seeing a message printed
    by pg_restore for each LO to be restored. The culprit seems to be the
    different level passed to ahlog() for this status message:
    
    pg_backup_archiver.c:	ahlog(AH, 2, "restoring large object with OID %u\n", oid);
    pg_backup_tar.c:				ahlog(AH, 1, "restoring large object OID %u\n", oid);
    
    depending on whether one is restoring a tar-format or custom-format
    dump. I think these messages should be logged at the same level, to
    avoid this inconsistency. The attached patch logs them both with
    level=1, and makes the message texts identical. Note, as of 9.0 there
    is already a line like this printed for each LO:
    
    pg_restore: executing BLOB 135004
    
    so I could see the argument for instead wanting to hide the "restoring
    large object" messages. However, the OP was interested in seeing
    something like a status indicator for the lo_write() calls which may
    take a long time, and the above message isn't really helpful for that
    purpose as it is printed earlier in the restore process. Plus it seems
    reasonable to make verbose mode, well, verbose.
    
    Josh
    
    [1] http://archives.postgresql.org/pgsql-general/2012-05/msg00456.php
    
  2. Re: pg_restore logging inconsistency

    Alvaro Herrera <alvherre@commandprompt.com> — 2012-06-19T21:56:36Z

    Excerpts from Josh Kupershmidt's message of mié may 30 14:55:12 -0400 2012:
    > Hi all,
    > 
    > Bosco Rama recently complained[1] about not seeing a message printed
    > by pg_restore for each LO to be restored. The culprit seems to be the
    > different level passed to ahlog() for this status message:
    > 
    > pg_backup_archiver.c:    ahlog(AH, 2, "restoring large object with OID %u\n", oid);
    > pg_backup_tar.c:                ahlog(AH, 1, "restoring large object OID %u\n", oid);
    > 
    > depending on whether one is restoring a tar-format or custom-format
    > dump. I think these messages should be logged at the same level, to
    > avoid this inconsistency. The attached patch logs them both with
    > level=1, and makes the message texts identical. Note, as of 9.0 there
    > is already a line like this printed for each LO:
    > 
    > pg_restore: executing BLOB 135004
    > 
    > so I could see the argument for instead wanting to hide the "restoring
    > large object" messages. However, the OP was interested in seeing
    > something like a status indicator for the lo_write() calls which may
    > take a long time, and the above message isn't really helpful for that
    > purpose as it is printed earlier in the restore process. Plus it seems
    > reasonable to make verbose mode, well, verbose.
    
    I applied this patch all the way back to 8.3.  Thanks.
    
    -- 
    Álvaro Herrera <alvherre@commandprompt.com>
    The PostgreSQL Company - Command Prompt, Inc.
    PostgreSQL Replication, Consulting, Custom Development, 24x7 support