DBD::Pg async requets & pg_cancel

Jacques Caron <[email protected]>
Newsgroups gmane.comp.db.postgresql.dbdpg
Message-ID <[email protected]>
Hi,

I would like to submit the following patch for inclusion in the next 
release of DBD::Pg:

http://staff.oxado.com/~jc/patch.dbd-pg.async+cancel

This pretty much trivial patch adds 5 new methods:
$sth->pg_sendquery is equivalent to $sth->execute, but only sends the 
request, and does not wait for the results
$sth->pg_getresult handles the results
$dbh->pg_busy tells if $sth->getresult will block
$dbh->pg_consume handles incoming data from the server
$dbh->pg_cancel cancels the existing query

pg_sendquery and pg_getresult are really just a split of the existing 
execute method, using PQsendQuery* calls then PQgetResult rather than 
the original PQexec* calls. The original execute function now just 
successively calls both methods (it avoids a lot of code 
duplication). Apparently the PQsenqQuery* functions have been there 
for quite a while so I believe it should work in all cases, but if 
they don't leaving the execute function untouched is always an option.

I have tested a few simple scenarios, but haven't tried it in 
production yet, so I can't vouch for the validity of the code, but 
the changes are quite minimal and straightforward so I don't expect 
much complication.

Any comments welcome.

Jacques.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.