Skip Menu |

This queue is for tickets about the DBD-SQLite CPAN distribution.

Report information
The Basics
Id: 62371
Status: resolved
Priority: 0/
Queue: DBD-SQLite

People
Owner: Nobody in particular
Requestors: ribasushi [...] leporine.io
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in:
  • 1.27
  • 1.29
  • 1.31
Fixed in: (no value)



Subject: Rollback without a transaction is not considered an error
Probably related to RT#62370, but this code executes without a peep, even though it should DIAF: my $dbh = DBI->connect('dbi:SQLite::memory:'); $dbh->{RaiseError} = 1; $dbh->rollback;
Sigh. Apologies, I managed to screw up this report as well. The code in question (with the proper AutoCommit) is: my $dbh = DBI->connect('dbi:SQLite::memory:', undef, undef, { RaiseError => 1, AutoCommit => 1, }); $dbh->rollback; Still passes just fine
Try adding PrintWarn => 1 to the attribute hashref. You'll get a "rollback ineffective with AutoCommit enabled" warning, issued by DBI (not by DBD::SQLite). So I think it is not supposed to DIAF in this case. I close this as rejected now, but if you have any pointer that tells me it should DIAF, please reopen this. Thanks. On Fri Oct 22 06:48:45 2010, RIBASUSHI wrote: Show quoted text
> Sigh. Apologies, I managed to screw up this report as well. The code
in Show quoted text
> question (with the proper AutoCommit) is: > > my $dbh = DBI->connect('dbi:SQLite::memory:', undef, undef, { > RaiseError => 1, > AutoCommit => 1, > }); > $dbh->rollback; > > > Still passes just fine
rollback should generate a warning by default: if (DBIc_has(imp_dbh,DBIcf_AutoCommit) && DBIc_WARN(imp_dbh)) warn("rollback ineffective with AutoCommit enabled"); because DBIc_WARN should be true by default. If DBIc_WARN isn't true by default for DBD::SQLite then that's a bug.
DBD::SQLite 1.32_01 should fix this issue. Thanks. On 2010-11-03 Thu 11:51:04, TIMB wrote: Show quoted text
> rollback should generate a warning by default: > > if (DBIc_has(imp_dbh,DBIcf_AutoCommit) && DBIc_WARN(imp_dbh)) > warn("rollback ineffective with AutoCommit enabled"); > > because DBIc_WARN should be true by default. If DBIc_WARN isn't true > by default for DBD::SQLite > then that's a bug.