On 20-2-2007 8:07 Tom Lane wrote:
It's surely incorrect as a means of getting out of a COPY state. To
tell the truth, if their intention is to close the connection
unceremoniously, they should just do that, ie PQfinish or just quit
the application. So I'd suggest removing that loop.
I think its meant as a generic way of closing the connection. I.e. not
only to close the connection as a last-resort "clean things up before we
return to the webserver/console, but also half-way if the client asks
for it (as the code behind 'pg_close').
I.e. you don't want memory-leaks to build up because someone, for some
reason, needs something like this and the internal code doesn't clean up
something that easily could've been cleaned up:
while($something)
{
$c = pg_connect("..");
// Queries
pg_close($c);
}
Although obviously, that kind of code is not so common and should only
be used if there is a very good reason not to open/close the connection
outside the loop. Besides that, its very common in php to just leave the
garbage to the php-engine, probably even worse than in Java.
I guess, that if they really wanted to keep something like this
while-loop, they need to request the result-status and if its not the
result of a finished query (either failed, ok, empty, etc) they should
send a cancel request?
Anyway, I'll add your advice to that bug-report.
Best regards,
Arjen
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match