From d8aee1ea4ffc968af3a733c9be4e617f7d9059cb Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sat, 18 Oct 2025 11:52:57 +0800 Subject: [PATCH] :art: Improve the database rollup and asset field filtering https://github.com/siyuan-note/siyuan/issues/16126 Signed-off-by: Daniel <845765@qq.com> --- kernel/av/filter.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/kernel/av/filter.go b/kernel/av/filter.go index 4f15492ad..ad2b0f36e 100644 --- a/kernel/av/filter.go +++ b/kernel/av/filter.go @@ -243,6 +243,10 @@ func (value *Value) Filter(filter *ViewFilter, attrView *AttributeView, itemID s } } + if 1 > len(filter.Value.Rollup.Contents) { + return true + } + for _, content := range value.Rollup.Contents { if content.filter(filter.Value.Rollup.Contents[0], filter.RelativeDate, filter.RelativeDate2, filter.Operator) { return false @@ -326,6 +330,10 @@ func (value *Value) Filter(filter *ViewFilter, attrView *AttributeView, itemID s return false } + if nil == filter.Value || 1 > len(filter.Value.MAsset) { + return true + } + for _, asset := range value.MAsset { switch asset.Type { case AssetTypeFile: @@ -364,6 +372,10 @@ func (value *Value) Filter(filter *ViewFilter, attrView *AttributeView, itemID s return true } + if nil == filter.Value || 1 > len(filter.Value.MAsset) { + return true + } + for _, asset := range value.MAsset { switch asset.Type { case AssetTypeFile: @@ -403,6 +415,10 @@ func (value *Value) Filter(filter *ViewFilter, attrView *AttributeView, itemID s return true } + if nil == filter.Value || 1 > len(filter.Value.MAsset) { + return true + } + for _, asset := range value.MAsset { switch asset.Type { case AssetTypeFile: