Re: [BUGS] BUG #7873: pg_restore --clean tries to drop tables that don't exist

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: [BUGS] BUG #7873: pg_restore --clean tries to drop tables that don't exist
Дата
Msg-id CAFj8pRBswhH0n-Yr4hvvO93p35DTY_te313VGBb_Gkpmi9Vz8Q@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [BUGS] BUG #7873: pg_restore --clean tries to drop tables that don't exist  (Josh Kupershmidt <schmiddy@gmail.com>)
Ответы Re: [BUGS] BUG #7873: pg_restore --clean tries to drop tables that don't exist  (Josh Kupershmidt <schmiddy@gmail.com>)
Список pgsql-hackers
Hello

2013/3/8 Josh Kupershmidt <schmiddy@gmail.com>:
> On Fri, Mar 8, 2013 at 2:23 AM, Pavel Stehule <pavel.stehule@gmail.com> wrote:
>> 2013/3/8 Josh Kupershmidt <schmiddy@gmail.com>:
>
>>> Cool. I think it would also be useful to check that --clean may only
>>> be used with --format=p to avoid any confusion there. (This issue
>>> could be addressed in a separate patch if you'd rather not lard this
>>> patch.)
>>
>> no
>>
>> some people - like we in our company would to use this feature for
>> quiet and strict mode for plain text format too.
>>
>> enabling this feature has zero overhead so there are no reason block
>> it anywhere.
>
> I'm not sure I understand what you're getting at, but maybe my
> proposal wasn't so clear. Right now, you can specify --clean along
> with -Fc to pg_dump, and pg_dump will not complain even though this
> combination is nonsense. I am proposing that pg_dump error out in this
> case, i.e.
>
>   $ pg_dump -Fc --file=test.dump --clean -d test
>   pg_dump: option --clean only valid with plain format dump
>
> Although this lack of an error a (IMO) misfeature of existing pg_dump,
> so if you'd rather leave this issue aside for your patch, that is
> fine.
>

I tested last patch and I am thinking so this patch has sense for
custom format too

[postgres@localhost ~]$ /usr/local/pgsql/bin/pg_dump   --clean -t a
-Fc postgres > dump
[postgres@localhost ~]$ psql -c "drop table a"
DROP TABLE
[postgres@localhost ~]$ pg_restore --clean -d postgres dump
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 171; 1259 16462 TABLE
a postgres
pg_restore: [archiver (db)] could not execute query: ERROR:  table "a"
does not exist   Command was: DROP TABLE public.a;

WARNING: errors ignored on restore: 1

[postgres@localhost ~]$ /usr/local/pgsql/bin/pg_dump  --if-exist
--clean -t a -Fc postgres > dump
[postgres@localhost ~]$ psql -c "drop table a"
DROP TABLE
[postgres@localhost ~]$ pg_restore --clean -d postgres dump

So limit for plain format is not too strict

Regards

Pavel

> Josh



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tatsuo Ishii
Дата:
Сообщение: Re: [9.4 CF 1] The Commitfest Slacker List
Следующее
От: Jeevan Chalke
Дата:
Сообщение: Re: checking variadic "any" argument in parser - should be array