From: Tor Didriksen Date: April 1 2011 11:06am Subject: bzr commit into mysql-trunk branch (tor.didriksen:3357) Bug#11852644 List-Archive: http://lists.mysql.com/commits/134443 X-Bug: 11852644 Message-Id: <20110401110654.0903E37EE@atum07.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1587660965617701801==" --===============1587660965617701801== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///export/home/didrik/repo/next-mr-opt-backporting-bug11852644itemref/ based on revid:jorgen.loland@stripped 3357 Tor Didriksen 2011-04-01 Bug#11852644 - CRASH IN ITEM_REF::SAVE_IN_FIELD ON SELECT DISTINCT Reverting this patch: # sp1r-gkodinov/kgeorge@stripped # Addendum to fix of bug #22344 : removed dead code. With the current set of optimizations, this is no longer dead code. @ mysql-test/include/subquery_mat.inc New test case. @ mysql-test/r/subquery_mat.result New test case. @ mysql-test/r/subquery_mat_all.result New test case. @ mysql-test/r/subquery_mat_none.result New test case. @ sql/item.cc Re-enable the code for handling Item_ref::result_field in Item_ref::save_in_field. The actual type of the object was Item_direct_view_ref, which got its result_field set by create_tmp_field() modified: mysql-test/include/subquery_mat.inc mysql-test/r/subquery_mat.result mysql-test/r/subquery_mat_all.result mysql-test/r/subquery_mat_none.result sql/item.cc === modified file 'mysql-test/include/subquery_mat.inc' --- a/mysql-test/include/subquery_mat.inc 2011-02-14 11:21:26 +0000 +++ b/mysql-test/include/subquery_mat.inc 2011-04-01 11:06:48 +0000 @@ -847,3 +847,38 @@ eval $query; DROP TABLE t1, t2; --echo # End Bug#59833 + +--echo # +--echo # Bug#11852644 - CRASH IN ITEM_REF::SAVE_IN_FIELD ON SELECT DISTINCT +--echo # + +CREATE TABLE t1 ( + col_varchar_key varchar(1) DEFAULT NULL, + col_varchar_nokey varchar(1) DEFAULT NULL, + KEY col_varchar_key (col_varchar_key)) +; + +INSERT INTO t1 VALUES +('v','v'),('r','r'); + +CREATE TABLE t2 ( + col_varchar_key varchar(1) DEFAULT NULL, + col_varchar_nokey varchar(1) DEFAULT NULL, + KEY col_varchar_key(col_varchar_key)) +; + +INSERT INTO t2 VALUES +('r','r'),('c','c'); + +CREATE VIEW v3 AS SELECT * FROM t2; + +SELECT DISTINCT alias2.col_varchar_key +FROM t1 AS alias1 JOIN v3 AS alias2 +ON alias2.col_varchar_key = alias1.col_varchar_key +HAVING col_varchar_key IN (SELECT col_varchar_nokey FROM t2) +; + +DROP TABLE t1, t2; +DROP VIEW v3; + +--echo # End Bug#11852644 === modified file 'mysql-test/r/subquery_mat.result' --- a/mysql-test/r/subquery_mat.result 2011-02-14 11:21:26 +0000 +++ b/mysql-test/r/subquery_mat.result 2011-04-01 11:06:48 +0000 @@ -1124,4 +1124,32 @@ WHERE t1.f1 IN (SELECT t1.pk FROM t1 ORD f1 pk pk DROP TABLE t1, t2; # End Bug#59833 +# +# Bug#11852644 - CRASH IN ITEM_REF::SAVE_IN_FIELD ON SELECT DISTINCT +# +CREATE TABLE t1 ( +col_varchar_key varchar(1) DEFAULT NULL, +col_varchar_nokey varchar(1) DEFAULT NULL, +KEY col_varchar_key (col_varchar_key)) +; +INSERT INTO t1 VALUES +('v','v'),('r','r'); +CREATE TABLE t2 ( +col_varchar_key varchar(1) DEFAULT NULL, +col_varchar_nokey varchar(1) DEFAULT NULL, +KEY col_varchar_key(col_varchar_key)) +; +INSERT INTO t2 VALUES +('r','r'),('c','c'); +CREATE VIEW v3 AS SELECT * FROM t2; +SELECT DISTINCT alias2.col_varchar_key +FROM t1 AS alias1 JOIN v3 AS alias2 +ON alias2.col_varchar_key = alias1.col_varchar_key +HAVING col_varchar_key IN (SELECT col_varchar_nokey FROM t2) +; +col_varchar_key +r +DROP TABLE t1, t2; +DROP VIEW v3; +# End Bug#11852644 set optimizer_switch=default; === modified file 'mysql-test/r/subquery_mat_all.result' --- a/mysql-test/r/subquery_mat_all.result 2011-03-17 11:23:06 +0000 +++ b/mysql-test/r/subquery_mat_all.result 2011-04-01 11:06:48 +0000 @@ -1123,4 +1123,32 @@ WHERE t1.f1 IN (SELECT t1.pk FROM t1 ORD f1 pk pk DROP TABLE t1, t2; # End Bug#59833 +# +# Bug#11852644 - CRASH IN ITEM_REF::SAVE_IN_FIELD ON SELECT DISTINCT +# +CREATE TABLE t1 ( +col_varchar_key varchar(1) DEFAULT NULL, +col_varchar_nokey varchar(1) DEFAULT NULL, +KEY col_varchar_key (col_varchar_key)) +; +INSERT INTO t1 VALUES +('v','v'),('r','r'); +CREATE TABLE t2 ( +col_varchar_key varchar(1) DEFAULT NULL, +col_varchar_nokey varchar(1) DEFAULT NULL, +KEY col_varchar_key(col_varchar_key)) +; +INSERT INTO t2 VALUES +('r','r'),('c','c'); +CREATE VIEW v3 AS SELECT * FROM t2; +SELECT DISTINCT alias2.col_varchar_key +FROM t1 AS alias1 JOIN v3 AS alias2 +ON alias2.col_varchar_key = alias1.col_varchar_key +HAVING col_varchar_key IN (SELECT col_varchar_nokey FROM t2) +; +col_varchar_key +r +DROP TABLE t1, t2; +DROP VIEW v3; +# End Bug#11852644 set optimizer_switch=default; === modified file 'mysql-test/r/subquery_mat_none.result' --- a/mysql-test/r/subquery_mat_none.result 2011-02-14 11:21:26 +0000 +++ b/mysql-test/r/subquery_mat_none.result 2011-04-01 11:06:48 +0000 @@ -1122,4 +1122,32 @@ WHERE t1.f1 IN (SELECT t1.pk FROM t1 ORD f1 pk pk DROP TABLE t1, t2; # End Bug#59833 +# +# Bug#11852644 - CRASH IN ITEM_REF::SAVE_IN_FIELD ON SELECT DISTINCT +# +CREATE TABLE t1 ( +col_varchar_key varchar(1) DEFAULT NULL, +col_varchar_nokey varchar(1) DEFAULT NULL, +KEY col_varchar_key (col_varchar_key)) +; +INSERT INTO t1 VALUES +('v','v'),('r','r'); +CREATE TABLE t2 ( +col_varchar_key varchar(1) DEFAULT NULL, +col_varchar_nokey varchar(1) DEFAULT NULL, +KEY col_varchar_key(col_varchar_key)) +; +INSERT INTO t2 VALUES +('r','r'),('c','c'); +CREATE VIEW v3 AS SELECT * FROM t2; +SELECT DISTINCT alias2.col_varchar_key +FROM t1 AS alias1 JOIN v3 AS alias2 +ON alias2.col_varchar_key = alias1.col_varchar_key +HAVING col_varchar_key IN (SELECT col_varchar_nokey FROM t2) +; +col_varchar_key +r +DROP TABLE t1, t2; +DROP VIEW v3; +# End Bug#11852644 set optimizer_switch=default; === modified file 'sql/item.cc' --- a/sql/item.cc 2011-03-22 11:44:40 +0000 +++ b/sql/item.cc 2011-04-01 11:06:48 +0000 @@ -6738,7 +6738,19 @@ my_decimal *Item_ref::val_decimal(my_dec int Item_ref::save_in_field(Field *to, bool no_conversions) { int res; - DBUG_ASSERT(!result_field); + if (result_field) + { + if (result_field->is_null()) + { + null_value= 1; + res= set_field_to_null_with_conversions(to, no_conversions); + return res; + } + to->set_notnull(); + res= field_conv(to, result_field); + null_value= 0; + return res; + } res= (*ref)->save_in_field(to, no_conversions); null_value= (*ref)->null_value; return res; --===============1587660965617701801== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/tor.didriksen@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: tor.didriksen@stripped\ # cgdn0ukb1q3jqn1z # target_branch: file:///export/home/didrik/repo/next-mr-opt-\ # backporting-bug11852644itemref/ # testament_sha1: e2a1d502b5d6c930635fffa03451cf9bf28b691a # timestamp: 2011-04-01 13:06:53 +0200 # base_revision_id: jorgen.loland@stripped\ # v30l8c0rbx8oeg3g # # Begin bundle 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 uA== --===============1587660965617701801==--