Обсуждение: Re: [COMMITTERS] pgsql: Add GET DIAGNOSTICS ... PG_CONTEXT in PL/PgSQL

Поиск
Список
Период
Сортировка

Re: [COMMITTERS] pgsql: Add GET DIAGNOSTICS ... PG_CONTEXT in PL/PgSQL

От
Stephen Frost
Дата:
Tom,

* Tom Lane (tgl@sss.pgh.pa.us) wrote:
> OK.  One possibly non-obvious point is that I think the field should be
> defined as "context containing associated non-constant strings"; this
> would mean in particular that CopyErrorData would need to change it
> to CurrentMemoryContext in the copied struct, and then ReThrowError
> would change it back when restoring the data onto the error stack.
> This detail is probably a no-op in current usages, but in the future it
> might allow modification of a copied ErrorData while it's outside
> ErrorContext, if anyone should want to do that.
>
> Also I'd advise declaring the field as "struct MemoryContextData *"
> to avoid having to include palloc.h into elog.h.

Good points, all.  Apologies for it taking a bit to get to this, but
please take a look when you get a chance.  Barring objections, this is
what I'm planning to commit, which moves most calls to use the new
edata->alloc_context instead of ErrorContext.  This also means we can
allow GET DIAG ... PG_CONTEXT to be called from exception handlers,
which I've set up and added regression tests for.

    Thanks!

        Stephen

Вложения