#include #include #include #include #include namespace DB { ValuesRowOutputFormat::ValuesRowOutputFormat(WriteBuffer & out, Block header, const FormatSettings & format_settings) : IRowOutputFormat(std::move(header), out), format_settings(format_settings) { } void ValuesRowOutputFormat::writeField(const IColumn & column, const IDataType & type, size_t row_num) { type.serializeAsTextQuoted(column, row_num, out, format_settings); } void ValuesRowOutputFormat::writeFieldDelimiter() { writeChar(',', out); } void ValuesRowOutputFormat::writeRowStartDelimiter() { writeChar('(', out); } void ValuesRowOutputFormat::writeRowEndDelimiter() { writeChar(')', out); } void ValuesRowOutputFormat::writeRowBetweenDelimiter() { writeCString(",", out); } void registerOutputFormatProcessorValues(FormatFactory & factory) { factory.registerOutputFormatProcessor("Values", []( WriteBuffer & buf, const Block & sample, const Context &, const FormatSettings & settings) { return std::make_shared(buf, sample, settings); }); } }