MCPcopy Create free account
hub / github.com/ClickHouse/ClickHouse / encode

Method encode

src/Storages/MergeTree/MergeTreeIndexTextPostingListCodec.cpp:242–264  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

240}
241
242void PostingListCodecBitpacking::encode(
243 const PostingList & postings, size_t max_rowids_in_segment, TokenPostingsInfo & info, WriteBuffer & out) const
244{
245 PostingListCodecBitpackingImpl impl(max_rowids_in_segment);
246 std::vector<uint32_t> rowids;
247 rowids.resize(postings.cardinality());
248 postings.toUint32Array(rowids.data());
249
250 std::span<uint32_t> rowids_view(rowids.data(), rowids.size());
251 while (rowids_view.size() >= BLOCK_SIZE)
252 {
253 auto front = rowids_view.first(BLOCK_SIZE);
254 impl.insert(front);
255 rowids_view = rowids_view.subspan(BLOCK_SIZE);
256 }
257
258 if (!rowids_view.empty())
259 {
260 for (auto rowid: rowids_view)
261 impl.insert(rowid);
262 }
263 impl.encode(out, info);
264}
265}
266

Callers 2

serializeMethod · 0.45
makeMultiBlockDataFunction · 0.45

Calls 6

resizeMethod · 0.45
cardinalityMethod · 0.45
dataMethod · 0.45
sizeMethod · 0.45
insertMethod · 0.45
emptyMethod · 0.45

Tested by 1

makeMultiBlockDataFunction · 0.36