@@ -682,6 +682,57 @@ TEST_F(ParquetWriterTest, updateWriterOptionsFromHiveConfig) {
682682 TimestampPrecision::kMilliseconds );
683683}
684684
685+ TEST_F (ParquetWriterTest, storeDecimalAsIntegerFromConfig) {
686+ const config::ConfigBase emptySession ({});
687+
688+ {
689+ std::unordered_map<std::string, std::string> connectorMap = {
690+ {parquet::WriterOptions::kParquetHiveConnectorStoreDecimalAsInteger ,
691+ " false" }};
692+ const config::ConfigBase connectorConfig (std::move (connectorMap));
693+ parquet::WriterOptions options;
694+ options.processConfigs (connectorConfig, emptySession);
695+ ASSERT_TRUE (options.storeDecimalAsInteger .has_value ());
696+ ASSERT_FALSE (options.storeDecimalAsInteger .value ());
697+ }
698+
699+ {
700+ std::unordered_map<std::string, std::string> connectorMap = {
701+ {parquet::WriterOptions::kParquetHiveConnectorStoreDecimalAsInteger ,
702+ " true" }};
703+ const config::ConfigBase connectorConfig (std::move (connectorMap));
704+ parquet::WriterOptions options;
705+ options.processConfigs (connectorConfig, emptySession);
706+ ASSERT_TRUE (options.storeDecimalAsInteger .has_value ());
707+ ASSERT_TRUE (options.storeDecimalAsInteger .value ());
708+ }
709+
710+ {
711+ std::unordered_map<std::string, std::string> connectorMap = {
712+ {parquet::WriterOptions::kParquetHiveConnectorStoreDecimalAsInteger ,
713+ " true" }};
714+ const config::ConfigBase connectorConfig (std::move (connectorMap));
715+ std::unordered_map<std::string, std::string> sessionMap = {
716+ {parquet::WriterOptions::kParquetSessionStoreDecimalAsInteger , " false" }};
717+ const config::ConfigBase session (std::move (sessionMap));
718+ parquet::WriterOptions options;
719+ options.processConfigs (connectorConfig, session);
720+ ASSERT_TRUE (options.storeDecimalAsInteger .has_value ());
721+ ASSERT_FALSE (options.storeDecimalAsInteger .value ());
722+ }
723+
724+ {
725+ parquet::WriterOptions options;
726+ options.storeDecimalAsInteger = true ;
727+ std::unordered_map<std::string, std::string> connectorMap = {
728+ {parquet::WriterOptions::kParquetHiveConnectorStoreDecimalAsInteger ,
729+ " false" }};
730+ const config::ConfigBase connectorConfig (std::move (connectorMap));
731+ options.processConfigs (connectorConfig, emptySession);
732+ ASSERT_TRUE (options.storeDecimalAsInteger .value ());
733+ }
734+ }
735+
685736#ifdef VELOX_ENABLE_PARQUET
686737DEBUG_ONLY_TEST_F (ParquetWriterTest, timestampUnitAndTimeZone) {
687738 SCOPED_TESTVALUE_SET (
0 commit comments