Merge moonbone.local:/mnt/gentoo64/work/15757-bug-5.0-opt-mysql
into moonbone.local:/mnt/gentoo64/work/25373-bug-5.0-opt-mysql
This commit is contained in:
commit
f3e56b5adb
@ -1940,6 +1940,17 @@ abcxx
|
|||||||
select lpad('abc', cast(5 as unsigned integer), 'x');
|
select lpad('abc', cast(5 as unsigned integer), 'x');
|
||||||
lpad('abc', cast(5 as unsigned integer), 'x')
|
lpad('abc', cast(5 as unsigned integer), 'x')
|
||||||
xxabc
|
xxabc
|
||||||
|
create table t1(f1 longtext);
|
||||||
|
insert into t1 values ("123"),("456");
|
||||||
|
select substring(f1,1,1) from t1 group by 1;
|
||||||
|
substring(f1,1,1)
|
||||||
|
1
|
||||||
|
4
|
||||||
|
create table t2(f1 varchar(3));
|
||||||
|
insert into t1 values ("123"),("456");
|
||||||
|
select substring(f1,4,1), substring(f1,-4,1) from t2;
|
||||||
|
substring(f1,4,1) substring(f1,-4,1)
|
||||||
|
drop table t1,t2;
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE `t1` (
|
CREATE TABLE `t1` (
|
||||||
`id` varchar(20) NOT NULL,
|
`id` varchar(20) NOT NULL,
|
||||||
|
@ -1008,6 +1008,17 @@ select repeat('a', cast(2 as unsigned int));
|
|||||||
select rpad('abc', cast(5 as unsigned integer), 'x');
|
select rpad('abc', cast(5 as unsigned integer), 'x');
|
||||||
select lpad('abc', cast(5 as unsigned integer), 'x');
|
select lpad('abc', cast(5 as unsigned integer), 'x');
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#15757: Wrong SUBSTRING() result when a tmp table was employed.
|
||||||
|
#
|
||||||
|
create table t1(f1 longtext);
|
||||||
|
insert into t1 values ("123"),("456");
|
||||||
|
select substring(f1,1,1) from t1 group by 1;
|
||||||
|
create table t2(f1 varchar(3));
|
||||||
|
insert into t1 values ("123"),("456");
|
||||||
|
select substring(f1,4,1), substring(f1,-4,1) from t2;
|
||||||
|
drop table t1,t2;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #25197 :repeat function returns null when using table field directly as count
|
# Bug #25197 :repeat function returns null when using table field directly as count
|
||||||
#
|
#
|
||||||
|
@ -1184,11 +1184,10 @@ void Item_func_substr::fix_length_and_dec()
|
|||||||
if (args[1]->const_item())
|
if (args[1]->const_item())
|
||||||
{
|
{
|
||||||
int32 start= (int32) args[1]->val_int();
|
int32 start= (int32) args[1]->val_int();
|
||||||
start= (int32)((start < 0) ? max_length + start : start - 1);
|
if (start < 0)
|
||||||
if (start < 0 || start >= (int32) max_length)
|
max_length= ((uint)(-start) > max_length) ? 0 : (uint)(-start);
|
||||||
max_length=0; /* purecov: inspected */
|
|
||||||
else
|
else
|
||||||
max_length-= (uint) start;
|
max_length-= min((uint)(start - 1), max_length);
|
||||||
}
|
}
|
||||||
if (arg_count == 3 && args[2]->const_item())
|
if (arg_count == 3 && args[2]->const_item())
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user