[FEAT MERGE]:Merge foreign key feature to master

Co-authored-by: YangEfei <yangyifei96@outlook.com>
This commit is contained in:
obdev
2023-08-30 13:10:42 +00:00
committed by ob-robot
parent b4427e1a69
commit 044fadf593
59 changed files with 2587 additions and 223 deletions

View File

@ -200,6 +200,25 @@ int ObLogUpdate::generate_rowid_expr_for_trigger()
return ret;
}
int ObLogUpdate::generate_part_id_expr_for_foreign_key(ObIArray<ObRawExpr*> &all_exprs)
{
int ret = OB_SUCCESS;
for (int64_t i = 0; OB_SUCC(ret) && i < get_index_dml_infos().count(); ++i) {
IndexDMLInfo *dml_info = get_index_dml_infos().at(i);
if (OB_ISNULL(dml_info)) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("dml info is null", K(ret), K(dml_info));
} else if (!dml_info->is_primary_index_) {
// do nothing
} else if (OB_FAIL(generate_fk_lookup_part_id_expr(*dml_info))) {
LOG_WARN("failed to generate lookup part expr for foreign key", K(ret));
} else if (OB_FAIL(convert_update_new_fk_lookup_part_id_expr(all_exprs, *dml_info))) {
LOG_WARN("failed to convert lookup part expr for foreign key", K(ret));
}
}
return ret;
}
int ObLogUpdate::generate_multi_part_partition_id_expr()
{
int ret = OB_SUCCESS;