Bug #23616 | Week() changed behaviour between 5.0.22 and 5.0.24 | ||
---|---|---|---|
Submitted: | 25 Oct 2006 6:58 | Modified: | 30 Mar 2007 19:27 |
Reporter: | Stephan Amann | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server | Severity: | S2 (Serious) |
Version: | 5.0.26, 5.0.24, 5.1.15-BK | OS: | |
Assigned to: | Ramil Kalimullin | CPU Architecture: | Any |
Tags: | regression |
[25 Oct 2006 6:58]
Stephan Amann
[25 Oct 2006 8:44]
Valeriy Kravchuk
Thank you for a problem report. Verified just as described with 5.0.26. The problem is that now()+0 now is of type double(23,6), and even with explict cast: SELECT cast(now()+0 as datetime); it gives NULL. If this is intended behaviour, it should be noted somewhere (on http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html, for example).
[25 Oct 2006 9:05]
Stephan Amann
I only agree partially. It probably has to do with the different type of now()+0 since Version 4.1.13/5.0.8. However - in 5.0.22 now()+0 was already double(23,6), but week(now()+0) still worked, but since 5.0.24 doesn't anymore. So one reason is for sure the different type of now()+0, but unrelated (?) to that, the behaviour of week(double(23,6)) has changed.
[9 Nov 2006 13:01]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/15086 ChangeSet@1.2544, 2006-11-09 17:02:44+04:00, ramil@mysql.com +4 -0 Fix for bug #23616: Week() changed behaviour between 5.0.22 and 5.0.24 Consider double values as legal date{time} function's arguments (i.e. allow dates in internal format YYYYMMDDHHMMSS.XXXXXX).
[26 Dec 2006 11:08]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/17385 ChangeSet@1.2597, 2006-12-26 15:08:41+04:00, ramil@mysql.com +4 -0 Fix for bug #23616: Week() changed behaviour between 5.0.22 and 5.0.24 Consider double values as legal date{time} function's arguments (i.e. allow dates in internal format YYYYMMDDHHMMSS.XXXXXX).
[3 Feb 2007 8:36]
Valeriy Kravchuk
This bug should be fixed in 5.1 also. In 5.1.15-BK I still have: mysql> select version(); +-------------+ | version() | +-------------+ | 5.1.15-beta | +-------------+ 1 row in set (0.00 sec) mysql> select week(now()+0,1); +-----------------+ | week(now()+0,1) | +-----------------+ | NULL | +-----------------+ 1 row in set, 1 warning (0.00 sec) mysql> show warnings\G *************************** 1. row *************************** Level: Warning Code: 1292 Message: Incorrect datetime value: '20070202191048.000000' 1 row in set (0.00 sec)
[8 Mar 2007 20:17]
Timothy Smith
pushed to 4.1.23, 5.0.38, 5.1.17
[30 Mar 2007 19:27]
Paul DuBois
Noted in 4.1.23, 5.0.38, 5.1.17 changelogs. DOUBLE values such as 20070202191048.000000 were being treated as illegal arguments by WEEK().