提交 2b8a4cf0 编写于 作者: A Anastasiya Tsarkova

Add ALTER for null storage tables.

上级 68b752bf
#include <Storages/StorageNull.h>
#include <Storages/StorageFactory.h>
#include <Interpreters/InterpreterAlterQuery.h>
#include <Databases/IDatabase.h>
#include <IO/WriteHelpers.h>
......@@ -27,4 +30,15 @@ void registerStorageNull(StorageFactory & factory)
});
}
void StorageNull::alter(const AlterCommands & params, const String & database_name, const String & table_name, const Context & context)
{
auto lock = lockStructureForAlter(__PRETTY_FUNCTION__);
params.apply(columns, materialized_columns, alias_columns, column_defaults);
context.getDatabase(database_name)->alterTable(
context, table_name,
columns, materialized_columns, alias_columns, column_defaults, {});
}
}
......@@ -43,6 +43,8 @@ public:
name = new_table_name;
}
void alter(const AlterCommands & params, const String & database_name, const String & table_name, const Context & context) override;
private:
String name;
NamesAndTypesList columns;
......
DROP TABLE IF EXISTS test.null;
CREATE TABLE test.null (x UInt8) ENGINE = Null;
DESCRIBE TABLE test.null;
ALTER TABLE test.null ADD COLUMN y String, MODIFY COLUMN x Int64 DEFAULT toInt64(y);
DESCRIBE TABLE test.null;
DROP TABLE test.null;
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册