func_system.result, func_system.test:

adding test case
item_strfunc.cc:
  Bug#12351
  CONCAT with USER()/DATEBASE() and
  a column gets strange results.
  Mark created Item_str as constant, so CONCAT
  cannot reuse it for optimization purposes.


sql/item_strfunc.cc:
  Bug#12351
  CONCAT with USER()/DATEBASE() and
  a column gets strange results
mysql-test/t/func_system.test:
  adding test case
mysql-test/r/func_system.result:
  adding test case
This commit is contained in:
unknown 2005-08-08 19:09:54 +05:00
parent e630100374
commit d3a6f4082f
3 changed files with 28 additions and 0 deletions

View File

@ -68,6 +68,21 @@ drop table t1;
select TRUE,FALSE,NULL;
TRUE FALSE NULL
1 0 NULL
create table t1 (c1 char(5)) character set=latin1;
insert into t1 values('row 1');
insert into t1 values('row 2');
insert into t1 values('row 3');
select concat(user(), '--', c1) from t1;
concat(user(), '--', c1)
root@localhost--row 1
root@localhost--row 2
root@localhost--row 3
select concat(database(), '--', c1) from t1;
concat(database(), '--', c1)
test--row 1
test--row 2
test--row 3
drop table t1;
create table t1 (a char(10)) character set latin1;
select * from t1 where a=version();
a

View File

@ -31,6 +31,18 @@ drop table t1;
select TRUE,FALSE,NULL;
#
# Bug#12351: CONCAT with USER()/DATEBASE() and
# a constant and a column gets strange results
#
create table t1 (c1 char(5)) character set=latin1;
insert into t1 values('row 1');
insert into t1 values('row 2');
insert into t1 values('row 3');
select concat(user(), '--', c1) from t1;
select concat(database(), '--', c1) from t1;
drop table t1;
#
# Bug#8291 Illegal collation mix with USER() function
#

View File

@ -1550,6 +1550,7 @@ Item *Item_func_sysconst::safe_charset_converter(CHARSET_INFO *tocs)
return NULL;
}
conv->str_value.copy();
conv->str_value.shrink_to_length();
return conv;
}