Blog· Tested on ClickHouse 26.4

Three small things: indexes, double SETTINGS and a nullable format

A roundup of tiny reports: indices vs indexes in setting names (fixed for 26.10), SETTINGS echoed twice (already fixed in 22.9 when I filed it), and a format() request that was my own mistake.

Source: github.com

Not every request is a design argument. Three small ones, in the order I filed them.

  • indices vs indexes (#37288). Both plurals are correct English and ClickHouse uses both: use_skip_indexes, but force_data_skipping_indices and system.data_skipping_indices. Type the wrong one and you get Unknown setting 'force_data_skipping_indexes': Maybe you meant [...] (checked on 26.4). A maintainer’s answer was to keep the old names and add aliases. Contributor msohail22 did that in PR #122565, merged 2026-09-29: allow_suspicious_indexes, ignore_data_skipping_indexes, force_data_skipping_indexes and secondary_indexes_enable_bulk_filtering now work, with the old names kept. It landed in the 26.10 development line, so it is not in 26.4.
  • SETTINGS printed twice (#40590). In August 2022 the client echoed a query with both FORMAT and SETTINGS and printed the SETTINGS line twice. The reply came the same day: already fixed, by PR #38900 (“Avoid printing SETTINGS twice when formatting a query”, merged 2022-08-23, release 22.9). My build predated the fix. Closed.
  • Schema inference for format (#64840). I asked the format function to infer a schema, then realised I had confused the scalar string formatter with the format table function, which already infers one. I closed it myself. The real snag in the same experiment, a null in the first row failing with ONLY_NULLS_WHILE_READING_SCHEMA on the 22.8 server I used, no longer happens: on 26.4 the column comes out as Nullable(String). I do not know which release changed that. See the format table function.
DESCRIBE format(JSONEachRow, '{"a":1,"b":null,"c":"x"}');
a   Nullable(Int64)
b   Nullable(String)
c   Nullable(String)

feature-requestusabilitysettings

Discussion

Comments live in GitHub Discussions. Sign in with GitHub to join in.