mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-23 16:12:01 +00:00
Database engines: development [#METR-19997].
This commit is contained in:
parent
ad1ac0d8df
commit
073c0de63e
@ -39,7 +39,7 @@ public:
|
||||
void attachTable(const String & table_name, const StoragePtr & table) override;
|
||||
StoragePtr detachTable(const String & table_name) override;
|
||||
|
||||
void renameTable(const String & table_name, IDatabase & to_database, const String & to_table_name) override;
|
||||
void renameTable(const Context & context, const String & table_name, IDatabase & to_database, const String & to_table_name) override;
|
||||
|
||||
ASTPtr getCreateQuery(const String & table_name) const override;
|
||||
|
||||
|
@ -66,7 +66,7 @@ public:
|
||||
virtual StoragePtr detachTable(const String & name) = 0;
|
||||
|
||||
/// Переименовать таблицу и, возможно, переместить таблицу в другую БД.
|
||||
virtual void renameTable(const String & name, IDatabase & to_database, const String & to_name) = 0;
|
||||
virtual void renameTable(const Context & context, const String & name, IDatabase & to_database, const String & to_name) = 0;
|
||||
|
||||
/// Получить запрос CREATE TABLE для таблицы. Может выдавать информацию и для detached таблиц, для которых есть метаданные.
|
||||
virtual ASTPtr getCreateQuery(const String & name) const = 0;
|
||||
|
@ -442,7 +442,8 @@ static ASTPtr getCreateQueryImpl(const String & path, const String & table_name)
|
||||
}
|
||||
|
||||
|
||||
void DatabaseOrdinary::renameTable(const String & table_name, IDatabase & to_database, const String & to_table_name)
|
||||
void DatabaseOrdinary::renameTable(
|
||||
const Context & context, const String & table_name, IDatabase & to_database, const String & to_table_name)
|
||||
{
|
||||
DatabaseOrdinary * to_database_concrete = typeid_cast<DatabaseOrdinary *>(&to_database);
|
||||
|
||||
@ -457,7 +458,7 @@ void DatabaseOrdinary::renameTable(const String & table_name, IDatabase & to_dat
|
||||
/// Уведомляем таблицу о том, что она переименовывается. Если таблица не поддерживает переименование - кинется исключение.
|
||||
try
|
||||
{
|
||||
table->rename(path + "data/" + escapeForFileName(to_database_concrete->name) + "/",
|
||||
table->rename(context.getPath() + "/data/" + escapeForFileName(to_database_concrete->name) + "/",
|
||||
to_database_concrete->name,
|
||||
to_table_name);
|
||||
}
|
||||
|
@ -102,7 +102,7 @@ BlockIO InterpreterRenameQuery::execute()
|
||||
context.assertTableDoesntExist(elem.to_database_name, elem.to_table_name);
|
||||
|
||||
context.getDatabase(elem.from_database_name)->renameTable(
|
||||
elem.from_table_name, *context.getDatabase(elem.to_database_name), elem.to_table_name);
|
||||
context, elem.from_table_name, *context.getDatabase(elem.to_database_name), elem.to_table_name);
|
||||
}
|
||||
|
||||
return {};
|
||||
|
Loading…
Reference in New Issue
Block a user