Remove ps with escape ? check in prepare statement

This commit is contained in:
obdev
2023-03-15 05:11:23 +00:00
committed by ob-robot
parent 96fbe84c8a
commit 42fc751eba

View File

@ -3422,8 +3422,12 @@ int ObRawExprResolverImpl::process_like_node(const ParseNode *node, ObRawExpr *&
LOG_WARN("invalid escape char length, expect 1, get 0", K(ret));
}
} else if (escape_node->value_ < 0 || escape_node->value_ >= ctx_.param_list_->count()) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("index is out of range", K(escape_node->value_), K(ctx_.param_list_->count()));
if (OB_NOT_NULL(ctx_.session_info_) && ctx_.session_info_->is_ps_prepare_stage()) {
// skip check question mark about escape node in prepare statement
} else {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("index is out of range", K(escape_node->value_), K(ctx_.param_list_->count()));
}
// c1 like '123' escape null is illegal in oracle mode, but legal in mysql mode
} else if (ctx_.param_list_->at(escape_node->value_).is_null() && lib::is_oracle_mode()) {
ret = OB_ERR_INVALID_ESCAPE_CHAR_LENGTH;