From 2b753ac16f9326e3d2a408a53851b36f921a61d8 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sat, 5 Jul 2025 10:07:36 +0800 Subject: [PATCH] :art: Database grouping by field https://github.com/siyuan-note/siyuan/issues/10964 --- kernel/model/attribute_view.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index 95f27f7fb..711b87080 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -45,8 +45,18 @@ import ( ) func (tx *Transaction) doSetAttrViewGroup(operation *Operation) (ret *TxErr) { - err := SetAttributeViewGroup(operation.AvID, operation.BlockID, operation.Data.(*av.ViewGroup)) - if err != nil { + data, err := gulu.JSON.MarshalJSON(operation.Data) + if nil != err { + logging.LogErrorf("marshal operation data failed: %s", err) + return &TxErr{code: TxErrWriteAttributeView, id: operation.AvID, msg: err.Error()} + } + group := &av.ViewGroup{} + if err = gulu.JSON.UnmarshalJSON(data, &group); nil != err { + logging.LogErrorf("unmarshal operation data failed: %s", err) + return &TxErr{code: TxErrWriteAttributeView, id: operation.AvID, msg: err.Error()} + } + + if err = SetAttributeViewGroup(operation.AvID, operation.BlockID, group); nil != err { return &TxErr{code: TxErrWriteAttributeView, id: operation.AvID, msg: err.Error()} } return