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)