Fix VolcanoCost so that a < b iff b > a. Without this fix, the first rel in a subset has an advantage over "cheaper" rels that arrive later.
diff --git a/src/main/java/org/eigenbase/relopt/volcano/VolcanoCost.java b/src/main/java/org/eigenbase/relopt/volcano/VolcanoCost.java
index e6410a0..a26ff0a 100644
--- a/src/main/java/org/eigenbase/relopt/volcano/VolcanoCost.java
+++ b/src/main/java/org/eigenbase/relopt/volcano/VolcanoCost.java
@@ -107,8 +107,9 @@
VolcanoCost that = (VolcanoCost) other;
return (this == that)
|| ((this.dRows <= that.dRows)
- && (this.dCpu <= that.dCpu)
- && (this.dIo <= that.dIo));
+// && (this.dCpu <= that.dCpu)
+// && (this.dIo <= that.dIo)
+ );
}
public boolean isLt(RelOptCost other)