Query Results (meta-source)
Query Results is a meta-source, not a real database connection — every organization gets it automatically, with nothing to configure and no credentials to enter. It exists to answer one question SQL normally can’t: how do you join data that lives in two different connectors?
How it works
Reference a previously-run query’s cached result as a table named query_<id>, where <id> is
that query’s numeric id — then write ordinary SQL against it, including joining several of these
“query tables” together:
SELECT o.*, u.name
FROM query_42 o
JOIN query_17 u ON u.id = o.user_id
Behind the scenes, arcodash loads each referenced query’s most recent cached result into an
in-memory SQLite database and runs your SQL against that. This is why the join above works even
if query_42 originally ran against Postgres and query_17 ran against a completely unrelated
warehouse — by the time your SQL runs, both are just tables in the same temporary SQLite instance.
[!NOTE] Because the join happens in SQLite, the SQL dialect that applies is SQLite’s — not whatever dialect either underlying query’s own connector speaks. Functions or syntax specific to Postgres, MySQL, etc. won’t necessarily work here even if the source query used them.
You’re querying a cache, not live data
This is the most important caveat: query_<id> reflects that query’s last cached result, not a
live read of its underlying source. If the underlying query hasn’t been run again since data
changed at the source, this meta-source won’t reflect that change until the underlying query runs
again (manually, or on its own schedule).
[!TIP] If a dashboard built on Query Results looks stale, check when the underlying queries it references last ran — refreshing the dashboard itself doesn’t re-run them; only running the original queries again refreshes what’s available to join against here.
Limits worth knowing
- Only the single most recent cached result per distinct query is available — not history.
- A query whose result has never been cached (or whose cache was cleared) doesn’t show up as a
query_<id>table at all; run it at least once first. - At most 500 distinct cached results are loaded into the in-memory database per run — not necessarily the 500 most recently run ones — so an organization with more than 500 queries that have a cached result may not have every one of them available to reference at once.
Where to go next
- Connectors overview — creating and managing the real connections whose results you can later join with this meta-source.