Thread: pgsql: In AlterRole, make bypassrls an int
In AlterRole, make bypassrls an int When reworking bypassrls in AlterRole to operate the same way the other attribute handling is done, I missed that the variable was incorrectly a bool rather than an int. This meant that on platforms with an unsigned char, we could end up with incorrect behavior during ALTER ROLE. Pointed out by Andres thanks to tests he did changing our bool to be the one from stdbool.h which showed this and a number of other issues. Add regression tests to test CREATE/ALTER role for the various role attributes. Arrange to leave roles behind for testing pg_dumpall, but none which have the LOGIN attribute. Back-patch to 9.5 where the AlterRole bug exists. Branch ------ REL9_5_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/0070fd8d3c1c8a733c041bfcedd41e38cee0a963 Modified Files -------------- src/backend/commands/user.c | 2 +- src/test/regress/expected/roleattributes.out | 236 ++++++++++++++++++++++++++ src/test/regress/parallel_schedule | 2 +- src/test/regress/serial_schedule | 1 + src/test/regress/sql/roleattributes.sql | 85 ++++++++++ 5 files changed, 324 insertions(+), 2 deletions(-)
Stephen Frost wrote: > Add regression tests to test CREATE/ALTER role for the various role > attributes. Arrange to leave roles behind for testing pg_dumpall, but > none which have the LOGIN attribute. There is a problem in this test, which is that it throws errors if the roles already exist. Maybe CREATE IF NOT EXISTS is needed, or perhaps a DROP beforehand? -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
On Friday, August 21, 2015, Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
Stephen Frost wrote:
> Add regression tests to test CREATE/ALTER role for the various role
> attributes. Arrange to leave roles behind for testing pg_dumpall, but
> none which have the LOGIN attribute.
There is a problem in this test, which is that it throws errors if the
roles already exist. Maybe CREATE IF NOT EXISTS is needed, or perhaps
a DROP beforehand?
Right, not sure it's that simple since we don't want the output to differ based on if they exist already or not. Might be able to adjust the log level to address that, or a DO block which handles it if nothing else works.
Thanks!
Stephen