summaryrefslogtreecommitdiff
path: root/sql/item_strfunc.cc
diff options
context:
space:
mode:
authorhf@deer.(none) <>2004-01-19 21:06:27 +0400
committerhf@deer.(none) <>2004-01-19 21:06:27 +0400
commit7dda8c102f88de1578e343d508374b60b0cfe5fa (patch)
tree68d020ad65ffc40d49179abe19fb94245bfbf5d6 /sql/item_strfunc.cc
parentc29e27dabc1e7e44285edc442e967c97db424da4 (diff)
parent6985f346b9e63c6f626f90ef5cb1d38f6f82dd31 (diff)
downloadmariadb-git-7dda8c102f88de1578e343d508374b60b0cfe5fa.tar.gz
Merge deer.(none):/home/hf/work/mysql-4.1.clean
into deer.(none):/home/hf/work/mysql-4.1.1676
Diffstat (limited to 'sql/item_strfunc.cc')
-rw-r--r--sql/item_strfunc.cc12
1 files changed, 6 insertions, 6 deletions
diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc
index b19a6e06230..badc134ae1d 100644
--- a/sql/item_strfunc.cc
+++ b/sql/item_strfunc.cc
@@ -976,9 +976,10 @@ String *Item_func_right::val_str(String *str)
if (res->length() <= (uint) length)
return res; /* purecov: inspected */
- uint start=res->numchars()-(uint) length;
- if (start<=0) return res;
- start=res->charpos(start);
+ uint start=res->numchars();
+ if (start <= (uint) length)
+ return res;
+ start=res->charpos(start - (uint) length);
tmp_value.set(*res,start,res->length()-start);
return &tmp_value;
}
@@ -2023,9 +2024,8 @@ String *Item_func_lpad::val_str(String *str)
{
uint32 res_char_length,pad_char_length;
ulong count= (long) args[1]->val_int(), byte_count;
- String a1,a3;
- String *res= args[0]->val_str(&a1);
- String *pad= args[2]->val_str(&a3);
+ String *res= args[0]->val_str(&tmp_value);
+ String *pad= args[2]->val_str(&lpad_str);
if (!res || args[1]->null_value || !pad)
goto err;