sql_query
Run SQL SELECT queries on document metadata, text chunks, and tags to filter, join, and aggregate data for analysis and retrieval.
Instructions
Run a SQL SELECT query over relational tables.
Full SQL supported: SELECT, JOIN, CTE, GROUP BY, window functions, subqueries, UNION, etc.
Available tables:
documents: Document-level metadata (doc_id, source, source_type, chunk_count, file_size, file_hash, language, created_at)
chunks: Individual text chunks (chunk_id, doc_id, chunk_index, source_type, chunk_type, entity_name, file_path, start_line, end_line, char_count)
tags: Defined tags (tag_id, name, color, description)
document_tags: Many-to-many mapping (doc_id, tag_id)
metadata: Flexible key-value store (key, value, doc_id)
Examples: SELECT source_type, COUNT(*) as cnt FROM documents GROUP BY source_type SELECT * FROM chunks WHERE source_type = 'code' LIMIT 10 SELECT d.source, COUNT(c.chunk_id) as chunks FROM documents d JOIN chunks c ON d.doc_id = c.doc_id GROUP BY d.source ORDER BY chunks DESC SELECT d.source FROM documents d JOIN document_tags dt ON d.doc_id = dt.doc_id JOIN tags t ON dt.tag_id = t.tag_id WHERE t.name = 'important'
Args: query: SQL SELECT query string. limit: Max rows to return (default 100, max 5000).
Returns: Dict with "columns", "rows", and "row_count".
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |