Re: BUG #6657: Documentation bug for PQconnectdbParams

Lists: pgsql-bugs
From: ediven(at)edsiohio(dot)com
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #6657: Documentation bug for PQconnectdbParams
Date: 2012-05-21 19:04:47
Message-ID: E1SWXuR-0003d2-5C@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 6657
Logged by: Eric Diven
Email address: ediven(at)edsiohio(dot)com
PostgreSQL version: 9.0.2
Operating system: Solaris
Description:

First off, I should thank you all for the generally excellent documentation.
The plpgsql documentation has been particularly helpful, in large part
thanks to the relevant and well-explained examples.

That said, I would humbly suggest that the documentation for the
PQconnectdbParams function omits certain details. Notably, the function
will return NULL if you pass in a keywords array with an unrecognized
keyword.

I'll be the first to admit that passing in a keyword of "host_addr" instead
of "hostaddr" was kind of a dumb mistake on my part, but I'd argue that I'd
have figured it out a lot sooner if this were the documented behavior of
PQconnectdbParams for this case.

I realize I'm submitting this against an out of date version of postgresql,
and the the behavior might have changed since then, but since the
documentation covers all of 9.0.x, I would say that it still bears
updating.

Thanks,

Eric Diven

Example code follows:

#include <libpq-fe.h>

int main (int argc, char *argv[])
{
PGconn *conn = NULL;
char *keys[] = { "host_addr", "user", "password", NULL };
char *values[] = { "192.168.0.42", "user", "password", NULL };

conn = PQconnectdbParams (keys, values, 0);

printf ("%p\n", conn);
return 0;
}


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: ediven(at)edsiohio(dot)com
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #6657: Documentation bug for PQconnectdbParams
Date: 2012-05-21 23:51:17
Message-ID: 10105.1337644277@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

ediven(at)edsiohio(dot)com writes:
> PostgreSQL version: 9.0.2
> ...
> That said, I would humbly suggest that the documentation for the
> PQconnectdbParams function omits certain details. Notably, the function
> will return NULL if you pass in a keywords array with an unrecognized
> keyword.

This is a known bug that was fixed in 9.0.4. When I try it now, I get a
PGconn object back, with status CONNECTION_BAD, and PQerrorMessage returns
invalid connection option "host_addr"
which was the intended behavior all along, but there was a typo in 9.0;
see
http://git.postgresql.org/gitweb/?p=postgresql.git&a=commitdiff&h=672def62259354f28000e8cfb97b6668192369c2

In theory at least, you should only get a NULL back if there's
insufficient memory to create a PGconn object at all.

regards, tom lane