Avoid pathological delete mac for millions of nodes (S. Xu)
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
* [#279] Web sessions use cookies instead of files on disk (M. Johnson)
|
||||
* Strip realm from username (B. Marshall)
|
||||
* Mention netdisco-users mail list in docs (C. Goldsmith)
|
||||
* Avoid pathological delete mac for millions of nodes (S. Xu)
|
||||
|
||||
[BUG FIXES]
|
||||
|
||||
|
||||
@@ -115,21 +115,21 @@ sub delete {
|
||||
NodeIp
|
||||
NodeNbt
|
||||
/) {
|
||||
$schema->resultset($set)->search({
|
||||
'-and' => [
|
||||
'me.mac' => { '-in' => $nodes->as_query },
|
||||
'me.mac' => { '-in' => $schema->resultset($set)->search({
|
||||
-bool => 'nodes.active',
|
||||
},
|
||||
{
|
||||
columns => 'mac',
|
||||
join => 'nodes',
|
||||
group_by => 'me.mac',
|
||||
having => \[ 'count(nodes.mac) = 0' ],
|
||||
})->as_query,
|
||||
},
|
||||
],
|
||||
})->delete;
|
||||
$schema->resultset($set)->search({
|
||||
'me.mac' => { '-in' => $schema->resultset($set)->search({
|
||||
'-and' => [
|
||||
-bool => 'nodes.active',
|
||||
'me.mac' => { '-in' => $nodes->as_query }
|
||||
]
|
||||
},
|
||||
{
|
||||
columns => 'mac',
|
||||
join => 'nodes',
|
||||
group_by => 'me.mac',
|
||||
having => \[ 'count(nodes.mac) = 0' ],
|
||||
})->as_query,
|
||||
},
|
||||
})->delete;
|
||||
}
|
||||
|
||||
foreach my $set (qw/
|
||||
|
||||
Reference in New Issue
Block a user