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

Sushanth Sowmyan commented on HIVE-5274:
----------------------------------------


Okay, having generated a simple patch that changes the imports, tests are 
failing because of issues casting HBaseHCatStorageHandler to a 
HCatStorageHandler(which the old HCIF/HCOF do), which it no longer is - it is a 
HiveStorageHandler.

So, what we can do is as follows:

a) old code can be rewritten to use HiveStorageHandler as a post HIVE-5261 mode 
- i.e. the only difference between org.apache.hcatalog.* and 
org.apache.hive.hcatalog.* will be that the package names are different. But if 
we did that, then that might break external storage handlers that people have 
written against HCatStorageHandler that they expect to continue working in a 
org.apache.hcatalog.* world.


b) viraj's changes to the hbase hcat storagehandler can be changed so that it 
continues to follow the old model, using HCatStorageHandler, and not using 
HiveStorageHandler.


The latter is less disruptive a change, but this effectively relegates its use 
to the org.apache.hcatalog.* world. I still see that as ideal here. However, if 
this approach is taken, then the HCatHBaseStorageHandler is not usable any 
longer by the org.apache.hive.hcatalog.* world. That said, I do not think that 
is a problem, since we're trying to deprecate this too, and we'd be encouraging 
use of the Hive HBaseStorageHandler for any new code that might use the new 
packages.


[~alangates], [~ekoifman] : Any thoughts/opinions?
                
> HCatalog package renaming backward compatibility follow-up
> ----------------------------------------------------------
>
>                 Key: HIVE-5274
>                 URL: https://issues.apache.org/jira/browse/HIVE-5274
>             Project: Hive
>          Issue Type: Bug
>          Components: HCatalog
>    Affects Versions: 0.12.0
>            Reporter: Sushanth Sowmyan
>            Assignee: Sushanth Sowmyan
>             Fix For: 0.12.0
>
>
> As part of HIVE-4869, the hbase storage handler in hcat was moved to 
> org.apache.hive.hcatalog, and then put back to org.apache.hcatalog since it 
> was intended to be deprecated as well.
> However, it imports and uses several org.apache.hive.hcatalog classes. This 
> needs to be changed to use org.apache.hcatalog classes.
> ==
> Note : The above is a complete description of this issue in and of by itself, 
> the following is more details on the backward-compatibility goal I have(not 
> saying that each of these things are violated) : 
> a) People using org.apache.hcatalog packages should continue being able to 
> use that package, and see no difference at compile time or runtime. All code 
> here is considered deprecated, and will be gone by the time hive 0.14 rolls 
> around. Additionally, org.apache.hcatalog should behave as if it were 0.11 
> for all compatibility purposes.
> b) People using org.apache.hive.hcatalog packages should never have an 
> org.apache.hcatalog dependency injected in.
> Thus,
> It is okay for org.apache.hcatalog to use org.apache.hive.hcatalog packages 
> internally (say HCatUtil, for example), as long as any interfaces only expose 
> org.apache.hcatalog.\* For tests that test org.apache.hcatalog.\*, we must be 
> capable of testing it from a pure org.apache.hcatalog.\* world.
> It is never okay for org.apache.hive.hcatalog to use org.apache.hcatalog, 
> even in tests.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to