diff options
author | unknown <ram@gw.mysql.r18.ru> | 2004-05-17 12:47:16 +0500 |
---|---|---|
committer | unknown <ram@gw.mysql.r18.ru> | 2004-05-17 12:47:16 +0500 |
commit | ff23273b7afe24ebc5927178895c18c97c01d3cf (patch) | |
tree | ce06802f25684e53cefada0a5cc14b37ae682ec1 | |
parent | 2d743fe227f469c0dbaba803e818b4e23a3e2a76 (diff) | |
download | mariadb-git-ff23273b7afe24ebc5927178895c18c97c01d3cf.tar.gz |
A fix (bug #3756: ISNULL(QUOTE()) returns 1 for every row after 1st NULL)
-rw-r--r-- | mysql-test/r/func_str.result | 9 | ||||
-rw-r--r-- | mysql-test/t/func_str.test | 9 | ||||
-rw-r--r-- | sql/item_strfunc.cc | 1 |
3 files changed, 19 insertions, 0 deletions
diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index dd20ffa2dbb..12c1cf78f7c 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -273,3 +273,12 @@ i ELT(j, '345', '34') 1 345 2 34 DROP TABLE t1; +create table t1(a char(4)); +insert into t1 values ('one'),(NULL),('two'),('four'); +select a, quote(a), isnull(quote(a)), quote(a) is null, ifnull(quote(a), 'n') from t1; +a quote(a) isnull(quote(a)) quote(a) is null ifnull(quote(a), 'n') +one 'one' 0 0 'one' +NULL NULL 1 1 n +two 'two' 0 0 'two' +four 'four' 0 0 'four' +drop table t1; diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test index d6255e4d93c..1d33e459372 100644 --- a/mysql-test/t/func_str.test +++ b/mysql-test/t/func_str.test @@ -163,3 +163,12 @@ CREATE TABLE t1 (i int, j int); INSERT INTO t1 VALUES (1,1),(2,2); SELECT DISTINCT i, ELT(j, '345', '34') FROM t1; DROP TABLE t1; + +# +# bug #3756: quote and NULL +# + +create table t1(a char(4)); +insert into t1 values ('one'),(NULL),('two'),('four'); +select a, quote(a), isnull(quote(a)), quote(a) is null, ifnull(quote(a), 'n') from t1; +drop table t1;
\ No newline at end of file diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index ac70ef2cbd3..5d017b3a27a 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -2215,6 +2215,7 @@ String *Item_func_quote::val_str(String *str) } *to= '\''; str->length(new_length); + null_value= 0; return str; null: |