From: Alexander Barkov Date: January 14 2011 1:25pm Subject: bzr commit into mysql-5.1 branch (alexander.barkov:3552) Bug#59149 List-Archive: http://lists.mysql.com/commits/128751 X-Bug: 59149 Message-Id: <201101141325.p0EDPSaJ031161@bar.myoffice.izhnet.ru> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0313171181025078972==" --===============0313171181025078972== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/bar/mysql-bzr/mysql-5.1.b59149/ based on revid:sven.sandberg@stripped 3552 Alexander Barkov 2011-01-14 Bug#59149 valgrind warnings with "like .. escape .." function Problem: when processing a query like: SELECT '' LIKE '1' ESCAPE COUNT(1); escape_item->val_str() was never executed and the "escape" class member stayed initialized, which led to valgrind uninitialized memory error. Note, a query with some tables in "FROM" clause returns ER_WRONG_ARGUMENTS in the same situation: SELECT '' LIKE '1' ESCAPE COUNT(1) FROM t1; ERROR 1210 (HY000): Incorrect arguments to ESCAPE Fix: disallowing using aggregate functions in ESCAPE clause, even if there are no tables used. There are no much us of that anyway. modified: mysql-test/r/func_like.result mysql-test/t/func_like.test sql/item_sum.h === modified file 'mysql-test/r/func_like.result' --- a/mysql-test/r/func_like.result 2010-11-08 10:55:43 +0000 +++ b/mysql-test/r/func_like.result 2011-01-14 13:20:17 +0000 @@ -182,4 +182,9 @@ INSERT INTO t2 VALUES (1), (2), (3); SELECT 1 FROM t2 JOIN t1 ON 1 LIKE a GROUP BY a; 1 DROP TABLE t1, t2; +# +# Bug#59149 valgrind warnings with "like .. escape .." function +# +SELECT '' LIKE '1' ESCAPE COUNT(1); +ERROR HY000: Incorrect arguments to ESCAPE End of 5.1 tests === modified file 'mysql-test/t/func_like.test' --- a/mysql-test/t/func_like.test 2010-11-08 10:55:43 +0000 +++ b/mysql-test/t/func_like.test 2011-01-14 13:20:17 +0000 @@ -126,5 +126,10 @@ INSERT INTO t2 VALUES (1), (2), (3); SELECT 1 FROM t2 JOIN t1 ON 1 LIKE a GROUP BY a; DROP TABLE t1, t2; +--echo # +--echo # Bug#59149 valgrind warnings with "like .. escape .." function +--echo # +--error ER_WRONG_ARGUMENTS +SELECT '' LIKE '1' ESCAPE COUNT(1); --echo End of 5.1 tests === modified file 'sql/item_sum.h' --- a/sql/item_sum.h 2010-12-21 11:34:11 +0000 +++ b/sql/item_sum.h 2011-01-14 13:20:17 +0000 @@ -339,6 +339,7 @@ public: forced_const= TRUE; } virtual bool const_item() const { return forced_const; } + virtual bool const_during_execution() const { return false; } virtual void print(String *str, enum_query_type query_type); void fix_num_length_and_dec(); --===============0313171181025078972== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/alexander.barkov@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: alexander.barkov@stripped\ # arqa5qb8dql20u05 # target_branch: file:///home/bar/mysql-bzr/mysql-5.1.b59149/ # testament_sha1: 9ddecc8f11447156412df6c4ecbcebbb74edd78e # timestamp: 2011-01-14 16:25:28 +0300 # base_revision_id: sven.sandberg@stripped\ # ckj0gbf1zxf6bdsl # # Begin bundle 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 CQ5vWXAlYK0urtHCfkvebD/xdyRThQkHwiUlkA== --===============0313171181025078972==--