[FEAT MERGE] Functional_index

This commit is contained in:
obdev
2023-04-27 11:11:23 +00:00
committed by ob-robot
parent a52d8673b2
commit c5756c1799
370 changed files with 1728 additions and 821 deletions

View File

@ -153,7 +153,7 @@ int ObExprOperator::cg_expr(ObExprCGCtx &,
bool ObExprOperator::is_default_expr_cg() const
{
static ObArenaAllocator alloc;
static ObExprOperator base(alloc, T_NULL, "fake_null_operator", 0);
static ObExprOperator base(alloc, T_NULL, "fake_null_operator", 0, VALID_FOR_GENERATED_COL);
typedef int (ObExprOperator::*CGFunc)(
ObExprCGCtx &op_cg_ctx, const ObRawExpr &raw_expr, ObExpr &rt_expr) const;
union {
@ -2104,6 +2104,28 @@ ObCastMode ObExprOperator::get_cast_mode() const
return CM_NONE;
}
int ObExprOperator::is_valid_for_generated_column(const ObRawExpr*expr, const common::ObIArray<ObRawExpr *> &exprs, bool &is_valid) const
{
is_valid = is_valid_for_generated_col_;
return OB_SUCCESS;
}
int ObExprOperator::check_first_param_not_time(const common::ObIArray<ObRawExpr *> &exprs, bool &not_time) {
int ret = OB_SUCCESS;
if (exprs.count() < 1) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("unexpected param num", K(ret), K(exprs.count()));
} else if (OB_ISNULL(exprs.at(0))) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("invalid param", K(ret), K(exprs.at(0)), K(exprs.at(1)));
} else if (ObTimeType == exprs.at(0)->get_result_type().get_type()) {
not_time = false;
} else {
not_time = true;
}
return ret;
}
ObExpr *ObExprOperator::get_rt_expr(const ObRawExpr &raw_expr) const
{
return raw_expr.rt_expr_;