Hi Gerald, Doesn't look like DBIx::Recordset supports composite primary keys - is that by design or it just a feature you haven't needed?
Where it would be most useful for me is on Execute updates, since that's how you're distinguishing keys from values - I guess you can use an explicit where clause but it's much less clean than being able to say '!PrimKey' => 'uid,name', for example. The change just for updates is fairly modest (patch attached, against 0.24); changing it across the board looks much less so. Cheers, Gavin
*** Recordset-dist.pm Mon Oct 29 08:21:02 2001 --- Recordset.pm Mon Oct 29 10:05:41 2001 *************** *** 2552,2578 **** if (defined ($primkey = $self->{'*PrimKey'})) ! { ! $val = $data -> {$primkey} ; ! $val = $$val if (ref ($val) eq 'SCALAR') ; ! #print LOG "1 primkey = $primkey d=$data->{$primkey} w=" . ($where?$where->{$primkey}:'<undef>') . " v=$val\n" ; ! if (defined ($val) && !$where) ! { ! $where = {$primkey => $val} ; ! } ! elsif (ref ($where) eq 'HASH' && $val eq $where -> {$primkey}) ! { ! delete $data -> {$primkey} ; ! } ! else ! { ! $primkey = '' ; ! } ! } ! else ! { ! $primkey = '' ; ! } #print LOG "2 primkey = $primkey d=$data->{$primkey} w=" . ($where?$where->{$primkey}:'<undef>') . " v=$val\n" ; my $datacnt = 0 ; --- 2552,2585 ---- if (defined ($primkey = $self->{'*PrimKey'})) ! { ! my $nowhere = !$where ; ! $where = {} if $nowhere ; ! my $reset = 0 ; ! for my $pk (split /,\s*/, $primkey) ! { ! $val = $data -> {$pk} ; ! $val = $$val if (ref ($val) eq 'SCALAR') ; ! #print LOG "1 primkey = $pk d=$data->{$pk} w=" . ($where?$where->{$pk}:'<undef>') . " v=$val\n" ; ! if (defined ($val) && $nowhere) ! { ! $where->{$pk} = $val ; ! } ! elsif (ref ($where) eq 'HASH' && $val eq $where -> {$pk}) ! { ! delete $data -> {$pk} ; ! } ! else ! { ! $reset = 1; ! } ! } ! $primkey = '' if $reset; ! } ! else ! { ! $primkey = '' ; ! } #print LOG "2 primkey = $primkey d=$data->{$primkey} w=" . ($where?$where->{$primkey}:'<undef>') . " v=$val\n" ; my $datacnt = 0 ;
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]