aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorivanmorozov <ivanmorozov@yandex-team.com>2022-12-01 14:55:35 +0300
committerivanmorozov <ivanmorozov@yandex-team.com>2022-12-01 14:55:35 +0300
commit01f01960ea6c6d9265fc376163264c32fb814152 (patch)
treef2e46527c4561a1801f45a6434964114f44c1ee9
parentd999b6bf3d7d05e72fc40475cec33946fca070af (diff)
downloadydb-01f01960ea6c6d9265fc376163264c32fb814152.tar.gz
commit usage for non-history objects
correct pk checker for drop object correct acl prepare for initializations table create method instead of alter for new lines in initializations
-rw-r--r--ydb/services/metadata/initializer/accessor_init.cpp2
-rw-r--r--ydb/services/metadata/initializer/initializer.cpp9
-rw-r--r--ydb/services/metadata/manager/alter.h2
-rw-r--r--ydb/services/metadata/manager/modification.h4
4 files changed, 14 insertions, 3 deletions
diff --git a/ydb/services/metadata/initializer/accessor_init.cpp b/ydb/services/metadata/initializer/accessor_init.cpp
index ad1dcff2260..bfe1d726441 100644
--- a/ydb/services/metadata/initializer/accessor_init.cpp
+++ b/ydb/services/metadata/initializer/accessor_init.cpp
@@ -59,7 +59,7 @@ void TDSAccessorInitialized::Handle(NInternal::NRequest::TEvRequestFinished::TPt
if (NMetadataProvider::TServiceOperator::IsEnabled() && InitializationSnapshot) {
TDBInitialization dbInit(ComponentId, Modifiers.front()->GetModificationId());
auto manager = std::make_shared<NMetadataInitializer::TManager>();
- auto alterCommand = std::make_shared<NMetadataManager::TAlterCommand<TDBInitialization>>(
+ auto alterCommand = std::make_shared<NMetadataManager::TCreateCommand<TDBInitialization>>(
dbInit.SerializeToRecord(), manager, InternalController, NMetadata::IOperationsManager::TModificationContext());
Sender<NMetadataProvider::TEvAlterObjects>(alterCommand)
.SendTo(NMetadataProvider::MakeServiceId(SelfId().NodeId()));
diff --git a/ydb/services/metadata/initializer/initializer.cpp b/ydb/services/metadata/initializer/initializer.cpp
index b0503002768..70b4ffd58fd 100644
--- a/ydb/services/metadata/initializer/initializer.cpp
+++ b/ydb/services/metadata/initializer/initializer.cpp
@@ -27,6 +27,15 @@ void TInitializer::DoPrepare(NMetadataInitializer::IInitializerInput::TPtr contr
}
result.emplace_back(new NMetadataInitializer::TGenericTableModifier<NInternal::NRequest::TDialogCreateTable>(request, "create"));
}
+ {
+ Ydb::Scheme::ModifyPermissionsRequest request;
+ request.set_path(TDBInitialization::GetStorageTablePath());
+ request.set_clear_permissions(true);
+ auto* permission = request.add_actions();
+ permission->mutable_grant()->set_subject("*");
+ permission->mutable_grant()->add_permission_names("ydb.tables.read");
+ result.emplace_back(new NMetadataInitializer::TGenericTableModifier<NInternal::NRequest::TDialogModifyPermissions>(request, "acl"));
+ }
controller->PreparationFinished(result);
}
diff --git a/ydb/services/metadata/manager/alter.h b/ydb/services/metadata/manager/alter.h
index 70712d9caf5..613feb4c3f5 100644
--- a/ydb/services/metadata/manager/alter.h
+++ b/ydb/services/metadata/manager/alter.h
@@ -315,7 +315,7 @@ protected:
TBase::ExternalController->AlterProblem("no pk columns in patch");
return false;
}
- if (!columns.size()) {
+ if (columns.size() != TObject::TDecoder::GetPKColumns().size()) {
TBase::ExternalController->AlterProblem("no columns for pk detection");
return false;
}
diff --git a/ydb/services/metadata/manager/modification.h b/ydb/services/metadata/manager/modification.h
index 67d975cdd76..759a78133b6 100644
--- a/ydb/services/metadata/manager/modification.h
+++ b/ydb/services/metadata/manager/modification.h
@@ -44,7 +44,6 @@ protected:
Ydb::Table::ExecuteDataQueryRequest request = Objects.BuildInsertQuery(TObject::GetStorageHistoryTablePath());
request.set_session_id(SessionId);
request.mutable_tx_control()->set_tx_id(TransactionId);
- request.mutable_tx_control()->set_commit_tx(true);
Requests.emplace_back(std::move(request));
}
@@ -92,6 +91,9 @@ public:
TBase::Become(&TModifyObjectsActor::StateMain);
BuildRequestDirect();
BuildRequestHistory();
+ Y_VERIFY(Requests.size());
+ Requests.back().mutable_tx_control()->set_commit_tx(true);
+
TBase::Register(new NInternal::NRequest::TYDBRequest<NInternal::NRequest::TDialogYQLRequest>(
Requests.front(), SystemUserToken, TBase::SelfId()));
Requests.pop_front();