Skip to content

Commit a74befa

Browse files
committed
Fixes
1 parent 46e1e9c commit a74befa

File tree

2 files changed

+33
-7
lines changed

2 files changed

+33
-7
lines changed

ydb/core/tx/schemeshard/schemeshard_export_flow_proposals.cpp

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,14 +76,37 @@ static NKikimrSchemeOp::TPathDescription GetTableDescription(TSchemeShard* ss, c
7676
opts.SetReturnPartitioningInfo(false);
7777
opts.SetReturnPartitionConfig(true);
7878
opts.SetReturnBoundaries(true);
79-
opts.SetReturnSetVal(true);
8079

8180
auto desc = DescribePath(ss, TlsActivationContext->AsActorContext(), pathId, opts);
8281
auto record = desc->GetRecord();
8382

8483
return record.GetPathDescription();
8584
}
8685

86+
void FillSetValForSequences(TSchemeShard* ss, NKikimrSchemeOp::TTableDescription& description,
87+
const TPathId& exportItemPathId) {
88+
NKikimrSchemeOp::TDescribeOptions opts;
89+
opts.SetReturnSetVal(true);
90+
91+
auto pathDescription = DescribePath(ss, TlsActivationContext->AsActorContext(), exportItemPathId, opts);
92+
auto tableDescription = pathDescription->GetRecord().GetPathDescription().GetTable();
93+
94+
THashMap<TString, NKikimrSchemeOp::TSequenceDescription::TSetVal> setValForSequences;
95+
96+
for (const auto& sequenceDescription : tableDescription.GetSequences()) {
97+
if (sequenceDescription.HasSetVal()) {
98+
setValForSequences[sequenceDescription.GetName()] = sequenceDescription.GetSetVal();
99+
}
100+
}
101+
102+
for (auto& sequenceDescription : *description.MutableSequences()) {
103+
auto it = setValForSequences.find(sequenceDescription.GetName());
104+
if (it != setValForSequences.end()) {
105+
*sequenceDescription.MutableSetVal() = it->second;
106+
}
107+
}
108+
}
109+
87110
THolder<TEvSchemeShard::TEvModifySchemeTransaction> BackupPropose(
88111
TSchemeShard* ss,
89112
TTxId txId,
@@ -107,11 +130,14 @@ THolder<TEvSchemeShard::TEvModifySchemeTransaction> BackupPropose(
107130
task.SetNeedToBill(!exportInfo->UserSID || !ss->SystemBackupSIDs.contains(*exportInfo->UserSID));
108131

109132
const TPath sourcePath = TPath::Init(exportInfo->Items[itemIdx].SourcePathId, ss);
110-
const TPath exportPathItem = exportPath.Child(ToString(itemIdx));
111-
if (sourcePath.IsResolved() && exportPathItem.IsResolved()) {
112-
auto exportDescription = GetTableDescription(ss, exportPathItem.Base()->PathId);
113-
exportDescription.MutableTable()->SetName(sourcePath.LeafName());
114-
task.MutableTable()->CopyFrom(exportDescription);
133+
const TPath exportItemPath = exportPath.Child(ToString(itemIdx));
134+
if (sourcePath.IsResolved() && exportItemPath.IsResolved()) {
135+
auto sourceDescription = GetTableDescription(ss, sourcePath.Base()->PathId);
136+
if (sourceDescription.HasTable()) {
137+
FillSetValForSequences(
138+
ss, *sourceDescription.MutableTable(), exportItemPath.Base()->PathId);
139+
}
140+
task.MutableTable()->CopyFrom(sourceDescription);
115141
}
116142

117143
task.SetSnapshotStep(exportInfo->SnapshotStep);

ydb/core/tx/schemeshard/schemeshard_impl.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6566,7 +6566,7 @@ void TSchemeShard::FillTableDescriptionForShardIdx(
65666566
<< ": path#d# " << childPathId
65676567
<< ", name# " << childName);
65686568
auto info = Sequences.at(childPathId);
6569-
DescribeSequence(childPathId, childName, info, *tableDescr->MutableSequences()->Add());
6569+
DescribeSequence(childPathId, childName, info, *tableDescr->MutableSequences()->Add(), false);
65706570
break;
65716571
}
65726572

0 commit comments

Comments
 (0)