diff options
-rwxr-xr-x | Docs/changelog-4.0.xml | 18 | ||||
-rw-r--r-- | mysql-test/r/func_str.result | 15 | ||||
-rw-r--r-- | mysql-test/t/func_str.test | 16 | ||||
-rw-r--r-- | sql/item_strfunc.cc | 1 |
4 files changed, 50 insertions, 0 deletions
diff --git a/Docs/changelog-4.0.xml b/Docs/changelog-4.0.xml new file mode 100755 index 00000000000..f0f9aa881f1 --- /dev/null +++ b/Docs/changelog-4.0.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" +"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> +<!-- +This is a dummy changelog file. Don't use it yet. +It merges upward without conflict. +--> +<appendix id="news-4-0-x"> + + <title> + Changes in release 4.0.x + </title> + + <para> + This is a dummy changelog file. Don't use it yet. + </para> + +</appendix> diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index 9b93fe2ad1c..92c7d46550f 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -748,3 +748,18 @@ ySQL SELECT CHAR_LENGTH(CHAR(NULL,121,83,81,'76')) as my_column; my_column 4 +CREATE TABLE t1 (id int PRIMARY KEY, str char(255) NOT NULL); +CREATE TABLE t2 (id int NOT NULL UNIQUE); +INSERT INTO t2 VALUES (1),(2); +INSERT INTO t1 VALUES (1, aes_encrypt('foo', 'bar')); +INSERT INTO t1 VALUES (2, 'not valid'); +SELECT t1.id, aes_decrypt(str, 'bar') FROM t1, t2 WHERE t1.id = t2.id; +id aes_decrypt(str, 'bar') +1 foo +2 NULL +SELECT t1.id, aes_decrypt(str, 'bar') FROM t1, t2 WHERE t1.id = t2.id +ORDER BY t1.id; +id aes_decrypt(str, 'bar') +1 foo +2 NULL +DROP TABLE t1, t2; diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test index a69febef340..2fa6b603155 100644 --- a/mysql-test/t/func_str.test +++ b/mysql-test/t/func_str.test @@ -485,3 +485,19 @@ DROP TABLE t1; # SELECT CHAR(NULL,121,83,81,'76') as my_column; SELECT CHAR_LENGTH(CHAR(NULL,121,83,81,'76')) as my_column; +# +# Test case for bug #8669: null aes_decrypt result in order by query +# + +CREATE TABLE t1 (id int PRIMARY KEY, str char(255) NOT NULL); +CREATE TABLE t2 (id int NOT NULL UNIQUE); +INSERT INTO t2 VALUES (1),(2); +INSERT INTO t1 VALUES (1, aes_encrypt('foo', 'bar')); +INSERT INTO t1 VALUES (2, 'not valid'); + +SELECT t1.id, aes_decrypt(str, 'bar') FROM t1, t2 WHERE t1.id = t2.id; +SELECT t1.id, aes_decrypt(str, 'bar') FROM t1, t2 WHERE t1.id = t2.id + ORDER BY t1.id; + +DROP TABLE t1, t2; + diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index 298418e1574..a9ec7139ea7 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -225,6 +225,7 @@ String *Item_func_aes_decrypt::val_str(String *str) void Item_func_aes_decrypt::fix_length_and_dec() { max_length=args[0]->max_length; + maybe_null= 1; } |