C Trigger issue
Create function, attempt to create trigger fails, yet function
obviously exists. I can't seem to typecast the trigger parameters.
\df even misses the function.
temp=# CREATE FUNCTION dbuser_account(varchar(40), varchar(40),
varchar(40))
temp-# RETURNS OPAQUE
temp-# AS
'/usr/home/rbt/temp/postgresql-7.1beta4/contrib/user_account/user_acco
unt.so'
temp-# language 'C';
CREATE
temp=#
temp=# \df dbuser_account
List of functions
Result | Function | Arguments
--------+----------+-----------
(0 rows)
temp=#
temp=# select dbuser_account('test', 'test', 'test');
ERROR: dbuser_account: not fired by trigger manager
temp=#
temp=#
temp=# CREATE TRIGGER dbuser_account_trg
temp-# AFTER INSERT
temp-# OR DELETE
temp-# OR UPDATE
temp-# ON users
temp-# FOR EACH row
temp-# EXECUTE PROCEDURE dbuser_account('val1', 'val2', 'val3');
ERROR: CreateTrigger: function dbuser_account() does not exist
temp=#
temp=# DROP FUNCTION dbuser_account(varchar(40), varchar(40),
varchar(40));
DROP
--
Rod Taylor
There are always four sides to every story: your side, their side, the
truth, and what really happened.
Sorry, Postgres 7.1 beta4
--
Rod Taylor
There are always four sides to every story: your side, their side, the
truth, and what really happened.
----- Original Message -----
From: "Rod Taylor" <rod.taylor@inquent.com>
To: "Hackers List" <pgsql-hackers@postgresql.org>
Sent: Tuesday, February 13, 2001 10:35 AM
Subject: [HACKERS] C Trigger issue
Create function, attempt to create trigger fails, yet function
obviously exists. I can't seem to typecast the trigger parameters.
\df even misses the function.temp=# CREATE FUNCTION dbuser_account(varchar(40), varchar(40),
varchar(40))temp-# RETURNS OPAQUE
temp-# AS
'/usr/home/rbt/temp/postgresql-7.1beta4/contrib/user_account/user_acco
unt.so'
temp-# language 'C';
CREATE
temp=#
temp=# \df dbuser_account
List of functions
Result | Function | Arguments
--------+----------+-----------
(0 rows)
temp=#
temp=# select dbuser_account('test', 'test', 'test');
ERROR: dbuser_account: not fired by trigger manager
temp=#
temp=#
temp=# CREATE TRIGGER dbuser_account_trg
temp-# AFTER INSERT
temp-# OR DELETE
temp-# OR UPDATE
temp-# ON users
temp-# FOR EACH row
temp-# EXECUTE PROCEDURE dbuser_account('val1', 'val2', 'val3');
ERROR: CreateTrigger: function dbuser_account() does not exist
temp=#
temp=# DROP FUNCTION dbuser_account(varchar(40), varchar(40),
varchar(40));DROP
--
Rod TaylorThere are always four sides to every story: your side, their side,
the
Show quoted text
truth, and what really happened.
IIRC, trigger functions don't take parameters, they're
func() returns opaque. The arguments given in create trigger
are passed in a different way. That's why the error message
is saying dbuser_account() is missing.
On Tue, 13 Feb 2001, Rod Taylor wrote:
Show quoted text
Sorry, Postgres 7.1 beta4
--
Rod TaylorThere are always four sides to every story: your side, their side, the
truth, and what really happened.
----- Original Message -----
From: "Rod Taylor" <rod.taylor@inquent.com>
To: "Hackers List" <pgsql-hackers@postgresql.org>
Sent: Tuesday, February 13, 2001 10:35 AM
Subject: [HACKERS] C Trigger issueCreate function, attempt to create trigger fails, yet function
obviously exists. I can't seem to typecast the trigger parameters.
\df even misses the function.temp=# CREATE FUNCTION dbuser_account(varchar(40), varchar(40),
varchar(40))temp-# RETURNS OPAQUE
temp-# AS
'/usr/home/rbt/temp/postgresql-7.1beta4/contrib/user_account/user_acco
unt.so'
temp-# language 'C';
CREATE
temp=#
temp=# \df dbuser_account
List of functions
Result | Function | Arguments
--------+----------+-----------
(0 rows)
temp=#
temp=# select dbuser_account('test', 'test', 'test');
ERROR: dbuser_account: not fired by trigger manager
temp=#
temp=#
temp=# CREATE TRIGGER dbuser_account_trg
temp-# AFTER INSERT
temp-# OR DELETE
temp-# OR UPDATE
temp-# ON users
temp-# FOR EACH row
temp-# EXECUTE PROCEDURE dbuser_account('val1', 'val2', 'val3');
ERROR: CreateTrigger: function dbuser_account() does not exist
temp=#
temp=# DROP FUNCTION dbuser_account(varchar(40), varchar(40),
varchar(40));DROP
--
Rod TaylorThere are always four sides to every story: your side, their side,
the
truth, and what really happened.