[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