You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-29 08:21:15 +03:00
MCOL-265 Add support for TIMESTAMP data type
This commit is contained in:
@ -55,7 +55,8 @@ bool getUIntValFromParm(
|
||||
Row& row,
|
||||
const execplan::SPTP& parm,
|
||||
uint64_t& value,
|
||||
bool& isNull)
|
||||
bool& isNull,
|
||||
const string& timeZone)
|
||||
{
|
||||
switch (parm->data()->resultType().colDataType)
|
||||
{
|
||||
@ -143,6 +144,15 @@ bool getUIntValFromParm(
|
||||
}
|
||||
break;
|
||||
|
||||
case execplan::CalpontSystemCatalog::TIMESTAMP:
|
||||
{
|
||||
int64_t time = parm->data()->getTimestampIntVal(row, isNull);
|
||||
|
||||
TimeStamp dt(time);
|
||||
value = dt.convertToMySQLint(timeZone);
|
||||
}
|
||||
break;
|
||||
|
||||
case execplan::CalpontSystemCatalog::TIME:
|
||||
{
|
||||
int64_t time = parm->data()->getTimeIntVal(row, isNull);
|
||||
@ -189,8 +199,8 @@ int64_t Func_bitand::getIntVal(Row& row,
|
||||
uint64_t val1 = 0;
|
||||
uint64_t val2 = 0;
|
||||
|
||||
if (!getUIntValFromParm(row, parm[0], val1, isNull) ||
|
||||
!getUIntValFromParm(row, parm[1], val2, isNull))
|
||||
if (!getUIntValFromParm(row, parm[0], val1, isNull, fTimeZone) ||
|
||||
!getUIntValFromParm(row, parm[1], val2, isNull, fTimeZone))
|
||||
{
|
||||
std::ostringstream oss;
|
||||
oss << "bitand: datatype of " << execplan::colDataTypeToString(operationColType.colDataType);
|
||||
@ -225,8 +235,8 @@ int64_t Func_leftshift::getIntVal(Row& row,
|
||||
uint64_t val1 = 0;
|
||||
uint64_t val2 = 0;
|
||||
|
||||
if (!getUIntValFromParm(row, parm[0], val1, isNull) ||
|
||||
!getUIntValFromParm(row, parm[1], val2, isNull))
|
||||
if (!getUIntValFromParm(row, parm[0], val1, isNull, fTimeZone) ||
|
||||
!getUIntValFromParm(row, parm[1], val2, isNull, fTimeZone))
|
||||
{
|
||||
std::ostringstream oss;
|
||||
oss << "leftshift: datatype of " << execplan::colDataTypeToString(operationColType.colDataType);
|
||||
@ -261,8 +271,8 @@ int64_t Func_rightshift::getIntVal(Row& row,
|
||||
uint64_t val1 = 0;
|
||||
uint64_t val2 = 0;
|
||||
|
||||
if (!getUIntValFromParm(row, parm[0], val1, isNull) ||
|
||||
!getUIntValFromParm(row, parm[1], val2, isNull))
|
||||
if (!getUIntValFromParm(row, parm[0], val1, isNull, fTimeZone) ||
|
||||
!getUIntValFromParm(row, parm[1], val2, isNull, fTimeZone))
|
||||
{
|
||||
std::ostringstream oss;
|
||||
oss << "rightshift: datatype of " << execplan::colDataTypeToString(operationColType.colDataType);
|
||||
@ -297,8 +307,8 @@ int64_t Func_bitor::getIntVal(Row& row,
|
||||
uint64_t val1 = 0;
|
||||
uint64_t val2 = 0;
|
||||
|
||||
if (!getUIntValFromParm(row, parm[0], val1, isNull) ||
|
||||
!getUIntValFromParm(row, parm[1], val2, isNull))
|
||||
if (!getUIntValFromParm(row, parm[0], val1, isNull, fTimeZone) ||
|
||||
!getUIntValFromParm(row, parm[1], val2, isNull, fTimeZone))
|
||||
{
|
||||
std::ostringstream oss;
|
||||
oss << "bitor: datatype of " << execplan::colDataTypeToString(operationColType.colDataType);
|
||||
@ -341,8 +351,8 @@ int64_t Func_bitxor::getIntVal(Row& row,
|
||||
uint64_t val1 = 0;
|
||||
uint64_t val2 = 0;
|
||||
|
||||
if (!getUIntValFromParm(row, parm[0], val1, isNull) ||
|
||||
!getUIntValFromParm(row, parm[1], val2, isNull))
|
||||
if (!getUIntValFromParm(row, parm[0], val1, isNull, fTimeZone) ||
|
||||
!getUIntValFromParm(row, parm[1], val2, isNull, fTimeZone))
|
||||
{
|
||||
std::ostringstream oss;
|
||||
oss << "bitxor: datatype of " << execplan::colDataTypeToString(operationColType.colDataType);
|
||||
|
Reference in New Issue
Block a user