From abf92b602c7093bae3266faa6e49b100fdcebdf2 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 12 May 2024 17:20:04 +0800 Subject: [PATCH] :art: Clean code --- kernel/model/attribute_view.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index f5c570e6a..6bfa2b04d 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -3235,17 +3235,23 @@ func UpdateAttributeViewCell(tx *Transaction, avID, keyID, rowID, cellID string, // val.IsDetached 只有更新主键的时候才会传入,所以下面需要结合 isUpdatingBlockKey 来判断 - if oldIsDetached { // 之前是游离行 + if oldIsDetached { + // 之前是游离行 + if !val.IsDetached { // 现在绑定了块 // 将游离行绑定到新建的块上 bindBlockAv(tx, avID, rowID) } - } else { // 之前绑定了块 + } else { + // 之前绑定了块 + if isUpdatingBlockKey { // 正在更新主键 if val.IsDetached { // 现在是游离行 // 将绑定的块从属性视图中移除 unbindBlockAv(tx, avID, rowID) - } else { // 现在绑定了块 + } else { + // 现在绑定了块 + if oldBoundBlockID != val.BlockID { // 之前绑定的块和现在绑定的块不一样 // 换绑块 unbindBlockAv(tx, avID, oldBoundBlockID)