I wrote:
> Oops. Strange though, this looks like it must be a very long-standing
> bug: aclinsert3 thinks it can delete any zero-permissions item from an
> ACL array, whereas aclcheck has a hard-wired assumption that the world
> item is always there. Could we have missed this for this long?
Yup, we could've. It looks like "revoke all from public" has been
broken clear back to Postgres95, if not longer. Amazing that no one
noticed. Anyway, fixed now.
regards, tom lane