Leave only ODBCDriver2.
: IOutputFormat(header_, out_), format_settings(format_settings_)
{
}
void ODBCDriverBlockOutputFormat::consume(Chunk chunk)
{
    writePrefixIfNot();
    const size_t num_rows = chunk.getNumRows();
    const size_t num_columns = chunk.getNumColumns();
    const auto & columns = chunk.getColumns();
    const auto & header = getPort(PortKind::Main).getHeader();
    String text_value;
    for (size_t i = 0; i < num_rows; ++i)
    {
        for (size_t j = 0; j < num_columns; ++j)
        {
            text_value.resize(0);
            const auto & column = columns[j];
            const auto & type = header.getByPosition(j).type;
            {
                WriteBufferFromString text_out(text_value);
                type->serializeAsText(*column, i, text_out, format_settings);
            }
            writeStringBinary(text_value, out);
        }
    }
}
void ODBCDriverBlockOutputFormat::writePrefix()