# Delimited format settings

Tab-separated and Hive text delimiters, headers, defaults, and row boundaries.

Use a statement `SETTINGS` clause. Defaults in `system.settings` are read-only;
format settings cannot be persisted with `SET`. Put input settings before
`FORMAT`, because the bytes after the format name are input data.

## hive_text_collection_separator

Type: `Char`

Default value: `\x02`

The byte between outermost Array and Tuple elements or Map entries on output; input uses bracketed values.

Applies to: `hive_text`.

## hive_text_map_separator

Type: `Char`

Default value: `\x03`

The byte between outermost Map keys and values, also used at the next nested level on output.

Applies to: `hive_text`.

## hive_text_row_separator

Type: `Char`

Default value: `\n`

The byte ending each output row; input always reads newline-delimited CSV records.

Applies to: `hive_text`.

## hive_text_separator

Type: `Char`

Default value: `\x01`

The byte between top-level fields when reading and writing, with no output quoting or escaping.

Applies to: `hive_text`.

## hive_text_uneven_rows

Type: `Bool`

Default value: `1`

Give omitted trailing input columns their DEFAULT and skip extra fields; off requires the exact field count.

Applies to: `hive_text`.

## tab_separated_check_types

Type: `Bool`

Default value: `1`

Compare the input types header with the bound target column types; when off, skip that header.

Applies to: `tab_separated_with_names_and_types`.

## tab_separated_crlf

Type: `Bool`

Default value: `0`

End each written row with a carriage return and a line feed instead of a line feed.

Applies to: `tab_separated`, `tab_separated_raw`, `tab_separated_with_names`, `tab_separated_with_names_and_types`.

## tab_separated_detect_header

Type: `Bool`

Default value: `1`

Recognize a raw TSV names header and optional matching types header before reading data.

Applies to: `tab_separated_raw`.

## tab_separated_empty_as_default

Type: `Bool`

Default value: `0`

Give an empty field the column's DEFAULT instead of reading it as empty text.

Applies to: `tab_separated`, `tab_separated_raw`, `tab_separated_with_names`, `tab_separated_with_names_and_types`.

## tab_separated_enum_by_number

Type: `Bool`

Default value: `0`

Read a whole number in an Enum column as the label's number instead of its name.

Applies to: `tab_separated`, `tab_separated_raw`, `tab_separated_with_names`, `tab_separated_with_names_and_types`.

## tab_separated_match_names

Type: `Bool`

Default value: `1`

Match input names to target columns ignoring ASCII case; when off, skip the names header and read in target order.

Applies to: `tab_separated_with_names`, `tab_separated_with_names_and_types`.

## tab_separated_null_text

Type: `String`

Default value: `\N`

The field text that stands for NULL when reading and writing; it cannot contain tabs or line breaks.

Applies to: `tab_separated`, `tab_separated_raw`, `tab_separated_with_names`, `tab_separated_with_names_and_types`.

## tab_separated_read_crlf

Type: `Bool`

Default value: `0`

Accept carriage-return/line-feed endings in raw TSV input, removing the carriage return from each record.

Applies to: `tab_separated_raw`.

## tab_separated_skip_empty_lines

Type: `Bool`

Default value: `0`

Ignore empty lines at the end of raw TSV input; empty lines inside the data remain records.

Applies to: `tab_separated_raw`.

## tab_separated_skip_lines

Type: `UInt64`

Default value: `0`

Ignore this many lines at the start of the input, before any header row.

Applies to: `tab_separated`, `tab_separated_raw`, `tab_separated_with_names`, `tab_separated_with_names_and_types`.

## tab_separated_uneven_rows

Type: `Bool`

Default value: `0`

Accept rows with too few or too many fields: missing fields take the column's DEFAULT and extra fields are dropped.

Applies to: `tab_separated`, `tab_separated_raw`, `tab_separated_with_names`, `tab_separated_with_names_and_types`.
