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

Function serializeArrayVector

bolt/serializers/PrestoSerializer.cpp:1865–1892  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1863}
1864
1865void serializeArrayVector(
1866 const BaseVector* vector,
1867 const folly::Range<const IndexRange*>& ranges,
1868 VectorStream* stream) {
1869 auto arrayVector = dynamic_cast<const ArrayVector*>(vector);
1870 auto rawSizes = arrayVector->rawSizes();
1871 auto rawOffsets = arrayVector->rawOffsets();
1872 std::vector<IndexRange> childRanges;
1873 childRanges.reserve(ranges.size());
1874 for (int32_t i = 0; i < ranges.size(); ++i) {
1875 int32_t begin = ranges[i].begin;
1876 int32_t end = begin + ranges[i].size;
1877 for (int32_t offset = begin; offset < end; ++offset) {
1878 if (arrayVector->isNullAt(offset)) {
1879 stream->appendNull();
1880 } else {
1881 stream->appendNonNull();
1882 auto size = rawSizes[offset];
1883 stream->appendLength(size);
1884 if (size > 0) {
1885 childRanges.emplace_back<IndexRange>({rawOffsets[offset], size});
1886 }
1887 }
1888 }
1889 }
1890 serializeColumn(
1891 arrayVector->elements().get(), childRanges, stream->childAt(0));
1892}
1893
1894void serializeMapVector(
1895 const BaseVector* vector,

Callers 1

serializeColumnFunction · 0.85

Calls 13

serializeColumnFunction · 0.85
rowsToRangesFunction · 0.85
rawSizesMethod · 0.80
rawOffsetsMethod · 0.80
appendLengthMethod · 0.80
childAtMethod · 0.80
rawNullsMethod · 0.80
reserveMethod · 0.45
sizeMethod · 0.45
isNullAtMethod · 0.45
appendNullMethod · 0.45
appendNonNullMethod · 0.45

Tested by

no test coverage detected