[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