Author: REHSACK
Date: Tue May 25 13:14:16 2010
New Revision: 14048

Modified:
   dbi/trunk/lib/DBD/DBM.pm

Log:
- croak for invalid amount of columns


Modified: dbi/trunk/lib/DBD/DBM.pm
==============================================================================
--- dbi/trunk/lib/DBD/DBM.pm    (original)
+++ dbi/trunk/lib/DBD/DBM.pm    Tue May 25 13:14:16 2010
@@ -533,6 +533,10 @@
 {
     my ( $self, $data, $row_aryref ) = @_;
     my $meta = $self->{meta};
+    my $ncols = scalar(@{$meta->{col_names}});
+    my $nitems = scalar(@{$row_aryref});
+    $ncols == $nitems or
+        croak "You tried to insert $nitems, but table is created with $ncols 
columns";
     my $key  = shift @$row_aryref;
     if ( $meta->{dbm_mldbm} )
     {
@@ -552,8 +556,15 @@
 {
     my ( $self, $data, $row_aryref ) = @_;
     my $meta = $self->{meta};
+
+    # some sanity checks ...
+    my $ncols = scalar( @$row_aryref );
+    $ncols < 1 and croak "At least 2 columns are required for DBD::DBM tables 
...";
+    !$meta->{dbm_mldbm} and $ncols > 2 and
+       croak "Without serializing with MLDBM only 2 columns are supported, you 
give $ncols";
     $meta->{col_names} = $row_aryref;
     return unless $meta->{dbm_store_metadata};
+
     my $stmt      = $data->{f_stmt};
     my $col_names = join( ',', @{$row_aryref} );
     my $schema    = $data->{Database}->{Statement};

Reply via email to