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

@ -27,6 +27,7 @@
#include "runtime/string_value.h"
#include "runtime/datetime_value.h"
#include "runtime/decimal_value.h"
#include "runtime/decimalv2_value.h"
using llvm::BasicBlock;
using llvm::CmpInst;
@ -67,6 +68,8 @@ Expr* BinaryPredicate::from_thrift(const TExprNode& node) {
return new EqDateTimeValPred(node);
case TPrimitiveType::DECIMAL:
return new EqDecimalValPred(node);
case TPrimitiveType::DECIMALV2:
return new EqDecimalV2ValPred(node);
default:
return NULL;
}
@ -97,6 +100,8 @@ Expr* BinaryPredicate::from_thrift(const TExprNode& node) {
return new NeDateTimeValPred(node);
case TPrimitiveType::DECIMAL:
return new NeDecimalValPred(node);
case TPrimitiveType::DECIMALV2:
return new NeDecimalV2ValPred(node);
default:
return NULL;
}
@ -127,6 +132,8 @@ Expr* BinaryPredicate::from_thrift(const TExprNode& node) {
return new LtDateTimeValPred(node);
case TPrimitiveType::DECIMAL:
return new LtDecimalValPred(node);
case TPrimitiveType::DECIMALV2:
return new LtDecimalV2ValPred(node);
default:
return NULL;
}
@ -157,6 +164,8 @@ Expr* BinaryPredicate::from_thrift(const TExprNode& node) {
return new LeDateTimeValPred(node);
case TPrimitiveType::DECIMAL:
return new LeDecimalValPred(node);
case TPrimitiveType::DECIMALV2:
return new LeDecimalV2ValPred(node);
default:
return NULL;
}
@ -187,6 +196,8 @@ Expr* BinaryPredicate::from_thrift(const TExprNode& node) {
return new GtDateTimeValPred(node);
case TPrimitiveType::DECIMAL:
return new GtDecimalValPred(node);
case TPrimitiveType::DECIMALV2:
return new GtDecimalV2ValPred(node);
default:
return NULL;
}
@ -217,6 +228,8 @@ Expr* BinaryPredicate::from_thrift(const TExprNode& node) {
return new GeDateTimeValPred(node);
case TPrimitiveType::DECIMAL:
return new GeDecimalValPred(node);
case TPrimitiveType::DECIMALV2:
return new GeDecimalV2ValPred(node);
default:
return NULL;
}
@ -418,6 +431,7 @@ BINARY_PRED_FLOAT_FNS(DoubleVal, get_double_val);
COMPLICATE_BINARY_PRED_FN(Ge##TYPE##Pred, TYPE, FN, DORIS_TYPE, FROM_FUNC, >=)
COMPLICATE_BINARY_PRED_FNS(DecimalVal, get_decimal_val, DecimalValue, from_decimal_val)
COMPLICATE_BINARY_PRED_FNS(DecimalV2Val, get_decimalv2_val, DecimalV2Value, from_decimal_val)
#define DATETIME_BINARY_PRED_FN(CLASS, OP, LLVM_PRED) \
BooleanVal CLASS::get_boolean_val(ExprContext* ctx, TupleRow* row) { \