Re: dealing with extension dependencies that aren't quite 'e'

Robert Haas <robertmhaas@gmail.com>

From: Robert Haas <robertmhaas@gmail.com>
To: Abhijit Menon-Sen <ams@2ndQuadrant.com>
Cc: "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2016-01-16T17:18:53Z
Lists: pgsql-hackers
On Jan 16, 2016, at 9:48 AM, Abhijit Menon-Sen <ams@2ndQuadrant.com> wrote:
> Right, here's another try.
> 
> The extension does trigger-based DML auditing. You install it using
> CREATE EXTENSION and then call one of its functions to enable auditing
> for a particular table. That function will create a customised trigger
> function based on the table's columns and a trigger that uses it:
> 
>    CREATE FUNCTION fn_audit_$table_name() RETURNS TRIGGER …
>    CREATE TRIGGER … ON $table_name … EXECUTE fn_audit_$table_name;
> 
> All that works fine (with pg_dump too). But if you drop the extension,
> the triggers stop working because the trigger function calls functions
> in the extension that are now gone.

This seems like one manifestation of the more general problem that we don't have any real idea what objects a function definition depends on.

...Robert

Commits

  1. Support ALTER THING .. DEPENDS ON EXTENSION