Provide correct order in collect_keyspace

This commit is contained in:
Konstantin Knizhnik
2023-05-24 10:36:16 +03:00
parent 2a243f5eb3
commit 4b5ce61c32
+22 -2
View File
@@ -550,7 +550,9 @@ impl Timeline {
let mut dbs: Vec<(Oid, Oid)> = dbdir.dbdirs.keys().cloned().collect();
dbs.sort_unstable();
for (spcnode, dbnode) in dbs {
for (spcnode, dbnode) in &dbs {
let spcnode = *spcnode;
let dbnode = *dbnode;
result.add_key(relmap_file_key(spcnode, dbnode));
result.add_key(rel_dir_to_key(spcnode, dbnode));
@@ -566,7 +568,9 @@ impl Timeline {
let relsize = buf.get_u32_le();
result.add_range(rel_block_to_key(rel, 0)..rel_block_to_key(rel, relsize));
result.add_key(relsize_key);
if self.format_version == 4 {
result.add_key(relsize_key);
}
}
}
@@ -607,6 +611,22 @@ impl Timeline {
result.add_key(CONTROLFILE_KEY);
result.add_key(CHECKPOINT_KEY);
if self.format_version > 4 {
// Store relation metadata
for (spcnode, dbnode) in dbs {
let mut rels: Vec<RelTag> = self
.list_rels(spcnode, dbnode, lsn, ctx)
.await?
.into_iter()
.collect();
rels.sort_unstable();
for rel in rels {
let relsize_key = self.rel_size_to_key(rel);
result.add_key(relsize_key);
}
}
}
Ok(result.to_keyspace())
}