You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-07 03:22:57 +03:00
MCOL-1417 Fix cpimport TIME saturation
This commit is contained in:
@@ -1907,6 +1907,7 @@ int64_t DataConvert::convertColumnTime(
|
|||||||
{
|
{
|
||||||
status = 0;
|
status = 0;
|
||||||
char* p;
|
char* p;
|
||||||
|
char* retp = NULL;
|
||||||
char* savePoint = NULL;
|
char* savePoint = NULL;
|
||||||
p = const_cast<char*>(dataOrg);
|
p = const_cast<char*>(dataOrg);
|
||||||
int64_t value = 0;
|
int64_t value = 0;
|
||||||
@@ -1923,6 +1924,17 @@ int64_t DataConvert::convertColumnTime(
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (dataOrgLen == 0)
|
||||||
|
{
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
if (dataOrgLen < 3)
|
||||||
|
{
|
||||||
|
// Not enough chars to be a time
|
||||||
|
status = -1;
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
if (p[0] == '-')
|
if (p[0] == '-')
|
||||||
{
|
{
|
||||||
isNeg = true;
|
isNeg = true;
|
||||||
@@ -1931,9 +1943,9 @@ int64_t DataConvert::convertColumnTime(
|
|||||||
errno = 0;
|
errno = 0;
|
||||||
|
|
||||||
p = strtok_r(p, ":.", &savePoint);
|
p = strtok_r(p, ":.", &savePoint);
|
||||||
inHour = strtol(p, 0, 10);
|
inHour = strtol(p, &retp, 10);
|
||||||
|
|
||||||
if (errno)
|
if (errno || !retp)
|
||||||
{
|
{
|
||||||
status = -1;
|
status = -1;
|
||||||
return value;
|
return value;
|
||||||
@@ -1947,9 +1959,9 @@ int64_t DataConvert::convertColumnTime(
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
inMinute = strtol(p, 0, 10);
|
inMinute = strtol(p, &retp, 10);
|
||||||
|
|
||||||
if (errno)
|
if (errno || !retp)
|
||||||
{
|
{
|
||||||
status = -1;
|
status = -1;
|
||||||
return value;
|
return value;
|
||||||
@@ -1963,9 +1975,9 @@ int64_t DataConvert::convertColumnTime(
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
inSecond = strtol(p, 0, 10);
|
inSecond = strtol(p, &retp, 10);
|
||||||
|
|
||||||
if (errno)
|
if (errno || !retp)
|
||||||
{
|
{
|
||||||
status = -1;
|
status = -1;
|
||||||
return value;
|
return value;
|
||||||
@@ -1975,9 +1987,9 @@ int64_t DataConvert::convertColumnTime(
|
|||||||
|
|
||||||
if (p != NULL)
|
if (p != NULL)
|
||||||
{
|
{
|
||||||
inMicrosecond = strtol(p, 0, 10);
|
inMicrosecond = strtol(p, &retp, 10);
|
||||||
|
|
||||||
if (errno)
|
if (errno || !retp)
|
||||||
{
|
{
|
||||||
status = -1;
|
status = -1;
|
||||||
return value;
|
return value;
|
||||||
|
Reference in New Issue
Block a user