This is an automated email from the ASF dual-hosted git repository.

ayushsaxena pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/master by this push:
     new 7e0f418ef40 HIVE-28570: Iceberg: Aggregate queries on translated 
iceberg table fails post rename. (#5501). (Ayush Saxena, reviewed by Simhadri 
Govindappa)
7e0f418ef40 is described below

commit 7e0f418ef4080accde8ab19969746b680281346c
Author: Ayush Saxena <[email protected]>
AuthorDate: Thu Oct 10 21:01:55 2024 +0530

    HIVE-28570: Iceberg: Aggregate queries on translated iceberg table fails 
post rename. (#5501). (Ayush Saxena, reviewed by Simhadri Govindappa)
---
 .../src/test/queries/positive/iceberg_rename.q     |  7 ++++
 .../src/test/results/positive/iceberg_rename.q.out | 45 ++++++++++++++++++++++
 .../metastore/MetastoreDefaultTransformer.java     |  4 +-
 3 files changed, 55 insertions(+), 1 deletion(-)

diff --git a/iceberg/iceberg-handler/src/test/queries/positive/iceberg_rename.q 
b/iceberg/iceberg-handler/src/test/queries/positive/iceberg_rename.q
index 88f9765030b..d7aa1c1a113 100644
--- a/iceberg/iceberg-handler/src/test/queries/positive/iceberg_rename.q
+++ b/iceberg/iceberg-handler/src/test/queries/positive/iceberg_rename.q
@@ -63,3 +63,10 @@ create table iceorginpart (id int) partitioned by (part 
string) Stored by Iceber
 insert into iceorginpart values (22, 'DER'),(2, 'KLM');
 
 select * from iceorginpart order by id;
+
+set 
metastore.metadata.transformer.class=org.apache.hadoop.hive.metastore.MetastoreDefaultTransformer;
+create table xtoy(a int) stored by iceberg stored as parquet tblproperties 
('format-version'='2');
+insert into xtoy values (1),(2),(3);
+delete from xtoy where a=1;
+alter table xtoy rename to ytox;
+select count(*) from ytox;
diff --git 
a/iceberg/iceberg-handler/src/test/results/positive/iceberg_rename.q.out 
b/iceberg/iceberg-handler/src/test/results/positive/iceberg_rename.q.out
index 76d5d2b0ce4..c4d61ba1dc6 100644
--- a/iceberg/iceberg-handler/src/test/results/positive/iceberg_rename.q.out
+++ b/iceberg/iceberg-handler/src/test/results/positive/iceberg_rename.q.out
@@ -263,3 +263,48 @@ POSTHOOK: Input: default@iceorginpart
 POSTHOOK: Output: hdfs://### HDFS PATH ###
 2      KLM
 22     DER
+PREHOOK: query: create table xtoy(a int) stored by iceberg stored as parquet 
tblproperties ('format-version'='2')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@xtoy
+POSTHOOK: query: create table xtoy(a int) stored by iceberg stored as parquet 
tblproperties ('format-version'='2')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@xtoy
+PREHOOK: query: insert into xtoy values (1),(2),(3)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@xtoy
+POSTHOOK: query: insert into xtoy values (1),(2),(3)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@xtoy
+PREHOOK: query: delete from xtoy where a=1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@xtoy
+PREHOOK: Output: default@xtoy
+POSTHOOK: query: delete from xtoy where a=1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@xtoy
+POSTHOOK: Output: default@xtoy
+PREHOOK: query: alter table xtoy rename to ytox
+PREHOOK: type: ALTERTABLE_RENAME
+PREHOOK: Input: default@xtoy
+PREHOOK: Output: database:default
+PREHOOK: Output: default@xtoy
+PREHOOK: Output: default@ytox
+POSTHOOK: query: alter table xtoy rename to ytox
+POSTHOOK: type: ALTERTABLE_RENAME
+POSTHOOK: Input: default@xtoy
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@xtoy
+POSTHOOK: Output: default@ytox
+PREHOOK: query: select count(*) from ytox
+PREHOOK: type: QUERY
+PREHOOK: Input: default@ytox
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select count(*) from ytox
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@ytox
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+2
diff --git 
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetastoreDefaultTransformer.java
 
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetastoreDefaultTransformer.java
index 89c78aa0af3..235d1cfef55 100644
--- 
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetastoreDefaultTransformer.java
+++ 
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetastoreDefaultTransformer.java
@@ -24,6 +24,7 @@ import static 
org.apache.hadoop.hive.metastore.api.hive_metastoreConstants.CTAS_
 import static 
org.apache.hadoop.hive.metastore.api.hive_metastoreConstants.TABLE_IS_TRANSACTIONAL;
 import static 
org.apache.hadoop.hive.metastore.api.hive_metastoreConstants.TABLE_TRANSACTIONAL_PROPERTIES;
 import static 
org.apache.hadoop.hive.metastore.utils.MetaStoreUtils.EXTERNAL_TABLE_PURGE;
+import static 
org.apache.hadoop.hive.metastore.utils.MetaStoreUtils.isIcebergTable;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -750,7 +751,8 @@ public class MetastoreDefaultTransformer implements 
IMetaStoreMetadataTransforme
 
     Database oldDb = getDbForTable(oldTable);
     boolean isTranslatedToExternalFollowsRenames = 
MetastoreConf.getBoolVar(hmsHandler.getConf(),
-        
ConfVars.METASTORE_METADATA_TRANSFORMER_TRANSLATED_TO_EXTERNAL_FOLLOWS_RENAMES);
+        
ConfVars.METASTORE_METADATA_TRANSFORMER_TRANSLATED_TO_EXTERNAL_FOLLOWS_RENAMES) 
&&
+        !isIcebergTable(newTable.getParameters());
 
     if (isTranslatedToExternalFollowsRenames && isTableRename(oldTable, 
newTable)
         && isTranslatedToExternalTable(oldTable)

Reply via email to