From 7b3ac79d78bc957304324aa7091549dc45f39782 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Mon, 11 Aug 2025 23:52:11 +0800 Subject: [PATCH 1/2] :art: Improve av --- kernel/sql/av.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/kernel/sql/av.go b/kernel/sql/av.go index 26af3224b..53bf77ee6 100644 --- a/kernel/sql/av.go +++ b/kernel/sql/av.go @@ -340,7 +340,7 @@ func fillAttributeViewAutoGeneratedValues(attrView *av.AttributeView, collection } } } - case av.KeyTypeRollup: // 渲染汇总列 + case av.KeyTypeRollup: // 渲染汇总字段 rollupKey, _ := attrView.GetKey(value.KeyID) if nil == rollupKey || nil == rollupKey.Rollup { break @@ -402,12 +402,12 @@ func fillAttributeViewAutoGeneratedValues(attrView *av.AttributeView, collection value.Rollup.RenderContents(rollupKey.Rollup.Calc, destKey) - // 将汇总列的值保存到 rowsValues 中,后续渲染模板列的时候会用到,下同 + // 将汇总字段的值保存到 rowsValues 中,后续渲染模板字段的时候会用到,下同 // Database table view template columns support reading relation, rollup, created and updated columns https://github.com/siyuan-note/siyuan/issues/10442 keyValues := items[itemID] keyValues = append(keyValues, &av.KeyValues{Key: rollupKey, Values: []*av.Value{{ID: value.ID, KeyID: rollupKey.ID, BlockID: itemID, Type: av.KeyTypeRollup, Rollup: value.Rollup}}}) items[itemID] = keyValues - case av.KeyTypeRelation: // 渲染关联列 + case av.KeyTypeRelation: // 渲染关联字段 relKey, _ := attrView.GetKey(value.KeyID) if nil != relKey && nil != relKey.Relation { destAv := avCache[relKey.Relation.AvID] @@ -480,6 +480,17 @@ func fillAttributeViewAutoGeneratedValues(attrView *av.AttributeView, collection } func fillAttributeViewTemplateValues(attrView *av.AttributeView, collection av.Collection, ials map[string]map[string]string, items map[string][]*av.KeyValues) (err error) { + existTemplateField := false + for _, kVals := range attrView.KeyValues { + if av.KeyTypeTemplate == kVals.Key.Type { + existTemplateField = true + break + } + } + if !existTemplateField { + return + } + var renderTemplateErr error for _, item := range collection.GetItems() { for _, value := range item.GetValues() { From 8ddac7791533a78c8f9c65b44aa3b06ec68e8e41 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Tue, 12 Aug 2025 00:36:44 +0800 Subject: [PATCH 2/2] :art: Improve av https://github.com/siyuan-note/siyuan/issues/15520 --- kernel/sql/av.go | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/kernel/sql/av.go b/kernel/sql/av.go index 53bf77ee6..f7d3d1868 100644 --- a/kernel/sql/av.go +++ b/kernel/sql/av.go @@ -310,10 +310,6 @@ func fillAttributeViewBaseValue(baseValue *av.BaseValue, fieldID, itemID string, baseValue.Value = &av.Value{ID: baseValue.ID, KeyID: fieldID, BlockID: itemID, Type: av.KeyTypeCreated} case av.KeyTypeUpdated: // 填充更新时间字段值,后面再渲染 baseValue.Value = &av.Value{ID: baseValue.ID, KeyID: fieldID, BlockID: itemID, Type: av.KeyTypeUpdated} - case av.KeyTypeRelation: // 清空关联字段值,后面再渲染 https://ld246.com/article/1703831044435 - if nil != baseValue.Value && nil != baseValue.Value.Relation { - baseValue.Value.Relation.Contents = nil - } } if nil == baseValue.Value { @@ -408,6 +404,7 @@ func fillAttributeViewAutoGeneratedValues(attrView *av.AttributeView, collection keyValues = append(keyValues, &av.KeyValues{Key: rollupKey, Values: []*av.Value{{ID: value.ID, KeyID: rollupKey.ID, BlockID: itemID, Type: av.KeyTypeRollup, Rollup: value.Rollup}}}) items[itemID] = keyValues case av.KeyTypeRelation: // 渲染关联字段 + value.Relation.Contents = nil relKey, _ := attrView.GetKey(value.KeyID) if nil != relKey && nil != relKey.Relation { destAv := avCache[relKey.Relation.AvID]