summaryrefslogtreecommitdiff
path: root/sql/sql_select.cc
diff options
context:
space:
mode:
authorunknown <evgen@moonbone.local>2005-07-18 20:03:00 +0400
committerunknown <evgen@moonbone.local>2005-07-18 20:03:00 +0400
commitabde46de62241a722f4e17d2b1d820d1d496b582 (patch)
tree29aabb61b9ce38ed1b4072d35678f0a953d6941f /sql/sql_select.cc
parent76d1bf38d4ec7c1ce45557b7ae95cbbd5a546758 (diff)
parent3e5cbdbb221c331e34953c831d72130a10c7f7d7 (diff)
downloadmariadb-git-abde46de62241a722f4e17d2b1d820d1d496b582.tar.gz
Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into moonbone.local:/work/mysql-5.0-bug-11482
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r--sql/sql_select.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index e60688fe574..1e434369a7f 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -5185,7 +5185,12 @@ static void add_not_null_conds(JOIN *join)
DBUG_ASSERT(item->type() == Item::FIELD_ITEM);
Item_field *not_null_item= (Item_field*)item;
JOIN_TAB *referred_tab= not_null_item->field->table->reginfo.join_tab;
- if (referred_tab->join != join)
+ /*
+ For UPDATE queries such as:
+ UPDATE t1 SET t1.f2=(SELECT MAX(t2.f4) FROM t2 WHERE t2.f3=t1.f1);
+ not_null_item is the t1.f1, but it's referred_tab is 0.
+ */
+ if (!referred_tab || referred_tab->join != join)
continue;
Item *notnull;
if (!(notnull= new Item_func_isnotnull(not_null_item)))