On 01/18/2011 11:42 AM, Dimitri Fontaine wrote:
> I've fixed the case by having the code remember the function's extension
> if any, and restore it along with the other dependencies.
The only question here is should CREATE OR REPLACE be allowed. I just
realized this could present a new problem. If I am not mistaken, when
loading from dump, you suddenly get the extension's version back, not
the one you defined in CREATE OR REPLACE. If this is the case, this
should NOT be allowed. And by the same reasoning, ALTER FUNCTION
[anything] should not be allowed either. Or at least then the
function/(or any object for that matter) should be restored somehow from
the backup, not from the extension files.
I still haven't had the time to start pg_dump reviewing, so I haven't
verified if this is really a problem. But I suspect so...
- Anssi