Skip to content

Commit 1b9c4c0

Browse files
committed
🚧 执行 WalCheckpoint 前校验是否处于事务过程中
1 parent ba9233f commit 1b9c4c0

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

db/ha_sqlite_db.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,11 @@ func (d *HaSqliteDB) TryClose() (bool, error) {
124124

125125
// WalCheckpoint WAL 日志执行检查点
126126
func (d *HaSqliteDB) WalCheckpoint() error {
127+
d.txMtx.Lock()
128+
defer d.txMtx.Unlock()
129+
if len(d.txMap) > 0 {
130+
return fmt.Errorf("WalCheckpoint error : has tx")
131+
}
127132
var row [3]int
128133
// 应用 wal_checkpoint 失败不影响数据一致性, todo 提交至 frame 内容需要快照
129134
if err := d.db.QueryRow(`PRAGMA wal_checkpoint(TRUNCATE);`).Scan(&row[0], &row[1], &row[2]); err != nil {

0 commit comments

Comments
 (0)