diff options
author | Alexander Barkov <alexander.barkov@oracle.com> | 2011-01-17 12:30:22 +0300 |
---|---|---|
committer | Alexander Barkov <alexander.barkov@oracle.com> | 2011-01-17 12:30:22 +0300 |
commit | a2850a2f5323bfe8eaae17746c88986cee37fc76 (patch) | |
tree | 22beb449e4485929acdf9f6b9cbfa2b94cfe1005 /sql/item_sum.h | |
parent | 208b677637ef9d140c1629a0de4d4963c02ea533 (diff) | |
download | mariadb-git-a2850a2f5323bfe8eaae17746c88986cee37fc76.tar.gz |
Bug#59149 valgrind warnings with "like .. escape .." function
Problem: when processing a query like:
SELECT '' LIKE '1' ESCAPE COUNT(1);
escape_item->val_str() was never executed and the "escape" class member
stayed initialized, which led to valgrind uninitialized memory error.
Note, a query with some tables in "FROM" clause
returns ER_WRONG_ARGUMENTS in the same situation:
SELECT '' LIKE '1' ESCAPE COUNT(1) FROM t1;
ERROR 1210 (HY000): Incorrect arguments to ESCAPE
Fix: disallowing using aggregate functions in ESCAPE clause,
even if there are no tables used. There is no much use of that anyway.
Diffstat (limited to 'sql/item_sum.h')
-rw-r--r-- | sql/item_sum.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/item_sum.h b/sql/item_sum.h index de988c196ec..f8819d63bf4 100644 --- a/sql/item_sum.h +++ b/sql/item_sum.h @@ -339,6 +339,7 @@ public: forced_const= TRUE; } virtual bool const_item() const { return forced_const; } + virtual bool const_during_execution() const { return false; } virtual void print(String *str, enum_query_type query_type); void fix_num_length_and_dec(); |