[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ic] Matrix options and set_row possible bug?


On 06/22/2006 02:53 PM, Jon Jensen wrote:
On Thu, 22 Jun 2006, Peter wrote:

I may see if I can fix both because the first mentioned bug would pay to help everyone out if I can fix it. I think it's branching wrong in set_row (from looking it should be branching to a different part of the function if only the key is defined, but it's not) so I'll see if I can figure out why. I've got a change in mond of using DEFAULT instead of the '?' placeholder for fields that don't exist in the @fields array, that may go a long ways towards fising it, but it would also require changing the number of bindings or the db will error out because of a mismatch of bindings to ?'s.


I'd like to see a fix for this key-only problem if you fix it.

Here's a diff against CVS, it just moves the problem block further down so it won't cause a problem (may suffer from word wrap):

Index: lib/Vend/Table/DBI.pm
===================================================================
RCS file: /var/cvs/interchange/lib/Vend/Table/DBI.pm,v
retrieving revision 2.70
diff -u -p -r2.70 DBI.pm
--- lib/Vend/Table/DBI.pm       14 Feb 2006 08:30:51 -0000      2.70
+++ lib/Vend/Table/DBI.pm       23 Jun 2006 02:03:31 -0000
@@ -1290,13 +1290,6 @@ sub set_row {
$s->filter(suppressed, $s->[$CONFIG]{COLUMN_INDEX}, $s->[$CONFIG]{FILTER_TO})
                if $cfg->{FILTER_TO};

-       if ($cfg->{PREFER_NULL}) {
-               for (keys %{$cfg->{PREFER_NULL}}) {
-                       my $i = $cfg->{COLUMN_INDEX}{$_};
-                       undef $fields[$i] if $fields[$i] eq '';
-               }
-       }
-
        my $val;

        if(scalar @fields == 1) {
@@ -1349,6 +1342,13 @@ sub set_row {
                        return undef;
                }
                return $fields[0];
+       }
+
+       if ($cfg->{PREFER_NULL}) {
+               for (keys %{$cfg->{PREFER_NULL}}) {
+                       my $i = $cfg->{COLUMN_INDEX}{$_};
+                       undef $fields[$i] if $fields[$i] eq '';
+               }
        }

        if(! length($fields[$ki]) ) {
_______________________________________________
interchange-users mailing list
suppressed
http://www.icdevgroup.org/mailman/listinfo/interchange-users


Mail converted by mhonarc 2.6.15
This archive provided courtesy of JSW4.NET, Internet Hosting Services for Small Business.