From 5c6dec485fc8c6b9c40c896af7d8afe11928b2ce Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Wed, 27 Mar 2024 23:04:42 +0800 Subject: [PATCH] :art: Improve the handling of empty values in database multi-field sorting https://github.com/siyuan-note/siyuan/issues/10758 --- kernel/av/table.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/kernel/av/table.go b/kernel/av/table.go index 0930b01eb..9d7ef8f99 100644 --- a/kernel/av/table.go +++ b/kernel/av/table.go @@ -173,25 +173,25 @@ func (table *Table) SortRows(attrView *AttributeView) { } } - includeUneditedRows := map[string]bool{} + editedValRows := map[string]bool{} for i, row := range table.Rows { for _, colIndexSort := range colIndexSorts { val := table.Rows[i].Cells[colIndexSort.Index].Value - if !val.IsEdited() { - // 如果该行的某个列的值是未编辑的,则该行不参与排序 - includeUneditedRows[row.ID] = true + if val.IsEdited() { + // 如果该行某列的值已经编辑过,则该行可参与排序 + editedValRows[row.ID] = true break } } } - // 将包含未编辑的行和全部已编辑的行分开排序 + // 将未编辑的行和已编辑的行分开排序 var uneditedRows, editedRows []*TableRow for _, row := range table.Rows { - if _, ok := includeUneditedRows[row.ID]; ok { - uneditedRows = append(uneditedRows, row) - } else { + if _, ok := editedValRows[row.ID]; ok { editedRows = append(editedRows, row) + } else { + uneditedRows = append(uneditedRows, row) } }