ISSUES-4006 rename locality_data to MaterializeMySQL

This commit is contained in:
zhang2014 2020-07-13 17:42:44 +08:00
parent cee16292a6
commit 8f28df3514
3 changed files with 13 additions and 14 deletions

View File

@ -98,7 +98,7 @@ DatabasePtr DatabaseFactory::getImpl(const ASTCreateQuery & create, const String
#if USE_MYSQL #if USE_MYSQL
else if (engine_name == "MySQL") else if (engine_name == "MySQL" || engine_name == "MaterializeMySQL")
{ {
const ASTFunction * engine = engine_define->engine; const ASTFunction * engine = engine_define->engine;
if (!engine->arguments || engine->arguments->children.size() != 4) 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); 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 mysql_pool = mysqlxx::Pool(mysql_database_name, remote_host_name, mysql_user_name, mysql_user_password, remote_port);
if (engine_name == "MaterializeMySQL")
{
MySQLClient client(remote_host_name, remote_port, mysql_user_name, mysql_user_password);
auto materialize_mode_settings = std::make_unique<MaterializeMySQLSettings>(); auto materialize_mode_settings = std::make_unique<MaterializeMySQLSettings>();
if (engine_define->settings) if (engine_define->settings)
materialize_mode_settings->loadFromQuery(*engine_define); materialize_mode_settings->loadFromQuery(*engine_define);
if (materialize_mode_settings->locality_data)
{
MySQLClient client(remote_host_name, remote_port, mysql_user_name, mysql_user_password);
return std::make_shared<DatabaseMaterializeMySQL>( return std::make_shared<DatabaseMaterializeMySQL>(
context, database_name, metadata_path, engine_define, mysql_database_name, std::move(mysql_pool), std::move(client) context, database_name, metadata_path, engine_define, mysql_database_name, std::move(mysql_pool), std::move(client)
, std::move(materialize_mode_settings)); , std::move(materialize_mode_settings));

View File

@ -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) void DatabaseMaterializeMySQL::createTable(const Context & context, const String & name, const StoragePtr & table, const ASTPtr & query)
{ {
if (!MaterializeMySQLSyncThread::isMySQLSyncThread()) 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); 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) void DatabaseMaterializeMySQL::dropTable(const Context & context, const String & name, bool no_delay)
{ {
if (!MaterializeMySQLSyncThread::isMySQLSyncThread()) 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); 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) void DatabaseMaterializeMySQL::attachTable(const String & name, const StoragePtr & table, const String & relative_table_path)
{ {
if (!MaterializeMySQLSyncThread::isMySQLSyncThread()) 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); 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) StoragePtr DatabaseMaterializeMySQL::detachTable(const String & name)
{ {
if (!MaterializeMySQLSyncThread::isMySQLSyncThread()) 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); 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) void DatabaseMaterializeMySQL::renameTable(const Context & context, const String & name, IDatabase & to_database, const String & to_name, bool exchange)
{ {
if (!MaterializeMySQLSyncThread::isMySQLSyncThread()) 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); 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) void DatabaseMaterializeMySQL::alterTable(const Context & context, const StorageID & table_id, const StorageInMemoryMetadata & metadata)
{ {
if (!MaterializeMySQLSyncThread::isMySQLSyncThread()) 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); getNestedDatabase()->alterTable(context, table_id, metadata);
} }

View File

@ -14,7 +14,6 @@ class ASTStorage;
struct MaterializeMySQLSettings : public SettingsCollection<MaterializeMySQLSettings> struct MaterializeMySQLSettings : public SettingsCollection<MaterializeMySQLSettings>
{ {
#define LIST_OF_MATERIALIZE_MODE_SETTINGS(M) \ #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_rows_in_buffer, DEFAULT_BLOCK_SIZE, "", 0) \
M(SettingUInt64, max_bytes_in_buffer, DBMS_DEFAULT_BUFFER_SIZE, "", 0) \ M(SettingUInt64, max_bytes_in_buffer, DBMS_DEFAULT_BUFFER_SIZE, "", 0) \
M(SettingUInt64, max_rows_in_buffers, DEFAULT_BLOCK_SIZE, "", 0) \ M(SettingUInt64, max_rows_in_buffers, DEFAULT_BLOCK_SIZE, "", 0) \