sql5 3.4.0

SQLite compatible database with CJK FTS5 full-text search
# sql5 v1.18 版本說明(已完成)

## 版本資訊
- **版本**:1.18
- **日期**:2026-05-04
- **名稱**:ATTACH DATABASE(多資料庫支援)

## 已實作功能

### ATTACH DATABASE

```sql
ATTACH DATABASE 'filename' AS alias;
DETACH DATABASE alias;
```

**支援情况:**
- `ATTACH DATABASE 'path' AS alias` — 開啟並掛載附屬資料庫
-`DETACH DATABASE alias` — 卸載附屬資料庫
-`SELECT * FROM alias.table` — 讀取附屬資料庫的表
- ✅ Parser 支援 `alias.table` 語法

## 架構變化

**附屬資料庫管理(直接整合於 Executor):**

```rust
struct AttachedDb {
    alias:   String,
    storage: SharedStorage,
    catalog: Catalog<SharedStorage>,
    tables:  HashMap<String, Table<SharedStorage>>,
}

pub struct Executor {
    // ... existing fields ...
    attached: HashMap<String, AttachedDb>,
}
```

**Parser 變化:**
- `parse_table_ref()` 現在支援 `alias.table` 語法
- 新增 `Token::Attach`, `Token::Detach`, `Token::Database`
- 新增 `Statement::Attach``Statement::Detach`

**Planner 變化:**
- `Plan::Attach { path, alias }``Plan::Detach { alias }`

**Executor 變化:**
- `exec_attach()` — 開啟資料庫檔案,建立 storage + catalog
- `exec_detach()` — 移除附屬資料庫
- `get_table()` — 支援 `alias.table` 格式
- `col_names()` — 支援附屬資料庫的欄位查詢

## 當前限制

- `CREATE TABLE alias.table`**不支援**(仍會在 main DB 建立)
- `INSERT/UPDATE/DELETE` on `alias.table`**可能不完全支援**
- 跨庫 JOIN (`main.t1 JOIN alias.t2`) — **未測試**
- 同一附屬資料庫內的 DML — 需要驗證
- `DETACH` 時附屬資料庫的 tables 快取未清除

## SQLite 相容性

| SQLite 功能 | sql5 v1.18 狀態 |
|-----------|---------------|
| ATTACH DATABASE | 🔧 基本讀取支援(v1.18) |
| DETACH DATABASE | 🔧 基本支援(v1.18) |
| 跨庫查詢 | ⚠️ 部分支援,待驗證 |
| VACUUM | ❌ 待支援 |