diff options
author | Oliver Tappe | 2007-03-26 15:24:27 +0200 |
---|---|---|
committer | Oliver Tappe | 2007-03-26 15:24:27 +0200 |
commit | 1668e221352173349f238310636a2fb7e06853d8 (patch) | |
tree | 9617cbe4236e163d83d2a6241f95bd5d1f5c49c9 /config-db/OpenSLX | |
parent | * --list-systems now shows the names of the respective systems' clients, too (diff) | |
download | core-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.pm | 7 |
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; } |