Decimal optimize branch #695 (#727)

This commit is contained in:
lide
2019-03-22 17:22:16 +08:00
committed by ZHAO Chun
parent e60b71da8c
commit c34b306b4f
114 changed files with 3236 additions and 66 deletions

View File

@ -332,6 +332,9 @@ void CaseExpr::get_child_val(int child_idx, ExprContext* ctx, TupleRow* row, Any
case TYPE_DECIMAL:
*reinterpret_cast<DecimalVal*>(dst) = _children[child_idx]->get_decimal_val(ctx, row);
break;
case TYPE_DECIMALV2:
*reinterpret_cast<DecimalV2Val*>(dst) = _children[child_idx]->get_decimalv2_val(ctx, row);
break;
case TYPE_LARGEINT:
*reinterpret_cast<LargeIntVal*>(dst) = _children[child_idx]->get_large_int_val(ctx, row);
break;
@ -375,6 +378,9 @@ bool CaseExpr::any_val_eq(const TypeDescriptor& type, const AnyVal* v1, const An
case TYPE_DECIMAL:
return AnyValUtil::equals(type, *reinterpret_cast<const DecimalVal*>(v1),
*reinterpret_cast<const DecimalVal*>(v2));
case TYPE_DECIMALV2:
return AnyValUtil::equals(type, *reinterpret_cast<const DecimalV2Val*>(v1),
*reinterpret_cast<const DecimalV2Val*>(v2));
case TYPE_LARGEINT:
return AnyValUtil::equals(type, *reinterpret_cast<const LargeIntVal*>(v1),
*reinterpret_cast<const LargeIntVal*>(v2));
@ -438,6 +444,7 @@ CASE_COMPUTE_FN_WAPPER(DoubleVal, double_val)
CASE_COMPUTE_FN_WAPPER(StringVal, string_val)
CASE_COMPUTE_FN_WAPPER(DateTimeVal, datetime_val)
CASE_COMPUTE_FN_WAPPER(DecimalVal, decimal_val)
CASE_COMPUTE_FN_WAPPER(DecimalV2Val, decimalv2_val)
}