[Commits] Rev 3732: Fixed bug mdev-5382 in file:///home/igor/maria/maria-5.3-mdev5382/
Igor Babaev
igor at askmonty.org
Thu Dec 5 21:13:21 EET 2013
At file:///home/igor/maria/maria-5.3-mdev5382/
------------------------------------------------------------
revno: 3732
revision-id: igor at askmonty.org-20131205191320-pfja761po2x9p9ri
parent: bar at mnogosearch.org-20131203110843-1bsdu0hcrpzhie8w
committer: Igor Babaev <igor at askmonty.org>
branch nick: maria-5.3-mdev5382
timestamp: Thu 2013-12-05 11:13:20 -0800
message:
Fixed bug mdev-5382
When marking used columns the function find_field_in_table_ref() erroneously
called the walk method for the real item behind a view/derived table field
with the second parameter set to TRUE.
This erroneous code was introduced in 2006.
-------------- next part --------------
=== modified file 'mysql-test/r/union.result'
--- a/mysql-test/r/union.result 2013-11-13 22:43:09 +0000
+++ b/mysql-test/r/union.result 2013-12-05 19:13:20 +0000
@@ -1738,4 +1738,19 @@
6
DROP VIEW v1;
DROP TABLE t1;
+#
+# mdev-5382: UNION with ORDER BY in subselect
+#
+CREATE TABLE t1 (a int DEFAULT NULL);
+INSERT INTO t1 VALUES (2), (4);
+CREATE TABLE t2 (b int DEFAULT NULL);
+INSERT INTO t2 VALUES (1), (3);
+SELECT c1 FROM (SELECT (SELECT a FROM t1 WHERE t1.a <= t2.b
+UNION ALL
+SELECT a FROM t1 WHERE t1.a+3<= t2.b
+ORDER BY a DESC) AS c1 FROM t2) t3;
+c1
+NULL
+2
+DROP TABLE t1,t2;
End of 5.3 tests
=== modified file 'mysql-test/t/union.test'
--- a/mysql-test/t/union.test 2013-11-13 22:43:09 +0000
+++ b/mysql-test/t/union.test 2013-12-05 19:13:20 +0000
@@ -1227,5 +1227,21 @@
DROP VIEW v1;
DROP TABLE t1;
+--echo #
+--echo # mdev-5382: UNION with ORDER BY in subselect
+--echo #
+
+ CREATE TABLE t1 (a int DEFAULT NULL);
+ INSERT INTO t1 VALUES (2), (4);
+ CREATE TABLE t2 (b int DEFAULT NULL);
+ INSERT INTO t2 VALUES (1), (3);
+
+ SELECT c1 FROM (SELECT (SELECT a FROM t1 WHERE t1.a <= t2.b
+ UNION ALL
+ SELECT a FROM t1 WHERE t1.a+3<= t2.b
+ ORDER BY a DESC) AS c1 FROM t2) t3;
+
+ DROP TABLE t1,t2;
+
--echo End of 5.3 tests
=== modified file 'sql/sql_base.cc'
--- a/sql/sql_base.cc 2013-10-10 17:08:26 +0000
+++ b/sql/sql_base.cc 2013-12-05 19:13:20 +0000
@@ -6429,9 +6429,9 @@
else
{
if (thd->mark_used_columns == MARK_COLUMNS_READ)
- it->walk(&Item::register_field_in_read_map, 1, (uchar *) 0);
+ it->walk(&Item::register_field_in_read_map, 0, (uchar *) 0);
else
- it->walk(&Item::register_field_in_write_map, 1, (uchar *) 0);
+ it->walk(&Item::register_field_in_write_map, 0, (uchar *) 0);
}
}
else
More information about the commits
mailing list