"Jeanna Geier" <[EMAIL PROTECTED]> writes:
> And log file shows the following (what I posted before was through pgAdmin):
> 2007-01-11 15:38:47 ERROR:  relation "temp_measurement" does not exist
> 2007-01-11 15:38:47 ERROR:  syntax error at or near "7094982" at character 1
> 2007-01-11 15:38:47 ERROR:  syntax error at or near "67459" at character 1

OK, that makes it come a bit into focus.  I think what pg_restore tried
to send was

COPY temp_measurement FROM STDIN;
7094982 ... rest of row 1 ...
67459 ... rest of row 2 ...

and the COPY command failed because of the stated reason, and then the
backend found itself chewing on a lot of data that was being sent as SQL
commands (because back then pg_restore depended on feedback from the
backend to tell whether an archive entry was COPY data or SQL commands).

So the bottom line here is you're trying to restore into a table that's
not there.  How come?  I suppose you were trying a data-only restore,
else this is a pg_dump or pg_restore bug.

Another point is that AFAICT 8.0 pg_restore does know enough to stop
if the COPY command fails --- least the case seems to work for me.
[ digs in CVS logs... ]  Oh, it seems we fixed that in 8.0.7:

2006-02-05 15:59  tgl

        * src/bin/pg_dump/: pg_backup_archiver.c, pg_backup_archiver.h,
        pg_backup_db.c (REL8_0_STABLE): Fix pg_restore to properly discard
        COPY data when trying to continue after an error in a COPY
        statement.  Formerly it thought the COPY data was SQL commands, and
        got quite confused.
        
        Stephen Frost

So I suppose you're running some earlier 8.0.x subrelease, in which case
an update would be an extremely good idea.

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

Reply via email to