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

Function readTimestampWithTimeZone

bolt/serializers/PrestoSerializer.cpp:635–662  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

633}
634
635void readTimestampWithTimeZone(
636 ByteInputStream* source,
637 bolt::memory::MemoryPool* pool,
638 RowVector* result,
639 vector_size_t resultOffset) {
640 auto& timestamps = result->childAt(0);
641 read<int64_t>(source, BIGINT(), pool, timestamps, resultOffset, false);
642
643 auto rawTimestamps = timestamps->asFlatVector<int64_t>()->mutableRawValues();
644
645 const auto size = timestamps->size();
646 result->resize(size);
647
648 auto& timezones = result->childAt(1);
649 timezones->resize(size);
650 auto rawTimezones = timezones->asFlatVector<int16_t>()->mutableRawValues();
651
652 auto rawNulls = timestamps->rawNulls();
653 for (auto i = resultOffset; i < size; ++i) {
654 if (!rawNulls || !bits::isBitNull(rawNulls, i)) {
655 unpackTimestampWithTimeZone(
656 rawTimestamps[i], rawTimestamps[i], rawTimezones[i]);
657 result->setNull(i, false);
658 } else {
659 result->setNull(i, true);
660 }
661 }
662}
663
664template <typename T>
665void scatterValues(

Callers 1

readRowVectorFunction · 0.85

Calls 8

isBitNullFunction · 0.85
childAtMethod · 0.80
rawNullsMethod · 0.80
mutableRawValuesMethod · 0.45
sizeMethod · 0.45
resizeMethod · 0.45
setNullMethod · 0.45

Tested by

no test coverage detected