Skip to content

Commit 23f7017

Browse files
Haiping Xuefacebook-github-bot
authored andcommitted
Add SerdeParameters to rowReaderOpts in velox open source (facebookincubator#13363)
Summary: Pull Request resolved: facebookincubator#13363 SST reader use storage parameters in hive split but writer use serde parameters. This diff first add serde parameters to open source. Since the tess will all break. Will move the storage parameter in the code later diff. Reviewed By: zacw7, harsharastogi, xiaoxmeng Differential Revision: D74706322 fbshipit-source-id: 9bd2dc429a55046edcab7ea35253dc9a61512543
1 parent 4a55e54 commit 23f7017

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

velox/connectors/hive/HiveConnectorUtil.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -629,6 +629,7 @@ void configureRowReaderOptions(
629629
hiveConfig->readTimestampUnit(sessionProperties)));
630630
}
631631
rowReaderOptions.setStorageParameters(hiveSplit->storageParameters);
632+
rowReaderOptions.setSerdeParameters(hiveSplit->serdeParameters);
632633
}
633634

634635
namespace {

velox/connectors/hive/tests/HiveConnectorUtilTest.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -349,11 +349,11 @@ TEST_F(HiveConnectorUtilTest, configureRowReaderOptions) {
349349
float_features->setFlatMapFeatureSelection({"1", "3"});
350350
}
351351

352-
TEST_F(HiveConnectorUtilTest, configureStoragePamatersRowReaderOptions) {
352+
TEST_F(HiveConnectorUtilTest, configureSstRowReaderOptions) {
353353
dwio::common::RowReaderOptions rowReaderOpts;
354354
auto hiveSplit =
355355
std::make_shared<hive::HiveConnectorSplit>("", "", FileFormat::SST);
356-
hiveSplit->storageParameters = {
356+
hiveSplit->serdeParameters = {
357357
{"key_col_indices", "0,1,2"},
358358
{"value_col_indices", "4,5"},
359359
};
@@ -367,7 +367,7 @@ TEST_F(HiveConnectorUtilTest, configureStoragePamatersRowReaderOptions) {
367367
/*sessionProperties=*/nullptr,
368368
/*rowReaderOptions=*/rowReaderOpts);
369369

370-
EXPECT_EQ(rowReaderOpts.storageParameters(), hiveSplit->storageParameters);
370+
EXPECT_EQ(rowReaderOpts.serdeParameters(), hiveSplit->serdeParameters);
371371
}
372372

373373
} // namespace facebook::velox::connector

velox/dwio/common/Options.h

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,15 @@ class RowReaderOptions {
382382
formatSpecificOptions_ = std::move(options);
383383
}
384384

385+
const std::unordered_map<std::string, std::string>& serdeParameters() const {
386+
return serdeParameters_;
387+
}
388+
389+
void setSerdeParameters(
390+
std::unordered_map<std::string, std::string> serdeParameters) {
391+
serdeParameters_ = std::move(serdeParameters);
392+
}
393+
385394
const std::unordered_map<std::string, std::string>& storageParameters()
386395
const {
387396
return storageParameters_;
@@ -413,7 +422,10 @@ class RowReaderOptions {
413422
size_t decodingParallelismFactor_{0};
414423
std::optional<RowNumberColumnInfo> rowNumberColumnInfo_{std::nullopt};
415424
// Parameters that are provided as the physical storage properties.
416-
std::unordered_map<std::string, std::string> storageParameters_ = {};
425+
std::unordered_map<std::string, std::string> storageParameters_{};
426+
// Parameters that are provided as the serialization/deserialization
427+
// properties.
428+
std::unordered_map<std::string, std::string> serdeParameters_{};
417429

418430
// Function to populate metrics related to feature projection stats
419431
// in Koski. This gets fired in FlatMapColumnReader.

0 commit comments

Comments
 (0)