On 08/10/2015 07:29 PM, Tom Lane wrote:
> I wrote:
>> Peter Eisentraut <peter_e@gmx.net> writes:
>>> This was probably just copied from how proacl and lanacl are handled,
>>> which predate typacl by quite a bit. Maybe there was a reason in those
>>> days.
>> Hm ... I wonder whether those are well-thought-out either.
> They're not. Testing with ancient servers shows that we dump very silly
> grant/revoke state for functions and languages as well, if the source
> server is too old to have proacl or lanacl (ie, pre-7.3). As with typacl,
> the silliness is accidentally masked as long as the owner doesn't do
> something like revoke the privileges granted to PUBLIC.
>
> Things work far more sanely with the attached patch, to wit we just leave
> all object privileges as default if dumping from a version too old to have
> privileges on that type of object. I think we should back-patch this into
> all supported branches; it's considerably more likely that older branches
> would be used to dump from ancient servers.
>
>
FYI this has fixed the problem that was encountered in cross-version
upgrade testing.
cheers
andrew
>