Commit 7ef6ce84 authored by unknown's avatar unknown

4.0 -> 4.1 merge


sql/item_strfunc.cc:
  Auto merged
mysql-test/r/func_str.result:
  merged test results for QUOTE() buf fix
mysql-test/t/func_str.test:
  merged test for QUOTE() buf fix
parents 002775af 5a4f8907
...@@ -691,3 +691,10 @@ select count(*) as total, left(c,10) as reg from t1 group by reg order by reg de ...@@ -691,3 +691,10 @@ select count(*) as total, left(c,10) as reg from t1 group by reg order by reg de
total reg total reg
10 2004-12-10 10 2004-12-10
drop table t1; drop table t1;
select quote(ltrim(concat(' ', 'a')));
quote(ltrim(concat(' ', 'a')))
'a'
select quote(trim(concat(' ', 'a')));
quote(trim(concat(' ', 'a')))
'a'
...@@ -429,3 +429,9 @@ create table t1 (a int not null primary key, b varchar(40), c datetime); ...@@ -429,3 +429,9 @@ create table t1 (a int not null primary key, b varchar(40), c datetime);
insert into t1 (a,b,c) values (1,'Tom','2004-12-10 12:13:14'),(2,'ball games','2004-12-10 12:13:14'), (3,'Basil','2004-12-10 12:13:14'), (4,'Dean','2004-12-10 12:13:14'),(5,'Ellis','2004-12-10 12:13:14'), (6,'Serg','2004-12-10 12:13:14'), (7,'Sergei','2004-12-10 12:13:14'),(8,'Georg','2004-12-10 12:13:14'),(9,'Salle','2004-12-10 12:13:14'),(10,'Sinisa','2004-12-10 12:13:14'); insert into t1 (a,b,c) values (1,'Tom','2004-12-10 12:13:14'),(2,'ball games','2004-12-10 12:13:14'), (3,'Basil','2004-12-10 12:13:14'), (4,'Dean','2004-12-10 12:13:14'),(5,'Ellis','2004-12-10 12:13:14'), (6,'Serg','2004-12-10 12:13:14'), (7,'Sergei','2004-12-10 12:13:14'),(8,'Georg','2004-12-10 12:13:14'),(9,'Salle','2004-12-10 12:13:14'),(10,'Sinisa','2004-12-10 12:13:14');
select count(*) as total, left(c,10) as reg from t1 group by reg order by reg desc limit 0,12; select count(*) as total, left(c,10) as reg from t1 group by reg order by reg desc limit 0,12;
drop table t1; drop table t1;
# crashing bug with QUOTE() and LTRIM() or TRIM() fixed
# Bug #7495
#
select quote(ltrim(concat(' ', 'a')));
select quote(trim(concat(' ', 'a')));
...@@ -2596,16 +2596,16 @@ String *Item_func_quote::val_str(String *str) ...@@ -2596,16 +2596,16 @@ String *Item_func_quote::val_str(String *str)
/* /*
We have to use realloc() instead of alloc() as we want to keep the We have to use realloc() instead of alloc() as we want to keep the
old result in str old result in arg
*/ */
if (str->realloc(new_length)) if (arg->realloc(new_length))
goto null; goto null;
/* /*
As 'arg' and 'str' may be the same string, we must replace characters As 'arg' and 'str' may be the same string, we must replace characters
from the end to the beginning from the end to the beginning
*/ */
to= (char*) str->ptr() + new_length - 1; to= (char*) arg->ptr() + new_length - 1;
*to--= '\''; *to--= '\'';
for (start= (char*) arg->ptr(),end= start + arg_length; end-- != start; to--) for (start= (char*) arg->ptr(),end= start + arg_length; end-- != start; to--)
{ {
...@@ -2633,10 +2633,10 @@ String *Item_func_quote::val_str(String *str) ...@@ -2633,10 +2633,10 @@ String *Item_func_quote::val_str(String *str)
} }
} }
*to= '\''; *to= '\'';
str->length(new_length); arg->length(new_length);
str->set_charset(collation.collation); str->set_charset(collation.collation);
null_value= 0; null_value= 0;
return str; return arg;
null: null:
null_value= 1; null_value= 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment