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-174 fix compile errors
This commit is contained in:
@ -35,6 +35,7 @@
|
|||||||
#include <alloca.h>
|
#include <alloca.h>
|
||||||
#endif
|
#endif
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
#include <cmath>
|
||||||
#include <boost/regex.hpp>
|
#include <boost/regex.hpp>
|
||||||
|
|
||||||
#include "expressionparser.h"
|
#include "expressionparser.h"
|
||||||
|
@ -182,7 +182,7 @@ int64_t Func_cast_signed::getIntVal(Row& row,
|
|||||||
IDB_Decimal d = parm[0]->data()->getDecimalVal(row, isNull);
|
IDB_Decimal d = parm[0]->data()->getDecimalVal(row, isNull);
|
||||||
double dscale = d.scale;
|
double dscale = d.scale;
|
||||||
int64_t value = d.value / pow(10.0, dscale);
|
int64_t value = d.value / pow(10.0, dscale);
|
||||||
int lefto = (d.value - value * pow(10.0, dscale)) / pow(dscale - 1);
|
int lefto = (d.value - value * pow(10.0, dscale)) / pow(10.0, dscale - 1);
|
||||||
|
|
||||||
if ( value >= 0 && lefto > 4 )
|
if ( value >= 0 && lefto > 4 )
|
||||||
value++;
|
value++;
|
||||||
@ -337,7 +337,7 @@ uint64_t Func_cast_unsigned::getUintVal(Row& row,
|
|||||||
}
|
}
|
||||||
|
|
||||||
uint64_t value = d.value / pow(10.0, dscale);
|
uint64_t value = d.value / pow(10.0, dscale);
|
||||||
int lefto = (d.value - value * pow(10.0, dscale)) / pow(dscale - 1);
|
int lefto = (d.value - value * pow(10.0, dscale)) / pow(10.0, dscale - 1);
|
||||||
|
|
||||||
if ( value >= 0 && lefto > 4 )
|
if ( value >= 0 && lefto > 4 )
|
||||||
value++;
|
value++;
|
||||||
|
@ -159,7 +159,7 @@ string Func_char::getStrVal(Row& row,
|
|||||||
double dscale = d.scale;
|
double dscale = d.scale;
|
||||||
// get decimal and round up
|
// get decimal and round up
|
||||||
int value = d.value / pow(10.0, dscale);
|
int value = d.value / pow(10.0, dscale);
|
||||||
int lefto = (d.value - value * pow(10.0, dscale)) / pow(dscale - 1);
|
int lefto = (d.value - value * pow(10.0, dscale)) / pow(10.0, dscale - 1);
|
||||||
|
|
||||||
if ( lefto > 4 )
|
if ( lefto > 4 )
|
||||||
value++;
|
value++;
|
||||||
|
@ -73,7 +73,7 @@ string Func_elt::getStrVal(rowgroup::Row& row,
|
|||||||
IDB_Decimal d = parm[0]->data()->getDecimalVal(row, isNull);
|
IDB_Decimal d = parm[0]->data()->getDecimalVal(row, isNull);
|
||||||
double dscale = d.scale;
|
double dscale = d.scale;
|
||||||
number = d.value / pow(10.0, dscale);
|
number = d.value / pow(10.0, dscale);
|
||||||
int lefto = (d.value - number * pow(10.0, dscale)) / pow(dscale - 1);
|
int lefto = (d.value - number * pow(10.0, dscale)) / pow(10.0, dscale - 1);
|
||||||
|
|
||||||
if ( number >= 0 && lefto > 4 )
|
if ( number >= 0 && lefto > 4 )
|
||||||
number++;
|
number++;
|
||||||
|
@ -70,7 +70,7 @@ uint64_t makedate(rowgroup::Row& row,
|
|||||||
IDB_Decimal d = parm[0]->data()->getDecimalVal(row, isNull);
|
IDB_Decimal d = parm[0]->data()->getDecimalVal(row, isNull);
|
||||||
double dscale = d.scale;
|
double dscale = d.scale;
|
||||||
year = d.value / pow(10.0, dscale);
|
year = d.value / pow(10.0, dscale);
|
||||||
int lefto = (d.value - year * pow(10.0, dscale)) / pow(dscale - 1);
|
int lefto = (d.value - year * pow(10.0, dscale)) / pow(10.0, dscale - 1);
|
||||||
|
|
||||||
if ( year >= 0 && lefto > 4 )
|
if ( year >= 0 && lefto > 4 )
|
||||||
year++;
|
year++;
|
||||||
@ -130,7 +130,7 @@ uint64_t makedate(rowgroup::Row& row,
|
|||||||
IDB_Decimal d = parm[1]->data()->getDecimalVal(row, isNull);
|
IDB_Decimal d = parm[1]->data()->getDecimalVal(row, isNull);
|
||||||
double dscale = d.scale;
|
double dscale = d.scale;
|
||||||
int64_t tmp = d.value / pow(10.0, dscale);
|
int64_t tmp = d.value / pow(10.0, dscale);
|
||||||
int lefto = (d.value - tmp * pow(10.0, dscale)) / pow(dscale - 1);
|
int lefto = (d.value - tmp * pow(10.0, dscale)) / pow(10.0, dscale - 1);
|
||||||
|
|
||||||
if ( tmp >= 0 && lefto > 4 )
|
if ( tmp >= 0 && lefto > 4 )
|
||||||
tmp++;
|
tmp++;
|
||||||
|
@ -76,7 +76,7 @@ string Func_maketime::getStrVal(rowgroup::Row& row,
|
|||||||
IDB_Decimal d = parm[0]->data()->getDecimalVal(row, isNull);
|
IDB_Decimal d = parm[0]->data()->getDecimalVal(row, isNull);
|
||||||
double dscale = d.scale;
|
double dscale = d.scale;
|
||||||
hour = d.value / pow(10.0, dscale);
|
hour = d.value / pow(10.0, dscale);
|
||||||
int lefto = (d.value - hour * pow(10.0, dscale)) / pow(dscale - 1);
|
int lefto = (d.value - hour * pow(10.0, dscale)) / pow(10.0, dscale - 1);
|
||||||
|
|
||||||
if ( hour >= 0 && lefto > 4 )
|
if ( hour >= 0 && lefto > 4 )
|
||||||
hour++;
|
hour++;
|
||||||
@ -116,7 +116,7 @@ string Func_maketime::getStrVal(rowgroup::Row& row,
|
|||||||
IDB_Decimal d = parm[1]->data()->getDecimalVal(row, isNull);
|
IDB_Decimal d = parm[1]->data()->getDecimalVal(row, isNull);
|
||||||
double dscale = d.scale;
|
double dscale = d.scale;
|
||||||
min = d.value / pow(10.0, dscale);
|
min = d.value / pow(10.0, dscale);
|
||||||
int lefto = (d.value - min * pow(10.0, dscale)) / pow(dscale - 1);
|
int lefto = (d.value - min * pow(10.0, dscale)) / pow(10.0, dscale - 1);
|
||||||
|
|
||||||
if ( min >= 0 && lefto > 4 )
|
if ( min >= 0 && lefto > 4 )
|
||||||
min++;
|
min++;
|
||||||
@ -162,7 +162,7 @@ string Func_maketime::getStrVal(rowgroup::Row& row,
|
|||||||
IDB_Decimal d = parm[2]->data()->getDecimalVal(row, isNull);
|
IDB_Decimal d = parm[2]->data()->getDecimalVal(row, isNull);
|
||||||
double dscale = d.scale;
|
double dscale = d.scale;
|
||||||
sec = d.value / pow(10.0, dscale);
|
sec = d.value / pow(10.0, dscale);
|
||||||
int lefto = (d.value - sec * pow(10.0, dscale)) / pow(dscale - 1);
|
int lefto = (d.value - sec * pow(10.0, dscale)) / pow(10.0, dscale - 1);
|
||||||
|
|
||||||
if ( sec >= 0 && lefto > 4 )
|
if ( sec >= 0 && lefto > 4 )
|
||||||
sec++;
|
sec++;
|
||||||
|
@ -75,7 +75,7 @@ IDB_Decimal Func_mod::getDecimalVal(Row& row,
|
|||||||
|
|
||||||
IDB_Decimal d = parm[0]->data()->getDecimalVal(row, isNull);
|
IDB_Decimal d = parm[0]->data()->getDecimalVal(row, isNull);
|
||||||
int64_t value = d.value / pow(10.0, d.scale);
|
int64_t value = d.value / pow(10.0, d.scale);
|
||||||
int lefto = d.value % pow(10.0, d.scale);
|
int lefto = d.value % (int)pow(10.0, d.scale);
|
||||||
|
|
||||||
int64_t mod = (value % div) * pow(10.0, d.scale) + lefto;
|
int64_t mod = (value % div) * pow(10.0, d.scale) + lefto;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user