# sql5 v1.20 版本說明(已完成 Trigger 持久化)
## 版本資訊
- **版本**:1.20
- **日期**:2026-05-04
- **名稱**:VACUUM 磁碟模式 + Trigger 持久化
## 已實作功能
### Trigger 持久化 ✅
觸發器現在會持久化到磁碟,支援重啟後還原。
**實作方式:**
- TriggerMeta 使用 `encode_trigger()` / `decode_trigger()` 序列化
- 儲存在 `__catalog__` 系統表,key 為 `__trigger:{name}`
- `create_trigger()` 時自動呼叫 `persist_trigger()`
- `drop_trigger()` 時呼叫 `remove_trigger_meta()` 刪除
- `load_all()` 時自動載入所有 trigger
**觸發器出現在 `sqlite_master`:**
```sql
SELECT * FROM sqlite_master WHERE type = 'trigger';
```
### 磁碟模式 VACUUM ⏳
尚未實作(難度較高,需要原子性檔案替換)。
## 架構變化
```
src/catalog/meta.rs — +encode_trigger(), decode_trigger()
src/catalog/catalog.rs — +persist_trigger(), remove_trigger_meta(), load_all() 更新
— +trigger_create_sql(), sqlite_master_rows() 更新
```
## SQLite 相容性
| Trigger 持久化 | ✅ 完成 (v1.20) |
| VACUUM(磁碟模式) | ❌ 待實作 |