mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-10-18 22:40:50 +00:00
97f2a2213e
* Move some code outside dbms/src folder * Fix paths
45 lines
1.1 KiB
C++
45 lines
1.1 KiB
C++
#include <Common/typeid_cast.h>
|
|
#include <DataTypes/DataTypeNothing.h>
|
|
#include <DataTypes/DataTypeFactory.h>
|
|
#include <Columns/ColumnNothing.h>
|
|
#include <IO/ReadBuffer.h>
|
|
#include <IO/WriteBuffer.h>
|
|
|
|
|
|
namespace DB
|
|
{
|
|
|
|
MutableColumnPtr DataTypeNothing::createColumn() const
|
|
{
|
|
return ColumnNothing::create(0);
|
|
}
|
|
|
|
void DataTypeNothing::serializeBinaryBulk(const IColumn & column, WriteBuffer & ostr, size_t offset, size_t limit) const
|
|
{
|
|
size_t size = column.size();
|
|
|
|
if (limit == 0 || offset + limit > size)
|
|
limit = size - offset;
|
|
|
|
for (size_t i = 0; i < limit; ++i)
|
|
ostr.write('0');
|
|
}
|
|
|
|
void DataTypeNothing::deserializeBinaryBulk(IColumn & column, ReadBuffer & istr, size_t limit, double /*avg_value_size_hint*/) const
|
|
{
|
|
typeid_cast<ColumnNothing &>(column).addSize(istr.tryIgnore(limit));
|
|
}
|
|
|
|
bool DataTypeNothing::equals(const IDataType & rhs) const
|
|
{
|
|
return typeid(rhs) == typeid(*this);
|
|
}
|
|
|
|
|
|
void registerDataTypeNothing(DataTypeFactory & factory)
|
|
{
|
|
factory.registerSimpleDataType("Nothing", [] { return DataTypePtr(std::make_shared<DataTypeNothing>()); });
|
|
}
|
|
|
|
}
|