Picking up a checkpoint fails if there is a pair of tables, where the first table name is a prefix of the second table name, and the second table name's next character sorts below "." For example, foo and foo-x would fail.
The reason is that picking up a checkpoint in __disagg_apply_checkpoint_meta uses four pairs of cursors to go through the colgroup, file, layered, and table metadata components of the table. Within each prefix, we assume that the table names are sorted the same way, but this is not the case, because the file metadata entries have dot-separated suffixes.
For example, note that:
- table:foo sorts before table:foo-x.
- file:foo.wt_stable sorts after file:foo-x.wt_stable.
This results in error messages, such as:
Missing shared file: metadata entry for layered table "foo": Invalid argument
The reproducer is attached.