On Mon, 10 Aug 2026 at 15:35, Ayush Tiwari <[email protected]> wrote: > > Hi, > > On Mon, 10 Aug 2026 at 15:13, Andrey Borodin <[email protected]> wrote: >> >> >> >> > On 10 Aug 2026, at 12:03, Kirill Reshke <[email protected]> wrote: >> > >> > I discovered a sequence of ddl which creates grant configuration, >> > unrestorable from pg_dump-pg_restore. >> >> The diagnosis looks right, but I think the proposed fix is too broad. >> >> Suppose the owner grants an option directly to role A, role B is a member >> of A, and A grants the option to B. This is not circular: after revoking >> B's membership in A, the grant from A remains valid. Changing the loop to >> has_privs_of_role(B, A) would remove A's independently held option and >> reject this case. >> >> select_best_grantor() uses aclmask_direct() instead of aclmask(). WDYT about >> this route? > > > There was some prior discussion around this area on [0]. > > Not sure if it's the same block, but just adding reference. > > Regards, > Ayush > > [0] > https://www.postgresql.org/message-id/CAJTYsWUvyQchDAA6y2a9YdLcApG%3DccArpsbr77FeNZyx40bnmQ%40mail.gmail.com
v2 with aclmask_direct function used in check_circular + regress test for this. Ayush, yep i am aware of the thread you are pointing to, I had looked into it before posting, but it looks like this is a slightly different case. Anyway, I want to review [0] soon, It was on my to-do list. Thank you [0] https://www.postgresql.org/message-id/CAJTYsWUvyQchDAA6y2a9YdLcApG%3DccArpsbr77FeNZyx40bnmQ%40mail.gmail.com -- Best regards, Kirill Reshke
v2-0001-Fix-circular-grant-bug.patch
Description: Binary data
