From 7f1cb2be07f767d72a1c5ae1e2b11e46803e9772 Mon Sep 17 00:00:00 2001 From: David Hall Date: Fri, 6 May 2016 13:47:26 -0500 Subject: [PATCH] Fix from_unixtime when used with numeric operator --- utils/funcexp/func_from_unixtime.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/utils/funcexp/func_from_unixtime.cpp b/utils/funcexp/func_from_unixtime.cpp index 49c030457..933bc3f36 100644 --- a/utils/funcexp/func_from_unixtime.cpp +++ b/utils/funcexp/func_from_unixtime.cpp @@ -145,7 +145,18 @@ int64_t Func_from_unixtime::getIntVal(rowgroup::Row& row, bool& isNull, CalpontSystemCatalog::ColType& ct) { - return getDatetimeIntVal(row, parm, isNull, ct); + DateTime dt = getDateTime(row, parm, isNull); + if (*reinterpret_cast(&dt) == 0) + { + isNull = true; + return 0; + } + char buf[32]; // actual string guaranteed to be 22 + snprintf( buf, 32, "%04d%02d%02d%02d%02d%02", + dt.year, dt.month, dt.day, dt.hour, + dt.minute, dt.second ); + return atoll(buf); +// return getDatetimeIntVal(row, parm, isNull, ct); } double Func_from_unixtime::getDoubleVal(rowgroup::Row& row,