MCPcopy Create free account
hub / github.com/bytedance/bolt / appendStrings

Function appendStrings

bolt/serializers/PrestoSerializer.cpp:2261–2290  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2259}
2260
2261void appendStrings(
2262 const uint64_t* nulls,
2263 folly::Range<const vector_size_t*> rows,
2264 const StringView* views,
2265 VectorStream* stream,
2266 Scratch& scratch) {
2267 if (nulls == nullptr) {
2268 stream->appendLengths(nullptr, rows, rows.size(), [&](auto row) {
2269 return views[row].size();
2270 });
2271 for (auto i = 0; i < rows.size(); ++i) {
2272 const auto& view = views[rows[i]];
2273 stream->values().appendStringView(
2274 std::string_view(view.data(), view.size()));
2275 }
2276 return;
2277 }
2278
2279 ScratchPtr<vector_size_t, 64> nonNullHolder(scratch);
2280 auto* nonNull = nonNullHolder.get(rows.size());
2281 const auto numNonNull =
2282 simd::indicesOfSetBits(nulls, 0, rows.size(), nonNull);
2283 stream->appendLengths(
2284 nulls, rows, numNonNull, [&](auto row) { return views[row].size(); });
2285 for (auto i = 0; i < numNonNull; ++i) {
2286 auto& view = views[rows[nonNull[i]]];
2287 stream->values().appendStringView(
2288 std::string_view(view.data(), view.size()));
2289 }
2290}
2291
2292void appendTimestamps(
2293 const uint64_t* nulls,

Callers 1

serializeFlatVectorFunction · 0.85

Calls 7

indicesOfSetBitsFunction · 0.85
appendLengthsMethod · 0.80
sizeMethod · 0.45
appendStringViewMethod · 0.45
valuesMethod · 0.45
dataMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected