summaryrefslogtreecommitdiff
path: root/sql/item.cc
diff options
context:
space:
mode:
authorIgor Babaev <igor@askmonty.org>2011-07-08 16:39:28 -0700
committerIgor Babaev <igor@askmonty.org>2011-07-08 16:39:28 -0700
commit5ead4083ec052f458f13dc0bfbc2184dac7ee133 (patch)
tree7a1b5183628689b0361a5eab844f93c977561880 /sql/item.cc
parentf222a5134050822deddcbd5e14e5b5a2296dbd15 (diff)
downloadmariadb-git-5ead4083ec052f458f13dc0bfbc2184dac7ee133.tar.gz
Fixed LP bug #806510.
The bug was caused by an incorrect code of the function Item_direct_view_ref::replace_equal_field introduced in the patch for bugs 717577, 724942. The function erroneously returned the wrapped field instead of the Item_direct_view_ref object itself in the cases when no replacement happened. The bug masked two other minor bugs that could result in not quite correct output of the EXPLAIN command for some queries. They were fixed in the patch as well.
Diffstat (limited to 'sql/item.cc')
-rw-r--r--sql/item.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/item.cc b/sql/item.cc
index 0f549b914eb..d3a43818d23 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -7527,7 +7527,7 @@ Item *Item_direct_view_ref::replace_equal_field(uchar *arg)
field_item->set_item_equal(item_equal);
Item *item= field_item->replace_equal_field(arg);
field_item->set_item_equal(0);
- return item;
+ return item != field_item ? item : this;
}