From: Martin Hansson Date: June 30 2010 3:27pm Subject: bzr commit into mysql-5.1-bugteam branch (martin.hansson:3455) Bug#54568 List-Archive: http://lists.mysql.com/commits/112602 X-Bug: 54568 Message-Id: <20100630152722.CD85C14017A@riffraff> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4833712466330222718==" --===============4833712466330222718== 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:sergey.glukhov@stripped 3455 Martin Hansson 2010-06-30 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 view preparation. Unfortunately the LIKE predicate pre-evaluates constant right-hand side arguments even during name resolution within view preparation. 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-06-30 15:27:20 +0000 @@ -59,3 +59,23 @@ 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 ) ); +DROP VIEW v1; +# +# 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-06-30 15:27:20 +0000 @@ -62,3 +62,17 @@ 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 ) ); +DROP VIEW v1; + +--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-06-30 15:27:20 +0000 @@ -4660,9 +4660,14 @@ bool Item_func_like::fix_fields(THD *thd /* We could also do boyer-more for non-const items, but as we would have to recompute the tables for each row it's not worth it. + + We don't pre-evaluate constant items during view preparation as the Item + tree may not be ready to execute at this point. Item_in_subselect's have + not yet been wrapped inside Item_in_optimizer objects. */ if (args[1]->const_item() && !use_strnxfrm(collation.collation) && - !(specialflag & SPECIAL_NO_NEW_FUNC)) + !(specialflag & SPECIAL_NO_NEW_FUNC) && + !thd->lex->view_prepare_mode) { String* res2 = args[1]->val_str(&cmp.value2); if (!res2) --===============4833712466330222718== 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\ # 3bh1u8bvcly01al1 # target_branch: file:///data0/martin/bzr/bug54568/5.1bt-commit/ # testament_sha1: 084099ecb0c353c267165d9860c3bf57666decc1 # timestamp: 2010-06-30 17:27:22 +0200 # base_revision_id: sergey.glukhov@stripped\ # 9p7mu3m3x8a04idz # # Begin bundle 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 iiBDjC7UDzBSzKQyZhbJR03f+LuSKcKEhB0w4uA= --===============4833712466330222718==--