Fix functional index bugs
This commit is contained in:
		| @ -1974,6 +1974,17 @@ int ObRawExprUtils::build_generated_column_expr(const obrpc::ObCreateIndexArg *a | ||||
|   if (OB_SUCC(ret)) { | ||||
|     if (OB_FAIL(expr->formalize(&session_info))) { | ||||
|       LOG_WARN("formalize expr failed", K(ret), KPC(expr)); | ||||
|     } else if (ObResolverUtils::CHECK_FOR_FUNCTION_INDEX == check_status || | ||||
|                ObResolverUtils::CHECK_FOR_GENERATED_COLUMN == check_status) { | ||||
|       if (OB_FAIL(ObRawExprUtils::check_is_valid_generated_col(expr, expr_factory.get_allocator()))) { | ||||
|         if (OB_ERR_ONLY_PURE_FUNC_CANBE_VIRTUAL_COLUMN_EXPRESSION == ret | ||||
|                  && ObResolverUtils::CHECK_FOR_FUNCTION_INDEX == check_status) { | ||||
|           ret = OB_ERR_ONLY_PURE_FUNC_CANBE_INDEXED; | ||||
|           LOG_WARN("sysfunc in expr is not valid for generated column", K(ret), K(*expr)); | ||||
|         } else { | ||||
|           LOG_WARN("fail to check if the sysfunc exprs are valid in generated columns", K(ret)); | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 2149
					2149