Skip to content

Commit 36e5b55

Browse files
Victor-C-Zhangmeta-codesync[bot]
authored andcommitted
Encodings: Plumb DataType to Uncompress (facebookincubator#476)
Summary: Pull Request resolved: facebookincubator#476 Pull Request resolved: facebookincubator#187 We need it for an internal compressor. Reviewed By: helfman Differential Revision: D75322977 fbshipit-source-id: 13992fbb051df925b01c8dbb1ee6ff6228fe11be
1 parent 99ba0d5 commit 36e5b55

File tree

11 files changed

+15
-3
lines changed

11 files changed

+15
-3
lines changed

dwio/nimble/encodings/Compression.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,10 @@ ICompressor& getCompressor(CompressionType compressionType) {
6767
/* static */ Vector<char> Compression::uncompress(
6868
velox::memory::MemoryPool& memoryPool,
6969
CompressionType compressionType,
70+
DataType dataType,
7071
std::string_view data) {
7172
return getCompressor(compressionType)
72-
.uncompress(memoryPool, compressionType, data);
73+
.uncompress(memoryPool, compressionType, dataType, data);
7374
}
7475

7576
/* static */ std::optional<size_t> Compression::uncompressedSize(

dwio/nimble/encodings/Compression.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ struct ICompressor {
3939
virtual Vector<char> uncompress(
4040
velox::memory::MemoryPool& memoryPool,
4141
CompressionType compressionType,
42+
DataType dataType,
4243
std::string_view data) = 0;
4344

4445
virtual std::optional<size_t> uncompressedSize(
@@ -61,6 +62,7 @@ class Compression {
6162
static Vector<char> uncompress(
6263
velox::memory::MemoryPool& memoryPool,
6364
CompressionType compressionType,
65+
DataType dataType,
6466
std::string_view data);
6567

6668
static std::optional<size_t> uncompressedSize(

dwio/nimble/encodings/FixedBitWidthEncoding.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ FixedBitWidthEncoding<T>::FixedBitWidthEncoding(
100100
uncompressedData_ = Compression::uncompress(
101101
memoryPool,
102102
compressionType,
103+
DataType::Undefined,
103104
{pos, static_cast<size_t>(data.end() - pos)});
104105
fixedBitArray_ = FixedBitArray{
105106
{uncompressedData_.data(), uncompressedData_.size()}, bitWidth_};

dwio/nimble/encodings/SparseBoolEncoding.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
#include "dwio/nimble/common/Bits.h"
2121
#include "dwio/nimble/common/EncodingPrimitives.h"
2222
#include "dwio/nimble/common/Types.h"
23-
#include "dwio/nimble/encodings/Compression.h"
2423
#include "dwio/nimble/encodings/EncodingFactory.h"
2524

2625
namespace facebook::nimble {

dwio/nimble/encodings/TrivialEncoding.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ TrivialEncoding<std::string_view>::TrivialEncoding(
3838
dataUncompressed_ = Compression::uncompress(
3939
memoryPool,
4040
dataCompressionType,
41+
DataType::String,
4142
{blob_, static_cast<size_t>(data.end() - blob_)});
4243
blob_ = reinterpret_cast<const char*>(dataUncompressed_.data());
4344
uncompressedDataBytes_ = dataUncompressed_.size();
@@ -192,6 +193,7 @@ TrivialEncoding<bool>::TrivialEncoding(
192193
uncompressed_ = Compression::uncompress(
193194
pool,
194195
compressionType,
196+
DataType::Undefined,
195197
{bitmap_, static_cast<size_t>(data.end() - bitmap_)});
196198
bitmap_ = uncompressed_.data();
197199
NIMBLE_CHECK(

dwio/nimble/encodings/TrivialEncoding.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ TrivialEncoding<T>::TrivialEncoding(
198198
uncompressed_ = Compression::uncompress(
199199
memoryPool,
200200
compressionType,
201+
TypeTraits<physicalType>::dataType,
201202
{data.data() + kDataOffset, data.size() - kDataOffset});
202203
values_ = reinterpret_cast<const T*>(uncompressed_.data());
203204
NIMBLE_CHECK(

dwio/nimble/encodings/ZstdCompressor.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ CompressionResult ZstdCompressor::compress(
5454

5555
Vector<char> ZstdCompressor::uncompress(
5656
velox::memory::MemoryPool& memoryPool,
57-
CompressionType compressionType,
57+
const CompressionType compressionType,
58+
const DataType /* dataType */,
5859
std::string_view data) {
5960
auto pos = data.data();
6061
const uint32_t uncompressedSize = encoding::readUint32(pos);

dwio/nimble/encodings/ZstdCompressor.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ class ZstdCompressor : public ICompressor {
3232
Vector<char> uncompress(
3333
velox::memory::MemoryPool& memoryPool,
3434
CompressionType compressionType,
35+
DataType dataType,
3536
std::string_view data) override;
3637

3738
std::optional<size_t> uncompressedSize(std::string_view data) const override;

dwio/nimble/encodings/legacy/FixedBitWidthEncoding.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ FixedBitWidthEncoding<T>::FixedBitWidthEncoding(
101101
uncompressedData_ = Compression::uncompress(
102102
memoryPool,
103103
compressionType,
104+
TypeTraits<physicalType>::dataType,
104105
{pos, static_cast<size_t>(data.end() - pos)});
105106
fixedBitArray_ = FixedBitArray{
106107
{uncompressedData_.data(), uncompressedData_.size()}, bitWidth_};

dwio/nimble/encodings/legacy/TrivialEncoding.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ TrivialEncoding<std::string_view>::TrivialEncoding(
3838
dataUncompressed_ = Compression::uncompress(
3939
memoryPool,
4040
dataCompressionType,
41+
DataType::String,
4142
{blob_, static_cast<size_t>(data.end() - blob_)});
4243
blob_ = reinterpret_cast<const char*>(dataUncompressed_.data());
4344
uncompressedDataBytes_ = dataUncompressed_.size();
@@ -148,6 +149,7 @@ TrivialEncoding<bool>::TrivialEncoding(
148149
uncompressed_ = Compression::uncompress(
149150
pool,
150151
compressionType,
152+
DataType::Undefined,
151153
{bitmap_, static_cast<size_t>(data.end() - bitmap_)});
152154
bitmap_ = uncompressed_.data();
153155
NIMBLE_CHECK(

0 commit comments

Comments
 (0)