You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-04 04:42:30 +03:00
MCOL-392 Apply astyle
Make this branch apply our style guidelines
This commit is contained in:
@ -606,6 +606,7 @@ void SimpleFilter::convertConstant()
|
|||||||
result.intVal = dataconvert::DataConvert::timeToInt(result.strVal);
|
result.intVal = dataconvert::DataConvert::timeToInt(result.strVal);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rcc->result(result);
|
rcc->result(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -995,6 +995,7 @@ inline int64_t TreeNode::getDatetimeIntVal()
|
|||||||
int day = 0;
|
int day = 0;
|
||||||
|
|
||||||
memcpy(&tt, &fResult.intVal, 8);
|
memcpy(&tt, &fResult.intVal, 8);
|
||||||
|
|
||||||
// Note, this should probably be current date +/- time
|
// Note, this should probably be current date +/- time
|
||||||
if ((tt.hour > 23) && (!tt.is_neg))
|
if ((tt.hour > 23) && (!tt.is_neg))
|
||||||
{
|
{
|
||||||
@ -1005,6 +1006,7 @@ inline int64_t TreeNode::getDatetimeIntVal()
|
|||||||
{
|
{
|
||||||
tt.hour = 0;
|
tt.hour = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
dataconvert::DateTime dt(0, 0, day, tt.hour, tt.minute, tt.second, tt.msecond);
|
dataconvert::DateTime dt(0, 0, day, tt.hour, tt.minute, tt.second, tt.msecond);
|
||||||
memcpy(&fResult.intVal, &dt, 8);
|
memcpy(&fResult.intVal, &dt, 8);
|
||||||
return fResult.intVal;
|
return fResult.intVal;
|
||||||
|
@ -648,10 +648,12 @@ int64_t GroupConcator::lengthEstimate(const rowgroup::Row& row)
|
|||||||
fieldLen = 19; // YYYY-MM-DD HH24:MI:SS
|
fieldLen = 19; // YYYY-MM-DD HH24:MI:SS
|
||||||
// Decimal point and milliseconds
|
// Decimal point and milliseconds
|
||||||
uint64_t colPrecision = row.getPrecision(*i);
|
uint64_t colPrecision = row.getPrecision(*i);
|
||||||
|
|
||||||
if (colPrecision > 0 && colPrecision < 7)
|
if (colPrecision > 0 && colPrecision < 7)
|
||||||
{
|
{
|
||||||
fieldLen += colPrecision + 1;
|
fieldLen += colPrecision + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -660,10 +662,12 @@ int64_t GroupConcator::lengthEstimate(const rowgroup::Row& row)
|
|||||||
fieldLen = 10; // -HHH:MI:SS
|
fieldLen = 10; // -HHH:MI:SS
|
||||||
// Decimal point and milliseconds
|
// Decimal point and milliseconds
|
||||||
uint64_t colPrecision = row.getPrecision(*i);
|
uint64_t colPrecision = row.getPrecision(*i);
|
||||||
|
|
||||||
if (colPrecision > 0 && colPrecision < 7)
|
if (colPrecision > 0 && colPrecision < 7)
|
||||||
{
|
{
|
||||||
fieldLen += colPrecision + 1;
|
fieldLen += colPrecision + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -842,6 +842,7 @@ int ha_calpont_impl_write_batch_row_(uchar* buf, TABLE* table, cal_impl_if::cal_
|
|||||||
const uchar* pos = buf;
|
const uchar* pos = buf;
|
||||||
longlong tmp = my_datetime_packed_from_binary(pos, table->field[colpos]->decimals());
|
longlong tmp = my_datetime_packed_from_binary(pos, table->field[colpos]->decimals());
|
||||||
TIME_from_longlong_datetime_packed(<ime, tmp);
|
TIME_from_longlong_datetime_packed(<ime, tmp);
|
||||||
|
|
||||||
if (!ltime.second_part)
|
if (!ltime.second_part)
|
||||||
{
|
{
|
||||||
fprintf(ci.filePtr, "%04d-%02d-%02d %02d:%02d:%02d%c",
|
fprintf(ci.filePtr, "%04d-%02d-%02d %02d:%02d:%02d%c",
|
||||||
@ -855,6 +856,7 @@ int ha_calpont_impl_write_batch_row_(uchar* buf, TABLE* table, cal_impl_if::cal_
|
|||||||
ltime.hour, ltime.minute, ltime.second,
|
ltime.hour, ltime.minute, ltime.second,
|
||||||
ltime.second_part, ci.delimiter);
|
ltime.second_part, ci.delimiter);
|
||||||
}
|
}
|
||||||
|
|
||||||
buf += table->field[colpos]->pack_length();
|
buf += table->field[colpos]->pack_length();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -892,6 +894,7 @@ int ha_calpont_impl_write_batch_row_(uchar* buf, TABLE* table, cal_impl_if::cal_
|
|||||||
const uchar* pos = buf;
|
const uchar* pos = buf;
|
||||||
longlong tmp = my_time_packed_from_binary(pos, table->field[colpos]->decimals());
|
longlong tmp = my_time_packed_from_binary(pos, table->field[colpos]->decimals());
|
||||||
TIME_from_longlong_time_packed(<ime, tmp);
|
TIME_from_longlong_time_packed(<ime, tmp);
|
||||||
|
|
||||||
if (!ltime.second_part)
|
if (!ltime.second_part)
|
||||||
{
|
{
|
||||||
fprintf(ci.filePtr, "%02d:%02d:%02d%c",
|
fprintf(ci.filePtr, "%02d:%02d:%02d%c",
|
||||||
@ -903,6 +906,7 @@ int ha_calpont_impl_write_batch_row_(uchar* buf, TABLE* table, cal_impl_if::cal_
|
|||||||
ltime.hour, ltime.minute, ltime.second,
|
ltime.hour, ltime.minute, ltime.second,
|
||||||
ltime.second_part, ci.delimiter);
|
ltime.second_part, ci.delimiter);
|
||||||
}
|
}
|
||||||
|
|
||||||
buf += table->field[colpos]->pack_length();
|
buf += table->field[colpos]->pack_length();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1020,10 +1020,11 @@ bool mysql_str_to_time( const string& input, Time& output )
|
|||||||
{
|
{
|
||||||
output.reset();
|
output.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
output.hour = isNeg ? 0-hour : hour;
|
output.hour = isNeg ? 0 - hour : hour;
|
||||||
output.minute = min;
|
output.minute = min;
|
||||||
output.second = sec;
|
output.second = sec;
|
||||||
output.msecond = usec;
|
output.msecond = usec;
|
||||||
@ -1416,7 +1417,7 @@ DataConvert::convertColumnData(const CalpontSystemCatalog::ColType& colType,
|
|||||||
|
|
||||||
if (stringToTimeStruct(data, aTime))
|
if (stringToTimeStruct(data, aTime))
|
||||||
{
|
{
|
||||||
value = (int64_t) *(reinterpret_cast<int64_t*>(&aTime));
|
value = (int64_t) * (reinterpret_cast<int64_t*>(&aTime));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1918,6 +1919,7 @@ int64_t DataConvert::convertColumnTime(
|
|||||||
inSecond = 0;
|
inSecond = 0;
|
||||||
inMicrosecond = 0;
|
inMicrosecond = 0;
|
||||||
bool isNeg = false;
|
bool isNeg = false;
|
||||||
|
|
||||||
if ( datetimeFormat != CALPONTTIME_ENUM )
|
if ( datetimeFormat != CALPONTTIME_ENUM )
|
||||||
{
|
{
|
||||||
status = -1;
|
status = -1;
|
||||||
@ -1941,6 +1943,7 @@ int64_t DataConvert::convertColumnTime(
|
|||||||
}
|
}
|
||||||
|
|
||||||
p = strtok_r(NULL, ":.", &savePoint);
|
p = strtok_r(NULL, ":.", &savePoint);
|
||||||
|
|
||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
{
|
{
|
||||||
status = -1;
|
status = -1;
|
||||||
@ -1976,6 +1979,7 @@ int64_t DataConvert::convertColumnTime(
|
|||||||
if (p != NULL)
|
if (p != NULL)
|
||||||
{
|
{
|
||||||
inMicrosecond = strtol(p, 0, 10);
|
inMicrosecond = strtol(p, 0, 10);
|
||||||
|
|
||||||
if (errno)
|
if (errno)
|
||||||
{
|
{
|
||||||
status = -1;
|
status = -1;
|
||||||
@ -2017,6 +2021,7 @@ int64_t DataConvert::convertColumnTime(
|
|||||||
atime.is_neg = false;
|
atime.is_neg = false;
|
||||||
memcpy( &value, &atime, 8);
|
memcpy( &value, &atime, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
// If neither of the above match then we return a 0 time
|
// If neither of the above match then we return a 0 time
|
||||||
|
|
||||||
status = -1;
|
status = -1;
|
||||||
@ -2067,21 +2072,25 @@ std::string DataConvert::datetimeToString( long long datetimevalue, long decima
|
|||||||
{
|
{
|
||||||
decimals = 0;
|
decimals = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @bug 4703 abandon multiple ostringstream's for conversion
|
// @bug 4703 abandon multiple ostringstream's for conversion
|
||||||
DateTime dt(datetimevalue);
|
DateTime dt(datetimevalue);
|
||||||
const int DATETIMETOSTRING_LEN = 28; // YYYY-MM-DD HH:MM:SS.mmmmmm\0
|
const int DATETIMETOSTRING_LEN = 28; // YYYY-MM-DD HH:MM:SS.mmmmmm\0
|
||||||
char buf[DATETIMETOSTRING_LEN];
|
char buf[DATETIMETOSTRING_LEN];
|
||||||
|
|
||||||
sprintf(buf, "%04d-%02d-%02d %02d:%02d:%02d", dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second);
|
sprintf(buf, "%04d-%02d-%02d %02d:%02d:%02d", dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second);
|
||||||
|
|
||||||
if (dt.msecond && decimals)
|
if (dt.msecond && decimals)
|
||||||
{
|
{
|
||||||
snprintf(buf + strlen(buf), 21 + decimals, ".%d", dt.msecond);
|
snprintf(buf + strlen(buf), 21 + decimals, ".%d", dt.msecond);
|
||||||
|
|
||||||
// Pad end with zeros
|
// Pad end with zeros
|
||||||
if (strlen(buf) < (size_t)(21 + decimals))
|
if (strlen(buf) < (size_t)(21 + decimals))
|
||||||
{
|
{
|
||||||
sprintf(buf + strlen(buf), "%0*d", (int)(21 + decimals - strlen(buf)), 0);
|
sprintf(buf + strlen(buf), "%0*d", (int)(21 + decimals - strlen(buf)), 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2092,6 +2101,7 @@ std::string DataConvert::timeToString( long long timevalue, long decimals )
|
|||||||
{
|
{
|
||||||
decimals = 0;
|
decimals = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @bug 4703 abandon multiple ostringstream's for conversion
|
// @bug 4703 abandon multiple ostringstream's for conversion
|
||||||
Time dt(timevalue);
|
Time dt(timevalue);
|
||||||
const int TIMETOSTRING_LEN = 19; // (-H)HH:MM:SS.mmmmmm\0
|
const int TIMETOSTRING_LEN = 19; // (-H)HH:MM:SS.mmmmmm\0
|
||||||
@ -2105,16 +2115,19 @@ std::string DataConvert::timeToString( long long timevalue, long decimals )
|
|||||||
}
|
}
|
||||||
|
|
||||||
sprintf(outbuf, "%02d:%02d:%02d", dt.hour, dt.minute, dt.second);
|
sprintf(outbuf, "%02d:%02d:%02d", dt.hour, dt.minute, dt.second);
|
||||||
|
|
||||||
if (dt.msecond && decimals)
|
if (dt.msecond && decimals)
|
||||||
{
|
{
|
||||||
size_t start = strlen(buf);
|
size_t start = strlen(buf);
|
||||||
snprintf(buf + strlen(buf), 12 + decimals, ".%d", dt.msecond);
|
snprintf(buf + strlen(buf), 12 + decimals, ".%d", dt.msecond);
|
||||||
|
|
||||||
// Pad end with zeros
|
// Pad end with zeros
|
||||||
if (strlen(buf) - start < (size_t)decimals)
|
if (strlen(buf) - start < (size_t)decimals)
|
||||||
{
|
{
|
||||||
sprintf(buf + strlen(buf), "%0*d", (int)(decimals - (strlen(buf) - start) + 1), 0);
|
sprintf(buf + strlen(buf), "%0*d", (int)(decimals - (strlen(buf) - start) + 1), 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -277,6 +277,7 @@ inline uint32_t getDaysInMonth(uint32_t month, int year)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
uint32_t days = daysInMonth[month - 1];
|
uint32_t days = daysInMonth[month - 1];
|
||||||
|
|
||||||
if ((month == 2) && isLeapYear(year))
|
if ((month == 2) && isLeapYear(year))
|
||||||
days++;
|
days++;
|
||||||
|
|
||||||
@ -567,11 +568,14 @@ inline void DataConvert::datetimeToString( long long datetimevalue, char* buf, u
|
|||||||
{
|
{
|
||||||
decimals = 0;
|
decimals = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int msec = 0;
|
int msec = 0;
|
||||||
|
|
||||||
if ((datetimevalue & 0xfffff) > 0)
|
if ((datetimevalue & 0xfffff) > 0)
|
||||||
{
|
{
|
||||||
msec = (unsigned)((datetimevalue) & 0xfffff);
|
msec = (unsigned)((datetimevalue) & 0xfffff);
|
||||||
}
|
}
|
||||||
|
|
||||||
snprintf( buf, buflen, "%04d-%02d-%02d %02d:%02d:%02d",
|
snprintf( buf, buflen, "%04d-%02d-%02d %02d:%02d:%02d",
|
||||||
(unsigned)((datetimevalue >> 48) & 0xffff),
|
(unsigned)((datetimevalue >> 48) & 0xffff),
|
||||||
(unsigned)((datetimevalue >> 44) & 0xf),
|
(unsigned)((datetimevalue >> 44) & 0xf),
|
||||||
@ -585,6 +589,7 @@ inline void DataConvert::datetimeToString( long long datetimevalue, char* buf, u
|
|||||||
{
|
{
|
||||||
size_t start = strlen(buf);
|
size_t start = strlen(buf);
|
||||||
snprintf(buf + strlen(buf), buflen - start, ".%d", msec);
|
snprintf(buf + strlen(buf), buflen - start, ".%d", msec);
|
||||||
|
|
||||||
// Pad end with zeros
|
// Pad end with zeros
|
||||||
if (strlen(buf) - start < (size_t)decimals)
|
if (strlen(buf) - start < (size_t)decimals)
|
||||||
{
|
{
|
||||||
@ -600,8 +605,10 @@ inline void DataConvert::timeToString( long long timevalue, char* buf, unsigned
|
|||||||
{
|
{
|
||||||
decimals = 0;
|
decimals = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle negative correctly
|
// Handle negative correctly
|
||||||
int hour = 0, msec = 0;
|
int hour = 0, msec = 0;
|
||||||
|
|
||||||
if ((timevalue >> 40) & 0x800)
|
if ((timevalue >> 40) & 0x800)
|
||||||
{
|
{
|
||||||
hour = 0xfffff000;
|
hour = 0xfffff000;
|
||||||
@ -613,12 +620,14 @@ inline void DataConvert::timeToString( long long timevalue, char* buf, unsigned
|
|||||||
{
|
{
|
||||||
msec = (unsigned)((timevalue) & 0xffffff);
|
msec = (unsigned)((timevalue) & 0xffffff);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((hour >= 0) && (timevalue >> 63))
|
if ((hour >= 0) && (timevalue >> 63))
|
||||||
{
|
{
|
||||||
buf[0] = '-';
|
buf[0] = '-';
|
||||||
buf++;
|
buf++;
|
||||||
buflen--;
|
buflen--;
|
||||||
}
|
}
|
||||||
|
|
||||||
snprintf( buf, buflen, "%02d:%02d:%02d",
|
snprintf( buf, buflen, "%02d:%02d:%02d",
|
||||||
hour,
|
hour,
|
||||||
(unsigned)((timevalue >> 32) & 0xff),
|
(unsigned)((timevalue >> 32) & 0xff),
|
||||||
@ -629,6 +638,7 @@ inline void DataConvert::timeToString( long long timevalue, char* buf, unsigned
|
|||||||
{
|
{
|
||||||
size_t start = strlen(buf);
|
size_t start = strlen(buf);
|
||||||
snprintf(buf + strlen(buf), buflen - start, ".%d", msec);
|
snprintf(buf + strlen(buf), buflen - start, ".%d", msec);
|
||||||
|
|
||||||
// Pad end with zeros
|
// Pad end with zeros
|
||||||
if (strlen(buf) - start < (size_t)decimals)
|
if (strlen(buf) - start < (size_t)decimals)
|
||||||
{
|
{
|
||||||
@ -662,6 +672,7 @@ inline void DataConvert::timeToString1( long long timevalue, char* buf, unsigned
|
|||||||
{
|
{
|
||||||
// Handle negative correctly
|
// Handle negative correctly
|
||||||
int hour = 0;
|
int hour = 0;
|
||||||
|
|
||||||
if ((timevalue >> 40) & 0x800)
|
if ((timevalue >> 40) & 0x800)
|
||||||
{
|
{
|
||||||
hour = 0xfffff000;
|
hour = 0xfffff000;
|
||||||
|
@ -320,9 +320,9 @@ int64_t Func_add_time::getDatetimeIntVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
|
|
||||||
int64_t Func_add_time::getTimeIntVal(rowgroup::Row& row,
|
int64_t Func_add_time::getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& parm,
|
FunctionParm& parm,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
CalpontSystemCatalog::ColType& ct)
|
CalpontSystemCatalog::ColType& ct)
|
||||||
{
|
{
|
||||||
int64_t val1 = parm[0]->data()->getTimeIntVal(row, isNull);
|
int64_t val1 = parm[0]->data()->getTimeIntVal(row, isNull);
|
||||||
|
|
||||||
|
@ -165,6 +165,7 @@ int64_t Func_bitand::getIntVal(Row& row,
|
|||||||
min = 0,
|
min = 0,
|
||||||
sec = 0,
|
sec = 0,
|
||||||
msec = 0;
|
msec = 0;
|
||||||
|
|
||||||
// Handle negative correctly
|
// Handle negative correctly
|
||||||
if ((time >> 40) & 0x800)
|
if ((time >> 40) & 0x800)
|
||||||
{
|
{
|
||||||
@ -172,8 +173,10 @@ int64_t Func_bitand::getIntVal(Row& row,
|
|||||||
}
|
}
|
||||||
|
|
||||||
hour |= ((time >> 40) & 0xfff);
|
hour |= ((time >> 40) & 0xfff);
|
||||||
|
|
||||||
if ((hour >= 0) && (time >> 63))
|
if ((hour >= 0) && (time >> 63))
|
||||||
hour*= -1;
|
hour *= -1;
|
||||||
|
|
||||||
min = (uint32_t)((time >> 32) & 0xff);
|
min = (uint32_t)((time >> 32) & 0xff);
|
||||||
sec = (uint32_t)((time >> 24) & 0xff);
|
sec = (uint32_t)((time >> 24) & 0xff);
|
||||||
msec = (uint32_t)(time & 0xffffff);
|
msec = (uint32_t)(time & 0xffffff);
|
||||||
|
@ -546,9 +546,9 @@ int64_t Func_simple_case::getDatetimeIntVal(rowgroup::Row& row,
|
|||||||
|
|
||||||
|
|
||||||
int64_t Func_simple_case::getTimeIntVal(rowgroup::Row& row,
|
int64_t Func_simple_case::getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& parm,
|
FunctionParm& parm,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct)
|
execplan::CalpontSystemCatalog::ColType& op_ct)
|
||||||
{
|
{
|
||||||
uint64_t i = simple_case_cmp(row, parm, isNull, op_ct);
|
uint64_t i = simple_case_cmp(row, parm, isNull, op_ct);
|
||||||
|
|
||||||
|
@ -140,9 +140,9 @@ int64_t Func_coalesce::getDatetimeIntVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
|
|
||||||
int64_t Func_coalesce::getTimeIntVal(rowgroup::Row& row,
|
int64_t Func_coalesce::getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& parm,
|
FunctionParm& parm,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
CalpontSystemCatalog::ColType& ct)
|
CalpontSystemCatalog::ColType& ct)
|
||||||
{
|
{
|
||||||
int64_t val = 0;
|
int64_t val = 0;
|
||||||
|
|
||||||
|
@ -135,26 +135,28 @@ long long dateGet( uint64_t time, IntervalColumn::interval_type unit, bool dateT
|
|||||||
long long timeGet( uint64_t time, IntervalColumn::interval_type unit )
|
long long timeGet( uint64_t time, IntervalColumn::interval_type unit )
|
||||||
{
|
{
|
||||||
int32_t hour = 0,
|
int32_t hour = 0,
|
||||||
min = 0,
|
min = 0,
|
||||||
sec = 0,
|
sec = 0,
|
||||||
msec = 0,
|
msec = 0,
|
||||||
day = 0;
|
day = 0;
|
||||||
|
|
||||||
min = (int32_t)((time >> 32) & 0xff);
|
min = (int32_t)((time >> 32) & 0xff);
|
||||||
sec = (int32_t)((time >> 24) & 0xff);
|
sec = (int32_t)((time >> 24) & 0xff);
|
||||||
msec = (int32_t)((time & 0xfffff));
|
msec = (int32_t)((time & 0xfffff));
|
||||||
|
|
||||||
// If negative, mask so it doesn't turn positive
|
// If negative, mask so it doesn't turn positive
|
||||||
int64_t mask = 0;
|
int64_t mask = 0;
|
||||||
if ((time >> 40) & 0x800)
|
|
||||||
mask = 0xfffffffffffff000;
|
|
||||||
hour = mask | ((time >> 40) & 0xfff);
|
|
||||||
|
|
||||||
if ((hour >= 0) && (time >> 63))
|
if ((time >> 40) & 0x800)
|
||||||
hour*= -1;
|
mask = 0xfffffffffffff000;
|
||||||
|
|
||||||
// Always positive!
|
hour = mask | ((time >> 40) & 0xfff);
|
||||||
day = abs(hour / 24);
|
|
||||||
|
if ((hour >= 0) && (time >> 63))
|
||||||
|
hour *= -1;
|
||||||
|
|
||||||
|
// Always positive!
|
||||||
|
day = abs(hour / 24);
|
||||||
|
|
||||||
switch ( unit )
|
switch ( unit )
|
||||||
{
|
{
|
||||||
@ -275,6 +277,7 @@ int64_t Func_extract::getIntVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
|
|
||||||
long long value;
|
long long value;
|
||||||
|
|
||||||
if (isTime)
|
if (isTime)
|
||||||
value = timeGet( time, unit );
|
value = timeGet( time, unit );
|
||||||
else
|
else
|
||||||
|
@ -207,9 +207,9 @@ int64_t Func_greatest::getDatetimeIntVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
|
|
||||||
int64_t Func_greatest::getTimeIntVal(rowgroup::Row& row,
|
int64_t Func_greatest::getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& ct)
|
execplan::CalpontSystemCatalog::ColType& ct)
|
||||||
{
|
{
|
||||||
// Strip off unused day
|
// Strip off unused day
|
||||||
int64_t greatestStr = fp[0]->data()->getTimeIntVal(row, isNull);
|
int64_t greatestStr = fp[0]->data()->getTimeIntVal(row, isNull);
|
||||||
|
@ -130,6 +130,7 @@ int64_t Func_hour::getIntVal(rowgroup::Row& row,
|
|||||||
// If negative, mask so it doesn't turn positive
|
// If negative, mask so it doesn't turn positive
|
||||||
bool isNeg = false;
|
bool isNeg = false;
|
||||||
int64_t mask = 0;
|
int64_t mask = 0;
|
||||||
|
|
||||||
if ((val >> 40) & 0x800)
|
if ((val >> 40) & 0x800)
|
||||||
mask = 0xfffffffffffff000;
|
mask = 0xfffffffffffff000;
|
||||||
|
|
||||||
@ -137,9 +138,11 @@ int64_t Func_hour::getIntVal(rowgroup::Row& row,
|
|||||||
{
|
{
|
||||||
isNeg = true;
|
isNeg = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
val = mask | ((val >> 40) & 0xfff);
|
val = mask | ((val >> 40) & 0xfff);
|
||||||
|
|
||||||
if (isNeg)
|
if (isNeg)
|
||||||
val*= -1;
|
val *= -1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -221,9 +221,9 @@ int64_t Func_if::getDatetimeIntVal(Row& row,
|
|||||||
}
|
}
|
||||||
|
|
||||||
int64_t Func_if::getTimeIntVal(Row& row,
|
int64_t Func_if::getTimeIntVal(Row& row,
|
||||||
FunctionParm& parm,
|
FunctionParm& parm,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
CalpontSystemCatalog::ColType&)
|
CalpontSystemCatalog::ColType&)
|
||||||
{
|
{
|
||||||
if (boolVal(parm[0], row))
|
if (boolVal(parm[0], row))
|
||||||
{
|
{
|
||||||
|
@ -169,9 +169,9 @@ int64_t Func_ifnull::getDatetimeIntVal(Row& row,
|
|||||||
}
|
}
|
||||||
|
|
||||||
int64_t Func_ifnull::getTimeIntVal(Row& row,
|
int64_t Func_ifnull::getTimeIntVal(Row& row,
|
||||||
FunctionParm& parm,
|
FunctionParm& parm,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
CalpontSystemCatalog::ColType&)
|
CalpontSystemCatalog::ColType&)
|
||||||
{
|
{
|
||||||
if (isNull)
|
if (isNull)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -223,9 +223,9 @@ int64_t Func_inet_aton::getDatetimeIntVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
|
|
||||||
int64_t Func_inet_aton::getTimeIntVal(rowgroup::Row& row,
|
int64_t Func_inet_aton::getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct)
|
execplan::CalpontSystemCatalog::ColType& op_ct)
|
||||||
{
|
{
|
||||||
int64_t iValue = joblist::TIMENULL;
|
int64_t iValue = joblist::TIMENULL;
|
||||||
|
|
||||||
|
@ -257,9 +257,9 @@ int64_t Func_inet_ntoa::getDatetimeIntVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
|
|
||||||
int64_t Func_inet_ntoa::getTimeIntVal(rowgroup::Row& row,
|
int64_t Func_inet_ntoa::getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct)
|
execplan::CalpontSystemCatalog::ColType& op_ct)
|
||||||
{
|
{
|
||||||
// std::cout << "In Func_inet_ntoa::getTimeVal" << std::endl;
|
// std::cout << "In Func_inet_ntoa::getTimeVal" << std::endl;
|
||||||
|
|
||||||
|
@ -183,9 +183,9 @@ int64_t Func_least::getDatetimeIntVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
|
|
||||||
int64_t Func_least::getTimeIntVal(rowgroup::Row& row,
|
int64_t Func_least::getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct)
|
execplan::CalpontSystemCatalog::ColType& op_ct)
|
||||||
{
|
{
|
||||||
// Strip off unused day
|
// Strip off unused day
|
||||||
int64_t leastStr = fp[0]->data()->getTimeIntVal(row, isNull);
|
int64_t leastStr = fp[0]->data()->getTimeIntVal(row, isNull);
|
||||||
|
@ -129,8 +129,8 @@ int64_t Func_nullif::getIntVal(rowgroup::Row& row,
|
|||||||
|
|
||||||
if ((parm[0]->data()->resultType().colDataType ==
|
if ((parm[0]->data()->resultType().colDataType ==
|
||||||
execplan::CalpontSystemCatalog::DATE) ||
|
execplan::CalpontSystemCatalog::DATE) ||
|
||||||
(parm[0]->data()->resultType().colDataType ==
|
(parm[0]->data()->resultType().colDataType ==
|
||||||
execplan::CalpontSystemCatalog::DATETIME))
|
execplan::CalpontSystemCatalog::DATETIME))
|
||||||
|
|
||||||
{
|
{
|
||||||
// NULLIF arg0 is DATE, arg1 is DATETIME,
|
// NULLIF arg0 is DATE, arg1 is DATETIME,
|
||||||
@ -164,8 +164,8 @@ int64_t Func_nullif::getIntVal(rowgroup::Row& row,
|
|||||||
|
|
||||||
if ((parm[0]->data()->resultType().colDataType ==
|
if ((parm[0]->data()->resultType().colDataType ==
|
||||||
execplan::CalpontSystemCatalog::DATETIME) ||
|
execplan::CalpontSystemCatalog::DATETIME) ||
|
||||||
(parm[0]->data()->resultType().colDataType ==
|
(parm[0]->data()->resultType().colDataType ==
|
||||||
execplan::CalpontSystemCatalog::TIME))
|
execplan::CalpontSystemCatalog::TIME))
|
||||||
{
|
{
|
||||||
// NULLIF arg0 is DATETIME, arg1 is TIME,
|
// NULLIF arg0 is DATETIME, arg1 is TIME,
|
||||||
// Upgrade arg1 to time
|
// Upgrade arg1 to time
|
||||||
@ -495,9 +495,9 @@ int64_t Func_nullif::getDatetimeIntVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
|
|
||||||
int64_t Func_nullif::getTimeIntVal(rowgroup::Row& row,
|
int64_t Func_nullif::getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& parm,
|
FunctionParm& parm,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
CalpontSystemCatalog::ColType& ct)
|
CalpontSystemCatalog::ColType& ct)
|
||||||
{
|
{
|
||||||
int64_t exp1 = parm[0]->data()->getTimeIntVal(row, isNull);
|
int64_t exp1 = parm[0]->data()->getTimeIntVal(row, isNull);
|
||||||
int64_t exp2 = 0;
|
int64_t exp2 = 0;
|
||||||
|
@ -101,9 +101,9 @@ int64_t Func_sysdate::getDatetimeIntVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
|
|
||||||
int64_t Func_sysdate::getTimeIntVal(rowgroup::Row& row,
|
int64_t Func_sysdate::getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& parm,
|
FunctionParm& parm,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
CalpontSystemCatalog::ColType& operationColType)
|
CalpontSystemCatalog::ColType& operationColType)
|
||||||
{
|
{
|
||||||
return getIntVal(row, parm, isNull, operationColType);
|
return getIntVal(row, parm, isNull, operationColType);
|
||||||
}
|
}
|
||||||
|
@ -111,6 +111,7 @@ string Func_time::getStrVal(rowgroup::Row& row,
|
|||||||
val = parm[0]->data()->getTimeIntVal(row, isNull);
|
val = parm[0]->data()->getTimeIntVal(row, isNull);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case execplan::CalpontSystemCatalog::DATETIME:
|
case execplan::CalpontSystemCatalog::DATETIME:
|
||||||
{
|
{
|
||||||
val = parm[0]->data()->getTimeIntVal(row, isNull);
|
val = parm[0]->data()->getTimeIntVal(row, isNull);
|
||||||
|
@ -50,8 +50,8 @@ int64_t Func_time_to_sec::getIntVal(rowgroup::Row& row,
|
|||||||
{
|
{
|
||||||
// assume 256 is enough. assume not allowing incomplete date
|
// assume 256 is enough. assume not allowing incomplete date
|
||||||
int32_t hour = 0,
|
int32_t hour = 0,
|
||||||
min = 0,
|
min = 0,
|
||||||
sec = 0;
|
sec = 0;
|
||||||
bool bIsNegative = false; // Only set to true if CHAR or VARCHAR with a '-'
|
bool bIsNegative = false; // Only set to true if CHAR or VARCHAR with a '-'
|
||||||
|
|
||||||
int64_t val = 0;
|
int64_t val = 0;
|
||||||
@ -72,16 +72,19 @@ int64_t Func_time_to_sec::getIntVal(rowgroup::Row& row,
|
|||||||
|
|
||||||
case CalpontSystemCatalog::TIME:
|
case CalpontSystemCatalog::TIME:
|
||||||
val = parm[0]->data()->getTimeIntVal(row, isNull);
|
val = parm[0]->data()->getTimeIntVal(row, isNull);
|
||||||
|
|
||||||
// If negative, mask so it doesn't turn positive
|
// If negative, mask so it doesn't turn positive
|
||||||
if ((val >> 40) & 0x800)
|
if ((val >> 40) & 0x800)
|
||||||
mask = 0xfffffffffffff000;
|
mask = 0xfffffffffffff000;
|
||||||
|
|
||||||
bIsNegative = val >> 63;
|
bIsNegative = val >> 63;
|
||||||
hour = (int32_t)(mask | ((val >> 40) & 0xfff));
|
hour = (int32_t)(mask | ((val >> 40) & 0xfff));
|
||||||
|
|
||||||
if ((hour >= 0) && bIsNegative)
|
if ((hour >= 0) && bIsNegative)
|
||||||
hour*= -1;
|
hour *= -1;
|
||||||
else
|
else
|
||||||
bIsNegative = false;
|
bIsNegative = false;
|
||||||
|
|
||||||
min = (int32_t)((val >> 32) & 0xff);
|
min = (int32_t)((val >> 32) & 0xff);
|
||||||
sec = (int32_t)((val >> 24) & 0xff);
|
sec = (int32_t)((val >> 24) & 0xff);
|
||||||
break;
|
break;
|
||||||
@ -162,6 +165,7 @@ int64_t Func_time_to_sec::getIntVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
|
|
||||||
int64_t rtn;
|
int64_t rtn;
|
||||||
|
|
||||||
if (hour < 0)
|
if (hour < 0)
|
||||||
{
|
{
|
||||||
rtn = (int64_t)(hour * 60 * 60) - (min * 60) - sec;
|
rtn = (int64_t)(hour * 60 * 60) - (min * 60) - sec;
|
||||||
|
@ -216,9 +216,9 @@ int64_t Func_timediff::getDatetimeIntVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
|
|
||||||
int64_t Func_timediff::getTimeIntVal(rowgroup::Row& row,
|
int64_t Func_timediff::getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& parm,
|
FunctionParm& parm,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
CalpontSystemCatalog::ColType& ct)
|
CalpontSystemCatalog::ColType& ct)
|
||||||
{
|
{
|
||||||
return dataconvert::DataConvert::timeToInt(getStrVal(row, parm, isNull, ct));
|
return dataconvert::DataConvert::timeToInt(getStrVal(row, parm, isNull, ct));
|
||||||
}
|
}
|
||||||
|
@ -117,9 +117,9 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
virtual int64_t getTimeIntVal(rowgroup::Row& row,
|
virtual int64_t getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct)
|
execplan::CalpontSystemCatalog::ColType& op_ct)
|
||||||
{
|
{
|
||||||
return intToTime(getIntVal(row, fp, isNull, op_ct));
|
return intToTime(getIntVal(row, fp, isNull, op_ct));
|
||||||
}
|
}
|
||||||
|
@ -105,10 +105,10 @@ public:
|
|||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
int64_t getTimeIntVal(rowgroup::Row& row,
|
int64_t getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -158,9 +158,9 @@ public:
|
|||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
int64_t getTimeIntVal(rowgroup::Row& row,
|
int64_t getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -206,9 +206,10 @@ public:
|
|||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
int64_t getTimeIntVal(rowgroup::Row& row,
|
int64_t getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct);};
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/** @brief Func_ifnull class
|
/** @brief Func_ifnull class
|
||||||
@ -252,9 +253,9 @@ public:
|
|||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
int64_t getTimeIntVal(rowgroup::Row& row,
|
int64_t getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
bool getBoolVal(rowgroup::Row& row,
|
bool getBoolVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
@ -309,9 +310,9 @@ public:
|
|||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
int64_t getTimeIntVal(rowgroup::Row& row,
|
int64_t getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -357,9 +358,10 @@ public:
|
|||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
int64_t getTimeIntVal(rowgroup::Row& row,
|
int64_t getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct);};
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/** @brief Func_coalesce class
|
/** @brief Func_coalesce class
|
||||||
@ -403,9 +405,9 @@ public:
|
|||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
int64_t getTimeIntVal(rowgroup::Row& row,
|
int64_t getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -435,9 +437,9 @@ public:
|
|||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
int64_t getTimeIntVal(rowgroup::Row& row,
|
int64_t getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
int64_t getIntVal(rowgroup::Row& row,
|
int64_t getIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
|
@ -99,9 +99,9 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
int64_t getTimeIntVal(rowgroup::Row& row,
|
int64_t getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct)
|
execplan::CalpontSystemCatalog::ColType& op_ct)
|
||||||
{
|
{
|
||||||
isNull = true;
|
isNull = true;
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -138,9 +138,9 @@ public:
|
|||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
int64_t getTimeIntVal(rowgroup::Row& row,
|
int64_t getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
int64_t getIntVal(rowgroup::Row& row,
|
int64_t getIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
@ -254,9 +254,9 @@ public:
|
|||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
int64_t getTimeIntVal(rowgroup::Row& row,
|
int64_t getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -324,9 +324,9 @@ public:
|
|||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
int64_t getTimeIntVal(rowgroup::Row& row,
|
int64_t getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -361,9 +361,9 @@ public:
|
|||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
int64_t getTimeIntVal(rowgroup::Row& row,
|
int64_t getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -393,9 +393,9 @@ public:
|
|||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
int64_t getTimeIntVal(rowgroup::Row& row,
|
int64_t getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
int64_t getIntVal(rowgroup::Row& row,
|
int64_t getIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
@ -439,9 +439,9 @@ public:
|
|||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
int64_t getTimeIntVal(rowgroup::Row& row,
|
int64_t getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
};
|
};
|
||||||
|
|
||||||
/** @brief Func_str_to_date class
|
/** @brief Func_str_to_date class
|
||||||
|
@ -655,9 +655,9 @@ public:
|
|||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
int64_t getTimeIntVal(rowgroup::Row& row,
|
int64_t getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -90,9 +90,9 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
int64_t getTimeIntVal(rowgroup::Row& row,
|
int64_t getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct)
|
execplan::CalpontSystemCatalog::ColType& op_ct)
|
||||||
{
|
{
|
||||||
std::string str = getStrVal(row, fp, isNull, op_ct);
|
std::string str = getStrVal(row, fp, isNull, op_ct);
|
||||||
return (isNull ? 0 : stringToTime(str));
|
return (isNull ? 0 : stringToTime(str));
|
||||||
@ -685,9 +685,9 @@ public:
|
|||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
|
|
||||||
int64_t getTimeIntVal(rowgroup::Row& row,
|
int64_t getTimeIntVal(rowgroup::Row& row,
|
||||||
FunctionParm& fp,
|
FunctionParm& fp,
|
||||||
bool& isNull,
|
bool& isNull,
|
||||||
execplan::CalpontSystemCatalog::ColType& op_ct);
|
execplan::CalpontSystemCatalog::ColType& op_ct);
|
||||||
private:
|
private:
|
||||||
void convertNtoa(int64_t ipNum, std::string& ipString);
|
void convertNtoa(int64_t ipNum, std::string& ipString);
|
||||||
};
|
};
|
||||||
|
@ -1543,6 +1543,7 @@ void RowAggregation::doBitOp(const Row& rowIn, int64_t colIn, int64_t colOut, in
|
|||||||
int64_t dtm = rowIn.getUintField(colIn);
|
int64_t dtm = rowIn.getUintField(colIn);
|
||||||
// Handle negative correctly
|
// Handle negative correctly
|
||||||
int hour = 0;
|
int hour = 0;
|
||||||
|
|
||||||
if ((dtm >> 40) & 0x800)
|
if ((dtm >> 40) & 0x800)
|
||||||
{
|
{
|
||||||
hour = 0xfffff000;
|
hour = 0xfffff000;
|
||||||
@ -2077,6 +2078,7 @@ void RowAggregation::doUDAF(const Row& rowIn, int64_t colIn, int64_t colOut, int
|
|||||||
datum.columnData = rowIn.getUintField(colIn);
|
datum.columnData = rowIn.getUintField(colIn);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case execplan::CalpontSystemCatalog::TIME:
|
case execplan::CalpontSystemCatalog::TIME:
|
||||||
{
|
{
|
||||||
datum.dataType = execplan::CalpontSystemCatalog::BIGINT;
|
datum.dataType = execplan::CalpontSystemCatalog::BIGINT;
|
||||||
|
@ -902,8 +902,8 @@ void BulkLoadBuffer::convert(char* field, int fieldLength,
|
|||||||
{
|
{
|
||||||
bool bSatVal = false;
|
bool bSatVal = false;
|
||||||
|
|
||||||
if ( column.dataType != CalpontSystemCatalog::DATETIME &&
|
if ( column.dataType != CalpontSystemCatalog::DATETIME &&
|
||||||
column.dataType != CalpontSystemCatalog::TIME )
|
column.dataType != CalpontSystemCatalog::TIME )
|
||||||
{
|
{
|
||||||
if (nullFlag)
|
if (nullFlag)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user