♻️ Refactor av data structure

This commit is contained in:
Daniel 2023-07-11 22:11:15 +08:00
parent caf074185d
commit 39b28cbc98
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
4 changed files with 137 additions and 83 deletions

View file

@ -28,7 +28,6 @@ import (
"github.com/88250/lute/parse"
"github.com/siyuan-note/eventbus"
"github.com/siyuan-note/logging"
"github.com/siyuan-note/siyuan/kernel/av"
"github.com/siyuan-note/siyuan/kernel/task"
"github.com/siyuan-note/siyuan/kernel/util"
)
@ -42,17 +41,16 @@ var (
type dbQueueOperation struct {
inQueueTime time.Time
action string // upsert/delete/delete_id/rename/rename_sub_tree/delete_box/delete_box_refs/insert_refs/index/delete_ids/update_block_content/delete_assets/av_rebuild
indexPath string // index
upsertTree *parse.Tree // upsert/insert_refs/update_refs/delete_refs
removeTreeBox, removeTreePath string // delete
removeTreeIDBox, removeTreeID string // delete_id
removeTreeIDs []string // delete_ids
box string // delete_box/delete_box_refs/index
renameTree *parse.Tree // rename/rename_sub_tree
block *Block // update_block_content
removeAssetHashes []string // delete_assets
av *av.AttributeView // av_rebuild
action string // upsert/delete/delete_id/rename/rename_sub_tree/delete_box/delete_box_refs/insert_refs/index/delete_ids/update_block_content/delete_assets
indexPath string // index
upsertTree *parse.Tree // upsert/insert_refs/update_refs/delete_refs
removeTreeBox, removeTreePath string // delete
removeTreeIDBox, removeTreeID string // delete_id
removeTreeIDs []string // delete_ids
box string // delete_box/delete_box_refs/index
renameTree *parse.Tree // rename/rename_sub_tree
block *Block // update_block_content
removeAssetHashes []string // delete_assets
}
func FlushTxJob() {
@ -189,8 +187,6 @@ func execOp(op *dbQueueOperation, tx *sql.Tx, context map[string]interface{}) (e
err = updateBlockContent(tx, op.block)
case "delete_assets":
err = deleteAssetsByHashes(tx, op.removeAssetHashes)
case "av_rebuild":
err = av.RebuildAttributeViewTable(tx, op.av)
default:
msg := fmt.Sprintf("unknown operation [%s]", op.action)
logging.LogErrorf(msg)
@ -199,20 +195,6 @@ func execOp(op *dbQueueOperation, tx *sql.Tx, context map[string]interface{}) (e
return
}
func RebuildAttributeViewQueue(av *av.AttributeView) {
//dbQueueLock.Lock()
//defer dbQueueLock.Unlock()
//
//newOp := &dbQueueOperation{av: av, inQueueTime: time.Now(), action: "av_rebuild"}
//for i, op := range operationQueue {
// if "av_rebuild" == op.action && op.av.ID == av.ID {
// operationQueue[i] = newOp
// return
// }
//}
//operationQueue = append(operationQueue, newOp)
}
func BatchRemoveAssetsQueue(hashes []string) {
if 1 > len(hashes) {
return