These settings are autogenerated from source.
Always print a decimal point for floating-point and Decimal numbers in text formats, even when the value is a whole number. For example, output 1. instead of 1.
Disabled by default.
Compression method for Arrow output format. Supported codecs: lz4_frame, zstd, none (uncompressed)
Write Date values as plain 16-bit numbers (read back as UInt16), instead of converting to a 32-bit Arrow DATE32 type (read back as Date32).
Use Arrow FIXED_SIZE_BINARY type instead of Binary for FixedString columns.
Enable output LowCardinality type as Dictionary Arrow type
Use Arrow String type instead of Binary for String columns
Output types having no conversion as raw binary data. If false - such types would raise UNKNOWN_TYPE exception.
Always use 64 bit integers for dictionary indexes in Arrow format
Use the native ClickHouse writer for the Arrow and ArrowStream formats instead of the one based on the Apache Arrow library.
Use signed integers for dictionary indexes in Arrow format
Compression codec used for output. Possible values: ‘null’, ‘deflate’, ‘snappy’, ‘zstd’.
For AvroConfluent output format: the subject name under which the schema is registered in the Confluent Schema Registry. Required when writing AvroConfluent output.
Max rows in a file (if permitted by storage)
For Avro format: regexp of String columns to select as AVRO string.
Sync interval in bytes.
Write data types in binary format instead of type names in RowBinaryWithNamesAndTypes output format
Write values of JSON data type as JSON String values in RowBinary output format.
Use BSON String type instead of Binary for String columns.
Default compression level if query output is compressed. The setting is applied when SELECT query has INTO OUTFILE or when writing to table functions file, url, hdfs, s3, or azureBlobStorage.
Possible values: from 1 to 22
Can be used when the output compression method is zstd. If greater than 0, this setting explicitly sets compression window size (power of 2) and enables a long-range mode for zstd compression. This can help to achieve a better compression ratio.
Possible values: non-negative numbers. Note that if the value is too small or too big, zstdlib will throw an exception. Typical values are from 20 (window size = 1MB) to 30 (window size = 1GB).
If it is set true, end of line in CSV format will be \r\n instead of \n.
When output_format_csv_serialize_tuple_into_separate_columns is enabled, the header rows of CSVWithNames and CSVWithNamesAndTypes flatten each Tuple column into its leaf fields (dotted names like t.a, t.b, and the leaf type names), so the header has the same number of columns as the data. For CustomSeparated* this flattening applies only when format_custom_escaping_rule = 'CSV' and format_custom_field_delimiter is a single character equal to format_csv_delimiter; otherwise (for example the default tab delimiter or format_custom_field_delimiter = '|') the header stays unflattened so it still matches the data. Set it to 0 to keep the previous behavior where the header keeps the single top-level Tuple name and type.
Note: a flattened header is not read back into a Tuple by name when input_format_with_names_use_header = 1. To read such data back into a Tuple, either set this setting to 0 on output, or read with input_format_with_names_use_header = 0 (and, for the *WithNamesAndTypes formats CSVWithNamesAndTypes and CustomSeparatedWithNamesAndTypes, also input_format_with_types_use_header = 0, since the flattened types row is otherwise validated against the single top-level Tuple input field and rejected).
If it set to true, then Tuples in CSV format are serialized as separate columns (that is, their nesting in the tuple is lost)
Output trailing zeros when printing Decimal values. E.g. 1.230000 instead of 1.23.
Disabled by default.
When non-zero, format floating-point output (Float32, Float64, BFloat16) with at most this many digits after the decimal point (trailing zeros are removed).
When 0 (the default), use the shortest round-trip representation.
Values too large for fixed notation, and values whose magnitude is so small that rounding to the requested precision would lose all significant digits (the mantissa would become ±0), are emitted in scientific notation instead. In these fallback cases the mantissa may carry more than the requested number of fractional digits.
Valid range: 0 to 100.
The height of the output image in pixels for image output formats such as PNG.
Default value: 1024.
For image output formats such as PNG, output the image directly to the terminal using an inline image protocol instead of writing the raw image bytes.
Possible values:
- “ (empty) — write the raw image bytes (the default).
iterm — use the iTerm2 inline image protocol.
kitty — use the Kitty graphics protocol.
sixel — use the Sixel protocol.
auto — if the output is a terminal, detect its capabilities and use iterm, kitty, or sixel (in this order); otherwise write the raw image bytes.
Default value: “ (empty).
The width of the output image in pixels for image output formats such as PNG.
Default value: 1024.
Enables the ability to output all rows as a JSON array in the JSONEachRow format.
Possible values:
- 1 — ClickHouse outputs all rows as an array, each row in the
JSONEachRow format.
- 0 — ClickHouse outputs each row separately in the
JSONEachRow format.
Example of a query with the enabled setting
Query:
Result:
Example of a query with the disabled setting
Query:
Result:
Controls escaping forward slashes for string outputs in JSON output format. This is intended for compatibility with JavaScript. Don’t confuse with backslashes that are always escaped.
Enabled by default.
Serialize maps columns as JSON arrays of tuples.
Disabled by default.
Serialize named tuple columns as JSON objects.
Enabled by default.
This setting determines how nested structures such as Tuples, Maps, and Arrays are displayed within the data array when using the JSON output format.
For example, instead of output:
The output will be formatted as:
Enabled by default.
Controls quoting of 64-bit floats when they are output in JSON* formats.
Disabled by default.
Controls quoting of 64-bit or bigger integers (like UInt64 or Int128) when they are output in a JSON format.
Such integers are enclosed in quotes by default. This behavior is compatible with most JavaScript implementations.
Possible values:
- 0 — Integers are output without quotes.
- 1 — Integers are enclosed in quotes.
Controls quoting of decimals in JSON output formats.
Disabled by default.
Enables +nan, -nan, +inf, -inf outputs in JSON output format.
Possible values:
- 0 — Disabled.
- 1 — Enabled.
Example
Consider the following table account_orders:
When output_format_json_quote_denormals = 0, the query returns null values in output:
When output_format_json_quote_denormals = 1, the query returns:
Skip key value pairs with null value when serialize named tuple columns as JSON objects. It is only valid when output_format_json_named_tuples_as_objects is true.
Controls validation of UTF-8 sequences in JSON output formats, doesn’t impact formats JSON/JSONCompact/JSONColumnsWithMetadata, they always validate UTF-8.
Disabled by default.
When enabled, escape special characters in Markdown.
Common Mark defines the following special characters that can be escaped by :
Possible values:
The way how to output UUID in MsgPack format.
Write data types in binary format instead of type names in Native output format
Write data of JSON and Dynamic columns in a flattened format (all types/paths as separate subcolumns).
Write data of JSON column as String column containing JSON strings instead of default native JSON serialization.
The size of the compression block in bytes for ORC output format.
Compression method for ORC output format. Supported codecs: lz4, snappy, zlib, zstd, none (uncompressed)
For a string column in ORC output format, if the number of distinct values is greater than this fraction of the total number of non-null rows, turn off dictionary encoding. Otherwise dictionary encoding is enabled
Target row index stride in ORC output format
Use ORC String type instead of Binary for String columns
The time zone name for ORC writer, the default ORC writer’s time zone is GMT.
Enables or disables parallel formatting of data formats. Supported only for TSV, TSKV, CSV and JSONEachRow formats.
Possible values:
- 1 — Enabled.
- 0 — Disabled.
Check page size every this many rows. Consider decreasing if you have columns with average values size above a few KBs.
Approximate number of bits to use for each distinct value in parquet bloom filters. Estimated false positive rates:
- 6 bits - 10%
- 10.5 bits - 1%
- 16.9 bits - 0.1%
- 26.4 bits - 0.01%
- 41 bits - 0.001%
Where in the parquet file to place the bloom filters. Bloom filters will be written in groups of approximately this size. In particular:
- if 0, each row group’s bloom filters are written immediately after the row group,
- if greater than the total size of all bloom filters, bloom filters for all row groups will be accumulated in memory, then written together near the end of the file,
- otherwise, bloom filters will be accumulated in memory and written out whenever their total size goes above this value.
Compression method for Parquet output format. Supported codecs: snappy, lz4, brotli, zstd, gzip, none (uncompressed)
output_format_parquet_data_page_size
Target page size in bytes, before compression.
Write Date values as plain 16-bit numbers (read back as UInt16), instead of converting to a 32-bit parquet DATE type (read back as Date32).
Write DateTime values as raw unix timestamp (read back as UInt32), instead of converting to milliseconds (read back as DateTime64(3)).
Write enum using parquet physical type: BYTE_ARRAY and logical type: ENUM
Use Parquet FIXED_LEN_BYTE_ARRAY type instead of Binary for FixedString columns.
Allow to write information about geo columns in parquet metadata and encode columns in WKB format.
If dictionary size grows bigger than this many bytes, switch to encoding without dictionary. Set to 0 to disable dictionary encoding.
Do Parquet encoding in multiple threads.
Target row group size in rows.
Target row group size in bytes, before compression.
Use Parquet String type instead of Binary for String columns.
Write bloom filters in parquet files.
Put crc32 checksums in parquet page headers.
output_format_parquet_write_page_index
Write column index and offset index (i.e. statistics about each data page, which may be used for filter pushdown on read) into parquet files.
Use ANSI escape sequences in Pretty formats. 0 - disabled, 1 - enabled, ‘auto’ - enabled if a terminal.
Display column names in the footer if there are many table rows.
Possible values:
Example
Query:
Result:
Sets the minimum number of rows for which a footer with column names will be displayed if setting output_format_pretty_display_footer_column_names is enabled.
If enabled, and the table is wide but short, the Pretty format will output it as the Vertical format does.
See output_format_pretty_fallback_to_vertical_max_rows_per_chunk and output_format_pretty_fallback_to_vertical_min_table_width for detailed tuning of this behavior.
The fallback to Vertical format (see output_format_pretty_fallback_to_vertical) will be activated only if the number of records in a chunk is not more than the specified value.
The fallback to Vertical format (see output_format_pretty_fallback_to_vertical) will be activated only if the number of columns is greater than the specified value.
The fallback to Vertical format (see output_format_pretty_fallback_to_vertical) will be activated only if the sum of lengths of columns in a table is at least the specified value, or if at least one value contains a newline character.
If the data rendered in Pretty formats arrived in multiple chunks, even after a delay, but the next chunk has the same column widths as the previous, use ANSI escape sequences to move back to the previous line and overwrite the footer of the previous chunk to continue it with the data of the new chunk. This makes the result more visually pleasant.
0 - disabled, 1 - enabled, ‘auto’ - enabled if a terminal.
Charset for printing grid borders. Available charsets: ASCII, UTF-8 (default).
In interactive mode, clickhouse-client automatically switches to ASCII when the terminal does not support UTF-8 (as determined by the LC_ALL, LC_CTYPE and LANG environment variables), unless this setting is specified explicitly.
If enabled and if output is a terminal, highlight every digit corresponding to the number of thousands, millions, etc. with underline.
If enabled and if output is a terminal, highlight trailing spaces with a gray color and underline.
If the column name is too long, cut it to this length.
The column will be cut if it is longer than output_format_pretty_max_column_name_width_cut_to plus output_format_pretty_max_column_name_width_min_chars_to_cut.
Minimum characters to cut if the column name is too long.
The column will be cut if it is longer than output_format_pretty_max_column_name_width_cut_to plus output_format_pretty_max_column_name_width_min_chars_to_cut.
Maximum width to pad all values in a column in Pretty formats.
Rows limit for Pretty formats.
Maximum width of value to display in Pretty formats. If greater - it will be cut.
The value 0 means - never cut.
Only cut values (see the output_format_pretty_max_value_width setting) when it is not a single value in a block. Otherwise output it entirely, which is useful for the SHOW CREATE TABLE query.
If enabled, Pretty formats will render multi-line fields inside table cell, so the table’s outline will be preserved.
If not, they will be rendered as is, potentially deforming the table (one upside of keeping it off is that copy-pasting multi-line values will be easier).
Controls whether named tuples in Pretty format are output as pretty-printed JSON objects.
Add row numbers before each row for pretty output format
Print a readable number tip on the right side of the table if the block consists of a single number which exceeds this value (except 0)
Wait for the next block for up to specified number of milliseconds and squash it to the previous before writing.
This avoids frequent output of too small blocks, but still allows to display data in a streaming fashion.
Output the pending block in pretty formats if more than the specified number of milliseconds has passed since the previous output.
If enabled, padding in Pretty output formats is rendered with U+00A0 instead of an ASCII space.
The output remains visually identical in monospace, but the padding survives tools that compress or trim runs of regular spaces.
Only takes effect when output_format_pretty_grid_charset is UTF-8.
When serializing Nullable columns with Google wrappers, serialize default values as empty wrappers. If turned off, default and null values are not serialized
The path to the file where the automatically generated schema will be saved in Cap’n Proto or Protobuf formats.
Include column names in INSERT query
The maximum number of rows in one INSERT statement.
Quote column names with ’`’ characters
The name of table in the output INSERT query
Use REPLACE statement instead of INSERT
Trim trailing null bytes from FixedString values in text output formats. E.g. toFixedString('John', 8) is printed as John instead of John\0\0\0\0.
If it is set true, end of line in TSV format will be \r\n instead of \n.
If true escape ’ with ”, otherwise quoted with \’
Write statistics about read rows, bytes, time elapsed in suitable output formats.
Enabled by default Last modified on July 23, 2026