Re: pg_dump quietly ignore missing tables - is it bug? - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: pg_dump quietly ignore missing tables - is it bug?
Date
Msg-id CAFj8pRDb2Ax+TvFPyWH0TdEt6_6GEvvEUzOzpx+bcpHKbpo1kQ@mail.gmail.com
Whole thread Raw
In response to Re: pg_dump quietly ignore missing tables - is it bug?  (Oleksandr Shulgin <oleksandr.shulgin@zalando.de>)
Responses Re: pg_dump quietly ignore missing tables - is it bug?  ("Shulgin, Oleksandr" <oleksandr.shulgin@zalando.de>)
List pgsql-hackers


2015-05-21 16:48 GMT+02:00 Oleksandr Shulgin <oleksandr.shulgin@zalando.de>:
Pavel Stehule <pavel.stehule@gmail.com> writes:
>
> 2015-03-23 17:11 GMT+01:00 Pavel Stehule <pavel.stehule@gmail.com>:
>
>> Hi
>>
>> 2015-03-15 16:09 GMT+01:00 Tom Lane <tgl@sss.pgh.pa.us>:
>>
>>> Pavel Stehule <pavel.stehule@gmail.com> writes:
>>> > other variant, I hope better than previous. We can introduce new long
>>> > option "--strict". With this active option, every pattern specified by
>>> -t
>>> > option have to have identifies exactly only one table. It can be used
>>> for
>>> > any other "should to exists" patterns - schemas. Initial implementation
>>> in
>>> > attachment.
>>>
>>> I think this design is seriously broken.  If I have '-t foo*' the code
>>> should not prevent that from matching multiple tables.  What would the use
>>> case for such a restriction be?
>>>
>>> What would make sense to me is one or both of these ideas:
>>>
>>> * require a match for a wildcard-free -t switch
>>>
>>> * require at least one (not "exactly one") match for a wildcarded -t
>>>   switch.
>>>
>>
>>
>> attached initial implementation
>>
>
> updated version - same mechanism should be used for schema

Hello,

I think this is a bit over-engineered (apart from the fact that
processSQLNamePattern is also used in two dozen of places in
psql/describe.c and all of them must be touched for this patch to
compile).

it was prototype - I believe so issue with describe.c can be solved better
 

Also, the new --table-if-exists options seems to be doing what the old
--table did, and I'm not really sure I underestand what --table does
now.

I propose instead to add a separate new option --strict-include, without
argument, that only controls the behavior when an include pattern didn't
find any table (or schema).

hard to say - any variant has own advantages and disadvantages

But I more to unlike it than like - it is more usual, when you use exact name so, you need it exactly one, and when you use some wildcard, so you are expecting one or more tables.

This use case is not checked in your patch.

Regards

Pavel
 

Please see attached patch.

--
Alex


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Run pgindent now?
Next
From: "Shulgin, Oleksandr"
Date:
Subject: Re: pg_dump quietly ignore missing tables - is it bug?