diff options
author | unknown <sergefp@mysql.com> | 2004-12-17 12:14:45 +0300 |
---|---|---|
committer | unknown <sergefp@mysql.com> | 2004-12-17 12:14:45 +0300 |
commit | f7193b925455ede2b97ccde36c96732446d1db7e (patch) | |
tree | f7ea785d5b5af300f8d4c9b2b40248bf85ae34cf /mysql-test/r | |
parent | ae6f147a4f65b0392e61c6d447523fa9b6db186f (diff) | |
download | mariadb-git-f7193b925455ede2b97ccde36c96732446d1db7e.tar.gz |
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)
mysql-test/r/func_concat.result:
Test for BUG#6825
mysql-test/r/metadata.result:
Ajusted results according to fix of bug BUG#6825:length(-1) = 2 , not 1
mysql-test/t/func_concat.test:
Test for BUG#6825
Diffstat (limited to 'mysql-test/r')
-rw-r--r-- | mysql-test/r/func_concat.result | 36 | ||||
-rw-r--r-- | mysql-test/r/metadata.result | 2 |
2 files changed, 37 insertions, 1 deletions
diff --git a/mysql-test/r/func_concat.result b/mysql-test/r/func_concat.result index ec53d6d87b0..419413e4156 100644 --- a/mysql-test/r/func_concat.result +++ b/mysql-test/r/func_concat.result @@ -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 diff --git a/mysql-test/r/metadata.result b/mysql-test/r/metadata.result index 2321a8998ac..3c7cf60db7a 100644 --- a/mysql-test/r/metadata.result +++ b/mysql-test/r/metadata.result @@ -3,7 +3,7 @@ select 1, 1.0, -1, "hello", NULL; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr def 1 8 1 1 N 32769 0 8 def 1.0 5 3 3 N 32769 1 8 -def -1 8 1 2 N 32769 0 8 +def -1 8 2 2 N 32769 0 8 def hello 254 5 5 N 1 31 8 def NULL 6 0 0 Y 32896 0 63 1 1.0 -1 hello NULL |