Re: pg_restore ignores -C when using a restore list -L - Mailing list pgsql-bugs

From Tom Lane
Subject Re: pg_restore ignores -C when using a restore list -L
Date
Msg-id 18669.1273857966@sss.pgh.pa.us
Whole thread Raw
In response to Re: pg_restore ignores -C when using a restore list -L  (Russell Smith <mr-russ@pws.com.au>)
Responses Re: pg_restore ignores -C when using a restore list -L  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
Re: pg_restore ignores -C when using a restore list -L  (Russell Smith <mr-russ@pws.com.au>)
List pgsql-bugs
Russell Smith <mr-russ@pws.com.au> writes:
>> By the operation of other items (-C --data-only) passed with -l, it only
>> produces to contents that would be restored with the other switches
>> provided.  If that's expect behavior, then the documentation of the
>> switch is incorrect and should read something more like
>>
>> -l
>> --list List the items in the archive that would be restored
>> taking into account any other switches provided. The output of this
>> operation can be used with the -L option to further restrict and
>> reorder  the  items  that      are restored.

Yeah, -l is limited by other filtering switches, and this definitely
ought to be stated more clearly in the documentation.  (The content
of the produced file implies it, since it says *Selected* TOC Entries,
but that's hardly clear enough.)

> Further to these comments, both scenarios should make -l or -L
> incompatibe with -C --data-only -I -n --schema-only -T -t -x  as all
> these alter the contents of what is restored.  You should either use the
> list to control the items restored or the switches.  Using both just
> created confusion.

I believe that allowing the filter switches to act on -l is a useful
behavior, and anyway it's been like that for many years and nobody's
complained before.  So I'm not excited about taking out the
functionality.

However, I think -C is a special case because it's quite un-obvious
to the user that it effectively acts as a filter switch --- in fact a
de-filtering switch, because the lack of -C is what filters out the
DATABASE item.

I'm inclined to think that we should document that the output of -l
is restricted by -n and similar switches, but change the code so that
-C doesn't affect -l output.  Comments?

            regards, tom lane

pgsql-bugs by date:

Previous
From: Rumko
Date:
Subject: Re: Giant TOAST tables due to many almost empty pages
Next
From: Tom Lane
Date:
Subject: Re: Giant TOAST tables due to many almost empty pages