Commit 3bf84bad authored by unknown's avatar unknown
Browse files

Merge bk-internal:/home/bk/mysql-5.0-maint

into  rama.(none):/home/jimw/my/mysql-5.0-18539


sql/item_strfunc.h:
  Auto merged
parents 11980804 8dc1fa1c
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -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
+14 −0
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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
};