A system table that documents table engines
system.functions grew syntax, arguments and examples; system.table_engines is still just a list of capability flags. I asked for the syntax and parameters of each engine to live there too.
Source: github.com
system.functions now carries a description, syntax, arguments and examples per function, but system.table_engines is only capability flags. I wanted the syntax and parameters of each engine available from the server you are connected to, so that a client can complete an ENGINE = clause or offer console help without scraping the website. I opened the issue with “why not introduce table engines?”, not realising the table already existed, and sketched name, family, syntax and a parameters map.
The first reply, the same day, corrected me and gave the answer: keep the existing table and add a field with short documentation. That was the whole discussion. There is no PR; the issue has the labels feature, comp-system-table and external, and is open.
On 26.4 nothing has changed. The table has 74 engines and only these columns:
DESCRIBE system.table_engines;
-- name, supports_settings, supports_skipping_indices, supports_projections, supports_sort_order,
-- supports_ttl, supports_replication, supports_deduplication, supports_parallel_insert
The flags are still useful for questions like which engines accept a skipping index:
SELECT name FROM system.table_engines WHERE supports_skipping_indices ORDER BY name;
The request is small and waiting for someone to write the docstrings. The related gap in system.functions is the other side of the same completeness question.
Discussion
Comments live in GitHub Discussions. Sign in with GitHub to join in.