Tom,

On Wednesday, July 24, 2013, Tom Lane wrote:

> Stephen Frost <[email protected] <javascript:;>> writes:
> > Add GET DIAGNOSTICS ... PG_CONTEXT in PL/PgSQL
>
> I don't find it to be a terribly good idea that GetErrorContextStack
> does FlushErrorState().  Doesn't that imply that it can't safely be
> used from inside error processing, which is more or less exactly
> where it is intended to be used?  I would certainly think it surprising
> that that call destroys all information about the error.


It's not intended (nor allowed, if I got it right) in an error context. I
will admit that it's not a wonderful situation to have it using the error
handling's internal components like this, but that's also where it has to
go for the callbacks to get the information needed.


> For the same reason, it's rather dubious that it uses ErrorContext as
> working space.  There might not be a heck of a lot of space left there,
> and I don't think that construction of this string really counts as
> error processing.  It seems to me to be something done outside the error
> subsystem.
>

My concerns and thoughts around this were what may happen if a callback
throws an error and it still makes me a bit nervous but It seems like it
should work. Still, if there's a reasonable way to collect the stack info
without going through the error callbacks, without implementing a duplicate
system, I'm all ears.

Thanks!

Stephen

Reply via email to