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

mbudiu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git


The following commit(s) were added to refs/heads/main by this push:
     new 787dfdb39c [CALCITE-6543] Change the RelOptCostImpl toString method to 
be consistent with VolcanoCost
787dfdb39c is described below

commit 787dfdb39c4bca91ec18ee5e223cb31260186c5a
Author: ChengJie1053 <[email protected]>
AuthorDate: Sat Aug 24 14:02:43 2024 +0800

    [CALCITE-6543] Change the RelOptCostImpl toString method to be consistent 
with VolcanoCost
---
 core/src/main/java/org/apache/calcite/plan/RelOptCost.java | 14 ++++++++++++++
 .../main/java/org/apache/calcite/plan/RelOptCostImpl.java  |  6 +-----
 .../java/org/apache/calcite/plan/volcano/VolcanoCost.java  |  8 ++++----
 3 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/core/src/main/java/org/apache/calcite/plan/RelOptCost.java 
b/core/src/main/java/org/apache/calcite/plan/RelOptCost.java
index 469b725bd1..015fd46d48 100644
--- a/core/src/main/java/org/apache/calcite/plan/RelOptCost.java
+++ b/core/src/main/java/org/apache/calcite/plan/RelOptCost.java
@@ -124,4 +124,18 @@ public interface RelOptCost {
    * good cost rendering to use during tracing.
    */
   @Override String toString();
+
+  static String toString(double value) {
+    if (value == Double.MAX_VALUE) {
+      return "{huge}";
+    } else if (value == Double.POSITIVE_INFINITY) {
+      return "{inf}";
+    } else if (value == 1.0) {
+      return "{tiny}";
+    } else if (value == 0.0) {
+      return "{0}";
+    } else {
+      return Double.toString(value);
+    }
+  }
 }
diff --git a/core/src/main/java/org/apache/calcite/plan/RelOptCostImpl.java 
b/core/src/main/java/org/apache/calcite/plan/RelOptCostImpl.java
index 7e3cc1e7a4..66a1080ca0 100644
--- a/core/src/main/java/org/apache/calcite/plan/RelOptCostImpl.java
+++ b/core/src/main/java/org/apache/calcite/plan/RelOptCostImpl.java
@@ -113,11 +113,7 @@ public class RelOptCostImpl implements RelOptCost {
 
   // implement RelOptCost
   @Override public String toString() {
-    if (value == Double.MAX_VALUE) {
-      return "huge";
-    } else {
-      return Double.toString(value);
-    }
+    return RelOptCost.toString(value);
   }
 
   /** Implementation of {@link RelOptCostFactory} that creates
diff --git 
a/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoCost.java 
b/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoCost.java
index 1c0fb6e974..dd4f002352 100644
--- a/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoCost.java
+++ b/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoCost.java
@@ -39,28 +39,28 @@ class VolcanoCost implements RelOptCost {
           Double.POSITIVE_INFINITY,
           Double.POSITIVE_INFINITY) {
         @Override public String toString() {
-          return "{inf}";
+          return  RelOptCost.toString(Double.POSITIVE_INFINITY);
         }
       };
 
   static final VolcanoCost HUGE =
       new VolcanoCost(Double.MAX_VALUE, Double.MAX_VALUE, Double.MAX_VALUE) {
         @Override public String toString() {
-          return "{huge}";
+          return RelOptCost.toString(Double.MAX_VALUE);
         }
       };
 
   static final VolcanoCost ZERO =
       new VolcanoCost(0.0, 0.0, 0.0) {
         @Override public String toString() {
-          return "{0}";
+          return RelOptCost.toString(0.0);
         }
       };
 
   static final VolcanoCost TINY =
       new VolcanoCost(1.0, 1.0, 0.0) {
         @Override public String toString() {
-          return "{tiny}";
+          return RelOptCost.toString(1.0);
         }
       };
 

Reply via email to