Re: Patch for pg_dump: Multiple -t options and new -T option - Mailing list pgsql-patches

From Tom Lane
Subject Re: Patch for pg_dump: Multiple -t options and new -T option
Date
Msg-id 8489.1090420787@sss.pgh.pa.us
Whole thread Raw
In response to Re: Patch for pg_dump: Multiple -t options and new -T  ("David F. Skoll" <dfs@roaringpenguin.com>)
Responses Re: Patch for pg_dump: Multiple -t options and new -T
List pgsql-patches
"David F. Skoll" <dfs@roaringpenguin.com> writes:
> How about this:

> pg_dump -t t1                          -- Dump table t1 in any schema
> pg_dump -n s1                          -- Dump all of schema s1
> pg_dump -t t1 -n s1                    -- Dump t1 in s1
> pg_dump -t t1 -t t2 -n s1              -- Dump s1.t1 and s1.t2
> pg_dump -t t1 -t t2 -n s1 -n s2        -- Dump s1.t1, s1.t2, s2.t1 and s2.t2

Why not

pg_dump -t t1                          -- Dump table t1 in any schema
pg_dump -n s1                          -- Dump all of schema s1
pg_dump -t s1.t1                       -- Dump t1 in s1
pg_dump -t s1.t1 -t s2.t2              -- Dump s1.t1 and s2.t2
pg_dump -t t1 -t t2 -n s1 -n s2        -- Dump s1.t1, s1.t2, s2.t1 and s2.t2

That is, the rules are:
    - if any -t switches appear, only tables matching (any one of)
      those switches are dumped
    - if any -n switches appear, only objects in (any one of)
      those schemas are dumped
    - a -t switch can be name only or schema.name

The cross-product semantics you're proposing can't implement my fourth
example.

I really dislike the idea of switch ordering making a difference...

> We also probably should not warn about missing tables, because it's
> likely that the full cartesian product of schemas and tables won't
> exist.

Agreed.  If any -t or -n switches appear, then warn only if *no* objects
get selected.

            regards, tom lane

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: logfile subprocess and Fancy File Functions
Next
From: Tom Lane
Date:
Subject: Re: [HACKERS] Point in Time Recovery