提交 09d22da9 编写于 作者: A Alexey Milovidov

Miscellaneous #2687

上级 4a975c9d
......@@ -22,12 +22,14 @@ public:
/// Example: if the name is 'avgIf', it will return combinator -If.
AggregateFunctionCombinatorPtr tryFindSuffix(const std::string & name) const;
const std::unordered_map<std::string, AggregateFunctionCombinatorPtr> & getAllAggregateFunctionCombinators() const {
const Dict & getAllAggregateFunctionCombinators() const
{
return dict;
}
private:
std::unordered_map<std::string, AggregateFunctionCombinatorPtr> dict;
using Dict = std::unordered_map<std::string, AggregateFunctionCombinatorPtr>;
Dict dict;
};
}
......@@ -44,7 +44,8 @@ public:
/// Register a simple data type, that have no parameters.
void registerSimpleDataType(const String & name, SimpleCreator creator, CaseSensitiveness case_sensitiveness = CaseSensitive);
const DataTypesDictionary & getAllDataTypes() const {
const DataTypesDictionary & getAllDataTypes() const
{
return data_types;
}
......
......@@ -58,7 +58,8 @@ public:
void registerInputFormat(const String & name, InputCreator input_creator);
void registerOutputFormat(const String & name, OutputCreator output_creator);
const FormatsDictionary & getAllFormats() const {
const FormatsDictionary & getAllFormats() const
{
return dict;
}
......
......@@ -7,7 +7,12 @@
namespace DB
{
class Context;
/** Base class for system tables whose all columns have String type.
*/
template <typename Self>
class IStorageSystemWithStringColumns : public IStorage
{
......@@ -15,7 +20,7 @@ protected:
virtual void fillData(MutableColumns & res_columns) const = 0;
public:
IStorageSystemWithStringColumns (const String & name_) : name(name_)
IStorageSystemWithStringColumns(const String & name_) : name(name_)
{
auto names = Self::getColumnNames();
NamesAndTypesList name_list;
......@@ -41,13 +46,15 @@ public:
check(column_names);
processed_stage = QueryProcessingStage::FetchColumns;
MutableColumns res_columns = getSampleBlock().cloneEmptyColumns();
Block sample_block = getSampleBlock();
MutableColumns res_columns = sample_block.cloneEmptyColumns();
fillData(res_columns);
return BlockInputStreams(1, std::make_shared<OneBlockInputStream>(getSampleBlock().cloneWithColumns(std::move(res_columns))));
return BlockInputStreams(1, std::make_shared<OneBlockInputStream>(sample_block.cloneWithColumns(std::move(res_columns))));
}
private:
const String name;
};
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册