2013/9/16 Satoshi Nagayasu <sn...@uptime.jp>

> (2013/07/06 1:16), Pavel Stehule wrote:
>
>> I am sending a patch that removes strict requirements for DROP IF
>> EXISTS statements. This behave is similar to our ALTER IF EXISTS
>> behave now.
>>
>>
>> postgres=# DROP CAST IF EXISTS (sss AS public.casttesttype);
>> NOTICE:  types "sss" and "public.casttesttype" does not exist, skipping
>> DROP CAST
>> postgres=#   DROP FUNCTION IF EXISTS public.pt_in_widget(point, widget);
>> NOTICE:  function public.pt_in_widget(point,**widget) does not exist,
>> skipping
>> DROP FUNCTION
>> postgres=#  DROP OPERATOR IF EXISTS public.<% (point, widget);
>> NOTICE:  operator public.<% does not exist, skipping
>> DROP OPERATOR
>> postgres=# DROP TRIGGER test_trigger_exists ON no_such_table;
>> ERROR:  relation "no_such_table" does not exist
>> postgres=# DROP TRIGGER IF EXISTS test_trigger_exists ON no_such_table;
>> NOTICE:  trigger "test_trigger_exists" for table "no_such_table" does
>> not exist, skipping
>> DROP TRIGGER
>>
>> This functionality is necessary for correct quite reload from dump
>> without possible warnings
>>
>
> I'm looking at this patch, and I have a question here.
>
> Should "DROP TRIGGER IF EXISTS" ignore error for non-existing trigger
> and non-existing table? Or just only for non-existing trigger?
>

My opinion is so, both variants should be ignored - it should be fully
fault tolerant in this use case.

Regards

Pavel


>
> I've not understood the pg_restore issue precisely so far,
> but IMHO "DROP TRIGGER IF EXISTS" means "if the _trigger_ exists",
> not "if the _table_ exists".
>
> Is this a correct and/or an expected behavior?
>
> Sorry if I missed some consensus which we already made.
>
> Any comments?
>
> Regards,
> --
> Satoshi Nagayasu <sn...@uptime.jp>
> Uptime Technologies, LLC. http://www.uptime.jp
>

Reply via email to