diff --git a/velox/dwio/dwrf/reader/SelectiveDecimalColumnReader.h b/velox/dwio/dwrf/reader/SelectiveDecimalColumnReader.h index cf0d328d4721..95ed9054a023 100644 --- a/velox/dwio/dwrf/reader/SelectiveDecimalColumnReader.h +++ b/velox/dwio/dwrf/reader/SelectiveDecimalColumnReader.h @@ -40,6 +40,10 @@ class SelectiveDecimalColumnReader : public SelectiveColumnReader { void getValues(RowSet rows, VectorPtr* result) override; + bool hasBulkPath() const override { + return false; + } + private: template void readHelper(RowSet rows); diff --git a/velox/dwio/dwrf/reader/SelectiveIntegerDirectColumnReader.h b/velox/dwio/dwrf/reader/SelectiveIntegerDirectColumnReader.h index a123ae2e8652..6be663da701f 100644 --- a/velox/dwio/dwrf/reader/SelectiveIntegerDirectColumnReader.h +++ b/velox/dwio/dwrf/reader/SelectiveIntegerDirectColumnReader.h @@ -63,7 +63,11 @@ class SelectiveIntegerDirectColumnReader } bool hasBulkPath() const override { - return true; + if (format == velox::dwrf::DwrfFormat::kOrc) { + return false; // RLEv2 does't support FastPath yet + } else { + return true; + } } void seekToRowGroup(uint32_t index) override { diff --git a/velox/dwio/dwrf/reader/SelectiveStringDictionaryColumnReader.h b/velox/dwio/dwrf/reader/SelectiveStringDictionaryColumnReader.h index 640cf02937f0..8f3ddbd8eb26 100644 --- a/velox/dwio/dwrf/reader/SelectiveStringDictionaryColumnReader.h +++ b/velox/dwio/dwrf/reader/SelectiveStringDictionaryColumnReader.h @@ -53,6 +53,14 @@ class SelectiveStringDictionaryColumnReader uint64_t skip(uint64_t numValues) override; + bool hasBulkPath() const override { + if (version_ == velox::dwrf::RleVersion_1) { + return true; + } else { + return false; // RLEv2 does't support FastPath yet + } + } + void read(vector_size_t offset, RowSet rows, const uint64_t* incomingNulls) override;