mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Fix for BUG#6825: When calculating Item_func_neg::max_length, add 1 for '-'.
For numeric constants we only need to add, since the parser doesn't produce negative numbers. For strings we only add (we actually could substract 1 if given string is a constant and it has '-number' form but we're not doing that because * we set max_length bigger then necessary in other cases as well. * the current solution is simpler and safer (bigger max_length is better then cutting out)
This commit is contained in:
@@ -32,3 +32,39 @@ select * from t1 where concat(A,C,B,D) = 'AAAA2003-03-011051';
|
||||
a b c d
|
||||
AAAA 105 2003-03-01 1
|
||||
drop table t1;
|
||||
select 'a' union select concat('a', -4);
|
||||
a
|
||||
a
|
||||
a-4
|
||||
select 'a' union select concat('a', -4.5);
|
||||
a
|
||||
a
|
||||
a-4.5
|
||||
select 'a' union select concat('a', -(4 + 1));
|
||||
a
|
||||
a
|
||||
a-5
|
||||
select 'a' union select concat('a', 4 - 5);
|
||||
a
|
||||
a
|
||||
a-1
|
||||
select 'a' union select concat('a', -'3');
|
||||
a
|
||||
a
|
||||
a-3
|
||||
select 'a' union select concat('a', -concat('3',4));
|
||||
a
|
||||
a
|
||||
a-34
|
||||
select 'a' union select concat('a', -0);
|
||||
a
|
||||
a
|
||||
a0
|
||||
select 'a' union select concat('a', -0.0);
|
||||
a
|
||||
a
|
||||
a-0.0
|
||||
select 'a' union select concat('a', -0.0000);
|
||||
a
|
||||
a
|
||||
a-0.0000
|
||||
|
||||
Reference in New Issue
Block a user