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