diff options
author | ivanmorozov <ivanmorozov@yandex-team.com> | 2022-12-01 14:55:35 +0300 |
---|---|---|
committer | ivanmorozov <ivanmorozov@yandex-team.com> | 2022-12-01 14:55:35 +0300 |
commit | 01f01960ea6c6d9265fc376163264c32fb814152 (patch) | |
tree | f2e46527c4561a1801f45a6434964114f44c1ee9 | |
parent | d999b6bf3d7d05e72fc40475cec33946fca070af (diff) | |
download | ydb-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.cpp | 2 | ||||
-rw-r--r-- | ydb/services/metadata/initializer/initializer.cpp | 9 | ||||
-rw-r--r-- | ydb/services/metadata/manager/alter.h | 2 | ||||
-rw-r--r-- | ydb/services/metadata/manager/modification.h | 4 |
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(); |