diff --git a/mysql-test/columnstore/bugfixes/mcol_4607.result b/mysql-test/columnstore/bugfixes/mcol_4607.result new file mode 100644 index 000000000..eb63abfdb --- /dev/null +++ b/mysql-test/columnstore/bugfixes/mcol_4607.result @@ -0,0 +1,10 @@ +DROP DATABASE IF EXISTS mcol_4607; +CREATE DATABASE mcol_4607; +USE mcol_4607; +DROP TABLE IF EXISTS t1; +CREATE TABLE t1 (a DECIMAL(30,1)) ENGINE=ColumnStore; +INSERT INTO t1 VALUES (1); +SELECT SEC_TO_TIME(a), SEC_TO_TIME(a)+0.0 FROM t1; +SEC_TO_TIME(a) SEC_TO_TIME(a)+0.0 +00:00:01.0 1.0 +DROP DATABASE mcol_4607; diff --git a/mysql-test/columnstore/bugfixes/mcol_4607.test b/mysql-test/columnstore/bugfixes/mcol_4607.test new file mode 100644 index 000000000..3e8a99db2 --- /dev/null +++ b/mysql-test/columnstore/bugfixes/mcol_4607.test @@ -0,0 +1,15 @@ +--source ../include/have_columnstore.inc +--disable_warnings +DROP DATABASE IF EXISTS mcol_4607; +--enable_warnings +CREATE DATABASE mcol_4607; +USE mcol_4607; + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings +CREATE TABLE t1 (a DECIMAL(30,1)) ENGINE=ColumnStore; +INSERT INTO t1 VALUES (1); +SELECT SEC_TO_TIME(a), SEC_TO_TIME(a)+0.0 FROM t1; + +DROP DATABASE mcol_4607; diff --git a/utils/funcexp/func_sec_to_time.cpp b/utils/funcexp/func_sec_to_time.cpp index 9a2fef4c4..c6ba83f2b 100644 --- a/utils/funcexp/func_sec_to_time.cpp +++ b/utils/funcexp/func_sec_to_time.cpp @@ -221,7 +221,7 @@ execplan::IDB_Decimal Func_sec_to_time::getDecimalVal(rowgroup::Row& row, Functi tmpVal = strtoll(str, &ep, 10); } - if (parm[0]->data()->resultType().isWideDecimalType()) + if (op_ct.isWideDecimalType()) d.s128Value = tmpVal; else d.value = tmpVal;