When you set up the External Database Connector, you can browse the connection and see all the schemas in a tree view, then pick tables/objects from there. But the tree is rooted at a single database — the database is fixed by the connection and never appears as a browsable level in the tree. Many database platforms (Snowflake, SQL Server, etc.) expose multiple databases through one connection, the same way they expose multiple schemas. Please introduce the database as a level in the browse/tree view, so you can expand databases → schemas → tables on a single connection and query across them.
Current Behavior / Limitation
- The connector lets you browse and expand schemas in a tree, which is great.
- But the database itself is not part of that tree — it's pinned by the connection. You only ever see the schemas of the one database the connection points at.
- As a result, any query that needs to span more than one database is impossible to express as a single server-side query, even though the underlying platform fully supports it.
Why This Is a Strong Limitation
The biggest pain is cross-database joins:
- In platforms like Snowflake, a join across two databases (
DB1.SCHEMA.TABLE ⋈ DB2.SCHEMA.TABLE) is trivial and runs entirely on the warehouse — the heavy lifting happens where the data lives, and only the result set comes back. - With the current connector, you cannot push that join down to the database. Instead you are forced to:
- Set up a separate connection per database,
- Retrieve the full contents of each table into the Mendix runtime,
- Perform the join in-app (in microflows/Java over in-memory lists).
This means loading all the data into the application before joining — slow, memory-hungry, and defeating the entire purpose of using a powerful query engine like Snowflake. A one-line warehouse join becomes a fragile, expensive client-side operation that doesn't scale.
How Other Tools Handle This
Practically every mature data/integration tool treats the database as just another browsable level in the object path, not as a hard connection boundary:
- Snowflake — fully-qualified
database.schema.table references work across databases on a single connection/role; cross-database joins are standard. - SQL Server / Azure SQL — three-part naming (
database.schema.object) lets a single connection query across databases on the same server. - DB clients (DBeaver, Azure Data Studio, SSMS, Snowsight, etc.) — their object explorers show databases → schemas → tables as a single tree on one connection, exactly the experience this idea asks for.
Mendix is the odd one out: the platform capability exists, but the browse tree stops one level too low.
Proposed Solution
- Add the database as a top level in the browse/tree view — let users expand databases → schemas → tables on a single connection, the same way schemas are already browsable today.
- Scope the connection to the account/role/warehouse (or server) rather than to a single database, so the tree can surface every database the credentials can reach.
- Allow fully-qualified object references (
database.schema.object) selected from the tree, so a single query can reference objects from multiple databases. - Permit cross-database joins to be pushed down to the source database, so the join executes server-side rather than in the Mendix runtime.
Benefit / Impact
- Push joins down to the source (e.g., Snowflake) instead of loading entire tables into the app — large gains in performance, memory footprint, and scalability.
- Removes a class of in-app, hand-rolled join logic that is error-prone and hard to maintain.
- Brings the connector's browse experience in line with every standard database client and integration tool.
- Unlocks realistic enterprise scenarios where data is naturally spread across multiple databases on the same platform.