diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index 35a5ba70e86..7d2668c8cf6 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -266,3 +266,10 @@ CONCAT("",RPAD("",(55 - LENGTH(title)),".")) NULL .......................... DROP TABLE t1; +CREATE TABLE t1 (i int, j int); +INSERT INTO t1 VALUES (1,1),(2,2); +SELECT DISTINCT i, ELT(j, '345', '34') FROM t1; +i ELT(j, '345', '34') +1 345 +2 34 +DROP TABLE t1; diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test index 33d89b3ca37..2fecf26d7c3 100644 --- a/mysql-test/t/func_str.test +++ b/mysql-test/t/func_str.test @@ -154,3 +154,12 @@ INSERT INTO t1 VALUES ('House passes the CAREERS bill'); SELECT CONCAT("",RPAD("",(55 - LENGTH(title)),".")) from t1; DROP TABLE t1; + +# +# test for Bug #2290 "output truncated with ELT when using DISTINCT" +# + +CREATE TABLE t1 (i int, j int); +INSERT INTO t1 VALUES (1,1),(2,2); +SELECT DISTINCT i, ELT(j, '345', '34') FROM t1; +DROP TABLE t1; \ No newline at end of file diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index a4d04253dd7..f2f728367ee 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -1507,7 +1507,7 @@ void Item_func_elt::fix_length_and_dec() { max_length=0; decimals=0; - for (uint i=1 ; i < arg_count ; i++) + for (uint i= 0; i < arg_count ; i++) // first number argument isn't in list! { set_if_bigger(max_length,args[i]->max_length); set_if_bigger(decimals,args[i]->decimals);