```
CREATE TABLE testTSV
(
    A Date,
    S LowCardinality(Nullable(String)),
    X Int32,
    S1 LowCardinality(Nullable(String)),
    S2 Array(String)
)
ENGINE = Memory;

printf '2020-01-01\t\N\t32\t\N\n'|clickhouse-client -q 'insert into testTSV format TSV'

 DB::Exception: Unexpected NULL value of not Nullable type LowCardinality(Nullable(String)) (version 20.12.8.5 (official build))
```

But the real error is a missing column in the input stream, because I passed 4 columns instead of 5
```
printf '2020-01-01\t\N\t32\t\N\t[]\n'|clickhouse-client -q 'insert into testTSV format TSV'
ok
```
{
    NullOutput null_sink;
    for (size_t i = 0; i < num_columns; ++i)
    {
        readEscapedStringInto(null_sink, in);
        assertChar(i == num_columns - 1 ? '\n' : '\t', in);
    }
}
/** Check for a common error case - usage of Windows line feed.
  */
static void checkForCarriageReturn(ReadBuffer & in)
{
    if (in.position()[0] == '\r' || (in.position() != in.buffer().begin() && in.position()[-1] == '\r'))
        throw Exception("\nYou have carriage return (\\r, 0x0D, ASCII 13) at end of first row."
            "\nIt's like your input data has DOS/Windows style line separators, that are illegal in TabSeparated format."
            " You must transform your file to Unix format."
            "\nBut if you really need carriage return at end of string value of last column, you need to escape it as \\r.",
            ErrorCodes::INCORRECT_DATA);
}
TabSeparatedRowInputFormat::TabSeparatedRowInputFormat(const Block & header_, ReadBuffer & in_, const Params & params_,