]> granicus.if.org Git - postgresql/commit
Expose object name error fields in PL/pgSQL.
authorNoah Misch <noah@leadboat.com>
Wed, 3 Jul 2013 11:29:23 +0000 (07:29 -0400)
committerNoah Misch <noah@leadboat.com>
Wed, 3 Jul 2013 11:29:56 +0000 (07:29 -0400)
commit7cd9b1371d8b18d063dc38bc4fa7b30bd92c07a3
tree68b4cb6ae2a84c92a6d2cbf2ffa45d1877558d0a
parent69e4fd4541979209d3bd238508d46d64c8ad46df
Expose object name error fields in PL/pgSQL.

Specifically, permit attaching them to the error in RAISE and retrieving
them from a caught error in GET STACKED DIAGNOSTICS.  RAISE enforces
nothing about the content of the fields; for its purposes, they are just
additional string fields.  Consequently, clarify in the protocol and
libpq documentation that the usual relationships between error fields,
like a schema name appearing wherever a table name appears, are not
universal.  This freedom has other applications; consider a FDW
propagating an error from an RDBMS having no schema support.

Back-patch to 9.3, where core support for the error fields was
introduced.  This prevents the confusion of having a release where libpq
exposes the fields and PL/pgSQL does not.

Pavel Stehule, lexical revisions by Noah Misch.
doc/src/sgml/libpq.sgml
doc/src/sgml/plpgsql.sgml
doc/src/sgml/protocol.sgml
src/pl/plpgsql/src/pl_exec.c
src/pl/plpgsql/src/pl_funcs.c
src/pl/plpgsql/src/pl_gram.y
src/pl/plpgsql/src/pl_scanner.c
src/pl/plpgsql/src/plpgsql.h
src/test/regress/expected/plpgsql.out
src/test/regress/sql/plpgsql.sql