mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-11 08:52:06 +00:00
495c6e03aa
* Replace all Context references with std::weak_ptr * Fix shared context captured by value * Fix build * Fix Context with named sessions * Fix copy context * Fix gcc build * Merge with master and fix build * Fix gcc-9 build
37 lines
881 B
C++
37 lines
881 B
C++
#pragma once
|
|
|
|
#include <Core/Names.h>
|
|
#include <Core/Block.h>
|
|
#include <Interpreters/Context_fwd.h>
|
|
|
|
|
|
namespace DB
|
|
{
|
|
|
|
class IFunctionOverloadResolver;
|
|
using FunctionOverloadResolverPtr = std::shared_ptr<IFunctionOverloadResolver>;
|
|
|
|
class ArrayJoinAction
|
|
{
|
|
public:
|
|
NameSet columns;
|
|
bool is_left = false;
|
|
bool is_unaligned = false;
|
|
|
|
/// For unaligned [LEFT] ARRAY JOIN
|
|
FunctionOverloadResolverPtr function_length;
|
|
FunctionOverloadResolverPtr function_greatest;
|
|
FunctionOverloadResolverPtr function_arrayResize;
|
|
|
|
/// For LEFT ARRAY JOIN.
|
|
FunctionOverloadResolverPtr function_builder;
|
|
|
|
ArrayJoinAction(const NameSet & array_joined_columns_, bool array_join_is_left, ContextPtr context);
|
|
void prepare(ColumnsWithTypeAndName & sample) const;
|
|
void execute(Block & block);
|
|
};
|
|
|
|
using ArrayJoinActionPtr = std::shared_ptr<ArrayJoinAction>;
|
|
|
|
}
|