DBI & iThreads

DBI & iThreads

am 11.03.2004 17:48:40 von hugh.arnold

I want to spin off $sth->execute() & just this statement into a thread, so I
can perform other tasks while the database is preparing the results of my
query. Like:
my $sth=$dbh->prepare(...);
my $thread=async{$sth->execute()};
...do other stuff for a while...
$thread->join();
while (my $row=$sth->fetchrow_arrayref()) {...}

The DBI package explicitly forbids sharing a statement handle in this way,
although some C database interfaces will cope with it. I am using DBI 1.41,
DBD::mysql 2.9003 & perl 5.8.2. My DBD::mysql is built against a
thread-safe version of libmysqlclient_r.so. And this mysqlclient_r library
doesn't mind being used in this way.

Can I disable the DBI check for sharing of handles between threads? Are
there any gotchas to doing this? Any alternative(hopefully cleaner) methods
for backgrounding my initial $sth->execute() call?

Thanks much.

------------------------------------------------------------ ------------------
This message is intended only for the personal and confidential use of the
designated recipient(s) named above. If you are not the intended recipient of
this message you are hereby notified that any review, dissemination,
distribution or copying of this message is strictly prohibited. This
communication is for information purposes only and should not be regarded as
an offer to sell or as a solicitation of an offer to buy any financial
product, an official confirmation of any transaction, or as an official
statement of Lehman Brothers. Email transmission cannot be guaranteed to be
secure or error-free. Therefore, we do not represent that this information is
complete or accurate and it should not be relied upon as such. All
information is subject to change without notice.


--
MySQL Perl Mailing List
For list archives: http://lists.mysql.com/perl
To unsubscribe: http://lists.mysql.com/perl?unsub=gcdmp-msql-mysql-modules@m .gmane.org