Author: shawkins
Date: 2009-07-20 13:45:23 -0400 (Mon, 20 Jul 2009)
New Revision: 1154
Modified:
trunk/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/sybase/TestSybaseSQLConversionVisitor.java
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/language/LanguageBridgeFactory.java
trunk/test-integration/src/test/java/org/teiid/connector/visitor/util/TestSQLStringVisitor.java
Log:
TEIID-514 update of language bridge factory to not set the name of unrelated order by
items, so that the element itself will be used by the connector.
Modified:
trunk/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/sybase/TestSybaseSQLConversionVisitor.java
===================================================================
---
trunk/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/sybase/TestSybaseSQLConversionVisitor.java 2009-07-20
16:00:33 UTC (rev 1153)
+++
trunk/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/sybase/TestSybaseSQLConversionVisitor.java 2009-07-20
17:45:23 UTC (rev 1154)
@@ -203,8 +203,8 @@
@Test
public void testDefect12120() {
helpTestVisitor(getBQTVDB(),
- "SELECT BQT1.SmallA.IntKey FROM BQT1.SmallA WHERE
BQT1.SmallA.BooleanValue IN ({b'false'}, {b'true'}) ORDER BY IntKey",
//$NON-NLS-1$
- "SELECT SmallA.IntKey FROM SmallA WHERE SmallA.BooleanValue IN (0, 1)
ORDER BY IntKey"); //$NON-NLS-1$
+ "SELECT BQT1.SmallA.IntKey FROM BQT1.SmallA WHERE
BQT1.SmallA.BooleanValue IN ({b'false'}, {b'true'})", //$NON-NLS-1$
+ "SELECT SmallA.IntKey FROM SmallA WHERE SmallA.BooleanValue IN (0,
1)"); //$NON-NLS-1$
}
Modified:
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/language/LanguageBridgeFactory.java
===================================================================
---
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/language/LanguageBridgeFactory.java 2009-07-20
16:00:33 UTC (rev 1153)
+++
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/language/LanguageBridgeFactory.java 2009-07-20
17:45:23 UTC (rev 1154)
@@ -450,7 +450,11 @@
OrderByItemImpl orderByItem = null;
if(symbol instanceof ElementSymbol){
IElement innerElement = translate((ElementSymbol)symbol);
- orderByItem = new OrderByItemImpl(symbol.getOutputName(), direction,
innerElement);
+ if (symbol.getOutputName() != null &&
symbol.getOutputName().indexOf(ElementSymbol.SEPARATOR) != -1) {
+ orderByItem = new OrderByItemImpl(null, direction, innerElement);
+ } else {
+ orderByItem = new OrderByItemImpl(symbol.getOutputName(), direction,
innerElement);
+ }
} else {
orderByItem = new OrderByItemImpl(symbol.getOutputName(), direction,
null);
}
Modified:
trunk/test-integration/src/test/java/org/teiid/connector/visitor/util/TestSQLStringVisitor.java
===================================================================
---
trunk/test-integration/src/test/java/org/teiid/connector/visitor/util/TestSQLStringVisitor.java 2009-07-20
16:00:33 UTC (rev 1153)
+++
trunk/test-integration/src/test/java/org/teiid/connector/visitor/util/TestSQLStringVisitor.java 2009-07-20
17:45:23 UTC (rev 1154)
@@ -457,4 +457,26 @@
insert.setValueSource(command);
assertEquals("INSERT INTO g1 (e1, e2, e3, e4) SELECT g2.e1, g2.e2, g2.e3, g2.e4
FROM g2", insert.toString()); //$NON-NLS-1$
}
+
+ @Test public void testUnrelatedOrderBy() throws Exception {
+ String sql = "select intkey from bqt1.smalla order by stringkey";
//$NON-NLS-1$
+
+ ICommand command =
FakeTranslationFactory.getInstance().getBQTTranslationUtility().parseCommand(sql, true,
true);
+ assertEquals("SELECT g_0.IntKey AS c_0 FROM SmallA AS g_0 ORDER BY
g_0.StringKey", command.toString()); //$NON-NLS-1$
+ }
+
+ @Test public void testOrderByDerivedColumn() throws Exception {
+ String sql = "select intkey as x from bqt1.smalla order by intkey";
//$NON-NLS-1$
+
+ ICommand command =
FakeTranslationFactory.getInstance().getBQTTranslationUtility().parseCommand(sql, true,
true);
+ assertEquals("SELECT g_0.IntKey AS c_0 FROM SmallA AS g_0 ORDER BY c_0",
command.toString()); //$NON-NLS-1$
+ }
+
+ @Test public void testOrderByAlias() throws Exception {
+ String sql = "select intkey as x from bqt1.smalla order by x";
//$NON-NLS-1$
+
+ ICommand command =
FakeTranslationFactory.getInstance().getBQTTranslationUtility().parseCommand(sql, true,
true);
+ assertEquals("SELECT g_0.IntKey AS c_0 FROM SmallA AS g_0 ORDER BY c_0",
command.toString()); //$NON-NLS-1$
+ }
+
}