mirror of
https://github.com/postgres/postgres.git
synced 2025-11-06 07:49:08 +03:00
Support opfamily members in get_object_address
In the spirit of890192e99aand4464303405: have get_object_address understand individual pg_amop and pg_amproc objects. There is no way to refer to such objects directly in the grammar -- rather, they are almost always considered an integral part of the opfamily that contains them. (The only case that deals with them individually is ALTER OPERATOR FAMILY ADD/DROP, which carries the opfamily address separately and thus does not need it to be part of each added/dropped element's address.) In event triggers it becomes possible to become involved with individual amop/amproc elements, and this commit enables pg_get_object_address to do so as well. To make the overall coding simpler, this commit also slightly changes the get_object_address representation for opclasses and opfamilies: instead of having the AM name in the objargs array, I moved it as the first element of the objnames array. This enables the new code to use objargs for the type names used by pg_amop and pg_amproc. Reviewed by: Stephen Frost
This commit is contained in:
@@ -1223,6 +1223,8 @@ typedef struct SetOperationStmt
|
||||
typedef enum ObjectType
|
||||
{
|
||||
OBJECT_AGGREGATE,
|
||||
OBJECT_AMOP,
|
||||
OBJECT_AMPROC,
|
||||
OBJECT_ATTRIBUTE, /* type's attribute, when distinct from column */
|
||||
OBJECT_CAST,
|
||||
OBJECT_COLUMN,
|
||||
|
||||
Reference in New Issue
Block a user