Commit 60a21d16 authored by unknown's avatar unknown
Browse files

Fix for bug #23254: COMPRESS(NULL) makes all futher COMPRESS() calls on same Item return NULL

We don't set null_value to 0 in the Item_func_compress::val_str() for 
not-NULL results.


mysql-test/r/func_compress.result:
  Fix for bug #23254: COMPRESS(NULL) makes all futher COMPRESS() calls on same Item return NULL
    - test result.
mysql-test/t/func_compress.test:
  Fix for bug #23254: COMPRESS(NULL) makes all futher COMPRESS() calls on same Item return NULL
    - test case.
sql/item_strfunc.cc:
  Fix for bug #23254: COMPRESS(NULL) makes all futher COMPRESS() calls on same Item return NULL
    - set null_value.
parent e203f0e5
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -79,3 +79,13 @@ uncompress(a) uncompressed_length(a)
NULL	NULL
a	1
drop table t1;
create table t1(a blob);
insert into t1 values ('0'), (NULL), ('0');
select compress(a), compress(a) from t1;
select compress(a) is null from t1;
compress(a) is null
0
1
0
drop table t1;
End of 4.1 tests
+13 −1
Original line number Diff line number Diff line
@@ -54,4 +54,16 @@ insert into t1 values(NULL), (compress('a'));
select uncompress(a), uncompressed_length(a) from t1;
drop table t1;

# End of 4.1 tests
#
# Bug #23254: problem with compress(NULL)
#

create table t1(a blob);
insert into t1 values ('0'), (NULL), ('0');
--disable_result_log
select compress(a), compress(a) from t1;
--enable_result_log
select compress(a) is null from t1;
drop table t1;

--echo End of 4.1 tests
+1 −0
Original line number Diff line number Diff line
@@ -2838,6 +2838,7 @@ String *Item_func_compress::val_str(String *str)
    null_value= 1;
    return 0;
  }
  null_value= 0;
  if (res->is_empty()) return res;

  /*