From 79737e7aad0092f80d4cdc0f4785b2cef75adffe Mon Sep 17 00:00:00 2001 From: shawkins Date: Fri, 15 Apr 2016 14:44:02 -0400 Subject: [PATCH] TEIID-4134 updating the rcte support version --- .../jdbc/oracle/OracleExecutionFactory.java | 15 ++++++++------- .../jdbc/oracle/TestOracleTranslator.java | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/oracle/OracleExecutionFactory.java b/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/oracle/OracleExecutionFactory.java index b6025ad74e..9030f27dda 100644 --- a/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/oracle/OracleExecutionFactory.java +++ b/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/oracle/OracleExecutionFactory.java @@ -69,7 +69,7 @@ public class OracleExecutionFactory extends JDBCExecutionFactory { public static final Version NINE_0 = Version.getVersion("9.0"); //$NON-NLS-1$ public static final Version NINE_2 = Version.getVersion("9.2"); //$NON-NLS-1$ - public static final Version ELEVEN_2 = Version.getVersion("11.2"); //$NON-NLS-1$ + public static final Version ELEVEN_2_0_4 = Version.getVersion("11.2.0.4"); //$NON-NLS-1$ private static final String TIME_FORMAT = "HH24:MI:SS"; //$NON-NLS-1$ private static final String DATE_FORMAT = "YYYY-MM-DD"; //$NON-NLS-1$ @@ -747,12 +747,13 @@ public void visit(WithItem obj) { if (obj.getColumns() != null) { List cols = obj.getColumns(); if(!obj.isRecusive()) { + //oracle 10 does not support recursion nor a column list obj.setColumns(null); - } - Select select = obj.getSubquery().getProjectedQuery(); - List selectClause = select.getDerivedColumns(); - for (int i = 0; i < cols.size(); i++) { - selectClause.get(i).setAlias(cols.get(i).getName()); + Select select = obj.getSubquery().getProjectedQuery(); + List selectClause = select.getDerivedColumns(); + for (int i = 0; i < cols.size(); i++) { + selectClause.get(i).setAlias(cols.get(i).getName()); + } } } super.visit(obj); @@ -983,7 +984,7 @@ public boolean supportsCommonTableExpressions() { @Override public boolean supportsRecursiveCommonTableExpressions() { - return getVersion().compareTo(ELEVEN_2) >= 0; + return getVersion().compareTo(ELEVEN_2_0_4) >= 0; } @Override diff --git a/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleTranslator.java b/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleTranslator.java index e9a24f39a2..06cf4a3a5e 100644 --- a/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleTranslator.java +++ b/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleTranslator.java @@ -1091,7 +1091,7 @@ public void helpTestVisitor(String vdb, String input, String expectedOutput) thr @Test public void testRecursiveCte() throws Exception { String input = "with a (intkey, lvl) as (select intkey, 0 as lvl from bqt1.smallb where intkey = 1 UNION ALL select n.intkey, rcte.lvl + 1 as lvl from bqt1.smallb n inner join a rcte on rcte.intkey = n.intkey + 1) select * from a"; //$NON-NLS-1$ - String output = "WITH a (intkey, lvl) AS (SELECT SmallB.IntKey AS intkey, 0 AS lvl FROM SmallB WHERE SmallB.IntKey = 1 UNION ALL SELECT n.IntKey, (rcte.lvl + 1) AS lvl FROM SmallB n INNER JOIN a rcte ON rcte.intkey = (n.IntKey + 1)) SELECT a.intkey, a.lvl FROM a"; //$NON-NLS-1$ + String output = "WITH a (intkey, lvl) AS (SELECT SmallB.IntKey, 0 AS lvl FROM SmallB WHERE SmallB.IntKey = 1 UNION ALL SELECT n.IntKey, (rcte.lvl + 1) AS lvl FROM SmallB n INNER JOIN a rcte ON rcte.intkey = (n.IntKey + 1)) SELECT a.intkey, a.lvl FROM a"; //$NON-NLS-1$ TranslationHelper.helpTestVisitor(TranslationHelper.BQT_VDB, null, input, output,