mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 16:50:48 +00:00
Add AggregateFunctionCombinatorFactory, better names
This commit is contained in:
parent
a98c6d333c
commit
0d940c6137
@ -137,7 +137,7 @@ AggregateFunctionPtr AggregateFunctionFactory::getImpl(
|
||||
throw Exception("Aggregate function combinator '" + combinator->getName() + "' is only for internal usage", ErrorCodes::UNKNOWN_AGGREGATE_FUNCTION);
|
||||
|
||||
if (query_context && query_context->getSettingsRef().log_queries)
|
||||
query_context->addQueryFactoriesInfo(Context::QueryLogFactories::AggregateFunction, combinator->getName());
|
||||
query_context->addQueryFactoriesInfo(Context::QueryLogFactories::AggregateFunctionCombinator, combinator->getName());
|
||||
|
||||
String nested_name = name.substr(0, name.size() - combinator->getName().size());
|
||||
DataTypes nested_types = combinator->transformArguments(argument_types);
|
||||
|
@ -964,11 +964,14 @@ void Context::addQueryFactoriesInfo(QueryLogFactories factory_type, const String
|
||||
case QueryLogFactories::AggregateFunction:
|
||||
query_factories_info.aggregate_functions.emplace(created_object);
|
||||
break;
|
||||
case QueryLogFactories::AggregateFunctionCombinator:
|
||||
query_factories_info.aggregate_function_combinators.emplace(created_object);
|
||||
break;
|
||||
case QueryLogFactories::Database:
|
||||
query_factories_info.databases.emplace(created_object);
|
||||
query_factories_info.database_engines.emplace(created_object);
|
||||
break;
|
||||
case QueryLogFactories::DataType:
|
||||
query_factories_info.data_types.emplace(created_object);
|
||||
query_factories_info.data_type_families.emplace(created_object);
|
||||
break;
|
||||
case QueryLogFactories::Dictionary:
|
||||
query_factories_info.dictionaries.emplace(created_object);
|
||||
|
@ -205,8 +205,9 @@ private:
|
||||
struct QueryFactoriesInfo
|
||||
{
|
||||
std::unordered_set<std::string> aggregate_functions;
|
||||
std::unordered_set<std::string> databases;
|
||||
std::unordered_set<std::string> data_types;
|
||||
std::unordered_set<std::string> aggregate_function_combinators;
|
||||
std::unordered_set<std::string> database_engines;
|
||||
std::unordered_set<std::string> data_type_families;
|
||||
std::unordered_set<std::string> dictionaries;
|
||||
std::unordered_set<std::string> formats;
|
||||
std::unordered_set<std::string> functions;
|
||||
@ -389,6 +390,7 @@ public:
|
||||
enum class QueryLogFactories
|
||||
{
|
||||
AggregateFunction,
|
||||
AggregateFunctionCombinator,
|
||||
Database,
|
||||
DataType,
|
||||
Dictionary,
|
||||
|
@ -98,8 +98,9 @@ Block QueryLogElement::createBlock()
|
||||
{std::make_shared<DataTypeArray>(std::make_shared<DataTypeString>()), "Settings.Values"},
|
||||
|
||||
{std::make_shared<DataTypeArray>(std::make_shared<DataTypeString>()), "used_aggregate_functions"},
|
||||
{std::make_shared<DataTypeArray>(std::make_shared<DataTypeString>()), "used_databases"},
|
||||
{std::make_shared<DataTypeArray>(std::make_shared<DataTypeString>()), "used_data_types"},
|
||||
{std::make_shared<DataTypeArray>(std::make_shared<DataTypeString>()), "used_aggregate_function_combinators"},
|
||||
{std::make_shared<DataTypeArray>(std::make_shared<DataTypeString>()), "used_database_engines"},
|
||||
{std::make_shared<DataTypeArray>(std::make_shared<DataTypeString>()), "used_data_type_families"},
|
||||
{std::make_shared<DataTypeArray>(std::make_shared<DataTypeString>()), "used_dictionaries"},
|
||||
{std::make_shared<DataTypeArray>(std::make_shared<DataTypeString>()), "used_formats"},
|
||||
{std::make_shared<DataTypeArray>(std::make_shared<DataTypeString>()), "used_functions"},
|
||||
@ -200,6 +201,7 @@ void QueryLogElement::appendToBlock(MutableColumns & columns) const
|
||||
|
||||
{
|
||||
auto & column_aggregate_function_factory_objects = typeid_cast<ColumnArray &>(*columns[i++]);
|
||||
auto & column_aggregate_function_combinator_factory_objects = typeid_cast<ColumnArray &>(*columns[i++]);
|
||||
auto & column_database_factory_objects = typeid_cast<ColumnArray &>(*columns[i++]);
|
||||
auto & column_data_type_factory_objects = typeid_cast<ColumnArray &>(*columns[i++]);
|
||||
auto & column_dictionary_factory_objects = typeid_cast<ColumnArray &>(*columns[i++]);
|
||||
@ -221,8 +223,9 @@ void QueryLogElement::appendToBlock(MutableColumns & columns) const
|
||||
};
|
||||
|
||||
fill_column(used_aggregate_functions, column_aggregate_function_factory_objects);
|
||||
fill_column(used_databases, column_database_factory_objects);
|
||||
fill_column(used_data_types, column_data_type_factory_objects);
|
||||
fill_column(used_aggregate_function_combinators, column_aggregate_function_combinator_factory_objects);
|
||||
fill_column(used_database_engines, column_database_factory_objects);
|
||||
fill_column(used_data_type_families, column_data_type_factory_objects);
|
||||
fill_column(used_dictionaries, column_dictionary_factory_objects);
|
||||
fill_column(used_formats, column_format_factory_objects);
|
||||
fill_column(used_functions, column_function_factory_objects);
|
||||
|
@ -59,8 +59,9 @@ struct QueryLogElement
|
||||
std::set<String> query_columns;
|
||||
|
||||
std::unordered_set<String> used_aggregate_functions;
|
||||
std::unordered_set<String> used_databases;
|
||||
std::unordered_set<String> used_data_types;
|
||||
std::unordered_set<String> used_aggregate_function_combinators;
|
||||
std::unordered_set<String> used_database_engines;
|
||||
std::unordered_set<String> used_data_type_families;
|
||||
std::unordered_set<String> used_dictionaries;
|
||||
std::unordered_set<String> used_formats;
|
||||
std::unordered_set<String> used_functions;
|
||||
|
@ -736,8 +736,9 @@ static std::tuple<ASTPtr, BlockIO> executeQueryImpl(
|
||||
|
||||
const auto & factories_info = context.getQueryFactoriesInfo();
|
||||
elem.used_aggregate_functions = factories_info.aggregate_functions;
|
||||
elem.used_databases = factories_info.databases;
|
||||
elem.used_data_types = factories_info.data_types;
|
||||
elem.used_aggregate_function_combinators = factories_info.aggregate_function_combinators;
|
||||
elem.used_database_engines = factories_info.database_engines;
|
||||
elem.used_data_type_families = factories_info.data_type_families;
|
||||
elem.used_dictionaries = factories_info.dictionaries;
|
||||
elem.used_formats = factories_info.formats;
|
||||
elem.used_functions = factories_info.functions;
|
||||
|
@ -1,21 +1,24 @@
|
||||
2 worl \N 50 4950 Nullable(UInt64) 50
|
||||
2 worl \N 50 4950 Nullable(UInt64) 50
|
||||
2 worl [123,1,1] 49 \N 50 4950 Nullable(UInt64) 50
|
||||
2 worl [123,1,1] 49 \N 50 4950 Nullable(UInt64) 50
|
||||
|
||||
arraySort(used_aggregate_functions)
|
||||
['Array','If','OrDefault','OrNull','avg','count','sum','uniq']
|
||||
['avg','count','groupBitAnd','sum','uniq']
|
||||
|
||||
arraySort(used_aggregate_function_combinators)
|
||||
['Array','If','OrDefault','OrNull']
|
||||
|
||||
arraySort(used_table_functions)
|
||||
['numbers']
|
||||
|
||||
arraySort(used_functions)
|
||||
['addDays','cast','modulo','plus','substring','toDate','toDayOfYear','toTypeName']
|
||||
['addDays','array','arrayFlatten','cast','modulo','plus','substring','toDate','toDayOfYear','toTypeName','toWeek']
|
||||
|
||||
arraySort(used_data_types)
|
||||
['Nullable','UInt8']
|
||||
arraySort(used_data_type_families)
|
||||
['Array','Int32','Nullable','String']
|
||||
|
||||
used_databases
|
||||
used_database_engines
|
||||
['Atomic']
|
||||
|
||||
arraySort(used_data_types) used_storages
|
||||
['DateTime','UInt64'] ['Memory']
|
||||
arraySort(used_data_type_families) used_storages
|
||||
['DateTime','Int64'] ['Memory']
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
SELECT uniqArray([1, 1, 2]),
|
||||
SUBSTRING('Hello, world', 7, 5),
|
||||
CAST(arrayJoin([NULL, NULL]) AS Nullable(UInt8)),
|
||||
flatten([[[BIT_AND(123)]], [[mod(3, 2)], [CAST('1' AS INTEGER)]]]),
|
||||
week(toDate('2000-12-05')),
|
||||
CAST(arrayJoin([NULL, NULL]) AS Nullable(TEXT)),
|
||||
avgOrDefaultIf(number, number % 2),
|
||||
sumOrNull(number),
|
||||
toTypeName(sumOrNull(number)),
|
||||
@ -15,6 +17,11 @@ FROM system.query_log WHERE type = 'QueryFinish' AND (query LIKE '%toDate(\'2000
|
||||
ORDER BY query_start_time DESC LIMIT 1 FORMAT TabSeparatedWithNames;
|
||||
SELECT '';
|
||||
|
||||
SELECT arraySort(used_aggregate_function_combinators)
|
||||
FROM system.query_log WHERE type = 'QueryFinish' AND (query LIKE '%toDate(\'2000-12-05\')%')
|
||||
ORDER BY query_start_time DESC LIMIT 1 FORMAT TabSeparatedWithNames;
|
||||
SELECT '';
|
||||
|
||||
SELECT arraySort(used_table_functions)
|
||||
FROM system.query_log WHERE type = 'QueryFinish' AND (query LIKE '%toDate(\'2000-12-05\')%')
|
||||
ORDER BY query_start_time DESC LIMIT 1 FORMAT TabSeparatedWithNames;
|
||||
@ -25,7 +32,7 @@ FROM system.query_log WHERE type = 'QueryFinish' AND (query LIKE '%toDate(\'2000
|
||||
ORDER BY query_start_time DESC LIMIT 1 FORMAT TabSeparatedWithNames;
|
||||
SELECT '';
|
||||
|
||||
SELECT arraySort(used_data_types)
|
||||
SELECT arraySort(used_data_type_families)
|
||||
FROM system.query_log WHERE type = 'QueryFinish' AND (query LIKE '%toDate(\'2000-12-05\')%')
|
||||
ORDER BY query_start_time DESC LIMIT 1 FORMAT TabSeparatedWithNames;
|
||||
SELECT '';
|
||||
@ -34,16 +41,16 @@ DROP database IF EXISTS test_query_log_factories_info1;
|
||||
CREATE database test_query_log_factories_info1 ENGINE=Atomic;
|
||||
|
||||
SYSTEM FLUSH LOGS;
|
||||
SELECT used_databases
|
||||
SELECT used_database_engines
|
||||
FROM system.query_log
|
||||
WHERE type == 'QueryFinish' AND (query LIKE '%database test_query_log_factories_info%')
|
||||
ORDER BY query_start_time DESC LIMIT 1 FORMAT TabSeparatedWithNames;
|
||||
SELECT '';
|
||||
|
||||
CREATE OR REPLACE TABLE test_query_log_factories_info1.memory_table (id UInt64, date DateTime) ENGINE=Memory();
|
||||
CREATE OR REPLACE TABLE test_query_log_factories_info1.memory_table (id BIGINT, date DateTime) ENGINE=Memory();
|
||||
|
||||
SYSTEM FLUSH LOGS;
|
||||
SELECT arraySort(used_data_types), used_storages
|
||||
SELECT arraySort(used_data_type_families), used_storages
|
||||
FROM system.query_log
|
||||
WHERE type == 'QueryFinish' AND (query LIKE '%TABLE test%')
|
||||
ORDER BY query_start_time DESC LIMIT 1 FORMAT TabSeparatedWithNames;
|
||||
|
Loading…
Reference in New Issue
Block a user