Fancy DBD::DBM behaviour

Jens Rehsack <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.sybase.devel
Message-ID <[email protected]>
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
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.