dbms: Got rid of code that should have been removed a long time ago. [#METR-19266]

This commit is contained in:
Alexey Arno 2016-08-12 17:29:02 +03:00
parent 568fe119fb
commit 0d2b542b4c
16 changed files with 151 additions and 229 deletions

View File

@ -48,20 +48,17 @@ public:
void deserializeBinary(IColumn & column, ReadBuffer & istr) const override;
void serializeBinary(const IColumn & column, WriteBuffer & ostr, size_t offset = 0, size_t limit = 0) const override;
void deserializeBinary(IColumn & column, ReadBuffer & istr, size_t limit, double avg_value_size_hint) const override;
void serializeTextEscaped(const IColumn & column, size_t row_num, WriteBuffer & ostr) const;
void deserializeTextEscaped(IColumn & column, ReadBuffer & istr)const;
void serializeTextQuoted(const IColumn & column, size_t row_num, WriteBuffer & ostr) const;
void deserializeTextQuoted(IColumn & column, ReadBuffer & istr) const;
void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void serializeTextEscaped(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextEscaped(IColumn & column, ReadBuffer & istr) const override;
void serializeTextQuoted(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextQuoted(IColumn & column, ReadBuffer & istr) const override;
void serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextJSON(IColumn & column, ReadBuffer & istr) const override;
void serializeTextXML(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void serializeTextCSV(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char delimiter) const override;
void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void serializeTextXML(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
ColumnPtr createColumn() const override;
ColumnPtr createConstColumn(size_t size, const Field & field) const override;
@ -69,8 +66,6 @@ public:
{
throw Exception("There is no default value for AggregateFunction data type", ErrorCodes::THERE_IS_NO_DEFAULT_VALUE);
}
private:
};

View File

@ -32,14 +32,28 @@ public:
return std::make_shared<DataTypeArray>(enriched_nested);
}
void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeText(IColumn & column, ReadBuffer & istr) const;
void serializeBinary(const Field & field, WriteBuffer & ostr) const override;
void deserializeBinary(Field & field, ReadBuffer & istr) const override;
void serializeBinary(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeBinary(IColumn & column, ReadBuffer & istr) const override;
void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeText(IColumn & column, ReadBuffer & istr) const;
void serializeTextEscaped(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextEscaped(IColumn & column, ReadBuffer & istr) const override;
void serializeTextQuoted(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextQuoted(IColumn & column, ReadBuffer & istr) const override;
void serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextJSON(IColumn & column, ReadBuffer & istr) const override;
void serializeTextXML(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void serializeTextCSV(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char delimiter) const override;
/** Потоковая сериализация массивов устроена по-особенному:
* - записываются/читаются элементы, уложенные подряд, без размеров массивов;
* - размеры записываются/читаются в отдельный столбец,
@ -55,19 +69,6 @@ public:
*/
void deserializeBinary(IColumn & column, ReadBuffer & istr, size_t limit, double avg_value_size_hint) const override;
void serializeTextEscaped(const IColumn & column, size_t row_num, WriteBuffer & ostr) const;
void deserializeTextEscaped(IColumn & column, ReadBuffer & istr)const;
void serializeTextQuoted(const IColumn & column, size_t row_num, WriteBuffer & ostr) const;
void deserializeTextQuoted(IColumn & column, ReadBuffer & istr) const;
void serializeTextXML(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextJSON(IColumn & column, ReadBuffer & istr) const override;
void serializeTextCSV(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char delimiter) const override;
/** Записать размеры. */
void serializeOffsets(const IColumn & column, WriteBuffer & ostr, size_t offset = 0, size_t limit = 0) const;
@ -85,10 +86,6 @@ public:
const DataTypePtr & getNestedType() const { return nested; }
const DataTypeTraits::EnrichedDataTypePtr & getEnrichedNestedType() const { return enriched_nested; }
const DataTypePtr & getOffsetsType() const { return offsets; }
private:
void serializeTextInternal(const IColumn & column, size_t row_num, WriteBuffer & ostr) const;
void deserializeTextQuotedInternal(IColumn & column, ReadBuffer & istr) const;
};
}

View File

@ -20,28 +20,32 @@ public:
std::string getName() const override { return "Date"; }
DataTypePtr clone() const override { return std::make_shared<DataTypeDate>(); }
private:
void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override
{
writeDateText(DayNum_t(static_cast<const ColumnType &>(column).getData()[row_num]), ostr);
}
void serializeTextEscaped(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override
{
writeDateText(DayNum_t(static_cast<const ColumnType &>(column).getData()[row_num]), ostr);
}
void deserializeTextEscaped(IColumn & column, ReadBuffer & istr) const override
static void deserializeText(IColumn & column, ReadBuffer & istr)
{
DayNum_t x;
readDateText(x, istr);
static_cast<ColumnType &>(column).getData().push_back(x);
}
void serializeTextEscaped(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override
{
serializeText(column, row_num, ostr);
}
void deserializeTextEscaped(IColumn & column, ReadBuffer & istr) const override
{
deserializeText(column, istr);
}
void serializeTextQuoted(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override
{
writeChar('\'', ostr);
writeDateText(DayNum_t(static_cast<const ColumnType &>(column).getData()[row_num]), ostr);
serializeText(column, row_num, ostr);
writeChar('\'', ostr);
}
@ -57,7 +61,7 @@ private:
void serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override
{
writeChar('"', ostr);
writeDateText(DayNum_t(static_cast<const ColumnType &>(column).getData()[row_num]), ostr);
serializeText(column, row_num, ostr);
writeChar('"', ostr);
}
@ -73,7 +77,7 @@ private:
void serializeTextCSV(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override
{
writeChar('"', ostr);
writeDateText(DayNum_t(static_cast<const ColumnType &>(column).getData()[row_num]), ostr);
serializeText(column, row_num, ostr);
writeChar('"', ostr);
}

View File

@ -20,12 +20,18 @@ public:
std::string getName() const override { return "DateTime"; }
DataTypePtr clone() const override { return std::make_shared<DataTypeDateTime>(); }
private:
void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override
{
writeDateTimeText(static_cast<const ColumnType &>(column).getData()[row_num], ostr);
}
static void deserializeText(IColumn & column, ReadBuffer & istr)
{
time_t x;
readDateTimeText(x, istr);
static_cast<ColumnType &>(column).getData().push_back(x);
}
void serializeTextEscaped(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override
{
serializeText(column, row_num, ostr);
@ -33,9 +39,7 @@ private:
void deserializeTextEscaped(IColumn & column, ReadBuffer & istr) const override
{
time_t x;
readDateTimeText(x, istr);
static_cast<ColumnType &>(column).getData().push_back(x);
deserializeText(column, istr);
}
void serializeTextQuoted(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override

View File

@ -76,22 +76,19 @@ public:
void deserializeBinary(Field & field, ReadBuffer & istr) const override;
void serializeBinary(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeBinary(IColumn & column, ReadBuffer & istr) const override;
void serializeBinary(const IColumn & column, WriteBuffer & ostr, const size_t offset = 0, size_t limit = 0) const override;
void deserializeBinary(IColumn & column, ReadBuffer & istr, const size_t limit, const double avg_value_size_hint) const override;
void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void serializeTextEscaped(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextEscaped(IColumn & column, ReadBuffer & istr) const override;
void serializeTextQuoted(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextQuoted(IColumn & column, ReadBuffer & istr) const override;
void serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextJSON(IColumn & column, ReadBuffer & istr) const override;
void serializeTextXML(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void serializeTextCSV(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char delimiter) const override;
void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void serializeTextXML(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void serializeBinary(const IColumn & column, WriteBuffer & ostr, const size_t offset = 0, size_t limit = 0) const override;
void deserializeBinary(IColumn & column, ReadBuffer & istr, const size_t limit, const double avg_value_size_hint) const override;
size_t getSizeOfField() const override { return sizeof(FieldType); }

View File

@ -44,19 +44,22 @@ public:
void serializeBinary(const IColumn & column, WriteBuffer & ostr, size_t offset = 0, size_t limit = 0) const override;
void deserializeBinary(IColumn & column, ReadBuffer & istr, size_t limit, double avg_value_size_hint) const override;
void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void serializeTextEscaped(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextEscaped(IColumn & column, ReadBuffer & istr) const override;
void serializeTextQuoted(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextQuoted(IColumn & column, ReadBuffer & istr) const override;
void serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextJSON(IColumn & column, ReadBuffer & istr) const override;
void serializeTextXML(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void serializeTextCSV(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char delimiter) const override;
void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void serializeTextXML(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
ColumnPtr createColumn() const override;
ColumnPtr createConstColumn(size_t size, const Field & field) const override;

View File

@ -31,19 +31,22 @@ public:
void serializeBinary(const IColumn & column, WriteBuffer & ostr, size_t offset = 0, size_t limit = 0) const override;
void deserializeBinary(IColumn & column, ReadBuffer & istr, size_t limit, double avg_value_size_hint) const override;
void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void serializeTextEscaped(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextEscaped(IColumn & column, ReadBuffer & istr) const override;
void serializeTextQuoted(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextQuoted(IColumn & column, ReadBuffer & istr) const override;
void serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextJSON(IColumn & column, ReadBuffer & istr) const override;
void serializeTextXML(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void serializeTextCSV(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char delimiter) const override;
void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void serializeTextXML(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
ColumnPtr createColumn() const override;
ColumnPtr createConstColumn(size_t size, const Field & field) const override;

View File

@ -25,6 +25,19 @@ public:
void deserializeBinary(Field & field, ReadBuffer & istr) const override;
void serializeBinary(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeBinary(IColumn & column, ReadBuffer & istr) const override;
void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeText(IColumn & column, ReadBuffer & istr) const;
void serializeTextEscaped(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextEscaped(IColumn & column, ReadBuffer & istr) const override;
void serializeTextQuoted(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextQuoted(IColumn & column, ReadBuffer & istr) const override;
void serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextJSON(IColumn & column, ReadBuffer & istr) const override;
void serializeTextXML(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
/// Кортежи в формате CSV будем сериализовать, как отдельные столбцы (то есть, теряя их вложенность в кортеж).
void serializeTextCSV(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char delimiter) const override;
void serializeBinary(const IColumn & column, WriteBuffer & ostr, size_t offset = 0, size_t limit = 0) const override;
@ -34,29 +47,11 @@ public:
*/
void deserializeBinary(IColumn & column, ReadBuffer & istr, size_t limit, double avg_value_size_hint) const override;
void serializeTextEscaped(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextEscaped(IColumn & column, ReadBuffer & istr) const override;
void serializeTextQuoted(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextQuoted(IColumn & column, ReadBuffer & istr) const override;
void serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextJSON(IColumn & column, ReadBuffer & istr) const override;
/// Кортежи в формате CSV будем сериализовать, как отдельные столбцы (то есть, теряя их вложенность в кортеж).
void serializeTextCSV(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char delimiter) const override;
void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
void serializeTextXML(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
ColumnPtr createColumn() const override;
ColumnPtr createConstColumn(size_t size, const Field & field) const override;
Field getDefault() const override;
const DataTypes & getElements() const { return elems; }
private:
void deserializeText(IColumn & column, ReadBuffer & istr) const;
};
}

View File

@ -13,82 +13,36 @@ namespace DB
*/
class IDataTypeDummy : public IDataType
{
private:
void throwNoSerialization() const
{
throw Exception("Serialization is not implemented for data type " + getName(), ErrorCodes::NOT_IMPLEMENTED);
}
public:
void serializeBinary(const Field & field, WriteBuffer & ostr) const override
{
throwNoSerialization();
}
void deserializeBinary(Field & field, ReadBuffer & istr) const override
{
throwNoSerialization();
}
void serializeBinary(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override
{
throwNoSerialization();
}
void deserializeBinary(IColumn & column, ReadBuffer & istr) const override
{
throwNoSerialization();
}
void serializeBinary(const Field & field, WriteBuffer & ostr) const override { throwNoSerialization(); }
void deserializeBinary(Field & field, ReadBuffer & istr) const override { throwNoSerialization(); }
void serializeBinary(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override { throwNoSerialization(); }
void deserializeBinary(IColumn & column, ReadBuffer & istr) const override { throwNoSerialization(); }
void serializeBinary(const IColumn & column, WriteBuffer & ostr,
size_t offset = 0, size_t limit = 0) const override
{
throwNoSerialization();
}
size_t offset = 0, size_t limit = 0) const override { throwNoSerialization(); }
void deserializeBinary(IColumn & column, ReadBuffer & istr, size_t limit, double avg_value_size_hint) const override
{
throwNoSerialization();
}
void deserializeBinary(IColumn & column, ReadBuffer & istr, size_t limit, double avg_value_size_hint) const override { throwNoSerialization(); }
void serializeTextEscaped(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override
{
throwNoSerialization();
}
void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override { throwNoSerialization(); }
void deserializeTextEscaped(IColumn & column, ReadBuffer & istr) const override
{
throwNoSerialization();
}
void serializeTextEscaped(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override { throwNoSerialization(); }
void deserializeTextEscaped(IColumn & column, ReadBuffer & istr) const override { throwNoSerialization(); }
void serializeTextQuoted(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override
{
throwNoSerialization();
}
void serializeTextQuoted(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override { throwNoSerialization(); }
void deserializeTextQuoted(IColumn & column, ReadBuffer & istr) const override { throwNoSerialization(); }
void deserializeTextQuoted(IColumn & column, ReadBuffer & istr) const override
{
throwNoSerialization();
}
void serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override { throwNoSerialization(); }
void deserializeTextJSON(IColumn & column, ReadBuffer & istr) const override { throwNoSerialization(); }
void serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override
{
throwNoSerialization();
}
void deserializeTextJSON(IColumn & column, ReadBuffer & istr) const override
{
throwNoSerialization();
}
void serializeTextCSV(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override
{
throwNoSerialization();
}
void deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char delimiter) const override
{
throwNoSerialization();
}
void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override
{
throwNoSerialization();
}
void serializeTextCSV(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override { throwNoSerialization(); }
void deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char delimiter) const override { throwNoSerialization(); }
ColumnPtr createColumn() const override
{
@ -104,12 +58,6 @@ public:
{
throw Exception("Method getDefault() is not implemented for data type " + getName(), ErrorCodes::NOT_IMPLEMENTED);
}
private:
void throwNoSerialization() const
{
throw Exception("Serialization is not implemented for data type " + getName(), ErrorCodes::NOT_IMPLEMENTED);
}
};
}

View File

@ -3,7 +3,6 @@
#include <cmath> /// std::isfinite
#include <DB/DataTypes/IDataType.h>
#include <DB/DataTypes/NullSymbol.h>
#include <DB/IO/ReadHelpers.h>
#include <DB/IO/WriteHelpers.h>
@ -30,40 +29,31 @@ public:
bool isNumeric() const override { return true; }
bool behavesAsNumber() const override { return true; }
size_t getSizeOfField() const override { return sizeof(FieldType); }
Field getDefault() const override
{
return typename NearestFieldType<FieldType>::Type();
}
private:
template <typename Null> inline void deserializeText(IColumn & column, ReadBuffer & istr) const;
protected:
void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override
{
writeText(static_cast<const ColumnType &>(column).getData()[row_num], ostr);
}
static inline void deserializeText(IColumn & column, ReadBuffer & istr);
void serializeTextEscaped(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override
{
writeText(static_cast<const ColumnType &>(column).getData()[row_num], ostr);
serializeText(column, row_num, ostr);
}
void deserializeTextEscaped(IColumn & column, ReadBuffer & istr) const override
{
deserializeText<NullSymbol::Escaped>(column, istr);
deserializeText(column, istr);
}
void serializeTextQuoted(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override
{
writeText(static_cast<const ColumnType &>(column).getData()[row_num], ostr);
serializeText(column, row_num, ostr);
}
void deserializeTextQuoted(IColumn & column, ReadBuffer & istr) const override
{
deserializeText<NullSymbol::Quoted>(column, istr);
deserializeText(column, istr);
}
inline void serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
@ -80,10 +70,10 @@ protected:
FieldType x;
/// null
if (!has_quote && !istr.eof() && *istr.position() == NullSymbol::JSON::prefix)
if (!has_quote && !istr.eof() && *istr.position() == 'n')
{
++istr.position();
assertString(NullSymbol::JSON::suffix, istr);
assertString("ull", istr);
x = valueForJSONNull();
}
@ -100,7 +90,7 @@ protected:
void serializeTextCSV(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override
{
writeText(static_cast<const ColumnType &>(column).getData()[row_num], ostr);
serializeText(column, row_num, ostr);
}
void deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char delimiter) const override
@ -109,6 +99,13 @@ protected:
readCSV(x, istr);
static_cast<ColumnType &>(column).getData().push_back(x);
}
size_t getSizeOfField() const override { return sizeof(FieldType); }
Field getDefault() const override
{
return typename NearestFieldType<FieldType>::Type();
}
};
template <>
@ -119,8 +116,7 @@ public:
bool isNumeric() const override { return true; }
bool behavesAsNumber() const override { return true; }
size_t getSizeOfField() const override { return 0; }
Field getDefault() const override { return {}; }
void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override {}
void serializeTextEscaped(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override {}
void deserializeTextEscaped(IColumn & column, ReadBuffer & istr) const override {}
void serializeTextQuoted(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override {}
@ -129,74 +125,64 @@ public:
void deserializeTextJSON(IColumn & column, ReadBuffer & istr) const override {}
void serializeTextCSV(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override {}
void deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char delimiter) const override {}
void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override {}
size_t getSizeOfField() const override { return 0; }
Field getDefault() const override { return {}; }
};
template <typename FType>
inline void IDataTypeNumber<FType>::serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
template <typename FType> inline void IDataTypeNumber<FType>::serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
{
writeText(static_cast<const ColumnType &>(column).getData()[row_num], ostr);
serializeText(column, row_num, ostr);
}
template <>
inline void IDataTypeNumber<Int64>::serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
template <> inline void IDataTypeNumber<Int64>::serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
{
writeChar('"', ostr);
writeText(static_cast<const ColumnType &>(column).getData()[row_num], ostr);
serializeText(column, row_num, ostr);
writeChar('"', ostr);
}
template <>
inline void IDataTypeNumber<UInt64>::serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
template <> inline void IDataTypeNumber<UInt64>::serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
{
writeChar('"', ostr);
writeText(static_cast<const ColumnType &>(column).getData()[row_num], ostr);
serializeText(column, row_num, ostr);
writeChar('"', ostr);
}
template <>
inline void IDataTypeNumber<Float32>::serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
template <> inline void IDataTypeNumber<Float32>::serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
{
auto x = static_cast<const ColumnType &>(column).getData()[row_num];
if (likely(std::isfinite(x)))
writeText(x, ostr);
else
writeCString(NullSymbol::JSON::name, ostr);
writeCString("null", ostr);
}
template <>
inline void IDataTypeNumber<Float64>::serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
template <> inline void IDataTypeNumber<Float64>::serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
{
auto x = static_cast<const ColumnType &>(column).getData()[row_num];
if (likely(std::isfinite(x)))
writeText(x, ostr);
else
writeCString(NullSymbol::JSON::name, ostr);
writeCString("null", ostr);
}
template <typename FType>
template <typename Null>
inline void IDataTypeNumber<FType>::deserializeText(IColumn & column, ReadBuffer & istr) const
template <typename FType> inline void IDataTypeNumber<FType>::deserializeText(IColumn & column, ReadBuffer & istr)
{
FieldType x;
readIntTextUnsafe(x, istr);
static_cast<ColumnType &>(column).getData().push_back(x);
}
template <>
template <typename Null>
inline void IDataTypeNumber<Float64>::deserializeText(IColumn & column, ReadBuffer & istr) const
template <> inline void IDataTypeNumber<Float64>::deserializeText(IColumn & column, ReadBuffer & istr)
{
FieldType x;
Float64 x;
readText(x, istr);
static_cast<ColumnType &>(column).getData().push_back(x);
}
template <>
template <typename Null>
inline void IDataTypeNumber<Float32>::deserializeText(IColumn & column, ReadBuffer & istr) const
template <> inline void IDataTypeNumber<Float32>::deserializeText(IColumn & column, ReadBuffer & istr)
{
FieldType x;
Float64 x;
readText(x, istr);
static_cast<ColumnType &>(column).getData().push_back(x);
}

View File

@ -164,11 +164,13 @@ void DataTypeAggregateFunction::serializeText(const IColumn & column, size_t row
writeString(serializeToString(function, column, row_num), ostr);
}
void DataTypeAggregateFunction::serializeTextEscaped(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
{
writeEscapedString(serializeToString(function, column, row_num), ostr);
}
void DataTypeAggregateFunction::deserializeTextEscaped(IColumn & column, ReadBuffer & istr) const
{
String s;
@ -176,11 +178,13 @@ void DataTypeAggregateFunction::deserializeTextEscaped(IColumn & column, ReadBuf
deserializeFromString(function, column, s);
}
void DataTypeAggregateFunction::serializeTextQuoted(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
{
writeQuotedString(serializeToString(function, column, row_num), ostr);
}
void DataTypeAggregateFunction::deserializeTextQuoted(IColumn & column, ReadBuffer & istr) const
{
String s;
@ -188,11 +192,13 @@ void DataTypeAggregateFunction::deserializeTextQuoted(IColumn & column, ReadBuff
deserializeFromString(function, column, s);
}
void DataTypeAggregateFunction::serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
{
writeJSONString(serializeToString(function, column, row_num), ostr);
}
void DataTypeAggregateFunction::deserializeTextJSON(IColumn & column, ReadBuffer & istr) const
{
String s;
@ -200,16 +206,19 @@ void DataTypeAggregateFunction::deserializeTextJSON(IColumn & column, ReadBuffer
deserializeFromString(function, column, s);
}
void DataTypeAggregateFunction::serializeTextXML(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
{
writeXMLString(serializeToString(function, column, row_num), ostr);
}
void DataTypeAggregateFunction::serializeTextCSV(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
{
writeCSV(serializeToString(function, column, row_num), ostr);
}
void DataTypeAggregateFunction::deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char delimiter) const
{
String s;
@ -217,6 +226,7 @@ void DataTypeAggregateFunction::deserializeTextCSV(IColumn & column, ReadBuffer
deserializeFromString(function, column, s);
}
ColumnPtr DataTypeAggregateFunction::createColumn() const
{
return std::make_shared<ColumnAggregateFunction>(function);
@ -227,5 +237,6 @@ ColumnPtr DataTypeAggregateFunction::createConstColumn(size_t size, const Field
throw Exception("Const column with aggregate function is not supported", ErrorCodes::NOT_IMPLEMENTED);
}
}

View File

@ -187,7 +187,8 @@ void DataTypeArray::deserializeOffsets(IColumn & column, ReadBuffer & istr, size
offsets.resize(i);
}
void DataTypeArray::serializeTextInternal(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
void DataTypeArray::serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
{
const ColumnArray & column_array = static_cast<const ColumnArray &>(column);
const ColumnArray::Offsets_t & offsets = column_array.getOffsets();
@ -207,16 +208,9 @@ void DataTypeArray::serializeTextInternal(const IColumn & column, size_t row_num
writeChar(']', ostr);
}
void DataTypeArray::serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
{
serializeTextInternal(column, row_num, ostr);
}
namespace
{
template <typename Reader>
void deserializeTextInternal(IColumn & column, ReadBuffer & istr, Reader && read_nested)
static void deserializeTextImpl(IColumn & column, ReadBuffer & istr, Reader && read_nested)
{
ColumnArray & column_array = static_cast<ColumnArray &>(column);
ColumnArray::Offsets_t & offsets = column_array.getOffsets();
@ -255,29 +249,24 @@ void deserializeTextInternal(IColumn & column, ReadBuffer & istr, Reader && read
}
catch (...)
{
nested_column.popBack(size);
if (size)
nested_column.popBack(size);
throw;
}
offsets.push_back((offsets.empty() ? 0 : offsets.back()) + size);
}
}
void DataTypeArray::deserializeTextQuotedInternal(IColumn & column, ReadBuffer & istr) const
{
deserializeTextInternal(column, istr, [&](IColumn & nested_column) { nested->deserializeTextQuoted(nested_column, istr); });
}
void DataTypeArray::deserializeText(IColumn & column, ReadBuffer & istr) const
{
deserializeTextQuotedInternal(column, istr);
deserializeTextImpl(column, istr, [&](IColumn & nested_column) { nested->deserializeTextQuoted(nested_column, istr); });
}
void DataTypeArray::serializeTextEscaped(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
{
serializeTextInternal(column, row_num, ostr);
serializeText(column, row_num, ostr);
}
@ -289,7 +278,7 @@ void DataTypeArray::deserializeTextEscaped(IColumn & column, ReadBuffer & istr)
void DataTypeArray::serializeTextQuoted(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
{
serializeTextInternal(column, row_num, ostr);
serializeText(column, row_num, ostr);
}
@ -322,7 +311,7 @@ void DataTypeArray::serializeTextJSON(const IColumn & column, size_t row_num, Wr
void DataTypeArray::deserializeTextJSON(IColumn & column, ReadBuffer & istr) const
{
deserializeTextInternal(column, istr, [&](IColumn & nested_column) { nested->deserializeTextJSON(nested_column, istr); });
deserializeTextImpl(column, istr, [&](IColumn & nested_column) { nested->deserializeTextJSON(nested_column, istr); });
}
@ -353,7 +342,7 @@ void DataTypeArray::serializeTextCSV(const IColumn & column, size_t row_num, Wri
String s;
{
WriteBufferFromString wb(s);
serializeTextInternal(column, row_num, wb);
serializeText(column, row_num, wb);
}
writeCSV(s, ostr);
}
@ -364,7 +353,7 @@ void DataTypeArray::deserializeTextCSV(IColumn & column, ReadBuffer & istr, cons
String s;
readCSV(s, istr, delimiter);
ReadBufferFromString rb(s);
deserializeTextQuotedInternal(column, rb);
deserializeText(column, rb);
}

View File

@ -1,6 +1,5 @@
#include <DB/IO/WriteBufferFromString.h>
#include <DB/DataTypes/DataTypeEnum.h>
#include <DB/DataTypes/NullSymbol.h>
namespace DB

View File

@ -6,7 +6,6 @@
#include <DB/Columns/ColumnConst.h>
#include <DB/DataTypes/DataTypeFixedString.h>
#include <DB/DataTypes/NullSymbol.h>
#include <DB/IO/ReadHelpers.h>
#include <DB/IO/WriteHelpers.h>
@ -112,8 +111,6 @@ void DataTypeFixedString::serializeTextEscaped(const IColumn & column, size_t ro
writeAnyEscapedString<'\''>(pos, pos + n, ostr);
}
namespace
{
template <typename Reader>
static inline void read(const DataTypeFixedString & self, IColumn & column, Reader && reader)
@ -141,7 +138,6 @@ static inline void read(const DataTypeFixedString & self, IColumn & column, Read
}
}
}
void DataTypeFixedString::deserializeTextEscaped(IColumn & column, ReadBuffer & istr) const
{

View File

@ -5,7 +5,6 @@
#include <DB/Columns/ColumnConst.h>
#include <DB/DataTypes/DataTypeString.h>
#include <DB/DataTypes/NullSymbol.h>
#include <DB/IO/ReadHelpers.h>
#include <DB/IO/WriteHelpers.h>
@ -223,8 +222,6 @@ void DataTypeString::serializeTextEscaped(const IColumn & column, size_t row_num
writeEscapedString(static_cast<const ColumnString &>(column).getDataAt(row_num), ostr);
}
namespace
{
template <typename Reader>
static inline void read(IColumn & column, ReadBuffer & istr, Reader && reader)
@ -250,7 +247,6 @@ static inline void read(IColumn & column, ReadBuffer & istr, Reader && reader)
}
}
}
void DataTypeString::deserializeTextEscaped(IColumn & column, ReadBuffer & istr) const
{

View File

@ -3,7 +3,6 @@
#include <DB/DataStreams/NativeBlockInputStream.h>
#include <DB/DataStreams/NativeBlockOutputStream.h>
#include <DB/DataTypes/DataTypeTuple.h>
#include <DB/DataTypes/NullSymbol.h>
#include <ext/map.hpp>
#include <ext/enumerate.hpp>