Description
https://www.postgresql.org/docs/current/libpq-pgpass.html isn't fully explicit about how to handle backslash escapes in the .pgpass
file, however it's reasonably clear from the phrasing that backslashes serve only to escape backslashes and colons and therefore aren't considered part of the value they're used in. E.g., a .pgpass
row of …
*:*:test\:db:test\\:password from pgpass with escapes
conveys:
- a database name of
test:db
, nottest\:db
- a user name of
test\
, nottest\\
I ran into this problem because I have a password of 4:K1…
, encoded as 4\:K1…
, and it works with psql
but not asyncpg
. Once I remove the backslash from .pgpass
, it starts working with asyncpg
but failing with psql
.
I would've provided a failing test and even a code change, but I can't get python setup.py test
or pip install -e .[test]
to work in a run-of-the-mill Python 3.12 virtualenv on my run-of-the-mill MacOS.