]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 257315 : type of delta_ts in bugs table should not be timestamp
authortravis%sedsystems.ca <>
Sat, 29 Jan 2005 03:01:27 +0000 (03:01 +0000)
committertravis%sedsystems.ca <>
Sat, 29 Jan 2005 03:01:27 +0000 (03:01 +0000)
Patch by Tomas Kopal <Tomas.Kopal@altap.cz>   r=vladd, LpSolit  a=justdave

16 files changed:
Bugzilla/BugMail.pm
CGI.pl
attachment.cgi
checksetup.pl
contrib/bug_email.pl
contrib/jb2bz.py
editmilestones.cgi
editproducts.cgi
editversions.cgi
globals.pl
importxml.pl
move.pl
post_bug.cgi
process_bug.cgi
sanitycheck.cgi
votes.cgi

index 6b77f6d9410e314dad27dcaf6f85f569b5469323..9df905f322392343f7a36488d84d4f20ee600de0 100644 (file)
@@ -415,8 +415,7 @@ sub ProcessOneBug($) {
     }
 
 
-    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,
diff --git a/CGI.pl b/CGI.pl
index 165e5216ca43a689ed033bde5ad03ed0461626f3..4d7b34047a821d94d54a924304aaf6b3353d53d4 100644 (file)
--- a/CGI.pl
+++ b/CGI.pl
@@ -246,27 +246,28 @@ sub CheckIfVotedConfirmed {
     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;
index 202c8818f8a69b7ea09e70348e054634ad921c26..a5407e8b09d91ec14d21e7f967d70e9aa483d463 100755 (executable)
@@ -940,7 +940,7 @@ sub insert
       @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'}");
       
index 6bbedaaeac3ce24fea90a6e82f13b731459877db..d03646dcf4d6c703d4b588ccd8847b35a8256474 100755 (executable)
@@ -1753,7 +1753,7 @@ $table{bugs} =
     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,
@@ -4689,6 +4689,13 @@ if ($emptygroupid) {
     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...
 
index f777d446f3f4c52d51ba77012a383bbf87ecc5e7..6697c5d638a639ea3989a86a6ccc13e16d583617 100755 (executable)
@@ -38,7 +38,7 @@
 #
 # 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)
@@ -1085,7 +1085,7 @@ END
     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/;
@@ -1140,7 +1140,7 @@ END
       $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\'");
index dbd47ea7a1aa4c0b2574b1468e8f550daf33761f..ed8231dfc7ce0aa6737fc5b9989c4a302716f305 100644 (file)
@@ -208,6 +208,7 @@ def process_jitterbug(filename):
                     "bug_severity='normal',"  \
                     "bug_status=%s," \
                     "creation_ts=%s,"  \
+                    "delta_ts=%s,"  \
                     "short_desc=%s," \
                     "product=%s," \
                     "rep_platform='All'," \
@@ -219,6 +220,7 @@ def process_jitterbug(filename):
                     [ 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,
index 1603851045e721da30d2bdd4897bad1fa8f41b6c..6d47fc6af414f419ff33737dce9498a33b348959 100755 (executable)
@@ -548,8 +548,7 @@ if ($action eq 'update') {
         trick_taint($milestoneold);
 
         $dbh->do('UPDATE bugs
-                  SET target_milestone = ?,
-                  delta_ts = delta_ts
+                  SET target_milestone = ?
                   WHERE target_milestone = ?
                   AND product_id = ?',
                  undef,
index 8fe1a5ec57eb2e0cfa3c03dc6207c89dfb1a37e0..b10a238fc35328a297cd7e27efdf2119a879050b 100755 (executable)
@@ -1176,12 +1176,12 @@ if ($action eq 'updategroupcontrols') {
             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++;
         }
@@ -1210,12 +1210,12 @@ if ($action eq 'updategroupcontrols') {
             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++;
         }
index e4cf47e2a103c7b0e3f7c892711dde3d92343232..2173470dc3637c7049a71fb7c573573aabdfe1b2 100755 (executable)
@@ -418,8 +418,7 @@ if ($action eq 'update') {
             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
index 0c1ba852bb66eb454391cb255f3a4476df9d042c..73f8ed82cd7ebeaf8abb6da1c8929a6cf5f0a821 100644 (file)
@@ -138,7 +138,7 @@ sub AppendComment {
         "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 {
@@ -1420,8 +1420,7 @@ sub RemoveVotes {
         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");
     }
 }
 
index 277681a35e003a09ca73a5029e0529dc560fbbd9..21d962d414c9a6b180c8040670d9190965cf425c 100755 (executable)
@@ -339,13 +339,21 @@ for (my $k=1 ; $k <= $bugqty ; $k++) {
 
   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'}));
diff --git a/move.pl b/move.pl
index 328671f8170898af8be2cbe8a933626fedbbbfd0..7747baaed1481dec3c56501ef851b03dc2c7e8ed 100755 (executable)
--- a/move.pl
+++ b/move.pl
@@ -122,8 +122,10 @@ foreach my $id (split(/:/, scalar($cgi->param('buglist')))) {
             "(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*$/) {
index 40111ff77b6d3e2d74a2fcde4f40fc93e12f9b06..1122921719fdb104aeacfcd847c59c644bf09e00 100755 (executable)
@@ -321,9 +321,14 @@ if (UserInGroup("editbugs") && defined($::FORM{'dependson'})) {
     }
 }
 
+# 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 (";
 
@@ -337,7 +342,7 @@ $comment = trim($comment);
 # 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")) &&
@@ -414,9 +419,6 @@ while (MoreSQLData()) {
 # 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();
@@ -456,8 +458,8 @@ if (UserInGroup("editbugs")) {
         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'}) {
index 78423ab3dedc77146b79673ecdfe0e8a83025b59..ecf4d80b97823b6364fbf37d64ff4cdacfd14ef3 100755 (executable)
@@ -1112,14 +1112,14 @@ sub FindWrapPoint {
 }
 
 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;
     }
@@ -1403,7 +1403,7 @@ foreach my $id (@idlist) {
             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");
         }
@@ -1558,9 +1558,9 @@ foreach my $id (@idlist) {
                     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;
             }
 
@@ -1804,7 +1804,10 @@ foreach my $id (@idlist) {
             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'})");
         
index 4db4e0192d83bf7a0c3d1a0ce51d6a7f797aa374..7de0d92aea48d2feb045d63f5a4b62049dc920aa 100755 (executable)
@@ -98,7 +98,7 @@ PutHeader("Bugzilla Sanity Check");
 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()) {
@@ -106,7 +106,7 @@ if (defined $cgi->param('rebuildvotecache')) {
         $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.");
@@ -588,8 +588,7 @@ if (@badbugs) {
             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.");
index 49ac0cb2a4e471a6f32ecf186540eecd47ff8ec8..e209ba33839e5f50f4c1bd499247a200a9c39377 100755 (executable)
--- a/votes.cgi
+++ b/votes.cgi
@@ -343,8 +343,7 @@ sub record_votes {
     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;
     }