Browse Source

:zap: Optimize document moving and renaming performance https://github.com/siyuan-note/siyuan/issues/10560

Daniel 1 year ago
parent
commit
9bc6415c6a
2 changed files with 9 additions and 9 deletions
  1. 7 7
      kernel/sql/database.go
  2. 2 2
      kernel/sql/queue.go

+ 7 - 7
kernel/sql/database.go

@@ -1211,18 +1211,18 @@ func batchDeleteByPathPrefix(tx *sql.Tx, boxID, pathPrefix string) (err error) {
 	return
 }
 
-func batchUpdateHPath(tx *sql.Tx, boxID, rootID, newHPath string, context map[string]interface{}) (err error) {
-	stmt := "UPDATE blocks SET hpath = ? WHERE box = ? AND root_id = ?"
-	if err = execStmtTx(tx, stmt, newHPath, boxID, rootID); nil != err {
+func batchUpdateHPath(tx *sql.Tx, rootID, newHPath string, context map[string]interface{}) (err error) {
+	stmt := "UPDATE blocks SET hpath = ? WHERE root_id = ?"
+	if err = execStmtTx(tx, stmt, newHPath, rootID); nil != err {
 		return
 	}
-	stmt = "UPDATE blocks_fts SET hpath = ? WHERE box = ? AND root_id = ?"
-	if err = execStmtTx(tx, stmt, newHPath, boxID, rootID); nil != err {
+	stmt = "UPDATE blocks_fts SET hpath = ? WHERE root_id = ?"
+	if err = execStmtTx(tx, stmt, newHPath, rootID); nil != err {
 		return
 	}
 	if !caseSensitive {
-		stmt = "UPDATE blocks_fts_case_insensitive SET hpath = ? WHERE box = ? AND root_id = ?"
-		if err = execStmtTx(tx, stmt, newHPath, boxID, rootID); nil != err {
+		stmt = "UPDATE blocks_fts_case_insensitive SET hpath = ? WHERE root_id = ?"
+		if err = execStmtTx(tx, stmt, newHPath, rootID); nil != err {
 			return
 		}
 	}

+ 2 - 2
kernel/sql/queue.go

@@ -174,13 +174,13 @@ func execOp(op *dbQueueOperation, tx *sql.Tx, context map[string]interface{}) (e
 	case "delete_ids":
 		err = batchDeleteByRootIDs(tx, op.removeTreeIDs, context)
 	case "rename":
-		err = batchUpdateHPath(tx, op.renameTree.Box, op.renameTree.ID, op.renameTree.HPath, context)
+		err = batchUpdateHPath(tx, op.renameTree.ID, op.renameTree.HPath, context)
 		if nil != err {
 			break
 		}
 		err = updateRootContent(tx, path.Base(op.renameTree.HPath), op.renameTree.Root.IALAttr("updated"), op.renameTree.ID)
 	case "rename_sub_tree":
-		err = batchUpdateHPath(tx, op.renameTree.Box, op.renameTree.ID, op.renameTree.HPath, context)
+		err = batchUpdateHPath(tx, op.renameTree.ID, op.renameTree.HPath, context)
 	case "delete_box":
 		err = deleteByBoxTx(tx, op.box)
 	case "delete_box_refs":