• Alvaro Herrera's avatar
    Support opfamily members in get_object_address · a61fd533
    Alvaro Herrera authored
    In the spirit of 890192e9 and 44643034: 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
    a61fd533
gram.y 382 KB