Skip to content

Commit 4d50976

Browse files
committed
Disallow zero 'marks_compress_block_size' and 'primary_key_compress_block_size'
1 parent 0cc630e commit 4d50976

File tree

6 files changed

+9
-8
lines changed

6 files changed

+9
-8
lines changed

src/Processors/QueryPlan/QueryPlanSerializationSettings.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ struct QueryPlanSerializationSettingsImpl;
1313
#define QUERY_PLAN_SERIALIZATION_SETTINGS_SUPPORTED_TYPES(CLASS_NAME, M) \
1414
M(CLASS_NAME, Bool) \
1515
M(CLASS_NAME, Float) \
16+
M(CLASS_NAME, JoinAlgorithm) \
1617
M(CLASS_NAME, NonZeroUInt64) \
1718
M(CLASS_NAME, OverflowMode) \
1819
M(CLASS_NAME, OverflowModeGroupBy) \
1920
M(CLASS_NAME, Seconds) \
2021
M(CLASS_NAME, String) \
2122
M(CLASS_NAME, TotalsMode) \
2223
M(CLASS_NAME, UInt64) \
23-
M(CLASS_NAME, JoinAlgorithm) \
2424

2525
QUERY_PLAN_SERIALIZATION_SETTINGS_SUPPORTED_TYPES(QueryPlanSerializationSettings, DECLARE_SETTING_TRAIT)
2626

src/Storages/MergeTree/MergeTreeIOSettings.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,8 @@ MergeTreeWriterSettings::MergeTreeWriterSettings(
3838
bool save_marks_in_cache_,
3939
bool save_primary_index_in_memory_,
4040
bool blocks_are_granules_size_)
41-
: min_compress_block_size(
42-
(*storage_settings)[MergeTreeSetting::min_compress_block_size] ? (*storage_settings)[MergeTreeSetting::min_compress_block_size] : global_settings[Setting::min_compress_block_size])
43-
, max_compress_block_size(
44-
(*storage_settings)[MergeTreeSetting::max_compress_block_size] ? (*storage_settings)[MergeTreeSetting::max_compress_block_size] : global_settings[Setting::max_compress_block_size])
41+
: min_compress_block_size((*storage_settings)[MergeTreeSetting::min_compress_block_size] ? (*storage_settings)[MergeTreeSetting::min_compress_block_size] : global_settings[Setting::min_compress_block_size])
42+
, max_compress_block_size((*storage_settings)[MergeTreeSetting::max_compress_block_size] ? (*storage_settings)[MergeTreeSetting::max_compress_block_size] : global_settings[Setting::max_compress_block_size])
4543
, marks_compression_codec((*storage_settings)[MergeTreeSetting::marks_compression_codec])
4644
, marks_compress_block_size((*storage_settings)[MergeTreeSetting::marks_compress_block_size])
4745
, compress_primary_key((*storage_settings)[MergeTreeSetting::compress_primary_key])

src/Storages/MergeTree/MergeTreeSettings.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#include <Storages/MergeTree/MergeTreeSettings.h>
12
#include <Columns/IColumn.h>
23
#include <Core/BaseSettings.h>
34
#include <Core/BaseSettingsFwdMacrosImpl.h>
@@ -10,7 +11,6 @@
1011
#include <Parsers/ASTSetQuery.h>
1112
#include <Parsers/FieldFromAST.h>
1213
#include <Parsers/isDiskFunction.h>
13-
#include <Storages/MergeTree/MergeTreeSettings.h>
1414
#include <Storages/System/MutableColumnsAndConstraints.h>
1515
#include <Common/Exception.h>
1616
#include <Common/NamePrompter.h>
@@ -1709,10 +1709,10 @@ namespace ErrorCodes
17091709
Compression encoding used by primary, primary key is small enough and cached,
17101710
so the default compression is ZSTD(3).
17111711
)", 0) \
1712-
DECLARE(UInt64, marks_compress_block_size, 65536, R"(
1712+
DECLARE(NonZeroUInt64, marks_compress_block_size, 65536, R"(
17131713
Mark compress block size, the actual size of the block to compress.
17141714
)", 0) \
1715-
DECLARE(UInt64, primary_key_compress_block_size, 65536, R"(
1715+
DECLARE(NonZeroUInt64, primary_key_compress_block_size, 65536, R"(
17161716
Primary compress block size, the actual size of the block to compress.
17171717
)", 0) \
17181718
DECLARE(Bool, primary_key_lazy_load, true, R"(Load primary key in memory on

src/Storages/MergeTree/MergeTreeSettings.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ struct MutableColumnsAndConstraints;
4444
M(CLASS_NAME, MaxThreads) \
4545
M(CLASS_NAME, MergeSelectorAlgorithm) \
4646
M(CLASS_NAME, Milliseconds) \
47+
M(CLASS_NAME, NonZeroUInt64) \
4748
M(CLASS_NAME, Seconds) \
4849
M(CLASS_NAME, String) \
4950
M(CLASS_NAME, UInt64)

tests/queries/0_stateless/03457_bug79403_marks_compress_block_is_zero.reference

Whitespace-only changes.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
CREATE TABLE t0 (c0 Int) ENGINE = MergeTree() ORDER BY tuple() SETTINGS marks_compress_block_size = 0; -- { serverError BAD_ARGUMENTS }
2+
CREATE TABLE t0 (c0 Int) ENGINE = MergeTree() ORDER BY tuple() SETTINGS primary_key_compress_block_size = 0; -- { serverError BAD_ARGUMENTS }

0 commit comments

Comments
 (0)