Re: Question on notifications

From: Alexander Reichstadt <info(at)apfeltaste(dot)net>
To: pgsql-general(at)postgresql(dot)org
Cc: Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at>
Subject: Re: Question on notifications
Date: 2012-04-30 12:31:44
Message-ID: 806083C0-ED03-4976-B44C-E8BACE2637CC@apfeltaste.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

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-E
> XAMPLE-2
>
> Can you post relevant parts of your code?
>
> Yours,
> Laurenz Albe

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Alexander Reichstadt 2012-04-30 12:41:45 Re: QUestion on notifications
Previous Message Albe Laurenz 2012-04-30 08:35:41 Re: postgresql log indicate too many execute S_2:COMMIT