From: Georgi Kodinov Date: August 16 2010 7:13am Subject: bzr push into mysql-5.1-bugteam branch (Georgi.Kodinov:3481 to 3482) Bug#55565 List-Archive: http://lists.mysql.com/commits/115752 X-Bug: 55565 Message-Id: <201008160713.o7G7DMK8021912@magare.local> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============7449571300990290534==" --===============7449571300990290534== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline 3482 Georgi Kodinov 2010-08-13 Bug #55565: debug assertion when ordering by expressions with user variable assignments The assert() that is firing is checking if expressions that can't be null return a NULL when evaluated. MAKEDATE() function can return NULL if the second argument is less then or equal to 0. Thus its nullability depends not only on the nullability of its arguments but also on their values. Fixed by (overoptimistically) setting MAKEDATE() to be nullable despite the nullability of its arguments. Test added. Had to update one test result to reflect the metadata change. modified: mysql-test/r/func_sapdb.result mysql-test/r/func_time.result mysql-test/t/func_time.test sql/item_timefunc.h 3481 Martin Hansson 2010-08-11 Bug#54444: Do not run main.range test for products without partitioning feature The test for bug no 50939 was put in range.test which isn't such a good idea since it requires partitioning. Fixed by moving the test case to partitioning_range.test. modified: mysql-test/r/partition_range.result mysql-test/r/range.result mysql-test/t/partition_range.test mysql-test/t/range.test === modified file 'mysql-test/r/func_sapdb.result' --- a/mysql-test/r/func_sapdb.result 2009-02-07 15:50:31 +0000 +++ b/mysql-test/r/func_sapdb.result 2010-08-13 13:05:46 +0000 @@ -194,7 +194,7 @@ date("1997-12-31 23:59:59.000001") as f8 time("1997-12-31 23:59:59.000001") as f9; describe t1; Field Type Null Key Default Extra -f1 date NO 0000-00-00 +f1 date YES NULL f2 datetime YES NULL f3 time YES NULL f4 time YES NULL === modified file 'mysql-test/r/func_time.result' --- a/mysql-test/r/func_time.result 2010-02-09 10:30:50 +0000 +++ b/mysql-test/r/func_time.result 2010-08-13 13:05:46 +0000 @@ -1335,4 +1335,12 @@ date_sub("0069-01-01 00:00:01",INTERVAL select date_sub("0169-01-01 00:00:01",INTERVAL 2 SECOND); date_sub("0169-01-01 00:00:01",INTERVAL 2 SECOND) 0168-12-31 23:59:59 +CREATE TABLE t1(a DOUBLE NOT NULL); +INSERT INTO t1 VALUES (0),(9.216e-096); +# should not crash +SELECT 1 FROM t1 ORDER BY @x:=makedate(a,a); +1 +1 +1 +DROP TABLE t1; End of 5.1 tests === modified file 'mysql-test/t/func_time.test' --- a/mysql-test/t/func_time.test 2009-01-23 12:22:05 +0000 +++ b/mysql-test/t/func_time.test 2010-08-13 13:05:46 +0000 @@ -838,4 +838,15 @@ select date_sub("0069-01-01 00:00:01",IN select date_sub("0169-01-01 00:00:01",INTERVAL 2 SECOND); +# +# Bug #55565: debug assertion when ordering by expressions with user +# variable assignments +# + +CREATE TABLE t1(a DOUBLE NOT NULL); +INSERT INTO t1 VALUES (0),(9.216e-096); +--echo # should not crash +SELECT 1 FROM t1 ORDER BY @x:=makedate(a,a); +DROP TABLE t1; + --echo End of 5.1 tests === modified file 'sql/item_timefunc.h' --- a/sql/item_timefunc.h 2009-12-13 20:29:50 +0000 +++ b/sql/item_timefunc.h 2010-08-13 13:05:46 +0000 @@ -881,6 +881,8 @@ public: { decimals=0; max_length=MAX_DATE_WIDTH*MY_CHARSET_BIN_MB_MAXLEN; + /* It returns NULL when the second argument is less or equal to 0 */ + maybe_null= 1; } longlong val_int(); }; --===============7449571300990290534== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/georgi.kodinov@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: georgi.kodinov@stripped\ # l7xj1x2jywsu6rru # target_branch: file:///home/kgeorge/mysql/work/B55565-5.1-bugteam/ # testament_sha1: 27da4b09a9e8a12363302b966569f93453c90c5a # timestamp: 2010-08-16 10:13:22 +0300 # base_revision_id: martin.hansson@stripped\ # 932ykehbg3sr5dwy # # Begin bundle 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 XPO7IvP/i7kinChIH62lJAA= --===============7449571300990290534==--