From: Tor Didriksen Date: March 22 2011 2:58pm Subject: bzr commit into mysql-trunk branch (tor.didriksen:3354) Bug#11852644 List-Archive: http://lists.mysql.com/commits/133535 X-Bug: 11852644 Message-Id: <20110322145820.08A7F3770@atum07.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2789257851021732014==" --===============2789257851021732014== 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 3354 Tor Didriksen 2011-03-22 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-03-22 14:58:15 +0000 @@ -847,3 +847,40 @@ 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)) +ENGINE=MyISAM DEFAULT CHARSET=latin1; + +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)) +ENGINE=MyISAM DEFAULT CHARSET=latin1; + +INSERT INTO t2 VALUES +('r','r'),('c','c'); + +CREATE VIEW v3 AS SELECT * FROM t2; + +## EXPLAIN +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; +DROP TABLE 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-03-22 14:58:15 +0000 @@ -1124,4 +1124,33 @@ 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)) +ENGINE=MyISAM DEFAULT CHARSET=latin1; +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)) +ENGINE=MyISAM DEFAULT CHARSET=latin1; +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; +DROP TABLE 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-03-22 14:58:15 +0000 @@ -1123,4 +1123,33 @@ 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)) +ENGINE=MyISAM DEFAULT CHARSET=latin1; +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)) +ENGINE=MyISAM DEFAULT CHARSET=latin1; +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; +DROP TABLE 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-03-22 14:58:15 +0000 @@ -1122,4 +1122,33 @@ 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)) +ENGINE=MyISAM DEFAULT CHARSET=latin1; +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)) +ENGINE=MyISAM DEFAULT CHARSET=latin1; +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; +DROP TABLE t2; +DROP VIEW v3; +# End Bug#11852644 set optimizer_switch=default; === modified file 'sql/item.cc' --- a/sql/item.cc 2011-03-17 09:47:50 +0000 +++ b/sql/item.cc 2011-03-22 14:58:15 +0000 @@ -6741,7 +6741,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; --===============2789257851021732014== 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\ # c9h33m8m6t803t8z # target_branch: file:///export/home/didrik/repo/next-mr-opt-\ # backporting-bug11852644itemref/ # testament_sha1: 3c232f23aba0e439ca0ed42b2058024d86dbaa90 # timestamp: 2011-03-22 15:58:19 +0100 # base_revision_id: jorgen.loland@stripped\ # opxnwrojyr5asqc5 # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWXyM2woABrLfgFAQWPf//3// 3+C////6YAxL33R1uzYa5SigVMAC2utw0BdhqgKCnwklFNiamTaT0GSNpM1PU0ZGgAAAZAaGgkoB GQIaninojTVPUbKeoaaaaeoeU0BtQaBpocAwjCaYhgEAyAGEaZMmEYCGhzRkwRiaaGRgQBpoZBk0 aMmEYCGgikICaanoTBMImNIyZQTaNRppoAADIFSUAKYTTUan6KPKeUwgDQYmmmJpoZA0epo71sgu W2s03EcNewqUkw4m0NlKRL/GaanoqqGRx1i4SjDpg/qW1T3J65a94EWwZUjbiyjWqjIQ3NkmUTGJ n8sgN4P5hSbEOQ0Cf20eyYsnUNYzAp04Yirt1l3Buq2/XPb0bUbxcby0jCQ6D9tl9SpGD4O+pIFV E6PRG4hhmZmYZhr+PMrT9vO/UGt0l+FuNXW5ct8W3MML7Vum04jQo6fYUcY+iPMOcLYdd8Zn0lHk i8cI6ff27TpYB4o75lHjPQUUdRkWlp9WB0FGZkdfFEdD2B4BeNCoGmMY52OR8LPbH+I1VGdtfmQ7 up742btMYx8HOzuTiz4+ngdR6iwUWRYVPcZI2xxVL2fP7hdBglAK78phxY58csztDZNNNE2RiDoR DARPkJSBTH6mIWOcSTYhLvD8wjNDCwBIO0eEoUKKLxYYlFHxc7EL44VKlTu5+DHTkPvuHvBdmPMj G3O1ND2Bzruq8AhAeREE35YZmYLiluinTKYSJIFdfUdd/W5hftDNxj3Vy1srgv6WcnFzPCy4cg+b a4VRotkGlOQYATVLFfoyPHSHU1uNUoGUpB2JE/dJ3NUXkRbbRLVTVn15U6NByWuuQ6WjIUicDaVy Qe8Whc65TuoxcNbCwyJXFozN11KLR+ZaUMppq/xgwrUv1Y9ktmtmmkv3lso7hRbe7wCgfG9D6shs ZsKFzod5y4a7bRTmZM7kPNDlXPlaZGaaIvVr8hzma2Q23LnJ6peSrTBgxglvmF8xKxXMTCVZVATb hMfdgal/jeoFBHGwvsLmoujtLeYSG9dxda6kxuKjhRCZnJYZ+HIMQHW5uCtQAtSAyXMnqMnq4tEs eBtKxLg7QmFKyvocVphEg1G0hIRnKJQ2yZBRNMYymBiByx8nwZFpNm58bc9+fwA0ZsWGw4SZmxvK 63lBRQsOqimNEpuMh1vQxt9RJjmSTGXgz3F51LgWbRLoDASmr1fsYGuDRXNaWkBasS3EiZoOvM7V EJDENvzHlhBtYnDRKBdCE9/KudYu3iGwVC8rJuJgaX8tVJPRh58GleaHEXY34VjkY7y4stahEBoY mqZ73RdB3A5ywqCPcWjudolN5euNH4FNlMl3ppwIrAsGMxPMpLrzDPZbKg1rXUugrwY1nMY4RmmR kKHTwVb8hoiG064GOqoaK+vVmuzEGC2NUzGJM1NzHFXXFdfcJV00YZNW5KiE5jVpTtoQ+TYYk8as VVqMutLsnyLXD2kXosdbi2+yUkqjIvLjnNFkrLDsEtqasEk0W/V5GkDdeQEZ71BnM6BTRrpa9GnB oVHV1cHMebw4i83WLrePZa7CJ4uRRcjKTGWUlvyNs6VbxuTWXFh0XSJvHmYlV2rPfPbUL2okddAq 0JXqqlGdNGUpWwE5jIcrpTlZJa0lddqZToMToVgSpdfF1VXsedpIu4TnKpkMwrCBhrRx8qjFwtYU qqldApVVXXFnjHkHV646u4y653szSSZh9vYPOPSOQn+xxk6xL4vL+3soqVRX9BjcfDUFxPxi6JRR qi6BcStZLQvGomdsFkeoT2xrgxjMWDsFC4adg3RYa4k90ZFo2EyjsFxvjIcmMP1NkPWLzEXjijyj dC2JdKqbw9nHH3BUHaEbA2Etj9B20WwqEtFBoFRwNw/44EvjYWEyJ7uWDfHKTeTaNg16WC0mwXRq heeo5hsGMYw1Q7YqFwsCwaDMMCYRzQyGnFmLQwExFRQoyGFQuio/ePjdXh8vfueep3a7kVFRKJfi okgPczYCGFmDIfW2T/a4pfQS3N+CCTmfaQS9Z3tR3n3HgQPUeNCytzHnljh4GU+ZJHCi2NbtJePy wI9HyPE2Rw9My5jh6akgxkg3QW+gIwDRcwkQ3MQ2YGUFu9PArOBr+Mj8NVI8ekpDpeJoe69fuVnR LsWJwWDU1U5toWCC0soEqdXiSHmuw0GWiXE5i4Kjd7EZtNDHbfvPJfA/tb2JIC8J20JvmDpnHNpz SiwopLEo8IpLEtkTj6NPPADvcKZgkUOI9qRm7aG/i9hZu3GtsmSwXvkVFThGC+BeW2KQFZQyN+B2 nIuPp8e2COO069O3F4K/Abjhwdzr6bUCudHfW7kzyvn3PyqnBzCSpck5JyOOKc+iSt5HiVGn46pX Ra9zYdxbuLOR5o7kV6T4ibuEXwAhiufS47Q8qxPr04mLaK3P4mv5a4v85knlsszRq/1LghyHqAui W0IV12yal1MLUcmKsLeDb2XHdFBbww4jarE0C0ObI7oA/QFnXapsVG6hodXYh3kHvzlPAgud/XFC 0+ByLM8GY7T+fp4nq4Zxuy0j5PHF+l81+MfkmPwSEoPo7W55y5FTX8GK8nvrIQiPCNTNvfDeMggC A531T9/rbj61OXg7fGIOYsPGtpOMgbpKgYaH8a3Kx4TOp83a3hsfF4IWekHTyfe6vYE8JcfA2QL9 +hWekFZhp7oimARQiKgMAr4jP25AY2YSKHp7OEuAh6hP2azcD1gDd1FFR834alpoURst5PKgiTij DCp253MzxcOxQrCAgggYEJuUgPi+PK32AO3sfXWdaQR5BndgFNbR75mhUYgP4AWtS7IM6bo6lSFZ jnBM0fEg90grdIcODRAwDqrLT38HZD3uZu39YpklovsLOb+d/FGIWME2DrJ3fGrVxg+y3BXUbQXo tYuuMVVEHh1dVkmVjpPBjwK6TSitJS3pMug/WEASSlQ30SbO36206xBEs6LFbWvooIkxKrDl73Si mI8V51l02hPVzVztg+mmjYZdO5qbmjhcDaqNYQA/PECiSpNo8npab83gyflo0K96pAG7iEUfkUeW rU9eLgy1q/Yyy7YSFiEkPrdp+DS97OrZoar5tdxpYHKto9T8m94sx7GA5NOxAm+jmwjx+8AgA+7H valfpbGrc2KjUq5pKgez35X5oOHXYjI8vK5Dfp+2uKNVdddY78zpch5NGePmAfGdbVyPd43N3HF9 Hb9jdgGHRgJC5tu96mQJ7NQUq7hz4tVgV8R6AHSpaL1VuL2BijYpgcT0vRgg1Zu9SOtk2ta1rbtq z5BSA+h6xSYFlsREpSgiUSrGiBSyWsNss2+8amHrp5Wo1BiCHMXsFo2pfall41JSbcJSVN4UlY7U /ax15w8XSFYTEiqxImnVPRv1GqgEyMmTurt6HjTabhhM33bANwZYbmazxmZ+W51u2V4Jx2hwfUXu /BCPLudCe16Bf8noz5vUY+K9HnApyzBPWPen9RAAYkhYWPqRrX9Sk4DavFkl+5iq1tdrY3NHl1PF va363AH0a5KN/dIFjJij+wCQsnd8mTzA7ncBKE26BlH1Yane7tQAH8XckU4UJB8jNsKA --===============2789257851021732014==--