|
@@ -34,12 +34,14 @@ public:
|
|
|
TVector<NKikimrSchemeOp::TColumnDescription> columns,
|
|
|
TVector<TString> keyColumns,
|
|
|
NKikimrServices::EServiceKikimr logService,
|
|
|
- TMaybe<NKikimrSchemeOp::TTTLSettings> ttlSettings = Nothing())
|
|
|
+ TMaybe<NKikimrSchemeOp::TTTLSettings> ttlSettings = Nothing(),
|
|
|
+ bool isSystemUser = false)
|
|
|
: PathComponents(std::move(pathComponents))
|
|
|
, Columns(std::move(columns))
|
|
|
, KeyColumns(std::move(keyColumns))
|
|
|
, LogService(logService)
|
|
|
, TtlSettings(std::move(ttlSettings))
|
|
|
+ , IsSystemUser(isSystemUser)
|
|
|
, LogPrefix("Table " + TableName() + " updater. ")
|
|
|
{
|
|
|
Y_ABORT_UNLESS(!PathComponents.empty());
|
|
@@ -86,8 +88,8 @@ public:
|
|
|
pathComponents.emplace_back(PathComponents[i]);
|
|
|
}
|
|
|
modifyScheme.SetWorkingDir(CanonizePath(pathComponents));
|
|
|
- LOG_DEBUG_S(*TlsActivationContext, LogService,
|
|
|
- LogPrefix << "Full table path:" << modifyScheme.GetWorkingDir() << "/" << TableName());
|
|
|
+ TString fullPath = modifyScheme.GetWorkingDir() + "/" + TableName();
|
|
|
+ LOG_DEBUG_S(*TlsActivationContext, LogService, LogPrefix << "Full table path:" << fullPath);
|
|
|
modifyScheme.SetOperationType(OperationType);
|
|
|
modifyScheme.SetInternal(true);
|
|
|
modifyScheme.SetAllowAccessToPrivatePaths(true);
|
|
@@ -108,6 +110,9 @@ public:
|
|
|
if (TtlSettings) {
|
|
|
tableDesc->MutableTTLSettings()->CopyFrom(*TtlSettings);
|
|
|
}
|
|
|
+ if (IsSystemUser) {
|
|
|
+ request->Record.SetUserToken(NACLib::TSystemUsers::Metadata().SerializeAsString());
|
|
|
+ }
|
|
|
Send(MakeTxProxyID(), std::move(request));
|
|
|
}
|
|
|
|
|
@@ -376,6 +381,7 @@ private:
|
|
|
const TVector<TString> KeyColumns;
|
|
|
NKikimrServices::EServiceKikimr LogService;
|
|
|
const TMaybe<NKikimrSchemeOp::TTTLSettings> TtlSettings;
|
|
|
+ bool IsSystemUser = false;
|
|
|
NKikimrSchemeOp::EOperationType OperationType = NKikimrSchemeOp::EOperationType::ESchemeOpCreateTable;
|
|
|
NActors::TActorId Owner;
|
|
|
NActors::TActorId SchemePipeActorId;
|
|
@@ -473,10 +479,11 @@ NActors::IActor* CreateTableCreator(
|
|
|
TVector<NKikimrSchemeOp::TColumnDescription> columns,
|
|
|
TVector<TString> keyColumns,
|
|
|
NKikimrServices::EServiceKikimr logService,
|
|
|
- TMaybe<NKikimrSchemeOp::TTTLSettings> ttlSettings)
|
|
|
+ TMaybe<NKikimrSchemeOp::TTTLSettings> ttlSettings,
|
|
|
+ bool isSystemUser)
|
|
|
{
|
|
|
return new TTableCreator(std::move(pathComponents), std::move(columns),
|
|
|
- std::move(keyColumns), logService, std::move(ttlSettings));
|
|
|
+ std::move(keyColumns), logService, std::move(ttlSettings), isSystemUser);
|
|
|
}
|
|
|
|
|
|
} // namespace NKikimr
|