diff options
author | unknown <evgen@moonbone.local> | 2006-01-16 16:57:15 +0300 |
---|---|---|
committer | unknown <evgen@moonbone.local> | 2006-01-16 16:57:15 +0300 |
commit | 9422fee7de29504c9b1bbd02e49173e3a130a9b3 (patch) | |
tree | cb6f888f350fe4c923d070ac254cf224753512ea /sql/item_cmpfunc.cc | |
parent | 99ebd49555bd1993ccb3745eb3b55f4ea38ec49d (diff) | |
parent | 85f2158b95520b3833732e18ead9c74856b05ff6 (diff) | |
download | mariadb-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.cc | 11 |
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; } |