libscid snapshot+b450b7969924
Chess applications made easy.
Source on GitHub License GPL v2
Loading...
Searching...
No Matches
Database Metadata

The metadata catalog is the resident, cheap-to-query side of an open database. It is not a separate public session: scidBaseT owns the catalog and exposes it through value snapshots, name resolution, list views, filters, searches and metadata updates.

Index maps database game numbers to compact IndexEntry records. NameBase owns the player, event, site and round strings named by those records. GameInfo is the copyable public view assembled from an index entry, while TagRoster is the borrowed Seven Tag Roster view used when metadata crosses the Core or storage boundary.

The catalog lets callers answer many database questions without decoding the encoded movetext. Game lists, sort keys, filters, flag updates, name-frequency statistics, duplicate hints, material prefilters and opening/tree shortcuts all start from IndexEntry plus NameBase. Full game loading is still available, but it is no longer the default cost for browsing a database.

Domain Model

This diagram expands the catalog into the public types programmers meet. It is intentionally loose: it shows the data path from compact storage records to copyable public snapshots and name strings, while leaving codec-specific file layout to the storage model.

Index owns the table of entries and keeps returned entry pointers stable while games are appended. IndexEntry is compact and storage-shaped: names are idNumberT handles, counts are packed buckets, flags are bit masks, and offsets point into the active game-data store. NameBase gives those handles meaning inside a name category such as player, event, site or round.

GameInfo is the public value snapshot for UI, query and service code. GameInfoUpdate is the narrow update shape for metadata-only edits. TagRoster bridges between the five standard PGN tag strings stored through the namebase and the compact IDs stored in an IndexEntry.