dbh_do(sub {
my ($s,$dbh,$bug,$suite,$arch,$status,$modified,$asof) = @_;
select_one($dbh,<<'SQL',$bug,$suite,$arch,$status,$status);
-INSERT INTO bug_status_cache (bug,suite,arch,status,modified,asof)
+INSERT INTO bug_status_cache AS bsc
+(bug,suite,arch,status,modified,asof)
VALUES (?,?,?,?,NOW(),NOW())
-ON CONFLICT (bug,suite,arch) DO
-UPDATE SET asof=NOW(),modified=CASE WHEN status=? THEN modified ELSE NOW() END
+ON CONFLICT (bug,suite,arch) DO
+UPDATE
+ SET asof=NOW(),modified=CASE WHEN bsc.status=? THEN bsc.modified ELSE NOW() END
RETURNING status;
SQL
},
use Debbugs::Common qw(checkpid lockpid get_hashname getparsedaddrs getbugcomponent make_list getsourcemaintainers);
use Debbugs::Config qw(:config);
-use Debbugs::Status qw(bug_presence);
+use Debbugs::Status qw(bug_presence read_bug);
use Debbugs::DB;
use DateTime;
use File::stat;
} else {
$bugs = $s->resultset('Bug')->
search_rs(undef,
- {rows => 100});
+ {rows => 100,
+ page => 1,
+ });
}
my $update_bug =
sub {
my @bugs = @_;
for my $bug (@bugs) {
my $status = read_bug(bug => $bug->id);
+ next unless defined $status;
for my $suite (@suites) {
my $presence =
bug_presence(bug => $bug->id,
}
$s->txn_do($update_bug,
$bugs_on_page->all());
+ $p->update($page);
}
}