You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
MCOL-4313 Introduced TSInt128 that is a storage class for int128
Removed uint128 from joblist/lbidlist.* Another toString() method for wide-decimal that is EMPTY/NULL aware Unified decimal processing in WF functions Fixed a potential issue in EqualCompData::operator() for wide-decimal processing Fixed some signedness warnings
This commit is contained in:
@ -635,8 +635,8 @@ void SimpleColumn::evaluate(Row& row, bool& isNull)
|
||||
{
|
||||
case 16:
|
||||
{
|
||||
fResult.decimalVal.s128Value =
|
||||
*row.getBinaryField_offset<decltype(fResult.decimalVal.s128Value)>(fInputOffset);
|
||||
datatypes::TSInt128::assignPtrPtr(&fResult.decimalVal.s128Value,
|
||||
row.getBinaryField_offset<int128_t>(fInputOffset));
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
|
@ -61,6 +61,12 @@ class IDB_Decimal: public datatypes::VDecimal
|
||||
{
|
||||
public:
|
||||
using datatypes::VDecimal::VDecimal;
|
||||
|
||||
inline void operator=(const datatypes::TSInt128& rhs)
|
||||
{
|
||||
value = 0; scale = 0; precision = 0;
|
||||
datatypes::TSInt128::operator=(rhs);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
@ -687,12 +687,12 @@ void WindowFunctionColumn::evaluate(Row& row, bool& isNull)
|
||||
|
||||
case 16:
|
||||
{
|
||||
int128_t dec = row.getInt128Field(fInputIndex);
|
||||
datatypes::TSInt128 dec(row.getBinaryField<int128_t>(fInputIndex));
|
||||
if (dec == datatypes::Decimal128Null)
|
||||
isNull = true;
|
||||
else
|
||||
{
|
||||
fResult.decimalVal.s128Value = dec;
|
||||
fResult.decimalVal = dec;
|
||||
fResult.decimalVal.scale = (unsigned)fResultType.scale;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user