MCPcopy Create free account
hub / github.com/ByConity/ByConity / writeData

Function writeData

src/DataStreams/NativeBlockOutputStream.cpp:66–101  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

64
65
66static void writeData(const IDataType & type, const ColumnPtr & column, WriteBuffer & ostr, UInt64 offset, UInt64 limit)
67{
68 /** If there are columns-constants - then we materialize them.
69 * (Since the data type does not know how to serialize / deserialize constants.)
70 */
71 ColumnPtr full_column = column->convertToFullColumnIfConst();
72
73 ISerialization::SerializeBinaryBulkSettings settings;
74 settings.getter = [&ostr](ISerialization::SubstreamPath) -> WriteBuffer * { return &ostr; };
75 settings.position_independent_encoding = false;
76 settings.low_cardinality_max_dictionary_size = 0; //-V1048
77 if (column->lowCardinality())
78 {
79 auto const *lc = typeid_cast<const ColumnLowCardinality *>(column.get());
80 if (lc->isFullState())
81 {
82 auto const *lc_type = typeid_cast<const DataTypeLowCardinality *>(&type);
83 if (lc_type)
84 {
85 auto full_type = lc_type->getFullLowCardinalityTypePtr();
86 auto serialization = full_type->getDefaultSerialization();
87 ISerialization::SerializeBinaryBulkStatePtr state;
88 serialization->serializeBinaryBulkStatePrefix(*full_column, settings, state);
89 serialization->serializeBinaryBulkWithMultipleStreams(*full_column, offset, limit, settings, state);
90 serialization->serializeBinaryBulkStateSuffix(settings, state);
91 return ;
92 }
93 }
94 }
95 auto serialization = type.getDefaultSerialization();
96
97 ISerialization::SerializeBinaryBulkStatePtr state;
98 serialization->serializeBinaryBulkStatePrefix(*full_column, settings, state);
99 serialization->serializeBinaryBulkWithMultipleStreams(*full_column, offset, limit, settings, state);
100 serialization->serializeBinaryBulkStateSuffix(settings, state);
101}
102
103
104void NativeBlockOutputStream::write(const Block & block)

Callers 1

writeMethod · 0.70

Tested by

no test coverage detected