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; }
