Andrew Dunstan <and...@dunslane.net> writes: > Still not quite there. If either 9.0 or 9.1 is upgraded to 9.2 or later, > they fail like this:
> pg_restore: creating TYPE "public"."myshell" > pg_restore: setting owner and privileges for TYPE "public"."myshell" > pg_restore: setting owner and privileges for ACL "public"."myshell" > pg_restore: [archiver (db)] Error from TOC entry 4293; 0 0 ACL > myshell buildfarm > pg_restore: [archiver (db)] could not execute query: ERROR: type > "myshell" is only a shell > Command was: REVOKE ALL ON TYPE "myshell" FROM PUBLIC; > REVOKE ALL ON TYPE "myshell" FROM "buildfarm"; > GRANT ALL ON TYPE "myshell" TO PUBL... > We could just declare that we don't support this for versions older than > 9.2, in which case I would just remove the type from the test database > before testing cross-version upgrade. But if it's easily fixed then > let's do it. It looks to me like the reason for this is that pg_dump forces the "typacl" of a type to be '{=U}' when reading the schema data for a pre-9.2 type, rather than reading it as NULL (ie default permissions) which would result in not printing any grant/revoke commands for the object. I do not see a good reason for that; quite aside from this problem, it means there is one more place that knows the default permissions for a type than there needs to be. Peter, what was the rationale? regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers