[ 
https://issues.apache.org/jira/browse/HIVE-27298?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17716473#comment-17716473
 ] 

John Sherman edited comment on HIVE-27298 at 4/26/23 12:03 AM:
---------------------------------------------------------------

I'm inclined to go with:
a) since AbstractThriftHiveMetastore provides no value otherwise (users should 
be implementing against ThriftHiveMetastore.Iface for similar guarantees that 
AbstractThriftHiveMetastore today provides). The class name may be confusing, 
but I also do not associate a class having Abstract in the name as being an 
abstract class (others might though).

However, b has the advantage that it doesn't change the behavior that 
downstream implementations may rely on (even if I think it is pointless). 
Though, I work on one of the downstream implementations (IMPALA) and 
AbstractThriftHiveMetastore was added to support our use case. I think Impala 
is the only user of this class but I can't prove that.

This comment from AbstractThriftHiveMetastore illustrates the intent that the 
current implementation actually does not provide:
{code}
/**
 * This abstract class can be extended by any remote cache that implements HMS 
APIs.
 * The idea behind introducing this abstract class is not to break the build of 
remote cache,
 * whenever we add new HMS APIs.
 */
{code}


was (Author: jfs):
I'm inclined to go with:
a) since AbstractThriftHiveMetastore provides no value otherwise (users should 
be implementing against ThriftHiveMetastore.Iface for similar guarantees that 
AbstractThriftHiveMetastore today provides). The class name may be confusing, 
but I also do not associate a class having Abstract in the name as being an 
abstract class (others might though).

However, b has the advantage that it doesn't change the behavior that 
downstream implementations may rely on (even if I think it is pointless). 
Though, I work on one of the downstream implementations (IMPALA) and 
AbstractThriftHiveMetastore was added to support our use case. I think Impala 
is the only user of this class but I can't prove that.

> Provide implementation of HMS thrift service that throws 
> UnsupportedOperationException
> --------------------------------------------------------------------------------------
>
>                 Key: HIVE-27298
>                 URL: https://issues.apache.org/jira/browse/HIVE-27298
>             Project: Hive
>          Issue Type: Improvement
>            Reporter: John Sherman
>            Priority: Major
>
> The intent of HIVE-25005 and AbstractThriftHiveMetastore class was to provide 
> default implementation for every HMS thrift method that throws 
> UnsupportedOperationException.
> However - HIVE-25005 made the class abstract, so as a result there are a 
> variety of HMS service methods that are not implemented in 
> AbstractThriftHiveMetastore.
> We should either:
> a) remove abstract from the class definition AbstractThriftHiveMetastore
> or
> b) add a new class that is not abstract.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to