Hi all,

I currently rewrite SQL::Statment tests to run all tests (if possible)
against SQL::Statement and all suitable (and known to me)
DBI::DBD::SqlEngine based drivers.

During this I detected an error in a test which has a bad reaction
of DBD::DBM:

# $tdbh is a Test::DBH, which encapsulates some calls to abstract
# tests against SQL::Statement and "real" $dbh's
  1: ok( $tdbh->do( "CREATE TABLE foo (col INT)" ), 'create foo' ) or
diag( $dbh->errstr() );
  2: ok( $tdbh->do( "SELECT CoL from foo WHERE 1=0" ), 'retrieve
->{NAME}' ) or diag( $dbh->errstr() );

This fails (as expected) in line 1 with "At least 2 columns are
required for DBD::DBM tables ...", but leaves the dbm files lying
around and line 2 fails with "Cannot modify readonly table at
lib/DBD/DBM.pm line 413.".

I think, failed create should force DBI::SQL::Nano and SQL::Statement
force to remove the files, but is this a really correct/desired behavior
(e.g. how would DBD::CSV behave when invalid characters are in the
first line)?

Best regards,
Jens

Reply via email to