Skip to content

Commit b51f12b

Browse files
authored
Merge 762507f into 26c9911
2 parents 26c9911 + 762507f commit b51f12b

File tree

5 files changed

+33
-0
lines changed

5 files changed

+33
-0
lines changed

ydb/core/kqp/ut/common/kqp_ut_common.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ TKikimrRunner::TKikimrRunner(const TKikimrSettings& settings) {
133133
ServerSettings->SetUseRealThreads(settings.UseRealThreads);
134134
ServerSettings->SetEnableTablePgTypes(true);
135135
ServerSettings->SetEnablePgSyntax(true);
136+
ServerSettings->SetEnableOlapCompression(true);
136137
ServerSettings->S3ActorsFactory = settings.S3ActorsFactory;
137138

138139
if (settings.Storage) {

ydb/core/protos/feature_flags.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,4 +158,5 @@ message TFeatureFlags {
158158
optional bool EnablePgSyntax = 139 [default = true];
159159
optional bool EnableTieringInColumnShard = 140 [default = false];
160160
optional bool EnableMetadataObjectsOnServerless = 141 [default = true];
161+
optional bool EnableOlapCompression = 142 [default = false];
161162
}

ydb/core/testlib/basics/feature_flags.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ class TTestFeatureFlagsHolder {
6767
FEATURE_FLAG_SETTER(EnablePgSyntax)
6868
FEATURE_FLAG_SETTER(EnableTieringInColumnShard)
6969
FEATURE_FLAG_SETTER(EnableMetadataObjectsOnServerless)
70+
FEATURE_FLAG_SETTER(EnableOlapCompression)
7071

7172
#undef FEATURE_FLAG_SETTER
7273
};

ydb/core/tx/schemeshard/olap/operations/alter/abstract/update.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,16 @@ namespace NKikimr::NSchemeShard::NOlap::NAlter {
1111
class ISSEntityUpdate {
1212
private:
1313
bool Initialized = false;
14+
15+
bool IsAlterCompression(const TUpdateInitializationContext& context) const {
16+
for (const auto& alterColumn : context.GetModification()->GetAlterColumnTable().GetAlterSchema().GetAlterColumns()) {
17+
if (alterColumn.HasSerializer()) {
18+
return true;
19+
}
20+
}
21+
return false;
22+
}
23+
1424
protected:
1525
virtual TConclusionStatus DoInitialize(const TUpdateInitializationContext& context) = 0;
1626
virtual TConclusionStatus DoStart(const TUpdateStartContext& context) = 0;
@@ -44,6 +54,9 @@ class ISSEntityUpdate {
4454

4555
TConclusionStatus Initialize(const TUpdateInitializationContext& context) {
4656
AFL_VERIFY(!Initialized);
57+
if (!AppData()->FeatureFlags.GetEnableOlapCompression() && IsAlterCompression(context)) {
58+
return TConclusionStatus::Fail("Compression is disabled for OLAP tables");
59+
}
4760
auto result = DoInitialize(context);
4861
if (result.IsSuccess()) {
4962
Initialized = true;

ydb/core/tx/schemeshard/olap/operations/alter_store.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -436,6 +436,18 @@ class TAlterOlapStore: public TSubOperation {
436436
}
437437
}
438438

439+
bool IsAlterCompression() const {
440+
const auto& alter = Transaction.GetAlterColumnStore();
441+
for (const auto& alterSchema : alter.GetAlterSchemaPresets()) {
442+
for (const auto& alterColumn : alterSchema.GetAlterSchema().GetAlterColumns()) {
443+
if (alterColumn.HasSerializer()) {
444+
return true;
445+
}
446+
}
447+
}
448+
return false;
449+
}
450+
439451
public:
440452
using TSubOperation::TSubOperation;
441453

@@ -460,6 +472,11 @@ class TAlterOlapStore: public TSubOperation {
460472
return result;
461473
}
462474

475+
if (!AppData()->FeatureFlags.GetEnableOlapCompression() && IsAlterCompression()) {
476+
result->SetError(NKikimrScheme::StatusPreconditionFailed, "Compression is disabled for OLAP tables");
477+
return result;
478+
}
479+
463480
TPath parentPath = TPath::Resolve(parentPathStr, context.SS);
464481
TPath path = parentPath.Dive(name);
465482
{

0 commit comments

Comments
 (0)