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

krisztiankasa 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 84376bc9b5f HIVE-28774 Refactor NullOrder usage in iceberg write oder 
function (Zoltan Ratkai, reviewed by Krisztian Kasa)
84376bc9b5f is described below

commit 84376bc9b5f9b0f6ba2cf299b3462580b5acb9fc
Author: Zoltan Ratkai <[email protected]>
AuthorDate: Thu Feb 27 09:42:31 2025 +0100

    HIVE-28774 Refactor NullOrder usage in iceberg write oder function (Zoltan 
Ratkai, reviewed by Krisztian Kasa)
    
    Change-Id: Ic313562fbb5d92bb9f42ea7c718ca44c52e99b8e
---
 .../org/apache/iceberg/mr/hive/HiveIcebergMetaHook.java    |  3 ++-
 .../hadoop/hive/ql/ddl/misc/sortoder/SortFieldDesc.java    | 14 ++++++--------
 .../org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java  |  2 +-
 3 files changed, 9 insertions(+), 10 deletions(-)

diff --git 
a/iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/HiveIcebergMetaHook.java
 
b/iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/HiveIcebergMetaHook.java
index 45b83911076..534afe11afe 100644
--- 
a/iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/HiveIcebergMetaHook.java
+++ 
b/iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/HiveIcebergMetaHook.java
@@ -72,6 +72,7 @@
 import org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc;
 import org.apache.hadoop.hive.ql.session.SessionState;
 import org.apache.hadoop.hive.ql.session.SessionStateUtil;
+import org.apache.hadoop.hive.ql.util.NullOrdering;
 import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
 import org.apache.hadoop.hive.serde2.typeinfo.ListTypeInfo;
 import org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo;
@@ -301,7 +302,7 @@ private void 
setSortOrder(org.apache.hadoop.hive.metastore.api.Table hmsTable, S
       if (sortFields != null && !sortFields.getSortFields().isEmpty()) {
         SortOrder.Builder sortOderBuilder = SortOrder.builderFor(schema);
         sortFields.getSortFields().forEach(fieldDesc -> {
-          NullOrder nullOrder = fieldDesc.getNullOrder() == 
SortFieldDesc.NullOrder.NULLS_FIRST ?
+          NullOrder nullOrder = fieldDesc.getNullOrdering() == 
NullOrdering.NULLS_FIRST ?
               NullOrder.NULLS_FIRST : NullOrder.NULLS_LAST;
           SortDirection sortDirection = fieldDesc.getDirection() == 
SortFieldDesc.SortDirection.ASC ?
               SortDirection.ASC : SortDirection.DESC;
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/ddl/misc/sortoder/SortFieldDesc.java 
b/ql/src/java/org/apache/hadoop/hive/ql/ddl/misc/sortoder/SortFieldDesc.java
index c110f5c970c..48e5c83eb9b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/ddl/misc/sortoder/SortFieldDesc.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/ddl/misc/sortoder/SortFieldDesc.java
@@ -18,25 +18,23 @@
 
 package org.apache.hadoop.hive.ql.ddl.misc.sortoder;
 
+import org.apache.hadoop.hive.ql.util.NullOrdering;
+
 public class SortFieldDesc {
 
   private String columnName;
-  private NullOrder nullOrder;
+  private NullOrdering nullOrder;
   private SortDirection direction;
 
   public SortFieldDesc() {
   }
   
-  public SortFieldDesc(String columnName, SortDirection direction, NullOrder 
nullOrder) {
+  public SortFieldDesc(String columnName, SortDirection direction, 
NullOrdering nullOrder) {
     this.columnName = columnName;
     this.direction = direction;
     this.nullOrder = nullOrder;
   }
 
-  public enum NullOrder {
-    NULLS_FIRST, NULLS_LAST;
-  }
-
   public enum SortDirection {
     ASC,
     DESC;
@@ -46,7 +44,7 @@ public String getColumnName() {
     return columnName;
   }
 
-  public NullOrder getNullOrder() {
+  public NullOrdering getNullOrdering() {
     return nullOrder;
   }
 
@@ -58,7 +56,7 @@ public void setColumnName(String columnName) {
     this.columnName = columnName;
   }
 
-  public void setNullOrder(NullOrder nullOrder) {
+  public void setNullOrdering(NullOrdering nullOrder) {
     this.nullOrder = nullOrder;
   }
 
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java 
b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
index e8f0bd380e2..08739d9f5b4 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
@@ -16132,7 +16132,7 @@ private String getSortOrderJson(ASTNode ast) {
           .getType() == HiveParser.TOK_TABSORTCOLNAMEDESC ? 
SortFieldDesc.SortDirection.DESC : SortFieldDesc.SortDirection.ASC;
       child = (ASTNode) child.getChild(0);
       String name = 
unescapeIdentifier(child.getChild(0).getText()).toLowerCase();
-      SortFieldDesc.NullOrder nullOrder = child.getToken().getType() == 
HiveParser.TOK_NULLS_FIRST ? SortFieldDesc.NullOrder.NULLS_FIRST : 
SortFieldDesc.NullOrder.NULLS_LAST;
+      NullOrdering nullOrder = 
NullOrdering.fromToken(child.getToken().getType());
       sortFieldDescList.add(new SortFieldDesc(name, sortDirection, nullOrder));
     }
     try {

Reply via email to