From 4de0be0bc16500094856cf022519f431f521af17 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Tue, 2 Dec 2025 12:33:01 +0800 Subject: [PATCH] :art: Fix https://github.com/siyuan-note/siyuan/issues/16475 Signed-off-by: Daniel <845765@qq.com> --- kernel/sql/block_query.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel/sql/block_query.go b/kernel/sql/block_query.go index 2ba4f645b..6387febf7 100644 --- a/kernel/sql/block_query.go +++ b/kernel/sql/block_query.go @@ -379,6 +379,7 @@ func QueryNoLimit(stmt string) (ret []map[string]interface{}, err error) { } func Query(stmt string, limit int) (ret []map[string]interface{}, err error) { + originalStmt := stmt // Kernel API `/api/query/sql` support `||` operator https://github.com/siyuan-note/siyuan/issues/9662 // 这里为了支持 || 操作符,使用了另一个 sql 解析器,但是这个解析器无法处理 UNION https://github.com/siyuan-note/siyuan/issues/8226 // 考虑到 UNION 的使用场景不多,这里还是以支持 || 操作符为主 @@ -426,8 +427,11 @@ func Query(stmt string, limit int) (ret []map[string]interface{}, err error) { ret = []map[string]interface{}{} rows, err := query(stmt) if err != nil { - logging.LogWarnf("sql query [%s] failed: %s", stmt, err) - return + rows, err = query(originalStmt + " LIMIT " + strconv.Itoa(limit)) + if err != nil { + logging.LogWarnf("sql query [%s] failed: %s", stmt, err) + return + } } defer rows.Close()