peakki opened a new issue, #69085: URL: https://github.com/apache/doris/issues/69085
### Version Apache Doris 4.1.4.1 (also present on master: `InfoSchemaDb.getDbNameFromMysqlTableSchema`) ### What happened With an Iceberg REST catalog (Nessie) that has two-level namespaces, Doris exposes each namespace as a database named `a.b` (e.g. `gold.reporting`). - `SHOW DATABASES FROM <catalog>` lists `gold.reporting` ✔ - `SHOW TABLES FROM <catalog>.\`gold.reporting\`` lists the tables ✔ - `information_schema.schemata` lists the database ✔ - `information_schema.tables` / `information_schema.columns` / `SHOW TABLE STATUS` return **0 rows** for that database ✘ (for root and for a restricted user alike) FE log: `Database reporting does not exist in the remote system`. ### Cause (from source) `FrontendServiceImpl.listTableStatus` maps the schema name through `getDbNameFromMysqlTableSchema`. For a non-internal catalog, a name with exactly one dot is treated as `<cluster>.<db>` and only the part after the dot is kept, so `gold.reporting` becomes `reporting`, which does not exist. (4.1.4.1 `FrontendServiceImpl.java` ~L578-587; on master moved to `InfoSchemaDb.getDbNameFromMysqlTableSchema`, unchanged.) Setting `show_full_dbname_in_info_schema_db=true` does not help (a two-dot name is then passed through whole and still not found). ### Related For single-level external databases, `listTableStatus` loads every table (`getComment`) and drops the **whole** database from the result when any one table fails to load (e.g. one table with unreadable metadata), so the other tables vanish from information_schema too. ### Impact Tools that enumerate tables via information_schema (BI tools, SQLAlchemy dialects, OpenMetadata's Doris connector, Superset physical datasets) see no tables in nested-namespace Iceberg catalogs. ### How to reproduce 1. CREATE CATALOG with `type=iceberg`, `iceberg.catalog.type=rest` pointing at a REST catalog (Nessie 0.108.x) that has namespace `gold.reporting` with a table `t`. 2. `SHOW TABLES FROM cat.\`gold.reporting\`;` → `t` 3. `SELECT * FROM cat.information_schema.tables WHERE table_schema='gold.reporting';` → empty ### Expected information_schema reflects the same tables as SHOW TABLES; a single failing table should not hide the rest. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
