> On May 16, 2016, 8:38 p.m., Ashutosh Chauhan wrote:
> > metastore/src/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java,
> > lines 698-699
> > <https://reviews.apache.org/r/47353/diff/1/?file=1382994#file1382994line698>
> >
> > I am referring to deleteTableColumnStatistics() here and subsequent
> > updateColumnStatistics() in the following if () block. Both of these are
> > independent calls which happens in their own transactions, which leaves a
> > small window of inconsistent state.
Actually all of those calls will be in one transaction. The openTransaction()
and commitTrasanction() in ObjectStore.java use openTrasactionCalls to manage
trsanction. We will not open a new transaction if the call is already in a
transaction. Not sure if I misunderstood anything.
See below:
public boolean openTransaction() {
openTrasactionCalls++;
if (openTrasactionCalls == 1) {
currentTransaction = pm.currentTransaction();
currentTransaction.begin();
transactionStatus = TXN_STATUS.OPEN;
} else {
// openTransactionCalls > 1 means this is an interior transaction
// We should already have a transaction created that is active.
- Aihua
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/47353/#review133433
-----------------------------------------------------------
On May 13, 2016, 7:17 p.m., Aihua Xu wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/47353/
> -----------------------------------------------------------
>
> (Updated May 13, 2016, 7:17 p.m.)
>
>
> Review request for hive and Chaoyu Tang.
>
>
> Repository: hive-git
>
>
> Description
> -------
>
> HIVE-13616: Investigate renaming a table without invalidating the column stats
>
>
> Diffs
> -----
>
> metastore/src/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java
> 0652b9db1a4224262611ff9258e871647442cfeb
> ql/src/test/queries/clientpositive/rename_table_update_column_stats.q
> PRE-CREATION
> ql/src/test/results/clientpositive/rename_table_update_column_stats.q.out
> PRE-CREATION
>
> Diff: https://reviews.apache.org/r/47353/diff/
>
>
> Testing
> -------
>
> Tests have been run and the failed tests don't seem to be related.
>
> To carry over the column stats during renaming the table, the patch
> 1. Save affected column stats
> 2. Rename the table
> 3. Write the saved column stats for the new table.
>
> In this order, column stats will find the foreign key when writing in 3).
>
>
> Thanks,
>
> Aihua Xu
>
>