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

singhpk234 pushed a commit to branch feature/serialize-bound-expression
in repository https://gitbox.apache.org/repos/asf/iceberg.git

commit 4a2017d8fe94cf196f86c89c8e25ebf272b67a64
Author: Prashant Kumar Singh <[email protected]>
AuthorDate: Wed Oct 22 17:12:58 2025 +0000

    Address review per commnuity sync 10/22
---
 .../apache/iceberg/expressions/NamedReference.java | 12 ++++++--
 .../iceberg/expressions/ResolvedReference.java     |  4 +--
 .../org/apache/iceberg/expressions/Unbound.java    |  2 +-
 .../iceberg/expressions/UnboundAggregate.java      |  2 +-
 .../apache/iceberg/expressions/UnboundExtract.java |  2 +-
 .../iceberg/expressions/UnboundPredicate.java      |  2 +-
 .../iceberg/expressions/UnboundReference.java      | 35 ----------------------
 .../iceberg/expressions/UnboundTransform.java      |  8 ++---
 8 files changed, 20 insertions(+), 47 deletions(-)

diff --git 
a/api/src/main/java/org/apache/iceberg/expressions/NamedReference.java 
b/api/src/main/java/org/apache/iceberg/expressions/NamedReference.java
index fdef264561..c2d83bc4df 100644
--- a/api/src/main/java/org/apache/iceberg/expressions/NamedReference.java
+++ b/api/src/main/java/org/apache/iceberg/expressions/NamedReference.java
@@ -20,12 +20,20 @@ package org.apache.iceberg.expressions;
 
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.exceptions.ValidationException;
+import org.apache.iceberg.relocated.com.google.common.base.Preconditions;
 import org.apache.iceberg.types.Types;
 
-public class NamedReference<T> extends UnboundReference<T> {
+public class NamedReference<T> implements UnboundTerm<T>, Reference<T> {
+  private final String name;
 
   NamedReference(String name) {
-    super(name);
+    Preconditions.checkNotNull(name, "Name cannot be null");
+    this.name = name;
+  }
+
+  @Override
+  public String name() {
+    return name;
   }
 
   @Override
diff --git 
a/api/src/main/java/org/apache/iceberg/expressions/ResolvedReference.java 
b/api/src/main/java/org/apache/iceberg/expressions/ResolvedReference.java
index 195d3b4a56..bc206b76a4 100644
--- a/api/src/main/java/org/apache/iceberg/expressions/ResolvedReference.java
+++ b/api/src/main/java/org/apache/iceberg/expressions/ResolvedReference.java
@@ -22,7 +22,7 @@ import org.apache.iceberg.Schema;
 import org.apache.iceberg.exceptions.ValidationException;
 import org.apache.iceberg.types.Types;
 
-public class ResolvedReference<T> extends UnboundReference<T> {
+public class ResolvedReference<T> extends NamedReference<T> {
   private final int fieldId;
 
   public ResolvedReference(String name, int fieldId) {
@@ -48,7 +48,7 @@ public class ResolvedReference<T> extends UnboundReference<T> 
{
   }
 
   @Override
-  public NamedReference<?> ref() {
+  public NamedReference<T> ref() {
     return new NamedReference<>(name());
   }
 
diff --git a/api/src/main/java/org/apache/iceberg/expressions/Unbound.java 
b/api/src/main/java/org/apache/iceberg/expressions/Unbound.java
index 1a161b1b60..557ac3fd26 100644
--- a/api/src/main/java/org/apache/iceberg/expressions/Unbound.java
+++ b/api/src/main/java/org/apache/iceberg/expressions/Unbound.java
@@ -38,5 +38,5 @@ public interface Unbound<T, B> {
   B bind(Types.StructType struct, boolean caseSensitive);
 
   /** Returns this expression's underlying reference. */
-  UnboundReference<?> ref();
+  NamedReference<?> ref();
 }
diff --git 
a/api/src/main/java/org/apache/iceberg/expressions/UnboundAggregate.java 
b/api/src/main/java/org/apache/iceberg/expressions/UnboundAggregate.java
index 017001cdea..6bff05e772 100644
--- a/api/src/main/java/org/apache/iceberg/expressions/UnboundAggregate.java
+++ b/api/src/main/java/org/apache/iceberg/expressions/UnboundAggregate.java
@@ -30,7 +30,7 @@ public class UnboundAggregate<T> extends 
Aggregate<UnboundTerm<T>>
   }
 
   @Override
-  public UnboundReference<?> ref() {
+  public NamedReference<?> ref() {
     return term().ref();
   }
 
diff --git 
a/api/src/main/java/org/apache/iceberg/expressions/UnboundExtract.java 
b/api/src/main/java/org/apache/iceberg/expressions/UnboundExtract.java
index 184bd228be..1f29650c74 100644
--- a/api/src/main/java/org/apache/iceberg/expressions/UnboundExtract.java
+++ b/api/src/main/java/org/apache/iceberg/expressions/UnboundExtract.java
@@ -48,7 +48,7 @@ public class UnboundExtract<T> implements UnboundTerm<T> {
   }
 
   @Override
-  public UnboundReference<?> ref() {
+  public NamedReference<?> ref() {
     return ref;
   }
 
diff --git 
a/api/src/main/java/org/apache/iceberg/expressions/UnboundPredicate.java 
b/api/src/main/java/org/apache/iceberg/expressions/UnboundPredicate.java
index 15ece3cbbb..4736ca4a86 100644
--- a/api/src/main/java/org/apache/iceberg/expressions/UnboundPredicate.java
+++ b/api/src/main/java/org/apache/iceberg/expressions/UnboundPredicate.java
@@ -62,7 +62,7 @@ public class UnboundPredicate<T> extends Predicate<T, 
UnboundTerm<T>>
   }
 
   @Override
-  public UnboundReference<?> ref() {
+  public NamedReference<?> ref() {
     return term().ref();
   }
 
diff --git 
a/api/src/main/java/org/apache/iceberg/expressions/UnboundReference.java 
b/api/src/main/java/org/apache/iceberg/expressions/UnboundReference.java
deleted file mode 100644
index 892e30aa4a..0000000000
--- a/api/src/main/java/org/apache/iceberg/expressions/UnboundReference.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iceberg.expressions;
-
-import org.apache.iceberg.relocated.com.google.common.base.Preconditions;
-
-public abstract class UnboundReference<T> implements UnboundTerm<T>, 
Reference<T> {
-  private final String name;
-
-  protected UnboundReference(String name) {
-    Preconditions.checkNotNull(name, "Name cannot be null");
-    this.name = name;
-  }
-
-  @Override
-  public String name() {
-    return name;
-  }
-}
diff --git 
a/api/src/main/java/org/apache/iceberg/expressions/UnboundTransform.java 
b/api/src/main/java/org/apache/iceberg/expressions/UnboundTransform.java
index 29905cd24b..27059d1d21 100644
--- a/api/src/main/java/org/apache/iceberg/expressions/UnboundTransform.java
+++ b/api/src/main/java/org/apache/iceberg/expressions/UnboundTransform.java
@@ -23,20 +23,20 @@ import org.apache.iceberg.transforms.Transform;
 import org.apache.iceberg.types.Types;
 
 public class UnboundTransform<S, T> implements UnboundTerm<T>, Term {
-  private final UnboundReference<S> ref;
+  private final NamedReference<S> ref;
   private final Transform<S, T> transform;
 
-  UnboundTransform(UnboundReference<S> ref, Transform<S, T> transform) {
+  UnboundTransform(NamedReference<S> ref, Transform<S, T> transform) {
     this.ref = ref;
     this.transform = transform;
   }
 
   @Override
-  public UnboundReference<S> ref() {
+  public NamedReference<S> ref() {
     return ref;
   }
 
-  public UnboundReference<S> unboundRef() {
+  public NamedReference<S> unboundRef() {
     return ref;
   }
 

Reply via email to