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

Method build

src/IO/OffsetMap.cpp:14–44  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

12}
13
14void OffsetMap::build(const StoredObjects & objects)
15{
16 segments.clear();
17 total_size = 0;
18
19 for (const auto & obj : objects)
20 {
21 if (obj.bytes_size == StoredObject::UnknownSize)
22 {
23 /// An unknown-size object must appear alone: logical offsets for
24 /// anything following it cannot be computed.
25 if (objects.size() != 1)
26 throw Exception(ErrorCodes::BAD_ARGUMENTS,
27 "OffsetMap: unknown-size object is only supported in single-object pipelines (got {} objects)",
28 objects.size());
29 total_size = StoredObject::UnknownSize;
30 segments.push_back(Segment{
31 .object = obj,
32 .logical_offset = 0,
33 .size = StoredObject::UnknownSize,
34 });
35 return;
36 }
37 segments.push_back(Segment{
38 .object = obj,
39 .logical_offset = total_size,
40 .size = obj.bytes_size,
41 });
42 total_size += obj.bytes_size;
43 }
44}
45
46const StoredObject * OffsetMap::findObjectAt(size_t logical_offset, size_t * object_logical_start_offset) const
47{

Callers 15

skim_implFunction · 0.45
ReaderExecutorMethod · 0.45
readFileMethod · 0.45
TEST_FFunction · 0.45
loadDataMethod · 0.45
resolveAsFunctionMethod · 0.45
buildCastFunctionFunction · 0.45
rerunFunctionResolveFunction · 0.45
createCastFunctionFunction · 0.45

Calls 4

ExceptionClass · 0.70
clearMethod · 0.45
sizeMethod · 0.45
push_backMethod · 0.45

Tested by 1

TEST_FFunction · 0.36