1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

Fix for a bug #7495

This commit is contained in:
Sinisa@sinisa.nasamreza.org
2004-12-23 21:08:54 +02:00
parent e409ebf143
commit 3c5a325897
3 changed files with 15 additions and 25 deletions

View File

@@ -291,15 +291,9 @@ trim(trailing 'foo' from 'foo')
select trim(leading 'foo' from 'foo'); select trim(leading 'foo' from 'foo');
trim(leading 'foo' from 'foo') trim(leading 'foo' from 'foo')
create table t1 (a varchar(80), b varchar(80)); select quote(ltrim(concat(' ', 'a')));
insert into t1 values(NULL,"12345"); quote(ltrim(concat(' ', 'a')))
insert into t1 values(NULL,"chm"); 'a'
select quote(ltrim(concat(' ',t1.b))) from t1; select quote(trim(concat(' ', 'a')));
quote(ltrim(concat(' ',t1.b))) quote(trim(concat(' ', 'a')))
'12345' 'a'
'chm'
select quote(trim(concat(' ',t1.b))) from t1;
quote(trim(concat(' ',t1.b)))
'12345'
'chm'
drop table t1;

View File

@@ -191,9 +191,5 @@ select trim(leading 'foo' from 'foo');
# Bug #7495 # Bug #7495
# #
create table t1 (a varchar(80), b varchar(80)); select quote(ltrim(concat(' ', 'a')));
insert into t1 values(NULL,"12345"); select quote(trim(concat(' ', 'a')));
insert into t1 values(NULL,"chm");
select quote(ltrim(concat(' ',t1.b))) from t1;
select quote(trim(concat(' ',t1.b))) from t1;
drop table t1;

View File

@@ -1141,7 +1141,7 @@ String *Item_func_ltrim::val_str(String *str)
} }
if (ptr == res->ptr()) if (ptr == res->ptr())
return res; return res;
tmp_value.copy(res->ptr() + (ptr - res->ptr()), (uint32) (end - ptr)); tmp_value.set(*res,(uint) (ptr - res->ptr()),(uint) (end-ptr));
return &tmp_value; return &tmp_value;
} }
@@ -1266,7 +1266,7 @@ String *Item_func_trim::val_str(String *str)
} }
if (ptr == res->ptr() && end == ptr+res->length()) if (ptr == res->ptr() && end == ptr+res->length())
return res; return res;
tmp_value.copy(res->ptr() + (ptr - res->ptr()), (uint32) (end - ptr)); tmp_value.set(*res,(uint) (ptr - res->ptr()),(uint) (end-ptr));
return &tmp_value; return &tmp_value;
} }
@@ -2185,16 +2185,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--)
{ {
@@ -2222,9 +2222,9 @@ String *Item_func_quote::val_str(String *str)
} }
} }
*to= '\''; *to= '\'';
str->length(new_length); arg->length(new_length);
null_value= 0; null_value= 0;
return str; return arg;
null: null:
null_value= 1; null_value= 1;