07 · Tables A→ZA · Before you start
Anatomy of a fully-qualified name
catalog.schema.table - how Eddytor identifies a table across the CLI, REST, and MCP.
Every table is identified by a three-part fully-qualified name (FQN):
catalog.schema.table| Part | Meaning |
|---|---|
catalog | The top-level grouping. On self-host this is always eddytor. |
schema | A namespace within the catalog (e.g. sales, raw, curated). |
table | The table name. |
Example: eddytor.sales.orders. We use this sample throughout the docs.
How each interface takes it
- CLI - usually as separate arguments:
eddytor get history eddytor sales orders. - REST - as path segments:
GET /v1/for-developers/tables/eddytor/sales/orders. - MCP - as a single dotted string in the
tableparameter:{ "table": "eddytor.sales.orders" }.
The MCP form has a UUID in it
MCP tools often show the table component as a UUID-prefixed name and the schema as a config id, e.g.:
eddytor.cfg_abc123.a1b2c3d4e5f6…_demo_productsThat prefix is the table's stable UUID
(from the Delta protocol's metaData.id), which is why renaming or moving a
table doesn't change its identity. Get the exact string from list_tables.
Quoting in raw SQL
When you write raw SQL for execute_sql, backtick-quote
every component yourself - the SQL goes straight to the engine untransformed:
SELECT * FROM `eddytor`.`sales`.`orders` -- correct
SELECT * FROM eddytor.sales.orders -- parse error(The other tools backtick-quote for you; only raw execute_sql needs it.)