summaryrefslogtreecommitdiff
path: root/sql/item_cmpfunc.cc
diff options
context:
space:
mode:
authorunknown <evgen@moonbone.local>2006-01-16 16:57:15 +0300
committerunknown <evgen@moonbone.local>2006-01-16 16:57:15 +0300
commit9422fee7de29504c9b1bbd02e49173e3a130a9b3 (patch)
treecb6f888f350fe4c923d070ac254cf224753512ea /sql/item_cmpfunc.cc
parent99ebd49555bd1993ccb3745eb3b55f4ea38ec49d (diff)
parent85f2158b95520b3833732e18ead9c74856b05ff6 (diff)
downloadmariadb-git-9422fee7de29504c9b1bbd02e49173e3a130a9b3.tar.gz
Manually merged
mysql-test/r/sp.result: Auto merged mysql-test/t/sp.test: Auto merged sql/field.cc: Auto merged sql/item_cmpfunc.cc: Auto merged sql/mysqld.cc: Auto merged sql/sp_head.cc: Auto merged sql/sql_handler.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_show.cc: Auto merged sql/sql_yacc.yy: Auto merged storage/innobase/os/os0thread.c: Auto merged storage/myisam/myisam_ftdump.c: Auto merged storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: Auto merged storage/ndb/src/ndbapi/NdbImpl.hpp: Auto merged storage/ndb/src/ndbapi/NdbRecAttr.cpp: Auto merged storage/ndb/src/ndbapi/ndb_cluster_connection.cpp: Auto merged
Diffstat (limited to 'sql/item_cmpfunc.cc')
-rw-r--r--sql/item_cmpfunc.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc
index 0d2056e9e99..3b4ca098d89 100644
--- a/sql/item_cmpfunc.cc
+++ b/sql/item_cmpfunc.cc
@@ -3765,6 +3765,7 @@ void Item_equal::update_used_tables()
longlong Item_equal::val_int()
{
+ Item_field *item_field;
if (cond_false)
return 0;
List_iterator_fast<Item_field> it(fields);
@@ -3772,10 +3773,14 @@ longlong Item_equal::val_int()
if ((null_value= item->null_value))
return 0;
eval_item->store_value(item);
- while ((item= it++))
+ while ((item_field= it++))
{
- if ((null_value= item->null_value) || eval_item->cmp(item))
- return 0;
+ /* Skip fields of non-const tables. They haven't been read yet */
+ if (item_field->field->table->const_table)
+ {
+ if ((null_value= item_field->null_value) || eval_item->cmp(item_field))
+ return 0;
+ }
}
return 1;
}