1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-29 08:21:15 +03:00

MCOL 3474 Fix Timediff results after accounting for new test cases

This commit is contained in:
jmrojas2332
2019-12-04 22:48:07 +00:00
parent 16b004dc07
commit c29c41e235
3 changed files with 62 additions and 35 deletions

View File

@ -3005,6 +3005,14 @@ int64_t DataConvert::intToDatetime(int64_t data, bool* date)
else
{
y = atoi(year.c_str());
// special handling for 2-byte year
if (year.length() == 2)
{
y += 2000;
if (y > 2069)
y -= 100;
}
}
m = atoi(month.c_str());
@ -3056,10 +3064,10 @@ int64_t DataConvert::intToTime(int64_t data, bool fromString)
#if defined(__GNUC__) && __GNUC__ >= 7
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat-truncation="
snprintf( buf, 15, "%llu", (long long unsigned int)data);
snprintf( buf, 15, "%lld", (long long int)data);
#pragma GCC diagnostic pop
#else
snprintf( buf, 15, "%llu", (long long unsigned int)data);
snprintf( buf, 15, "%lld", (long long int)data);
#endif
//string date = buf;
@ -3090,8 +3098,8 @@ int64_t DataConvert::intToTime(int64_t data, bool fromString)
case 7:
hour = string(bufread, 3);
min = string(bufread + 2, 2);
sec = string(bufread + 4, 2);
min = string(bufread + 3, 2);
sec = string(bufread + 5, 2);
break;
case 6:
@ -3152,7 +3160,7 @@ int64_t DataConvert::intToTime(int64_t data, bool fromString)
atime.msecond = ms;
atime.is_neg = isNeg;
return *(reinterpret_cast<uint64_t*>(&atime));
return *(reinterpret_cast<int64_t*>(&atime));
}
int64_t DataConvert::stringToTime(const string& data)