diff options
author | evgen@moonbone.local <> | 2006-02-15 19:45:06 +0300 |
---|---|---|
committer | evgen@moonbone.local <> | 2006-02-15 19:45:06 +0300 |
commit | 4d2b0fd02657e9368d18ed110463f3b5a226777a (patch) | |
tree | 54c24fe992100ca6d2997434c5b8f668862a66be /sql/item.h | |
parent | 1b846dc2fd03fd56cf44dc968bf24f58f616670d (diff) | |
download | mariadb-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.h')
-rw-r--r-- | sql/item.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/item.h b/sql/item.h index 4b49ff907d3..1a5e64c585b 100644 --- a/sql/item.h +++ b/sql/item.h @@ -1161,6 +1161,7 @@ public: inline uint32 max_disp_length() { return field->max_length(); } Item_field *filed_for_view_update() { return this; } Item *safe_charset_converter(CHARSET_INFO *tocs); + int fix_outer_field(THD *thd, Field **field, Item **reference); friend class Item_default_value; friend class Item_insert_value; friend class st_select_lex_unit; |