diff --git a/src/Databases/DatabaseFactory.cpp b/src/Databases/DatabaseFactory.cpp index 71fdc15f70f..6017b95e123 100644 --- a/src/Databases/DatabaseFactory.cpp +++ b/src/Databases/DatabaseFactory.cpp @@ -98,7 +98,7 @@ DatabasePtr DatabaseFactory::getImpl(const ASTCreateQuery & create, const String #if USE_MYSQL - else if (engine_name == "MySQL") + else if (engine_name == "MySQL" || engine_name == "MaterializeMySQL") { const ASTFunction * engine = engine_define->engine; if (!engine->arguments || engine->arguments->children.size() != 4) @@ -119,15 +119,15 @@ DatabasePtr DatabaseFactory::getImpl(const ASTCreateQuery & create, const String const auto & [remote_host_name, remote_port] = parseAddress(host_name_and_port, 3306); auto mysql_pool = mysqlxx::Pool(mysql_database_name, remote_host_name, mysql_user_name, mysql_user_password, remote_port); - auto materialize_mode_settings = std::make_unique(); - - if (engine_define->settings) - materialize_mode_settings->loadFromQuery(*engine_define); - - if (materialize_mode_settings->locality_data) + if (engine_name == "MaterializeMySQL") { MySQLClient client(remote_host_name, remote_port, mysql_user_name, mysql_user_password); + auto materialize_mode_settings = std::make_unique(); + + if (engine_define->settings) + materialize_mode_settings->loadFromQuery(*engine_define); + return std::make_shared( context, database_name, metadata_path, engine_define, mysql_database_name, std::move(mysql_pool), std::move(client) , std::move(materialize_mode_settings)); diff --git a/src/Databases/MySQL/DatabaseMaterializeMySQL.cpp b/src/Databases/MySQL/DatabaseMaterializeMySQL.cpp index 502fcc4d62b..ed246825b5c 100644 --- a/src/Databases/MySQL/DatabaseMaterializeMySQL.cpp +++ b/src/Databases/MySQL/DatabaseMaterializeMySQL.cpp @@ -121,7 +121,7 @@ time_t DatabaseMaterializeMySQL::getObjectMetadataModificationTime(const String void DatabaseMaterializeMySQL::createTable(const Context & context, const String & name, const StoragePtr & table, const ASTPtr & query) { if (!MaterializeMySQLSyncThread::isMySQLSyncThread()) - throw Exception("MySQL database in locality_data mode does not support create table.", ErrorCodes::NOT_IMPLEMENTED); + throw Exception("MaterializeMySQL database not support create table.", ErrorCodes::NOT_IMPLEMENTED); getNestedDatabase()->createTable(context, name, table, query); } @@ -129,7 +129,7 @@ void DatabaseMaterializeMySQL::createTable(const Context & context, const String void DatabaseMaterializeMySQL::dropTable(const Context & context, const String & name, bool no_delay) { if (!MaterializeMySQLSyncThread::isMySQLSyncThread()) - throw Exception("MySQL database in locality_data mode does not support drop table.", ErrorCodes::NOT_IMPLEMENTED); + throw Exception("MaterializeMySQL database not support drop table.", ErrorCodes::NOT_IMPLEMENTED); getNestedDatabase()->dropTable(context, name, no_delay); } @@ -137,7 +137,7 @@ void DatabaseMaterializeMySQL::dropTable(const Context & context, const String & void DatabaseMaterializeMySQL::attachTable(const String & name, const StoragePtr & table, const String & relative_table_path) { if (!MaterializeMySQLSyncThread::isMySQLSyncThread()) - throw Exception("MySQL database in locality_data mode does not support attach table.", ErrorCodes::NOT_IMPLEMENTED); + throw Exception("MaterializeMySQL database not support attach table.", ErrorCodes::NOT_IMPLEMENTED); getNestedDatabase()->attachTable(name, table, relative_table_path); } @@ -145,7 +145,7 @@ void DatabaseMaterializeMySQL::attachTable(const String & name, const StoragePtr StoragePtr DatabaseMaterializeMySQL::detachTable(const String & name) { if (!MaterializeMySQLSyncThread::isMySQLSyncThread()) - throw Exception("MySQL database in locality_data mode does not support detach table.", ErrorCodes::NOT_IMPLEMENTED); + throw Exception("MaterializeMySQL database not support detach table.", ErrorCodes::NOT_IMPLEMENTED); return getNestedDatabase()->detachTable(name); } @@ -153,7 +153,7 @@ StoragePtr DatabaseMaterializeMySQL::detachTable(const String & name) void DatabaseMaterializeMySQL::renameTable(const Context & context, const String & name, IDatabase & to_database, const String & to_name, bool exchange) { if (!MaterializeMySQLSyncThread::isMySQLSyncThread()) - throw Exception("MySQL database in locality_data mode does not support rename table.", ErrorCodes::NOT_IMPLEMENTED); + throw Exception("MaterializeMySQL database not support rename table.", ErrorCodes::NOT_IMPLEMENTED); getNestedDatabase()->renameTable(context, name, to_database, to_name, exchange); } @@ -161,7 +161,7 @@ void DatabaseMaterializeMySQL::renameTable(const Context & context, const String void DatabaseMaterializeMySQL::alterTable(const Context & context, const StorageID & table_id, const StorageInMemoryMetadata & metadata) { if (!MaterializeMySQLSyncThread::isMySQLSyncThread()) - throw Exception("MySQL database in locality_data mode does not support alter table.", ErrorCodes::NOT_IMPLEMENTED); + throw Exception("MaterializeMySQL database not support alter table.", ErrorCodes::NOT_IMPLEMENTED); getNestedDatabase()->alterTable(context, table_id, metadata); } diff --git a/src/Databases/MySQL/MaterializeMySQLSettings.h b/src/Databases/MySQL/MaterializeMySQLSettings.h index 77e8514d473..6f64865afac 100644 --- a/src/Databases/MySQL/MaterializeMySQLSettings.h +++ b/src/Databases/MySQL/MaterializeMySQLSettings.h @@ -14,7 +14,6 @@ class ASTStorage; struct MaterializeMySQLSettings : public SettingsCollection { #define LIST_OF_MATERIALIZE_MODE_SETTINGS(M) \ - M(SettingBool, locality_data, false, "", 0) \ M(SettingUInt64, max_rows_in_buffer, DEFAULT_BLOCK_SIZE, "", 0) \ M(SettingUInt64, max_bytes_in_buffer, DBMS_DEFAULT_BUFFER_SIZE, "", 0) \ M(SettingUInt64, max_rows_in_buffers, DEFAULT_BLOCK_SIZE, "", 0) \