-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/65731/
-----------------------------------------------------------

Review request for hive, Peter Vary and Adam Szita.


Bugs: HIVE-18699
    https://issues.apache.org/jira/browse/HIVE-18699


Repository: hive-git


Description
-------

Extended the HiveMetastore.exchange_partitions method to check if the 
partitions to be exchanged don't exist in the dest table. If one of the 
partitions already exists, throw a MetaException with a proper error message.

Previously an exception like this (wrapped in a MetaException) was thrown:
Insert of object
"org.apache.hadoop.hive.metastore.model.MPartition@4e78fff5" using statement 
"INSERT INTO PARTITIONS
(PART_ID,CREATE_TIME,LAST_ACCESS_TIME,PART_NAME,SD_ID,TBL_ID) VALUES 
(?,?,?,?,?,?)" failed : The statement was
aborted because it would have caused a duplicate key value in a unique or 
primary key constraint or unique index
identified by 'UNIQUEPARTITION' defined on 'PARTITIONS'.

>From user point of view, the type of the exception is not changed 
>(MetaException), just the error message is changed to a more understandable 
>one.


Diffs
-----

  
standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
 47de215 
  
standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/client/TestExchangePartitions.java
 3a06aec 


Diff: https://reviews.apache.org/r/65731/diff/1/


Testing
-------

Tests already exist for this use case in TestExchangePartitions:
- testExchangePartitionsPartAlreadyExists
- testExchangePartitionPartAlreadyExists


Thanks,

Marta Kuczora

Reply via email to