File tree Expand file tree Collapse file tree 7 files changed +176
-94
lines changed Expand file tree Collapse file tree 7 files changed +176
-94
lines changed Original file line number Diff line number Diff line change @@ -230,6 +230,13 @@ bool HiveConfig::readStatsBasedFilterReorderDisabled(
230230      config_->get <bool >(kReadStatsBasedFilterReorderDisabled , false ));
231231}
232232
233+ bool  HiveConfig::isRequestedTypeCheckEnabled (
234+     const  config::ConfigBase* session) const  {
235+   return  session->get <bool >(
236+       kEnableRequestedTypeCheckSession ,
237+       config_->get <bool >(kEnableRequestedTypeCheck , true ));
238+ }
239+ 
233240std::string HiveConfig::hiveLocalDataPath () const  {
234241  return  config_->get <std::string>(kLocalDataPath , " " 
235242}
Original file line number Diff line number Diff line change @@ -187,6 +187,11 @@ class HiveConfig {
187187  static  constexpr  const  char * kLocalDataPath  = " hive_local_data_path" 
188188  static  constexpr  const  char * kLocalFileFormat  = " hive_local_file_format" 
189189
190+   static  constexpr  const  char * kEnableRequestedTypeCheck  =
191+       " enable-requested-type-check" 
192+   static  constexpr  const  char * kEnableRequestedTypeCheckSession  =
193+       " enable_requested_type_check" 
194+ 
190195  InsertExistingPartitionsBehavior insertExistingPartitionsBehavior (
191196      const  config::ConfigBase* session) const ;
192197
@@ -258,6 +263,10 @@ class HiveConfig {
258263  bool  readStatsBasedFilterReorderDisabled (
259264      const  config::ConfigBase* session) const ;
260265
266+   // / Whether to enable requested type check in the ReaderBase::convertType.
267+   // / Returns true by default.
268+   bool  isRequestedTypeCheckEnabled (const  config::ConfigBase* session) const ;
269+ 
261270  // / Returns the file system path containing local data. If non-empty,
262271  // / initializes LocalHiveConnectorMetadata to provide metadata for the tables
263272  // / in the directory.
Original file line number Diff line number Diff line change @@ -604,6 +604,8 @@ void configureReaderOptions(
604604    }
605605
606606    readerOptions.setFileFormat (hiveSplit->fileFormat );
607+     readerOptions.setEnableRequestedTypeCheck (
608+         hiveConfig->isRequestedTypeCheckEnabled (sessionProperties));
607609  }
608610}
609611
Original file line number Diff line number Diff line change @@ -664,6 +664,11 @@ Each query can override the config by setting corresponding query session proper
664664     - bool
665665     - true
666666     - Reads timestamp partition value as local time if true. Otherwise, reads as UTC.
667+    * - enable-requested-type-check
668+      - enable_requested_type_check
669+      - bool
670+      - true
671+      - Whether to enable requested type check in the `ReaderBase::convertType `. True by default.
667672
668673``ORC File Format Configuration ``
669674^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
Original file line number Diff line number Diff line change @@ -600,6 +600,10 @@ class ReaderOptions : public io::ReaderOptions {
600600    return  randomSkip_;
601601  }
602602
603+   bool  enableRequestedTypeCheck () const  {
604+     return  enableRequestedTypeCheck_;
605+   }
606+ 
603607  void  setRandomSkip (std::shared_ptr<random::RandomSkipTracker> randomSkip) {
604608    randomSkip_ = std::move (randomSkip);
605609  }
@@ -636,6 +640,10 @@ class ReaderOptions : public io::ReaderOptions {
636640    allowEmptyFile_ = value;
637641  }
638642
643+   void  setEnableRequestedTypeCheck (bool  enableRequestedTypeCheck) {
644+     enableRequestedTypeCheck_ = enableRequestedTypeCheck;
645+   }
646+ 
639647 private: 
640648  uint64_t  tailLocation_;
641649  FileFormat fileFormat_;
@@ -653,6 +661,7 @@ class ReaderOptions : public io::ReaderOptions {
653661  bool  adjustTimestampToTimezone_{false };
654662  bool  selectiveNimbleReaderEnabled_{false };
655663  bool  allowEmptyFile_{false };
664+   bool  enableRequestedTypeCheck_{true };
656665};
657666
658667struct  WriterOptions  {
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments