Thread: Problem with the pg_dumpall file format

Problem with the pg_dumpall file format

From
Martin Gregorie
Date:
Guys,

I apologise for sending a bug report this way, but the bug reporting
server seems to be out to lunch at present. Firefox reports being able
to contact it but its bug submission wasn't accepted. To avoid loss of
the bug report, here it is:

Name:        Martin Gregorie
e-mail:        martin@gregorie.org
Postgres:    8.2.10
OS:        Linux (Fedora 9)
Details:

For some reason, when my message table (see below) is dumped, blank
lines are introduced between rows. Each row contains the contents of
each field. There isn't anything obvious in the final bytea field that
might cause this problem. There are longer rows than the
one preceding the blank line.

The blank lines cause the restore to crash with the message:

psql:cluster.sql:146200: ERROR:  invalid input syntax for integer: ""
CONTEXT:  COPY message, line 3, column sdbk: ""

The table definition is:

create table message
(
        sdbk            int  primary key,
        date_sent       timestamp,
        subject         int
                             references subject(sdbk),
        searchtext      text,
        headers         bytea,
        multipart       boolean,
        content         bytea
);

If you need data samples, please ask.

Best regards,
Martin

Re: Problem with the pg_dumpall file format

From
Tom Lane
Date:
Martin Gregorie <martin@gregorie.org> writes:
> For some reason, when my message table (see below) is dumped, blank
> lines are introduced between rows.

Nothing like that has been reported before.  We have heard of dump files
getting corrupted after they've been produced --- the most common case
is newlines (\n) getting converted to carriage-return-line-feed (\r\n)
due to being copied onto a Windows machine.  The COPY data format is
reasonably impervious to that, but I suppose it's possible that a second
conversion step might incorrectly change \r\n to \n\n.

If you're certain that nothing is happening to the dump file after the
fact, then we'll need to see a self-contained test case.

            regards, tom lane