Format Settings

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)

## output\_format\_pretty\_squash\_consecutive\_ms[​](#output_format_pretty_squash_consecutive_ms "Direct link to output_format_pretty_squash_consecutive_ms")

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\_format\_pretty\_squash\_max\_wait\_ms[​](#output_format_pretty_squash_max_wait_ms "Direct link to output_format_pretty_squash_max_wait_ms")

Output the pending block in pretty formats if more than the specified number of milliseconds has passed since the previous output.

## output\_format\_protobuf\_nullables\_with\_google\_wrappers[​](#output_format_protobuf_nullables_with_google_wrappers "Direct link to output_format_protobuf_nullables_with_google_wrappers")

When serializing Nullable columns with Google wrappers, serialize default values as empty wrappers. If turned off, default and null values are not serialized

## output\_format\_schema[​](#output_format_schema "Direct link to output_format_schema")

The path to the file where the automatically generated schema will be saved in [Cap'n Proto](/docs/interfaces/formats/CapnProto) or [Protobuf](/docs/interfaces/formats/Protobuf) formats.

## output\_format\_sql\_insert\_include\_column\_names[​](#output_format_sql_insert_include_column_names "Direct link to output_format_sql_insert_include_column_names")

Include column names in INSERT query

## output\_format\_sql\_insert\_max\_batch\_size[​](#output_format_sql_insert_max_batch_size "Direct link to output_format_sql_insert_max_batch_size")

The maximum number of rows in one INSERT statement.

## output\_format\_sql\_insert\_quote\_names[​](#output_format_sql_insert_quote_names "Direct link to output_format_sql_insert_quote_names")

Quote column names with '`' characters

## output\_format\_sql\_insert\_table\_name[​](#output_format_sql_insert_table_name "Direct link to output_format_sql_insert_table_name")

The name of table in the output INSERT query

## output\_format\_sql\_insert\_use\_replace[​](#output_format_sql_insert_use_replace "Direct link to output_format_sql_insert_use_replace")

Use REPLACE statement instead of INSERT

## output\_format\_trim\_fixed\_string[​](#output_format_trim_fixed_string "Direct link to output_format_trim_fixed_string")

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`.

## output\_format\_tsv\_crlf\_end\_of\_line[​](#output_format_tsv_crlf_end_of_line "Direct link to output_format_tsv_crlf_end_of_line")

If it is set true, end of line in TSV format will be \r\n instead of \n.

## output\_format\_values\_escape\_quote\_with\_quote[​](#output_format_values_escape_quote_with_quote "Direct link to output_format_values_escape_quote_with_quote")

If true escape ' with '', otherwise quoted with \'

## output\_format\_write\_statistics[​](#output_format_write_statistics "Direct link to output_format_write_statistics")

Write statistics about read rows, bytes, time elapsed in suitable output formats.

Enabled by default

## precise\_float\_parsing[​](#precise_float_parsing "Direct link to precise_float_parsing")

Prefer more precise (but slower) float parsing algorithm

## schema\_inference\_hints[​](#schema_inference_hints "Direct link to schema_inference_hints")

The list of column names and types to use as hints in schema inference for formats without schema.

Example:

Query:

```
desc format(JSONEachRow, '{"x" : 1, "y" : "String", "z" : "0.0.0.0" }') settings schema_inference_hints='x UInt8, z IPv4';
```

Result:

```
x   UInt8
y   Nullable(String)
z   IPv4
```

Note

If the `schema_inference_hints` is not formatted properly, or if there is a typo or a wrong datatype, etc... the whole schema\_inference\_hints will be ignored.

## schema\_inference\_make\_columns\_nullable[​](#schema_inference_make_columns_nullable "Direct link to schema_inference_make_columns_nullable")

Controls making inferred types `Nullable` in schema inference.
Possible values:

- 0 - the inferred type will never be `Nullable` (use input\_format\_null\_as\_default to control what do do with null values in this case),
- 1 - all inferred types will be `Nullable`,
- 2 or `auto` - the inferred type will be `Nullable` only if the column contains `NULL` in a sample that is parsed during schema inference or file metadata contains information about column nullability,
- 3 - the inferred type nullability will match file metadata if the format has it (e.g. Parquet), always Nullable otherwise (e.g. CSV).

## schema\_inference\_make\_json\_columns\_nullable[​](#schema_inference_make_json_columns_nullable "Direct link to schema_inference_make_json_columns_nullable")

Controls making inferred JSON types `Nullable` in schema inference.
If this setting is enabled together with schema\_inference\_make\_columns\_nullable, inferred JSON type will be `Nullable`.

## schema\_inference\_mode[​](#schema_inference_mode "Direct link to schema_inference_mode")

Mode of schema inference. 'default' - assume that all files have the same schema and schema can be inferred from any file, 'union' - files can have different schemas and the resulting schema should be the a union of schemas of all files

## show\_create\_query\_identifier\_quoting\_rule[​](#show_create_query_identifier_quoting_rule "Direct link to show_create_query_identifier_quoting_rule")

Set the quoting rule for identifiers in SHOW CREATE query

## show\_create\_query\_identifier\_quoting\_style[​](#show_create_query_identifier_quoting_style "Direct link to show_create_query_identifier_quoting_style")

Set the quoting style for identifiers in SHOW CREATE query

## type\_json\_allow\_duplicated\_key\_with\_literal\_and\_nested\_object[​](#type_json_allow_duplicated_key_with_literal_and_nested_object "Direct link to type_json_allow_duplicated_key_with_literal_and_nested_object")

When enabled, JSONs like `{"a" : 42, "a" : {"b" : 42}}` where some key is duplicated but one of them is a nested object are allowed to be parsed.

## type\_json\_skip\_duplicated\_paths[​](#type_json_skip_duplicated_paths "Direct link to type_json_skip_duplicated_paths")

When enabled, during parsing JSON object into JSON type duplicated paths will be ignored and only the first one will be inserted instead of an exceptio

## type\_json\_skip\_invalid\_typed\_paths[​](#type_json_skip_invalid_typed_paths "Direct link to type_json_skip_invalid_typed_paths")

When enabled, fields with values that cannot be coerced to their declared type in JSON type columns with typed paths are skipped instead of throwing an error. Skipped fields are treated as missing and will use default/null values based on the typed path definition.

This setting only applies to JSON type columns (e.g., JSON(a Int64, b String)) where specific paths have declared types. It does not apply to regular JSON input formats like JSONEachRow when inserting into regular typed columns.

Possible values:

- 0 — Disable (throw error on type mismatch).
- 1 — Enable (skip field on type mismatch).

## type\_json\_use\_partial\_match\_to\_skip\_paths\_by\_regexp[​](#type_json_use_partial_match_to_skip_paths_by_regexp "Direct link to type_json_use_partial_match_to_skip_paths_by_regexp")

When enabled, during parsing JSON object into JSON type regular expressions specified using SKIP REGEXP will require partial match to skip a path. When disabled, full match will be required.

## validate\_experimental\_and\_suspicious\_types\_inside\_nested\_types[​](#validate_experimental_and_suspicious_types_inside_nested_types "Direct link to validate_experimental_and_suspicious_types_inside_nested_types")

Validate usage of experimental and suspicious types inside nested types like Array/Map/Tuple