You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu> on 2022/09/20 21:07:01 UTC

Change in asterixdb[master]: m

From Ali Alsuliman <al...@gmail.com>:

Ali Alsuliman has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17233 )


Change subject: m
......................................................................

m

Change-Id: I230d731d510c8da395539acab8901ee2a388c88c
---
M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/cost/Cost.java
M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/cost/ICost.java
2 files changed, 42 insertions(+), 44 deletions(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/33/17233/1

diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/cost/Cost.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/cost/Cost.java
index 7e74f91..5dda277 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/cost/Cost.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/cost/Cost.java
@@ -22,8 +22,6 @@
 public class Cost implements ICost {
 
     public static final double MAX_CARD = 1.0e200;
-    protected static final int COST_GT = 1;
-    protected static final int COST_LT = -1;
     protected static final int COST_EQ = 0;
 
     private final double cost;
@@ -37,63 +35,57 @@
     }
 
     @Override
-    public Cost zeroCost() {
+    public ICost zeroCost() {
         return new Cost();
     }
 
     @Override
-    public Cost maxCost() {
+    public ICost maxCost() {
         return new Cost(MAX_CARD);
     }
 
     @Override
-    public Cost costAdd(ICost iCost2) {
-        return new Cost(this.computeTotalCost() + iCost2.computeTotalCost());
+    public ICost costAdd(ICost cost) {
+        return new Cost(computeTotalCost() + cost.computeTotalCost());
     }
 
     @Override
-    public Cost costAdd(ICost iCost2, ICost iCost3) {
-        return this.costAdd(iCost2.costAdd(iCost3));
+    public boolean costEQ(ICost cost) {
+        return compareTo(cost) == COST_EQ;
     }
 
     @Override
-    public int costCompare(ICost iCost2) {
-        if (this.computeTotalCost() > iCost2.computeTotalCost()) {
-            return COST_GT;
-        } else if (this.computeTotalCost() < iCost2.computeTotalCost()) {
-            return COST_LT;
-        } else {
-            return COST_EQ;
-        }
+    public boolean costLT(ICost cost) {
+        return compareTo(cost) < COST_EQ;
     }
 
     @Override
-    public boolean costEQ(ICost iCost2) {
-        return this.costCompare(iCost2) == COST_EQ;
+    public boolean costGT(ICost cost) {
+        return compareTo(cost) > COST_EQ;
     }
 
     @Override
-    public boolean costLT(ICost iCost2) {
-        return this.costCompare(iCost2) == COST_LT;
+    public boolean costLE(ICost cost) {
+        return compareTo(cost) <= COST_EQ;
     }
 
     @Override
-    public boolean costGT(ICost iCost2) {
-        return this.costCompare(iCost2) == COST_GT;
-    }
-
-    @Override
-    public boolean costLE(ICost iCost2) {
-        return this.costLT(iCost2) || this.costEQ(iCost2);
-    }
-
-    @Override
-    public boolean costGE(ICost iCost2) {
-        return this.costGT(iCost2) || this.costEQ(iCost2);
+    public boolean costGE(ICost cost) {
+        return compareTo(cost) >= COST_EQ;
     }
 
     @Override
     public double computeTotalCost() {
-        return this.cost;
+        return cost;
+    }
+
+    @Override
+    public int compareTo(ICost cost) {
+        return Double.compare(computeTotalCost(), cost.computeTotalCost());
+    }
+
+    @Override
+    public String toString() {
+        return Double.toString(cost);
     }
 }
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/cost/ICost.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/cost/ICost.java
index 6f4c7d7..99c3362 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/cost/ICost.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/cost/ICost.java
@@ -19,27 +19,24 @@
 
 package org.apache.asterix.optimizer.cost;
 
-public interface ICost {
+public interface ICost extends Comparable<ICost> {
 
     ICost zeroCost();
 
     ICost maxCost();
 
-    ICost costAdd(ICost cost2);
+    ICost costAdd(ICost cost);
 
-    ICost costAdd(ICost cost2, ICost cost3);
+    boolean costEQ(ICost cost);
 
-    int costCompare(ICost cost2);
+    boolean costLT(ICost cost);
 
-    boolean costEQ(ICost cost2);
+    boolean costGT(ICost cost);
 
-    boolean costLT(ICost cost2);
+    boolean costLE(ICost cost);
 
-    boolean costGT(ICost cost2);
-
-    boolean costLE(ICost cost2);
-
-    boolean costGE(ICost cost2);
+    boolean costGE(ICost cost);
 
     double computeTotalCost();
+
 }

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17233
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I230d731d510c8da395539acab8901ee2a388c88c
Gerrit-Change-Number: 17233
Gerrit-PatchSet: 1
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-MessageType: newchange