This is an automated email from the ASF dual-hosted git repository. ron pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/master by this push: new 1f6a6af327d [FLINK-36506][table] Remove all deprecated methods in ColumnStats (#25950) 1f6a6af327d is described below commit 1f6a6af327d6063dda6d29fcdfe063645445e88c Author: Xuyang <xyzhong...@163.com> AuthorDate: Tue Jan 14 11:50:26 2025 +0800 [FLINK-36506][table] Remove all deprecated methods in ColumnStats (#25950) Co-authored-by: atusharm <atush...@visa.com> --- .../apache/flink/table/plan/stats/ColumnStats.java | 108 +-------------------- .../plan/metadata/FlinkRelMdColumnInterval.scala | 18 +--- 2 files changed, 5 insertions(+), 121 deletions(-) diff --git a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/plan/stats/ColumnStats.java b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/plan/stats/ColumnStats.java index 7c41b0d7a7c..81f64c532b4 100644 --- a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/plan/stats/ColumnStats.java +++ b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/plan/stats/ColumnStats.java @@ -44,48 +44,13 @@ public final class ColumnStats { /** max length of column values. */ private final Integer maxLen; - /** - * Deprecated because not well supported comparable type, e.g. {@link java.util.Date}, {@link - * java.sql.Timestamp}. - */ - @Deprecated private final Number maxValue; - /** max value of column values, null if the value is unknown or not comparable. */ private final Comparable<?> max; - /** - * Deprecated because not well supported comparable type, e.g. {@link java.util.Date}, {@link - * java.sql.Timestamp}. - */ - @Deprecated private final Number minValue; - /** min value of column values, null if the value is unknown or not comparable. */ private final Comparable<?> min; - /** - * Deprecated because Number type max/min is not well supported comparable type, e.g. {@link - * java.util.Date}, {@link java.sql.Timestamp}. please use {@link ColumnStats.Builder} to - * construct ColumnStats instance. - */ - @Deprecated public ColumnStats( - Long ndv, Long nullCount, Double avgLen, Integer maxLen, Number max, Number min) { - this.ndv = ndv; - this.nullCount = nullCount; - this.avgLen = avgLen; - this.maxLen = maxLen; - this.maxValue = max; - this.minValue = min; - this.max = null; - this.min = null; - } - - /** - * Private because to avoid "cannot resolve constructor" error. please use {@link - * ColumnStats.Builder} to construct ColumnStats instance. could change to public if the - * deprecated constructor is removed in the future. - */ - private ColumnStats( Long ndv, Long nullCount, Double avgLen, @@ -98,8 +63,6 @@ public final class ColumnStats { this.maxLen = maxLen; this.max = max; this.min = min; - this.maxValue = null; - this.minValue = null; } public Long getNdv() { @@ -118,40 +81,10 @@ public final class ColumnStats { return maxLen; } - /** - * Deprecated because Number type max/min is not well supported comparable type, e.g. {@link - * java.util.Date}, {@link java.sql.Timestamp}. - * - * <p>Returns null if this instance is constructed by {@link ColumnStats.Builder}. - */ - @Deprecated - public Number getMaxValue() { - return maxValue; - } - - /** - * Returns null if this instance is constructed by {@link ColumnStats#ColumnStats(Long, Long, - * Double, Integer, Number, Number)}. - */ public Comparable<?> getMax() { return max; } - /** - * Deprecated because Number type max/min is not well supported comparable type, e.g. {@link - * java.util.Date}, {@link java.sql.Timestamp}. - * - * <p>Returns null if this instance is constructed by {@link ColumnStats.Builder}. - */ - @Deprecated - public Number getMinValue() { - return minValue; - } - - /** - * Returns null if this instance is constructed by {@link ColumnStats#ColumnStats(Long, Long, - * Double, Integer, Number, Number)}. - */ public Comparable<?> getMin() { return min; } @@ -173,15 +106,9 @@ public final class ColumnStats { if (max != null) { columnStats.add("max=" + max); } - if (maxValue != null) { - columnStats.add("max=" + maxValue); - } if (min != null) { columnStats.add("min=" + min); } - if (minValue != null) { - columnStats.add("min=" + minValue); - } String columnStatsStr = String.join(", ", columnStats); return "ColumnStats(" + columnStatsStr + ")"; } @@ -192,18 +119,8 @@ public final class ColumnStats { * @return a deep copy */ public ColumnStats copy() { - if (maxValue != null || minValue != null) { - return new ColumnStats( - this.ndv, - this.nullCount, - this.avgLen, - this.maxLen, - this.maxValue, - this.minValue); - } else { - return new ColumnStats( - this.ndv, this.nullCount, this.avgLen, this.maxLen, this.max, this.min); - } + return new ColumnStats( + this.ndv, this.nullCount, this.avgLen, this.maxLen, this.max, this.min); } /** @@ -228,17 +145,6 @@ public final class ColumnStats { Double avgLen = combineIfNonNull((a1, a2) -> (a1 + a2) / 2, this.avgLen, other.avgLen); Integer maxLen = combineIfNonNull(Math::max, this.maxLen, other.maxLen); - Number maxValue = - combineIfNonNull( - (n1, n2) -> n1.doubleValue() > n2.doubleValue() ? n1 : n2, - this.maxValue, - other.maxValue); - Number minValue = - combineIfNonNull( - (n1, n2) -> n1.doubleValue() < n2.doubleValue() ? n1 : n2, - this.minValue, - other.minValue); - @SuppressWarnings("unchecked") Comparable max = combineIfNonNull( @@ -252,11 +158,7 @@ public final class ColumnStats { this.min, other.min); - if (max != null || min != null) { - return new ColumnStats(ndv, nullCount, avgLen, maxLen, max, min); - } else { - return new ColumnStats(ndv, nullCount, avgLen, maxLen, maxValue, minValue); - } + return new ColumnStats(ndv, nullCount, avgLen, maxLen, max, min); } @Override @@ -272,15 +174,13 @@ public final class ColumnStats { && Objects.equals(nullCount, that.nullCount) && Objects.equals(avgLen, that.avgLen) && Objects.equals(maxLen, that.maxLen) - && Objects.equals(maxValue, that.maxValue) && Objects.equals(max, that.max) - && Objects.equals(minValue, that.minValue) && Objects.equals(min, that.min); } @Override public int hashCode() { - return Objects.hash(ndv, nullCount, avgLen, maxLen, maxValue, max, minValue, min); + return Objects.hash(ndv, nullCount, avgLen, maxLen, max, min); } private static <T> T combineIfNonNull(BinaryOperator<T> op, T t1, T t2) { diff --git a/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/plan/metadata/FlinkRelMdColumnInterval.scala b/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/plan/metadata/FlinkRelMdColumnInterval.scala index 792ec07413d..d72a1e91ef2 100644 --- a/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/plan/metadata/FlinkRelMdColumnInterval.scala +++ b/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/plan/metadata/FlinkRelMdColumnInterval.scala @@ -25,7 +25,6 @@ import org.apache.flink.table.planner.plan.nodes.physical.stream._ import org.apache.flink.table.planner.plan.schema.FlinkPreparingTableBase import org.apache.flink.table.planner.plan.stats._ import org.apache.flink.table.planner.plan.utils.{AggregateUtil, ColumnIntervalUtil, FlinkRelOptUtil, RankUtil} -import org.apache.flink.table.planner.utils.ShortcutUtils import org.apache.flink.table.planner.utils.ShortcutUtils.unwrapTypeFactory import org.apache.flink.table.runtime.operators.rank.{ConstantRankRange, VariableRankRange} import org.apache.flink.util.Preconditions @@ -73,17 +72,10 @@ class FlinkRelMdColumnInterval private extends MetadataHandler[ColumnInterval] { val statistic = relOptTable.getStatistic val colStats = statistic.getColumnStats(fieldName) if (colStats != null) { - val minValue = colStats.getMinValue - val maxValue = colStats.getMaxValue val min = colStats.getMin val max = colStats.getMax - Preconditions.checkArgument( - (minValue == null && maxValue == null) || (max == null && min == null)) - - if (minValue != null || maxValue != null) { - ValueInterval(convertNumberToBigDecimal(minValue), convertNumberToBigDecimal(maxValue)) - } else if (max != null || min != null) { + if (max != null || min != null) { ValueInterval(convertNumberToBigDecimal(min), convertNumberToBigDecimal(max)) } else { null @@ -93,14 +85,6 @@ class FlinkRelMdColumnInterval private extends MetadataHandler[ColumnInterval] { } } - private def convertNumberToBigDecimal(number: Number): Number = { - if (number != null) { - new JBigDecimal(number.toString) - } else { - number - } - } - private def convertNumberToBigDecimal(comparable: Comparable[_]): Comparable[_] = { if (comparable != null && comparable.isInstanceOf[Number]) { new JBigDecimal(comparable.toString)