mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-18 04:12:19 +00:00
97f2a2213e
* Move some code outside dbms/src folder * Fix paths
83 lines
2.2 KiB
C++
83 lines
2.2 KiB
C++
#include <Storages/StorageInMemoryMetadata.h>
|
|
|
|
namespace DB
|
|
{
|
|
StorageInMemoryMetadata::StorageInMemoryMetadata(
|
|
const ColumnsDescription & columns_,
|
|
const IndicesDescription & indices_,
|
|
const ConstraintsDescription & constraints_)
|
|
: columns(columns_)
|
|
, indices(indices_)
|
|
, constraints(constraints_)
|
|
{
|
|
}
|
|
|
|
StorageInMemoryMetadata::StorageInMemoryMetadata(const StorageInMemoryMetadata & other)
|
|
: columns(other.columns)
|
|
, indices(other.indices)
|
|
, constraints(other.constraints)
|
|
{
|
|
if (other.partition_by_ast)
|
|
partition_by_ast = other.partition_by_ast->clone();
|
|
if (other.order_by_ast)
|
|
order_by_ast = other.order_by_ast->clone();
|
|
if (other.primary_key_ast)
|
|
primary_key_ast = other.primary_key_ast->clone();
|
|
if (other.ttl_for_table_ast)
|
|
ttl_for_table_ast = other.ttl_for_table_ast->clone();
|
|
if (other.sample_by_ast)
|
|
sample_by_ast = other.sample_by_ast->clone();
|
|
if (other.settings_ast)
|
|
settings_ast = other.settings_ast->clone();
|
|
if (other.select)
|
|
select = other.select->clone();
|
|
}
|
|
|
|
StorageInMemoryMetadata & StorageInMemoryMetadata::operator=(const StorageInMemoryMetadata & other)
|
|
{
|
|
if (this == &other)
|
|
return *this;
|
|
|
|
columns = other.columns;
|
|
indices = other.indices;
|
|
constraints = other.constraints;
|
|
|
|
if (other.partition_by_ast)
|
|
partition_by_ast = other.partition_by_ast->clone();
|
|
else
|
|
partition_by_ast.reset();
|
|
|
|
if (other.order_by_ast)
|
|
order_by_ast = other.order_by_ast->clone();
|
|
else
|
|
order_by_ast.reset();
|
|
|
|
if (other.primary_key_ast)
|
|
primary_key_ast = other.primary_key_ast->clone();
|
|
else
|
|
primary_key_ast.reset();
|
|
|
|
if (other.ttl_for_table_ast)
|
|
ttl_for_table_ast = other.ttl_for_table_ast->clone();
|
|
else
|
|
ttl_for_table_ast.reset();
|
|
|
|
if (other.sample_by_ast)
|
|
sample_by_ast = other.sample_by_ast->clone();
|
|
else
|
|
sample_by_ast.reset();
|
|
|
|
if (other.settings_ast)
|
|
settings_ast = other.settings_ast->clone();
|
|
else
|
|
settings_ast.reset();
|
|
|
|
if (other.select)
|
|
select = other.select->clone();
|
|
else
|
|
select.reset();
|
|
|
|
return *this;
|
|
}
|
|
}
|