diff options
author | unknown <Sinisa@sinisa.nasamreza.org> | 2004-12-22 21:31:17 +0200 |
---|---|---|
committer | unknown <Sinisa@sinisa.nasamreza.org> | 2004-12-22 21:31:17 +0200 |
commit | 74cc635a7cae3f2548ccbbdb2c6775758e554caa (patch) | |
tree | ed4f1714352b1cd8e7e369c85f7175a6b2cf52e8 | |
parent | e6dfed9f4cb88406dec37ffb5ca1fa0b0f2b3e75 (diff) | |
download | mariadb-git-74cc635a7cae3f2548ccbbdb2c6775758e554caa.tar.gz |
A fix for the bug #7495
mysql-test/r/func_str.result:
A result for test case for the bug #7495 involving either LTRIM()
or TRIM() within QUOTE() function.
mysql-test/t/func_str.test:
A test case for the bug #7495 involving either LTRIM() or TRIM()
within QUOTE() function.
sql/item_strfunc.cc:
Changes for LTRIM() and TRIM() functions that aleviate the bug
entirely.
-rw-r--r-- | mysql-test/r/func_str.result | 12 | ||||
-rw-r--r-- | mysql-test/t/func_str.test | 12 | ||||
-rw-r--r-- | sql/item_strfunc.cc | 4 |
3 files changed, 26 insertions, 2 deletions
diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index d38a2edfa1a..2ca90653fec 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -291,3 +291,15 @@ trim(trailing 'foo' from 'foo') select trim(leading 'foo' from 'foo'); trim(leading 'foo' from 'foo') +create table t1 (a varchar(80), b varchar(80)); +insert into t1 values(NULL,"12345"); +insert into t1 values(NULL,"chm"); +select quote(ltrim(concat(' ',t1.b))) from t1; +quote(ltrim(concat(' ',t1.b))) +'12345' +'chm' +select quote(trim(concat(' ',t1.b))) from t1; +quote(trim(concat(' ',t1.b))) +'12345' +'chm' +drop table t1; diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test index 1ae4db3a42a..421512c4dc4 100644 --- a/mysql-test/t/func_str.test +++ b/mysql-test/t/func_str.test @@ -185,3 +185,15 @@ drop table t1; select trim(trailing 'foo' from 'foo'); select trim(leading 'foo' from 'foo'); + +# +# crashing bug with QUOTE() and LTRIM() or TRIM() fixed +# Bug #7495 +# + +create table t1 (a varchar(80), b varchar(80)); +insert into t1 values(NULL,"12345"); +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; diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index 53a9d3fe219..61477753594 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -1141,7 +1141,7 @@ String *Item_func_ltrim::val_str(String *str) } if (ptr == res->ptr()) return res; - tmp_value.set(*res,(uint) (ptr - res->ptr()),(uint) (end-ptr)); + tmp_value.copy(res->ptr() + (ptr - res->ptr()), (uint32) (end - ptr)); return &tmp_value; } @@ -1266,7 +1266,7 @@ String *Item_func_trim::val_str(String *str) } if (ptr == res->ptr() && end == ptr+res->length()) return res; - tmp_value.set(*res,(uint) (ptr - res->ptr()),(uint) (end-ptr)); + tmp_value.copy(res->ptr() + (ptr - res->ptr()), (uint32) (end - ptr)); return &tmp_value; } |