Loading mysql-test/r/func_compress.result +28 −0 Original line number Diff line number Diff line Loading @@ -79,3 +79,31 @@ uncompress(a) uncompressed_length(a) NULL NULL a 1 drop table t1; create table t1 (a varchar(32) not null); insert into t1 values ('foo'); explain select * from t1 where uncompress(a) is null; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 system NULL NULL NULL NULL 1 Warnings: Error 1256 Uncompressed data size too large; the maximum size is 104857600 (probably, length of uncompressed data was corrupted) select * from t1 where uncompress(a) is null; a foo Warnings: Error 1256 Uncompressed data size too large; the maximum size is 104857600 (probably, length of uncompressed data was corrupted) explain select *, uncompress(a) from t1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 system NULL NULL NULL NULL 1 select *, uncompress(a) from t1; a uncompress(a) foo NULL Warnings: Error 1256 Uncompressed data size too large; the maximum size is 104857600 (probably, length of uncompressed data was corrupted) select *, uncompress(a), uncompress(a) is null from t1; a uncompress(a) uncompress(a) is null foo NULL 1 Warnings: Error 1256 Uncompressed data size too large; the maximum size is 104857600 (probably, length of uncompressed data was corrupted) Error 1256 Uncompressed data size too large; the maximum size is 104857600 (probably, length of uncompressed data was corrupted) drop table t1; End of 5.0 tests mysql-test/t/func_compress.test +14 −0 Original line number Diff line number Diff line Loading @@ -57,3 +57,17 @@ select uncompress(a), uncompressed_length(a) from t1; drop table t1; # End of 4.1 tests # # Bug #18539: uncompress(d) is null: impossible? # create table t1 (a varchar(32) not null); insert into t1 values ('foo'); explain select * from t1 where uncompress(a) is null; select * from t1 where uncompress(a) is null; explain select *, uncompress(a) from t1; select *, uncompress(a) from t1; select *, uncompress(a), uncompress(a) is null from t1; drop table t1; --echo End of 5.0 tests sql/item_strfunc.h +1 −1 Original line number Diff line number Diff line Loading @@ -803,7 +803,7 @@ class Item_func_uncompress: public Item_str_func String buffer; public: Item_func_uncompress(Item *a): Item_str_func(a){} void fix_length_and_dec(){max_length= MAX_BLOB_WIDTH;} void fix_length_and_dec(){ maybe_null= 1; max_length= MAX_BLOB_WIDTH; } const char *func_name() const{return "uncompress";} String *val_str(String *) ZLIB_DEPENDED_FUNCTION }; Loading Loading
mysql-test/r/func_compress.result +28 −0 Original line number Diff line number Diff line Loading @@ -79,3 +79,31 @@ uncompress(a) uncompressed_length(a) NULL NULL a 1 drop table t1; create table t1 (a varchar(32) not null); insert into t1 values ('foo'); explain select * from t1 where uncompress(a) is null; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 system NULL NULL NULL NULL 1 Warnings: Error 1256 Uncompressed data size too large; the maximum size is 104857600 (probably, length of uncompressed data was corrupted) select * from t1 where uncompress(a) is null; a foo Warnings: Error 1256 Uncompressed data size too large; the maximum size is 104857600 (probably, length of uncompressed data was corrupted) explain select *, uncompress(a) from t1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 system NULL NULL NULL NULL 1 select *, uncompress(a) from t1; a uncompress(a) foo NULL Warnings: Error 1256 Uncompressed data size too large; the maximum size is 104857600 (probably, length of uncompressed data was corrupted) select *, uncompress(a), uncompress(a) is null from t1; a uncompress(a) uncompress(a) is null foo NULL 1 Warnings: Error 1256 Uncompressed data size too large; the maximum size is 104857600 (probably, length of uncompressed data was corrupted) Error 1256 Uncompressed data size too large; the maximum size is 104857600 (probably, length of uncompressed data was corrupted) drop table t1; End of 5.0 tests
mysql-test/t/func_compress.test +14 −0 Original line number Diff line number Diff line Loading @@ -57,3 +57,17 @@ select uncompress(a), uncompressed_length(a) from t1; drop table t1; # End of 4.1 tests # # Bug #18539: uncompress(d) is null: impossible? # create table t1 (a varchar(32) not null); insert into t1 values ('foo'); explain select * from t1 where uncompress(a) is null; select * from t1 where uncompress(a) is null; explain select *, uncompress(a) from t1; select *, uncompress(a) from t1; select *, uncompress(a), uncompress(a) is null from t1; drop table t1; --echo End of 5.0 tests
sql/item_strfunc.h +1 −1 Original line number Diff line number Diff line Loading @@ -803,7 +803,7 @@ class Item_func_uncompress: public Item_str_func String buffer; public: Item_func_uncompress(Item *a): Item_str_func(a){} void fix_length_and_dec(){max_length= MAX_BLOB_WIDTH;} void fix_length_and_dec(){ maybe_null= 1; max_length= MAX_BLOB_WIDTH; } const char *func_name() const{return "uncompress";} String *val_str(String *) ZLIB_DEPENDED_FUNCTION }; Loading