# SQLite

ワークスペース内の SQLite データベースに対してクエリを実行する。

## 基本

```js
SQLite({
  db_path: "input/data.db",
  query: "SELECT name, price FROM products WHERE category = 'A' LIMIT 10"
})
```

## edit 制御

- **edit: false の movement**: SELECT のみ許可（読み取り専用）
- **edit: true の movement**: INSERT / UPDATE / DELETE / CREATE / ALTER 等の DDL/DML も許可

## 用途

- 既存の SQLite データベースの内容調査
- データ集計（GROUP BY, JOIN）
- スキーマ確認（`SELECT name FROM sqlite_master WHERE type='table'`）
- 加工後データの新規 DB への書き込み（edit movement のみ）

## クエリの実行結果

- 行は JSON 配列で返る
- 大量行はトークン消費が大きいので **必ず LIMIT を付ける** か WHERE で絞る
- 1 万行を超えるような結果は LIMIT 100 程度から始めて段階的に確認

## 入力ファイルの場所

- workspace 内のパス（`input/`, `output/`, `data/` 等）
- 絶対パスは禁止
- DB ファイルが存在しないときは（edit movement なら）新規作成される

## トラブルシューティング

- **database is locked**: 他プロセスが DB を開いている。暫く待ってリトライ
- **no such table**: スキーマ確認 → テーブル名スペルチェック
- **disk I/O error**: ディスク容量・パーミッション確認
