On Fri, Jun 18, 2021 at 10:00:33PM +0000, Tom Lane wrote: > Fix misbehavior of DROP OWNED BY with duplicate polroles entries. > > Ordinarily, a pg_policy.polroles array wouldn't list the same role > more than once; but CREATE POLICY does not prevent that. If we > perform DROP OWNED BY on a role that is listed more than once, > RemoveRoleFromObjectPolicy either suffered an assertion failure > or encountered a tuple-updated-by-self error. Rewrite it to cope > correctly with duplicate entries, and add a CommandCounterIncrement > call to prevent the other problem. > > Per discussion, there's other cleanup that ought to happen here, > but this seems like the minimum essential fix.
A nit here.
+ /* If any roles remain, update the policy entry. */
+ if (num_roles > 0)
+ {
/* This is the array for the new tuple */
This indentation is incorrect.
--
Michael
signature.asc
Description: PGP signature
