Repository navigation
fix: 修正 SQLite SQL 阻塞 UI 與取消無效 - #44
Merged
Merged
Conversation
SQLite 的 async ADO 呼叫仍同步執行,原先讓取消按鈕與快捷鍵在計算期間無法回應。SQL 與執行計畫改由背景工作執行,並用原生 progress handler 檢查取消,解除 callback 後才釋放連線。操作鎖仍等查詢真正停止才釋放,取消訊息不宣稱已提交 SQL 回滾。 加入隔離 SQLite 長計算、取消後查詢與已提交 DML 回歸,桌面 harness 改用正式 SQL 與 Cancel handlers 驗證 UI tick 和重複點擊。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
後續 SQLite 修正(不重做 PR #42/#43)
SQLite async ADO 同步計算改在背景執行,原生 progress handler 每 1000 VM 指令檢查取消;callback 只在 native 執行緒運行,先解除再釋放連線。不以放棄 task 冒充停止,沿用 gate 直到查詢停止。取消訊息明示先前 autocommit 語句不會回滾。
實際驗證
精確限制
SQLite busy/lock 等待仍受 provider timeout;本次不宣稱所有 metadata 同步 API 背景化。沒有使用者 DB 或秘密,沒有真 SQL Server 降版矩陣/SQL auth+SSH 真機驗證。待精確 head CI 通過後正常合併;不触發 release。