[Mulgara-svn] r1748 - trunk/src/jar/tuples/java/org/mulgara/store/tuples
pag at mulgara.org
pag at mulgara.org
Fri Jul 3 17:31:09 UTC 2009
Author: pag
Date: 2009-07-03 10:31:08 -0700 (Fri, 03 Jul 2009)
New Revision: 1748
Modified:
trunk/src/jar/tuples/java/org/mulgara/store/tuples/UnboundJoin.java
Log:
More reasonably assumption about the expected value for the size of a join. This needs a major overhaul
Modified: trunk/src/jar/tuples/java/org/mulgara/store/tuples/UnboundJoin.java
===================================================================
--- trunk/src/jar/tuples/java/org/mulgara/store/tuples/UnboundJoin.java 2009-07-03 17:26:51 UTC (rev 1747)
+++ trunk/src/jar/tuples/java/org/mulgara/store/tuples/UnboundJoin.java 2009-07-03 17:31:08 UTC (rev 1748)
@@ -31,7 +31,6 @@
// Java 2 standard packages
import java.util.*;
-import java.math.BigInteger;
// Third party packages
import org.apache.log4j.Logger;
@@ -357,15 +356,22 @@
return operands[0].getRowUpperBound();
}
- BigInteger rowCount = BigInteger.valueOf(operands[0].getRowUpperBound());
-
+ /*
+ BigInteger rowCount = BigInteger.valueOf(operands[0].getRowUpperBound());
+
+ for (int i = 1; i < operands.length; i++) {
+ rowCount = rowCount.multiply(BigInteger.valueOf(operands[i].getRowUpperBound()));
+ if (rowCount.bitLength() > 63)
+ return Long.MAX_VALUE;
+ }
+
+ return rowCount.longValue();
+ */
+ long result = operands[0].getRowUpperBound();
for (int i = 1; i < operands.length; i++) {
- rowCount = rowCount.multiply(BigInteger.valueOf(operands[i].getRowUpperBound()));
- if (rowCount.bitLength() > 63)
- return Long.MAX_VALUE;
+ result = Math.min(result, operands[i].getRowUpperBound());
}
-
- return rowCount.longValue();
+ return result;
}
public boolean isColumnEverUnbound(int column) throws TuplesException {
More information about the Mulgara-svn
mailing list