The following bug has been logged online:
Bug reference: 5959
Logged by: Per-Olov Esgard
Email address: Per-Olov.Esgard@micronic-mydata.com
PostgreSQL version: 9.0.0
Operating system: Linux / kernel 2.6.16.20
Description: pg_restore --use-list does not always work with a
pg_restore generated TOC file
Details:
General
=======
In my application I am using automatically generated psm:s. These psm: are
using many arguments, in some cases over 80. This means that a TOC entry in
a TOC file generated by pg_restore --list may be very long for psm:s with
such a long signature.
Specific
========
My backup system makes a schema dump to a file and a data dump to another
file. When performing a restore I create a TOC list from the schema dump by
using pg_restore on the schema dump file. I do some filtering on the TOC
file and then I restore it using pg_restore --use-list. This does not work
since some entries in the TOC file are more than 2000 characters long. The
function SortTocFromFile in pg_backup_archiver.c has a hard coded limitation
of 1024 characters for each row in the TOC file.
Temporary solution
==================
I have now solved this problem in my application by extending the buffer to
4096 characters and recompiled pg_restore.