Re: BUG #7641: ERROR: must specify relation and object name when function contains DROP TRIGGER

From: Sergey <sergey(at)booksys(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #7641: ERROR: must specify relation and object name when function contains DROP TRIGGER
Date: 2012-11-08 17:28:49
Message-ID: 509BEBD1.2090100@booksys.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Tom,

There is also a minor bug when trying to do same thing with RULE (it
doesn't produce an error but the notice is not correct when function is
called for the second time):
CREATE OR REPLACE FUNCTION drop_rule_test() RETURNS void AS $$
BEGIN
DROP RULE IF EXISTS invalid_rule ON test1;
END; $$ LANGUAGE plpgsql;

SELECT drop_rule_test();
NOTICE: rule "invalid_rule" for relation "test1" does not exist, skipping
CONTEXT: SQL statement "DROP RULE IF EXISTS invalid_rule ON test1"
PL/pgSQL function drop_rule_test() line 3 at SQL statement

SELECT drop_rule_test();
NOTICE: rule "test1" for relation "" does not exist, skipping
CONTEXT: SQL statement "DROP RULE IF EXISTS invalid_rule ON test1"
PL/pgSQL function drop_rule_test() line 3 at SQL statement

Thanks,
Sergey

On 11/8/2012 10:14 AM, Tom Lane wrote:
> sergey(at)booksys(dot)com writes:
>> CREATE OR REPLACE FUNCTION drop_trigger_test() RETURNS void AS $$
>> BEGIN
>> DROP TRIGGER IF EXISTS invalid_trigger ON test1;
>> END; $$ LANGUAGE plpgsql;
>> 4. SELECT drop_trigger_test();
>> Result:
>> NOTICE: trigger "invalid_trigger" for table "test1" does not exist,
>> skipping
>> CONTEXT: SQL statement "DROP TRIGGER IF EXISTS invalid_trigger ON test1"
>> PL/pgSQL function drop_trigger_test() line 3 at SQL statement
>> 5. SELECT drop_trigger_test();
>> Result:
>> ERROR: must specify relation and object name
>> CONTEXT: SQL statement "drop trigger if exists invalid_trigger on test2"
>> PL/pgSQL function drop_trigger_test2() line 3 at SQL statement
>> For some reason I can run this function without error only once on a fresh
>> connection. Did not have this problem in 8.4.x and 9.1.6
> That's a bug all right --- the does_not_exist_skipping() function thinks
> it's okay to trash its input data structure, so the DropStmt is
> corrupted for next time. Will fix, thanks for the report!
>
> regards, tom lane

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message haribabu.kommi 2012-11-08 18:15:02 BUG #7643: Issuing a shutdown request while server startup leads to server hang
Previous Message Fujii Masao 2012-11-08 17:12:14 Re: [BUGS] BUG #7534: walreceiver takes long time to detect n/w breakdown