You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by dk...@apache.org on 2025/07/25 09:26:29 UTC

(hive) branch master updated: HIVE-29098 : Iceberg: Fix dataloss post migrating a partitioned table with default partition to iceberg (#5993)

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

dkuzmenko 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 239deef7823 HIVE-29098 : Iceberg: Fix dataloss post migrating a partitioned table with default partition to iceberg (#5993)
239deef7823 is described below

commit 239deef78235062a1182642f70044f21648ece11
Author: Vikram Ahuja <vi...@users.noreply.github.com>
AuthorDate: Fri Jul 25 14:56:23 2025 +0530

    HIVE-29098 : Iceberg: Fix dataloss post migrating a partitioned table with default partition to iceberg (#5993)
    
    This reverts the code changes from HIVE-27367: Iceberg: Encode partition key values to avoid unnecessary partition keys split in DataFiles.fillFromPath
---
 .../org/apache/iceberg/mr/hive/HiveTableUtil.java  |   20 +-
 .../positive/alter_multi_part_table_to_iceberg.q   |   95 +-
 .../queries/positive/alter_part_table_to_iceberg.q |   61 +
 .../alter_multi_part_table_to_iceberg.q.out        | 1320 ++++++++++++++++++++
 .../positive/alter_part_table_to_iceberg.q.out     |  837 ++++++++++++-
 5 files changed, 2311 insertions(+), 22 deletions(-)

diff --git a/iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/HiveTableUtil.java b/iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/HiveTableUtil.java
index 24f070eb8d5..2e5dec6aa04 100644
--- a/iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/HiveTableUtil.java
+++ b/iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/HiveTableUtil.java
@@ -32,7 +32,6 @@
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
-import java.util.stream.IntStream;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.LocatedFileStatus;
@@ -45,7 +44,6 @@
 import org.apache.hadoop.hive.metastore.api.Partition;
 import org.apache.hadoop.hive.metastore.api.hive_metastoreConstants;
 import org.apache.hadoop.hive.metastore.partition.spec.PartitionSpecProxy;
-import org.apache.hadoop.hive.metastore.utils.FileUtils;
 import org.apache.hadoop.hive.ql.io.IOConstants;
 import org.apache.hadoop.hive.ql.parse.SemanticException;
 import org.apache.iceberg.AppendFiles;
@@ -54,7 +52,6 @@
 import org.apache.iceberg.MetricsConfig;
 import org.apache.iceberg.PartitionSpec;
 import org.apache.iceberg.SerializableTable;
-import org.apache.iceberg.StructLike;
 import org.apache.iceberg.Table;
 import org.apache.iceberg.TableProperties;
 import org.apache.iceberg.Transaction;
@@ -158,21 +155,8 @@ private static List<DataFile> getDataFiles(RemoteIterator<LocatedFileStatus> fil
       if (fileName.startsWith(".") || fileName.startsWith("_") || fileName.endsWith("metadata.json")) {
         continue;
       }
-      partitionKeys.replaceAll((key, value) -> FileUtils.escapePathName(value));
-
-      int[] stringFields = IntStream.range(0, spec.javaClasses().length)
-        .filter(i -> spec.javaClasses()[i].isAssignableFrom(String.class)).toArray();
-
-      dataFiles.addAll(Lists.transform(
-          TableMigrationUtil.listPartition(partitionKeys, fileStatus.getPath().toString(), format, spec,
-            conf, metricsConfig, nameMapping),
-          dataFile -> {
-            StructLike structLike = dataFile.partition();
-            for (int pos : stringFields) {
-              structLike.set(pos, FileUtils.unescapePathName(structLike.get(pos, String.class)));
-            }
-            return dataFile;
-          }));
+      dataFiles.addAll(TableMigrationUtil.listPartition(partitionKeys, fileStatus.getPath().toString(), format, spec,
+              conf, metricsConfig, nameMapping));
     }
     return dataFiles;
   }
diff --git a/iceberg/iceberg-handler/src/test/queries/positive/alter_multi_part_table_to_iceberg.q b/iceberg/iceberg-handler/src/test/queries/positive/alter_multi_part_table_to_iceberg.q
index f8b8c329f0b..e94a24628ba 100644
--- a/iceberg/iceberg-handler/src/test/queries/positive/alter_multi_part_table_to_iceberg.q
+++ b/iceberg/iceberg-handler/src/test/queries/positive/alter_multi_part_table_to_iceberg.q
@@ -62,4 +62,97 @@ explain alter table tbl_avro convert to iceberg;
 alter table tbl_avro convert to iceberg;
 describe formatted tbl_avro;
 select * from tbl_avro order by a;
-drop table tbl_avro;
\ No newline at end of file
+drop table tbl_avro;
+
+drop table if exists tbl_orc_mixed;
+create external table tbl_orc_mixed(a int) partitioned by (b double, c int, d string) stored as orc;
+describe formatted tbl_orc_mixed;
+insert into table tbl_orc_mixed partition (b=1.1, c=2, d='one') values (1), (2), (3);
+insert into table tbl_orc_mixed partition (b=2.22, c=1, d='two') values (4), (5);
+insert into table tbl_orc_mixed partition (b=3.333, c=3, d='three') values (6), (7), (8);
+insert into table tbl_orc_mixed partition (b=4.4444, c=4, d='four') values (9);
+insert into table tbl_orc_mixed values (10, '', '', '');
+insert into table tbl_orc_mixed values (11, null, null, null);
+insert into table tbl_orc_mixed values (12, NULL, NULL, NULL);
+insert into table tbl_orc_mixed values (13, '', -2, '');
+insert into table tbl_orc_mixed values (14, null, null, 'random');
+insert into table tbl_orc_mixed values (15, -0.11, NULL, NULL);
+select count(*) from tbl_orc_mixed;
+select * from tbl_orc_mixed order by a;
+explain alter table tbl_orc_mixed convert to iceberg;
+alter table tbl_orc_mixed convert to iceberg;
+describe formatted tbl_orc_mixed;
+select count(*) from tbl_orc_mixed;
+select * from tbl_orc_mixed order by a;
+insert into table tbl_orc_mixed partition (b=5.55555, c = 5, d = 'five') values (16);
+insert into table tbl_orc_mixed values (17, '', '', '');
+insert into table tbl_orc_mixed values (18, null, null, null);
+insert into table tbl_orc_mixed values (19, NULL, NULL, NULL);
+insert into table tbl_orc_mixed values (20, '', -3, '');
+insert into table tbl_orc_mixed values (21, null, null, 'part');
+insert into table tbl_orc_mixed values (22, -0.234, NULL, NULL);
+select count(*) from tbl_orc_mixed;
+select * from tbl_orc_mixed order by a;
+drop table tbl_orc_mixed;
+
+drop table if exists tbl_parquet_mixed;
+create external table tbl_parquet_mixed(a int) partitioned by (b double, c int, d string) stored as parquet;
+describe formatted tbl_parquet_mixed;
+insert into table tbl_parquet_mixed partition (b=1.1, c=2, d='one') values (1), (2), (3);
+insert into table tbl_parquet_mixed partition (b=2.22, c=1, d='two') values (4), (5);
+insert into table tbl_parquet_mixed partition (b=3.333, c=3, d='three') values (6), (7), (8);
+insert into table tbl_parquet_mixed partition (b=4.4444, c=4, d='four') values (9);
+insert into table tbl_parquet_mixed values (10, '', '', '');
+insert into table tbl_parquet_mixed values (11, null, null, null);
+insert into table tbl_parquet_mixed values (12, NULL, NULL, NULL);
+insert into table tbl_parquet_mixed values (13, '', -2, '');
+insert into table tbl_parquet_mixed values (14, null, null, 'random');
+insert into table tbl_parquet_mixed values (15, -0.11, NULL, NULL);
+select count(*) from tbl_parquet_mixed;
+select * from tbl_parquet_mixed order by a;
+explain alter table tbl_parquet_mixed convert to iceberg;
+alter table tbl_parquet_mixed convert to iceberg;
+describe formatted tbl_parquet_mixed;
+select count(*) from tbl_parquet_mixed;
+select * from tbl_parquet_mixed order by a;
+insert into table tbl_parquet_mixed partition (b=5.55555, c = 5, d = 'five') values (16);
+insert into table tbl_parquet_mixed values (17, '', '', '');
+insert into table tbl_parquet_mixed values (18, null, null, null);
+insert into table tbl_parquet_mixed values (19, NULL, NULL, NULL);
+insert into table tbl_parquet_mixed values (20, '', -3, '');
+insert into table tbl_parquet_mixed values (21, null, null, 'part');
+insert into table tbl_parquet_mixed values (22, -0.234, NULL, NULL);
+select count(*) from tbl_parquet_mixed;
+select * from tbl_parquet_mixed order by a;
+drop table tbl_parquet_mixed;
+
+drop table if exists tbl_avro_mixed;
+create external table tbl_avro_mixed(a int) partitioned by (b double, c int, d string) stored as avro;
+describe formatted tbl_avro_mixed;
+insert into table tbl_avro_mixed partition (b=1.1, c=2, d='one') values (1), (2), (3);
+insert into table tbl_avro_mixed partition (b=2.22, c=1, d='two') values (4), (5);
+insert into table tbl_avro_mixed partition (b=3.333, c=3, d='three') values (6), (7), (8);
+insert into table tbl_avro_mixed partition (b=4.4444, c=4, d='four') values (9);
+insert into table tbl_avro_mixed values (10, '', '', '');
+insert into table tbl_avro_mixed values (11, null, null, null);
+insert into table tbl_avro_mixed values (12, NULL, NULL, NULL);
+insert into table tbl_avro_mixed values (13, '', -2, '');
+insert into table tbl_avro_mixed values (14, null, null, 'random');
+insert into table tbl_avro_mixed values (15, -0.11, NULL, NULL);
+select count(*) from tbl_avro_mixed;
+select * from tbl_avro_mixed order by a;
+explain alter table tbl_avro_mixed convert to iceberg;
+alter table tbl_avro_mixed convert to iceberg;
+describe formatted tbl_avro_mixed;
+select count(*) from tbl_avro_mixed;
+select * from tbl_avro_mixed order by a;
+insert into table tbl_avro_mixed partition (b=5.55555, c = 5, d = 'five') values (16);
+insert into table tbl_avro_mixed values (17, '', '', '');
+insert into table tbl_avro_mixed values (18, null, null, null);
+insert into table tbl_avro_mixed values (19, NULL, NULL, NULL);
+insert into table tbl_avro_mixed values (20, '', -3, '');
+insert into table tbl_avro_mixed values (21, null, null, 'part');
+insert into table tbl_avro_mixed values (22, -0.234, NULL, NULL);
+select count(*) from tbl_avro_mixed;
+select * from tbl_avro_mixed order by a;
+drop table tbl_avro_mixed;
\ No newline at end of file
diff --git a/iceberg/iceberg-handler/src/test/queries/positive/alter_part_table_to_iceberg.q b/iceberg/iceberg-handler/src/test/queries/positive/alter_part_table_to_iceberg.q
index e2de004407b..d70c851ecb8 100644
--- a/iceberg/iceberg-handler/src/test/queries/positive/alter_part_table_to_iceberg.q
+++ b/iceberg/iceberg-handler/src/test/queries/positive/alter_part_table_to_iceberg.q
@@ -34,13 +34,74 @@ insert into table tbl_parquet partition (b='one') values (1), (2), (3);
 insert into table tbl_parquet partition (b='two') values (4), (5);
 insert into table tbl_parquet partition (b='three') values (6), (7), (8);
 insert into table tbl_parquet partition (b='four') values (9);
+insert into table tbl_parquet values (10, '');
+insert into table tbl_parquet values (11, null);
+insert into table tbl_parquet values (12, NULL);
+select count(*) from tbl_parquet;
 select * from tbl_parquet order by a;
 explain alter table tbl_parquet convert to iceberg;
 alter table tbl_parquet convert to iceberg;
 describe formatted tbl_parquet;
+select count(*) from tbl_parquet;
+select * from tbl_parquet order by a;
+insert into table tbl_parquet partition (b='five') values (13);
+insert into table tbl_parquet values (14, '');
+insert into table tbl_parquet values (15, null);
+insert into table tbl_parquet values (16, NULL);
+select count(*) from tbl_parquet;
 select * from tbl_parquet order by a;
 drop table tbl_parquet;
 
+drop table if exists tbl_parquet_int;
+create external table tbl_parquet_int(a int) partitioned by (b int) stored as parquet;
+describe formatted tbl_parquet_int;
+insert into table tbl_parquet_int partition (b=1) values (1), (2), (3);
+insert into table tbl_parquet_int partition (b=2) values (4), (5);
+insert into table tbl_parquet_int partition (b=3) values (6), (7), (8);
+insert into table tbl_parquet_int partition (b=4) values (9);
+insert into table tbl_parquet_int values (10, '');
+insert into table tbl_parquet_int values (11, null);
+insert into table tbl_parquet_int values (12, NULL);
+select count(*) from tbl_parquet_int;
+select * from tbl_parquet_int order by a;
+explain alter table tbl_parquet_int convert to iceberg;
+alter table tbl_parquet_int convert to iceberg;
+describe formatted tbl_parquet_int;
+select count(*) from tbl_parquet_int;
+select * from tbl_parquet_int order by a;
+insert into table tbl_parquet_int partition (b=5) values (13);
+insert into table tbl_parquet_int values (14, '');
+insert into table tbl_parquet_int values (15, null);
+insert into table tbl_parquet_int values (16, NULL);
+select count(*) from tbl_parquet_int;
+select * from tbl_parquet_int order by a;
+drop table tbl_parquet_int;
+
+drop table if exists tbl_parquet_double;
+create external table tbl_parquet_double(a int) partitioned by (b double) stored as parquet;
+describe formatted tbl_parquet_double;
+insert into table tbl_parquet_double partition (b=1.1) values (1), (2), (3);
+insert into table tbl_parquet_double partition (b=2.22) values (4), (5);
+insert into table tbl_parquet_double partition (b=3.333) values (6), (7), (8);
+insert into table tbl_parquet_double partition (b=4.4444) values (9);
+insert into table tbl_parquet_double values (10, '');
+insert into table tbl_parquet_double values (11, null);
+insert into table tbl_parquet_double values (12, NULL);
+select count(*) from tbl_parquet_double;
+select * from tbl_parquet_double order by a;
+explain alter table tbl_parquet_double convert to iceberg;
+alter table tbl_parquet_double convert to iceberg;
+describe formatted tbl_parquet_double;
+select count(*) from tbl_parquet_double;
+select * from tbl_parquet_double order by a;
+insert into table tbl_parquet_double partition (b=5.55555) values (13);
+insert into table tbl_parquet_double values (14, '');
+insert into table tbl_parquet_double values (15, null);
+insert into table tbl_parquet_double values (16, NULL);
+select count(*) from tbl_parquet_double;
+select * from tbl_parquet_double order by a;
+drop table tbl_parquet_double;
+
 drop table if exists tbl_avro;
 create external table tbl_avro(a int) partitioned by (b string) stored as avro;
 describe formatted tbl_avro;
diff --git a/iceberg/iceberg-handler/src/test/results/positive/alter_multi_part_table_to_iceberg.q.out b/iceberg/iceberg-handler/src/test/results/positive/alter_multi_part_table_to_iceberg.q.out
index 768f4c574a2..c4c1a87209a 100644
--- a/iceberg/iceberg-handler/src/test/results/positive/alter_multi_part_table_to_iceberg.q.out
+++ b/iceberg/iceberg-handler/src/test/results/positive/alter_multi_part_table_to_iceberg.q.out
@@ -808,3 +808,1323 @@ POSTHOOK: type: DROPTABLE
 POSTHOOK: Input: default@tbl_avro
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@tbl_avro
+PREHOOK: query: drop table if exists tbl_orc_mixed
+PREHOOK: type: DROPTABLE
+PREHOOK: Output: database:default
+POSTHOOK: query: drop table if exists tbl_orc_mixed
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Output: database:default
+PREHOOK: query: create external table tbl_orc_mixed(a int) partitioned by (b double, c int, d string) stored as orc
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@tbl_orc_mixed
+POSTHOOK: query: create external table tbl_orc_mixed(a int) partitioned by (b double, c int, d string) stored as orc
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@tbl_orc_mixed
+PREHOOK: query: describe formatted tbl_orc_mixed
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@tbl_orc_mixed
+POSTHOOK: query: describe formatted tbl_orc_mixed
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@tbl_orc_mixed
+# col_name            	data_type           	comment             
+a                   	int                 	                    
+	 	 
+# Partition Information	 	 
+# col_name            	data_type           	comment             
+b                   	double              	                    
+c                   	int                 	                    
+d                   	string              	                    
+	 	 
+# Detailed Table Information	 	 
+Database:           	default             	 
+#### A masked pattern was here ####
+Retention:          	0                   	 
+#### A masked pattern was here ####
+Table Type:         	EXTERNAL_TABLE      	 
+Table Parameters:	 	 
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
+	EXTERNAL            	TRUE                
+	bucketing_version   	2                   
+	numFiles            	0                   
+	numPartitions       	0                   
+	numRows             	0                   
+	rawDataSize         	0                   
+	totalSize           	#Masked#
+#### A masked pattern was here ####
+	 	 
+# Storage Information	 	 
+SerDe Library:      	org.apache.hadoop.hive.ql.io.orc.OrcSerde	 
+InputFormat:        	org.apache.hadoop.hive.ql.io.orc.OrcInputFormat	 
+OutputFormat:       	org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat	 
+Compressed:         	No                  	 
+Num Buckets:        	-1                  	 
+Bucket Columns:     	[]                  	 
+Sort Columns:       	[]                  	 
+Storage Desc Params:	 	 
+	serialization.format	1                   
+PREHOOK: query: insert into table tbl_orc_mixed partition (b=1.1, c=2, d='one') values (1), (2), (3)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_orc_mixed@b=1.1/c=2/d=one
+POSTHOOK: query: insert into table tbl_orc_mixed partition (b=1.1, c=2, d='one') values (1), (2), (3)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_orc_mixed@b=1.1/c=2/d=one
+POSTHOOK: Lineage: tbl_orc_mixed PARTITION(b=1.1,c=2,d=one).a SCRIPT []
+PREHOOK: query: insert into table tbl_orc_mixed partition (b=2.22, c=1, d='two') values (4), (5)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_orc_mixed@b=2.22/c=1/d=two
+POSTHOOK: query: insert into table tbl_orc_mixed partition (b=2.22, c=1, d='two') values (4), (5)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_orc_mixed@b=2.22/c=1/d=two
+POSTHOOK: Lineage: tbl_orc_mixed PARTITION(b=2.22,c=1,d=two).a SCRIPT []
+PREHOOK: query: insert into table tbl_orc_mixed partition (b=3.333, c=3, d='three') values (6), (7), (8)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_orc_mixed@b=3.333/c=3/d=three
+POSTHOOK: query: insert into table tbl_orc_mixed partition (b=3.333, c=3, d='three') values (6), (7), (8)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_orc_mixed@b=3.333/c=3/d=three
+POSTHOOK: Lineage: tbl_orc_mixed PARTITION(b=3.333,c=3,d=three).a SCRIPT []
+PREHOOK: query: insert into table tbl_orc_mixed partition (b=4.4444, c=4, d='four') values (9)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_orc_mixed@b=4.4444/c=4/d=four
+POSTHOOK: query: insert into table tbl_orc_mixed partition (b=4.4444, c=4, d='four') values (9)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_orc_mixed@b=4.4444/c=4/d=four
+POSTHOOK: Lineage: tbl_orc_mixed PARTITION(b=4.4444,c=4,d=four).a SCRIPT []
+PREHOOK: query: insert into table tbl_orc_mixed values (10, '', '', '')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_orc_mixed
+POSTHOOK: query: insert into table tbl_orc_mixed values (10, '', '', '')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_orc_mixed
+POSTHOOK: Output: default@tbl_orc_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_orc_mixed PARTITION(b=__HIVE_DEFAULT_PARTITION__,c=__HIVE_DEFAULT_PARTITION__,d=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: insert into table tbl_orc_mixed values (11, null, null, null)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_orc_mixed
+POSTHOOK: query: insert into table tbl_orc_mixed values (11, null, null, null)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_orc_mixed
+POSTHOOK: Output: default@tbl_orc_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_orc_mixed PARTITION(b=__HIVE_DEFAULT_PARTITION__,c=__HIVE_DEFAULT_PARTITION__,d=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: insert into table tbl_orc_mixed values (12, NULL, NULL, NULL)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_orc_mixed
+POSTHOOK: query: insert into table tbl_orc_mixed values (12, NULL, NULL, NULL)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_orc_mixed
+POSTHOOK: Output: default@tbl_orc_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_orc_mixed PARTITION(b=__HIVE_DEFAULT_PARTITION__,c=__HIVE_DEFAULT_PARTITION__,d=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: insert into table tbl_orc_mixed values (13, '', -2, '')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_orc_mixed
+POSTHOOK: query: insert into table tbl_orc_mixed values (13, '', -2, '')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_orc_mixed
+POSTHOOK: Output: default@tbl_orc_mixed@b=__HIVE_DEFAULT_PARTITION__/c=-2/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_orc_mixed PARTITION(b=__HIVE_DEFAULT_PARTITION__,c=-2,d=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: insert into table tbl_orc_mixed values (14, null, null, 'random')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_orc_mixed
+POSTHOOK: query: insert into table tbl_orc_mixed values (14, null, null, 'random')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_orc_mixed
+POSTHOOK: Output: default@tbl_orc_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=random
+POSTHOOK: Lineage: tbl_orc_mixed PARTITION(b=__HIVE_DEFAULT_PARTITION__,c=__HIVE_DEFAULT_PARTITION__,d=random).a SCRIPT []
+PREHOOK: query: insert into table tbl_orc_mixed values (15, -0.11, NULL, NULL)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_orc_mixed
+POSTHOOK: query: insert into table tbl_orc_mixed values (15, -0.11, NULL, NULL)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_orc_mixed
+POSTHOOK: Output: default@tbl_orc_mixed@b=-0.11/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_orc_mixed PARTITION(b=-0.11,c=__HIVE_DEFAULT_PARTITION__,d=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: select count(*) from tbl_orc_mixed
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_orc_mixed
+PREHOOK: Input: default@tbl_orc_mixed@b=-0.11/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Input: default@tbl_orc_mixed@b=1.1/c=2/d=one
+PREHOOK: Input: default@tbl_orc_mixed@b=2.22/c=1/d=two
+PREHOOK: Input: default@tbl_orc_mixed@b=3.333/c=3/d=three
+PREHOOK: Input: default@tbl_orc_mixed@b=4.4444/c=4/d=four
+PREHOOK: Input: default@tbl_orc_mixed@b=__HIVE_DEFAULT_PARTITION__/c=-2/d=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Input: default@tbl_orc_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Input: default@tbl_orc_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=random
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select count(*) from tbl_orc_mixed
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_orc_mixed
+POSTHOOK: Input: default@tbl_orc_mixed@b=-0.11/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Input: default@tbl_orc_mixed@b=1.1/c=2/d=one
+POSTHOOK: Input: default@tbl_orc_mixed@b=2.22/c=1/d=two
+POSTHOOK: Input: default@tbl_orc_mixed@b=3.333/c=3/d=three
+POSTHOOK: Input: default@tbl_orc_mixed@b=4.4444/c=4/d=four
+POSTHOOK: Input: default@tbl_orc_mixed@b=__HIVE_DEFAULT_PARTITION__/c=-2/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Input: default@tbl_orc_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Input: default@tbl_orc_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=random
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+15
+PREHOOK: query: select * from tbl_orc_mixed order by a
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_orc_mixed
+PREHOOK: Input: default@tbl_orc_mixed@b=-0.11/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Input: default@tbl_orc_mixed@b=1.1/c=2/d=one
+PREHOOK: Input: default@tbl_orc_mixed@b=2.22/c=1/d=two
+PREHOOK: Input: default@tbl_orc_mixed@b=3.333/c=3/d=three
+PREHOOK: Input: default@tbl_orc_mixed@b=4.4444/c=4/d=four
+PREHOOK: Input: default@tbl_orc_mixed@b=__HIVE_DEFAULT_PARTITION__/c=-2/d=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Input: default@tbl_orc_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Input: default@tbl_orc_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=random
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select * from tbl_orc_mixed order by a
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_orc_mixed
+POSTHOOK: Input: default@tbl_orc_mixed@b=-0.11/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Input: default@tbl_orc_mixed@b=1.1/c=2/d=one
+POSTHOOK: Input: default@tbl_orc_mixed@b=2.22/c=1/d=two
+POSTHOOK: Input: default@tbl_orc_mixed@b=3.333/c=3/d=three
+POSTHOOK: Input: default@tbl_orc_mixed@b=4.4444/c=4/d=four
+POSTHOOK: Input: default@tbl_orc_mixed@b=__HIVE_DEFAULT_PARTITION__/c=-2/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Input: default@tbl_orc_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Input: default@tbl_orc_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=random
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+1	1.1	2	one
+2	1.1	2	one
+3	1.1	2	one
+4	2.22	1	two
+5	2.22	1	two
+6	3.333	3	three
+7	3.333	3	three
+8	3.333	3	three
+9	4.4444	4	four
+10	NULL	NULL	__HIVE_DEFAULT_PARTITION__
+11	NULL	NULL	__HIVE_DEFAULT_PARTITION__
+12	NULL	NULL	__HIVE_DEFAULT_PARTITION__
+13	NULL	-2	__HIVE_DEFAULT_PARTITION__
+14	NULL	NULL	random
+15	-0.11	NULL	__HIVE_DEFAULT_PARTITION__
+PREHOOK: query: explain alter table tbl_orc_mixed convert to iceberg
+PREHOOK: type: ALTERTABLE_CONVERT
+PREHOOK: Input: default@tbl_orc_mixed
+POSTHOOK: query: explain alter table tbl_orc_mixed convert to iceberg
+POSTHOOK: type: ALTERTABLE_CONVERT
+POSTHOOK: Input: default@tbl_orc_mixed
+Stage-0
+  Convert operation{"table name:":"default.tbl_orc_mixed","spec:":"AlterTableConvertSpec{ConvertTo=iceberg, TBLProperties={}}"}
+
+PREHOOK: query: alter table tbl_orc_mixed convert to iceberg
+PREHOOK: type: ALTERTABLE_CONVERT
+PREHOOK: Input: default@tbl_orc_mixed
+POSTHOOK: query: alter table tbl_orc_mixed convert to iceberg
+POSTHOOK: type: ALTERTABLE_CONVERT
+POSTHOOK: Input: default@tbl_orc_mixed
+POSTHOOK: Output: default@tbl_orc_mixed
+PREHOOK: query: describe formatted tbl_orc_mixed
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@tbl_orc_mixed
+POSTHOOK: query: describe formatted tbl_orc_mixed
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@tbl_orc_mixed
+# col_name            	data_type           	comment             
+a                   	int                 	                    
+b                   	double              	                    
+c                   	int                 	                    
+d                   	string              	                    
+	 	 
+# Partition Transform Information	 	 
+# col_name            	transform_type      	 
+b                   	IDENTITY            	 
+c                   	IDENTITY            	 
+d                   	IDENTITY            	 
+	 	 
+# Detailed Table Information	 	 
+Database:           	default             	 
+#### A masked pattern was here ####
+Retention:          	0                   	 
+#### A masked pattern was here ####
+Table Type:         	EXTERNAL_TABLE      	 
+Table Parameters:	 	 
+	EXTERNAL            	TRUE                
+	MIGRATED_TO_ICEBERG 	true                
+	bucketing_version   	2                   
+	current-schema      	{\"type\":\"struct\",\"schema-id\":0,\"fields\":[{\"id\":1,\"name\":\"a\",\"required\":false,\"type\":\"int\"},{\"id\":2,\"name\":\"b\",\"required\":false,\"type\":\"double\"},{\"id\":3,\"name\":\"c\",\"required\":false,\"type\":\"int\"},{\"id\":4,\"name\":\"d\",\"required\":false,\"type\":\"string\"}]}
+	current-snapshot-id 	#Masked#
+	current-snapshot-summary	{\"added-data-files\":\"10\",\"added-records\":\"15\",\"added-files-size\":\"#Masked#\",\"changed-partition-count\":\"8\",\"total-records\":\"15\",\"total-files-size\":\"#Masked#\",\"total-data-files\":\"10\",\"total-delete-files\":\"0\",\"total-position-deletes\":\"0\",\"total-equality-deletes\":\"0\",\"iceberg-version\":\"#Masked#\"}
+	current-snapshot-timestamp-ms	#Masked#       
+	default-partition-spec	{\"spec-id\":0,\"fields\":[{\"name\":\"b\",\"transform\":\"identity\",\"source-id\":2,\"field-id\":1000},{\"name\":\"c\",\"transform\":\"identity\",\"source-id\":3,\"field-id\":1001},{\"name\":\"d\",\"transform\":\"identity\",\"source-id\":4,\"field-id\":1002}]}
+	format-version      	2                   
+	iceberg.orc.files.only	true                
+#### A masked pattern was here ####
+	metadata_location   	hdfs://### HDFS PATH ###
+	numFiles            	10                  
+	numRows             	15                  
+	parquet.compression 	zstd                
+	previous_metadata_location	hdfs://### HDFS PATH ###
+	schema.name-mapping.default	[ {                 
+	                           	  \"field-id\" : 1, 
+	                           	  \"names\" : [ \"a\" ]
+	                           	}, {                
+	                           	  \"field-id\" : 2, 
+	                           	  \"names\" : [ \"b\" ]
+	                           	}, {                
+	                           	  \"field-id\" : 3, 
+	                           	  \"names\" : [ \"c\" ]
+	                           	}, {                
+	                           	  \"field-id\" : 4, 
+	                           	  \"names\" : [ \"d\" ]
+	                           	} ]                 
+	snapshot-count      	1                   
+	storage_handler     	org.apache.iceberg.mr.hive.HiveIcebergStorageHandler
+	table_type          	ICEBERG             
+	totalSize           	#Masked#
+#### A masked pattern was here ####
+	uuid                	#Masked#
+	write.delete.mode   	merge-on-read       
+	write.format.default	orc                 
+	write.merge.mode    	merge-on-read       
+	write.update.mode   	merge-on-read       
+	 	 
+# Storage Information	 	 
+SerDe Library:      	org.apache.iceberg.mr.hive.HiveIcebergSerDe	 
+InputFormat:        	org.apache.iceberg.mr.hive.HiveIcebergInputFormat	 
+OutputFormat:       	org.apache.iceberg.mr.hive.HiveIcebergOutputFormat	 
+Compressed:         	No                  	 
+Sort Columns:       	[]                  	 
+PREHOOK: query: select count(*) from tbl_orc_mixed
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_orc_mixed
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select count(*) from tbl_orc_mixed
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_orc_mixed
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+15
+PREHOOK: query: select * from tbl_orc_mixed order by a
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_orc_mixed
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select * from tbl_orc_mixed order by a
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_orc_mixed
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+1	1.1	2	one
+2	1.1	2	one
+3	1.1	2	one
+4	2.22	1	two
+5	2.22	1	two
+6	3.333	3	three
+7	3.333	3	three
+8	3.333	3	three
+9	4.4444	4	four
+10	NULL	NULL	NULL
+11	NULL	NULL	NULL
+12	NULL	NULL	NULL
+13	NULL	-2	NULL
+14	NULL	NULL	random
+15	-0.11	NULL	NULL
+PREHOOK: query: insert into table tbl_orc_mixed partition (b=5.55555, c = 5, d = 'five') values (16)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_orc_mixed@d=five/b=5.55555/c=5
+POSTHOOK: query: insert into table tbl_orc_mixed partition (b=5.55555, c = 5, d = 'five') values (16)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_orc_mixed@d=five/b=5.55555/c=5
+PREHOOK: query: insert into table tbl_orc_mixed values (17, '', '', '')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_orc_mixed
+POSTHOOK: query: insert into table tbl_orc_mixed values (17, '', '', '')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_orc_mixed
+PREHOOK: query: insert into table tbl_orc_mixed values (18, null, null, null)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_orc_mixed
+POSTHOOK: query: insert into table tbl_orc_mixed values (18, null, null, null)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_orc_mixed
+PREHOOK: query: insert into table tbl_orc_mixed values (19, NULL, NULL, NULL)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_orc_mixed
+POSTHOOK: query: insert into table tbl_orc_mixed values (19, NULL, NULL, NULL)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_orc_mixed
+PREHOOK: query: insert into table tbl_orc_mixed values (20, '', -3, '')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_orc_mixed
+POSTHOOK: query: insert into table tbl_orc_mixed values (20, '', -3, '')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_orc_mixed
+PREHOOK: query: insert into table tbl_orc_mixed values (21, null, null, 'part')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_orc_mixed
+POSTHOOK: query: insert into table tbl_orc_mixed values (21, null, null, 'part')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_orc_mixed
+PREHOOK: query: insert into table tbl_orc_mixed values (22, -0.234, NULL, NULL)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_orc_mixed
+POSTHOOK: query: insert into table tbl_orc_mixed values (22, -0.234, NULL, NULL)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_orc_mixed
+PREHOOK: query: select count(*) from tbl_orc_mixed
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_orc_mixed
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select count(*) from tbl_orc_mixed
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_orc_mixed
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+22
+PREHOOK: query: select * from tbl_orc_mixed order by a
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_orc_mixed
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select * from tbl_orc_mixed order by a
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_orc_mixed
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+1	1.1	2	one
+2	1.1	2	one
+3	1.1	2	one
+4	2.22	1	two
+5	2.22	1	two
+6	3.333	3	three
+7	3.333	3	three
+8	3.333	3	three
+9	4.4444	4	four
+10	NULL	NULL	NULL
+11	NULL	NULL	NULL
+12	NULL	NULL	NULL
+13	NULL	-2	NULL
+14	NULL	NULL	random
+15	-0.11	NULL	NULL
+16	5.55555	5	five
+17	NULL	NULL	
+18	NULL	NULL	NULL
+19	NULL	NULL	NULL
+20	NULL	-3	
+21	NULL	NULL	part
+22	-0.234	NULL	NULL
+PREHOOK: query: drop table tbl_orc_mixed
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@tbl_orc_mixed
+PREHOOK: Output: database:default
+PREHOOK: Output: default@tbl_orc_mixed
+POSTHOOK: query: drop table tbl_orc_mixed
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@tbl_orc_mixed
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@tbl_orc_mixed
+PREHOOK: query: drop table if exists tbl_parquet_mixed
+PREHOOK: type: DROPTABLE
+PREHOOK: Output: database:default
+POSTHOOK: query: drop table if exists tbl_parquet_mixed
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Output: database:default
+PREHOOK: query: create external table tbl_parquet_mixed(a int) partitioned by (b double, c int, d string) stored as parquet
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@tbl_parquet_mixed
+POSTHOOK: query: create external table tbl_parquet_mixed(a int) partitioned by (b double, c int, d string) stored as parquet
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@tbl_parquet_mixed
+PREHOOK: query: describe formatted tbl_parquet_mixed
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@tbl_parquet_mixed
+POSTHOOK: query: describe formatted tbl_parquet_mixed
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@tbl_parquet_mixed
+# col_name            	data_type           	comment             
+a                   	int                 	                    
+	 	 
+# Partition Information	 	 
+# col_name            	data_type           	comment             
+b                   	double              	                    
+c                   	int                 	                    
+d                   	string              	                    
+	 	 
+# Detailed Table Information	 	 
+Database:           	default             	 
+#### A masked pattern was here ####
+Retention:          	0                   	 
+#### A masked pattern was here ####
+Table Type:         	EXTERNAL_TABLE      	 
+Table Parameters:	 	 
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
+	EXTERNAL            	TRUE                
+	bucketing_version   	2                   
+	numFiles            	0                   
+	numPartitions       	0                   
+	numRows             	0                   
+	rawDataSize         	0                   
+	totalSize           	#Masked#
+#### A masked pattern was here ####
+	 	 
+# Storage Information	 	 
+SerDe Library:      	org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe	 
+InputFormat:        	org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat	 
+OutputFormat:       	org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat	 
+Compressed:         	No                  	 
+Num Buckets:        	-1                  	 
+Bucket Columns:     	[]                  	 
+Sort Columns:       	[]                  	 
+Storage Desc Params:	 	 
+	serialization.format	1                   
+PREHOOK: query: insert into table tbl_parquet_mixed partition (b=1.1, c=2, d='one') values (1), (2), (3)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_mixed@b=1.1/c=2/d=one
+POSTHOOK: query: insert into table tbl_parquet_mixed partition (b=1.1, c=2, d='one') values (1), (2), (3)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_mixed@b=1.1/c=2/d=one
+POSTHOOK: Lineage: tbl_parquet_mixed PARTITION(b=1.1,c=2,d=one).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_mixed partition (b=2.22, c=1, d='two') values (4), (5)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_mixed@b=2.22/c=1/d=two
+POSTHOOK: query: insert into table tbl_parquet_mixed partition (b=2.22, c=1, d='two') values (4), (5)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_mixed@b=2.22/c=1/d=two
+POSTHOOK: Lineage: tbl_parquet_mixed PARTITION(b=2.22,c=1,d=two).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_mixed partition (b=3.333, c=3, d='three') values (6), (7), (8)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_mixed@b=3.333/c=3/d=three
+POSTHOOK: query: insert into table tbl_parquet_mixed partition (b=3.333, c=3, d='three') values (6), (7), (8)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_mixed@b=3.333/c=3/d=three
+POSTHOOK: Lineage: tbl_parquet_mixed PARTITION(b=3.333,c=3,d=three).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_mixed partition (b=4.4444, c=4, d='four') values (9)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_mixed@b=4.4444/c=4/d=four
+POSTHOOK: query: insert into table tbl_parquet_mixed partition (b=4.4444, c=4, d='four') values (9)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_mixed@b=4.4444/c=4/d=four
+POSTHOOK: Lineage: tbl_parquet_mixed PARTITION(b=4.4444,c=4,d=four).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_mixed values (10, '', '', '')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_mixed
+POSTHOOK: query: insert into table tbl_parquet_mixed values (10, '', '', '')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_mixed
+POSTHOOK: Output: default@tbl_parquet_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_parquet_mixed PARTITION(b=__HIVE_DEFAULT_PARTITION__,c=__HIVE_DEFAULT_PARTITION__,d=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_mixed values (11, null, null, null)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_mixed
+POSTHOOK: query: insert into table tbl_parquet_mixed values (11, null, null, null)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_mixed
+POSTHOOK: Output: default@tbl_parquet_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_parquet_mixed PARTITION(b=__HIVE_DEFAULT_PARTITION__,c=__HIVE_DEFAULT_PARTITION__,d=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_mixed values (12, NULL, NULL, NULL)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_mixed
+POSTHOOK: query: insert into table tbl_parquet_mixed values (12, NULL, NULL, NULL)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_mixed
+POSTHOOK: Output: default@tbl_parquet_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_parquet_mixed PARTITION(b=__HIVE_DEFAULT_PARTITION__,c=__HIVE_DEFAULT_PARTITION__,d=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_mixed values (13, '', -2, '')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_mixed
+POSTHOOK: query: insert into table tbl_parquet_mixed values (13, '', -2, '')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_mixed
+POSTHOOK: Output: default@tbl_parquet_mixed@b=__HIVE_DEFAULT_PARTITION__/c=-2/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_parquet_mixed PARTITION(b=__HIVE_DEFAULT_PARTITION__,c=-2,d=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_mixed values (14, null, null, 'random')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_mixed
+POSTHOOK: query: insert into table tbl_parquet_mixed values (14, null, null, 'random')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_mixed
+POSTHOOK: Output: default@tbl_parquet_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=random
+POSTHOOK: Lineage: tbl_parquet_mixed PARTITION(b=__HIVE_DEFAULT_PARTITION__,c=__HIVE_DEFAULT_PARTITION__,d=random).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_mixed values (15, -0.11, NULL, NULL)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_mixed
+POSTHOOK: query: insert into table tbl_parquet_mixed values (15, -0.11, NULL, NULL)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_mixed
+POSTHOOK: Output: default@tbl_parquet_mixed@b=-0.11/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_parquet_mixed PARTITION(b=-0.11,c=__HIVE_DEFAULT_PARTITION__,d=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: select count(*) from tbl_parquet_mixed
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet_mixed
+PREHOOK: Input: default@tbl_parquet_mixed@b=-0.11/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Input: default@tbl_parquet_mixed@b=1.1/c=2/d=one
+PREHOOK: Input: default@tbl_parquet_mixed@b=2.22/c=1/d=two
+PREHOOK: Input: default@tbl_parquet_mixed@b=3.333/c=3/d=three
+PREHOOK: Input: default@tbl_parquet_mixed@b=4.4444/c=4/d=four
+PREHOOK: Input: default@tbl_parquet_mixed@b=__HIVE_DEFAULT_PARTITION__/c=-2/d=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Input: default@tbl_parquet_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Input: default@tbl_parquet_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=random
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select count(*) from tbl_parquet_mixed
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet_mixed
+POSTHOOK: Input: default@tbl_parquet_mixed@b=-0.11/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Input: default@tbl_parquet_mixed@b=1.1/c=2/d=one
+POSTHOOK: Input: default@tbl_parquet_mixed@b=2.22/c=1/d=two
+POSTHOOK: Input: default@tbl_parquet_mixed@b=3.333/c=3/d=three
+POSTHOOK: Input: default@tbl_parquet_mixed@b=4.4444/c=4/d=four
+POSTHOOK: Input: default@tbl_parquet_mixed@b=__HIVE_DEFAULT_PARTITION__/c=-2/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Input: default@tbl_parquet_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Input: default@tbl_parquet_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=random
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+15
+PREHOOK: query: select * from tbl_parquet_mixed order by a
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet_mixed
+PREHOOK: Input: default@tbl_parquet_mixed@b=-0.11/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Input: default@tbl_parquet_mixed@b=1.1/c=2/d=one
+PREHOOK: Input: default@tbl_parquet_mixed@b=2.22/c=1/d=two
+PREHOOK: Input: default@tbl_parquet_mixed@b=3.333/c=3/d=three
+PREHOOK: Input: default@tbl_parquet_mixed@b=4.4444/c=4/d=four
+PREHOOK: Input: default@tbl_parquet_mixed@b=__HIVE_DEFAULT_PARTITION__/c=-2/d=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Input: default@tbl_parquet_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Input: default@tbl_parquet_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=random
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select * from tbl_parquet_mixed order by a
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet_mixed
+POSTHOOK: Input: default@tbl_parquet_mixed@b=-0.11/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Input: default@tbl_parquet_mixed@b=1.1/c=2/d=one
+POSTHOOK: Input: default@tbl_parquet_mixed@b=2.22/c=1/d=two
+POSTHOOK: Input: default@tbl_parquet_mixed@b=3.333/c=3/d=three
+POSTHOOK: Input: default@tbl_parquet_mixed@b=4.4444/c=4/d=four
+POSTHOOK: Input: default@tbl_parquet_mixed@b=__HIVE_DEFAULT_PARTITION__/c=-2/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Input: default@tbl_parquet_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Input: default@tbl_parquet_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=random
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+1	1.1	2	one
+2	1.1	2	one
+3	1.1	2	one
+4	2.22	1	two
+5	2.22	1	two
+6	3.333	3	three
+7	3.333	3	three
+8	3.333	3	three
+9	4.4444	4	four
+10	NULL	NULL	__HIVE_DEFAULT_PARTITION__
+11	NULL	NULL	__HIVE_DEFAULT_PARTITION__
+12	NULL	NULL	__HIVE_DEFAULT_PARTITION__
+13	NULL	-2	__HIVE_DEFAULT_PARTITION__
+14	NULL	NULL	random
+15	-0.11	NULL	__HIVE_DEFAULT_PARTITION__
+PREHOOK: query: explain alter table tbl_parquet_mixed convert to iceberg
+PREHOOK: type: ALTERTABLE_CONVERT
+PREHOOK: Input: default@tbl_parquet_mixed
+POSTHOOK: query: explain alter table tbl_parquet_mixed convert to iceberg
+POSTHOOK: type: ALTERTABLE_CONVERT
+POSTHOOK: Input: default@tbl_parquet_mixed
+Stage-0
+  Convert operation{"table name:":"default.tbl_parquet_mixed","spec:":"AlterTableConvertSpec{ConvertTo=iceberg, TBLProperties={}}"}
+
+PREHOOK: query: alter table tbl_parquet_mixed convert to iceberg
+PREHOOK: type: ALTERTABLE_CONVERT
+PREHOOK: Input: default@tbl_parquet_mixed
+POSTHOOK: query: alter table tbl_parquet_mixed convert to iceberg
+POSTHOOK: type: ALTERTABLE_CONVERT
+POSTHOOK: Input: default@tbl_parquet_mixed
+POSTHOOK: Output: default@tbl_parquet_mixed
+PREHOOK: query: describe formatted tbl_parquet_mixed
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@tbl_parquet_mixed
+POSTHOOK: query: describe formatted tbl_parquet_mixed
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@tbl_parquet_mixed
+# col_name            	data_type           	comment             
+a                   	int                 	                    
+b                   	double              	                    
+c                   	int                 	                    
+d                   	string              	                    
+	 	 
+# Partition Transform Information	 	 
+# col_name            	transform_type      	 
+b                   	IDENTITY            	 
+c                   	IDENTITY            	 
+d                   	IDENTITY            	 
+	 	 
+# Detailed Table Information	 	 
+Database:           	default             	 
+#### A masked pattern was here ####
+Retention:          	0                   	 
+#### A masked pattern was here ####
+Table Type:         	EXTERNAL_TABLE      	 
+Table Parameters:	 	 
+	EXTERNAL            	TRUE                
+	MIGRATED_TO_ICEBERG 	true                
+	bucketing_version   	2                   
+	current-schema      	{\"type\":\"struct\",\"schema-id\":0,\"fields\":[{\"id\":1,\"name\":\"a\",\"required\":false,\"type\":\"int\"},{\"id\":2,\"name\":\"b\",\"required\":false,\"type\":\"double\"},{\"id\":3,\"name\":\"c\",\"required\":false,\"type\":\"int\"},{\"id\":4,\"name\":\"d\",\"required\":false,\"type\":\"string\"}]}
+	current-snapshot-id 	#Masked#
+	current-snapshot-summary	{\"added-data-files\":\"10\",\"added-records\":\"15\",\"added-files-size\":\"#Masked#\",\"changed-partition-count\":\"8\",\"total-records\":\"15\",\"total-files-size\":\"#Masked#\",\"total-data-files\":\"10\",\"total-delete-files\":\"0\",\"total-position-deletes\":\"0\",\"total-equality-deletes\":\"0\",\"iceberg-version\":\"#Masked#\"}
+	current-snapshot-timestamp-ms	#Masked#       
+	default-partition-spec	{\"spec-id\":0,\"fields\":[{\"name\":\"b\",\"transform\":\"identity\",\"source-id\":2,\"field-id\":1000},{\"name\":\"c\",\"transform\":\"identity\",\"source-id\":3,\"field-id\":1001},{\"name\":\"d\",\"transform\":\"identity\",\"source-id\":4,\"field-id\":1002}]}
+	format-version      	2                   
+	iceberg.orc.files.only	false               
+#### A masked pattern was here ####
+	metadata_location   	hdfs://### HDFS PATH ###
+	numFiles            	10                  
+	numRows             	15                  
+	parquet.compression 	zstd                
+	previous_metadata_location	hdfs://### HDFS PATH ###
+	schema.name-mapping.default	[ {                 
+	                           	  \"field-id\" : 1, 
+	                           	  \"names\" : [ \"a\" ]
+	                           	}, {                
+	                           	  \"field-id\" : 2, 
+	                           	  \"names\" : [ \"b\" ]
+	                           	}, {                
+	                           	  \"field-id\" : 3, 
+	                           	  \"names\" : [ \"c\" ]
+	                           	}, {                
+	                           	  \"field-id\" : 4, 
+	                           	  \"names\" : [ \"d\" ]
+	                           	} ]                 
+	snapshot-count      	1                   
+	storage_handler     	org.apache.iceberg.mr.hive.HiveIcebergStorageHandler
+	table_type          	ICEBERG             
+	totalSize           	#Masked#
+#### A masked pattern was here ####
+	uuid                	#Masked#
+	write.delete.mode   	merge-on-read       
+	write.format.default	parquet             
+	write.merge.mode    	merge-on-read       
+	write.update.mode   	merge-on-read       
+	 	 
+# Storage Information	 	 
+SerDe Library:      	org.apache.iceberg.mr.hive.HiveIcebergSerDe	 
+InputFormat:        	org.apache.iceberg.mr.hive.HiveIcebergInputFormat	 
+OutputFormat:       	org.apache.iceberg.mr.hive.HiveIcebergOutputFormat	 
+Compressed:         	No                  	 
+Sort Columns:       	[]                  	 
+PREHOOK: query: select count(*) from tbl_parquet_mixed
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet_mixed
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select count(*) from tbl_parquet_mixed
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet_mixed
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+15
+PREHOOK: query: select * from tbl_parquet_mixed order by a
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet_mixed
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select * from tbl_parquet_mixed order by a
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet_mixed
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+1	1.1	2	one
+2	1.1	2	one
+3	1.1	2	one
+4	2.22	1	two
+5	2.22	1	two
+6	3.333	3	three
+7	3.333	3	three
+8	3.333	3	three
+9	4.4444	4	four
+10	NULL	NULL	NULL
+11	NULL	NULL	NULL
+12	NULL	NULL	NULL
+13	NULL	-2	NULL
+14	NULL	NULL	random
+15	-0.11	NULL	NULL
+PREHOOK: query: insert into table tbl_parquet_mixed partition (b=5.55555, c = 5, d = 'five') values (16)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_mixed@d=five/b=5.55555/c=5
+POSTHOOK: query: insert into table tbl_parquet_mixed partition (b=5.55555, c = 5, d = 'five') values (16)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_mixed@d=five/b=5.55555/c=5
+PREHOOK: query: insert into table tbl_parquet_mixed values (17, '', '', '')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_mixed
+POSTHOOK: query: insert into table tbl_parquet_mixed values (17, '', '', '')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_mixed
+PREHOOK: query: insert into table tbl_parquet_mixed values (18, null, null, null)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_mixed
+POSTHOOK: query: insert into table tbl_parquet_mixed values (18, null, null, null)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_mixed
+PREHOOK: query: insert into table tbl_parquet_mixed values (19, NULL, NULL, NULL)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_mixed
+POSTHOOK: query: insert into table tbl_parquet_mixed values (19, NULL, NULL, NULL)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_mixed
+PREHOOK: query: insert into table tbl_parquet_mixed values (20, '', -3, '')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_mixed
+POSTHOOK: query: insert into table tbl_parquet_mixed values (20, '', -3, '')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_mixed
+PREHOOK: query: insert into table tbl_parquet_mixed values (21, null, null, 'part')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_mixed
+POSTHOOK: query: insert into table tbl_parquet_mixed values (21, null, null, 'part')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_mixed
+PREHOOK: query: insert into table tbl_parquet_mixed values (22, -0.234, NULL, NULL)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_mixed
+POSTHOOK: query: insert into table tbl_parquet_mixed values (22, -0.234, NULL, NULL)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_mixed
+PREHOOK: query: select count(*) from tbl_parquet_mixed
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet_mixed
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select count(*) from tbl_parquet_mixed
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet_mixed
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+22
+PREHOOK: query: select * from tbl_parquet_mixed order by a
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet_mixed
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select * from tbl_parquet_mixed order by a
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet_mixed
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+1	1.1	2	one
+2	1.1	2	one
+3	1.1	2	one
+4	2.22	1	two
+5	2.22	1	two
+6	3.333	3	three
+7	3.333	3	three
+8	3.333	3	three
+9	4.4444	4	four
+10	NULL	NULL	NULL
+11	NULL	NULL	NULL
+12	NULL	NULL	NULL
+13	NULL	-2	NULL
+14	NULL	NULL	random
+15	-0.11	NULL	NULL
+16	5.55555	5	five
+17	NULL	NULL	
+18	NULL	NULL	NULL
+19	NULL	NULL	NULL
+20	NULL	-3	
+21	NULL	NULL	part
+22	-0.234	NULL	NULL
+PREHOOK: query: drop table tbl_parquet_mixed
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@tbl_parquet_mixed
+PREHOOK: Output: database:default
+PREHOOK: Output: default@tbl_parquet_mixed
+POSTHOOK: query: drop table tbl_parquet_mixed
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@tbl_parquet_mixed
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@tbl_parquet_mixed
+PREHOOK: query: drop table if exists tbl_avro_mixed
+PREHOOK: type: DROPTABLE
+PREHOOK: Output: database:default
+POSTHOOK: query: drop table if exists tbl_avro_mixed
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Output: database:default
+PREHOOK: query: create external table tbl_avro_mixed(a int) partitioned by (b double, c int, d string) stored as avro
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@tbl_avro_mixed
+POSTHOOK: query: create external table tbl_avro_mixed(a int) partitioned by (b double, c int, d string) stored as avro
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@tbl_avro_mixed
+PREHOOK: query: describe formatted tbl_avro_mixed
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@tbl_avro_mixed
+POSTHOOK: query: describe formatted tbl_avro_mixed
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@tbl_avro_mixed
+# col_name            	data_type           	comment             
+a                   	int                 	                    
+	 	 
+# Partition Information	 	 
+# col_name            	data_type           	comment             
+b                   	double              	                    
+c                   	int                 	                    
+d                   	string              	                    
+	 	 
+# Detailed Table Information	 	 
+Database:           	default             	 
+#### A masked pattern was here ####
+Retention:          	0                   	 
+#### A masked pattern was here ####
+Table Type:         	EXTERNAL_TABLE      	 
+Table Parameters:	 	 
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
+	EXTERNAL            	TRUE                
+	bucketing_version   	2                   
+	numFiles            	0                   
+	numPartitions       	0                   
+	numRows             	0                   
+	rawDataSize         	0                   
+	totalSize           	#Masked#
+#### A masked pattern was here ####
+	 	 
+# Storage Information	 	 
+SerDe Library:      	org.apache.hadoop.hive.serde2.avro.AvroSerDe	 
+InputFormat:        	org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat	 
+OutputFormat:       	org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat	 
+Compressed:         	No                  	 
+Num Buckets:        	-1                  	 
+Bucket Columns:     	[]                  	 
+Sort Columns:       	[]                  	 
+Storage Desc Params:	 	 
+	serialization.format	1                   
+PREHOOK: query: insert into table tbl_avro_mixed partition (b=1.1, c=2, d='one') values (1), (2), (3)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_avro_mixed@b=1.1/c=2/d=one
+POSTHOOK: query: insert into table tbl_avro_mixed partition (b=1.1, c=2, d='one') values (1), (2), (3)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_avro_mixed@b=1.1/c=2/d=one
+POSTHOOK: Lineage: tbl_avro_mixed PARTITION(b=1.1,c=2,d=one).a SCRIPT []
+PREHOOK: query: insert into table tbl_avro_mixed partition (b=2.22, c=1, d='two') values (4), (5)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_avro_mixed@b=2.22/c=1/d=two
+POSTHOOK: query: insert into table tbl_avro_mixed partition (b=2.22, c=1, d='two') values (4), (5)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_avro_mixed@b=2.22/c=1/d=two
+POSTHOOK: Lineage: tbl_avro_mixed PARTITION(b=2.22,c=1,d=two).a SCRIPT []
+PREHOOK: query: insert into table tbl_avro_mixed partition (b=3.333, c=3, d='three') values (6), (7), (8)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_avro_mixed@b=3.333/c=3/d=three
+POSTHOOK: query: insert into table tbl_avro_mixed partition (b=3.333, c=3, d='three') values (6), (7), (8)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_avro_mixed@b=3.333/c=3/d=three
+POSTHOOK: Lineage: tbl_avro_mixed PARTITION(b=3.333,c=3,d=three).a SCRIPT []
+PREHOOK: query: insert into table tbl_avro_mixed partition (b=4.4444, c=4, d='four') values (9)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_avro_mixed@b=4.4444/c=4/d=four
+POSTHOOK: query: insert into table tbl_avro_mixed partition (b=4.4444, c=4, d='four') values (9)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_avro_mixed@b=4.4444/c=4/d=four
+POSTHOOK: Lineage: tbl_avro_mixed PARTITION(b=4.4444,c=4,d=four).a SCRIPT []
+PREHOOK: query: insert into table tbl_avro_mixed values (10, '', '', '')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_avro_mixed
+POSTHOOK: query: insert into table tbl_avro_mixed values (10, '', '', '')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_avro_mixed
+POSTHOOK: Output: default@tbl_avro_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_avro_mixed PARTITION(b=__HIVE_DEFAULT_PARTITION__,c=__HIVE_DEFAULT_PARTITION__,d=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: insert into table tbl_avro_mixed values (11, null, null, null)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_avro_mixed
+POSTHOOK: query: insert into table tbl_avro_mixed values (11, null, null, null)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_avro_mixed
+POSTHOOK: Output: default@tbl_avro_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_avro_mixed PARTITION(b=__HIVE_DEFAULT_PARTITION__,c=__HIVE_DEFAULT_PARTITION__,d=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: insert into table tbl_avro_mixed values (12, NULL, NULL, NULL)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_avro_mixed
+POSTHOOK: query: insert into table tbl_avro_mixed values (12, NULL, NULL, NULL)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_avro_mixed
+POSTHOOK: Output: default@tbl_avro_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_avro_mixed PARTITION(b=__HIVE_DEFAULT_PARTITION__,c=__HIVE_DEFAULT_PARTITION__,d=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: insert into table tbl_avro_mixed values (13, '', -2, '')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_avro_mixed
+POSTHOOK: query: insert into table tbl_avro_mixed values (13, '', -2, '')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_avro_mixed
+POSTHOOK: Output: default@tbl_avro_mixed@b=__HIVE_DEFAULT_PARTITION__/c=-2/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_avro_mixed PARTITION(b=__HIVE_DEFAULT_PARTITION__,c=-2,d=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: insert into table tbl_avro_mixed values (14, null, null, 'random')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_avro_mixed
+POSTHOOK: query: insert into table tbl_avro_mixed values (14, null, null, 'random')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_avro_mixed
+POSTHOOK: Output: default@tbl_avro_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=random
+POSTHOOK: Lineage: tbl_avro_mixed PARTITION(b=__HIVE_DEFAULT_PARTITION__,c=__HIVE_DEFAULT_PARTITION__,d=random).a SCRIPT []
+PREHOOK: query: insert into table tbl_avro_mixed values (15, -0.11, NULL, NULL)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_avro_mixed
+POSTHOOK: query: insert into table tbl_avro_mixed values (15, -0.11, NULL, NULL)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_avro_mixed
+POSTHOOK: Output: default@tbl_avro_mixed@b=-0.11/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_avro_mixed PARTITION(b=-0.11,c=__HIVE_DEFAULT_PARTITION__,d=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: select count(*) from tbl_avro_mixed
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_avro_mixed
+PREHOOK: Input: default@tbl_avro_mixed@b=-0.11/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Input: default@tbl_avro_mixed@b=1.1/c=2/d=one
+PREHOOK: Input: default@tbl_avro_mixed@b=2.22/c=1/d=two
+PREHOOK: Input: default@tbl_avro_mixed@b=3.333/c=3/d=three
+PREHOOK: Input: default@tbl_avro_mixed@b=4.4444/c=4/d=four
+PREHOOK: Input: default@tbl_avro_mixed@b=__HIVE_DEFAULT_PARTITION__/c=-2/d=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Input: default@tbl_avro_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Input: default@tbl_avro_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=random
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select count(*) from tbl_avro_mixed
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_avro_mixed
+POSTHOOK: Input: default@tbl_avro_mixed@b=-0.11/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Input: default@tbl_avro_mixed@b=1.1/c=2/d=one
+POSTHOOK: Input: default@tbl_avro_mixed@b=2.22/c=1/d=two
+POSTHOOK: Input: default@tbl_avro_mixed@b=3.333/c=3/d=three
+POSTHOOK: Input: default@tbl_avro_mixed@b=4.4444/c=4/d=four
+POSTHOOK: Input: default@tbl_avro_mixed@b=__HIVE_DEFAULT_PARTITION__/c=-2/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Input: default@tbl_avro_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Input: default@tbl_avro_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=random
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+15
+PREHOOK: query: select * from tbl_avro_mixed order by a
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_avro_mixed
+PREHOOK: Input: default@tbl_avro_mixed@b=-0.11/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Input: default@tbl_avro_mixed@b=1.1/c=2/d=one
+PREHOOK: Input: default@tbl_avro_mixed@b=2.22/c=1/d=two
+PREHOOK: Input: default@tbl_avro_mixed@b=3.333/c=3/d=three
+PREHOOK: Input: default@tbl_avro_mixed@b=4.4444/c=4/d=four
+PREHOOK: Input: default@tbl_avro_mixed@b=__HIVE_DEFAULT_PARTITION__/c=-2/d=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Input: default@tbl_avro_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Input: default@tbl_avro_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=random
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select * from tbl_avro_mixed order by a
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_avro_mixed
+POSTHOOK: Input: default@tbl_avro_mixed@b=-0.11/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Input: default@tbl_avro_mixed@b=1.1/c=2/d=one
+POSTHOOK: Input: default@tbl_avro_mixed@b=2.22/c=1/d=two
+POSTHOOK: Input: default@tbl_avro_mixed@b=3.333/c=3/d=three
+POSTHOOK: Input: default@tbl_avro_mixed@b=4.4444/c=4/d=four
+POSTHOOK: Input: default@tbl_avro_mixed@b=__HIVE_DEFAULT_PARTITION__/c=-2/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Input: default@tbl_avro_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Input: default@tbl_avro_mixed@b=__HIVE_DEFAULT_PARTITION__/c=__HIVE_DEFAULT_PARTITION__/d=random
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+1	1.1	2	one
+2	1.1	2	one
+3	1.1	2	one
+4	2.22	1	two
+5	2.22	1	two
+6	3.333	3	three
+7	3.333	3	three
+8	3.333	3	three
+9	4.4444	4	four
+10	NULL	NULL	__HIVE_DEFAULT_PARTITION__
+11	NULL	NULL	__HIVE_DEFAULT_PARTITION__
+12	NULL	NULL	__HIVE_DEFAULT_PARTITION__
+13	NULL	-2	__HIVE_DEFAULT_PARTITION__
+14	NULL	NULL	random
+15	-0.11	NULL	__HIVE_DEFAULT_PARTITION__
+PREHOOK: query: explain alter table tbl_avro_mixed convert to iceberg
+PREHOOK: type: ALTERTABLE_CONVERT
+PREHOOK: Input: default@tbl_avro_mixed
+POSTHOOK: query: explain alter table tbl_avro_mixed convert to iceberg
+POSTHOOK: type: ALTERTABLE_CONVERT
+POSTHOOK: Input: default@tbl_avro_mixed
+Stage-0
+  Convert operation{"table name:":"default.tbl_avro_mixed","spec:":"AlterTableConvertSpec{ConvertTo=iceberg, TBLProperties={}}"}
+
+PREHOOK: query: alter table tbl_avro_mixed convert to iceberg
+PREHOOK: type: ALTERTABLE_CONVERT
+PREHOOK: Input: default@tbl_avro_mixed
+POSTHOOK: query: alter table tbl_avro_mixed convert to iceberg
+POSTHOOK: type: ALTERTABLE_CONVERT
+POSTHOOK: Input: default@tbl_avro_mixed
+POSTHOOK: Output: default@tbl_avro_mixed
+PREHOOK: query: describe formatted tbl_avro_mixed
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@tbl_avro_mixed
+POSTHOOK: query: describe formatted tbl_avro_mixed
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@tbl_avro_mixed
+# col_name            	data_type           	comment             
+a                   	int                 	                    
+b                   	double              	                    
+c                   	int                 	                    
+d                   	string              	                    
+	 	 
+# Partition Transform Information	 	 
+# col_name            	transform_type      	 
+b                   	IDENTITY            	 
+c                   	IDENTITY            	 
+d                   	IDENTITY            	 
+	 	 
+# Detailed Table Information	 	 
+Database:           	default             	 
+#### A masked pattern was here ####
+Retention:          	0                   	 
+#### A masked pattern was here ####
+Table Type:         	EXTERNAL_TABLE      	 
+Table Parameters:	 	 
+	EXTERNAL            	TRUE                
+	MIGRATED_TO_ICEBERG 	true                
+	bucketing_version   	2                   
+	current-schema      	{\"type\":\"struct\",\"schema-id\":0,\"fields\":[{\"id\":1,\"name\":\"a\",\"required\":false,\"type\":\"int\"},{\"id\":2,\"name\":\"b\",\"required\":false,\"type\":\"double\"},{\"id\":3,\"name\":\"c\",\"required\":false,\"type\":\"int\"},{\"id\":4,\"name\":\"d\",\"required\":false,\"type\":\"string\"}]}
+	current-snapshot-id 	#Masked#
+	current-snapshot-summary	{\"added-data-files\":\"10\",\"added-records\":\"15\",\"added-files-size\":\"#Masked#\",\"changed-partition-count\":\"8\",\"total-records\":\"15\",\"total-files-size\":\"#Masked#\",\"total-data-files\":\"10\",\"total-delete-files\":\"0\",\"total-position-deletes\":\"0\",\"total-equality-deletes\":\"0\",\"iceberg-version\":\"#Masked#\"}
+	current-snapshot-timestamp-ms	#Masked#       
+	default-partition-spec	{\"spec-id\":0,\"fields\":[{\"name\":\"b\",\"transform\":\"identity\",\"source-id\":2,\"field-id\":1000},{\"name\":\"c\",\"transform\":\"identity\",\"source-id\":3,\"field-id\":1001},{\"name\":\"d\",\"transform\":\"identity\",\"source-id\":4,\"field-id\":1002}]}
+	format-version      	2                   
+	iceberg.orc.files.only	false               
+#### A masked pattern was here ####
+	metadata_location   	hdfs://### HDFS PATH ###
+	numFiles            	10                  
+	numRows             	15                  
+	parquet.compression 	zstd                
+	previous_metadata_location	hdfs://### HDFS PATH ###
+	schema.name-mapping.default	[ {                 
+	                           	  \"field-id\" : 1, 
+	                           	  \"names\" : [ \"a\" ]
+	                           	}, {                
+	                           	  \"field-id\" : 2, 
+	                           	  \"names\" : [ \"b\" ]
+	                           	}, {                
+	                           	  \"field-id\" : 3, 
+	                           	  \"names\" : [ \"c\" ]
+	                           	}, {                
+	                           	  \"field-id\" : 4, 
+	                           	  \"names\" : [ \"d\" ]
+	                           	} ]                 
+	snapshot-count      	1                   
+	storage_handler     	org.apache.iceberg.mr.hive.HiveIcebergStorageHandler
+	table_type          	ICEBERG             
+	totalSize           	#Masked#
+#### A masked pattern was here ####
+	uuid                	#Masked#
+	write.delete.mode   	merge-on-read       
+	write.format.default	avro                
+	write.merge.mode    	merge-on-read       
+	write.update.mode   	merge-on-read       
+	 	 
+# Storage Information	 	 
+SerDe Library:      	org.apache.iceberg.mr.hive.HiveIcebergSerDe	 
+InputFormat:        	org.apache.iceberg.mr.hive.HiveIcebergInputFormat	 
+OutputFormat:       	org.apache.iceberg.mr.hive.HiveIcebergOutputFormat	 
+Compressed:         	No                  	 
+Sort Columns:       	[]                  	 
+PREHOOK: query: select count(*) from tbl_avro_mixed
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_avro_mixed
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select count(*) from tbl_avro_mixed
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_avro_mixed
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+15
+PREHOOK: query: select * from tbl_avro_mixed order by a
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_avro_mixed
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select * from tbl_avro_mixed order by a
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_avro_mixed
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+1	1.1	2	one
+2	1.1	2	one
+3	1.1	2	one
+4	2.22	1	two
+5	2.22	1	two
+6	3.333	3	three
+7	3.333	3	three
+8	3.333	3	three
+9	4.4444	4	four
+10	NULL	NULL	NULL
+11	NULL	NULL	NULL
+12	NULL	NULL	NULL
+13	NULL	-2	NULL
+14	NULL	NULL	random
+15	-0.11	NULL	NULL
+PREHOOK: query: insert into table tbl_avro_mixed partition (b=5.55555, c = 5, d = 'five') values (16)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_avro_mixed@d=five/b=5.55555/c=5
+POSTHOOK: query: insert into table tbl_avro_mixed partition (b=5.55555, c = 5, d = 'five') values (16)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_avro_mixed@d=five/b=5.55555/c=5
+PREHOOK: query: insert into table tbl_avro_mixed values (17, '', '', '')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_avro_mixed
+POSTHOOK: query: insert into table tbl_avro_mixed values (17, '', '', '')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_avro_mixed
+PREHOOK: query: insert into table tbl_avro_mixed values (18, null, null, null)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_avro_mixed
+POSTHOOK: query: insert into table tbl_avro_mixed values (18, null, null, null)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_avro_mixed
+PREHOOK: query: insert into table tbl_avro_mixed values (19, NULL, NULL, NULL)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_avro_mixed
+POSTHOOK: query: insert into table tbl_avro_mixed values (19, NULL, NULL, NULL)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_avro_mixed
+PREHOOK: query: insert into table tbl_avro_mixed values (20, '', -3, '')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_avro_mixed
+POSTHOOK: query: insert into table tbl_avro_mixed values (20, '', -3, '')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_avro_mixed
+PREHOOK: query: insert into table tbl_avro_mixed values (21, null, null, 'part')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_avro_mixed
+POSTHOOK: query: insert into table tbl_avro_mixed values (21, null, null, 'part')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_avro_mixed
+PREHOOK: query: insert into table tbl_avro_mixed values (22, -0.234, NULL, NULL)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_avro_mixed
+POSTHOOK: query: insert into table tbl_avro_mixed values (22, -0.234, NULL, NULL)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_avro_mixed
+PREHOOK: query: select count(*) from tbl_avro_mixed
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_avro_mixed
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select count(*) from tbl_avro_mixed
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_avro_mixed
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+22
+PREHOOK: query: select * from tbl_avro_mixed order by a
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_avro_mixed
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select * from tbl_avro_mixed order by a
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_avro_mixed
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+1	1.1	2	one
+2	1.1	2	one
+3	1.1	2	one
+4	2.22	1	two
+5	2.22	1	two
+6	3.333	3	three
+7	3.333	3	three
+8	3.333	3	three
+9	4.4444	4	four
+10	NULL	NULL	NULL
+11	NULL	NULL	NULL
+12	NULL	NULL	NULL
+13	NULL	-2	NULL
+14	NULL	NULL	random
+15	-0.11	NULL	NULL
+16	5.55555	5	five
+17	NULL	NULL	
+18	NULL	NULL	NULL
+19	NULL	NULL	NULL
+20	NULL	-3	
+21	NULL	NULL	part
+22	-0.234	NULL	NULL
+PREHOOK: query: drop table tbl_avro_mixed
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@tbl_avro_mixed
+PREHOOK: Output: database:default
+PREHOOK: Output: default@tbl_avro_mixed
+POSTHOOK: query: drop table tbl_avro_mixed
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@tbl_avro_mixed
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@tbl_avro_mixed
diff --git a/iceberg/iceberg-handler/src/test/results/positive/alter_part_table_to_iceberg.q.out b/iceberg/iceberg-handler/src/test/results/positive/alter_part_table_to_iceberg.q.out
index f9addd2222c..e8b56f6ba92 100644
--- a/iceberg/iceberg-handler/src/test/results/positive/alter_part_table_to_iceberg.q.out
+++ b/iceberg/iceberg-handler/src/test/results/positive/alter_part_table_to_iceberg.q.out
@@ -307,9 +307,59 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: _dummy_database@_dummy_table
 POSTHOOK: Output: default@tbl_parquet@b=four
 POSTHOOK: Lineage: tbl_parquet PARTITION(b=four).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet values (10, '')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet
+POSTHOOK: query: insert into table tbl_parquet values (10, '')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet
+POSTHOOK: Output: default@tbl_parquet@b=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_parquet PARTITION(b=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet values (11, null)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet
+POSTHOOK: query: insert into table tbl_parquet values (11, null)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet
+POSTHOOK: Output: default@tbl_parquet@b=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_parquet PARTITION(b=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet values (12, NULL)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet
+POSTHOOK: query: insert into table tbl_parquet values (12, NULL)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet
+POSTHOOK: Output: default@tbl_parquet@b=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_parquet PARTITION(b=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: select count(*) from tbl_parquet
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet
+PREHOOK: Input: default@tbl_parquet@b=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Input: default@tbl_parquet@b=four
+PREHOOK: Input: default@tbl_parquet@b=one
+PREHOOK: Input: default@tbl_parquet@b=three
+PREHOOK: Input: default@tbl_parquet@b=two
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select count(*) from tbl_parquet
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet
+POSTHOOK: Input: default@tbl_parquet@b=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Input: default@tbl_parquet@b=four
+POSTHOOK: Input: default@tbl_parquet@b=one
+POSTHOOK: Input: default@tbl_parquet@b=three
+POSTHOOK: Input: default@tbl_parquet@b=two
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+12
 PREHOOK: query: select * from tbl_parquet order by a
 PREHOOK: type: QUERY
 PREHOOK: Input: default@tbl_parquet
+PREHOOK: Input: default@tbl_parquet@b=__HIVE_DEFAULT_PARTITION__
 PREHOOK: Input: default@tbl_parquet@b=four
 PREHOOK: Input: default@tbl_parquet@b=one
 PREHOOK: Input: default@tbl_parquet@b=three
@@ -318,6 +368,7 @@ PREHOOK: Output: hdfs://### HDFS PATH ###
 POSTHOOK: query: select * from tbl_parquet order by a
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@tbl_parquet
+POSTHOOK: Input: default@tbl_parquet@b=__HIVE_DEFAULT_PARTITION__
 POSTHOOK: Input: default@tbl_parquet@b=four
 POSTHOOK: Input: default@tbl_parquet@b=one
 POSTHOOK: Input: default@tbl_parquet@b=three
@@ -332,6 +383,9 @@ POSTHOOK: Output: hdfs://### HDFS PATH ###
 7	three
 8	three
 9	four
+10	__HIVE_DEFAULT_PARTITION__
+11	__HIVE_DEFAULT_PARTITION__
+12	__HIVE_DEFAULT_PARTITION__
 PREHOOK: query: explain alter table tbl_parquet convert to iceberg
 PREHOOK: type: ALTERTABLE_CONVERT
 PREHOOK: Input: default@tbl_parquet
@@ -374,15 +428,15 @@ Table Parameters:
 	bucketing_version   	2                   
 	current-schema      	{\"type\":\"struct\",\"schema-id\":0,\"fields\":[{\"id\":1,\"name\":\"a\",\"required\":false,\"type\":\"int\"},{\"id\":2,\"name\":\"b\",\"required\":false,\"type\":\"string\"}]}
 	current-snapshot-id 	#Masked#
-	current-snapshot-summary	{\"added-data-files\":\"4\",\"added-records\":\"9\",\"added-files-size\":\"#Masked#\",\"changed-partition-count\":\"4\",\"total-records\":\"9\",\"total-files-size\":\"#Masked#\",\"total-data-files\":\"4\",\"total-delete-files\":\"0\",\"total-position-deletes\":\"0\",\"total-equality-deletes\":\"0\",\"iceberg-version\":\"#Masked#\"}
+	current-snapshot-summary	{\"added-data-files\":\"7\",\"added-records\":\"12\",\"added-files-size\":\"#Masked#\",\"changed-partition-count\":\"5\",\"total-records\":\"12\",\"total-files-size\":\"#Masked#\",\"total-data-files\":\"7\",\"total-delete-files\":\"0\",\"total-position-deletes\":\"0\",\"total-equality-deletes\":\"0\",\"iceberg-version\":\"#Masked#\"}
 	current-snapshot-timestamp-ms	#Masked#       
 	default-partition-spec	{\"spec-id\":0,\"fields\":[{\"name\":\"b\",\"transform\":\"identity\",\"source-id\":2,\"field-id\":1000}]}
 	format-version      	2                   
 	iceberg.orc.files.only	false               
 #### A masked pattern was here ####
 	metadata_location   	hdfs://### HDFS PATH ###
-	numFiles            	4                   
-	numRows             	9                   
+	numFiles            	7                   
+	numRows             	12                  
 	parquet.compression 	zstd                
 	previous_metadata_location	hdfs://### HDFS PATH ###
 	schema.name-mapping.default	[ {                 
@@ -409,6 +463,76 @@ InputFormat:        	org.apache.iceberg.mr.hive.HiveIcebergInputFormat
 OutputFormat:       	org.apache.iceberg.mr.hive.HiveIcebergOutputFormat	 
 Compressed:         	No                  	 
 Sort Columns:       	[]                  	 
+PREHOOK: query: select count(*) from tbl_parquet
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select count(*) from tbl_parquet
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+12
+PREHOOK: query: select * from tbl_parquet order by a
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select * from tbl_parquet order by a
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+1	one
+2	one
+3	one
+4	two
+5	two
+6	three
+7	three
+8	three
+9	four
+10	NULL
+11	NULL
+12	NULL
+PREHOOK: query: insert into table tbl_parquet partition (b='five') values (13)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet@b=five
+POSTHOOK: query: insert into table tbl_parquet partition (b='five') values (13)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet@b=five
+PREHOOK: query: insert into table tbl_parquet values (14, '')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet
+POSTHOOK: query: insert into table tbl_parquet values (14, '')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet
+PREHOOK: query: insert into table tbl_parquet values (15, null)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet
+POSTHOOK: query: insert into table tbl_parquet values (15, null)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet
+PREHOOK: query: insert into table tbl_parquet values (16, NULL)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet
+POSTHOOK: query: insert into table tbl_parquet values (16, NULL)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet
+PREHOOK: query: select count(*) from tbl_parquet
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select count(*) from tbl_parquet
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+16
 PREHOOK: query: select * from tbl_parquet order by a
 PREHOOK: type: QUERY
 PREHOOK: Input: default@tbl_parquet
@@ -426,6 +550,13 @@ POSTHOOK: Output: hdfs://### HDFS PATH ###
 7	three
 8	three
 9	four
+10	NULL
+11	NULL
+12	NULL
+13	five
+14	
+15	NULL
+16	NULL
 PREHOOK: query: drop table tbl_parquet
 PREHOOK: type: DROPTABLE
 PREHOOK: Input: default@tbl_parquet
@@ -436,6 +567,706 @@ POSTHOOK: type: DROPTABLE
 POSTHOOK: Input: default@tbl_parquet
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@tbl_parquet
+PREHOOK: query: drop table if exists tbl_parquet_int
+PREHOOK: type: DROPTABLE
+PREHOOK: Output: database:default
+POSTHOOK: query: drop table if exists tbl_parquet_int
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Output: database:default
+PREHOOK: query: create external table tbl_parquet_int(a int) partitioned by (b int) stored as parquet
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@tbl_parquet_int
+POSTHOOK: query: create external table tbl_parquet_int(a int) partitioned by (b int) stored as parquet
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@tbl_parquet_int
+PREHOOK: query: describe formatted tbl_parquet_int
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@tbl_parquet_int
+POSTHOOK: query: describe formatted tbl_parquet_int
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@tbl_parquet_int
+# col_name            	data_type           	comment             
+a                   	int                 	                    
+	 	 
+# Partition Information	 	 
+# col_name            	data_type           	comment             
+b                   	int                 	                    
+	 	 
+# Detailed Table Information	 	 
+Database:           	default             	 
+#### A masked pattern was here ####
+Retention:          	0                   	 
+#### A masked pattern was here ####
+Table Type:         	EXTERNAL_TABLE      	 
+Table Parameters:	 	 
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
+	EXTERNAL            	TRUE                
+	bucketing_version   	2                   
+	numFiles            	0                   
+	numPartitions       	0                   
+	numRows             	0                   
+	rawDataSize         	0                   
+	totalSize           	#Masked#
+#### A masked pattern was here ####
+	 	 
+# Storage Information	 	 
+SerDe Library:      	org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe	 
+InputFormat:        	org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat	 
+OutputFormat:       	org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat	 
+Compressed:         	No                  	 
+Num Buckets:        	-1                  	 
+Bucket Columns:     	[]                  	 
+Sort Columns:       	[]                  	 
+Storage Desc Params:	 	 
+	serialization.format	1                   
+PREHOOK: query: insert into table tbl_parquet_int partition (b=1) values (1), (2), (3)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_int@b=1
+POSTHOOK: query: insert into table tbl_parquet_int partition (b=1) values (1), (2), (3)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_int@b=1
+POSTHOOK: Lineage: tbl_parquet_int PARTITION(b=1).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_int partition (b=2) values (4), (5)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_int@b=2
+POSTHOOK: query: insert into table tbl_parquet_int partition (b=2) values (4), (5)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_int@b=2
+POSTHOOK: Lineage: tbl_parquet_int PARTITION(b=2).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_int partition (b=3) values (6), (7), (8)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_int@b=3
+POSTHOOK: query: insert into table tbl_parquet_int partition (b=3) values (6), (7), (8)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_int@b=3
+POSTHOOK: Lineage: tbl_parquet_int PARTITION(b=3).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_int partition (b=4) values (9)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_int@b=4
+POSTHOOK: query: insert into table tbl_parquet_int partition (b=4) values (9)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_int@b=4
+POSTHOOK: Lineage: tbl_parquet_int PARTITION(b=4).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_int values (10, '')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_int
+POSTHOOK: query: insert into table tbl_parquet_int values (10, '')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_int
+POSTHOOK: Output: default@tbl_parquet_int@b=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_parquet_int PARTITION(b=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_int values (11, null)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_int
+POSTHOOK: query: insert into table tbl_parquet_int values (11, null)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_int
+POSTHOOK: Output: default@tbl_parquet_int@b=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_parquet_int PARTITION(b=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_int values (12, NULL)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_int
+POSTHOOK: query: insert into table tbl_parquet_int values (12, NULL)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_int
+POSTHOOK: Output: default@tbl_parquet_int@b=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_parquet_int PARTITION(b=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: select count(*) from tbl_parquet_int
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet_int
+PREHOOK: Input: default@tbl_parquet_int@b=1
+PREHOOK: Input: default@tbl_parquet_int@b=2
+PREHOOK: Input: default@tbl_parquet_int@b=3
+PREHOOK: Input: default@tbl_parquet_int@b=4
+PREHOOK: Input: default@tbl_parquet_int@b=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select count(*) from tbl_parquet_int
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet_int
+POSTHOOK: Input: default@tbl_parquet_int@b=1
+POSTHOOK: Input: default@tbl_parquet_int@b=2
+POSTHOOK: Input: default@tbl_parquet_int@b=3
+POSTHOOK: Input: default@tbl_parquet_int@b=4
+POSTHOOK: Input: default@tbl_parquet_int@b=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+12
+PREHOOK: query: select * from tbl_parquet_int order by a
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet_int
+PREHOOK: Input: default@tbl_parquet_int@b=1
+PREHOOK: Input: default@tbl_parquet_int@b=2
+PREHOOK: Input: default@tbl_parquet_int@b=3
+PREHOOK: Input: default@tbl_parquet_int@b=4
+PREHOOK: Input: default@tbl_parquet_int@b=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select * from tbl_parquet_int order by a
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet_int
+POSTHOOK: Input: default@tbl_parquet_int@b=1
+POSTHOOK: Input: default@tbl_parquet_int@b=2
+POSTHOOK: Input: default@tbl_parquet_int@b=3
+POSTHOOK: Input: default@tbl_parquet_int@b=4
+POSTHOOK: Input: default@tbl_parquet_int@b=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+1	1
+2	1
+3	1
+4	2
+5	2
+6	3
+7	3
+8	3
+9	4
+10	NULL
+11	NULL
+12	NULL
+PREHOOK: query: explain alter table tbl_parquet_int convert to iceberg
+PREHOOK: type: ALTERTABLE_CONVERT
+PREHOOK: Input: default@tbl_parquet_int
+POSTHOOK: query: explain alter table tbl_parquet_int convert to iceberg
+POSTHOOK: type: ALTERTABLE_CONVERT
+POSTHOOK: Input: default@tbl_parquet_int
+Stage-0
+  Convert operation{"table name:":"default.tbl_parquet_int","spec:":"AlterTableConvertSpec{ConvertTo=iceberg, TBLProperties={}}"}
+
+PREHOOK: query: alter table tbl_parquet_int convert to iceberg
+PREHOOK: type: ALTERTABLE_CONVERT
+PREHOOK: Input: default@tbl_parquet_int
+POSTHOOK: query: alter table tbl_parquet_int convert to iceberg
+POSTHOOK: type: ALTERTABLE_CONVERT
+POSTHOOK: Input: default@tbl_parquet_int
+POSTHOOK: Output: default@tbl_parquet_int
+PREHOOK: query: describe formatted tbl_parquet_int
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@tbl_parquet_int
+POSTHOOK: query: describe formatted tbl_parquet_int
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@tbl_parquet_int
+# col_name            	data_type           	comment             
+a                   	int                 	                    
+b                   	int                 	                    
+	 	 
+# Partition Transform Information	 	 
+# col_name            	transform_type      	 
+b                   	IDENTITY            	 
+	 	 
+# Detailed Table Information	 	 
+Database:           	default             	 
+#### A masked pattern was here ####
+Retention:          	0                   	 
+#### A masked pattern was here ####
+Table Type:         	EXTERNAL_TABLE      	 
+Table Parameters:	 	 
+	EXTERNAL            	TRUE                
+	MIGRATED_TO_ICEBERG 	true                
+	bucketing_version   	2                   
+	current-schema      	{\"type\":\"struct\",\"schema-id\":0,\"fields\":[{\"id\":1,\"name\":\"a\",\"required\":false,\"type\":\"int\"},{\"id\":2,\"name\":\"b\",\"required\":false,\"type\":\"int\"}]}
+	current-snapshot-id 	#Masked#
+	current-snapshot-summary	{\"added-data-files\":\"7\",\"added-records\":\"12\",\"added-files-size\":\"#Masked#\",\"changed-partition-count\":\"5\",\"total-records\":\"12\",\"total-files-size\":\"#Masked#\",\"total-data-files\":\"7\",\"total-delete-files\":\"0\",\"total-position-deletes\":\"0\",\"total-equality-deletes\":\"0\",\"iceberg-version\":\"#Masked#\"}
+	current-snapshot-timestamp-ms	#Masked#       
+	default-partition-spec	{\"spec-id\":0,\"fields\":[{\"name\":\"b\",\"transform\":\"identity\",\"source-id\":2,\"field-id\":1000}]}
+	format-version      	2                   
+	iceberg.orc.files.only	false               
+#### A masked pattern was here ####
+	metadata_location   	hdfs://### HDFS PATH ###
+	numFiles            	7                   
+	numRows             	12                  
+	parquet.compression 	zstd                
+	previous_metadata_location	hdfs://### HDFS PATH ###
+	schema.name-mapping.default	[ {                 
+	                           	  \"field-id\" : 1, 
+	                           	  \"names\" : [ \"a\" ]
+	                           	}, {                
+	                           	  \"field-id\" : 2, 
+	                           	  \"names\" : [ \"b\" ]
+	                           	} ]                 
+	snapshot-count      	1                   
+	storage_handler     	org.apache.iceberg.mr.hive.HiveIcebergStorageHandler
+	table_type          	ICEBERG             
+	totalSize           	#Masked#
+#### A masked pattern was here ####
+	uuid                	#Masked#
+	write.delete.mode   	merge-on-read       
+	write.format.default	parquet             
+	write.merge.mode    	merge-on-read       
+	write.update.mode   	merge-on-read       
+	 	 
+# Storage Information	 	 
+SerDe Library:      	org.apache.iceberg.mr.hive.HiveIcebergSerDe	 
+InputFormat:        	org.apache.iceberg.mr.hive.HiveIcebergInputFormat	 
+OutputFormat:       	org.apache.iceberg.mr.hive.HiveIcebergOutputFormat	 
+Compressed:         	No                  	 
+Sort Columns:       	[]                  	 
+PREHOOK: query: select count(*) from tbl_parquet_int
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet_int
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select count(*) from tbl_parquet_int
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet_int
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+12
+PREHOOK: query: select * from tbl_parquet_int order by a
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet_int
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select * from tbl_parquet_int order by a
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet_int
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+1	1
+2	1
+3	1
+4	2
+5	2
+6	3
+7	3
+8	3
+9	4
+10	NULL
+11	NULL
+12	NULL
+PREHOOK: query: insert into table tbl_parquet_int partition (b=5) values (13)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_int@b=5
+POSTHOOK: query: insert into table tbl_parquet_int partition (b=5) values (13)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_int@b=5
+PREHOOK: query: insert into table tbl_parquet_int values (14, '')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_int
+POSTHOOK: query: insert into table tbl_parquet_int values (14, '')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_int
+PREHOOK: query: insert into table tbl_parquet_int values (15, null)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_int
+POSTHOOK: query: insert into table tbl_parquet_int values (15, null)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_int
+PREHOOK: query: insert into table tbl_parquet_int values (16, NULL)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_int
+POSTHOOK: query: insert into table tbl_parquet_int values (16, NULL)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_int
+PREHOOK: query: select count(*) from tbl_parquet_int
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet_int
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select count(*) from tbl_parquet_int
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet_int
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+16
+PREHOOK: query: select * from tbl_parquet_int order by a
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet_int
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select * from tbl_parquet_int order by a
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet_int
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+1	1
+2	1
+3	1
+4	2
+5	2
+6	3
+7	3
+8	3
+9	4
+10	NULL
+11	NULL
+12	NULL
+13	5
+14	NULL
+15	NULL
+16	NULL
+PREHOOK: query: drop table tbl_parquet_int
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@tbl_parquet_int
+PREHOOK: Output: database:default
+PREHOOK: Output: default@tbl_parquet_int
+POSTHOOK: query: drop table tbl_parquet_int
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@tbl_parquet_int
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@tbl_parquet_int
+PREHOOK: query: drop table if exists tbl_parquet_double
+PREHOOK: type: DROPTABLE
+PREHOOK: Output: database:default
+POSTHOOK: query: drop table if exists tbl_parquet_double
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Output: database:default
+PREHOOK: query: create external table tbl_parquet_double(a int) partitioned by (b double) stored as parquet
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@tbl_parquet_double
+POSTHOOK: query: create external table tbl_parquet_double(a int) partitioned by (b double) stored as parquet
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@tbl_parquet_double
+PREHOOK: query: describe formatted tbl_parquet_double
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@tbl_parquet_double
+POSTHOOK: query: describe formatted tbl_parquet_double
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@tbl_parquet_double
+# col_name            	data_type           	comment             
+a                   	int                 	                    
+	 	 
+# Partition Information	 	 
+# col_name            	data_type           	comment             
+b                   	double              	                    
+	 	 
+# Detailed Table Information	 	 
+Database:           	default             	 
+#### A masked pattern was here ####
+Retention:          	0                   	 
+#### A masked pattern was here ####
+Table Type:         	EXTERNAL_TABLE      	 
+Table Parameters:	 	 
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
+	EXTERNAL            	TRUE                
+	bucketing_version   	2                   
+	numFiles            	0                   
+	numPartitions       	0                   
+	numRows             	0                   
+	rawDataSize         	0                   
+	totalSize           	#Masked#
+#### A masked pattern was here ####
+	 	 
+# Storage Information	 	 
+SerDe Library:      	org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe	 
+InputFormat:        	org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat	 
+OutputFormat:       	org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat	 
+Compressed:         	No                  	 
+Num Buckets:        	-1                  	 
+Bucket Columns:     	[]                  	 
+Sort Columns:       	[]                  	 
+Storage Desc Params:	 	 
+	serialization.format	1                   
+PREHOOK: query: insert into table tbl_parquet_double partition (b=1.1) values (1), (2), (3)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_double@b=1.1
+POSTHOOK: query: insert into table tbl_parquet_double partition (b=1.1) values (1), (2), (3)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_double@b=1.1
+POSTHOOK: Lineage: tbl_parquet_double PARTITION(b=1.1).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_double partition (b=2.22) values (4), (5)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_double@b=2.22
+POSTHOOK: query: insert into table tbl_parquet_double partition (b=2.22) values (4), (5)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_double@b=2.22
+POSTHOOK: Lineage: tbl_parquet_double PARTITION(b=2.22).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_double partition (b=3.333) values (6), (7), (8)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_double@b=3.333
+POSTHOOK: query: insert into table tbl_parquet_double partition (b=3.333) values (6), (7), (8)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_double@b=3.333
+POSTHOOK: Lineage: tbl_parquet_double PARTITION(b=3.333).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_double partition (b=4.4444) values (9)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_double@b=4.4444
+POSTHOOK: query: insert into table tbl_parquet_double partition (b=4.4444) values (9)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_double@b=4.4444
+POSTHOOK: Lineage: tbl_parquet_double PARTITION(b=4.4444).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_double values (10, '')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_double
+POSTHOOK: query: insert into table tbl_parquet_double values (10, '')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_double
+POSTHOOK: Output: default@tbl_parquet_double@b=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_parquet_double PARTITION(b=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_double values (11, null)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_double
+POSTHOOK: query: insert into table tbl_parquet_double values (11, null)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_double
+POSTHOOK: Output: default@tbl_parquet_double@b=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_parquet_double PARTITION(b=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: insert into table tbl_parquet_double values (12, NULL)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_double
+POSTHOOK: query: insert into table tbl_parquet_double values (12, NULL)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_double
+POSTHOOK: Output: default@tbl_parquet_double@b=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Lineage: tbl_parquet_double PARTITION(b=__HIVE_DEFAULT_PARTITION__).a SCRIPT []
+PREHOOK: query: select count(*) from tbl_parquet_double
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet_double
+PREHOOK: Input: default@tbl_parquet_double@b=1.1
+PREHOOK: Input: default@tbl_parquet_double@b=2.22
+PREHOOK: Input: default@tbl_parquet_double@b=3.333
+PREHOOK: Input: default@tbl_parquet_double@b=4.4444
+PREHOOK: Input: default@tbl_parquet_double@b=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select count(*) from tbl_parquet_double
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet_double
+POSTHOOK: Input: default@tbl_parquet_double@b=1.1
+POSTHOOK: Input: default@tbl_parquet_double@b=2.22
+POSTHOOK: Input: default@tbl_parquet_double@b=3.333
+POSTHOOK: Input: default@tbl_parquet_double@b=4.4444
+POSTHOOK: Input: default@tbl_parquet_double@b=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+12
+PREHOOK: query: select * from tbl_parquet_double order by a
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet_double
+PREHOOK: Input: default@tbl_parquet_double@b=1.1
+PREHOOK: Input: default@tbl_parquet_double@b=2.22
+PREHOOK: Input: default@tbl_parquet_double@b=3.333
+PREHOOK: Input: default@tbl_parquet_double@b=4.4444
+PREHOOK: Input: default@tbl_parquet_double@b=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select * from tbl_parquet_double order by a
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet_double
+POSTHOOK: Input: default@tbl_parquet_double@b=1.1
+POSTHOOK: Input: default@tbl_parquet_double@b=2.22
+POSTHOOK: Input: default@tbl_parquet_double@b=3.333
+POSTHOOK: Input: default@tbl_parquet_double@b=4.4444
+POSTHOOK: Input: default@tbl_parquet_double@b=__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+1	1.1
+2	1.1
+3	1.1
+4	2.22
+5	2.22
+6	3.333
+7	3.333
+8	3.333
+9	4.4444
+10	NULL
+11	NULL
+12	NULL
+PREHOOK: query: explain alter table tbl_parquet_double convert to iceberg
+PREHOOK: type: ALTERTABLE_CONVERT
+PREHOOK: Input: default@tbl_parquet_double
+POSTHOOK: query: explain alter table tbl_parquet_double convert to iceberg
+POSTHOOK: type: ALTERTABLE_CONVERT
+POSTHOOK: Input: default@tbl_parquet_double
+Stage-0
+  Convert operation{"table name:":"default.tbl_parquet_double","spec:":"AlterTableConvertSpec{ConvertTo=iceberg, TBLProperties={}}"}
+
+PREHOOK: query: alter table tbl_parquet_double convert to iceberg
+PREHOOK: type: ALTERTABLE_CONVERT
+PREHOOK: Input: default@tbl_parquet_double
+POSTHOOK: query: alter table tbl_parquet_double convert to iceberg
+POSTHOOK: type: ALTERTABLE_CONVERT
+POSTHOOK: Input: default@tbl_parquet_double
+POSTHOOK: Output: default@tbl_parquet_double
+PREHOOK: query: describe formatted tbl_parquet_double
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@tbl_parquet_double
+POSTHOOK: query: describe formatted tbl_parquet_double
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@tbl_parquet_double
+# col_name            	data_type           	comment             
+a                   	int                 	                    
+b                   	double              	                    
+	 	 
+# Partition Transform Information	 	 
+# col_name            	transform_type      	 
+b                   	IDENTITY            	 
+	 	 
+# Detailed Table Information	 	 
+Database:           	default             	 
+#### A masked pattern was here ####
+Retention:          	0                   	 
+#### A masked pattern was here ####
+Table Type:         	EXTERNAL_TABLE      	 
+Table Parameters:	 	 
+	EXTERNAL            	TRUE                
+	MIGRATED_TO_ICEBERG 	true                
+	bucketing_version   	2                   
+	current-schema      	{\"type\":\"struct\",\"schema-id\":0,\"fields\":[{\"id\":1,\"name\":\"a\",\"required\":false,\"type\":\"int\"},{\"id\":2,\"name\":\"b\",\"required\":false,\"type\":\"double\"}]}
+	current-snapshot-id 	#Masked#
+	current-snapshot-summary	{\"added-data-files\":\"7\",\"added-records\":\"12\",\"added-files-size\":\"#Masked#\",\"changed-partition-count\":\"5\",\"total-records\":\"12\",\"total-files-size\":\"#Masked#\",\"total-data-files\":\"7\",\"total-delete-files\":\"0\",\"total-position-deletes\":\"0\",\"total-equality-deletes\":\"0\",\"iceberg-version\":\"#Masked#\"}
+	current-snapshot-timestamp-ms	#Masked#       
+	default-partition-spec	{\"spec-id\":0,\"fields\":[{\"name\":\"b\",\"transform\":\"identity\",\"source-id\":2,\"field-id\":1000}]}
+	format-version      	2                   
+	iceberg.orc.files.only	false               
+#### A masked pattern was here ####
+	metadata_location   	hdfs://### HDFS PATH ###
+	numFiles            	7                   
+	numRows             	12                  
+	parquet.compression 	zstd                
+	previous_metadata_location	hdfs://### HDFS PATH ###
+	schema.name-mapping.default	[ {                 
+	                           	  \"field-id\" : 1, 
+	                           	  \"names\" : [ \"a\" ]
+	                           	}, {                
+	                           	  \"field-id\" : 2, 
+	                           	  \"names\" : [ \"b\" ]
+	                           	} ]                 
+	snapshot-count      	1                   
+	storage_handler     	org.apache.iceberg.mr.hive.HiveIcebergStorageHandler
+	table_type          	ICEBERG             
+	totalSize           	#Masked#
+#### A masked pattern was here ####
+	uuid                	#Masked#
+	write.delete.mode   	merge-on-read       
+	write.format.default	parquet             
+	write.merge.mode    	merge-on-read       
+	write.update.mode   	merge-on-read       
+	 	 
+# Storage Information	 	 
+SerDe Library:      	org.apache.iceberg.mr.hive.HiveIcebergSerDe	 
+InputFormat:        	org.apache.iceberg.mr.hive.HiveIcebergInputFormat	 
+OutputFormat:       	org.apache.iceberg.mr.hive.HiveIcebergOutputFormat	 
+Compressed:         	No                  	 
+Sort Columns:       	[]                  	 
+PREHOOK: query: select count(*) from tbl_parquet_double
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet_double
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select count(*) from tbl_parquet_double
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet_double
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+12
+PREHOOK: query: select * from tbl_parquet_double order by a
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet_double
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select * from tbl_parquet_double order by a
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet_double
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+1	1.1
+2	1.1
+3	1.1
+4	2.22
+5	2.22
+6	3.333
+7	3.333
+8	3.333
+9	4.4444
+10	NULL
+11	NULL
+12	NULL
+PREHOOK: query: insert into table tbl_parquet_double partition (b=5.55555) values (13)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_double@b=5.55555
+POSTHOOK: query: insert into table tbl_parquet_double partition (b=5.55555) values (13)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_double@b=5.55555
+PREHOOK: query: insert into table tbl_parquet_double values (14, '')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_double
+POSTHOOK: query: insert into table tbl_parquet_double values (14, '')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_double
+PREHOOK: query: insert into table tbl_parquet_double values (15, null)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_double
+POSTHOOK: query: insert into table tbl_parquet_double values (15, null)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_double
+PREHOOK: query: insert into table tbl_parquet_double values (16, NULL)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@tbl_parquet_double
+POSTHOOK: query: insert into table tbl_parquet_double values (16, NULL)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@tbl_parquet_double
+PREHOOK: query: select count(*) from tbl_parquet_double
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet_double
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select count(*) from tbl_parquet_double
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet_double
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+16
+PREHOOK: query: select * from tbl_parquet_double order by a
+PREHOOK: type: QUERY
+PREHOOK: Input: default@tbl_parquet_double
+PREHOOK: Output: hdfs://### HDFS PATH ###
+POSTHOOK: query: select * from tbl_parquet_double order by a
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@tbl_parquet_double
+POSTHOOK: Output: hdfs://### HDFS PATH ###
+1	1.1
+2	1.1
+3	1.1
+4	2.22
+5	2.22
+6	3.333
+7	3.333
+8	3.333
+9	4.4444
+10	NULL
+11	NULL
+12	NULL
+13	5.55555
+14	NULL
+15	NULL
+16	NULL
+PREHOOK: query: drop table tbl_parquet_double
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@tbl_parquet_double
+PREHOOK: Output: database:default
+PREHOOK: Output: default@tbl_parquet_double
+POSTHOOK: query: drop table tbl_parquet_double
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@tbl_parquet_double
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@tbl_parquet_double
 PREHOOK: query: drop table if exists tbl_avro
 PREHOOK: type: DROPTABLE
 PREHOOK: Output: database:default