Add SQL-callable pg_get_object_address

Enterprise / PostgreSQL - Alvaro Herrera [alvh.no-ip.org] - 23 December 2014 12:31 UTC

This allows access to get_object_address from SQL, which is useful to obtain OID addressing information from data equivalent to that emitted by the parser. This is necessary infrastructure of a project to let replication systems propagate object dropping events to remote servers, where the schema might be different than the server originating the DROP.

This patch also adds support for OBJECT_DEFAULT to get_object_address; that is, it is now possible to refer to a column's default value.

Catalog version bumped due to the new function.

Reviewed by Stephen Frost, Heikki Linnakangas, Robert Haas, Andres Freund, Abhijit Menon-Sen, Adam Brightwell.

d7ee82e Add SQL-callable pg_get_object_address
src/backend/catalog/objectaddress.c | 440 ++++++++++++++++++++++++++
src/backend/commands/event_trigger.c | 1 +
src/backend/parser/parse_type.c | 46 ++-
src/include/catalog/catversion.h | 2 +-
src/include/catalog/objectaddress.h | 1 +
src/include/catalog/pg_proc.h | 3 +
src/include/nodes/parsenodes.h | 1 +
src/include/parser/parse_type.h | 1 +
src/include/utils/builtins.h | 3 +
src/test/regress/expected/object_address.out | 399 +++++++++++++++++++++++
src/test/regress/parallel_schedule | 2 +-
src/test/regress/serial_schedule | 1 +
src/test/regress/sql/object_address.sql | 177 +++++++++++
13 files changed, 1059 insertions(+), 18 deletions(-)

Upstream: git.postgresql.org


  • Share