diff --git a/src/Interpreters/DatabaseCatalog.cpp b/src/Interpreters/DatabaseCatalog.cpp index f88615ca8429..24e57b5c1098 100644 --- a/src/Interpreters/DatabaseCatalog.cpp +++ b/src/Interpreters/DatabaseCatalog.cpp @@ -84,6 +84,7 @@ namespace Setting { extern const SettingsBool fsync_metadata; extern const SettingsBool allow_experimental_analyzer; + extern const SettingsBool show_data_lake_catalogs_in_system_tables; } namespace MergeTreeSetting @@ -2196,9 +2197,12 @@ std::pair TableNameHints::getExtendedHintForTable(const String & Names TableNameHints::getAllRegisteredNames() const { - if (database) - return database->getAllTableNames(context); - return {}; + if (!database) + return {}; + /// DataLakeCatalog::getAllTableNames lists all tables from remote catalog - expensive. Skip when user opted out. + if (database->isDatalakeCatalog() && context && !context->getSettingsRef()[Setting::show_data_lake_catalogs_in_system_tables]) + return {}; + return database->getAllTableNames(context); } }