StarRocks/Doris expose external storage through a catalog. dbx had no
catalog concept, so connecting to e.g. `paimon_catalog.clip` failed: the
URL path's database was sent as the MySQL handshake schema and rejected
before any `SET catalog` could run, and table listing/preview ran against
the default catalog.
Add an opt-in `catalog=<name>` URL parameter for mysql-family connections:
- `mysql_connection_catalog`: reads the `catalog` param (percent-decoded).
- `mysql_setup_queries`: emits `SET catalog = <name>` when present. Pushed
last so mysql_async's back-to-front setup execution (Vec::pop) runs it
before `USE <database>`, which would otherwise fail (the database lives
in the external catalog). The pool re-runs setup after each reset, so the
catalog stays current.
- `mysql_async_url`: when a catalog is configured, strip the database path
from the URL handed to mysql_async so the handshake does not send the
external-catalog database as the schema. The original URL (with path) is
still used for setup, so `USE <database>` is emitted correctly.
- Add `catalog` to `is_dbx_handled_mysql_url_param` so mysql_async ignores
the unknown param.
This is opt-in: only connections that set `catalog=` are affected; all
existing mysql/StarRocks/Doris connections behave unchanged. Configure a
Paimon connection as `database=clip`, `url_params=catalog=paimon_catalog`.
Verified against a StarRocks + Paimon catalog via the dbx MCP bridge:
SHOW DATABASES, SHOW TABLES, DESCRIBE, and unqualified `SELECT * FROM <t>`
all resolve in the selected catalog.
* docs: add query result streaming export design
* feat(core): stream query result exports
* feat: expose query result streaming export APIs
* feat(desktop): stream query result exports from grid
* fix: route query result export cancellation through its command
* fix: reduce query export batch size and cancel latency
* opt: del local test files