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

MCOL-641 Replaced IDB_Decima.__v union with int128_t attribute.

Moved all tests into ./test

Introduced ./datatypes directory
This commit is contained in:
Roman Nozdrin
2020-03-03 15:51:55 +00:00
parent 824615a55b
commit 238386bf63
17 changed files with 398 additions and 106 deletions

View File

@ -472,18 +472,12 @@ void FuncExp::evaluate(rowgroup::Row& row, std::vector<execplan::SRCP>& expressi
{
IDB_Decimal val = expression[i]->getDecimalVal(row, isNull);
// WIP
if (expression[i]->resultType().precision > 18)
// WIP check for null and overflow here.
if (expression[i]->resultType().colWidth == 16)
{
// WIP make this a separate function w and w/o overflow check
if (expression[i]->resultType().colDataType == execplan::CalpontSystemCatalog::DECIMAL)
row.setBinaryField_offset(&val.__v.__s128,
expression[i]->resultType().colWidth,
row.getOffset(expression[i]->outputIndex()));
else
row.setBinaryField_offset(&val.__v.__u128,
expression[i]->resultType().colWidth,
row.getOffset(expression[i]->outputIndex()));
row.setBinaryField_offset(&val.s128Value,
expression[i]->resultType().colWidth,
row.getOffset(expression[i]->outputIndex()));
}
else
{