diff options
author | Georgi Kodinov <Georgi.Kodinov@Oracle.com> | 2012-04-10 14:23:17 +0300 |
---|---|---|
committer | Georgi Kodinov <Georgi.Kodinov@Oracle.com> | 2012-04-10 14:23:17 +0300 |
commit | e6704d116db65ff1a723fe6a1c394dffeeac80b4 (patch) | |
tree | 2238a3d5fa70dcbe2a1e176ceef8ce7394842463 /sql/item_subselect.cc | |
parent | 0409d6c05fd3ff268f253ed1d27a0078b9f72f8e (diff) | |
parent | 8465e5cf8827bb3ad937d2a238c3f8dbf98a31f0 (diff) | |
download | mariadb-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.cc | 8 |
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); } |