From: Alexander Barkov Date: January 17 2011 9:31am Subject: bzr commit into mysql-5.1 branch (alexander.barkov:3556) Bug#59149 List-Archive: http://lists.mysql.com/commits/128912 X-Bug: 59149 Message-Id: <201101170931.p0H9VWTU002676@bar.myoffice.izhnet.ru> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3794172529993109821==" --===============3794172529993109821== 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:nirbhay.choubey@stripped 3556 Alexander Barkov 2011-01-17 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 is no much use 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-17 09:30:22 +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-17 09:30:22 +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-17 09:30:22 +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(); --===============3794172529993109821== 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\ # 2lqsy48r0jfcd986 # target_branch: file:///home/bar/mysql-bzr/mysql-5.1.b59149/ # testament_sha1: b6bb1d1bcf4ef7d0228730d034082ac84b1bf021 # timestamp: 2011-01-17 12:31:32 +0300 # base_revision_id: nirbhay.choubey@stripped\ # 8sii20wb5owr11rj # # Begin bundle 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 --===============3794172529993109821==--