]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug: 284244: DATE_SUB and DATE_ADD are not ANSI SQL
authormkanat%kerio.com <>
Thu, 3 Mar 2005 15:19:09 +0000 (15:19 +0000)
committermkanat%kerio.com <>
Thu, 3 Mar 2005 15:19:09 +0000 (15:19 +0000)
Patch By Tomas Kopal <Tomas.Kopal@altap.cz> r=wicked, a=justdave

Bugzilla/Search.pm
Bugzilla/Token.pm
contrib/sendunsentbugmail.pl
sanitycheck.cgi
whine.pl

index f2e630784bab97cb342533ee4b9e99f75367b57a..1a0cb9a7f751c19dcc52cb3e8879c32acb348cd9 100644 (file)
@@ -922,7 +922,7 @@ sub init {
                 } elsif ($unit eq 'y') {
                     $unitinterval = 'YEAR';
                 }
-                my $cutoff = "DATE_SUB(NOW(), " .
+                my $cutoff = "NOW() - " .
                              $dbh->sql_interval("$quantity $unitinterval");
                 my $assigned_fieldid = &::GetFieldID('assigned_to');
                 push(@supptables, "LEFT JOIN longdescs comment_$table " .
index 73f0741853a31b5da29724f2c45d363ffc81152a..feca00c3b8edd8046b67e4b469a1dc8e1314a89c 100644 (file)
@@ -119,8 +119,8 @@ sub IssuePasswordToken {
                     LEFT JOIN tokens
                     ON tokens.userid = profiles.userid
                     AND tokens.tokentype = 'password'
-                    AND tokens.issuedate > DATE_SUB(NOW(), " .
-                    $dbh->sql_interval('10 MINUTE') . ")
+                    AND tokens.issuedate > NOW() - " .
+                    $dbh->sql_interval('10 MINUTE') . "
                     WHERE login_name = $quotedloginname");
     my ($userid, $toosoon) = &::FetchSQLData();
 
index b17289592fa783e718788f46f08e16af7fee3ec4..35b6a494131ac84f660fb3f43e51853064660575 100644 (file)
@@ -31,7 +31,7 @@ use Bugzilla::BugMail;
 
 my $dbh = Bugzilla->dbh;
 SendSQL("SELECT bug_id FROM bugs WHERE lastdiffed < delta_ts AND 
-         delta_ts < date_sub(now(), " . $dbh->sql_interval('30 minute') .
+         delta_ts < NOW() - " . $dbh->sql_interval('30 minute') .
         " ORDER BY bug_id");
 my @list;
 while (MoreSQLData()) {
index 8b7701eb135405a887fdb1a1540d15a2859358f7..63ddf181f55b390b1e9325edec0120f88e6fe77a 100755 (executable)
@@ -177,8 +177,8 @@ if (defined $cgi->param('rescanallBugMail')) {
 
     Status("OK, now attempting to send unsent mail");
     SendSQL("SELECT bug_id FROM bugs WHERE lastdiffed < delta_ts AND 
-             delta_ts < date_sub(now(), " . $dbh->sql_interval('30 minute') .
-            ") ORDER BY bug_id");
+             delta_ts < now() - " . $dbh->sql_interval('30 minute') .
+            " ORDER BY bug_id");
     my @list;
     while (MoreSQLData()) {
         push (@list, FetchOneColumn());
@@ -736,8 +736,8 @@ Status("Checking for unsent mail");
 
 SendSQL("SELECT bug_id " .
         "FROM bugs WHERE lastdiffed < delta_ts AND ".
-        "delta_ts < date_sub(now(), " . $dbh->sql_interval('30 minute') .
-        ") ORDER BY bug_id");
+        "delta_ts < now() - " . $dbh->sql_interval('30 minute') .
+        " ORDER BY bug_id");
 
 while (@row = FetchSQLData()) {
     my ($id) = (@row);
index 97378a178826bc248959f1f165f3850c9f2fd3ff..a13a129b4a585e2e117d7a6fa84afef192d37c11 100755 (executable)
--- a/whine.pl
+++ b/whine.pl
@@ -172,18 +172,18 @@ while (my ($schedule_id, $day, $time) = $sched_h->fetchrow_array) {
         elsif ($time >= $now_hour) {
             # set it to today + number of hours
             $sth = $dbh->prepare( "UPDATE whine_schedules " .
-                   "SET run_next=DATE_ADD(CURRENT_DATE(), " .
-                   $dbh->sql_interval('? HOUR') . ") " .
-                   "WHERE id=?");
+                   "SET run_next = CURRENT_DATE() + " .
+                   $dbh->sql_interval('? HOUR') .
+                   " WHERE id = ?");
             $sth->execute($time, $schedule_id);
         }
         # the target time is less than the current time
         else { # set it for the next applicable day
             my $nextdate = &get_next_date($day);
             $sth = $dbh->prepare( "UPDATE whine_schedules " .
-                   "SET run_next=" .
-                   "DATE_ADD(?, " . $dbh->sql_interval('? HOUR') . ") " .
-                   "WHERE id=?");
+                   "SET run_next = ? + " .
+                   $dbh->sql_interval('? HOUR') .
+                   " WHERE id = ?");
             $sth->execute($nextdate, $time, $schedule_id);
         }
 
@@ -197,9 +197,9 @@ while (my ($schedule_id, $day, $time) = $sched_h->fetchrow_array) {
         my $target_time = ($time =~ /^\d+$/) ? $time : 0;
 
         $sth = $dbh->prepare( "UPDATE whine_schedules " .
-               "SET run_next=DATE_ADD(?, " .
-               $dbh->sql_interval('? HOUR') . ") " .
-               "WHERE id=?");
+               "SET run_next = ? + " .
+               $dbh->sql_interval('? HOUR') .
+               " WHERE id = ?");
         $sth->execute($target_date, $target_time, $schedule_id);
     }
 }
@@ -596,22 +596,21 @@ sub reset_timer {
         my $nextdate = &get_next_date($run_day);
 
         $sth = $dbh->prepare( "UPDATE whine_schedules " .
-                              "SET run_next=DATE_ADD(?, " .
-                              $dbh->sql_interval('? HOUR') . ") " .
-                              "WHERE id=?");
+                              "SET run_next = ? + " .
+                              $dbh->sql_interval('? HOUR') .
+                              " WHERE id = ?");
         $sth->execute($nextdate, $target_time, $schedule_id);
         return;
     }
 
-    # Scheduling is done in terms of whole minutes, so we use DATE_SUB() to
+    # Scheduling is done in terms of whole minutes, so we use subtraction to
     # drop the seconds from the time.
     if ($minute_offset > 0) {
         $sth = $dbh->prepare("UPDATE whine_schedules " .
-                             "SET run_next = " .
-                             "DATE_SUB(DATE_ADD(NOW(), " .
-                             $dbh->sql_interval('? MINUTE') . "), " .
-                             $dbh->sql_interval('SECOND(NOW()) SECOND') . ") " .
-                             "WHERE id=?");
+                             "SET run_next = NOW() + " .
+                             $dbh->sql_interval('? MINUTE') . " - " .
+                             $dbh->sql_interval('SECOND(NOW()) SECOND') .
+                             " WHERE id = ?");
         $sth->execute($minute_offset, $schedule_id);
     } else {
         # The minute offset is zero or less, which is not supposed to happen.
@@ -691,8 +690,8 @@ sub get_next_date {
     }
 
     # Get a date in whatever format the database will accept
-    $sth = $dbh->prepare("SELECT DATE_ADD(CURRENT_DATE(), " .
-                         $dbh->sql_interval('? DAY') . ")");
+    $sth = $dbh->prepare("SELECT CURRENT_DATE() + " .
+                         $dbh->sql_interval('? DAY'));
     $sth->execute($add_days);
     return $sth->fetch->[0];
 }