Skip to content

Commit 1affb1d

Browse files
oschwaldclaude
andcommitted
Deprecate types 12 and 13 in spec
Neither type has ever been produced by any writer or appeared in any known database. Type 12 (data cache container) is superseded by pointer- based deduplication. Type 13 (end marker) is superseded by metadata- based section boundary calculation. Mark both as deprecated and explain their original intent. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 23f1def commit 1affb1d

File tree

1 file changed

+12
-16
lines changed

1 file changed

+12
-16
lines changed

MaxMind-DB-spec.md

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -385,27 +385,23 @@ size can be zero.
385385
This type uses the same algorithm as maps for determining the length of a
386386
field's payload.
387387

388-
### data cache container - 12
388+
### data cache container - 12 (deprecated)
389389

390-
This is a special data type that marks a container used to cache repeated
391-
data. For example, instead of repeating the string "United States" over and
392-
over in the database, we store it in the cache container and use pointers
393-
*into* this container instead.
390+
This type is deprecated. It has never been used in any known database and
391+
readers are not expected to support it.
394392

395-
Nothing in the database will ever contain a pointer to this field
396-
itself. Instead, various fields will point into the container.
393+
It was originally intended to mark a container of repeated data that a database
394+
dumper tool could skip. In practice, data deduplication is handled by pointers,
395+
making this type unnecessary.
397396

398-
The primary reason for making this a separate data type versus simply inlining
399-
the cached data is so that a database dumper tool can skip this cache when
400-
dumping the data section. The cache contents will end up being dumped as
401-
pointers into it are followed.
397+
### end marker - 13 (deprecated)
402398

403-
### end marker - 13
399+
This type is deprecated. It has never been used in any known database and
400+
readers are not expected to support it.
404401

405-
The end marker marks the end of the data section. It is not strictly
406-
necessary, but including this marker allows a data section deserializer to
407-
process a stream of input, rather than having to find the end of the section
408-
before beginning the deserialization.
402+
It was originally intended to mark the end of the data section for stream-based
403+
deserialization. In practice, readers determine section boundaries from the
404+
metadata, making this type unnecessary.
409405

410406
This data type is not followed by a payload, and its size is always zero.
411407

0 commit comments

Comments
 (0)