Thanks, I had checked the example before but couldn't make sense out of it in terms of wrapping it in Objective-C. I left it in C now and it works fine.
The trigger I am using now looks like this:
CREATE FUNCTION notify_trigger() RETURNS trigger AS $$
DECLARE
BEGIN IF ( TG_OP = 'INSERT' ) THEN execute 'NOTIFY ' || TG_TABLE_NAME || '_' || TG_OP || ', ' || NEW.oid; ELSE execute 'NOTIFY ' || TG_TABLE_NAME || '_' || TG_OP || ', ' || OLD.oid; END IF; return NULL; END;
$$ LANGUAGE plpgsql;
it works if I remove transmission of the OID. If I do transmit the OID I get
DETAIL: The tuple structure of a not-yet-assigned record is indeterminate. CONTEXT: PL/pgSQL function "notify_trigger" line 1 at EXECUTE statement
The trigger is firing above function AFTER the TG_OP took place. The error is thrown upon insertion. Doesn't the record exist given I trigger AFTER and not BEFORE the operation took palce?
Am 30.04.2012 um 09:53 schrieb Albe Laurenz: Alexander Reichstadt wrote: From the documentation I was able to build a trigger firing upon
deletion of a record a function that delivers tablename_operation as a notification one needs to subscribe
to. So in terminal I can say LISTEN persons_delete and instantly will receive
Asynchronous notification "persons_delete" received from server
process with PID 54790.
if there was a delete. But what I don't fully understand is how to do
this with PQnotifies. Following the docu I get no notifications even though I subscribe to them after
successfully connecting to the server the same way I do using terminal.
Googling didn't give me examples I was able to use. Please, can
someone help? Did you look at the example in the documentation? http://www.postgresql.org/docs/current/static/libpq-example.html#LIBPQ-EXAMPLE-2 Can you post relevant parts of your code? Yours, Laurenz Albe
|
Attachment:
signature.asc
Description: Message signed with OpenPGP using GPGMail