aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVasily Gerasimov <UgnineSirdis@ydb.tech>2024-01-04 22:37:03 +0200
committerGitHub <noreply@github.com>2024-01-04 22:37:03 +0200
commit0741f1c13ef207891b9ba391cba0a68d26b87a54 (patch)
tree0ac9631f7d85fe2867fb555a7f30c6cc633cb9d5
parentcc6cf5ce9a4267b3eacb411407625a0731acb887 (diff)
downloadydb-0741f1c13ef207891b9ba391cba0a68d26b87a54.tar.gz
Support DDL in QueryService for TIER & TIERING_RULE objects (#846)
-rw-r--r--ydb/core/tx/tiering/rule/manager.cpp12
-rw-r--r--ydb/core/tx/tiering/rule/manager.h6
-rw-r--r--ydb/core/tx/tiering/tier/manager.cpp12
-rw-r--r--ydb/core/tx/tiering/tier/manager.h6
-rw-r--r--ydb/core/tx/tiering/ut/ut_tiers.cpp21
-rw-r--r--ydb/services/ext_index/metadata/manager.cpp12
-rw-r--r--ydb/services/ext_index/metadata/manager.h6
-rw-r--r--ydb/services/metadata/initializer/manager.cpp12
-rw-r--r--ydb/services/metadata/initializer/manager.h6
-rw-r--r--ydb/services/metadata/secret/ut/ut_secret.cpp1
10 files changed, 19 insertions, 75 deletions
diff --git a/ydb/core/tx/tiering/rule/manager.cpp b/ydb/core/tx/tiering/rule/manager.cpp
index 0e543098a7..bdcfac875c 100644
--- a/ydb/core/tx/tiering/rule/manager.cpp
+++ b/ydb/core/tx/tiering/rule/manager.cpp
@@ -30,16 +30,4 @@ NMetadata::NModifications::TOperationParsingResult TTieringRulesManager::DoBuild
return result;
}
-NMetadata::NModifications::IOperationsManager::TYqlConclusionStatus TTieringRulesManager::DoPrepare(NKqpProto::TKqpSchemeOperation& /*schemeOperation*/, const NYql::TObjectSettingsImpl& /*settings*/,
- const NMetadata::IClassBehaviour::TPtr& /*manager*/, NMetadata::NModifications::IOperationsManager::TInternalModificationContext& /*context*/) const {
- return NMetadata::NModifications::IOperationsManager::TYqlConclusionStatus::Fail(
- "Prepare operations for TIERING_RULE objects are not supported");
-}
-
-NThreading::TFuture<NMetadata::NModifications::IOperationsManager::TYqlConclusionStatus> TTieringRulesManager::ExecutePrepared(const NKqpProto::TKqpSchemeOperation& /*schemeOperation*/,
- const ui32 /*nodeId*/, const NMetadata::IClassBehaviour::TPtr& /*manager*/, const IOperationsManager::TExternalModificationContext& /*context*/) const {
- return NThreading::MakeFuture(NMetadata::NModifications::IOperationsManager::TYqlConclusionStatus::Fail(
- "Execution of prepare operations for TIERING_RULE objects is not supported"));
-}
-
}
diff --git a/ydb/core/tx/tiering/rule/manager.h b/ydb/core/tx/tiering/rule/manager.h
index 45057cfa04..3268c90021 100644
--- a/ydb/core/tx/tiering/rule/manager.h
+++ b/ydb/core/tx/tiering/rule/manager.h
@@ -13,12 +13,6 @@ protected:
virtual NMetadata::NModifications::TOperationParsingResult DoBuildPatchFromSettings(const NYql::TObjectSettingsImpl& settings,
TInternalModificationContext& context) const override;
-
- virtual IOperationsManager::TYqlConclusionStatus DoPrepare(NKqpProto::TKqpSchemeOperation& schemeOperation, const NYql::TObjectSettingsImpl& settings,
- const NMetadata::IClassBehaviour::TPtr& manager, IOperationsManager::TInternalModificationContext& context) const override;
-
- virtual NThreading::TFuture<IOperationsManager::TYqlConclusionStatus> ExecutePrepared(const NKqpProto::TKqpSchemeOperation& schemeOperation,
- const ui32 nodeId, const NMetadata::IClassBehaviour::TPtr& manager, const IOperationsManager::TExternalModificationContext& context) const override;
};
}
diff --git a/ydb/core/tx/tiering/tier/manager.cpp b/ydb/core/tx/tiering/tier/manager.cpp
index 7c657b3df1..d9e9834f97 100644
--- a/ydb/core/tx/tiering/tier/manager.cpp
+++ b/ydb/core/tx/tiering/tier/manager.cpp
@@ -67,16 +67,4 @@ void TTiersManager::DoPrepareObjectsBeforeModification(std::vector<TTierConfig>&
TActivationContext::Register(new TTierPreparationActor(std::move(patchedObjects), controller, context));
}
-NMetadata::NModifications::IOperationsManager::TYqlConclusionStatus TTiersManager::DoPrepare(NKqpProto::TKqpSchemeOperation& /*schemeOperation*/, const NYql::TObjectSettingsImpl& /*settings*/,
- const NMetadata::IClassBehaviour::TPtr& /*manager*/, NMetadata::NModifications::IOperationsManager::TInternalModificationContext& /*context*/) const {
- return NMetadata::NModifications::IOperationsManager::TYqlConclusionStatus::Fail(
- "Prepare operations for TIER objects are not supported");
-}
-
-NThreading::TFuture<NMetadata::NModifications::IOperationsManager::TYqlConclusionStatus> TTiersManager::ExecutePrepared(const NKqpProto::TKqpSchemeOperation& /*schemeOperation*/,
- const ui32 /*nodeId*/, const NMetadata::IClassBehaviour::TPtr& /*manager*/, const IOperationsManager::TExternalModificationContext& /*context*/) const {
- return NThreading::MakeFuture(NMetadata::NModifications::IOperationsManager::TYqlConclusionStatus::Fail(
- "Execution of prepare operations for TIER objects is not supported"));
-}
-
}
diff --git a/ydb/core/tx/tiering/tier/manager.h b/ydb/core/tx/tiering/tier/manager.h
index 547e06ef00..ba77764813 100644
--- a/ydb/core/tx/tiering/tier/manager.h
+++ b/ydb/core/tx/tiering/tier/manager.h
@@ -13,12 +13,6 @@ protected:
virtual NMetadata::NModifications::TOperationParsingResult DoBuildPatchFromSettings(const NYql::TObjectSettingsImpl& settings,
TInternalModificationContext& context) const override;
-
- virtual IOperationsManager::TYqlConclusionStatus DoPrepare(NKqpProto::TKqpSchemeOperation& schemeOperation, const NYql::TObjectSettingsImpl& settings,
- const NMetadata::IClassBehaviour::TPtr& manager, IOperationsManager::TInternalModificationContext& context) const override;
-
- virtual NThreading::TFuture<IOperationsManager::TYqlConclusionStatus> ExecutePrepared(const NKqpProto::TKqpSchemeOperation& schemeOperation,
- const ui32 nodeId, const NMetadata::IClassBehaviour::TPtr& manager, const IOperationsManager::TExternalModificationContext& context) const override;
public:
};
diff --git a/ydb/core/tx/tiering/ut/ut_tiers.cpp b/ydb/core/tx/tiering/ut/ut_tiers.cpp
index 4bf015a08b..40e45ecd04 100644
--- a/ydb/core/tx/tiering/ut/ut_tiers.cpp
+++ b/ydb/core/tx/tiering/ut/ut_tiers.cpp
@@ -395,19 +395,23 @@ Y_UNIT_TEST_SUITE(ColumnShardTiers) {
}
}
- Y_UNIT_TEST(DSConfigs) {
+ void DSConfigsImpl(bool useQueryService) {
TPortManager pm;
ui32 grpcPort = pm.GetPort();
ui32 msgbPort = pm.GetPort();
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true);
+
Tests::TServerSettings serverSettings(msgbPort);
serverSettings.Port = msgbPort;
serverSettings.GrpcPort = grpcPort;
serverSettings.SetDomainName("Root")
.SetUseRealThreads(false)
.SetEnableMetadataProvider(true)
- .SetForceColumnTablesCompositeMarks(true);
+ .SetForceColumnTablesCompositeMarks(true)
+ .SetAppConfig(appConfig);
Tests::TServer::TPtr server = new Tests::TServer(serverSettings);
server->EnableGRpc(grpcPort);
@@ -418,6 +422,8 @@ Y_UNIT_TEST_SUITE(ColumnShardTiers) {
auto sender = runtime.AllocateEdgeActor();
server->SetupRootStoragePools(sender);
TLocalHelper lHelper(*server);
+ lHelper.SetUseQueryService(useQueryService);
+
lHelper.CreateTestOlapTable("olapTable");
runtime.SetLogPriority(NKikimrServices::TX_DATASHARD, NLog::PRI_NOTICE);
@@ -436,7 +442,7 @@ Y_UNIT_TEST_SUITE(ColumnShardTiers) {
}
lHelper.StartSchemaRequest("CREATE OBJECT tier2 (TYPE TIER) WITH tierConfig = `" + GetConfigProtoWithName("abc2") + "`");
- lHelper.StartSchemaRequest("CREATE OBJECT tiering1 (TYPE TIERING_RULE) "
+ lHelper.StartSchemaRequest("CREATE OBJECT IF NOT EXISTS tiering1 (TYPE TIERING_RULE) "
"WITH (defaultColumn = timestamp, description = `" + ConfigTiering1Str + "`)");
lHelper.StartSchemaRequest("CREATE OBJECT tiering2 (TYPE TIERING_RULE) "
"WITH (defaultColumn = timestamp, description = `" + ConfigTiering2Str + "` )", true, false);
@@ -473,6 +479,15 @@ Y_UNIT_TEST_SUITE(ColumnShardTiers) {
//runtime.SetLogPriority(NKikimrServices::TX_PROXY, NLog::PRI_TRACE);
//runtime.SetLogPriority(NKikimrServices::KQP_YQL, NLog::PRI_TRACE);
}
+
+ Y_UNIT_TEST(DSConfigs) {
+ DSConfigsImpl(false);
+ }
+
+ Y_UNIT_TEST(DSConfigsWithQueryServiceDdl) {
+ DSConfigsImpl(true);
+ }
+
//#define S3_TEST_USAGE
#ifdef S3_TEST_USAGE
const TString TierConfigProtoStr =
diff --git a/ydb/services/ext_index/metadata/manager.cpp b/ydb/services/ext_index/metadata/manager.cpp
index adebe4f71c..9e7b701287 100644
--- a/ydb/services/ext_index/metadata/manager.cpp
+++ b/ydb/services/ext_index/metadata/manager.cpp
@@ -90,16 +90,4 @@ NModifications::TOperationParsingResult TManager::DoBuildPatchFromSettings(const
}
}
-NMetadata::NModifications::IOperationsManager::TYqlConclusionStatus TManager::DoPrepare(NKqpProto::TKqpSchemeOperation& /*schemeOperation*/, const NYql::TObjectSettingsImpl& /*settings*/,
- const NMetadata::IClassBehaviour::TPtr& /*manager*/, NMetadata::NModifications::IOperationsManager::TInternalModificationContext& /*context*/) const {
- return NMetadata::NModifications::IOperationsManager::TYqlConclusionStatus::Fail(
- "Prepare operations for CS_EXT_INDEX objects are not supported");
-}
-
-NThreading::TFuture<NMetadata::NModifications::IOperationsManager::TYqlConclusionStatus> TManager::ExecutePrepared(const NKqpProto::TKqpSchemeOperation& /*schemeOperation*/,
- const ui32 /*nodeId*/, const NMetadata::IClassBehaviour::TPtr& /*manager*/, const IOperationsManager::TExternalModificationContext& /*context*/) const {
- return NThreading::MakeFuture(NMetadata::NModifications::IOperationsManager::TYqlConclusionStatus::Fail(
- "Execution of prepare operations for CS_EXT_INDEX objects is not supported"));
-}
-
}
diff --git a/ydb/services/ext_index/metadata/manager.h b/ydb/services/ext_index/metadata/manager.h
index 70bf635755..8a97b4e561 100644
--- a/ydb/services/ext_index/metadata/manager.h
+++ b/ydb/services/ext_index/metadata/manager.h
@@ -15,12 +15,6 @@ protected:
virtual NModifications::TOperationParsingResult DoBuildPatchFromSettings(
const NYql::TObjectSettingsImpl& settings, TInternalModificationContext& context) const override;
- virtual IOperationsManager::TYqlConclusionStatus DoPrepare(NKqpProto::TKqpSchemeOperation& schemeOperation, const NYql::TObjectSettingsImpl& settings,
- const NMetadata::IClassBehaviour::TPtr& manager, IOperationsManager::TInternalModificationContext& context) const override;
-
- virtual NThreading::TFuture<IOperationsManager::TYqlConclusionStatus> ExecutePrepared(const NKqpProto::TKqpSchemeOperation& schemeOperation,
- const ui32 nodeId, const NMetadata::IClassBehaviour::TPtr& manager, const IOperationsManager::TExternalModificationContext& context) const override;
-
public:
};
diff --git a/ydb/services/metadata/initializer/manager.cpp b/ydb/services/metadata/initializer/manager.cpp
index 3d6a1c54da..0856618f2e 100644
--- a/ydb/services/metadata/initializer/manager.cpp
+++ b/ydb/services/metadata/initializer/manager.cpp
@@ -17,16 +17,4 @@ NModifications::TOperationParsingResult TManager::DoBuildPatchFromSettings(
return result;
}
-NMetadata::NModifications::IOperationsManager::TYqlConclusionStatus TManager::DoPrepare(NKqpProto::TKqpSchemeOperation& /*schemeOperation*/, const NYql::TObjectSettingsImpl& /*settings*/,
- const NMetadata::IClassBehaviour::TPtr& /*manager*/, NMetadata::NModifications::IOperationsManager::TInternalModificationContext& /*context*/) const {
- return NMetadata::NModifications::IOperationsManager::TYqlConclusionStatus::Fail(
- "Prepare operations for INITIALIZATION objects are not supported");
-}
-
-NThreading::TFuture<NMetadata::NModifications::IOperationsManager::TYqlConclusionStatus> TManager::ExecutePrepared(const NKqpProto::TKqpSchemeOperation& /*schemeOperation*/,
- const ui32 /*nodeId*/, const NMetadata::IClassBehaviour::TPtr& /*manager*/, const IOperationsManager::TExternalModificationContext& /*context*/) const {
- return NThreading::MakeFuture(NMetadata::NModifications::IOperationsManager::TYqlConclusionStatus::Fail(
- "Execution of prepare operations for INITIALIZATION objects is not supported"));
-}
-
}
diff --git a/ydb/services/metadata/initializer/manager.h b/ydb/services/metadata/initializer/manager.h
index 3c4b04f783..036227b7b3 100644
--- a/ydb/services/metadata/initializer/manager.h
+++ b/ydb/services/metadata/initializer/manager.h
@@ -20,12 +20,6 @@ protected:
virtual NModifications::TOperationParsingResult DoBuildPatchFromSettings(const NYql::TObjectSettingsImpl& /*settings*/,
TInternalModificationContext& context) const override;
- virtual IOperationsManager::TYqlConclusionStatus DoPrepare(NKqpProto::TKqpSchemeOperation& schemeOperation, const NYql::TObjectSettingsImpl& settings,
- const NMetadata::IClassBehaviour::TPtr& manager, IOperationsManager::TInternalModificationContext& context) const override;
-
- virtual NThreading::TFuture<IOperationsManager::TYqlConclusionStatus> ExecutePrepared(const NKqpProto::TKqpSchemeOperation& schemeOperation,
- const ui32 nodeId, const NMetadata::IClassBehaviour::TPtr& manager, const IOperationsManager::TExternalModificationContext& context) const override;
-
public:
};
diff --git a/ydb/services/metadata/secret/ut/ut_secret.cpp b/ydb/services/metadata/secret/ut/ut_secret.cpp
index 7a5fc1cf6b..29799fb20c 100644
--- a/ydb/services/metadata/secret/ut/ut_secret.cpp
+++ b/ydb/services/metadata/secret/ut/ut_secret.cpp
@@ -291,6 +291,7 @@ Y_UNIT_TEST_SUITE(Secret) {
lHelper.StartSchemaRequest("ALTER OBJECT secret1 (TYPE SECRET) SET value = `abcde`");
lHelper.StartSchemaRequest("CREATE OBJECT `secret1:test@test1` (TYPE SECRET_ACCESS)");
lHelper.StartSchemaRequest("CREATE OBJECT `secret2:test@test1` (TYPE SECRET_ACCESS)", false);
+ lHelper.StartSchemaRequest("CREATE OBJECT IF NOT EXISTS `secret1:test@test1` (TYPE SECRET_ACCESS)");
lHelper.StartSchemaRequest("DROP OBJECT `secret1` (TYPE SECRET)", false);
lHelper.StartDataRequest("SELECT * FROM `/Root/.metadata/secrets/values`", false);
{