From ab9ce18fc7c4bdf6c34b4a040f7a9f86f3be5a6f Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Wed, 17 Apr 2019 23:15:57 +0300 Subject: [PATCH] Added CSV (de)serialization --- dbms/src/Formats/TemplateBlockOutputStream.cpp | 7 +++++++ dbms/src/Formats/TemplateBlockOutputStream.h | 1 + dbms/src/Formats/TemplateRowInputStream.cpp | 3 +++ 3 files changed, 11 insertions(+) diff --git a/dbms/src/Formats/TemplateBlockOutputStream.cpp b/dbms/src/Formats/TemplateBlockOutputStream.cpp index f26f248edc0..3986fff8bc1 100644 --- a/dbms/src/Formats/TemplateBlockOutputStream.cpp +++ b/dbms/src/Formats/TemplateBlockOutputStream.cpp @@ -94,6 +94,8 @@ ParsedTemplateFormat::ColumnFormat ParsedTemplateFormat::stringToFormat(const St return ColumnFormat::Escaped; else if (col_format == "Quoted") return ColumnFormat::Quoted; + else if (col_format == "CSV") + return ColumnFormat::Csv; else if (col_format == "JSON") return ColumnFormat::Json; else if (col_format == "XML") @@ -119,6 +121,8 @@ String ParsedTemplateFormat::formatToString(ParsedTemplateFormat::ColumnFormat f return "Escaped"; case ColumnFormat::Quoted: return "Quoted"; + case ColumnFormat::Csv: + return "CSV"; case ColumnFormat::Json: return "Json"; case ColumnFormat::Xml: @@ -226,6 +230,9 @@ void TemplateBlockOutputStream::serializeField(const IColumn & column, const IDa case ColumnFormat::Quoted: type.serializeAsTextQuoted(column, row_num, ostr, settings); break; + case ColumnFormat::Csv: + type.serializeAsTextCSV(column, row_num, ostr, settings); + break; case ColumnFormat::Json: type.serializeAsTextJSON(column, row_num, ostr, settings); break; diff --git a/dbms/src/Formats/TemplateBlockOutputStream.h b/dbms/src/Formats/TemplateBlockOutputStream.h index c64d70cbc18..ef41e3dba2e 100644 --- a/dbms/src/Formats/TemplateBlockOutputStream.h +++ b/dbms/src/Formats/TemplateBlockOutputStream.h @@ -17,6 +17,7 @@ struct ParsedTemplateFormat Default, Escaped, Quoted, + Csv, Json, Xml, Raw diff --git a/dbms/src/Formats/TemplateRowInputStream.cpp b/dbms/src/Formats/TemplateRowInputStream.cpp index 13737ca99c2..9c1576a8260 100644 --- a/dbms/src/Formats/TemplateRowInputStream.cpp +++ b/dbms/src/Formats/TemplateRowInputStream.cpp @@ -101,6 +101,9 @@ void TemplateRowInputStream::deserializeField(const IDataType & type, IColumn & case ColumnFormat::Quoted: type.deserializeAsTextQuoted(column, buf, settings); break; + case ColumnFormat::Csv: + type.deserializeAsTextCSV(column, buf, settings); + break; case ColumnFormat::Json: type.deserializeAsTextJSON(column, buf, settings); break;