summaryrefslogtreecommitdiff
path: root/sql/item_subselect.h
diff options
context:
space:
mode:
authorevgen@moonbone.local <>2006-02-15 19:45:06 +0300
committerevgen@moonbone.local <>2006-02-15 19:45:06 +0300
commit4d2b0fd02657e9368d18ed110463f3b5a226777a (patch)
tree54c24fe992100ca6d2997434c5b8f668862a66be /sql/item_subselect.h
parent1b846dc2fd03fd56cf44dc968bf24f58f616670d (diff)
downloadmariadb-git-4d2b0fd02657e9368d18ed110463f3b5a226777a.tar.gz
Fix bug #15706 find_field_in_tables() returns field from outer select
If item->cached_table is set, find_field_in_tables() returns found field even if it doesn't belong to current select. Because Item_field::fix_fields doesn't expect such behaviour, reported bug occurs. Item_field::fix_fields() was modifed to detect when find_field_in_tables() can return field from outer select and process such fields accordingly. In order to ease this code which was searching and processing outed fields was moved into separate function called Item_field::fix_outer_field().
Diffstat (limited to 'sql/item_subselect.h')
-rw-r--r--sql/item_subselect.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/item_subselect.h b/sql/item_subselect.h
index f1c99f74498..a4dac5bda87 100644
--- a/sql/item_subselect.h
+++ b/sql/item_subselect.h
@@ -125,6 +125,7 @@ public:
friend class select_subselect;
friend class Item_in_optimizer;
friend bool Item_field::fix_fields(THD *, Item **);
+ friend int Item_field::fix_outer_field(THD *, Field **, Item **);
friend bool Item_ref::fix_fields(THD *, Item **);
friend void mark_select_range_as_dependent(THD*,
st_select_lex*, st_select_lex*,