Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -488,7 +488,7 @@ class TAlterSequence: public TSubOperation {

const NScheme::TTypeRegistry* typeRegistry = AppData()->TypeRegistry;
auto description = GetAlterSequenceDescription(
sequenceInfo->Description, sequenceAlter, *typeRegistry, context.SS->EnableTablePgTypes, errStr);
sequenceInfo->Description, sequenceAlter, *typeRegistry, AppData()->FeatureFlags.GetEnableTablePgTypes(), errStr);
if (!description) {
status = NKikimrScheme::StatusInvalidParameter;
result->SetError(status, errStr);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,9 +145,9 @@ TTableInfo::TAlterDataPtr ParseParams(const TPath& path, TTableInfo::TPtr table,
const TSubDomainInfo& subDomain = *path.DomainInfo();
const TSchemeLimits& limits = subDomain.GetSchemeLimits();
const TTableInfo::TCreateAlterDataFeatureFlags featureFlags = {
.EnableTablePgTypes = context.SS->EnableTablePgTypes,
.EnableTableDatetime64 = context.SS->EnableTableDatetime64,
.EnableParameterizedDecimal = context.SS->EnableParameterizedDecimal,
.EnableTablePgTypes = AppData()->FeatureFlags.GetEnableTablePgTypes(),
.EnableTableDatetime64 = AppData()->FeatureFlags.GetEnableTableDatetime64(),
.EnableParameterizedDecimal = AppData()->FeatureFlags.GetEnableParameterizedDecimal(),
};


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -578,10 +578,12 @@ class TCopyTable: public TSubOperation {

const NScheme::TTypeRegistry* typeRegistry = AppData()->TypeRegistry;
const TSchemeLimits& limits = domainInfo->GetSchemeLimits();
// Copy table should not check feature flags for columns types.
// If the types in original table are created then they should be allowed in destination table.
const TTableInfo::TCreateAlterDataFeatureFlags featureFlags = {
.EnableTablePgTypes = context.SS->EnableTablePgTypes,
.EnableTableDatetime64 = context.SS->EnableTableDatetime64,
.EnableParameterizedDecimal = context.SS->EnableParameterizedDecimal,
.EnableTablePgTypes = true,
.EnableTableDatetime64 = true,
.EnableParameterizedDecimal = true,
};
TTableInfo::TAlterDataPtr alterData = TTableInfo::CreateAlterData(nullptr, schema, *typeRegistry,
limits, *domainInfo, featureFlags, errStr, LocalSequences);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -508,7 +508,7 @@ class TCreateSequence : public TSubOperation {
TSequenceInfo::TPtr alterData = sequenceInfo->CreateNextVersion();
const NScheme::TTypeRegistry* typeRegistry = AppData()->TypeRegistry;
auto description = FillSequenceDescription(
descr, *typeRegistry, context.SS->EnableTablePgTypes, errStr);
descr, *typeRegistry, AppData()->FeatureFlags.GetEnableTablePgTypes(), errStr);
if (!description) {
status = NKikimrScheme::StatusInvalidParameter;
result->SetError(status, errStr);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -578,9 +578,9 @@ class TCreateTable: public TSubOperation {
const NScheme::TTypeRegistry* typeRegistry = AppData()->TypeRegistry;
const TSchemeLimits& limits = domainInfo->GetSchemeLimits();
const TTableInfo::TCreateAlterDataFeatureFlags featureFlags = {
.EnableTablePgTypes = context.SS->EnableTablePgTypes,
.EnableTableDatetime64 = context.SS->EnableTableDatetime64,
.EnableParameterizedDecimal = context.SS->EnableParameterizedDecimal,
.EnableTablePgTypes = AppData()->FeatureFlags.GetEnableTablePgTypes(),
.EnableTableDatetime64 = AppData()->FeatureFlags.GetEnableTableDatetime64(),
.EnableParameterizedDecimal = AppData()->FeatureFlags.GetEnableParameterizedDecimal(),
};
TTableInfo::TAlterDataPtr alterData = TTableInfo::CreateAlterData(
nullptr,
Expand Down
6 changes: 0 additions & 6 deletions ydb/core/tx/schemeshard/schemeshard_impl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4648,14 +4648,11 @@ void TSchemeShard::OnActivateExecutor(const TActorContext &ctx) {
EnableAlterDatabaseCreateHiveFirst = appData->FeatureFlags.GetEnableAlterDatabaseCreateHiveFirst();
EnablePQConfigTransactionsAtSchemeShard = appData->FeatureFlags.GetEnablePQConfigTransactionsAtSchemeShard();
EnableStatistics = appData->FeatureFlags.GetEnableStatistics();
EnableTablePgTypes = appData->FeatureFlags.GetEnableTablePgTypes();
EnableServerlessExclusiveDynamicNodes = appData->FeatureFlags.GetEnableServerlessExclusiveDynamicNodes();
EnableAddColumsWithDefaults = appData->FeatureFlags.GetEnableAddColumsWithDefaults();
EnableReplaceIfExistsForExternalEntities = appData->FeatureFlags.GetEnableReplaceIfExistsForExternalEntities();
EnableTempTables = appData->FeatureFlags.GetEnableTempTables();
EnableTableDatetime64 = appData->FeatureFlags.GetEnableTableDatetime64();
EnableVectorIndex = appData->FeatureFlags.GetEnableVectorIndex();
EnableParameterizedDecimal = appData->FeatureFlags.GetEnableParameterizedDecimal();
EnableDataErasure = appData->FeatureFlags.GetEnableDataErasure();

ConfigureCompactionQueues(appData->CompactionConfig, ctx);
Expand Down Expand Up @@ -7284,16 +7281,13 @@ void TSchemeShard::ApplyConsoleConfigs(const NKikimrConfig::TFeatureFlags& featu
EnableAlterDatabaseCreateHiveFirst = featureFlags.GetEnableAlterDatabaseCreateHiveFirst();
EnablePQConfigTransactionsAtSchemeShard = featureFlags.GetEnablePQConfigTransactionsAtSchemeShard();
EnableStatistics = featureFlags.GetEnableStatistics();
EnableTablePgTypes = featureFlags.GetEnableTablePgTypes();
EnableServerlessExclusiveDynamicNodes = featureFlags.GetEnableServerlessExclusiveDynamicNodes();
EnableAddColumsWithDefaults = featureFlags.GetEnableAddColumsWithDefaults();
EnableTempTables = featureFlags.GetEnableTempTables();
EnableReplaceIfExistsForExternalEntities = featureFlags.GetEnableReplaceIfExistsForExternalEntities();
EnableTableDatetime64 = featureFlags.GetEnableTableDatetime64();
EnableResourcePoolsOnServerless = featureFlags.GetEnableResourcePoolsOnServerless();
EnableVectorIndex = featureFlags.GetEnableVectorIndex();
EnableExternalDataSourcesOnServerless = featureFlags.GetEnableExternalDataSourcesOnServerless();
EnableParameterizedDecimal = featureFlags.GetEnableParameterizedDecimal();
EnableDataErasure = featureFlags.GetEnableDataErasure();
}

Expand Down
3 changes: 0 additions & 3 deletions ydb/core/tx/schemeshard/schemeshard_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -334,16 +334,13 @@ class TSchemeShard
bool EnableAlterDatabaseCreateHiveFirst = false;
bool EnablePQConfigTransactionsAtSchemeShard = false;
bool EnableStatistics = false;
bool EnableTablePgTypes = false;
bool EnableServerlessExclusiveDynamicNodes = false;
bool EnableAddColumsWithDefaults = false;
bool EnableReplaceIfExistsForExternalEntities = false;
bool EnableTempTables = false;
bool EnableTableDatetime64 = false;
bool EnableResourcePoolsOnServerless = false;
bool EnableVectorIndex = false;
bool EnableExternalDataSourcesOnServerless = false;
bool EnableParameterizedDecimal = false;
bool EnableDataErasure = false;

TShardDeleter ShardDeleter;
Expand Down
33 changes: 33 additions & 0 deletions ydb/core/tx/schemeshard/ut_base/ut_table_decimal_types.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,39 @@ Y_UNIT_TEST_SUITE(TSchemeShardDecimalTypesInTables) {
});
}

Y_UNIT_TEST(CopyTableShouldNotFailOnDisabledFeatureFlag) {
TTestBasicRuntime runtime;
TTestEnv env(runtime, TTestEnvOptions().EnableParameterizedDecimal(true));
ui64 txId = 100;

AsyncCreateTable(runtime, ++txId, "/MyRoot", R"_(
Name: "Table1"
Columns { Name: "key" Type: "Decimal(35,6)" }
Columns { Name: "value" Type: "Decimal(35,6)" }
KeyColumnNames: ["key"]
)_");
TestModificationResults(runtime, txId, {TExpectedResult(NKikimrScheme::StatusAccepted)});
env.TestWaitNotification(runtime, txId);

TestDescribeResult(DescribePath(runtime, "/MyRoot/Table1"), {
NLs::PathExist,
NLs::Finished,
NLs::CheckColumnType(0, "Decimal(35,6)")
});

runtime.GetAppData().FeatureFlags.SetEnableParameterizedDecimal(false);

AsyncCopyTable(runtime, ++txId, "/MyRoot", "Copy1", "/MyRoot/Table1");
TestModificationResults(runtime, txId, {TExpectedResult(NKikimrScheme::StatusAccepted)});
env.TestWaitNotification(runtime, txId);

TestDescribeResult(DescribePath(runtime, "/MyRoot/Copy1"), {
NLs::PathExist,
NLs::Finished,
NLs::CheckColumnType(0, "Decimal(35,6)")
});
}

Y_UNIT_TEST(CreateWithWrongParameters) {
TTestBasicRuntime runtime;
TTestEnv env(runtime, TTestEnvOptions().EnableParameterizedDecimal(true));
Expand Down
Loading