mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-25 03:00:49 +00:00
dbms: Got rid of code that should have been removed a long time ago. [#METR-19266]
This commit is contained in:
parent
568fe119fb
commit
0d2b542b4c
@ -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:
|
||||
};
|
||||
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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); }
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -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,6 +249,7 @@ void deserializeTextInternal(IColumn & column, ReadBuffer & istr, Reader && read
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
if (size)
|
||||
nested_column.popBack(size);
|
||||
throw;
|
||||
}
|
||||
@ -262,22 +257,16 @@ void deserializeTextInternal(IColumn & column, ReadBuffer & istr, Reader && read
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
#include <DB/IO/WriteBufferFromString.h>
|
||||
#include <DB/DataTypes/DataTypeEnum.h>
|
||||
#include <DB/DataTypes/NullSymbol.h>
|
||||
|
||||
|
||||
namespace DB
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -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>
|
||||
|
Loading…
Reference in New Issue
Block a user