Re: Building Postgresql under Windows question

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: Building Postgresql under Windows question
Дата
Msg-id 49F77C0F.40500@dunslane.net
обсуждение исходный текст
Ответ на Re: Building Postgresql under Windows question  ("Dann Corbit" <DCorbit@connx.com>)
Список pgsql-hackers

Dann Corbit wrote:
>> -----Original Message-----
>> From: Andrew Dunstan [mailto:andrew@dunslane.net]
>> Sent: Tuesday, April 28, 2009 2:27 PM
>> To: Dann Corbit
>> Cc: pgsql-hackers@postgresql.org
>> Subject: Re: [HACKERS] Building Postgresql under Windows question
>>
>>
>>
>> Dann Corbit wrote:
>>     
>>> In this function:
>>> static bool
>>> test_postmaster_connection(bool do_checkpoint)
>>>
>>> This code will never succeed:
>>>     snprintf(connstr, sizeof(connstr),
>>>              "dbname=postgres port=%s connect_timeout=5",
>>> portstr);
>>>
>>>     for (i = 0; i < wait_seconds; i++)
>>>     {
>>>         if ((conn = PQconnectdb(connstr)) != NULL &&
>>>             (PQstatus(conn) == CONNECTION_OK ||
>>>              PQconnectionNeedsPassword(conn)))
>>>         {
>>>             PQfinish(conn);
>>>             success = true;
>>>             break;
>>>         }
>>>
>>>
>>> Because pg_hba.conf has this:
>>> # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
>>>
>>> # IPv4 local connections:
>>> host    all         all         127.0.0.1/32          trust
>>> # IPv6 local connections:
>>> host    all         all         ::1/128               trust
>>>
>>> to allow connections from the local machine.
>>>
>>> (A password is not needed to connect, so the code always fails).
>>>
>>>
>>>       
>> Why won't
>>
>>     PQstatus(conn) == CONNECTION_OK
>>
>> be true and thus the code will succeed without requiring a password?
>>     
>
> It returns the value CONNECTION_STARTED
>
> I have found a work-around for now.
>
> If I set the method to password in pg_hba.conf, the service starts and
> runs correctly.
>
> It is only when the method is set to trust that we get 100% failures.
>
>
>   

Then that looks like a libpq bug :-( According to the docs:

"The status can be one of a number of values. However, only two of these 
are seen outside of an asynchronous connection procedure: CONNECTION_OK 
and CONNECTION_BAD."

cheers

andrew


В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Dann Corbit"
Дата:
Сообщение: Re: Building Postgresql under Windows question
Следующее
От: Tom Lane
Дата:
Сообщение: Re: docs: mention autovacuum when ANALYZE is recommended