my $key = "$host $num";
return $hsn_cache->{$key} if ($hsn_cache->{$key});
+ # all backup parts will be attached to first share in backups
my $sth = $dbh->prepare(qq{
SELECT
- backups.id
+ min(backups.id)
FROM backups
INNER JOIN shares ON backups.shareID=shares.ID
INNER JOIN hosts ON backups.hostID = hosts.ID
WHERE hosts.name = ? and backups.num = ?
});
$sth->execute($host, $num);
- die "can't find backup $host:$num" unless $sth->rows;
+ die "can't find backup $host:$num" unless $sth->rows == 1;
my ($id) = $sth->fetchrow_array;
- $hsn_cache->{"$host $num"} = $id;
+ $hsn_cache->{$key} = $id;
- print STDERR "# $host $num == $id\n" if $opt->debug;
+ print STDERR "# $key == $id\n" if $opt->debug;
return $id;
}
#----- main
+exit unless $opt->host;
+
foreach ( 0 .. $#{ $opt->host } ) {
my $host = lc $opt->host->[$_];