wypoon commented on PR #12681:
URL: https://github.com/apache/iceberg/pull/12681#issuecomment-2777659880

   @pvary I replied on the dev list.
   
   > I really would like to see HiveCatalog testing against Hive4, but Spark 
has constraints around testing newer Hive versions which we need to solve, or 
wait until all of the supported Spark version will have an updated Hive.
   >
   I think testing Flink and Spark with a Hive 3/Hive 4 metastore should be a 
separate PR. This is the first step. I also think this step makes it possible 
for the Hive project to drop its fork of this module from the Hive repo.
   I also do not think we should wait until all supported Spark versions 
support Hive 4, for this is never going to happen for Spark 3.4 or even Spark 
3.5 (which is a LTS version and which I expect Iceberg to support for a while).
   
   > OTOH, if possible, I would like to see only a single TestHiveMetastore 
class. Could we do some changes internally to the class, which based on the 
classes available on the classpath, or some configuration would use the correct 
Hive versions (maybe with DynMethods)?
   
   The problem is with the HMSHandler class. Yes, I can use `DynConstructors` 
to construct the `HMSHandler` using the classname based on the Hive version, 
but `TestHiveMetastore` holds an instance of `HMSHandler` in a field, 
`baseHandler`, and in `TestHiveMetastore::stop()`, it calls 
`baseHandler.shutdown()`. We need to declare this field, but the type of the 
field is `org.apache.hadoop.hive.metastore.HMSHandler` in Hive 4 and 
`org.apache.hadoop.hive.metastore.HiveMetaStore.HMSHandler` in Hive 2 and 3. I 
don't see how to declare that field in a way independent of the Hive version. 
The interface that `HMSHandler` implements, `IHMSHandler`, does not have a 
`shutdown()` method. I need to call that method on `HMSHandler`, not 
`IHMSHandler`.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to