diff --git a/src/Interpreters/DatabaseCatalog.cpp b/src/Interpreters/DatabaseCatalog.cpp index 88cf42f2cec2..8f331cec548b 100644 --- a/src/Interpreters/DatabaseCatalog.cpp +++ b/src/Interpreters/DatabaseCatalog.cpp @@ -87,6 +87,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 @@ -2236,9 +2237,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); } }