Author: REHSACK
Date: Tue May 25 13:43:55 2010
New Revision: 14050

Modified:
   dbi/trunk/lib/DBI/SQL/Nano.pm

Log:
Prevent DBD::File sees a warning we don't want to share (DROP TABLE IF EXISTS 
...)

Modified: dbi/trunk/lib/DBI/SQL/Nano.pm
==============================================================================
--- dbi/trunk/lib/DBI/SQL/Nano.pm       (original)
+++ dbi/trunk/lib/DBI/SQL/Nano.pm       Tue May 25 13:43:55 2010
@@ -284,13 +284,18 @@
     my ( $self, $data, $params ) = @_;
 
     my $table;
-    eval { ($table) = $self->open_tables( $data, 0, 1 ); };
-    if ( $self->{ignore_missing_table} and $@ and $@ =~ m/no such 
(table|file)/i )
+    my @err;
+    eval {
+       local $SIG{__WARN__} = sub { push @err, @_ };
+       ($table) = $self->open_tables( $data, 0, 1 );
+    };
+    if ( $self->{ignore_missing_table} and ($@ or @err) and grep { m/no such 
(table|file)/i } (@err, $@) )
     {
+       $@ = '';
         return ( -1, 0 );
     }
 
-    $self->do_err($@) if ($@);
+    $self->do_err($@ || $err[0]) if ($@ || @err);
     return ( -1, 0 ) unless $table;
 
     $table->drop($data);

Reply via email to