fix savepoints for Firebird ODBC
Rafael Kitover [Wed, 10 Feb 2010 22:38:24 +0000 (22:38 +0000)]
lib/DBIx/Class/Storage/DBI/ODBC/Firebird.pm
t/750firebird.t

index 11af658..e143b5b 100644 (file)
@@ -43,6 +43,9 @@ sub _init { 1 }
 # ODBC uses dialect 3 by default, good
 sub _set_sql_dialect { 1 }
 
+# releasing savepoints doesn't work, but that shouldn't matter
+sub _svp_release { 1 }
+
 1;
 
 =head1 CAVEATS
@@ -54,6 +57,11 @@ sub _set_sql_dialect { 1 }
 This driver (unlike L<DBD::InterBase>) does not currently support reading or
 writing C<TIMESTAMP> values with sub-second precision.
 
+=item *
+
+Releasing savepoints does not work, but you should still be able to safely use
+savepoints.
+
 =back
 
 =head1 AUTHOR
index 49f30c9..a1f9807 100644 (file)
@@ -24,7 +24,7 @@ my @info = (
 
 my $schema;
 
-foreach my $conn_idx (0..1) {
+foreach my $conn_idx (0..$#info) {
   my ($dsn, $user, $pass) = @{ $info[$conn_idx] || [] };
 
   next unless $dsn;
@@ -82,6 +82,10 @@ EOF
       die "rolling back outer txn";
     });
   };
+
+  like $@, qr/rolling back outer txn/,
+    'correct exception for rollback';
+
   ok ((not $ars->search({ name => 'in_outer_txn' })->first),
     'outer txn rolled back');