36 if (val.
is_null)
return DecimalVal::null();
47 return DecimalVal::null();
70 context, val, val_type, return_type, op, -scale);
73 context, val, val_type, return_type, op);
int precision
Only valid if type == TYPE_DECIMAL.
const TypeDesc & GetReturnType() const
static DecimalVal Truncate(FunctionContext *context, const DecimalVal &val)
int128_t abs(const int128_t &x)
static ColumnType TypeDescToColumnType(const FunctionContext::TypeDesc &type)
static DecimalVal RoundDecimal(FunctionContext *context, const DecimalVal &val, const ColumnType &val_type, const ColumnType &output_type, const DecimalRoundOp &op)
static IntVal Precision(FunctionContext *context, const DecimalVal &val)
static DecimalVal RoundDecimalNegativeScale(FunctionContext *context, const DecimalVal &val, const ColumnType &val_type, const ColumnType &output_type, const DecimalRoundOp &op, int64_t rounding_scale)
Additional digits are dropped.
static DecimalVal Ceil(FunctionContext *context, const DecimalVal &val)
static DecimalVal Floor(FunctionContext *context, const DecimalVal &val)
static DecimalVal RoundTo(FunctionContext *context, const DecimalVal &val, const SmallIntVal &scale)
const TypeDesc * GetArgType(int arg_idx) const
static IntVal Scale(FunctionContext *context, const DecimalVal &val)
int GetByteSize() const
Returns the byte size of this type. Returns 0 for variable length types.
static DecimalVal TruncateTo(FunctionContext *context, const DecimalVal &val, const SmallIntVal &scale)
static DecimalVal Round(FunctionContext *context, const DecimalVal &val)
static DecimalVal Abs(FunctionContext *context, const DecimalVal &val)