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

voonhous pushed a commit to branch bump-trino-plugin-to-1.1
in repository https://gitbox.apache.org/repos/asf/hudi.git

commit 050a1589bb22f3bf426d852a4909b8cb471e0e84
Author: vamsikarnika <[email protected]>
AuthorDate: Wed Sep 24 16:50:28 2025 +0530

    fix: Append Only Required Hudi Meta Fields for MOR Tables
    
    * fix test data
    
    * Add support for Column stats index
---
 .../main/java/io/trino/plugin/hudi/HudiUtil.java   |  34 ++++++++-------------
 .../hudi-testing-data/hudi_cow_pt_tbl.zip          | Bin 11750 -> 11752 bytes
 .../hudi-testing-data/hudi_non_part_cow.zip        | Bin 5980 -> 5966 bytes
 3 files changed, 13 insertions(+), 21 deletions(-)

diff --git a/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/HudiUtil.java 
b/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/HudiUtil.java
index 5389e80f5718..8eb10de4cc4c 100644
--- a/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/HudiUtil.java
+++ b/hudi-trino-plugin/src/main/java/io/trino/plugin/hudi/HudiUtil.java
@@ -64,7 +64,6 @@ import java.util.Set;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
-import java.util.stream.IntStream;
 
 import static io.airlift.slice.SizeOf.estimatedSizeOf;
 import static io.trino.plugin.hive.HiveErrorCode.HIVE_INVALID_METADATA;
@@ -78,7 +77,8 @@ import static 
io.trino.plugin.hudi.HudiErrorCode.HUDI_META_CLIENT_ERROR;
 import static io.trino.plugin.hudi.HudiErrorCode.HUDI_SCHEMA_ERROR;
 import static io.trino.plugin.hudi.HudiErrorCode.HUDI_UNSUPPORTED_FILE_FORMAT;
 import static java.lang.Math.toIntExact;
-import static org.apache.hudi.common.model.HoodieRecord.HOODIE_META_COLUMNS;
+import static 
org.apache.hudi.common.model.HoodieRecord.RECORD_KEY_METADATA_FIELD;
+import static 
org.apache.hudi.common.model.HoodieRecord.RECORD_KEY_META_FIELD_ORD;
 
 public final class HudiUtil
 {
@@ -328,30 +328,22 @@ public final class HudiUtil
                 .map(HiveColumnHandle::getName)
                 .collect(Collectors.toSet());
 
-        // If all Hudi meta columns are already present, return the original 
list
-        if (dataColumnNames.containsAll(HOODIE_META_COLUMNS)) {
+        // If Hudi record key meta column is already present, return the 
original list
+        if (dataColumnNames.contains(RECORD_KEY_METADATA_FIELD)) {
             return dataColumns;
         }
 
-        // Identify only the meta columns that are missing from dataColumns to 
avoid duplicates
-        List<String> missingMetaColumns = HOODIE_META_COLUMNS.stream()
-                .filter(metaColumn -> !dataColumnNames.contains(metaColumn))
-                .toList();
-
         List<HiveColumnHandle> columns = new ArrayList<>();
 
-        // Create and prepend the new HiveColumnHandles for the missing meta 
columns
-        columns.addAll(IntStream.range(0, missingMetaColumns.size())
-                .boxed()
-                .map(i -> new HiveColumnHandle(
-                        missingMetaColumns.get(i),
-                        i,
-                        HiveType.HIVE_STRING,
-                        VarcharType.VARCHAR,
-                        Optional.empty(),
-                        HiveColumnHandle.ColumnType.REGULAR,
-                        Optional.empty()))
-                .toList());
+        // Create and prepend the new HiveColumnHandle for the record key 
column
+        columns.add(new HiveColumnHandle(
+                RECORD_KEY_METADATA_FIELD,
+                RECORD_KEY_META_FIELD_ORD,
+                HiveType.HIVE_STRING,
+                VarcharType.VARCHAR,
+                Optional.empty(),
+                HiveColumnHandle.ColumnType.REGULAR,
+                Optional.empty()));
 
         // Add all the original data columns after the new meta columns
         columns.addAll(dataColumns);
diff --git 
a/hudi-trino-plugin/src/test/resources/hudi-testing-data/hudi_cow_pt_tbl.zip 
b/hudi-trino-plugin/src/test/resources/hudi-testing-data/hudi_cow_pt_tbl.zip
index 2f2238b22339..47c0532a9369 100644
Binary files 
a/hudi-trino-plugin/src/test/resources/hudi-testing-data/hudi_cow_pt_tbl.zip 
and 
b/hudi-trino-plugin/src/test/resources/hudi-testing-data/hudi_cow_pt_tbl.zip 
differ
diff --git 
a/hudi-trino-plugin/src/test/resources/hudi-testing-data/hudi_non_part_cow.zip 
b/hudi-trino-plugin/src/test/resources/hudi-testing-data/hudi_non_part_cow.zip
index 019860e88cff..55632f95ca9f 100644
Binary files 
a/hudi-trino-plugin/src/test/resources/hudi-testing-data/hudi_non_part_cow.zip 
and 
b/hudi-trino-plugin/src/test/resources/hudi-testing-data/hudi_non_part_cow.zip 
differ

Reply via email to