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

Function read

bolt/serializers/PrestoSerializer.cpp:390–418  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

388
389template <typename T>
390void read(
391 ByteInputStream* source,
392 const TypePtr& type,
393 bolt::memory::MemoryPool* pool,
394 VectorPtr& result,
395 vector_size_t resultOffset,
396 bool useLosslessTimestamp) {
397 const int32_t size = source->read<int32_t>();
398 result->resize(resultOffset + size);
399
400 auto flatResult = result->asFlatVector<T>();
401 auto nullCount = readNulls(source, size, *flatResult, resultOffset);
402
403 BufferPtr values = flatResult->mutableValues(resultOffset + size);
404 if constexpr (std::is_same_v<T, Timestamp>) {
405 if (useLosslessTimestamp) {
406 readLosslessTimestampValues(
407 source, size, resultOffset, flatResult->nulls(), nullCount, values);
408 return;
409 }
410 }
411 if (type->isLongDecimal()) {
412 readDecimalValues(
413 source, size, resultOffset, flatResult->nulls(), nullCount, values);
414 return;
415 }
416 readValues<T>(
417 source, size, resultOffset, flatResult->nulls(), nullCount, values);
418}
419
420template <>
421void read<StringView>(

Callers

nothing calls this directly

Calls 7

readDecimalValuesFunction · 0.85
readNullsFunction · 0.70
resizeMethod · 0.45
mutableValuesMethod · 0.45
nullsMethod · 0.45
isLongDecimalMethod · 0.45

Tested by

no test coverage detected