change group INSERT to REPLACE to prevent merge problems in multi-master DB clusters

This commit is contained in:
Doug Bell 2011-03-21 18:49:45 -05:00
parent 5e6483e97f
commit 2a519d5ae9
2 changed files with 3 additions and 2 deletions

View file

@ -137,7 +137,7 @@ sub addGroups {
my $group = WebGUI::Group->new($self->session, $gid);
my $recursive = isIn($self->getId, @{$group->getGroupsIn(1)});
next GROUP if $recursive;
$self->session->db->write("insert into groupGroupings (groupId,inGroup) values (?,?)",[$gid, $self->getId]);
$self->session->db->write("REPLACE into groupGroupings (groupId,inGroup) values (?,?)",[$gid, $self->getId]);
}
$self->clearCaches();
return 1;
@ -169,7 +169,7 @@ sub addUsers {
foreach my $uid (@{$users}) {
my ($isIn) = $self->session->db->quickArray("select count(*) from groupings where groupId=? and userId=?", [$self->getId, $uid]);
unless ($isIn) {
$self->session->db->write("insert into groupings (groupId,userId,expireDate) values (?,?,?)", [$self->getId, $uid, (time()+$expireOffset)]);
$self->session->db->write("REPLACE into groupings (groupId,userId,expireDate) values (?,?,?)", [$self->getId, $uid, (time()+$expireOffset)]);
$self->session->stow->delete("gotGroupsForUser");
} else {
$self->userGroupExpireDate($uid,(time()+$expireOffset));