From: Martin Hansson Date: July 2 2010 8:59am Subject: bzr commit into mysql-5.1-bugteam branch (martin.hansson:3456) Bug#54568 List-Archive: http://lists.mysql.com/commits/112719 X-Bug: 54568 Message-Id: <20100702085954.A684613FE01@scott> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5981618232830189861==" --===============5981618232830189861== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///data0/martin/bzr/bug54568/5.1bt-commit/ based on revid:alexey.kopytov@stripped 3456 Martin Hansson 2010-07-02 Bug#54568: create view cause Assertion failed: 0, file .\item_subselect.cc, line 836 IN quantified predicates are never executed directly. They are rather wrapped inside nodes called IN Optimizers (Item_in_optimizer) which take care of the execution. However, this is not done during query preparation. Unfortunately the LIKE predicate pre-evaluates constant right-hand side arguments even during name resolution. Likely this is meant as an optimization. Fixed by not pre-evaluating LIKE arguments in view prepare mode. modified: mysql-test/r/subselect4.result mysql-test/t/subselect4.test sql/item_cmpfunc.cc === modified file 'mysql-test/r/subselect4.result' --- a/mysql-test/r/subselect4.result 2009-09-28 13:48:40 +0000 +++ b/mysql-test/r/subselect4.result 2010-07-02 08:59:51 +0000 @@ -59,3 +59,24 @@ FROM t3 WHERE 1 = 0 GROUP BY 1; (SELECT 1 FROM t1,t2 WHERE t2.b > t3.b) DROP TABLE t1,t2,t3; End of 5.0 tests. +# +# Bug#54568: create view cause Assertion failed: 0, +# file .\item_subselect.cc, line 836 +# +EXPLAIN SELECT 1 LIKE ( 1 IN ( SELECT 1 ) ); +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used +Warnings: +Note 1249 Select 2 was reduced during optimization +DESCRIBE SELECT 1 LIKE ( 1 IN ( SELECT 1 ) ); +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used +Warnings: +Note 1249 Select 2 was reduced during optimization +# Should not crash +CREATE VIEW v1 AS SELECT 1 LIKE ( 1 IN ( SELECT 1 ) ); +CREATE VIEW v2 AS SELECT 1 LIKE '%' ESCAPE ( 1 IN ( SELECT 1 ) ); +DROP VIEW v1, v2; +# +# End of 5.1 tests. +# === modified file 'mysql-test/t/subselect4.test' --- a/mysql-test/t/subselect4.test 2009-09-18 09:34:08 +0000 +++ b/mysql-test/t/subselect4.test 2010-07-02 08:59:51 +0000 @@ -62,3 +62,18 @@ FROM t3 WHERE 1 = 0 GROUP BY 1; DROP TABLE t1,t2,t3; --echo End of 5.0 tests. + +--echo # +--echo # Bug#54568: create view cause Assertion failed: 0, +--echo # file .\item_subselect.cc, line 836 +--echo # +EXPLAIN SELECT 1 LIKE ( 1 IN ( SELECT 1 ) ); +DESCRIBE SELECT 1 LIKE ( 1 IN ( SELECT 1 ) ); +--echo # Should not crash +CREATE VIEW v1 AS SELECT 1 LIKE ( 1 IN ( SELECT 1 ) ); +CREATE VIEW v2 AS SELECT 1 LIKE '%' ESCAPE ( 1 IN ( SELECT 1 ) ); +DROP VIEW v1, v2; + +--echo # +--echo # End of 5.1 tests. +--echo # === modified file 'sql/item_cmpfunc.cc' --- a/sql/item_cmpfunc.cc 2010-06-24 11:26:14 +0000 +++ b/sql/item_cmpfunc.cc 2010-07-02 08:59:51 +0000 @@ -4606,7 +4606,7 @@ bool Item_func_like::fix_fields(THD *thd return TRUE; } - if (escape_item->const_item()) + if (escape_item->const_item() && !thd->is_context_analysis_only()) { /* If we are on execution stage */ String *escape_str= escape_item->val_str(&cmp.value1); @@ -4662,7 +4662,8 @@ bool Item_func_like::fix_fields(THD *thd recompute the tables for each row it's not worth it. */ if (args[1]->const_item() && !use_strnxfrm(collation.collation) && - !(specialflag & SPECIAL_NO_NEW_FUNC)) + !(specialflag & SPECIAL_NO_NEW_FUNC) && + !thd->is_context_analysis_only()) { String* res2 = args[1]->val_str(&cmp.value2); if (!res2) --===============5981618232830189861== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/martin.hansson@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: martin.hansson@stripped\ # 6pegjfx7bnfzip5p # target_branch: file:///data0/martin/bzr/bug54568/5.1bt-commit/ # testament_sha1: a97bfef0b5e3c81cd1221ee6a9e3a74ac72d2ef1 # timestamp: 2010-07-02 10:59:54 +0200 # base_revision_id: alexey.kopytov@stripped\ # 3m33lhtoo5kjynz6 # # Begin bundle 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 --===============5981618232830189861==--