• Bruce Momjian's avatar
    They are two different problems; the TOC entry is important for any · f7168bd4
    Bruce Momjian authored
    multiline command  or to rerun the command easily later.
    
    Whereas displaying the failed SQL command is a matter of fixing the
    error
    messages.
    
    The latter is complicated by failed COPY commands which, with
    die-on-errors
    off, results in the data being processed as a command, so dumping the
    command will dump all of the data.
    
    In the case of long commands, should the whole command be dumped? eg.
    (eg.
    several pages of function definition).
    
    In the case of the COPY command, I'm not sure what to do. Obviously, it
    would be best to avoid sending the data, but the data and command are
    combined (from memory). Also, the 'data' may be in the form of INSERT
    statements.
    
    Attached patch produces the first 125 chars of the command:
    
    pg_restore: [archiver (db)] Error while PROCESSING TOC:
    pg_restore: [archiver (db)] Error from TOC Entry 26; 1255 16449270
    FUNCTION
    plpgsql_call_handler() pjw
    pg_restore: [archiver (db)] could not execute query: ERROR:  function
    "plpgsql_call_handler" already exists with same argument types
         Command was: CREATE FUNCTION plpgsql_call_handler() RETURNS
    language_handler
         AS '/var/lib/pgsql-8.0b1/lib/plpgsql', 'plpgsql_call_han...
    pg_restore: [archiver (db)] Error from TOC Entry 27; 1255 16449271
    FUNCTION
    plpgsql_validator(oid) pjw
    pg_restore: [archiver (db)] could not execute query: ERROR:  function
    "plpgsql_validator" already exists with same argument types
         Command was: CREATE FUNCTION plpgsql_validator(oid) RETURNS void
         AS '/var/lib/pgsql-8.0b1/lib/plpgsql', 'plpgsql_validator'
         LANGU...
    
    Philip Warner
    f7168bd4
pg_backup_db.c 22.2 KB