summaryrefslogtreecommitdiff
path: root/sql/item_subselect.cc
diff options
context:
space:
mode:
authorGeorgi Kodinov <Georgi.Kodinov@Oracle.com>2012-04-10 14:23:17 +0300
committerGeorgi Kodinov <Georgi.Kodinov@Oracle.com>2012-04-10 14:23:17 +0300
commite6704d116db65ff1a723fe6a1c394dffeeac80b4 (patch)
tree2238a3d5fa70dcbe2a1e176ceef8ce7394842463 /sql/item_subselect.cc
parent0409d6c05fd3ff268f253ed1d27a0078b9f72f8e (diff)
parent8465e5cf8827bb3ad937d2a238c3f8dbf98a31f0 (diff)
downloadmariadb-git-e6704d116db65ff1a723fe6a1c394dffeeac80b4.tar.gz
merge mysql-5.5->mysql-5.5-security
Diffstat (limited to 'sql/item_subselect.cc')
-rw-r--r--sql/item_subselect.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc
index 458465ea8f7..a8defd00a3e 100644
--- a/sql/item_subselect.cc
+++ b/sql/item_subselect.cc
@@ -1031,7 +1031,13 @@ Item_in_subselect::single_value_transformer(JOIN *join,
print_where(item, "rewrite with MIN/MAX", QT_ORDINARY););
if (thd->variables.sql_mode & MODE_ONLY_FULL_GROUP_BY)
{
- DBUG_ASSERT(select_lex->non_agg_field_used());
+ /*
+ If the argument is a field, we assume that fix_fields() has
+ tagged the select_lex with non_agg_field_used.
+ We reverse that decision after this rewrite with MIN/MAX.
+ */
+ if (item->get_arg(0)->type() == Item::FIELD_ITEM)
+ DBUG_ASSERT(select_lex->non_agg_field_used());
select_lex->set_non_agg_field_used(false);
}