Skip to content

Commit 03ddf50

Browse files
fix set_intersection and settings changes message
1 parent 765cc85 commit 03ddf50

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

src/Core/SettingsChangesHistory.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -697,7 +697,7 @@ const VersionToSettingsChangesMap & getMergeTreeSettingsChangesHistory()
697697
addSettingsChanges(merge_tree_settings_changes_history, "25.4",
698698
{
699699
{"max_merge_delayed_streams_for_parallel_write", 1000, 100, "New setting"},
700-
{"allow_summing_columns_in_partition_or_order_key", true, false, "Don't allow summing of partition or sorting key columns"},
700+
{"allow_summing_columns_in_partition_or_order_key", true, false, "New setting to allow summing of partition or sorting key columns"},
701701
});
702702
addSettingsChanges(merge_tree_settings_changes_history, "25.3",
703703
{

src/Storages/MergeTree/MergeTreeData.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1200,9 +1200,9 @@ void MergeTreeData::MergingParams::check(const MergeTreeSettings & settings, con
12001200

12011201
if (mode == MergingParams::Summing)
12021202
{
1203-
auto columns_to_sum_copy = columns_to_sum;
1204-
std::sort(columns_to_sum_copy.begin(), columns_to_sum_copy.end());
1205-
if (const auto it = std::adjacent_find(columns_to_sum_copy.begin(), columns_to_sum_copy.end()); it != columns_to_sum_copy.end())
1203+
auto columns_to_sum_sorted = columns_to_sum;
1204+
std::sort(columns_to_sum_sorted.begin(), columns_to_sum_sorted.end());
1205+
if (const auto it = std::adjacent_find(columns_to_sum_sorted.begin(), columns_to_sum_sorted.end()); it != columns_to_sum_sorted.end())
12061206
throw Exception(ErrorCodes::BAD_ARGUMENTS, "Column {} is listed multiple times in the list of columns to sum", *it);
12071207

12081208
/// If columns_to_sum are set, then check that such columns exist.
@@ -1225,9 +1225,10 @@ void MergeTreeData::MergingParams::check(const MergeTreeSettings & settings, con
12251225
if (!allow_summing_columns_in_partition_or_order_key && metadata.isPartitionKeyDefined())
12261226
{
12271227
auto partition_key_columns = metadata.getPartitionKey().expression->getRequiredColumns();
1228+
std::sort(partition_key_columns.begin(), partition_key_columns.end());
12281229

12291230
Names names_intersection;
1230-
std::set_intersection(columns_to_sum.begin(), columns_to_sum.end(),
1231+
std::set_intersection(columns_to_sum_sorted.begin(), columns_to_sum_sorted.end(),
12311232
partition_key_columns.begin(), partition_key_columns.end(),
12321233
std::back_inserter(names_intersection));
12331234

@@ -1240,9 +1241,10 @@ void MergeTreeData::MergingParams::check(const MergeTreeSettings & settings, con
12401241
if (!allow_summing_columns_in_partition_or_order_key && metadata.isSortingKeyDefined())
12411242
{
12421243
auto sorting_key_columns = metadata.getSortingKey().expression->getRequiredColumns();
1244+
std::sort(sorting_key_columns.begin(), sorting_key_columns.end());
12431245

12441246
Names names_intersection;
1245-
std::set_intersection(columns_to_sum.begin(), columns_to_sum.end(),
1247+
std::set_intersection(columns_to_sum_sorted.begin(), columns_to_sum_sorted.end(),
12461248
sorting_key_columns.begin(), sorting_key_columns.end(),
12471249
std::back_inserter(names_intersection));
12481250

0 commit comments

Comments
 (0)