internetdata_result (internetdata v1.0.0)

View Source

Turns a decoded JSON body into the maps the client hands back.

Only a name the SPEC defines, at the POSITION the spec defines it, becomes an atom. Everything else keeps its binary key. That is not a style preference: schema, sample and size are keyed by format, and the rows under sample are keyed by the dataset's own column names, all of which are the server's to choose. Erlang's atom table is capped at 1,048,576 entries and is never garbage collected, so minting an atom per key off a body like that is a remote VM kill rather than a leak.

The consequence to read the results by: maps:get(base, Db) for a documented field, maps:get(<<"csvgz">>, Size) for anything keyed by format or by a dataset column.

Summary

Functions

Every digest published for one dataset file.

The catalog, one entry per dataset family.

Recent download attempts, refusals included.

One dataset's build document: schema, samples, row count, sizes.

Functions

checksums(Wire)

-spec checksums(map()) -> map().

Every digest published for one dataset file.

databases(Wire)

-spec databases([map()]) -> [map()].

The catalog, one entry per dataset family.

downloads(Wire)

-spec downloads([map()]) -> [map()].

Recent download attempts, refusals included.

metadata(Wire)

-spec metadata(map()) -> map().

One dataset's build document: schema, samples, row count, sizes.