On Nov 14, 2013, at 9:17 AM, David E. Wheeler <da...@justatheory.com> wrote:

> The error about "foo" not existing is gone, overridden by the second error 
> about "bar" missing. This can lead to hard-to-find bugs. What if the second 
> query depended on a condition set up by the first, and the first failed? As a 
> user, I would only see the second error, and think that the first statement 
> had succeeded. It would take me quite a while to figure out that it had not, 
> in fact, succeeded.

I’m also finding it means I can’t do error handling in the callback. I have to 
do this to get it to ignore errors:

                        $dbh->do('SET search_path = ?', undef, 'foo');
                        $dbh->set_err(undef) if $dbh->err;

I feel a little dirty.

> All of which is to say, your fix in 1.630 certainly improves the situation, 
> but since callbacks are really userland code, I think it would be beneficial 
> to change callbacks to run in an outer context, with the outer DBI handles 
> passed to them. Possible?

This would eliminate all of these problems, no?

Thanks,

David

Reply via email to