mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 10:14:19 +01:00
A fix for a crashing bug #7101, which occures when the
expression involving LEFT() function is used in GROUP BY field. mysql-test/r/func_str.result: A result for bug #7101 test case mysql-test/t/func_str.test: Test case for bug #7101
This commit is contained in:
parent
ac96a2bbcb
commit
41a61e84d7
4 changed files with 18 additions and 2 deletions
|
@ -685,3 +685,9 @@ drop table t1;
|
|||
select left(1234, 3) + 0;
|
||||
left(1234, 3) + 0
|
||||
123
|
||||
create table t1 (a int not null primary key, b varchar(40), c datetime);
|
||||
insert into t1 (a,b,c) values (1,'Tom',now()),(2,'ball games',now()), (3,'Basil',now()), (4,'Dean',now()),(5,'Ellis',now()), (6,'Serg',now()), (7,'Sergei',now()),(8,'Georg',now()),(9,'Salle',now()),(10,'Sinisa',now());
|
||||
select count(*) as total, left(c,10) as reg from t1 group by reg order by reg desc limit 0,12;
|
||||
total reg
|
||||
10 2004-12-10
|
||||
drop table t1;
|
||||
|
|
|
@ -421,3 +421,11 @@ drop table t1;
|
|||
#
|
||||
|
||||
select left(1234, 3) + 0;
|
||||
|
||||
#
|
||||
# Bug #7101: bug with LEFT() when used as a field in GROUP BY aggregation
|
||||
#
|
||||
create table t1 (a int not null primary key, b varchar(40), c datetime);
|
||||
insert into t1 (a,b,c) values (1,'Tom',now()),(2,'ball games',now()), (3,'Basil',now()), (4,'Dean',now()),(5,'Ellis',now()), (6,'Serg',now()), (7,'Sergei',now()),(8,'Georg',now()),(9,'Salle',now()),(10,'Sinisa',now());
|
||||
select count(*) as total, left(c,10) as reg from t1 group by reg order by reg desc limit 0,12;
|
||||
drop table t1;
|
||||
|
|
|
@ -955,8 +955,9 @@ String *Item_func_left::val_str(String *str)
|
|||
if (res->length() <= (uint) length ||
|
||||
res->length() <= (char_pos= res->charpos(length)))
|
||||
return res;
|
||||
str_value.set(*res, 0, char_pos);
|
||||
return &str_value;
|
||||
|
||||
tmp_value.set(*res, 0, char_pos);
|
||||
return &tmp_value;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -162,6 +162,7 @@ public:
|
|||
|
||||
class Item_func_left :public Item_str_func
|
||||
{
|
||||
String tmp_value;
|
||||
public:
|
||||
Item_func_left(Item *a,Item *b) :Item_str_func(a,b) {}
|
||||
String *val_str(String *);
|
||||
|
|
Loading…
Add table
Reference in a new issue