[to #51732060]fix core outer call dblink

This commit is contained in:
seuwebber
2023-08-25 11:14:13 +00:00
committed by ob-robot
parent cf26b82d03
commit 6a46384c33
2 changed files with 17 additions and 2 deletions

View File

@ -123,7 +123,7 @@ int ObCallProcedureExecutor::execute(ObExecContext &ctx, ObCallProcedureStmt &st
} else {
param.reset();
param.ObObj::reset();
if (OB_FAIL(ObSQLUtils::calc_sql_expression_without_row(ctx, *expr, param))) {
if (OB_FAIL(calc_param(ctx, *expr, param))) {
LOG_WARN("failed to calc exec param expr", K(i), K(*expr), K(ret));
} else {
if (expr->get_is_pl_mock_default_expr()) {
@ -292,6 +292,21 @@ int ObCallProcedureExecutor::execute(ObExecContext &ctx, ObCallProcedureStmt &st
return ret;
}
int ObCallProcedureExecutor::calc_param(ObExecContext &ctx, const ObISqlExpression &expr, ObObjParam &result)
{
int ret = OB_SUCCESS;
OZ (ObSQLUtils::calc_sql_expression_without_row(ctx, expr, result), K(expr));
if (OB_SUCC(ret) && !result.is_ext()) {
const sql::ObExpr *new_expr = expr.get_expr();
CK (OB_NOT_NULL(new_expr));
OX (result.set_length(new_expr->max_length_));
OX (result.set_precision(new_expr->datum_meta_.precision_));
OX (result.set_scale(new_expr->datum_meta_.scale_));
OX (result.set_length_semantics(new_expr->datum_meta_.length_semantics_));
}
return ret;
}
int ObDropRoutineExecutor::execute(ObExecContext &ctx, ObDropRoutineStmt &stmt)
{
int ret = OB_SUCCESS;

View File

@ -65,7 +65,7 @@ public:
ObCallProcedureExecutor() {}
virtual ~ObCallProcedureExecutor() {}
int execute(ObExecContext &ctx, ObCallProcedureStmt &stmt);
int calc_param(ObExecContext &ctx, const ObISqlExpression &expr, ObObjParam &result);
private:
DISALLOW_COPY_AND_ASSIGN(ObCallProcedureExecutor);
};