summaryrefslogtreecommitdiff
path: root/sql/item_strfunc.cc
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2005-07-06 16:59:56 +0300
committerunknown <bell@sanja.is.com.ua>2005-07-06 16:59:56 +0300
commitf50ca560590105ce9d62b49fb9950302c0f4b336 (patch)
tree2c1435a39b3d146c9991679ba754a77da228afa5 /sql/item_strfunc.cc
parenta20b87536fe9d2ea56304cd6ecfa8d6d8d0e8bef (diff)
parent903e404011397f4d064d92630483d5e43b64b0bf (diff)
downloadmariadb-git-f50ca560590105ce9d62b49fb9950302c0f4b336.tar.gz
Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.1
into sanja.is.com.ua:/home/bell/mysql/bk/work-bug4-5.0 mysql-test/r/func_str.result: Auto merged mysql-test/t/func_str.test: Auto merged sql/item_strfunc.cc: Auto merged
Diffstat (limited to 'sql/item_strfunc.cc')
-rw-r--r--sql/item_strfunc.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc
index 1ad65fb6208..e972c590156 100644
--- a/sql/item_strfunc.cc
+++ b/sql/item_strfunc.cc
@@ -1056,7 +1056,8 @@ void Item_func_substr::fix_length_and_dec()
collation.set(args[0]->collation);
if (args[1]->const_item())
{
- int32 start=(int32) args[1]->val_int()-1;
+ int32 start= (int32) args[1]->val_int();
+ start= (int32)((start < 0) ? max_length + start : start - 1);
if (start < 0 || start >= (int32) max_length)
max_length=0; /* purecov: inspected */
else