#include #include #include #include #include #include namespace DB { namespace ErrorCodes { extern const int BAD_ARGUMENTS; } BlockIO InterpreterOptimizeQuery::execute() { const auto * ast = query_ptr->as(); if (!ast->cluster.empty()) return executeDDLQueryOnCluster(query_ptr, context, {ast->database}); StoragePtr table = context.getTable(ast->database, ast->table); auto table_lock = table->lockStructureForShare(true, context.getCurrentQueryId()); table->optimize(query_ptr, ast->partition, ast->final, ast->deduplicate, context); return {}; } }