# Dataset SQL reference Dataset SQL runs on [DuckDB](https://duckdb.org/docs/sql/introduction). You write one read-only `SELECT`; the service validates it, registers the datasets in scope as relations, executes it in an isolated DuckDB session, and returns a paginated result. ## Relations in scope
| Query path | Relations available |
|---|---|
QueryDataset
(single dataset)
|
dataset
|
QueryDatasets
(project-wide)
|
Every dataset in the project, by name |
| Saved views | Every dataset and saved view in the project, by name |
| Export |
dataset
|
| Surface | Query |
|---|---|
| Datasets → Query → Advanced SQL |
One dataset, via
QueryDataset
.
|
| Datasets → Views |
A saved view definition, via
DatasetViewService
.
|
API
QueryDatasets
|
All datasets in a project in one statement. |
API
ExportDataset
/ query download
|
One dataset, streamed to a file. |
| DuckDB type | Result kind |
|---|---|
TEXT
,
VARCHAR
|
text |
BOOLEAN
|
boolean |
TINYINT
,
SMALLINT
,
INTEGER
,
BIGINT
|
integer |
FLOAT
,
DOUBLE
|
number |
TIMESTAMP
,
DATE
|
timestamp |
| Error | Cause |
|---|---|
Invalid dataset SQL query
/
Syntax error
|
DuckDB could not parse the statement. |
Forbidden dataset SQL query
|
A non-SELECT statement, forbidden function, or table function. |
Unknown dataset in query
|
A relation outside the registered scope, including file paths. |
DuckDB could not prepare the query
|
Unknown column, type mismatch, or invalid expression. |
Unsupported type
|
A projection returned a type the Hub cannot map. |
Too many requests
|
The per-user concurrency or rate limit was exceeded. |
invalid page_token
|
The cursor is malformed. |
| Limit | Default |
|---|---|
| Page size (single/project-wide) | 100, maximum 1,000 |
| Page size (views) | 100, maximum 10,000 |
| Row materialization guard | 100,000 |
| Query memory | 2 GB |
| Concurrent queries per user | 2 |
| Queries per user per minute | 60 |