Skip to content

Commit

Permalink
Merge pull request #2084 from kuzudb/var-list-offset-compression
Browse files Browse the repository at this point in the history
Bitpack VAR_LIST offset data
  • Loading branch information
benjaminwinger committed Sep 26, 2023
2 parents 58ba29b + 8f382a9 commit 9b4fd80
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/storage/store/column_chunk.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ ColumnChunk::ColumnChunk(
GetCompressionMetadata(std::make_unique<IntegerBitpacking<int32_t>>(), this->dataType);
break;
}
case PhysicalTypeID::VAR_LIST:
case PhysicalTypeID::UINT64: {
flushBufferFunction =
CompressedFlushBuffer(std::make_unique<IntegerBitpacking<uint64_t>>(), this->dataType);
Expand Down
5 changes: 5 additions & 0 deletions src/storage/store/compression.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ bool CompressionMetadata::canUpdateInPlace(
return IntegerBitpacking<int32_t>::canUpdateInPlace(
value, BitpackHeader::readHeader(data));
}
case PhysicalTypeID::VAR_LIST:
case PhysicalTypeID::UINT64: {
auto value = vector.getValue<uint64_t>(pos);
return IntegerBitpacking<uint64_t>::canUpdateInPlace(
Expand Down Expand Up @@ -120,6 +121,7 @@ uint64_t CompressionMetadata::numValues(uint64_t pageSize, const LogicalType& da
return IntegerBitpacking<int64_t>::numValues(pageSize, BitpackHeader::readHeader(data));
case PhysicalTypeID::INT32:
return IntegerBitpacking<int32_t>::numValues(pageSize, BitpackHeader::readHeader(data));
case PhysicalTypeID::VAR_LIST:
case PhysicalTypeID::UINT64:
return IntegerBitpacking<int64_t>::numValues(pageSize, BitpackHeader::readHeader(data));
case PhysicalTypeID::UINT32:
Expand Down Expand Up @@ -382,6 +384,7 @@ void ReadCompressedValuesFromPageToVector::operator()(uint8_t* frame, PageElemen
return IntegerBitpacking<int32_t>().decompressFromPage(frame, pageCursor.elemPosInPage,
resultVector->getData(), posInVector, numValuesToRead, metadata);
}
case PhysicalTypeID::VAR_LIST:
case PhysicalTypeID::UINT64: {
return IntegerBitpacking<uint64_t>().decompressFromPage(frame, pageCursor.elemPosInPage,
resultVector->getData(), posInVector, numValuesToRead, metadata);
Expand Down Expand Up @@ -419,6 +422,7 @@ void ReadCompressedValuesFromPage::operator()(uint8_t* frame, PageElementCursor&
return IntegerBitpacking<int32_t>().decompressFromPage(frame, pageCursor.elemPosInPage,
result, startPosInResult, numValuesToRead, metadata);
}
case PhysicalTypeID::VAR_LIST:
case PhysicalTypeID::UINT64: {
return IntegerBitpacking<uint64_t>().decompressFromPage(frame, pageCursor.elemPosInPage,
result, startPosInResult, numValuesToRead, metadata);
Expand Down Expand Up @@ -455,6 +459,7 @@ void WriteCompressedValueToPage::operator()(uint8_t* frame, uint16_t posInFrame,
return IntegerBitpacking<int32_t>().setValueFromUncompressed(
vector->getData(), posInVector, frame, posInFrame, metadata);
}
case PhysicalTypeID::VAR_LIST:
case PhysicalTypeID::UINT64: {
return IntegerBitpacking<uint64_t>().setValueFromUncompressed(
vector->getData(), posInVector, frame, posInFrame, metadata);
Expand Down

0 comments on commit 9b4fd80

Please sign in to comment.