# CustomSeparated format settings

Custom-separated formats expose field, row and result delimiters plus an escaping grammar. Hive text uses its own field, collection and map separators.

Choose an escaping grammar that protects delimiter characters in field content. Hive output does not add escaping for embedded separators. Names headers are separate from positional values.

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.

## custom_separated_detect_header

Type: `Bool`

Default value: `1`

Recognize an input names header and an optional matching types header.

Applies to: `custom_separated`.

## custom_separated_escaping

Type: `String`

Default value: `Escaped`

Field grammar: Escaped, Quoted, CSV, JSON, XML (output only), or Raw.

Applies to: `custom_separated`, `custom_separated_with_names`.

## custom_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: `custom_separated_with_names`.

## custom_separated_result_prefix

Type: `String`

Default value: `''`

Text before the entire input or output result.

Applies to: `custom_separated`, `custom_separated_with_names`.

## custom_separated_result_suffix

Type: `String`

Default value: `''`

Text after the entire input or output result.

Applies to: `custom_separated`, `custom_separated_with_names`.

## custom_separated_row_prefix

Type: `String`

Default value: `''`

Text before the first field of each input or output row.

Applies to: `custom_separated`, `custom_separated_with_names`.

## custom_separated_row_separator

Type: `String`

Default value: `''`

Text between input or output rows, excluding their own prefixes and suffixes.

Applies to: `custom_separated`, `custom_separated_with_names`.

## custom_separated_row_suffix

Type: `String`

Default value: `\n`

Text after the last field of each input or output row.

Applies to: `custom_separated`, `custom_separated_with_names`.

## custom_separated_separator

Type: `String`

Default value: `\t`

Text between input or output fields; may contain multiple bytes.

Applies to: `custom_separated`, `custom_separated_with_names`.

## custom_separated_skip_empty_lines

Type: `Bool`

Default value: `0`

Skip trailing CR and LF bytes after the result; one final LF is always accepted.

Applies to: `custom_separated`, `custom_separated_with_names`.

## custom_separated_uneven_rows

Type: `Bool`

Default value: `0`

Give omitted input fields their SQL or native defaults and validate then skip extra fields.

Applies to: `custom_separated`, `custom_separated_with_names`.
