ErrorContextCallback

Started by Laszlo Hornyakover 21 years ago3 messages
#1Laszlo Hornyak
kocka@forgeahead.hu

Hi!

Sorry if I post this mail to the wrong list, I checked each by it's
theme and this seems to be the best.
I have a strange problem with an errorcontextcallback:
Given the following code fragment:
mycallback->previous = error_context_stack;
elog(DEBUG1,"1");
mycallback->callback = plpgj_ErrorContextCallback;
elog(DEBUG1,"2");
mycallback->arg = "hello world!";
elog(DEBUG1,"3");
error_context_stack = mycallback;
elog(DEBUG1,"4");

and the callback function logs "callback", the following apears in the log:
DEBUG: 1
DEBUG: 2
DEBUG: 3
ERROR: callback

Can anybody tell me why this happens?

Thanks,
Laszlo

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Laszlo Hornyak (#1)
Re: ErrorContextCallback

Laszlo Hornyak <kocka@forgeahead.hu> writes:

and the callback function logs "callback", the following apears in the log:
ERROR: callback

Can anybody tell me why this happens?

Sure you didn't "elog(ERROR)" rather than "elog(LOG)" inside the
callback function?

In any case, you can't expect useful help without showing us the
callback function.

regards, tom lane

#3Gavin Sherry
swm@linuxworld.com.au
In reply to: Laszlo Hornyak (#1)
Re: ErrorContextCallback

On Mon, 9 Aug 2004, Laszlo Hornyak wrote:

Hi!

Sorry if I post this mail to the wrong list, I checked each by it's
theme and this seems to be the best.
I have a strange problem with an errorcontextcallback:
Given the following code fragment:
mycallback->previous = error_context_stack;
elog(DEBUG1,"1");
mycallback->callback = plpgj_ErrorContextCallback;
elog(DEBUG1,"2");
mycallback->arg = "hello world!";
elog(DEBUG1,"3");
error_context_stack = mycallback;

Its only at the lijne above that you're updating error_context_stack.

elog(DEBUG1,"4");

Every call to elog() (errfinish), calls the callbacks registered in
error_context_stack, if my memory serves me correctly.

It might not be relevant to the problem you're solving, but have you
looked at Tom's try/catch code in HEAD?

Gavin