🎨 The backlink panel no longer displays child-block references https://github.com/siyuan-note/siyuan/issues/12861

This commit is contained in:
Daniel 2024-10-21 10:32:13 +08:00
parent ae32c69bdd
commit e2b2d46a47
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
4 changed files with 12 additions and 21 deletions

View file

@ -240,7 +240,7 @@ func GetBacklink2(id, keyword, mentionKeyword string, sortMode, mentionSortMode
rootID := sqlBlock.RootID
boxID = sqlBlock.Box
refs := sql.QueryRefsByDefID(id, true)
refs := sql.QueryRefsByDefID(id, false)
refs = removeDuplicatedRefs(refs)
linkRefs, linkRefsCount, excludeBacklinkIDs := buildLinkRefs(rootID, refs, keyword)
@ -339,7 +339,7 @@ func GetBacklink(id, keyword, mentionKeyword string, beforeLen int) (boxID strin
boxID = sqlBlock.Box
var links []*Block
refs := sql.QueryRefsByDefID(id, true)
refs := sql.QueryRefsByDefID(id, false)
refs = removeDuplicatedRefs(refs)
// 为了减少查询,组装好 IDs 后一次查出

View file

@ -389,26 +389,17 @@ func QueryRefsRecent(onlyDoc bool, typeFilter string, ignoreLines []string) (ret
}
func QueryRefsByDefID(defBlockID string, containChildren bool) (ret []*Ref) {
sqlBlock := GetBlock(defBlockID)
if nil == sqlBlock {
return
}
var rows *sql.Rows
var err error
if "d" == sqlBlock.Type {
rows, err = query("SELECT * FROM refs WHERE def_block_root_id = ?", defBlockID)
} else {
if containChildren {
blockIDs := queryBlockChildrenIDs(defBlockID)
var params []string
for _, id := range blockIDs {
params = append(params, "\""+id+"\"")
}
rows, err = query("SELECT * FROM refs WHERE def_block_id IN (" + strings.Join(params, ",") + ")")
} else {
rows, err = query("SELECT * FROM refs WHERE def_block_id = ?", defBlockID)
if containChildren {
blockIDs := queryBlockChildrenIDs(defBlockID)
var params []string
for _, id := range blockIDs {
params = append(params, "\""+id+"\"")
}
rows, err = query("SELECT * FROM refs WHERE def_block_id IN (" + strings.Join(params, ",") + ")")
} else {
rows, err = query("SELECT * FROM refs WHERE def_block_id = ?", defBlockID)
}
if err != nil {
logging.LogErrorf("sql query failed: %s", err)