```
yes | clickhouse-local --format LineAsString --structure 'line String' --progress --query "SELECT * FROM table" > /dev/null
```
IRowInputFormat(header_, in_, std::move(params_))
{
    if (header_.columns() != 1
        || !typeid_cast<const ColumnString *>(header_.getByPosition(0).column.get()))
    {
        throw Exception("This input format is only suitable for tables with a single column of type String.", ErrorCodes::INCORRECT_QUERY);
    }
}
void LineAsStringRowInputFormat::resetParser()
{
    IRowInputFormat::resetParser();
}
void LineAsStringRowInputFormat::readLineObject(IColumn & column)
{
    ColumnString & column_string = assert_cast<ColumnString &>(column);
    auto & chars = column_string.getChars();
    auto & offsets = column_string.getOffsets();
    readStringUntilNewlineInto(chars, *in);
    chars.push_back(0);
    offsets.push_back(chars.size());
    if (!in->eof())
        in->ignore(); 
}
bool LineAsStringRowInputFormat::readRow(MutableColumns & columns, RowReadExtension &)