Обсуждение: Bug #440: trigger can not find a function

Поиск
Список
Период
Сортировка

Bug #440: trigger can not find a function

От
pgsql-bugs@postgresql.org
Дата:
arnauld michelizza (am@adomos.com) reports a bug with a severity of 3
The lower the number the more severe it is.

Short Description
trigger can not find a function

Long Description
ERROR:  CreateTrigger: function check_key() does not exist


Sample Code
CREATE FUNCTION check_key(varchar,varchar) RETURNS OPAQUE AS '
BEGIN
    IF COUNT(*) FROM $2 WHERE $2.$1=NEW.$1 THEN
           RAISE EXCEPTION ''integrity violation : duplicated key'';
    END IF;
    RETURN NEW;
END;
' LANGUAGE 'plpgsql';

CREATE TRIGGER trigger_check_key BEFORE INSERT OR UPDATE
ON bar
FOR EACH ROW EXECUTE PROCEDURE check_key('id','foo');


No file was uploaded with this report

Re: Bug #440: trigger can not find a function

От
"Stephan Szabo"
Дата:
> Sample Code
> CREATE FUNCTION check_key(varchar,varchar) RETURNS OPAQUE AS '
> BEGIN
>     IF COUNT(*) FROM $2 WHERE $2.$1=NEW.$1 THEN
>            RAISE EXCEPTION ''integrity violation : duplicated key'';
>     END IF;
>     RETURN NEW;
> END;
> ' LANGUAGE 'plpgsql';
>
> CREATE TRIGGER trigger_check_key BEFORE INSERT OR UPDATE
> ON bar
> FOR EACH ROW EXECUTE PROCEDURE check_key('id','foo');

Trigger functions take no arguments and return opaque.  The arguments given
on the create trigger statement are passed in a special fashion (for plpgsql
look at TG_NARGS and TG_ARGV array).



_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com