summaryrefslogtreecommitdiffstats
path: root/config-db/OpenSLX
diff options
context:
space:
mode:
authorOliver Tappe2007-03-26 15:24:27 +0200
committerOliver Tappe2007-03-26 15:24:27 +0200
commit1668e221352173349f238310636a2fb7e06853d8 (patch)
tree9617cbe4236e163d83d2a6241f95bd5d1f5c49c9 /config-db/OpenSLX
parent* --list-systems now shows the names of the respective systems' clients, too (diff)
downloadcore-1668e221352173349f238310636a2fb7e06853d8.tar.gz
core-1668e221352173349f238310636a2fb7e06853d8.tar.xz
core-1668e221352173349f238310636a2fb7e06853d8.zip
* fixed a bad bug in _updateRefTable that would delete many more items than should have been
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@823 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'config-db/OpenSLX')
-rw-r--r--config-db/OpenSLX/MetaDB/DBI.pm7
1 files changed, 6 insertions, 1 deletions
diff --git a/config-db/OpenSLX/MetaDB/DBI.pm b/config-db/OpenSLX/MetaDB/DBI.pm
index 19e97c54..c7646a83 100644
--- a/config-db/OpenSLX/MetaDB/DBI.pm
+++ b/config-db/OpenSLX/MetaDB/DBI.pm
@@ -387,6 +387,7 @@ sub _doDelete
my $table = shift;
my $IDs = shift;
my $idCol = shift;
+ my $additionalWhereClause = shift;
my $dbh = $self->{'dbh'};
@@ -396,6 +397,9 @@ sub _doDelete
my $sql = "DELETE FROM $table";
if (defined $id) {
$sql .= " WHERE $idCol = ".$self->quote($id);
+ if (defined $additionalWhereClause) {
+ $sql .= $additionalWhereClause;
+ }
}
my $sth = $dbh->prepare($sql)
or confess _tr(q[Can't delete from table <%s> (%s)], $table,
@@ -474,7 +478,8 @@ sub _updateRefTable
# all the remaining value-IDs need to be removed:
if (scalar keys %lastValueIDs) {
- $self->_doDelete($table, [ keys %lastValueIDs ], $valueCol);
+ $self->_doDelete($table, [ keys %lastValueIDs ], $valueCol,
+ " AND $keyCol='$keyID'");
}
return 1;
}