DBI::mysql failures aren't being caught in an eval block in version 1.623

Hunter McMillen <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.general
Message-ID <[email protected]>
Hello,

My company is not on the most current version of DBI, we typically use 
v1.618. We built a new server however that is using v1.623, this is the 
version I am having issues with.

We have a module that does bulk inserts into tables using temporary 
files, as one of the tests for this module I try to upload a file to a 
table that does not exists. Which results not in a table does not exist 
error, but a permissions error.

    DBD::mysql::db do failed: INSERT, DELETE command denied to user
    'user'@'localhost' for table 'faketable' [for Statement "LOAD DATA
    LOW_PRIORITY LOCAL INFILE '/tmp/GNjPykldGgfakedb.faketable.dat' 
    REPLACE  INTO TABLE fakedb.faketable CHARACTER SET utf8 FIELDS
    TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY
    '\n' (client,param,value)"]

The call to the statement that attempts to upload this data is wrapped 
in an eval block:

    eval {
        $dbh->upload($data);
    };
    if ($EVAL_ERROR) {
         # do something
    }

In version 1.618, the /eval/ block catches the returned error. In 
version 1.623 the error is not captured, and the program crashes.

Looking at the change log between these revisions I don't see anything 
related to this, but could this have been a bug introduced in that time 
frame?

Thanks.
Hunter McMillen.



-- 
 <http://www.rimmkaufman.com>
<http://twitter.com/rimmkaufman>  <http://www.linkedin.com/company/85385> <http://plus.google.com/104980442218952272663/posts>
  <http://www.facebook.com/rimmkaufman>  <http://www.RKGblog.com>
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.