diff options
-rw-r--r-- | mysql-test/r/order_by.result | 4 | ||||
-rw-r--r-- | mysql-test/t/order_by.test | 8 | ||||
-rw-r--r-- | sql/sql_base.cc | 2 |
3 files changed, 13 insertions, 1 deletions
diff --git a/mysql-test/r/order_by.result b/mysql-test/r/order_by.result index db747e3a7eb..a37f7e3c485 100644 --- a/mysql-test/r/order_by.result +++ b/mysql-test/r/order_by.result @@ -580,3 +580,7 @@ FieldKey LongVal StringVal 3 2 1 3 3 3 DROP TABLE t1; +CREATE TABLE t1 (a INT, b INT); +SET @id=0; +UPDATE t1 SET a=0 ORDER BY (a=@id), b; +DROP TABLE t1; diff --git a/mysql-test/t/order_by.test b/mysql-test/t/order_by.test index 702feedc3ce..ca4143fa1c9 100644 --- a/mysql-test/t/order_by.test +++ b/mysql-test/t/order_by.test @@ -365,3 +365,11 @@ SELECT * FROM t1 WHERE FieldKey > '2' ORDER BY LongVal; EXPLAIN SELECT * FROM t1 WHERE FieldKey > '2' ORDER BY FieldKey, LongVal; SELECT * FROM t1 WHERE FieldKey > '2' ORDER BY FieldKey, LongVal; DROP TABLE t1; +# +# Bug #1945 - Crashing bug with bad User Variables in UPDATE ... ORDER BY ... +# +CREATE TABLE t1 (a INT, b INT); +SET @id=0; +UPDATE t1 SET a=0 ORDER BY (a=@id), b; +DROP TABLE t1; + diff --git a/sql/sql_base.cc b/sql/sql_base.cc index 775aa1cd43f..55ddfec6bfb 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -1932,7 +1932,7 @@ find_item_in_list(Item *find, List<Item> &items, uint *counter, } } else if (!table_name && (item->eq(find,0) || - find->name && + find->name && item->name && !my_strcasecmp(system_charset_info, item->name,find->name))) { |