🎨 List file/asset history following the limit of editor history retention days https://github.com/siyuan-note/siyuan/issues/9723

This commit is contained in:
Daniel 2023-11-22 22:11:56 +08:00
parent e0d0c5c4d5
commit f5205d846c
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
3 changed files with 15 additions and 14 deletions

View file

@ -104,9 +104,9 @@ func queryHistory(query string, args ...interface{}) (*sql.Rows, error) {
return historyDB.Query(query, args...)
}
func deleteHistoriesByPathPrefix(tx *sql.Tx, pathPrefix string, context map[string]interface{}) (err error) {
stmt := "DELETE FROM histories_fts_case_insensitive WHERE path LIKE ?"
if err = execStmtTx(tx, stmt, pathPrefix+"%"); nil != err {
func deleteOutdatedHistories(tx *sql.Tx, before string, context map[string]interface{}) (err error) {
stmt := "DELETE FROM histories_fts_case_insensitive WHERE created < ?"
if err = execStmtTx(tx, stmt, before); nil != err {
return
}
return

View file

@ -39,10 +39,10 @@ var (
type historyDBQueueOperation struct {
inQueueTime time.Time
action string // index/deletePathPrefix
action string // index/deleteOutdated
histories []*History // index
pathPrefix string // deletePathPrefix
histories []*History // index
before string // deleteOutdated
}
func FlushHistoryTxJob() {
@ -111,8 +111,8 @@ func execHistoryOp(op *historyDBQueueOperation, tx *sql.Tx, context map[string]i
switch op.action {
case "index":
err = insertHistories(tx, op.histories, context)
case "deletePathPrefix":
err = deleteHistoriesByPathPrefix(tx, op.pathPrefix, context)
case "deleteOutdated":
err = deleteOutdatedHistories(tx, op.before, context)
default:
msg := fmt.Sprintf("unknown history operation [%s]", op.action)
logging.LogErrorf(msg)
@ -121,11 +121,11 @@ func execHistoryOp(op *historyDBQueueOperation, tx *sql.Tx, context map[string]i
return
}
func DeleteHistoriesByPathPrefixQueue(pathPrefix string) {
func DeleteOutdatedHistories(before string) {
historyDBQueueLock.Lock()
defer historyDBQueueLock.Unlock()
newOp := &historyDBQueueOperation{inQueueTime: time.Now(), action: "deletePathPrefix", pathPrefix: pathPrefix}
newOp := &historyDBQueueOperation{inQueueTime: time.Now(), action: "deleteOutdated", before: before}
historyOperationQueue = append(historyOperationQueue, newOp)
}