[teiid-commits] teiid SVN: r2983 - trunk/engine/src/test/java/org/teiid/query/optimizer.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Wed Mar 9 10:16:41 EST 2011


Author: shawkins
Date: 2011-03-09 10:16:40 -0500 (Wed, 09 Mar 2011)
New Revision: 2983

Modified:
   trunk/engine/src/test/java/org/teiid/query/optimizer/TestOptimizer.java
   trunk/engine/src/test/java/org/teiid/query/optimizer/TestSubqueryPushdown.java
Log:
TEIID-1503 adding a more direct rewrite test

Modified: trunk/engine/src/test/java/org/teiid/query/optimizer/TestOptimizer.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/optimizer/TestOptimizer.java	2011-03-09 14:21:54 UTC (rev 2982)
+++ trunk/engine/src/test/java/org/teiid/query/optimizer/TestOptimizer.java	2011-03-09 15:16:40 UTC (rev 2983)
@@ -84,7 +84,6 @@
 import org.teiid.query.unittest.FakeMetadataFactory;
 import org.teiid.query.unittest.FakeMetadataObject;
 import org.teiid.query.unittest.FakeMetadataStore;
-import org.teiid.query.unittest.RealMetadataFactory;
 import org.teiid.query.util.CommandContext;
 import org.teiid.query.validator.Validator;
 import org.teiid.query.validator.ValidatorReport;
@@ -6755,17 +6754,6 @@
 			null, null, false); //$NON-NLS-1$
     }
     
-    /**
-     * Test to ensure that we don't create an invalid semijoin query when attempting to convert the subquery to a semijoin
-     */
-    @Test public void testInvalidGeneratedSemijoinQuery() throws Exception {
-    	String sql = "SELECT intkey FROM BQT1.SmallA AS A WHERE convert(shortvalue, integer) = (SELECT MAX(convert(shortvalue, integer)) FROM (select * from BQT1.SmallA) AS B WHERE b.intnum = a.intnum) ORDER BY intkey";
-    	BasicSourceCapabilities bsc = getTypicalCapabilities();
-    	bsc.setCapabilitySupport(Capability.QUERY_AGGREGATES_MAX, true);
-    	bsc.setCapabilitySupport(Capability.QUERY_GROUP_BY, true);
-    	TestOptimizer.helpPlan(sql, RealMetadataFactory.exampleBQTCached(), new String[] {"SELECT g_0.shortvalue, g_0.intnum, g_0.intkey FROM BQT1.SmallA AS g_0"}, new DefaultCapabilitiesFinder(bsc), ComparisonMode.EXACT_COMMAND_STRING);
-    }
-
 	public static final boolean DEBUG = false;
 
 }

Modified: trunk/engine/src/test/java/org/teiid/query/optimizer/TestSubqueryPushdown.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/optimizer/TestSubqueryPushdown.java	2011-03-09 14:21:54 UTC (rev 2982)
+++ trunk/engine/src/test/java/org/teiid/query/optimizer/TestSubqueryPushdown.java	2011-03-09 15:16:40 UTC (rev 2983)
@@ -29,12 +29,14 @@
 import org.teiid.core.TeiidProcessingException;
 import org.teiid.query.optimizer.TestOptimizer.ComparisonMode;
 import org.teiid.query.optimizer.capabilities.BasicSourceCapabilities;
+import org.teiid.query.optimizer.capabilities.DefaultCapabilitiesFinder;
 import org.teiid.query.optimizer.capabilities.FakeCapabilitiesFinder;
 import org.teiid.query.optimizer.capabilities.SourceCapabilities.Capability;
 import org.teiid.query.processor.ProcessorPlan;
 import org.teiid.query.rewriter.TestQueryRewriter;
 import org.teiid.query.unittest.FakeMetadataFacade;
 import org.teiid.query.unittest.FakeMetadataFactory;
+import org.teiid.query.unittest.RealMetadataFactory;
 import org.teiid.translator.SourceSystemFunctions;
 
 @SuppressWarnings("nls")
@@ -833,5 +835,19 @@
             0       // UnionAll
         }); 
     } 
- 
+    
+    /**
+     * Test to ensure that we don't create an invalid semijoin query when attempting to convert the subquery to a semijoin
+     */
+    @Test public void testInvalidGeneratedSemijoinQuery() throws Exception {
+    	String sql = "SELECT intkey FROM BQT1.SmallA AS A WHERE convert(shortvalue, integer) = (SELECT MAX(convert(shortvalue, integer)) FROM (select * from BQT1.SmallA) AS B WHERE b.intnum = a.intnum) ORDER BY intkey";
+    	BasicSourceCapabilities bsc = getTypicalCapabilities();
+    	bsc.setCapabilitySupport(Capability.QUERY_AGGREGATES_MAX, true);
+    	bsc.setCapabilitySupport(Capability.QUERY_GROUP_BY, true);
+    	TestOptimizer.helpPlan(sql, RealMetadataFactory.exampleBQTCached(), new String[] {"SELECT g_0.shortvalue, g_0.intnum, g_0.intkey FROM BQT1.SmallA AS g_0"}, new DefaultCapabilitiesFinder(bsc), ComparisonMode.EXACT_COMMAND_STRING);
+    }
+
+    @Test public void testInvalidGeneratedSemijoinQuery1() throws Exception {
+    	TestQueryRewriter.helpTestRewriteCommand("Select e1 from pm3.g1 where pm3.g1.e2 = (Select max(e2) from pm2.g2 where e1 = pm3.g1.e1)", "SELECT e1 FROM pm3.g1, (SELECT MAX(e2) AS MAX, e1 FROM pm2.g2 GROUP BY e1) AS X__1 WHERE (pm3.g1.e1 = X__1.e1) AND (pm3.g1.e2 = X__1.MAX)", FakeMetadataFactory.example4());
+    }
 }



More information about the teiid-commits mailing list