Обсуждение: Dedect unknown database in 08.01.0100 and Postgres 8.1

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

Dedect unknown database in 08.01.0100 and Postgres 8.1

От
"Andrus"
Дата:
I need to dedect the case where database specified in connection string does
not exist.

Earlier odbc driver with Postgres 8.0 returns special error text in this
case:

FATAL:  database "foo" does not exist


New ODBC driver with Postgres 8.1 returns the same error in all cases:

Could not connect to the server

How to determine is this error caused by non-existing database in cluster or
by other cause ?


Andrus



Re: Dedect unknown database in 08.01.0100 and Postgres 8.1

От
Tom Lane
Дата:
"Andrus" <eetasoft@online.ee> writes:
> Earlier odbc driver with Postgres 8.0 returns special error text in this
> case:
> FATAL:  database "foo" does not exist

> New ODBC driver with Postgres 8.1 returns the same error in all cases:
> Could not connect to the server

This seems like a serious regression in behavior.  Why isn't the driver
returning the error string provided by libpq?

            regards, tom lane

Re: Dedect unknown database in 08.01.0100 and Postgres 8.1

От
Дата:
confirmed here: if you specify wrong account or password in the connection
string, all the odbc driver (unicode version) returns is "Could not connect
to the server"

cheers,
thomas

----- Original Message -----
From: "Tom Lane" <tgl@sss.pgh.pa.us>
To: "Andrus" <eetasoft@online.ee>
Cc: <pgsql-odbc@postgresql.org>
Sent: Tuesday, November 08, 2005 8:02 PM
Subject: Re: [ODBC] Dedect unknown database in 08.01.0100 and Postgres 8.1


> "Andrus" <eetasoft@online.ee> writes:
>> Earlier odbc driver with Postgres 8.0 returns special error text in this
>> case:
>> FATAL:  database "foo" does not exist
>
>> New ODBC driver with Postgres 8.1 returns the same error in all cases:
>> Could not connect to the server
>
> This seems like a serious regression in behavior.  Why isn't the driver
> returning the error string provided by libpq?
>
> regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: if posting/reading through Usenet, please send an appropriate
>       subscribe-nomail command to majordomo@postgresql.org so that your
>       message can get through to the mailing list cleanly
>



Re: Dedect unknown database in 08.01.0100 and Postgres 8.1

От
"Dave Page"
Дата:

> -----Original Message-----
> From: pgsql-odbc-owner@postgresql.org
> [mailto:pgsql-odbc-owner@postgresql.org] On Behalf Of Tom Lane
> Sent: 08 November 2005 19:02
> To: Andrus
> Cc: pgsql-odbc@postgresql.org
> Subject: Re: [ODBC] Dedect unknown database in 08.01.0100 and
> Postgres 8.1
>
> "Andrus" <eetasoft@online.ee> writes:
> > Earlier odbc driver with Postgres 8.0 returns special error
> text in this
> > case:
> > FATAL:  database "foo" does not exist
>
> > New ODBC driver with Postgres 8.1 returns the same error in
> all cases:
> > Could not connect to the server
>
> This seems like a serious regression in behavior.  Why isn't
> the driver
> returning the error string provided by libpq?

Some left-over debugging code from the port to libpq by the looks of it.
Fix committed, though interestingly in my testing I *almost* always got
the following message from libpq rather than the expected username or db
doesn't exist message:

could not receive data from server: The system cannot find the path
specified.
 (0x00000003/3)

Also, am I right in thinking there is no way to get an sqlstate code
from a libpq connection, or did I miss something in the docs? I realise
of course that you can get one from a result object.

Regards, Dave

Re: Dedect unknown database in 08.01.0100 and Postgres 8.1

От
Tom Lane
Дата:
"Dave Page" <dpage@vale-housing.co.uk> writes:
> Also, am I right in thinking there is no way to get an sqlstate code
> from a libpq connection, or did I miss something in the docs?

Yeah, mainly because there is not any support within libpq for
generating SQLSTATE codes for errors reported by the library itself.
Somebody should step up and fix that sometime.

            regards, tom lane