Find dangling membership roles in pg_dumpall

Andreas 'ads' Scherbaum <ads@pgug.de>

From: Andreas 'ads' Scherbaum <ads@pgug.de>
To: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-04-26T10:18:16Z
Lists: pgsql-hackers

Attachments

Hello,

pg_dumpall.c has a function dumpRoleMembership() which dumps all
membership roles. This function includes a piece of code which checks
if the membership tree has an open end which can't be resolved.
However that code is never used.

The variable prev_remaining is initially set to 0, and then never changed.
Which in turn never executes this code:

if (remaining == prev_remaining)

because the loop is only entered while "remaining > 0".

The attached patch fixes this problem, and updates prev_remaining inside
the loop.


Co-Author: Artur Zakirov <zaartur@gmail.com>
who reviewed the patch.


Regards

-- 
				Andreas 'ads' Scherbaum
German PostgreSQL User Group
European PostgreSQL User Group - Board of Directors
Volunteer Regional Contact, Germany - PostgreSQL Project

Commits

  1. Fix stop condition for dumping GRANT commands