You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-29 08:21:15 +03:00
MCOL-174 Replace custom helpers::power() with standard pow(). helpers::power() breaks with #dec > 9
This commit is contained in:
@ -74,8 +74,9 @@ string Func_maketime::getStrVal(rowgroup::Row& row,
|
||||
case CalpontSystemCatalog::DECIMAL:
|
||||
{
|
||||
IDB_Decimal d = parm[0]->data()->getDecimalVal(row, isNull);
|
||||
hour = d.value / helpers::power(d.scale);
|
||||
int lefto = (d.value - hour * helpers::power(d.scale)) / helpers::power(d.scale - 1);
|
||||
double dscale = d.scale;
|
||||
hour = d.value / pow(10.0, dscale);
|
||||
int lefto = (d.value - hour * pow(10.0, dscale)) / pow(dscale - 1);
|
||||
|
||||
if ( hour >= 0 && lefto > 4 )
|
||||
hour++;
|
||||
@ -113,8 +114,9 @@ string Func_maketime::getStrVal(rowgroup::Row& row,
|
||||
case CalpontSystemCatalog::DECIMAL:
|
||||
{
|
||||
IDB_Decimal d = parm[1]->data()->getDecimalVal(row, isNull);
|
||||
min = d.value / helpers::power(d.scale);
|
||||
int lefto = (d.value - min * helpers::power(d.scale)) / helpers::power(d.scale - 1);
|
||||
double dscale = d.scale;
|
||||
min = d.value / pow(10.0, dscale);
|
||||
int lefto = (d.value - min * pow(10.0, dscale)) / pow(dscale - 1);
|
||||
|
||||
if ( min >= 0 && lefto > 4 )
|
||||
min++;
|
||||
@ -158,8 +160,9 @@ string Func_maketime::getStrVal(rowgroup::Row& row,
|
||||
case CalpontSystemCatalog::DECIMAL:
|
||||
{
|
||||
IDB_Decimal d = parm[2]->data()->getDecimalVal(row, isNull);
|
||||
sec = d.value / helpers::power(d.scale);
|
||||
int lefto = (d.value - sec * helpers::power(d.scale)) / helpers::power(d.scale - 1);
|
||||
double dscale = d.scale;
|
||||
sec = d.value / pow(10.0, dscale);
|
||||
int lefto = (d.value - sec * pow(10.0, dscale)) / pow(dscale - 1);
|
||||
|
||||
if ( sec >= 0 && lefto > 4 )
|
||||
sec++;
|
||||
|
Reference in New Issue
Block a user