Fix brain fade in e530be2c5ce77475d56ccf8f4e0c4872b666ad5f.
authorRobert Haas <rhaas@postgresql.org>
Tue, 26 Jul 2022 19:10:25 +0000 (15:10 -0400)
committerRobert Haas <rhaas@postgresql.org>
Tue, 26 Jul 2022 19:12:09 +0000 (15:12 -0400)
The BoolGetDatum() call ended up in the wrong place. It should be
applied when we, err, want to convert a bool to a datum.

Thanks to Tom Lane for noticing this.

Discussion: http://postgr.es/m/2511599.1658861964@sss.pgh.pa.us

src/backend/commands/user.c

index 37260edbe4857d41db520c818a226297841ac872..94135fdd6b6a6cca21c279d065996e08d690a1b3 100644 (file)
@@ -693,14 +693,14 @@ AlterRole(ParseState *pstate, AlterRoleStmt *stmt)
     */
    if (dissuper)
    {
-       bool    should_be_super = BoolGetDatum(boolVal(dissuper->arg));
+       bool    should_be_super = boolVal(dissuper->arg);
 
        if (!should_be_super && roleid == BOOTSTRAP_SUPERUSERID)
            ereport(ERROR,
                    (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
                     errmsg("permission denied: bootstrap user must be superuser")));
 
-       new_record[Anum_pg_authid_rolsuper - 1] = should_be_super;
+       new_record[Anum_pg_authid_rolsuper - 1] = BoolGetDatum(should_be_super);
        new_record_repl[Anum_pg_authid_rolsuper - 1] = true;
    }