Normally we call this from within our windows program where a lot of code is involved for setting up the environment, and creating the pipes and redirecting stdout, stderr and stdin. However I believe it is the same problem that can be caused with the following commandline in cmd.exe but you will need to have Coreutils for windows installed to get the cat command.
pg_dump.exe -U postgres --format=c mydb | cat > backupfile
The size of the backup doesn't matter. As long as there is atleast one table in the database the warning occurs. When I use --verbose it looks like I get one warning for every table in the database while it is dumping the data in the tables.
Eelke Klein
2015-10-30 14:53 GMT+01:00 Adrian Klaver <adrian.klaver@xxxxxxxxxxx>:
On 10/29/2015 02:51 AM, Eelke Klein wrote:
I am getting the following warning when our program runs pg_dump.exe and
the output is in custom format and send to standard out which is
connected to a pipe (Windows platform).
pg_dump: [custom archiver] WARNING: ftell mismatch with expected
position -- ftell used
Can you show us the exact command, with arguments, that you are using?
Also what is the size of the dump file you are creating?--
The output of pg_dump is received by another process that copies it (and
some other data) into a zip file. When I extract the db backup from the
zip the backup is fine and I can restore it.
I have both tried the pg_dump.exe from the 9.5 alpha and a stable 9.4
both generate this warning.
When I change the format to plain the warning goes away.
When I call pg_dump from the commandline and let it send to standard out
and redirect it to a file the warning does not occur but it does occur
when I redirect to nul.
Is there a way to prevent this warning? I would think pg_dump shouldn't
call ftell on a pipe.
Regards, Eelke
Adrian Klaver
adrian.klaver@xxxxxxxxxxx