DualIndexHashObject: do not overwrite existing data when adding

This commit is contained in:
Pragmatic Software 2020-04-28 16:59:58 -07:00
parent 848a6c4e3d
commit 8b6b969b97
1 changed files with 10 additions and 1 deletions

View File

@ -348,7 +348,16 @@ sub add {
$data->{_name} = $secondary_index;
}
$self->{hash}->{$lc_primary_index}->{$lc_secondary_index} = $data;
if (exists $self->{hash}->{$lc_primary_index}->{$lc_secondary_index}) {
foreach my $key (keys %{$data}) {
if (not exists $self->{hash}->{$lc_primary_index}->{$lc_secondary_index}->{$key}) {
$self->{hash}->{$lc_primary_index}->{$lc_secondary_index}->{$key} = $data->{$key};
}
}
} else {
$self->{hash}->{$lc_primary_index}->{$lc_secondary_index} = $data;
}
$self->save() unless $dont_save;
my $name1 = $self->get_key_name($lc_primary_index);