JDBC catalog
JDBC metadata lists persisted views, not FeatureQL namespaces. A SQL tool that discovers catalogs, schemas, and tables sees fmv / the middle identifier / the leaf name, with TABLE_TYPE VIEW.
Discover views
SHOW JDBC/* reads the same catalog a JDBC client would:
SHOW JDBC/TABLES IN FMV.DOCS
WHERE TABLE_NAME = 'ORDERS'
;| TABLE_CAT VARCHAR | TABLE_SCHEM VARCHAR | TABLE_NAME VARCHAR | TABLE_TYPE VARCHAR |
|---|---|---|---|
| fmv | DOCS | ORDERS | VIEW |
| Statement | What it returns |
|---|---|
SHOW JDBC/CATALOGS | fmv when at least one view exists |
SHOW JDBC/SCHEMAS | Middle identifier of each FMV.schema.table |
SHOW JDBC/TABLES IN FMV.schema | Leaf names; TABLE_TYPE is VIEW |
SHOW JDBC/COLUMNS IN FMV.schema.table | Published columns in authored RETURN order |
SHOW JDBC/PRIMARY_KEYS IN FMV.schema.table | Empty in V1 — no primary-key metadata |
Source namespaces such as FM.SALES do not appear as tables. There is no _CONSTANTS / input-signature table.
DESCRIBE view-only fields (VIEW_COLUMNS, VIEW_BACKENDS, …) are on persisted views . SHOW syntax is on SHOW .
Scan from a SQL client
JDBC and Flight SQL are SQL by protocol. The relation name is fmv.schema.table (catalog fmv is lowercase in JDBC). On FeatureQL HTTP (:8101) you still need /* SQL */ — see persisted views .
Compatible clients include Tableau, Power BI, Looker, Superset, DataGrip, DBeaver, and any JDBC/ODBC application. Hybrid FEATUREQL(...) is the other way to feed those tools when you want live FeatureQL instead of a frozen view.
What V1 does not advertise
- Primary keys
- View-level permissions
- Flight / ADBC / MCP catalog listing beyond
SHOW JDBC/*(the JDBC SHOW path is the supported discovery API today)
Next
Create the view first on persisted views . To wrap FeatureQL in a SQL query without persisting a table, use hybrid queries . For what stays identical (and what does not) when that view compiles for DuckDB, Trino, and serving: Same answer across backends .