mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-03 21:12:28 +00:00
Remove one template
This commit is contained in:
parent
9bada70f45
commit
8b5ccb4735
@ -2609,8 +2609,9 @@ void NO_INLINE Aggregator::mergeDataNullKey(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Method, bool use_compiled_functions, bool prefetch, typename Table>
|
template <typename Method, bool prefetch, typename Table>
|
||||||
void NO_INLINE Aggregator::mergeDataImpl(Table & table_dst, Table & table_src, Arena * arena) const
|
void NO_INLINE
|
||||||
|
Aggregator::mergeDataImpl(Table & table_dst, Table & table_src, Arena * arena, bool use_compiled_functions [[maybe_unused]]) const
|
||||||
{
|
{
|
||||||
if constexpr (Method::low_cardinality_optimization || Method::one_key_nullable_optimization)
|
if constexpr (Method::low_cardinality_optimization || Method::one_key_nullable_optimization)
|
||||||
mergeDataNullKey<Method, Table>(table_dst, table_src, arena);
|
mergeDataNullKey<Method, Table>(table_dst, table_src, arena);
|
||||||
@ -2637,7 +2638,7 @@ void NO_INLINE Aggregator::mergeDataImpl(Table & table_dst, Table & table_src, A
|
|||||||
table_src.clearAndShrink();
|
table_src.clearAndShrink();
|
||||||
|
|
||||||
#if USE_EMBEDDED_COMPILER
|
#if USE_EMBEDDED_COMPILER
|
||||||
if constexpr (use_compiled_functions)
|
if (use_compiled_functions)
|
||||||
{
|
{
|
||||||
const auto & compiled_functions = compiled_aggregate_functions_holder->compiled_aggregate_functions;
|
const auto & compiled_functions = compiled_aggregate_functions_holder->compiled_aggregate_functions;
|
||||||
compiled_functions.merge_aggregate_states_function(dst_places.data(), src_places.data(), dst_places.size());
|
compiled_functions.merge_aggregate_states_function(dst_places.data(), src_places.data(), dst_places.size());
|
||||||
@ -2787,26 +2788,16 @@ void NO_INLINE Aggregator::mergeSingleLevelDataImpl(
|
|||||||
|
|
||||||
if (!no_more_keys)
|
if (!no_more_keys)
|
||||||
{
|
{
|
||||||
|
bool use_compiled_functions = false;
|
||||||
#if USE_EMBEDDED_COMPILER
|
#if USE_EMBEDDED_COMPILER
|
||||||
if (compiled_aggregate_functions_holder)
|
use_compiled_functions = compiled_aggregate_functions_holder != nullptr;
|
||||||
{
|
|
||||||
if (prefetch)
|
|
||||||
mergeDataImpl<Method, true, true>(
|
|
||||||
getDataVariant<Method>(*res).data, getDataVariant<Method>(current).data, res->aggregates_pool);
|
|
||||||
else
|
|
||||||
mergeDataImpl<Method, true, false>(
|
|
||||||
getDataVariant<Method>(*res).data, getDataVariant<Method>(current).data, res->aggregates_pool);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif
|
#endif
|
||||||
{
|
|
||||||
if (prefetch)
|
if (prefetch)
|
||||||
mergeDataImpl<Method, false, true>(
|
mergeDataImpl<Method, true>(
|
||||||
getDataVariant<Method>(*res).data, getDataVariant<Method>(current).data, res->aggregates_pool);
|
getDataVariant<Method>(*res).data, getDataVariant<Method>(current).data, res->aggregates_pool, use_compiled_functions);
|
||||||
else
|
else
|
||||||
mergeDataImpl<Method, false, false>(
|
mergeDataImpl<Method, false>(
|
||||||
getDataVariant<Method>(*res).data, getDataVariant<Method>(current).data, res->aggregates_pool);
|
getDataVariant<Method>(*res).data, getDataVariant<Method>(current).data, res->aggregates_pool, use_compiled_functions);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (res->without_key)
|
else if (res->without_key)
|
||||||
{
|
{
|
||||||
@ -2851,26 +2842,22 @@ void NO_INLINE Aggregator::mergeBucketImpl(
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
AggregatedDataVariants & current = *data[result_num];
|
AggregatedDataVariants & current = *data[result_num];
|
||||||
|
bool use_compiled_functions = false;
|
||||||
#if USE_EMBEDDED_COMPILER
|
#if USE_EMBEDDED_COMPILER
|
||||||
if (compiled_aggregate_functions_holder)
|
use_compiled_functions = compiled_aggregate_functions_holder != nullptr;
|
||||||
{
|
|
||||||
if (prefetch)
|
|
||||||
mergeDataImpl<Method, true, true>(
|
|
||||||
getDataVariant<Method>(*res).data.impls[bucket], getDataVariant<Method>(current).data.impls[bucket], arena);
|
|
||||||
else
|
|
||||||
mergeDataImpl<Method, true, false>(
|
|
||||||
getDataVariant<Method>(*res).data.impls[bucket], getDataVariant<Method>(current).data.impls[bucket], arena);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif
|
#endif
|
||||||
{
|
|
||||||
if (prefetch)
|
if (prefetch)
|
||||||
mergeDataImpl<Method, false, true>(
|
mergeDataImpl<Method, true>(
|
||||||
getDataVariant<Method>(*res).data.impls[bucket], getDataVariant<Method>(current).data.impls[bucket], arena);
|
getDataVariant<Method>(*res).data.impls[bucket],
|
||||||
|
getDataVariant<Method>(current).data.impls[bucket],
|
||||||
|
arena,
|
||||||
|
use_compiled_functions);
|
||||||
else
|
else
|
||||||
mergeDataImpl<Method, false, false>(
|
mergeDataImpl<Method, false>(
|
||||||
getDataVariant<Method>(*res).data.impls[bucket], getDataVariant<Method>(current).data.impls[bucket], arena);
|
getDataVariant<Method>(*res).data.impls[bucket],
|
||||||
}
|
getDataVariant<Method>(current).data.impls[bucket],
|
||||||
|
arena,
|
||||||
|
use_compiled_functions);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1429,8 +1429,8 @@ private:
|
|||||||
Arena * arena) const;
|
Arena * arena) const;
|
||||||
|
|
||||||
/// Merge data from hash table `src` into `dst`.
|
/// Merge data from hash table `src` into `dst`.
|
||||||
template <typename Method, bool use_compiled_functions, bool prefetch, typename Table>
|
template <typename Method, bool prefetch, typename Table>
|
||||||
void mergeDataImpl(Table & table_dst, Table & table_src, Arena * arena) const;
|
void mergeDataImpl(Table & table_dst, Table & table_src, Arena * arena, bool use_compiled_functions) const;
|
||||||
|
|
||||||
/// Merge data from hash table `src` into `dst`, but only for keys that already exist in dst. In other cases, merge the data into `overflows`.
|
/// Merge data from hash table `src` into `dst`, but only for keys that already exist in dst. In other cases, merge the data into `overflows`.
|
||||||
template <typename Method, typename Table>
|
template <typename Method, typename Table>
|
||||||
|
Loading…
Reference in New Issue
Block a user