Closed Bug 559539 Opened 10 years ago Closed 8 years ago

[Oracle] whine.pl sets run_next incorrectly due to CURRENT_DATE

Categories

(Bugzilla :: Database, defect)

defect
Not set
minor

Tracking

()

RESOLVED FIXED
Bugzilla 4.2

People

(Reporter: davidt, Assigned: davidt)

Details

Attachments

(2 files, 2 obsolete files)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
Build Identifier: Bugzilla 3.6.0

whine.pl assumes that CURRENT_DATE returns, well, the current date.  Oracle's DATE datatype is actually a date+time.

As a result when whine.pl runs at 2010-04-15 08:04:30 and performs the calculation (pseudo-SQL) 'CURRENT_DATE + 11 hours', rather than getting the answer 2010-04-15 11:00:00, it instead obtains 2010-04-15 19:04:30.

As a result whines run at completely the wrong time.  The simple fix is to use TRUNC(CURRENT_DATE) to ensure the datetime is truncated to simply the date.

Reproducible: Always

Steps to Reproduce:
1. Install bugzilla using an Oracle DB
2. At 10 am, configure a whine to run at 13:00
3. Run whine.pl
Actual Results:  
run_next will be set to 10am + 13 hours = 23:00

Expected Results:  
run_next should be set to 13:00
Attached patch wrap CURRENT_DATE in TRUNC() (obsolete) — Splinter Review
Comment on attachment 439207 [details] [diff] [review]
wrap CURRENT_DATE in TRUNC()

TRUNC doesn't exist on MySQL. It must be an Oracle thing only, if required.
Attachment #439207 - Flags: review-
Severity: normal → minor
Version: unspecified → 3.6
Oops.  It seems Bugzilla/DB/Oracle.pm is already translating CURRENT_DATE() into CURRENT_DATE.  The attached patch will now translate them both into TRUNC(CURRENT_DATE).
Attachment #439207 - Attachment is obsolete: true
Hey David. Thanks for the patch! If you'd like to get it reviewed, see our development process here for details on how:

  http://wiki.mozilla.org/Bugzilla:Developers
Attachment #440196 - Flags: review?(mkanat)
Summary: [Oracle] [patch] whine.pl sets run_next incorrectly due to CURRENT_DATE difference, add TRUNC() → [Oracle] whine.pl sets run_next incorrectly due to CURRENT_DATE
Comment on attachment 440196 [details] [diff] [review]
wrap CURRENT_DATE in TRUNC() for Oracle only

This code has been removed, see bug 675603.
Attachment #440196 - Flags: review?(mkanat) → review-
Status: UNCONFIRMED → RESOLVED
Closed: 9 years ago
Resolution: --- → WONTFIX
As noted in bug 675603 comment 11, CURRENT_DATE is still used in whine.pl.

The fix for that bug has had no effect on whine.pl and this bug remains.
Status: RESOLVED → UNCONFIRMED
Resolution: WONTFIX → ---
Keywords: qawanted
Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: qawanted
Target Milestone: --- → Bugzilla 4.2
Attached patch patch for 4.4, v1 (obsolete) — Splinter Review
Tested with current 4.3.2+ code.
Attachment #440196 - Attachment is obsolete: true
Attachment #655383 - Flags: review?(dkl)
Oops, there was an incorrect indentation in my previous patch. Actually, I'm going to r+ this patch myself, because it's mostly a port of David's patch to 4.4.
Attachment #655383 - Attachment is obsolete: true
Attachment #655383 - Flags: review?(dkl)
Attachment #655384 - Flags: review+
Assignee: database → davidt
Status: NEW → ASSIGNED
Comment on attachment 440196 [details] [diff] [review]
wrap CURRENT_DATE in TRUNC() for Oracle only

>-    $part =~ s/\bCURRENT_DATE\b\(\)/CURRENT_DATE/io;
>+    $part =~ s/\bCURRENT_DATE(?:\(\)|\b)/TRUNC(CURRENT_DATE)/io;

Ok, this change is fine. I'm going to write \bCURRENT_DATE\b(?:\(\))? though, which seems cleaner to me. r=LpSolit for 4.2.3.
Attachment #440196 - Attachment is obsolete: false
Attachment #440196 - Flags: review- → review+
Flags: approval4.2+
Flags: approval+
Thanks for your patch, David! :)

Committing to: bzr+ssh://lpsolit%40gmail.com@bzr.mozilla.org/bugzilla/trunk/
modified Bugzilla/DB/Oracle.pm
Committed revision 8357.

Committing to: bzr+ssh://lpsolit%40gmail.com@bzr.mozilla.org/bugzilla/4.2/
modified Bugzilla/DB/Oracle.pm
Committed revision 8122.
Status: ASSIGNED → RESOLVED
Closed: 9 years ago8 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.