• Tom Lane's avatar
    Make psql's \password default to CURRENT_USER, not PQuser(conn). · 99389cb6
    Tom Lane authored
    The documentation says plainly that \password acts on "the current user"
    by default.  What it actually acted on, or tried to, was the username
    used to log into the current session.  This is not the same thing if
    one has since done SET ROLE or SET SESSION AUTHENTICATION.  Aside from
    the possible surprise factor, it's quite likely that the current role
    doesn't have permissions to set the password of the original role.
    
    To fix, use "SELECT CURRENT_USER" to get the role name to act on.
    (This syntax works with servers at least back to 7.0.)  Also, in
    hopes of reducing confusion, include the role name that will be
    acted on in the password prompt.
    
    The discrepancy from the documentation makes this a bug, so
    back-patch to all supported branches.
    
    Patch by me; thanks to Nathan Bossart for review.
    
    Discussion: https://postgr.es/m/747443.1635536754@sss.pgh.pa.us
    99389cb6
command.c 137 KB