> The use case is: version upgrades. I want to be able to have a search_path > of something like 'pg_catalog, compat, public'. That way we can provide > compatibility versions of newer functions in the "compat" schema, which get > taken over by pg_catalog when running on a newer version. That way all the > compatibility crap is clearly separated from the stuff that should be in > "public".
Can't you achieve that with "ALTER DATABASE .. SET search_path"?
No, because I have a thousand SECURITY DEFINER functions which have to override search_path or they'd be insecure.