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