$values{component} = get_component_name($values{component_id});
my ($start, $end) = (@row);
- # $start and $end are considered safe because users can't touch them
- trick_taint($start);
- trick_taint($end);
my $cc_ref = Bugzilla->dbh->selectcol_arrayref(
q{SELECT profiles.login_name FROM cc, profiles
my @diffs;
-
+ # If lastdiffed is NULL, then we don't limit the search on time.
+ my $when_restriction = $start ?
+ " AND bug_when > '$start' AND bug_when <= '$end'" : '';
SendSQL("SELECT profiles.login_name, fielddefs.description, " .
" bug_when, removed, added, attach_id, fielddefs.name " .
"FROM bugs_activity, fielddefs, profiles " .
"WHERE bug_id = $id " .
" AND fielddefs.fieldid = bugs_activity.fieldid " .
" AND profiles.userid = who " .
- " AND bug_when > '$start' " .
- " AND bug_when <= '$end' " .
+ $when_restriction .
"ORDER BY bug_when"
);
" AND fielddefs.fieldid = bugs_activity.fieldid" .
" AND (fielddefs.name = 'bug_status' " .
" OR fielddefs.name = 'resolution') " .
- " AND bug_when > '$start' " .
- " AND bug_when <= '$end' " .
+ $when_restriction .
"ORDER BY bug_when, bug_id");
my $thisdiff = "";
}
}
- my $isnew = ($start !~ m/[1-9]/);
+ my $isnew = !$start;
my %substs;
# comes from the keywords table
keywords => {TYPE => 'MEDIUMTEXT', NOTNULL => 1,
DEFAULT => "''"},
- lastdiffed => {TYPE => 'DATETIME', NOTNULL => 1},
+ lastdiffed => {TYPE => 'DATETIME'},
everconfirmed => {TYPE => 'BOOLEAN', NOTNULL => 1},
reporter_accessible => {TYPE => 'BOOLEAN',
NOTNULL => 1, DEFAULT => 'TRUE'},
# http://bugzilla.mozilla.org/show_bugs.cgi?id=71552
if (!$dbh->bz_get_field_def('bugs', 'lastdiffed')) {
- $dbh->bz_add_field('bugs', 'lastdiffed', 'datetime not null');
+ $dbh->bz_add_field('bugs', 'lastdiffed', 'datetime');
$dbh->do('UPDATE bugs SET lastdiffed = now(), delta_ts = delta_ts');
}
# 2005-03-03 travis@sedsystems.ca -- Bug 41972
add_setting ("display_quips", {"on" => 1, "off" => 2 }, "on" );
+$dbh->bz_change_field_type('bugs', 'lastdiffed', 'datetime');
+
} # END LEGACY CHECKS
+
# If you had to change the --TABLE-- definition in any way, then add your
# differential change code *** A B O V E *** this comment.
#
use Bugzilla::BugMail;
my $dbh = Bugzilla->dbh;
-SendSQL("SELECT bug_id FROM bugs WHERE lastdiffed < delta_ts AND
- delta_ts < NOW() - " . $dbh->sql_interval('30 minute') .
+SendSQL("SELECT bug_id FROM bugs
+ WHERE lastdiffed IS NULL
+ OR lastdiffed < delta_ts AND delta_ts < NOW() - "
+ . $dbh->sql_interval('30 minute') .
" ORDER BY bug_id");
my @list;
while (MoreSQLData()) {
LogActivityEntry($bugid, "bug_group", $removed, "",
$::userid, $timestamp);
my $diffed = "";
- if ($mailiscurrent != 0) {
+ if ($mailiscurrent) {
$diffed = ", lastdiffed = " . SqlQuote($timestamp);
}
SendSQL("UPDATE bugs SET delta_ts = " . SqlQuote($timestamp) .
LogActivityEntry($bugid, "bug_group", "", $added,
$::userid, $timestamp);
my $diffed = "";
- if ($mailiscurrent != 0) {
+ if ($mailiscurrent) {
$diffed = ", lastdiffed = " . SqlQuote($timestamp);
}
SendSQL("UPDATE bugs SET delta_ts = " . SqlQuote($timestamp) .
"WHERE profiles.userid = longdescs.who " .
"AND longdescs.bug_id = $id ");
- if ($start && $start =~ /[1-9]/) {
- # If $start is not all zeros, obtain the count-index
+ # $start will be undef for New bugs, and defined for pre-existing bugs.
+ if ($start) {
+ # If $start is not NULL, obtain the count-index
# of this comment for the leading "Comment #xxx" line.)
- $query .= "AND longdescs.bug_when > '$start'";
- SendSQL("SELECT count(*) FROM longdescs WHERE bug_id = $id AND bug_when <= '$start'");
+ SendSQL("SELECT count(*) FROM longdescs " .
+ " WHERE bug_id = $id AND bug_when <= '$start'");
($count) = (FetchSQLData());
- }
- if ($end) {
- $query .= "AND longdescs.bug_when <= '$end'";
+
+ $query .= " AND longdescs.bug_when > '$start'"
+ . " AND longdescs.bug_when <= '$end' ";
}
$query .= "ORDER BY longdescs.bug_when";
require Bugzilla::BugMail;
Status("OK, now attempting to send unsent mail");
- SendSQL("SELECT bug_id FROM bugs WHERE lastdiffed < delta_ts AND
+ SendSQL("SELECT bug_id FROM bugs
+ WHERE (lastdiffed IS NULL OR lastdiffed < delta_ts) AND
delta_ts < now() - " . $dbh->sql_interval('30 minute') .
" ORDER BY bug_id");
my @list;
@badbugs = ();
SendSQL("SELECT bug_id " .
- "FROM bugs WHERE lastdiffed < delta_ts AND ".
+ "FROM bugs WHERE (lastdiffed IS NULL OR lastdiffed < delta_ts) AND " .
"delta_ts < now() - " . $dbh->sql_interval('30 minute') .
" ORDER BY bug_id");