}
- SendSQL("UPDATE bugs SET lastdiffed = '$end', delta_ts = delta_ts " .
- "WHERE bug_id = $id");
+ SendSQL("UPDATE bugs SET lastdiffed = '$end' WHERE bug_id = $id");
# Filter the exclude list for dupes one last time
@excludedAddresses = filterExcludeList(\@excludedAddresses,
my ($id, $who) = (@_);
PushGlobalSQLState();
SendSQL("SELECT bugs.votes, bugs.bug_status, products.votestoconfirm, " .
- " bugs.everconfirmed " .
+ " bugs.everconfirmed, NOW() " .
"FROM bugs, products " .
"WHERE bugs.bug_id = $id AND products.id = bugs.product_id");
- my ($votes, $status, $votestoconfirm, $everconfirmed) = (FetchSQLData());
+ my ($votes, $status, $votestoconfirm, $everconfirmed, $now) = (FetchSQLData());
my $ret = 0;
if ($votes >= $votestoconfirm && $status eq $::unconfirmedstate) {
- SendSQL("UPDATE bugs SET bug_status = 'NEW', everconfirmed = 1 " .
- "WHERE bug_id = $id");
+ SendSQL("UPDATE bugs SET bug_status = 'NEW', everconfirmed = 1, " .
+ "delta_ts = $now WHERE bug_id = $id");
my $fieldid = GetFieldID("bug_status");
SendSQL("INSERT INTO bugs_activity " .
"(bug_id,who,bug_when,fieldid,removed,added) VALUES " .
- "($id,$who,now(),$fieldid,'$::unconfirmedstate','NEW')");
+ "($id,$who,$now,$fieldid,'$::unconfirmedstate','NEW')");
if (!$everconfirmed) {
$fieldid = GetFieldID("everconfirmed");
SendSQL("INSERT INTO bugs_activity " .
"(bug_id,who,bug_when,fieldid,removed,added) VALUES " .
- "($id,$who,now(),$fieldid,'0','1')");
+ "($id,$who,$now,$fieldid,'0','1')");
}
AppendComment($id, DBID_to_name($who),
- "*** This bug has been confirmed by popular vote. ***", 0);
+ "*** This bug has been confirmed by popular vote. ***",
+ 0, $now);
$vars->{'type'} = "votes";
$vars->{'id'} = $id;
@newvalues = map(SqlQuote($_), @newvalues);
# Update the bug record. Note that this doesn't involve login_name.
- SendSQL("UPDATE bugs SET " .
+ SendSQL("UPDATE bugs SET delta_ts = $sql_timestamp, " .
join(", ", map("$fields[$_] = $newvalues[$_]", (0..2))) .
" WHERE bug_id = $::FORM{'bugid'}");
bug_severity enum($my_severities) not null,
bug_status enum("UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED", "RESOLVED", "VERIFIED", "CLOSED") not null,
creation_ts datetime not null,
- delta_ts timestamp not null,
+ delta_ts datetime not null,
short_desc mediumtext not null,
op_sys enum($my_opsys) not null,
priority enum($my_priorities) not null,
print "Group $emptygroupid had an empty name; renamed as '$trygroupname'.\n";
}
+# 2005-01-17 - Tomas.Kopal@altap.cz, bug 257315
+# Change bugs.delta_ts type from timestamp to datetime
+if (($fielddef = GetFieldDef("bugs", "delta_ts")) &&
+ $fielddef->[1] =~ /^timestamp/) {
+ ChangeFieldType ('bugs', 'delta_ts', 'DATETIME NOT NULL');
+}
+
#
# Final checks...
#
# You need to work with bug_email.pl the MIME::Parser installed.
#
-# $Id: bug_email.pl,v 1.20 2004/04/09 02:23:09 jocuri%softhome.net Exp $
+# $Id: bug_email.pl,v 1.21 2005/01/28 19:01:28 travis%sedsystems.ca Exp $
###############################################################
# 02/12/2000 (SML)
my $reporter = "";
my $query = "insert into bugs (\n" . join(",\n", @used_fields ) .
- ", bug_status, creation_ts, everconfirmed) values ( ";
+ ", bug_status, creation_ts, delta_ts, everconfirmed) values ( ";
# 'Yuck'. Then again, this whole file should be rewritten anyway...
$query =~ s/product/product_id/;
$state = SqlQuote("NEW");
}
- $query .= $state . ", \'$bug_when\', $ever_confirmed)\n";
+ $query .= $state . ", \'$bug_when\', \'$bug_when\', $ever_confirmed)\n";
# $query .= SqlQuote( "NEW" ) . ", now(), " . SqlQuote($comment) . " )\n";
SendSQL("SELECT userid FROM profiles WHERE login_name=\'$reporter\'");
"bug_severity='normal'," \
"bug_status=%s," \
"creation_ts=%s," \
+ "delta_ts=%s," \
"short_desc=%s," \
"product=%s," \
"rep_platform='All'," \
[ current['number'],
bug_status,
time.strftime("%Y-%m-%d %H:%M:%S", current['date-reported'][:9]),
+ time.strftime("%Y-%m-%d %H:%M:%S", current['date-reported'][:9]),
current['short-description'],
product,
reporter,
trick_taint($milestoneold);
$dbh->do('UPDATE bugs
- SET target_milestone = ?,
- delta_ts = delta_ts
+ SET target_milestone = ?
WHERE target_milestone = ?
AND product_id = ?',
undef,
my ($removed, $timestamp) = FetchSQLData();
LogActivityEntry($bugid, "bug_group", $removed, "",
$::userid, $timestamp);
+ my $diffed = "";
if ($mailiscurrent != 0) {
- SendSQL("UPDATE bugs SET lastdiffed = " . SqlQuote($timestamp)
- . " WHERE bug_id = $bugid");
+ $diffed = ", lastdiffed = " . SqlQuote($timestamp);
}
- SendSQL("UPDATE bugs SET delta_ts = " . SqlQuote($timestamp)
- . " WHERE bug_id = $bugid");
+ SendSQL("UPDATE bugs SET delta_ts = " . SqlQuote($timestamp) .
+ $diffed . " WHERE bug_id = $bugid");
PopGlobalSQLState();
$count++;
}
my ($added, $timestamp) = FetchSQLData();
LogActivityEntry($bugid, "bug_group", "", $added,
$::userid, $timestamp);
+ my $diffed = "";
if ($mailiscurrent != 0) {
- SendSQL("UPDATE bugs SET lastdiffed = " . SqlQuote($timestamp)
- . " WHERE bug_id = $bugid");
+ $diffed = ", lastdiffed = " . SqlQuote($timestamp);
}
- SendSQL("UPDATE bugs SET delta_ts = " . SqlQuote($timestamp)
- . " WHERE bug_id = $bugid");
+ SendSQL("UPDATE bugs SET delta_ts = " . SqlQuote($timestamp) .
+ $diffed . " WHERE bug_id = $bugid");
PopGlobalSQLState();
$count++;
}
exit;
}
SendSQL("UPDATE bugs
- SET version=" . SqlQuote($version) . ",
- delta_ts = delta_ts
+ SET version=" . SqlQuote($version) . "
WHERE version=" . SqlQuote($versionold) . "
AND product_id = $product_id");
SendSQL("UPDATE versions
"VALUES($bugid, $whoid, $timestamp, " . SqlQuote($comment) . ", " .
$privacyval . ", " . SqlQuote($work_time) . ")");
- SendSQL("UPDATE bugs SET delta_ts = now() WHERE bug_id = $bugid");
+ SendSQL("UPDATE bugs SET delta_ts = $timestamp WHERE bug_id = $bugid");
}
sub GetFieldID {
SendSQL("SELECT SUM(vote_count) FROM votes WHERE bug_id = $id");
my $v = FetchOneColumn();
$v ||= 0;
- SendSQL("UPDATE bugs SET votes = $v, delta_ts = delta_ts " .
- "WHERE bug_id = $id");
+ SendSQL("UPDATE bugs SET votes = $v WHERE bug_id = $id");
}
}
my @query = ();
my @values = ();
- foreach my $field ( qw(creation_ts delta_ts status_whiteboard) ) {
+ foreach my $field ( qw(creation_ts status_whiteboard) ) {
if ( (defined $bug_fields{$field}) && ($bug_fields{$field}) ){
push (@query, "$field");
push (@values, SqlQuote($bug_fields{$field}));
}
}
+ push (@query, "delta_ts");
+ if ( (defined $bug_fields{'delta_ts'}) && ($bug_fields{'delta_ts'}) ){
+ push (@values, SqlQuote($bug_fields{'delta_ts'}));
+ }
+ else {
+ push (@values, "NOW()");
+ }
+
if ( (defined $bug_fields{'bug_file_loc'}) && ($bug_fields{'bug_file_loc'}) ){
push (@query, "bug_file_loc");
push (@values, SqlQuote($bug_fields{'bug_file_loc'}));
"(bug_id,who,bug_when,fieldid,removed,added) VALUES " .
"($id,$exporterid,now(),$fieldid,'$cur_res','MOVED')");
- SendSQL("UPDATE bugs SET bug_status =\"RESOLVED\" where bug_id=\"$id\"");
- SendSQL("UPDATE bugs SET resolution =\"MOVED\" where bug_id=\"$id\"");
+ SendSQL("UPDATE bugs SET bug_status =\"RESOLVED\",
+ resolution =\"MOVED\",
+ delta_ts = NOW()
+ WHERE bug_id=\"$id\"");
my $comment = "";
if (defined $cgi->param('comment') && $cgi->param('comment') !~ /^\s*$/) {
}
}
+# get current time
+SendSQL("SELECT NOW()");
+my $timestamp = FetchOneColumn();
+
+
# Build up SQL string to add bug.
my $sql = "INSERT INTO bugs " .
- "(" . join(",", @used_fields) . ", reporter, creation_ts, " .
+ "(" . join(",", @used_fields) . ", reporter, creation_ts, delta_ts, " .
"estimated_time, remaining_time, deadline) " .
"VALUES (";
# OK except for the fact that it causes e-mail to be suppressed.
$comment = $comment ? $comment : " ";
-$sql .= "$::userid, now(), ";
+$sql .= "$::userid, $timestamp, $timestamp, ";
# Time Tracking
if (UserInGroup(Param("timetrackinggroup")) &&
# Add the bug report to the DB.
SendSQL($sql);
-SendSQL("select now()");
-my $timestamp = FetchOneColumn();
-
# Get the bug ID back.
SendSQL("select LAST_INSERT_ID()");
my $id = FetchOneColumn();
while (MoreSQLData()) {
push (@list, FetchOneColumn());
}
- SendSQL("UPDATE bugs SET keywords = " .
- SqlQuote(join(', ', @list)) .
+ SendSQL("UPDATE bugs SET delta_ts = $timestamp," .
+ " keywords = " . SqlQuote(join(', ', @list)) .
" WHERE bug_id = $id");
}
if (defined $::FORM{'dependson'}) {
}
sub LogDependencyActivity {
- my ($i, $oldstr, $target, $me) = (@_);
+ my ($i, $oldstr, $target, $me, $timestamp) = (@_);
my $newstr = SnapShotDeps($i, $target, $me);
if ($oldstr ne $newstr) {
# Figure out what's really different...
my ($removed, $added) = diff_strings($oldstr, $newstr);
LogActivityEntry($i,$target,$removed,$added,$whoid,$timestamp);
# update timestamp on target bug so midairs will be triggered
- SendSQL("UPDATE bugs SET delta_ts=NOW() WHERE bug_id=$i");
+ SendSQL("UPDATE bugs SET delta_ts=$timestamp WHERE bug_id=$i");
$bug_changed = 1;
return 1;
}
while (MoreSQLData()) {
push(@list, FetchOneColumn());
}
- SendSQL("UPDATE bugs SET keywords = " .
+ SendSQL("UPDATE bugs SET delta_ts = $timestamp, keywords = " .
SqlQuote(join(', ', @list)) .
" WHERE bug_id = $id");
}
SendSQL("insert into dependencies ($me, $target) values ($id, $i)");
}
foreach my $k (@keys) {
- LogDependencyActivity($k, $snapshot{$k}, $me, $target);
+ LogDependencyActivity($k, $snapshot{$k}, $me, $target, $timestamp);
}
- LogDependencyActivity($id, $oldsnap, $target, $me);
+ LogDependencyActivity($id, $oldsnap, $target, $me, $timestamp);
$check_dep_bugs = 1;
}
SendSQL("INSERT INTO cc (who, bug_id) VALUES ($reporter, " . SqlQuote($duplicate) . ")");
}
# Bug 171639 - Duplicate notifications do not need to be private.
- AppendComment($duplicate, Bugzilla->user->login, "*** Bug $::FORM{'id'} has been marked as a duplicate of this bug. ***", 0);
+ AppendComment($duplicate, Bugzilla->user->login,
+ "*** Bug $::FORM{'id'} has been marked as a duplicate of this bug. ***",
+ 0, $timestamp);
+
CheckFormFieldDefined(\%::FORM,'comment');
SendSQL("INSERT INTO duplicates VALUES ($duplicate, $::FORM{'id'})");
if (defined $cgi->param('rebuildvotecache')) {
Status("OK, now rebuilding vote cache.");
SendSQL("LOCK TABLES bugs WRITE, votes READ");
- SendSQL("UPDATE bugs SET votes = 0, delta_ts = delta_ts");
+ SendSQL("UPDATE bugs SET votes = 0");
SendSQL("SELECT bug_id, SUM(vote_count) FROM votes GROUP BY bug_id");
my %votes;
while (@row = FetchSQLData()) {
$votes{$id} = $v;
}
foreach my $id (keys %votes) {
- SendSQL("UPDATE bugs SET votes = $votes{$id}, delta_ts = delta_ts WHERE bug_id = $id");
+ SendSQL("UPDATE bugs SET votes = $votes{$id} WHERE bug_id = $id");
}
SendSQL("UNLOCK TABLES");
Status("Vote cache has been rebuilt.");
if (exists($realk{$b})) {
$k = $realk{$b};
}
- SendSQL("UPDATE bugs SET delta_ts = delta_ts, keywords = " .
- SqlQuote($k) .
+ SendSQL("UPDATE bugs SET keywords = " . SqlQuote($k) .
" WHERE bug_id = $b");
}
Status("Keyword cache fixed.");
foreach my $id (keys %affected) {
SendSQL("SELECT sum(vote_count) FROM votes WHERE bug_id = $id");
my $v = FetchOneColumn() || 0;
- SendSQL("UPDATE bugs SET votes = $v, delta_ts=delta_ts
- WHERE bug_id = $id");
+ SendSQL("UPDATE bugs SET votes = $v WHERE bug_id = $id");
my $confirmed = CheckIfVotedConfirmed($id, $who);
$vars->{'header_done'} = 1 if $confirmed;
}