mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-22 07:31:57 +00:00
partial_merge_join_optimisations -> partial_merge_join_optimizations
This commit is contained in:
parent
4cb53093a0
commit
baaf0a7c5b
@ -292,7 +292,7 @@ struct Settings : public SettingsCollection<Settings>
|
||||
M(SettingOverflowMode, join_overflow_mode, OverflowMode::THROW, "What to do when the limit is exceeded.") \
|
||||
M(SettingBool, join_any_take_last_row, false, "When disabled (default) ANY JOIN will take the first found row for a key. When enabled, it will take the last row seen if there are multiple rows for the same key.") \
|
||||
M(SettingBool, partial_merge_join, false, "Use partial merge join instead of hash join for LEFT and INNER JOINs.") \
|
||||
M(SettingBool, partial_merge_join_optimisations, false, "Enable optimisations in partial merge join") \
|
||||
M(SettingBool, partial_merge_join_optimizations, false, "Enable optimisations in partial merge join") \
|
||||
M(SettingUInt64, partial_merge_join_rows_in_right_blocks, 10000, "Split right-hand joining data in blocks of specified size.") \
|
||||
\
|
||||
M(SettingUInt64, max_rows_to_transfer, 0, "Maximum size (in rows) of the transmitted external table obtained when the GLOBAL IN/JOIN section is executed.") \
|
||||
|
@ -27,7 +27,7 @@ AnalyzedJoin::AnalyzedJoin(const Settings & settings)
|
||||
: size_limits(SizeLimits{settings.max_rows_in_join, settings.max_bytes_in_join, settings.join_overflow_mode})
|
||||
, join_use_nulls(settings.join_use_nulls)
|
||||
, partial_merge_join(settings.partial_merge_join)
|
||||
, partial_merge_join_optimisations(settings.partial_merge_join_optimisations)
|
||||
, partial_merge_join_optimizations(settings.partial_merge_join_optimizations)
|
||||
, partial_merge_join_rows_in_right_blocks(settings.partial_merge_join_rows_in_right_blocks)
|
||||
{}
|
||||
|
||||
|
@ -40,7 +40,7 @@ class AnalyzedJoin
|
||||
const SizeLimits size_limits;
|
||||
const bool join_use_nulls;
|
||||
const bool partial_merge_join;
|
||||
const bool partial_merge_join_optimisations;
|
||||
const bool partial_merge_join_optimizations;
|
||||
const size_t partial_merge_join_rows_in_right_blocks;
|
||||
|
||||
Names key_names_left;
|
||||
@ -68,7 +68,7 @@ public:
|
||||
: size_limits(limits)
|
||||
, join_use_nulls(use_nulls)
|
||||
, partial_merge_join(false)
|
||||
, partial_merge_join_optimisations(false)
|
||||
, partial_merge_join_optimizations(false)
|
||||
, partial_merge_join_rows_in_right_blocks(0)
|
||||
, key_names_right(key_names_right_)
|
||||
{
|
||||
@ -83,7 +83,7 @@ public:
|
||||
bool forceNullableRight() const { return join_use_nulls && isLeftOrFull(table_join.kind); }
|
||||
bool forceNullableLeft() const { return join_use_nulls && isRightOrFull(table_join.kind); }
|
||||
size_t maxRowsInRightBlock() const { return partial_merge_join_rows_in_right_blocks; }
|
||||
bool enablePartialMergeJoinOptimisations() const { return partial_merge_join_optimisations; }
|
||||
bool enablePartialMergeJoinOptimizations() const { return partial_merge_join_optimizations; }
|
||||
|
||||
void addUsingKey(const ASTPtr & ast);
|
||||
void addOnKeys(ASTPtr & left_table_ast, ASTPtr & right_table_ast);
|
||||
|
@ -330,7 +330,7 @@ MergeJoin::MergeJoin(std::shared_ptr<AnalyzedJoin> table_join_, const Block & ri
|
||||
, is_all(table_join->strictness() == ASTTableJoin::Strictness::All)
|
||||
, is_inner(isInner(table_join->kind()))
|
||||
, is_left(isLeft(table_join->kind()))
|
||||
, skip_not_intersected(table_join->enablePartialMergeJoinOptimisations())
|
||||
, skip_not_intersected(table_join->enablePartialMergeJoinOptimizations())
|
||||
{
|
||||
if (!isLeft(table_join->kind()) && !isInner(table_join->kind()))
|
||||
throw Exception("Partial merge supported for LEFT and INNER JOINs only", ErrorCodes::NOT_IMPLEMENTED);
|
||||
|
@ -7,7 +7,7 @@ CREATE TABLE t1 (x UInt32, y UInt64) engine = MergeTree ORDER BY (x,y);
|
||||
CREATE TABLE t2 (x UInt32, y UInt64) engine = MergeTree ORDER BY (x,y);
|
||||
|
||||
SET partial_merge_join = 1;
|
||||
SET partial_merge_join_optimisations = 1;
|
||||
SET partial_merge_join_optimizations = 1;
|
||||
SET partial_merge_join_rows_in_right_blocks = 2;
|
||||
SET any_join_distinct_right_table_keys = 1;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user