diff options
author | Sergey Glukhov <Sergey.Glukhov@sun.com> | 2010-06-08 10:22:40 +0400 |
---|---|---|
committer | Sergey Glukhov <Sergey.Glukhov@sun.com> | 2010-06-08 10:22:40 +0400 |
commit | 66c621ba3ba8c7c179a8328b06565bdd40296aa5 (patch) | |
tree | 0f806ccd38dfdfe38cad4a9543d0811dd70c9668 /sql | |
parent | df088b8de24b4cac58fa2b9eed2cafeb9d5abfd6 (diff) | |
download | mariadb-git-66c621ba3ba8c7c179a8328b06565bdd40296aa5.tar.gz |
Bug#53933 crash when using uncacheable subquery in the having clause of outer query
The problem is in the Item_func_isnull::update_used_tables() function,
bracket is at the wrong place. Because of that isnull item erroneously
is treated as const item. The fix is to set brackets in the right place.
mysql-test/r/func_isnull.result:
test case
mysql-test/t/func_isnull.test:
test case
sql/item_cmpfunc.h:
set brackets in the right place.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/item_cmpfunc.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sql/item_cmpfunc.h b/sql/item_cmpfunc.h index 89bc6f9570b..233922fe2f8 100644 --- a/sql/item_cmpfunc.h +++ b/sql/item_cmpfunc.h @@ -1209,8 +1209,8 @@ public: else { args[0]->update_used_tables(); - if ((const_item_cache= !(used_tables_cache= args[0]->used_tables())) && - !with_subselect) + if ((const_item_cache= !(used_tables_cache= args[0]->used_tables()) && + !with_subselect)) { /* Remember if the value is always NULL or never NULL */ cached_value= (longlong) args[0]->is_null(); |