Signed-off-by: Daniel <845765@qq.com>
This commit is contained in:
Daniel 2026-04-19 11:42:43 +08:00
parent 9fee2993f9
commit 2d052a9400
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
3 changed files with 70 additions and 59 deletions

View file

@ -63,11 +63,12 @@ func updateRootContent(tx *sql.Tx, content, updated, ialContent, id string) (err
if err = execStmtTx(tx, stmt, content, content, updated, ialContent, id); err != nil {
return
}
stmt = "UPDATE blocks_fts SET content = ?, fcontent = ?, updated = ?, ial = ? WHERE id = ?"
if err = execStmtTx(tx, stmt, content, content, updated, ialContent, id); err != nil {
return
}
if !caseSensitive {
if caseSensitive {
stmt = "UPDATE blocks_fts SET content = ?, fcontent = ?, updated = ?, ial = ? WHERE id = ?"
if err = execStmtTx(tx, stmt, content, content, updated, ialContent, id); err != nil {
return
}
} else {
stmt = "UPDATE blocks_fts_case_insensitive SET content = ?, fcontent = ?, updated = ?, ial = ? WHERE id = ?"
if err = execStmtTx(tx, stmt, content, content, updated, ialContent, id); err != nil {
return
@ -84,12 +85,13 @@ func updateBlockContent(tx *sql.Tx, block *Block) (err error) {
tx.Rollback()
return
}
stmt = "UPDATE blocks_fts SET content = ? WHERE id = ?"
if err = execStmtTx(tx, stmt, block.Content, block.ID); err != nil {
tx.Rollback()
return
}
if !caseSensitive {
if caseSensitive {
stmt = "UPDATE blocks_fts SET content = ? WHERE id = ?"
if err = execStmtTx(tx, stmt, block.Content, block.ID); err != nil {
tx.Rollback()
return
}
} else {
stmt = "UPDATE blocks_fts_case_insensitive SET content = ? WHERE id = ?"
if err = execStmtTx(tx, stmt, block.Content, block.ID); err != nil {
tx.Rollback()
@ -124,17 +126,18 @@ func indexNode(tx *sql.Tx, id string) (err error) {
tx.Rollback()
return
}
stmt = "UPDATE blocks_fts SET content = ? WHERE id = ?"
if err = execStmtTx(tx, stmt, content, id); err != nil {
tx.Rollback()
return
}
if !caseSensitive {
if caseSensitive {
stmt = "UPDATE blocks_fts_case_insensitive SET content = ? WHERE id = ?"
if err = execStmtTx(tx, stmt, content, id); err != nil {
tx.Rollback()
return
}
} else {
stmt = "UPDATE blocks_fts SET content = ? WHERE id = ?"
if err = execStmtTx(tx, stmt, content, id); err != nil {
tx.Rollback()
return
}
}
return
}

View file

@ -1003,12 +1003,12 @@ func deleteBlocksByIDs(tx *sql.Tx, ids []string) (err error) {
return
}
stmt = "DELETE FROM blocks_fts WHERE ROWID IN (" + strings.Join(rowIDs, ",") + ")"
if err = execStmtTx(tx, stmt); err != nil {
return
}
if !caseSensitive {
if caseSensitive {
stmt = "DELETE FROM blocks_fts WHERE ROWID IN (" + strings.Join(rowIDs, ",") + ")"
if err = execStmtTx(tx, stmt); err != nil {
return
}
} else {
stmt = "DELETE FROM blocks_fts_case_insensitive WHERE ROWID IN (" + strings.Join(rowIDs, ",") + ")"
if err = execStmtTx(tx, stmt); err != nil {
return
@ -1022,11 +1022,12 @@ func deleteBlocksByBoxTx(tx *sql.Tx, box string) (err error) {
if err = execStmtTx(tx, stmt, box); err != nil {
return
}
stmt = "DELETE FROM blocks_fts WHERE box = ?"
if err = execStmtTx(tx, stmt, box); err != nil {
return
}
if !caseSensitive {
if caseSensitive {
stmt = "DELETE FROM blocks_fts WHERE box = ?"
if err = execStmtTx(tx, stmt, box); err != nil {
return
}
} else {
stmt = "DELETE FROM blocks_fts_case_insensitive WHERE box = ?"
if err = execStmtTx(tx, stmt, box); err != nil {
return
@ -1121,11 +1122,12 @@ func deleteByRootID(tx *sql.Tx, rootID string, context map[string]any) (err erro
if err = execStmtTx(tx, stmt, rootID); err != nil {
return
}
stmt = "DELETE FROM blocks_fts WHERE root_id = ?"
if err = execStmtTx(tx, stmt, rootID); err != nil {
return
}
if !caseSensitive {
if caseSensitive {
stmt = "DELETE FROM blocks_fts WHERE root_id = ?"
if err = execStmtTx(tx, stmt, rootID); err != nil {
return
}
} else {
stmt = "DELETE FROM blocks_fts_case_insensitive WHERE root_id = ?"
if err = execStmtTx(tx, stmt, rootID); err != nil {
return
@ -1167,11 +1169,12 @@ func batchDeleteByRootIDs(tx *sql.Tx, rootIDs []string, context map[string]any)
if err = execStmtTx(tx, stmt); err != nil {
return
}
stmt = "DELETE FROM blocks_fts WHERE root_id IN " + ids
if err = execStmtTx(tx, stmt); err != nil {
return
}
if !caseSensitive {
if caseSensitive {
stmt = "DELETE FROM blocks_fts WHERE root_id IN " + ids
if err = execStmtTx(tx, stmt); err != nil {
return
}
} else {
stmt = "DELETE FROM blocks_fts_case_insensitive WHERE root_id IN " + ids
if err = execStmtTx(tx, stmt); err != nil {
return
@ -1207,11 +1210,12 @@ func batchDeleteByPathPrefix(tx *sql.Tx, boxID, pathPrefix string) (err error) {
if err = execStmtTx(tx, stmt, boxID, pathPrefix+"%"); err != nil {
return
}
stmt = "DELETE FROM blocks_fts WHERE box = ? AND path LIKE ?"
if err = execStmtTx(tx, stmt, boxID, pathPrefix+"%"); err != nil {
return
}
if !caseSensitive {
if caseSensitive {
stmt = "DELETE FROM blocks_fts WHERE box = ? AND path LIKE ?"
if err = execStmtTx(tx, stmt, boxID, pathPrefix+"%"); err != nil {
return
}
} else {
stmt = "DELETE FROM blocks_fts_case_insensitive WHERE box = ? AND path LIKE ?"
if err = execStmtTx(tx, stmt, boxID, pathPrefix+"%"); err != nil {
return
@ -1246,11 +1250,12 @@ func batchUpdatePath(tx *sql.Tx, tree *parse.Tree, context map[string]any) (err
if err = execStmtTx(tx, stmt, tree.Box, tree.Path, tree.HPath, tree.ID); err != nil {
return
}
stmt = "UPDATE blocks_fts SET box = ?, path = ?, hpath = ? WHERE root_id = ?"
if err = execStmtTx(tx, stmt, tree.Box, tree.Path, tree.HPath, tree.ID); err != nil {
return
}
if !caseSensitive {
if caseSensitive {
stmt = "UPDATE blocks_fts SET box = ?, path = ?, hpath = ? WHERE root_id = ?"
if err = execStmtTx(tx, stmt, tree.Box, tree.Path, tree.HPath, tree.ID); err != nil {
return
}
} else {
stmt = "UPDATE blocks_fts_case_insensitive SET box = ?, path = ?, hpath = ? WHERE root_id = ?"
if err = execStmtTx(tx, stmt, tree.Box, tree.Path, tree.HPath, tree.ID); err != nil {
return
@ -1267,16 +1272,19 @@ func batchUpdateHPath(tx *sql.Tx, tree *parse.Tree, context map[string]any) (err
if err = execStmtTx(tx, stmt, tree.HPath, tree.ID); err != nil {
return
}
stmt = "UPDATE blocks_fts SET hpath = ? WHERE root_id = ?"
if err = execStmtTx(tx, stmt, tree.HPath, tree.ID); err != nil {
return
}
if !caseSensitive {
if caseSensitive {
stmt = "UPDATE blocks_fts SET hpath = ? WHERE root_id = ?"
if err = execStmtTx(tx, stmt, tree.HPath, tree.ID); err != nil {
return
}
} else {
stmt = "UPDATE blocks_fts_case_insensitive SET hpath = ? WHERE root_id = ?"
if err = execStmtTx(tx, stmt, tree.HPath, tree.ID); err != nil {
return
}
}
ClearCache()
evtHash := fmt.Sprintf("%x", sha256.Sum256([]byte(tree.ID)))[:7]
eventbus.Publish(eventbus.EvtSQLUpdateBlocksHPaths, context, 1, evtHash)

View file

@ -123,12 +123,12 @@ func insertBlocks0(tx *sql.Tx, bulk []*Block, context map[string]any) (err error
// 使用下面的 EvtSQLInsertBlocksFTS 就可以了
//eventbus.Publish(eventbus.EvtSQLInsertBlocks, context, current, total, len(bulk), evtHash)
stmt = fmt.Sprintf(BlocksFTSInsert, strings.Join(valueStrings, ","))
if err = prepareExecInsertTx(tx, stmt, valueArgs); err != nil {
return
}
if !caseSensitive {
if caseSensitive {
stmt = fmt.Sprintf(BlocksFTSInsert, strings.Join(valueStrings, ","))
if err = prepareExecInsertTx(tx, stmt, valueArgs); err != nil {
return
}
} else {
stmt = fmt.Sprintf(BlocksFTSCaseInsensitiveInsert, strings.Join(valueStrings, ","))
if err = prepareExecInsertTx(tx, stmt, valueArgs); err != nil {
return