patch 4.0

This commit is contained in:
wangzelin.wzl
2022-10-24 10:34:53 +08:00
parent 4ad6e00ec3
commit 93a1074b0c
10533 changed files with 2588271 additions and 2299373 deletions

View File

@ -16,58 +16,22 @@
#include "sql/engine/expr/ob_expr_operator.h"
#include "sql/engine/expr/ob_expr_least.h"
namespace oceanbase {
namespace sql {
class ObExprBaseGreatest : public ObExprBaseLeastGreatest {
namespace oceanbase
{
namespace sql
{
class ObExprGreatest : public ObExprLeastGreatest
{
public:
explicit ObExprBaseGreatest(common::ObIAllocator& alloc, int32_t param_num,
ObExprOperatorType type = T_FUN_SYS_GREATEST, const char* name = N_GREATEST);
virtual ~ObExprBaseGreatest();
virtual int calc_result_typeN(
ObExprResType& type, ObExprResType* types_stack, int64_t param_num, common::ObExprTypeCtx& type_ctx) const;
virtual int calc_resultN(
common::ObObj& result, const common::ObObj* objs_stack, int64_t param_num, common::ObExprCtx& expr_ctx) const;
virtual int cg_expr(ObExprCGCtx& op_cg_ctx, const ObRawExpr& raw_expr, ObExpr& rt_expr) const override;
static int calc_greatest(const ObExpr& expr, ObEvalCtx& ctx, ObDatum& expr_datum);
explicit ObExprGreatest(common::ObIAllocator &alloc);
virtual ~ObExprGreatest() {}
static int calc_greatest(const ObExpr &expr, ObEvalCtx &ctx, ObDatum &expr_datum);
private:
// disallow copy
DISALLOW_COPY_AND_ASSIGN(ObExprBaseGreatest);
DISALLOW_COPY_AND_ASSIGN(ObExprGreatest);
};
class ObExprGreatestMySQL : public ObExprBaseGreatest {
public:
explicit ObExprGreatestMySQL(common::ObIAllocator& alloc);
virtual ~ObExprGreatestMySQL();
virtual int calc_result_typeN(
ObExprResType& type, ObExprResType* types_stack, int64_t param_num, common::ObExprTypeCtx& type_ctx) const;
private:
DISALLOW_COPY_AND_ASSIGN(ObExprGreatestMySQL);
};
class ObExprGreatestMySQLInner : public ObExprBaseGreatest {
public:
explicit ObExprGreatestMySQLInner(common::ObIAllocator& alloc);
virtual ~ObExprGreatestMySQLInner();
virtual int calc_result_typeN(
ObExprResType& type, ObExprResType* types_stack, int64_t param_num, common::ObExprTypeCtx& type_ctx) const;
private:
DISALLOW_COPY_AND_ASSIGN(ObExprGreatestMySQLInner);
};
class ObExprOracleGreatest : public ObExprBaseGreatest {
public:
explicit ObExprOracleGreatest(common::ObIAllocator& alloc);
virtual ~ObExprOracleGreatest();
virtual int calc_result_typeN(
ObExprResType& type, ObExprResType* types_stack, int64_t param_num, common::ObExprTypeCtx& type_ctx) const;
private:
DISALLOW_COPY_AND_ASSIGN(ObExprOracleGreatest);
};
} // namespace sql
} // namespace oceanbase
}
}
#endif /* _OB_SQL_EXPR_GREATEST_H_ */