Skip to content

Commit b2971a5

Browse files
authored
Merge pull request ClickHouse#80471 from ClickHouse/chesema-fix-populate
fix populate for live and window view
2 parents 6375dfd + 8e39b32 commit b2971a5

File tree

2 files changed

+26
-16
lines changed

2 files changed

+26
-16
lines changed

src/Storages/LiveView/StorageLiveView.cpp

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ namespace Setting
6565
extern const SettingsUInt64 min_insert_block_size_bytes;
6666
extern const SettingsUInt64 min_insert_block_size_rows;
6767
extern const SettingsBool use_concurrency_control;
68+
extern const SettingsBool deduplicate_blocks_in_dependent_materialized_views;
6869
}
6970

7071
namespace ErrorCodes
@@ -434,15 +435,19 @@ void StorageLiveView::writeBlock(StorageLiveView & live_view, Block && block, Ch
434435
return std::make_shared<RestoreChunkInfosTransform>(chunk_infos.clone(), cur_header);
435436
});
436437

437-
String live_view_id = live_view.getStorageID().hasUUID() ? toString(live_view.getStorageID().uuid) : live_view.getStorageID().getFullNameNotQuoted();
438-
builder.addSimpleTransform([&](const Block & stream_header)
438+
bool disable_deduplication_for_children = !local_context->getSettingsRef()[Setting::deduplicate_blocks_in_dependent_materialized_views];
439+
if (!disable_deduplication_for_children)
439440
{
440-
return std::make_shared<DeduplicationToken::SetViewIDTransform>(live_view_id, stream_header);
441-
});
442-
builder.addSimpleTransform([&](const Block & stream_header)
443-
{
444-
return std::make_shared<DeduplicationToken::SetViewBlockNumberTransform>(stream_header);
445-
});
441+
String live_view_id = live_view.getStorageID().hasUUID() ? toString(live_view.getStorageID().uuid) : live_view.getStorageID().getFullNameNotQuoted();
442+
builder.addSimpleTransform([&](const Block & stream_header)
443+
{
444+
return std::make_shared<DeduplicationToken::SetViewIDTransform>(live_view_id, stream_header);
445+
});
446+
builder.addSimpleTransform([&](const Block & stream_header)
447+
{
448+
return std::make_shared<DeduplicationToken::SetViewBlockNumberTransform>(stream_header);
449+
});
450+
}
446451

447452
builder.addSimpleTransform([&](const Block & cur_header)
448453
{

src/Storages/WindowView/StorageWindowView.cpp

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ namespace Setting
8080
extern const SettingsSeconds wait_for_window_view_fire_signal_timeout;
8181
extern const SettingsSeconds window_view_clean_interval;
8282
extern const SettingsSeconds window_view_heartbeat_interval;
83+
extern const SettingsBool deduplicate_blocks_in_dependent_materialized_views;
8384
}
8485

8586
namespace ErrorCodes
@@ -1595,15 +1596,19 @@ void StorageWindowView::writeIntoWindowView(
15951596
return std::make_shared<RestoreChunkInfosTransform>(chunk_infos.clone(), stream_header);
15961597
});
15971598

1598-
String window_view_id = window_view.getStorageID().hasUUID() ? toString(window_view.getStorageID().uuid) : window_view.getStorageID().getFullNameNotQuoted();
1599-
builder.addSimpleTransform([&](const Block & stream_header)
1599+
bool disable_deduplication_for_children = !local_context->getSettingsRef()[Setting::deduplicate_blocks_in_dependent_materialized_views];
1600+
if (!disable_deduplication_for_children)
16001601
{
1601-
return std::make_shared<DeduplicationToken::SetViewIDTransform>(window_view_id, stream_header);
1602-
});
1603-
builder.addSimpleTransform([&](const Block & stream_header)
1604-
{
1605-
return std::make_shared<DeduplicationToken::SetViewBlockNumberTransform>(stream_header);
1606-
});
1602+
String window_view_id = window_view.getStorageID().hasUUID() ? toString(window_view.getStorageID().uuid) : window_view.getStorageID().getFullNameNotQuoted();
1603+
builder.addSimpleTransform([&](const Block & stream_header)
1604+
{
1605+
return std::make_shared<DeduplicationToken::SetViewIDTransform>(window_view_id, stream_header);
1606+
});
1607+
builder.addSimpleTransform([&](const Block & stream_header)
1608+
{
1609+
return std::make_shared<DeduplicationToken::SetViewBlockNumberTransform>(stream_header);
1610+
});
1611+
}
16071612

16081613
#ifdef DEBUG_OR_SANITIZER_BUILD
16091614
builder.addSimpleTransform([&](const Block & stream_header)

0 commit comments

Comments
 (0)