зеркало из https://github.com/mozilla/pjs.git
Bug: 284244: DATE_SUB and DATE_ADD are not ANSI SQL
Patch By Tomas Kopal <Tomas.Kopal@altap.cz> r=wicked, a=justdave
This commit is contained in:
Родитель
f979b82f53
Коммит
a41a7c2c01
|
@ -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 " .
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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()) {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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];
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче