pgsql: Support user mappings in get_object_address
От | Alvaro Herrera |
---|---|
Тема | pgsql: Support user mappings in get_object_address |
Дата | |
Msg-id | E1YVmrp-00006e-1l@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Support user mappings in get_object_address Since commit 72dd233d3ef we were trying to obtain object addressing information in sql_drop event triggers, but that caused failures when the drops involved user mappings. This addition enables that to work again. Naturally, pg_get_object_address can work with these objects now, too. I toyed with the idea of removing DropUserMappingStmt as a node and using DropStmt instead in the DropUserMappingStmt grammar production, but that didn't go very well: for one thing the messages thrown by the specific code are specialized (you get "server not found" if you specify the wrong server, instead of a generic "user mapping for ... not found" which you'd get it we were to merge this with RemoveObjects --- unless we added even more special cases). For another thing, it would require to pass RoleSpec nodes through the objname/objargs representation used by RemoveObjects, which works in isolation, but gets messy when pg_get_object_address is involved. So I dropped this part for now. Reviewed by Stephen Frost. Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/890192e99af5db1d15d5bb73f3f1044faa1d2758 Modified Files -------------- src/backend/catalog/objectaddress.c | 78 +++++++++++++++++++++++++- src/backend/commands/event_trigger.c | 1 + src/include/nodes/parsenodes.h | 1 + src/test/regress/expected/event_trigger.out | 9 ++- src/test/regress/expected/object_address.out | 19 +++++-- src/test/regress/sql/event_trigger.sql | 5 +- src/test/regress/sql/object_address.sql | 9 +-- 7 files changed, 109 insertions(+), 13 deletions(-)
В списке pgsql-committers по дате отправления: