Alan Gates commented on HIVE-18685:

Finally, the comments on the Thrift changes:

I am in full agreement that we need to make a v2 of the API.  I would like to 
start that discussion with asking if we should stick with Thrift or move to 
something else.  But, I don't want to tie this (or any other) feature to that, 
as that will be a many month project with a complex migration plan.

I also want this to be 100% backwards compatible, meaning old clients with no 
knowledge of catalogs should still be able to work.  So I don't want to change 
existing calls like get_table() to add the catalog name.

Alexander's idea of re-using the existing Thrift calls by jamming the catalog 
name into the dbname is very interesting.  It avoid duplicating 75% of the 
existing Thrift calls.  I would only need to add Thrift calls for 
createCatalog, getCatalog, etc.  I'll explore this and see if it's viable.  I 
think I will likely still change HiveMetaStoreClient to add methods with 
explicit catalog name, but that is much easier than adding thrift methods.  And 
in HiveMetaStoreClient I can explicitly deprecate the old methods, giving users 
a warning not to continue using them.  This will also hide 95% of our users 
from the hackery.

> Add catalogs to metastore
> -------------------------
>                 Key: HIVE-18685
>                 URL: https://issues.apache.org/jira/browse/HIVE-18685
>             Project: Hive
>          Issue Type: New Feature
>          Components: Metastore
>    Affects Versions: 3.0.0
>            Reporter: Alan Gates
>            Assignee: Alan Gates
>            Priority: Major
>         Attachments: HMS Catalog Design Doc.pdf
> SQL supports two levels of namespaces, called in the spec catalogs and 
> schemas (with schema being equivalent to Hive's database).  I propose to add 
> the upper level of catalog.  The attached design doc covers the use cases, 
> requirements, and brief discussion of how it will be implemented in a 
> backwards compatible way.

This message was sent by Atlassian JIRA

Reply via email to