On 10/03/2014 09:06 PM, Alvaro Herrera wrote:
> Heikki Linnakangas wrote:
>
>> I had a very brief look at the docs, and these extra outputs from
>> pg_event_trigger_dropped_objects caught my eye:
>>
>>> + <row>
>>> + <entry><literal>address_names</literal></entry>
>>> + <entry><type>text[]</type></entry>
>>> + <entry>
>>> + An array that, together with <literal>address_args</literal>,
>>> + can be used by the C-language function getObjectAddress() to
>>> + recreate the object address in a remote server containing a similar object.
>>> + </entry>
>>> + </row>
>>> + <row>
>>> + <entry><literal>address_args</literal></entry>
>>> + <entry><type>text[]</type></entry>
>>> + <entry>
>>> + See <literal>address_names</literal> above.
>>> + </entry>
>>> + </row>
>>
>> I couldn't find a function called getObjectAddress anywhere. Typo?
>
> Ah, yeah, it's get_object_address actually.
>
>> Also, is providing a C-language function the best we can do? The
>> rest of the information returned by pg_event_trigger_dropped_objects
>> is usable from any language.
>
> Well, the return value from get_object_address is an ObjectAddress.
> It's simple enough to create an SQL wrapper that takes the
> address_names/address_args arrays and return an ObjectAddress; would
> this be useful?
An ObjectAddress consists of a classid, objid, and objsubid.
pg_event_trigger_dropped_objects already returns all of those as
separate fields. What am I missing?
- Heikki