From 7253c191ec498ec110c5dc70e008257d88741d0e Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 8 Mar 2026 10:46:09 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/17157 Signed-off-by: Daniel <845765@qq.com> --- kernel/sql/database.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/kernel/sql/database.go b/kernel/sql/database.go index 018480704..4271a8412 100644 --- a/kernel/sql/database.go +++ b/kernel/sql/database.go @@ -383,6 +383,14 @@ var ( func SetCaseSensitive(b bool) { caseSensitive = b + + initDatabaseLock.Lock() + defer initDatabaseLock.Unlock() + + if nil == db { + return + } + if b { db.Exec("PRAGMA case_sensitive_like = ON;") } else { @@ -1307,6 +1315,10 @@ func queryRow(query string, args ...interface{}) *sql.Row { logging.LogErrorf("statement is empty") return nil } + + initDatabaseLock.Lock() + defer initDatabaseLock.Unlock() + if nil == db { return nil } @@ -1318,6 +1330,10 @@ func query(query string, args ...interface{}) (*sql.Rows, error) { if "" == query { return nil, errors.New("statement is empty") } + + initDatabaseLock.Lock() + defer initDatabaseLock.Unlock() + if nil == db { return nil, errors.New("database is nil") } @@ -1592,6 +1608,9 @@ func SQLTemplateFuncs(templateFuncMap *template.FuncMap) { } func Vacuum() { + initDatabaseLock.Lock() + defer initDatabaseLock.Unlock() + if nil != db { if _, err := db.Exec("VACUUM"); nil != err { logging.LogErrorf("vacuum database failed: %s", err)