Re: BUG #8586: Misleading fe_sendauth error message
От | Erik de Castro Lopo |
---|---|
Тема | Re: BUG #8586: Misleading fe_sendauth error message |
Дата | |
Msg-id | 20131111151938.36cb6bcaf4b83b70b0d068aa@mega-nerd.com обсуждение исходный текст |
Ответ на | Re: BUG #8586: Misleading fe_sendauth error message (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: BUG #8586: Misleading fe_sendauth error message
|
Список | pgsql-bugs |
Tom Lane wrote: > mle+tools@mega-nerd.com writes: > > Running the command: > > PGPASSFILE=pgpass psql --no-password --username myname mydb > > --command="\dt" > > works fine if the port number in the pgpass file is correct, but if the port > > number is incorrect the error message is: > > psql: fe_sendauth: no password supplied > > which is highly misleading. Surely the error message should be "connection > > refused" or some such? > > I'm not sure how we could improve that. If the port number in the > password file doesn't match the intended connection, that means the > entry doesn't apply to this connection. We can hardly issue error > messages on the basis of the presence of unrelated entries in a > .pgpass file. So what the code is seeing is that the server demanded > a password (or so I'd assume), and it did not have one to give. I haven't read the code, but my guess is that psql does the following: a) Grabs the user and database name from command line. b) Looks up dbname in pgpassfile to get host and port number etc. c) Connects to host:port and uses supplied username/password. When the connect fails in step c), the error should be "connection failed". Is this not how it should work? Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/
В списке pgsql-bugs по дате отправления: