Restructure get_object_address() so it's safe against concurrent DDL.
authorRobert Haas <rhaas@postgresql.org>
Thu, 17 Nov 2011 17:41:37 +0000 (12:41 -0500)
committerRobert Haas <rhaas@postgresql.org>
Thu, 17 Nov 2011 17:52:02 +0000 (12:52 -0500)
commitb3ad5d02c9cd8a4c884cd78480f221afe8ce5590
treef94e82554dee2dd28028850a05e9b9bb4be6ecc7
parent309411a69eb40215fbf37ac16facc10aea7998e5
Restructure get_object_address() so it's safe against concurrent DDL.

This gives a much better error message when the object of interest is
concurrently dropped and avoids needlessly failing when the object of
interest is concurrently dropped and recreated.  It also improves the
behavior of two concurrent DROP IF EXISTS operations targeted at the
same object; as before, one will drop the object, but now the other
will emit the usual NOTICE indicating that the object does not exist,
instead of rolling back.  As a fringe benefit, it's also slightly
less code.
src/backend/catalog/objectaddress.c