提交 993a5e44 编写于 作者: A Alexey Milovidov 提交者: alexey-milovidov

Inverted dependencies in StorageFactory (continued) [#CLICKHOUSE-2].

上级 ffca152c
......@@ -90,14 +90,6 @@ static void checkCreationIsAllowed(const String & base_path, const String & path
ErrorCodes::DATABASE_ACCESS_DENIED);
}
StoragePtr StorageCatBoostPool::create(const Context & context,
const String & column_description_file_name,
const String & data_description_file_name)
{
return ext::shared_ptr_helper<StorageCatBoostPool>::create(
context, column_description_file_name, data_description_file_name);
}
StorageCatBoostPool::StorageCatBoostPool(const Context & context,
String column_description_file_name_,
......
......@@ -7,12 +7,9 @@
namespace DB
{
class StorageCatBoostPool : private ext::shared_ptr_helper<StorageCatBoostPool>, public IStorage
class StorageCatBoostPool : public ext::shared_ptr_helper<StorageCatBoostPool>, public IStorage
{
public:
static StoragePtr create(const Context & context,
const String & column_description_file_name, const String & data_description_file_name);
std::string getName() const override { return "CatBoostPool"; }
std::string getTableName() const override { return table_name; }
......
......@@ -129,25 +129,6 @@ void initializeFileNamesIncrement(const std::string & path, SimpleIncrement & in
StorageDistributed::~StorageDistributed() = default;
StorageDistributed::StorageDistributed(
const std::string & name_,
const NamesAndTypesList & columns_,
const String & remote_database_,
const String & remote_table_,
const String & cluster_name_,
const Context & context_,
const ASTPtr & sharding_key_,
const String & data_path_)
: name(name_), columns(columns_),
remote_database(remote_database_), remote_table(remote_table_),
context(context_), cluster_name(cluster_name_), has_sharding_key(sharding_key_),
sharding_key_expr(sharding_key_ ? ExpressionAnalyzer(sharding_key_, context, nullptr, columns).getActions(false) : nullptr),
sharding_key_column_name(sharding_key_ ? sharding_key_->getColumnName() : String{}),
path(data_path_.empty() ? "" : (data_path_ + escapeForFileName(name) + '/'))
{
}
StorageDistributed::StorageDistributed(
const std::string & name_,
const NamesAndTypesList & columns_,
......@@ -180,8 +161,8 @@ StoragePtr StorageDistributed::createWithOwnCluster(
const Context & context_)
{
auto res = ext::shared_ptr_helper<StorageDistributed>::create(
name_, columns_, remote_database_,
remote_table_, String{}, context_);
name_, columns_, NamesAndTypesList(), NamesAndTypesList(), ColumnDefaults(),
remote_database_, remote_table_, String{}, context_, ASTPtr(), String());
res->owned_cluster = owned_cluster_;
......
......@@ -128,16 +128,6 @@ public:
SimpleIncrement file_names_increment;
protected:
StorageDistributed(
const std::string & name_,
const NamesAndTypesList & columns_,
const String & remote_database_,
const String & remote_table_,
const String & cluster_name_,
const Context & context_,
const ASTPtr & sharding_key_ = nullptr,
const String & data_path_ = String{});
StorageDistributed(
const std::string & name_,
const NamesAndTypesList & columns_,
......@@ -148,8 +138,8 @@ protected:
const String & remote_table_,
const String & cluster_name_,
const Context & context_,
const ASTPtr & sharding_key_ = nullptr,
const String & data_path_ = String{});
const ASTPtr & sharding_key_,
const String & data_path_);
};
}
......@@ -286,7 +286,7 @@ void registerStorageStripeLog(StorageFactory & factory)
return StorageStripeLog::create(
args.data_path, args.table_name, args.columns,
args.materialized_columns, args.alias_columns, args.column_defaults,
args.context.getSettings().max_compress_block_size);
args.attach, args.context.getSettings().max_compress_block_size);
});
}
......
......@@ -74,7 +74,7 @@ protected:
const NamesAndTypesList & alias_columns_,
const ColumnDefaults & column_defaults_,
bool attach,
size_t max_compress_block_size_ = DEFAULT_MAX_COMPRESS_BLOCK_SIZE);
size_t max_compress_block_size_);
};
}
......@@ -403,7 +403,7 @@ bool StorageTinyLog::checkData() const
}
void registerTinyLog(StorageFactory & factory)
void registerStorageTinyLog(StorageFactory & factory)
{
factory.registerStorage("TinyLog", [](const StorageFactory::Arguments & args)
{
......@@ -415,7 +415,7 @@ void registerTinyLog(StorageFactory & factory)
return StorageTinyLog::create(
args.data_path, args.table_name, args.columns,
args.materialized_columns, args.alias_columns, args.column_defaults,
args.context.getSettings().max_compress_block_size);
args.attach, args.context.getSettings().max_compress_block_size);
});
}
......
......@@ -77,7 +77,7 @@ protected:
const NamesAndTypesList & alias_columns_,
const ColumnDefaults & column_defaults_,
bool attach,
size_t max_compress_block_size_ = DEFAULT_MAX_COMPRESS_BLOCK_SIZE);
size_t max_compress_block_size_);
};
}
drop table if exists aliases_test;
drop table if exists test.aliases_test;
create table aliases_test (
create table test.aliases_test (
date Date, id UInt64,
array default ['zero','one','two'],
d1 default array,
......@@ -11,104 +11,104 @@ a4 alias arrayMap(x -> toString(x), range(3)), a5 alias a4, a6 alias a5,
`struct.a4` alias arrayMap(x -> toString(x), range(3)), `struct.a5` alias struct.a4, `struct.a6` alias struct.a5
) engine=MergeTree(date, id, 1);
insert into aliases_test (id) values (0);
insert into test.aliases_test (id) values (0);
select '-- Ensure ALIAS columns are not selected by asterisk';
select * from aliases_test;
select * from test.aliases_test;
select '-- select DEFAULT and ALIAS arrays';
select d1, a1, a2, a3, a4, a5, a6 from aliases_test;
select d1, a1, a2, a3, a4, a5, a6 from test.aliases_test;
select '-- select DEFAULT and ALIAS nested columns';
select struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from aliases_test;
select struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from test.aliases_test;
select d1, a1 from aliases_test array join d1, a1;
select d1, a1 from aliases_test array join d1, a1 as a2;
select d1, a1 from aliases_test array join d1 as d2, a1;
select d1, a1 from test.aliases_test array join d1, a1;
select d1, a1 from test.aliases_test array join d1, a1 as a2;
select d1, a1 from test.aliases_test array join d1 as d2, a1;
select '-- array join, but request the original columns';
select d1, a1 from aliases_test array join d1 as d2, a1 as a2;
select d1, a1 from test.aliases_test array join d1 as d2, a1 as a2;
select '-- array join, do not use the result';
select array from aliases_test array join d1, a1;
select array from aliases_test array join d1 as d2, a1 as a1;
select array from test.aliases_test array join d1, a1;
select array from test.aliases_test array join d1 as d2, a1 as a1;
select '-- select DEFAULT and ALIAS arrays, array joining one at a time';
select array, d1, a1, a2, a3, a4, a5, a6 from aliases_test array join d1;
select array, d1, a1, a2, a3, a4, a5, a6 from aliases_test array join a1;
select array, d1, a1, a2, a3, a4, a5, a6 from aliases_test array join a2;
select array, d1, a1, a2, a3, a4, a5, a6 from aliases_test array join a3;
select array, d1, a1, a2, a3, a4, a5, a6 from aliases_test array join a4;
select array, d1, a1, a2, a3, a4, a5, a6 from aliases_test array join a5;
select array, d1, a1, a2, a3, a4, a5, a6 from aliases_test array join a6;
select array, d1, a1, a2, a3, a4, a5, a6 from test.aliases_test array join d1;
select array, d1, a1, a2, a3, a4, a5, a6 from test.aliases_test array join a1;
select array, d1, a1, a2, a3, a4, a5, a6 from test.aliases_test array join a2;
select array, d1, a1, a2, a3, a4, a5, a6 from test.aliases_test array join a3;
select array, d1, a1, a2, a3, a4, a5, a6 from test.aliases_test array join a4;
select array, d1, a1, a2, a3, a4, a5, a6 from test.aliases_test array join a5;
select array, d1, a1, a2, a3, a4, a5, a6 from test.aliases_test array join a6;
select '-- select DEFAULT and ALIAS arrays, array joining one at a time and aliasing result with original name';
select array, d1, a1, a2, a3, a4, a5, a6 from aliases_test array join d1 as d1;
select array, d1, a1, a2, a3, a4, a5, a6 from aliases_test array join a1 as a1;
select array, d1, a1, a2, a3, a4, a5, a6 from aliases_test array join a2 as a2;
select array, d1, a1, a2, a3, a4, a5, a6 from aliases_test array join a3 as a3;
select array, d1, a1, a2, a3, a4, a5, a6 from aliases_test array join a4 as a4;
select array, d1, a1, a2, a3, a4, a5, a6 from aliases_test array join a5 as a5;
select array, d1, a1, a2, a3, a4, a5, a6 from aliases_test array join a6 as a6;
select array, d1, a1, a2, a3, a4, a5, a6 from test.aliases_test array join d1 as d1;
select array, d1, a1, a2, a3, a4, a5, a6 from test.aliases_test array join a1 as a1;
select array, d1, a1, a2, a3, a4, a5, a6 from test.aliases_test array join a2 as a2;
select array, d1, a1, a2, a3, a4, a5, a6 from test.aliases_test array join a3 as a3;
select array, d1, a1, a2, a3, a4, a5, a6 from test.aliases_test array join a4 as a4;
select array, d1, a1, a2, a3, a4, a5, a6 from test.aliases_test array join a5 as a5;
select array, d1, a1, a2, a3, a4, a5, a6 from test.aliases_test array join a6 as a6;
select '-- select DEFAULT and ALIAS arrays and array join result, aliased as `joined`';
select array, d1, a1, a2, a3, a4, a5, a6, joined from aliases_test array join d1 as joined;
select array, d1, a1, a2, a3, a4, a5, a6, joined from aliases_test array join a1 as joined;
select array, d1, a1, a2, a3, a4, a5, a6, joined from aliases_test array join a2 as joined;
select array, d1, a1, a2, a3, a4, a5, a6, joined from aliases_test array join a3 as joined;
select array, d1, a1, a2, a3, a4, a5, a6, joined from aliases_test array join a4 as joined;
select array, d1, a1, a2, a3, a4, a5, a6, joined from aliases_test array join a5 as joined;
select array, d1, a1, a2, a3, a4, a5, a6, joined from aliases_test array join a6 as joined;
select array, d1, a1, a2, a3, a4, a5, a6, joined from test.aliases_test array join d1 as joined;
select array, d1, a1, a2, a3, a4, a5, a6, joined from test.aliases_test array join a1 as joined;
select array, d1, a1, a2, a3, a4, a5, a6, joined from test.aliases_test array join a2 as joined;
select array, d1, a1, a2, a3, a4, a5, a6, joined from test.aliases_test array join a3 as joined;
select array, d1, a1, a2, a3, a4, a5, a6, joined from test.aliases_test array join a4 as joined;
select array, d1, a1, a2, a3, a4, a5, a6, joined from test.aliases_test array join a5 as joined;
select array, d1, a1, a2, a3, a4, a5, a6, joined from test.aliases_test array join a6 as joined;
select '-- select DEFAULT and ALIAS nested columns, array joining one at a time';
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from aliases_test array join struct.d1;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from aliases_test array join struct.a1;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from aliases_test array join struct.a2;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from aliases_test array join struct.a3;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from aliases_test array join struct.a4;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from aliases_test array join struct.a5;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from aliases_test array join struct.a6;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from test.aliases_test array join struct.d1;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from test.aliases_test array join struct.a1;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from test.aliases_test array join struct.a2;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from test.aliases_test array join struct.a3;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from test.aliases_test array join struct.a4;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from test.aliases_test array join struct.a5;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from test.aliases_test array join struct.a6;
select '-- select DEFAULT and ALIAS nested columns, array joining one at a time and aliasing result with original name';
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from aliases_test array join struct.d1 as `struct.d1`;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from aliases_test array join struct.a1 as `struct.a1`;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from aliases_test array join struct.a2 as `struct.a2`;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from aliases_test array join struct.a3 as `struct.a3`;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from aliases_test array join struct.a4 as `struct.a4`;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from aliases_test array join struct.a5 as `struct.a5`;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from aliases_test array join struct.a6 as `struct.a6`;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from test.aliases_test array join struct.d1 as `struct.d1`;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from test.aliases_test array join struct.a1 as `struct.a1`;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from test.aliases_test array join struct.a2 as `struct.a2`;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from test.aliases_test array join struct.a3 as `struct.a3`;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from test.aliases_test array join struct.a4 as `struct.a4`;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from test.aliases_test array join struct.a5 as `struct.a5`;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from test.aliases_test array join struct.a6 as `struct.a6`;
select '-- select DEFAULT and ALIAS nested columns and array join result, aliased as `joined`';
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6, joined from aliases_test array join struct.d1 as joined;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6, joined from aliases_test array join struct.a1 as joined;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6, joined from aliases_test array join struct.a2 as joined;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6, joined from aliases_test array join struct.a3 as joined;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6, joined from aliases_test array join struct.a4 as joined;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6, joined from aliases_test array join struct.a5 as joined;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6, joined from aliases_test array join struct.a6 as joined;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6, joined from test.aliases_test array join struct.d1 as joined;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6, joined from test.aliases_test array join struct.a1 as joined;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6, joined from test.aliases_test array join struct.a2 as joined;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6, joined from test.aliases_test array join struct.a3 as joined;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6, joined from test.aliases_test array join struct.a4 as joined;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6, joined from test.aliases_test array join struct.a5 as joined;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6, joined from test.aliases_test array join struct.a6 as joined;
select '-- array join whole nested table';
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from aliases_test array join struct;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from test.aliases_test array join struct;
select '-- array join whole nested table not using the result';
select array from aliases_test array join struct;
select array from test.aliases_test array join struct;
select '-- array join whole nested table, aliasing with original name';
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from aliases_test array join struct as struct;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from test.aliases_test array join struct as struct;
select '-- array join whole nested table, aliasing with original name not using the result';
select array from aliases_test array join struct as struct;
select array from test.aliases_test array join struct as struct;
select '-- array join whole nested table, aliasing as `class`';
select array, class.d1, class.a1, class.a2, class.a3, class.a4, class.a5, class.a6 from aliases_test array join struct as class;
select array, class.d1, class.a1, class.a2, class.a3, class.a4, class.a5, class.a6 from test.aliases_test array join struct as class;
select '-- array join whole nested table, aliasing as `class` and not using the result';
select array from aliases_test array join struct as class;
select array from test.aliases_test array join struct as class;
select '-- array join whole nested table, aliasing as `class` but requesting the original columns';
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from aliases_test array join struct as class;
select array, struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6 from test.aliases_test array join struct as class;
select array,
struct.d1, struct.a1, struct.a2, struct.a3, struct.a4, struct.a5, struct.a6,
class.d1, class.a1, class.a2, class.a3, class.a4, class.a5, class.a6
from aliases_test array join struct as class;
from test.aliases_test array join struct as class;
drop table aliases_test;
drop table test.aliases_test;
drop table if exists aliases_test;
drop table if exists test.aliases_test;
create table aliases_test (date default today(), id default rand(), array default [0, 1, 2]) engine=MergeTree(date, id, 1);
create table test.aliases_test (date default today(), id default rand(), array default [0, 1, 2]) engine=MergeTree(date, id, 1);
insert into aliases_test (id) values (0);
select array from aliases_test;
insert into test.aliases_test (id) values (0);
select array from test.aliases_test;
alter table aliases_test modify column array alias [0, 1, 2];
select array from aliases_test;
alter table test.aliases_test modify column array alias [0, 1, 2];
select array from test.aliases_test;
alter table aliases_test modify column array default [0, 1, 2];
select array from aliases_test;
alter table test.aliases_test modify column array default [0, 1, 2];
select array from test.aliases_test;
alter table aliases_test add column struct.key default [0, 1, 2], add column struct.value default array;
select struct.key, struct.value from aliases_test;
alter table test.aliases_test add column struct.key default [0, 1, 2], add column struct.value default array;
select struct.key, struct.value from test.aliases_test;
alter table aliases_test modify column struct.value alias array;
select struct.key, struct.value from aliases_test;
alter table test.aliases_test modify column struct.value alias array;
select struct.key, struct.value from test.aliases_test;
select struct.key, struct.value from aliases_test array join struct;
select struct.key, struct.value from aliases_test array join struct as struct;
select class.key, class.value from aliases_test array join struct as class;
select struct.key, struct.value from test.aliases_test array join struct;
select struct.key, struct.value from test.aliases_test array join struct as struct;
select class.key, class.value from test.aliases_test array join struct as class;
drop table aliases_test;
drop table test.aliases_test;
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册