From 12db2ff98960159d26b49cc049710f954dff0e4f Mon Sep 17 00:00:00 2001 From: obdev Date: Sat, 7 Oct 2023 03:09:43 +0000 Subject: [PATCH] [CP] test: fix some failed mysql test --- src/sql/engine/dml/ob_fk_checker.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/sql/engine/dml/ob_fk_checker.cpp b/src/sql/engine/dml/ob_fk_checker.cpp index 5be2067c31..949885ce7f 100644 --- a/src/sql/engine/dml/ob_fk_checker.cpp +++ b/src/sql/engine/dml/ob_fk_checker.cpp @@ -204,7 +204,13 @@ int ObForeignKeyChecker::calc_lookup_tablet_loc(ObDASTabletLoc *&tablet_loc) else if (OB_FAIL(ObSQLUtils::clear_evaluated_flag(clear_exprs_, eval_ctx_))) { LOG_WARN("fail to clear rowkey flag", K(ret), K(checker_ctdef_.part_id_dep_exprs_)); } else if (OB_FAIL(ObExprCalcPartitionBase::calc_part_and_tablet_id(part_id_expr, eval_ctx_, partition_id, tablet_id))) { - LOG_WARN("fail to calc part id", K(ret), KPC(part_id_expr)); + if (OB_NO_PARTITION_FOR_GIVEN_VALUE == ret) { + //NOTE: no partition means no referenced value in parent table, change the ret_code to OB_ERR_NO_REFERENCED_ROW + ret = OB_ERR_NO_REFERENCED_ROW; + LOG_WARN("No referenced value in parent table and no partition for given value", K(ret)); + } else { + LOG_WARN("fail to calc part id", K(ret), KPC(part_id_expr)); + } } else if (OB_FAIL(DAS_CTX(das_ref_.get_exec_ctx()).extended_tablet_loc(*table_loc_, tablet_id, tablet_loc))) { LOG_WARN("extended tablet loc failed", K(ret)); }