ClickHouse
30 строк · 754.0 Байт
1#include "GatherUtils.h"
2#include "Selectors.h"
3#include "Algorithms.h"
4
5namespace DB::GatherUtils
6{
7
8namespace
9{
10
11struct ArrayPush : public ArrayAndValueSourceSelectorBySink<ArrayPush>
12{
13template <typename ArraySource, typename ValueSource, typename Sink>
14static void selectArrayAndValueSourceBySink(
15ArraySource && array_source, ValueSource && value_source, Sink && sink, bool push_front)
16{
17if (push_front)
18concat(value_source, array_source, sink);
19else
20concat(array_source, value_source, sink);
21}
22};
23
24}
25
26void push(IArraySource & array_source, IValueSource & value_source, IArraySink & sink, bool push_front)
27{
28ArrayPush::select(sink, array_source, value_source, push_front);
29}
30}
31