Обсуждение: Re: [INTERFACES] libpq problem (really libpq feature request)

Поиск
Список
Период
Сортировка

Re: [INTERFACES] libpq problem (really libpq feature request)

От
"Jonathan davis"
Дата:
>I think Jonathan is alluding (in a rather obtuse manner :-)) to an issue
>that is on my wishlist also, namely a more systematic way of identifying
>errors. Currently, libpq gives you an error state (no error, nonfatal
>error, or fatal error) and an error message. What would be nice is if
>there was also some sort of error code (eg an integer) that identified the
>exact nature of the problem. And, of course, a published spec of what the
>error codes mean. Then it would be much easier for one's program to know
>what the error was, and, if possible, do something about it. From my point
>of view, there are basically two classes of error - programmer error, and
>resource limitation error (eg network problems, disk space problems). The
>fundamental difference is that for the latter, the user might be able to
>do something about it, whereas for the former, you need to modify the
>code. It would be good if a program could deduce which it was without
>having to do anything silly and dangerous like trying to parse the error
>message.
>
>Tim
>


the postgresql client is running under win98 and the server under FreeBSD3.1
when I'm trying to connect to the server and the server is not running, the
error message is:
connectDB() -- socket() failed:
errno=0
No error

and when the password is incorrect, i have the same error

it is no way to difference the errors !!!



Re: [INTERFACES] libpq problem (really libpq feature request)

От
Tom Lane
Дата:
"Jonathan davis" <haj@idianet.net> writes:
> the postgresql client is running under win98 and the server under FreeBSD3.1
> when I'm trying to connect to the server and the server is not running, the
> error message is:
> connectDB() -- socket() failed:
> errno=0
> No error
> and when the password is incorrect, i have the same error
> it is no way to difference the errors !!!

That's because they are the same error --- if the socket() call is
failing then the client is not getting as far as attempting to contact
the server, let alone checking the password.  I do not know why you
are not getting a useful errno value; probably another deficiency of
the Windoze socket code :-(.  But I'd suggest looking at whether
TCP support is turned on, whether there is a problem linking the socket
support library into the application, etc.  Any Win experts here with
an idea what could make socket() fail?
        regards, tom lane