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

Method executeImpl

src/Functions/coverage.cpp:68–110  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

66 }
67
68 ColumnPtr executeImpl(const ColumnsWithTypeAndName &, const DataTypePtr &, size_t input_rows_count) const override
69 {
70#if defined(__ELF__) && !defined(OS_FREEBSD)
71 const DB::CurrentCoverageRegions regions = DB::getCurrentCoverageRegions();
72
73 if (kind == Kind::Files)
74 {
75 auto column = ColumnString::create();
76 for (const auto & f : regions.files)
77 column->insertData(f.data(), f.size());
78 auto offsets = ColumnArray::ColumnOffsets::create(1, regions.files.size());
79 auto array = ColumnArray::create(std::move(column), std::move(offsets));
80 return ColumnConst::create(std::move(array), input_rows_count);
81 }
82 if (kind == Kind::LineStarts)
83 {
84 auto column = ColumnUInt32::create();
85 column->getData().insert(regions.line_starts.begin(), regions.line_starts.end());
86 auto offsets = ColumnArray::ColumnOffsets::create(1, regions.line_starts.size());
87 auto array = ColumnArray::create(std::move(column), std::move(offsets));
88 return ColumnConst::create(std::move(array), input_rows_count);
89 }
90 {
91 auto column = ColumnUInt32::create();
92 column->getData().insert(regions.line_ends.begin(), regions.line_ends.end());
93 auto offsets = ColumnArray::ColumnOffsets::create(1, regions.line_ends.size());
94 auto array = ColumnArray::create(std::move(column), std::move(offsets));
95 return ColumnConst::create(std::move(array), input_rows_count);
96 }
97#else
98 if (kind == Kind::Files)
99 {
100 auto column = ColumnString::create();
101 auto offsets = ColumnArray::ColumnOffsets::create(1, 0);
102 auto array = ColumnArray::create(std::move(column), std::move(offsets));
103 return ColumnConst::create(std::move(array), input_rows_count);
104 }
105 auto column = ColumnUInt32::create();
106 auto offsets = ColumnArray::ColumnOffsets::create(1, 0);
107 auto array = ColumnArray::create(std::move(column), std::move(offsets));
108 return ColumnConst::create(std::move(array), input_rows_count);
109#endif
110 }
111};
112
113}

Callers

nothing calls this directly

Calls 9

createFunction · 0.70
insertDataMethod · 0.45
dataMethod · 0.45
sizeMethod · 0.45
insertMethod · 0.45
getDataMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected