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

MCOL-4387 Convert dataconvert::decimalToString() into VDecimal and TSInt128 methods

This commit is contained in:
Roman Nozdrin
2020-11-10 17:27:16 +00:00
parent 007b8a5082
commit 58495d0d2f
29 changed files with 793 additions and 878 deletions

View File

@ -542,15 +542,10 @@ string Func_cast_char::getStrVal(Row& row,
{
IDB_Decimal d = parm[0]->data()->getDecimalVal(row, isNull);
char buf[80];
if (parm[0]->data()->resultType().colWidth == datatypes::MAXDECIMALWIDTH)
dataconvert::DataConvert::decimalToString( &d.s128Value, d.scale, buf, 80, parm[0]->data()->resultType().colDataType);
return d.toString(true).substr(0, length);
else
dataconvert::DataConvert::decimalToString( d.value, d.scale, buf, 80, parm[0]->data()->resultType().colDataType);
string sbuf = buf;
return sbuf.substr(0, length);
return d.toString().substr(0, length);
}
break;
@ -1231,17 +1226,10 @@ string Func_cast_decimal::getStrVal(Row& row,
parm,
isNull,
operationColType);
char buf[80];
if (decimal.precision > datatypes::INT64MAXPRECISION)
dataconvert::DataConvert::decimalToString( &decimal.s128Value, decimal.scale, buf, 80, operationColType.colDataType);
if (operationColType.colWidth == datatypes::MAXDECIMALWIDTH)
return decimal.toString(true);
else
dataconvert::DataConvert::decimalToString( decimal.value, decimal.scale, buf, 80, operationColType.colDataType);
string value = buf;
return value;
return decimal.toString();
}