diff --git a/dbcon/mysql/ha_calpont.cpp b/dbcon/mysql/ha_calpont.cpp index d4e9418c2..b8306edcd 100755 --- a/dbcon/mysql/ha_calpont.cpp +++ b/dbcon/mysql/ha_calpont.cpp @@ -343,7 +343,7 @@ static void calpont_set_error(THD* thd, uint64_t errCode, LEX_STRING* args, uint ha_calpont::ha_calpont(handlerton *hton, TABLE_SHARE *table_arg) : handler(hton, table_arg), - int_table_flags(HA_BINLOG_STMT_CAPABLE | + int_table_flags(HA_BINLOG_STMT_CAPABLE | HA_BINLOG_ROW_CAPABLE | HA_TABLE_SCAN_ON_INDEX | HA_CAN_TABLE_CONDITION_PUSHDOWN) // int_table_flags(HA_NO_BLOBS | HA_BINLOG_STMT_CAPABLE) 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,