fix typo
This commit is contained in:
		@ -197,7 +197,7 @@ int ObRawExprCopier::copy_on_replace(const common::ObIArray<T *> &from_exprs,
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  if (OB_SUCC(ret) && OB_FAIL(to_exprs.assign(tmp_arr))) {
 | 
					  if (OB_SUCC(ret) && OB_FAIL(to_exprs.assign(tmp_arr))) {
 | 
				
			||||||
    SQL_RESV_LOG(WARN, "failed to assgin replaced results", K(ret));
 | 
					    SQL_RESV_LOG(WARN, "failed to assign replaced results", K(ret));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  return ret;
 | 
					  return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -250,7 +250,7 @@ int ObRawExprResolverImpl::do_recursive_resolve(const ParseNode *node, ObRawExpr
 | 
				
			|||||||
    LOG_DEBUG("resolve item", "item_type", get_type_name(node->type_));
 | 
					    LOG_DEBUG("resolve item", "item_type", get_type_name(node->type_));
 | 
				
			||||||
    if (IS_DATATYPE_OR_QUESTIONMARK_OP(node->type_)) {
 | 
					    if (IS_DATATYPE_OR_QUESTIONMARK_OP(node->type_)) {
 | 
				
			||||||
      if (OB_FAIL(process_datatype_or_questionmark(*node, expr))) {
 | 
					      if (OB_FAIL(process_datatype_or_questionmark(*node, expr))) {
 | 
				
			||||||
        LOG_WARN("fail to process datetype or questionmark", K(ret), K(node));
 | 
					        LOG_WARN("fail to process datatype or questionmark", K(ret), K(node));
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      switch (node->type_) {
 | 
					      switch (node->type_) {
 | 
				
			||||||
@ -599,7 +599,7 @@ int ObRawExprResolverImpl::do_recursive_resolve(const ParseNode *node, ObRawExpr
 | 
				
			|||||||
      case T_OP_REGEXP:
 | 
					      case T_OP_REGEXP:
 | 
				
			||||||
      case T_OP_NOT_REGEXP: {
 | 
					      case T_OP_NOT_REGEXP: {
 | 
				
			||||||
        if (OB_FAIL(process_regexp_or_not_regexp_node(node, expr))) {
 | 
					        if (OB_FAIL(process_regexp_or_not_regexp_node(node, expr))) {
 | 
				
			||||||
          LOG_WARN("fail to process prgexp_or_not_pegexp node", K(ret), K(node));
 | 
					          LOG_WARN("fail to process prgexp_or_not_regexp node", K(ret), K(node));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@ -1012,7 +1012,7 @@ int ObRawExprResolverImpl::do_recursive_resolve(const ParseNode *node, ObRawExpr
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
      case T_FUN_UDF: {
 | 
					      case T_FUN_UDF: {
 | 
				
			||||||
        ret = OB_ERR_UNEXPECTED;
 | 
					        ret = OB_ERR_UNEXPECTED;
 | 
				
			||||||
        LOG_ERROR("A BUG, Nerver Be Here!!!", K(ret));
 | 
					        LOG_ERROR("A BUG, Never Be Here!!!", K(ret));
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      case T_WINDOW_FUNCTION: {
 | 
					      case T_WINDOW_FUNCTION: {
 | 
				
			||||||
@ -1546,7 +1546,7 @@ int ObRawExprResolverImpl::process_cursor_attr_node(const ParseNode &node, ObRaw
 | 
				
			|||||||
          }
 | 
					          }
 | 
				
			||||||
          default: {
 | 
					          default: {
 | 
				
			||||||
            ret = OB_ERR_UNEXPECTED;
 | 
					            ret = OB_ERR_UNEXPECTED;
 | 
				
			||||||
            LOG_WARN("invlid node type", K(node.children_[0]->type_));
 | 
					            LOG_WARN("invalid node type", K(node.children_[0]->type_));
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@ -1560,7 +1560,7 @@ int ObRawExprResolverImpl::process_cursor_attr_node(const ParseNode &node, ObRaw
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
  if (OB_SUCC(ret)) {
 | 
					  if (OB_SUCC(ret)) {
 | 
				
			||||||
    if (T_FUN_PL_GET_CURSOR_ATTR == c_expr->get_expr_type()) {
 | 
					    if (T_FUN_PL_GET_CURSOR_ATTR == c_expr->get_expr_type()) {
 | 
				
			||||||
      // 注意: 替换为ColumnRef的目的是为了在DML语句中把CURSOR%ROWID替换为QuenstionMark
 | 
					      // 注意: 替换为ColumnRef的目的是为了在DML语句中把CURSOR%ROWID替换为QuestionMark
 | 
				
			||||||
      // 参见: ObDMLResolver::resolve_qualified_identifier
 | 
					      // 参见: ObDMLResolver::resolve_qualified_identifier
 | 
				
			||||||
      ObQualifiedName column_ref;
 | 
					      ObQualifiedName column_ref;
 | 
				
			||||||
      ObObjAccessIdent access_ident;
 | 
					      ObObjAccessIdent access_ident;
 | 
				
			||||||
@ -1611,7 +1611,7 @@ int ObRawExprResolverImpl::process_obj_access_node(const ParseNode &node, ObRawE
 | 
				
			|||||||
    ObQualifiedName column_ref;
 | 
					    ObQualifiedName column_ref;
 | 
				
			||||||
    int64_t child_start = ctx_.columns_->count();
 | 
					    int64_t child_start = ctx_.columns_->count();
 | 
				
			||||||
    if (OB_FAIL(resolve_obj_access_idents(node, column_ref))) {
 | 
					    if (OB_FAIL(resolve_obj_access_idents(node, column_ref))) {
 | 
				
			||||||
      LOG_WARN("resolve obj acess idents failed", K(ret));
 | 
					      LOG_WARN("resolve obj access idents failed", K(ret));
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      column_ref.format_qualified_name(ctx_.case_mode_);
 | 
					      column_ref.format_qualified_name(ctx_.case_mode_);
 | 
				
			||||||
      column_ref.parents_expr_info_ = ctx_.parents_expr_info_;
 | 
					      column_ref.parents_expr_info_ = ctx_.parents_expr_info_;
 | 
				
			||||||
@ -1733,7 +1733,7 @@ int ObRawExprResolverImpl::process_sys_connect_by_path_node(const ParseNode *nod
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  if (OB_ISNULL(node)) {
 | 
					  if (OB_ISNULL(node)) {
 | 
				
			||||||
    ret = OB_ERR_UNEXPECTED;
 | 
					    ret = OB_ERR_UNEXPECTED;
 | 
				
			||||||
    LOG_WARN("unexpeced parameter", K(node), K(ret));
 | 
					    LOG_WARN("unexpected parameter", K(node), K(ret));
 | 
				
			||||||
  } else if (OB_UNLIKELY(node->type_ != T_FUN_SYS_CONNECT_BY_PATH)
 | 
					  } else if (OB_UNLIKELY(node->type_ != T_FUN_SYS_CONNECT_BY_PATH)
 | 
				
			||||||
             || OB_UNLIKELY(node->num_child_ != 2)
 | 
					             || OB_UNLIKELY(node->num_child_ != 2)
 | 
				
			||||||
             || OB_ISNULL(node->children_)
 | 
					             || OB_ISNULL(node->children_)
 | 
				
			||||||
@ -2373,7 +2373,7 @@ int ObRawExprResolverImpl::process_connect_by_root_node(const ParseNode &node, O
 | 
				
			|||||||
      || OB_ISNULL(node.children_)
 | 
					      || OB_ISNULL(node.children_)
 | 
				
			||||||
      || OB_UNLIKELY(node.type_ != T_OP_CONNECT_BY_ROOT)) {
 | 
					      || OB_UNLIKELY(node.type_ != T_OP_CONNECT_BY_ROOT)) {
 | 
				
			||||||
    ret = OB_ERR_UNEXPECTED;
 | 
					    ret = OB_ERR_UNEXPECTED;
 | 
				
			||||||
    LOG_WARN("invalid parametor", K(node.num_child_), K(node.type_), K(ret));
 | 
					    LOG_WARN("invalid parameter", K(node.num_child_), K(node.type_), K(ret));
 | 
				
			||||||
  } else if (OB_ISNULL(ctx_.stmt_)
 | 
					  } else if (OB_ISNULL(ctx_.stmt_)
 | 
				
			||||||
             || OB_UNLIKELY(false == ctx_.stmt_->is_select_stmt())) {
 | 
					             || OB_UNLIKELY(false == ctx_.stmt_->is_select_stmt())) {
 | 
				
			||||||
    ret = OB_ERR_CBY_CONNECT_BY_REQUIRED;
 | 
					    ret = OB_ERR_CBY_CONNECT_BY_REQUIRED;
 | 
				
			||||||
@ -2539,7 +2539,7 @@ int ObRawExprResolverImpl::process_datatype_or_questionmark(const ParseNode &nod
 | 
				
			|||||||
          } else if (ctx_.is_for_dbms_sql_
 | 
					          } else if (ctx_.is_for_dbms_sql_
 | 
				
			||||||
                     || (ctx_.is_for_dynamic_sql_ && OB_NOT_NULL(session_info->get_pl_context()))){
 | 
					                     || (ctx_.is_for_dynamic_sql_ && OB_NOT_NULL(session_info->get_pl_context()))){
 | 
				
			||||||
            //NOTICE: only need to process PL dynamic sql and dbms sql
 | 
					            //NOTICE: only need to process PL dynamic sql and dbms sql
 | 
				
			||||||
            /*dynmaic and dbms sql already prepare question mark in parse stage.*/
 | 
					            /*dynamic and dbms sql already prepare question mark in parse stage.*/
 | 
				
			||||||
            bool need_save = true;
 | 
					            bool need_save = true;
 | 
				
			||||||
            for (int64_t i = 0; OB_SUCC(ret) && i < ctx_.external_param_info_->count(); ++i) {
 | 
					            for (int64_t i = 0; OB_SUCC(ret) && i < ctx_.external_param_info_->count(); ++i) {
 | 
				
			||||||
              CK (OB_NOT_NULL(ctx_.external_param_info_->at(i).first));
 | 
					              CK (OB_NOT_NULL(ctx_.external_param_info_->at(i).first));
 | 
				
			||||||
@ -3008,7 +3008,7 @@ int ObRawExprResolverImpl::process_any_or_all_node(const ParseNode *node, ObRawE
 | 
				
			|||||||
    LOG_WARN("resolve sub-query failed", K(ret));
 | 
					    LOG_WARN("resolve sub-query failed", K(ret));
 | 
				
			||||||
  } else if (OB_ISNULL(sub_expr)) {
 | 
					  } else if (OB_ISNULL(sub_expr)) {
 | 
				
			||||||
    ret = OB_ERR_UNEXPECTED;
 | 
					    ret = OB_ERR_UNEXPECTED;
 | 
				
			||||||
    LOG_WARN("inavalid sub_expr", K(sub_expr));
 | 
					    LOG_WARN("invalid sub_expr", K(sub_expr));
 | 
				
			||||||
  } else if (T_REF_QUERY == sub_expr->get_expr_type()) {
 | 
					  } else if (T_REF_QUERY == sub_expr->get_expr_type()) {
 | 
				
			||||||
    ObQueryRefRawExpr *sub_ref = static_cast<ObQueryRefRawExpr*>(sub_expr);
 | 
					    ObQueryRefRawExpr *sub_ref = static_cast<ObQueryRefRawExpr*>(sub_expr);
 | 
				
			||||||
    sub_ref->set_is_set(true);
 | 
					    sub_ref->set_is_set(true);
 | 
				
			||||||
@ -3369,7 +3369,7 @@ int ObRawExprResolverImpl::process_regexp_or_not_regexp_node(const ParseNode *no
 | 
				
			|||||||
    ret = OB_INVALID_ARGUMENT;
 | 
					    ret = OB_INVALID_ARGUMENT;
 | 
				
			||||||
    LOG_WARN("invalid argument", K(ret), K(node));
 | 
					    LOG_WARN("invalid argument", K(ret), K(node));
 | 
				
			||||||
  } else if (OB_FAIL(process_node_with_children(node, num_child, t_expr))) {
 | 
					  } else if (OB_FAIL(process_node_with_children(node, num_child, t_expr))) {
 | 
				
			||||||
    LOG_WARN("fail to preocess node with children", K(ret));
 | 
					    LOG_WARN("fail to process node with children", K(ret));
 | 
				
			||||||
  } else if (OB_ISNULL(t_expr)) {
 | 
					  } else if (OB_ISNULL(t_expr)) {
 | 
				
			||||||
    ret = OB_ERR_UNEXPECTED;
 | 
					    ret = OB_ERR_UNEXPECTED;
 | 
				
			||||||
    LOG_WARN("process node fail with invalid expr", K(ret), K(t_expr));
 | 
					    LOG_WARN("process node fail with invalid expr", K(ret), K(t_expr));
 | 
				
			||||||
@ -3670,7 +3670,7 @@ int ObRawExprResolverImpl::process_like_node(const ParseNode *node, ObRawExpr *&
 | 
				
			|||||||
        IS_NO_BACKSLASH_ESCAPES(ctx_.session_info_->get_sql_mode(), no_escapes);
 | 
					        IS_NO_BACKSLASH_ESCAPES(ctx_.session_info_->get_sql_mode(), no_escapes);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      if (OB_FAIL(process_datatype_or_questionmark(escape_node, escape_expr))) {
 | 
					      if (OB_FAIL(process_datatype_or_questionmark(escape_node, escape_expr))) {
 | 
				
			||||||
        LOG_WARN("fail to resolver defalut excape node", K(ret));
 | 
					        LOG_WARN("fail to resolver default excape node", K(ret));
 | 
				
			||||||
      } else if (OB_FAIL(t_expr->add_param_expr(escape_expr))) {
 | 
					      } else if (OB_FAIL(t_expr->add_param_expr(escape_expr))) {
 | 
				
			||||||
        LOG_WARN("fail to set param expr");
 | 
					        LOG_WARN("fail to set param expr");
 | 
				
			||||||
      } else if (lib::is_oracle_mode() || no_escapes) {
 | 
					      } else if (lib::is_oracle_mode() || no_escapes) {
 | 
				
			||||||
@ -3837,7 +3837,7 @@ int ObRawExprResolverImpl::process_case_node(const ParseNode *node, ObRawExpr *&
 | 
				
			|||||||
  if (OB_ISNULL(node) || OB_UNLIKELY(3 != node->num_child_) ||
 | 
					  if (OB_ISNULL(node) || OB_UNLIKELY(3 != node->num_child_) ||
 | 
				
			||||||
      OB_UNLIKELY(T_CASE != node->type_) || OB_ISNULL(ctx_.session_info_)) {
 | 
					      OB_UNLIKELY(T_CASE != node->type_) || OB_ISNULL(ctx_.session_info_)) {
 | 
				
			||||||
    ret = OB_INVALID_ARGUMENT;
 | 
					    ret = OB_INVALID_ARGUMENT;
 | 
				
			||||||
    LOG_WARN("invalid PraseNode or session_info_", K(node), KP(ctx_.session_info_));
 | 
					    LOG_WARN("invalid ParseNode or session_info_", K(node), KP(ctx_.session_info_));
 | 
				
			||||||
  } else if (OB_FAIL(ctx_.expr_factory_.create_raw_expr(T_INVALID, case_expr))) {
 | 
					  } else if (OB_FAIL(ctx_.expr_factory_.create_raw_expr(T_INVALID, case_expr))) {
 | 
				
			||||||
    LOG_WARN("fail to create raw expr", K(ret));
 | 
					    LOG_WARN("fail to create raw expr", K(ret));
 | 
				
			||||||
  } else if (OB_ISNULL(case_expr)) {
 | 
					  } else if (OB_ISNULL(case_expr)) {
 | 
				
			||||||
@ -4141,7 +4141,7 @@ int ObRawExprResolverImpl::process_agg_node(const ParseNode *node, ObRawExpr *&e
 | 
				
			|||||||
          order_item.order_type_ = NULLS_FIRST_ASC;
 | 
					          order_item.order_type_ = NULLS_FIRST_ASC;
 | 
				
			||||||
          if (OB_FAIL(agg_expr->add_order_item(order_item))) {
 | 
					          if (OB_FAIL(agg_expr->add_order_item(order_item))) {
 | 
				
			||||||
            LOG_WARN("fail to add median order item", K(ret));
 | 
					            LOG_WARN("fail to add median order item", K(ret));
 | 
				
			||||||
          } else {/* do nothong */}
 | 
					          } else {/* do nothing */}
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    } else if (T_FUN_GROUPING_ID == node->type_) {
 | 
					    } else if (T_FUN_GROUPING_ID == node->type_) {
 | 
				
			||||||
@ -4328,7 +4328,7 @@ int ObRawExprResolverImpl::process_group_aggr_node(const ParseNode *node, ObRawE
 | 
				
			|||||||
    LOG_WARN("store aggr expr failed", K(ret));
 | 
					    LOG_WARN("store aggr expr failed", K(ret));
 | 
				
			||||||
  } else if (OB_ISNULL(node->children_)) {
 | 
					  } else if (OB_ISNULL(node->children_)) {
 | 
				
			||||||
    ret = OB_ERR_UNEXPECTED;
 | 
					    ret = OB_ERR_UNEXPECTED;
 | 
				
			||||||
    LOG_WARN("inalid group concat node", K(ret), K(node->children_));
 | 
					    LOG_WARN("invalid group concat node", K(ret), K(node->children_));
 | 
				
			||||||
  } else {
 | 
					  } else {
 | 
				
			||||||
    bool need_add_flag = !ctx_.parents_expr_info_.has_member(IS_AGG);
 | 
					    bool need_add_flag = !ctx_.parents_expr_info_.has_member(IS_AGG);
 | 
				
			||||||
    ParseNode *expr_list_node = node->children_[1];
 | 
					    ParseNode *expr_list_node = node->children_[1];
 | 
				
			||||||
@ -4969,7 +4969,7 @@ int ObRawExprResolverImpl::process_isnull_node(const ParseNode *node, ObRawExpr
 | 
				
			|||||||
  } else {
 | 
					  } else {
 | 
				
			||||||
    ObRawExpr *obj_expr = NULL;
 | 
					    ObRawExpr *obj_expr = NULL;
 | 
				
			||||||
    if (OB_FAIL(SMART_CALL(recursive_resolve(node->children_[1]->children_[0], obj_expr)))) {
 | 
					    if (OB_FAIL(SMART_CALL(recursive_resolve(node->children_[1]->children_[0], obj_expr)))) {
 | 
				
			||||||
      LOG_WARN("resolve child faield", K(ret));
 | 
					      LOG_WARN("resolve child failed", K(ret));
 | 
				
			||||||
    } else if (OB_FAIL(ObRawExprUtils::build_is_not_null_expr(ctx_.expr_factory_,
 | 
					    } else if (OB_FAIL(ObRawExprUtils::build_is_not_null_expr(ctx_.expr_factory_,
 | 
				
			||||||
                                                              obj_expr,
 | 
					                                                              obj_expr,
 | 
				
			||||||
                                                              false/*is_not_null*/,
 | 
					                                                              false/*is_not_null*/,
 | 
				
			||||||
@ -5045,7 +5045,7 @@ int ObRawExprResolverImpl::process_sqlerrm_node(const ParseNode *node, ObRawExpr
 | 
				
			|||||||
    if (OB_ISNULL(node->children_[1])
 | 
					    if (OB_ISNULL(node->children_[1])
 | 
				
			||||||
        || node->children_[1]->num_child_ != 1) {
 | 
					        || node->children_[1]->num_child_ != 1) {
 | 
				
			||||||
      ret = OB_INVALID_ARGUMENT_NUM;
 | 
					      ret = OB_INVALID_ARGUMENT_NUM;
 | 
				
			||||||
      LOG_WARN("invlaid argument number for SQLERRM", K(node->children_[1]->num_child_));
 | 
					      LOG_WARN("invalid argument number for SQLERRM", K(node->children_[1]->num_child_));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (OB_SUCC(ret)) {
 | 
					    if (OB_SUCC(ret)) {
 | 
				
			||||||
      if (OB_ISNULL(node->children_[1]->children_[0])) {
 | 
					      if (OB_ISNULL(node->children_[1]->children_[0])) {
 | 
				
			||||||
@ -7435,7 +7435,7 @@ int ObRawExprResolverImpl::process_dll_udf_node(const ParseNode *node, ObRawExpr
 | 
				
			|||||||
      LOG_WARN("the udf info is null", K(ret));
 | 
					      LOG_WARN("the udf info is null", K(ret));
 | 
				
			||||||
    } else if (!(udf_info->is_normal_udf() || udf_info->is_agg_udf())) {
 | 
					    } else if (!(udf_info->is_normal_udf() || udf_info->is_agg_udf())) {
 | 
				
			||||||
      ret = OB_ERR_UNEXPECTED;
 | 
					      ret = OB_ERR_UNEXPECTED;
 | 
				
			||||||
      LOG_WARN("the udf schame is error", K(ret), K(udf_info->get_type()));
 | 
					      LOG_WARN("the udf schema is error", K(ret), K(udf_info->get_type()));
 | 
				
			||||||
    } else if (udf_info->is_normal_udf()) {
 | 
					    } else if (udf_info->is_normal_udf()) {
 | 
				
			||||||
      ObSysFunRawExpr *func_expr = NULL;
 | 
					      ObSysFunRawExpr *func_expr = NULL;
 | 
				
			||||||
      ObCharset::casedn(CS_TYPE_UTF8MB4_GENERAL_CI, udf_name);
 | 
					      ObCharset::casedn(CS_TYPE_UTF8MB4_GENERAL_CI, udf_name);
 | 
				
			||||||
@ -7817,4 +7817,4 @@ int ObRawExprResolverImpl::process_odbc_time_literals(const ObItemType dst_time_
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
} //namespace sql
 | 
					} //namespace sql
 | 
				
			||||||
} //namespace oceabase
 | 
					} //namespace oceanbase
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user