adrian-wang opened a new pull request, #3240:
URL: https://github.com/apache/hive/pull/3240

   ### What changes were proposed in this pull request?
   
   1. Disable rename table across dbs when dbs on different filesystem.
   2. Adjust the place of comment so it matches code better.
   
   
   ### Why are the changes needed?
   
   Currently, if we run `ALTER TABLE db1.table1 RENAME TO db2.table2;` with 
`db1` and `db2` on different filesystem, for example `db1` as 
`"hdfs:/user/hive/warehouse/db1.db"`, and `db2` as 
`"s3://bucket/s3warehouse/db2.db"`, the new `db2.table2` will be under location 
`hdfs:/s3warehouse/db2.db/table2`, which looks quite strange.
   
   
   ### Does this PR introduce _any_ user-facing change?
   
   Yes.
   Before this patch, if we run
   ```
   CREATE DATABASE db1 LOCATION '/user/hive/warehouse/db1.db';
   CREATE DATABASE db2 LOCATION 's3://bucket/s3warehouse/db2.db';
   CREATE TABLE db1.table1 (...);
   -- write some data to db1.table1
   ALTER TABLE db1.table1 RENAME TO db2.table2;
   ```
   The `ALTER TABLE RENAME TO` command will success and, table location is 
under `/s3warehouse/db2.db/table2`(s3), which is like undefined behavior of the 
language manual.
   
   After this fix, the `ALTER TABLE RENAME TO` command will fail with message 
telling user that Hive cannot rename tables because they are on different 
filesystem.
   
   ### How was this patch tested?
   
   Manually tested.
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to