[teiid-commits] teiid SVN: r3061 - in trunk/engine/src: test/java/org/teiid/query/optimizer/relational/rules and 1 other directories.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Tue Apr 5 10:48:29 EDT 2011
Author: shawkins
Date: 2011-04-05 10:48:29 -0400 (Tue, 05 Apr 2011)
New Revision: 3061
Modified:
trunk/engine/src/main/java/org/teiid/query/optimizer/relational/rules/NewCalculateCostUtil.java
trunk/engine/src/test/java/org/teiid/query/optimizer/relational/rules/TestCalculateCostUtil.java
trunk/engine/src/test/java/org/teiid/query/optimizer/relational/rules/TestRuleChooseDependent.java
trunk/engine/src/test/java/org/teiid/query/processor/xml/TestXMLPlanningEnhancements.java
Log:
TEIID-1533 ensuring that larger tables when used by themselves have a better ndv estimate
Modified: trunk/engine/src/main/java/org/teiid/query/optimizer/relational/rules/NewCalculateCostUtil.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/optimizer/relational/rules/NewCalculateCostUtil.java 2011-04-05 02:39:40 UTC (rev 3060)
+++ trunk/engine/src/main/java/org/teiid/query/optimizer/relational/rules/NewCalculateCostUtil.java 2011-04-05 14:48:29 UTC (rev 3061)
@@ -805,17 +805,18 @@
}
if (ndv == UNKNOWN_VALUE) {
- ndv = 3;
if (multiGroup) {
if (usesKey) {
ndv = (float)Math.ceil(Math.sqrt(childCost));
} else {
ndv = (float)Math.ceil(Math.sqrt(childCost)/4);
}
- ndv = Math.max(ndv, 1);
} else if (usesKey) {
ndv = childCost;
+ } else {
+ ndv = (float)Math.ceil(Math.sqrt(childCost)/2);
}
+ ndv = Math.max(ndv, 1);
}
boolean isNegatedPredicateCriteria = false;
Modified: trunk/engine/src/test/java/org/teiid/query/optimizer/relational/rules/TestCalculateCostUtil.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/optimizer/relational/rules/TestCalculateCostUtil.java 2011-04-05 02:39:40 UTC (rev 3060)
+++ trunk/engine/src/test/java/org/teiid/query/optimizer/relational/rules/TestCalculateCostUtil.java 2011-04-05 14:48:29 UTC (rev 3061)
@@ -133,7 +133,7 @@
QueryMetadataInterface metadata = FakeMetadataFactory.example4();
String critString = "pm2.g3.e1 NOT LIKE '#_'"; //$NON-NLS-1$
- helpTestEstimateCost(critString, 300, 200, metadata);
+ helpTestEstimateCost(critString, 300, 233, metadata);
}
/**
@@ -166,7 +166,7 @@
QueryMetadataInterface metadata = FakeMetadataFactory.example4();
String critString = "pm2.g3.e1 IS NULL"; //$NON-NLS-1$
- helpTestEstimateCost(critString, 300, 100, metadata);
+ helpTestEstimateCost(critString, 300, 33, metadata);
}
/**
@@ -177,7 +177,7 @@
QueryMetadataInterface metadata = FakeMetadataFactory.example4();
String critString = "pm2.g3.e1 IS NOT NULL"; //$NON-NLS-1$
- helpTestEstimateCost(critString, 300, 200, metadata);
+ helpTestEstimateCost(critString, 300, 266, metadata);
}
/**
@@ -235,7 +235,7 @@
QueryMetadataInterface metadata = FakeMetadataFactory.example4();
String critString = "pm2.g3.e1 IN ('2', '3')"; //$NON-NLS-1$
- helpTestEstimateCost(critString, 300, 200, metadata);
+ helpTestEstimateCost(critString, 300, 66, metadata);
}
/**
@@ -247,7 +247,7 @@
QueryMetadataInterface metadata = FakeMetadataFactory.example4();
String critString = "pm2.g3.e1 NOT IN ('2', '3')"; //$NON-NLS-1$
- helpTestEstimateCost(critString, 300, 100, metadata);
+ helpTestEstimateCost(critString, 300, 233, metadata);
}
/**
Modified: trunk/engine/src/test/java/org/teiid/query/optimizer/relational/rules/TestRuleChooseDependent.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/optimizer/relational/rules/TestRuleChooseDependent.java 2011-04-05 02:39:40 UTC (rev 3060)
+++ trunk/engine/src/test/java/org/teiid/query/optimizer/relational/rules/TestRuleChooseDependent.java 2011-04-05 14:48:29 UTC (rev 3061)
@@ -64,6 +64,7 @@
import org.teiid.query.unittest.FakeMetadataObject;
import org.teiid.query.util.CommandContext;
+ at SuppressWarnings("unchecked")
public class TestRuleChooseDependent {
/* Make Left Side Dependent */
@@ -566,7 +567,7 @@
atomicCrit2a,
atomicJoinCrits2,
crits,
- expected, -1, 57734);
+ expected, -1, 7930);
}
/**
Modified: trunk/engine/src/test/java/org/teiid/query/processor/xml/TestXMLPlanningEnhancements.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/processor/xml/TestXMLPlanningEnhancements.java 2011-04-05 02:39:40 UTC (rev 3060)
+++ trunk/engine/src/test/java/org/teiid/query/processor/xml/TestXMLPlanningEnhancements.java 2011-04-05 14:48:29 UTC (rev 3061)
@@ -488,7 +488,7 @@
String expectedDoc = TestXMLProcessor.readFile("TestXMLProcessor-FullSuppliers.xml"); //$NON-NLS-1$
- XMLPlan xmlPlan = (XMLPlan)TestXMLProcessor.helpTestProcess("SELECT * FROM xmltest.docJoin", expectedDoc, metadata, dataMgr); //$NON-NLS-1$
+ XMLPlan xmlPlan = (XMLPlan)TestXMLProcessor.helpTestProcess("SELECT * FROM xmltest.docJoin", metadata, dataMgr, null, TestOptimizer.getGenericFinder(false), expectedDoc); //$NON-NLS-1$
Map stats = XMLProgramUtil.getProgramStats(xmlPlan.getOriginalProgram());
List list = (List)stats.get(ExecSqlInstruction.class);
More information about the teiid-commits
mailing list