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