Bob Rossi
Fri, 16 May 2008 13:33:24 -0700
Hi,
I'm looking at dbd_pgsql_open. I noticed the comment,
/* if there's an error in the connect string or something we get
* back a * bogus connection object, and things like PQreset are
* liable to segfault, so just close it out now. it would be nice
* if we could give an indication of why we failed to connect... */
if (PQstatus(conn) != CONNECTION_OK) {
PQfinish(conn);
return NULL;
}
I'm suprised to see such a comment, since a little bit of research
showed me this,
http://www.postgresql.org/docs/8.0/static/libpq-example.html
/* Check to see that the backend connection was successfully made */
if (PQstatus(conn) != CONNECTION_OK)
{
fprintf(stderr, "Connection to database failed: %s",
PQerrorMessage(conn));
exit_nicely(conn);
}
So, I think that the function PQerrorMessage should be called bewtween the
PQstatus and the PQfinish. However, the api,
static apr_dbd_t *dbd_pgsql_open(apr_pool_t *pool, const char *params)
doesn't allow for a 'string' message to be returned.
What can we do? I find this interface useless, if I can't get an error
message when it fails.
Bob Rossi