[ https://issues.apache.org/jira/browse/HIVE-2989?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13286834#comment-13286834 ]
Namit Jain commented on HIVE-2989: ---------------------------------- 1. Can you create a arc diff ? It is working now. 2. Instead of changing metastore/scripts/upgrade/mysql/hive-schema-0.9.0.mysql.sql, you should create a new file: metastore/scripts/upgrade/mysql/hive-schema-0.10.0.mysql.sql. Links is not part of 0.9 3. Same for metastore/scripts/upgrade/oracle/hive-schema-0.9.0.oracle.sql 4. you can revert ql/src/java/org/apache/hadoop/hive/ql/Driver.java 5. DDLTask.java: line 3040 etc. These errors should be caught at compile time - DDLSemanticAnalyzer. Same for drop link error. 6. 3612: Can you add more detailed comments here. The code/semantics for create table like and create table link should be same. All the SD/SERDE properties are copied. None of the table properties are copied. You are doing this anyway, write a more detailed comment, and make a common function for create table link and create table like 7. DDLSemanticAnalyzer.java: 708 - the new parameter expectLink is never used. Why did you change the signature of analyzeDropTable ? I think you wanted to pass it to DropTableDesc - but that is not done right now. 8. 867: add the outputs also - incomplete right now 9. Can you add a new negative test, where you try to create a table with the name A@B ? > Adding Table Links to Hive > -------------------------- > > Key: HIVE-2989 > URL: https://issues.apache.org/jira/browse/HIVE-2989 > Project: Hive > Issue Type: Improvement > Components: Metastore, Query Processor, Security > Affects Versions: 0.8.1 > Reporter: Bhushan Mandhani > Assignee: Bhushan Mandhani > Attachments: HIVE-2989.1.patch.txt, HIVE-2989.2.patch.txt, > HIVE-2989.3.patch.txt > > Original Estimate: 672h > Remaining Estimate: 672h > > This will add Table Links to Hive. This will be an alternate mechanism for a > user to access tables and data in a database that is different from the one > he is associated with. This feature can be used to provide access control (if > access to databasename.tablename in queries and "use database X" is turned > off in conjunction). > If db X wants to access one or more partitions from table T in db Y, the user > will issue: > CREATE [STATIC] LINK TO T@Y LINKPROPERTIES ('RETENTION'='N') > New partitions added to T will automatically be added to the link as well and > become available to X. However, if the link is specified to be static, that > will not be the case. The X user will then have to explicitly import each > partition of T that he needs. The command above will not actually make any > existing partitions of T available to X. Instead, we provide the following > command to add an existing partition to a link: > ALTER LINK T@Y ADD PARTITION (ds='2012-04-27') > The user will need to execute the above for each existing partition that > needs to be imported. For future partitions, Hive will take care of this. An > imported partition can be dropped from a link using a similar command. We > just specify "DROP" instead of "ADD". For querying the linked table, the X > user will refer to it as T@Y. Link Tables will only have read access and not > be writable. The entire Table Link alongwith all its imported partitions can > be dropped as follows: > DROP LINK TO T@Y > The above commands are purely MetaStore operations. The implementation will > rely on replicating the entire partition metadata when a partition is added > to a link. For every link that is created, we will add a new row to table > TBLS. The TBL_TYPE column will have a new kind of value "LINK_TABLE" (or > "STATIC_LINK_TABLE" if the link has been specified as static). A new column > LINK_TBL_ID will be added which will contain the id of the imported table. It > will be NULL for all other table types including the regular managed tables. > When a partition is added to a link, the new row in the table PARTITIONS will > point to the LINK_TABLE in the same database and not the master table in the > other database. We will replicate all the metadata for this partition from > the master database. The advantage of this approach is that fewer changes > will be needed in query processing and DDL for LINK_TABLEs. Also, commands > like "SHOW TABLES" and "SHOW PARTITIONS" will work as expected for > LINK_TABLEs too. Of course, even though the metadata is not shared, the > underlying data on disk is still shared. Hive still needs to know that when > dropping a partition which belongs to a LINK_TABLE, it should not drop the > underlying data from HDFS. Views and external tables cannot be imported from > one database to another. > -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira