C#: the directory store's loaded id is its manifest's; the variant fixture names itself
A directory-store record's identity on disk is its manifest entry, which is what a commit condition compares; the page holds its own copy of the id. A load now takes StoredSchemaId from the manifest, so a manifest rewritten under an older id (AConditionOnARecordUnderADeclaredOldIdHoldsInTheDirectoryStore) is the id the condition expects. Canonicalisation had hidden the page and manifest disagreeing in that fixture. The whole-view test's variant overrides its name: a variant may not share its base's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
abb922cd57
commit
5607d9703d
2 changed files with 5 additions and 2 deletions
|
|
@ -339,11 +339,14 @@ public sealed class DirectoryMessagePackBackingStore : CacheBackingStore
|
|||
var started = tracePages ? Stopwatch.GetTimestamp() : 0L;
|
||||
var metadata = records[index];
|
||||
var record = ReadPersistedRecordPage(metadata, out var pagePayload);
|
||||
storedRecords[index] = ToStoredDocument(
|
||||
var stored = ToStoredDocument(
|
||||
record,
|
||||
catalogEntries,
|
||||
(type, payload) => CultDocumentMessagePackSerialization.DeserializeUntyped(type, payload, Registry),
|
||||
out recordReports[index]);
|
||||
// The manifest is this store's record of what is on disk, and what a commit condition compares with.
|
||||
stored.StoredSchemaId = metadata.SchemaId;
|
||||
storedRecords[index] = stored;
|
||||
if (tracePages)
|
||||
{
|
||||
pageBytes[index] = pagePayload.LongLength;
|
||||
|
|
|
|||
Loading…
Reference in a new issue