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]