Re: pg_restore with -j fails (works without -j option)

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Lonni J Friedman <netllama(at)gmail(dot)com>
Cc: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: pg_restore with -j fails (works without -j option)
Date: 2011-08-26 02:41:45
Message-ID: 27785.1314326505@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Lonni J Friedman <netllama(at)gmail(dot)com> writes:
> [ this doesn't work: ]
> $ cat 2011-08-25-1314280801-nightly.out | pg_restore -j2 -U lfriedman -v -d nightly

It's basically impossible for that to work. -j implies spawning
multiple processes that will be wanting to read concurrently from
different places in the input file. That cannot happen when the source
is a pipe. In this particular example, the pipe construct isn't even
doing anything useful; you could perfectly well write this instead:

$ pg_restore -j2 -U lfriedman -v -d nightly 2011-08-25-1314280801-nightly.out

> pg_restore: [custom archiver] cannot reopen stdin
> pg_restore: *** aborted because of error

I agree though that that's not a terribly friendly error message.
I thought we had some code in there to complain about non-seekable
input files, but it looks like we missed a case.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Merlin Moncure 2011-08-26 03:04:19 Re: passing cursors from one PL function to another
Previous Message Martín Marqués 2011-08-26 00:49:59 Re: passing cursors from one PL function to another