[teiid-commits] teiid SVN: r1898 - in trunk/engine/src: test/java/com/metamatrix/query/optimizer/relational and 1 other directory.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Wed Mar 3 22:27:35 EST 2010


Author: shawkins
Date: 2010-03-03 22:27:35 -0500 (Wed, 03 Mar 2010)
New Revision: 1898

Modified:
   trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/AliasGenerator.java
   trunk/engine/src/test/java/com/metamatrix/query/optimizer/relational/TestAliasGenerator.java
Log:
TEIID-1009 fix for the alias generator creating alias symbols in the order by clause

Modified: trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/AliasGenerator.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/AliasGenerator.java	2010-03-04 01:56:20 UTC (rev 1897)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/AliasGenerator.java	2010-03-04 03:27:35 UTC (rev 1898)
@@ -31,6 +31,7 @@
 import com.metamatrix.query.sql.LanguageVisitor;
 import com.metamatrix.query.sql.lang.ExistsCriteria;
 import com.metamatrix.query.sql.lang.OrderBy;
+import com.metamatrix.query.sql.lang.OrderByItem;
 import com.metamatrix.query.sql.lang.Query;
 import com.metamatrix.query.sql.lang.Select;
 import com.metamatrix.query.sql.lang.SetQuery;
@@ -328,7 +329,12 @@
     public void visit(OrderBy obj) {
     	//add/correct aliases if necessary
         for (int i = 0; i < obj.getVariableCount(); i++) {
-            SingleElementSymbol element = obj.getVariable(i);
+            OrderByItem item = obj.getOrderByItems().get(i);
+            SingleElementSymbol element = item.getSymbol();
+            if (item.isUnrelated()) {
+            	visitNode(element);
+            	continue;
+            }
             String name = visitor.namingContext.getElementName(element, false);
             if (name != null) {
 	            boolean needsAlias = true;

Modified: trunk/engine/src/test/java/com/metamatrix/query/optimizer/relational/TestAliasGenerator.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/optimizer/relational/TestAliasGenerator.java	2010-03-04 01:56:20 UTC (rev 1897)
+++ trunk/engine/src/test/java/com/metamatrix/query/optimizer/relational/TestAliasGenerator.java	2010-03-04 03:27:35 UTC (rev 1898)
@@ -142,4 +142,10 @@
         helpTest(sql, expected, true, FakeMetadataFactory.exampleBQTCached());
     }
     
+    @Test public void testUnrelatedOrderBy1() throws Exception {
+    	String sql = "SELECT b.IntKey FROM (select intkey, stringkey from BQT1.SmallA) a, (select intkey, stringkey from BQT1.SmallA) b ORDER BY a.StringKey"; //$NON-NLS-1$
+        String expected = "SELECT v_1.c_0 FROM (SELECT g_0.intkey AS c_0, g_0.stringkey AS c_1 FROM BQT1.SmallA AS g_0) AS v_0, (SELECT g_1.intkey AS c_0, g_1.stringkey AS c_1 FROM BQT1.SmallA AS g_1) AS v_1 ORDER BY v_0.c_1"; //$NON-NLS-1$
+        helpTest(sql, expected, true, FakeMetadataFactory.exampleBQTCached());
+    }
+    
 }



More information about the teiid-commits mailing list