[teiid-commits] teiid SVN: r4525 - in branches/7.7.x/connectors/translator-jdbc/src: test/java/org/teiid/translator/jdbc/oracle and 1 other directory.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Wed Oct 31 17:31:10 EDT 2012


Author: jolee
Date: 2012-10-31 17:31:09 -0400 (Wed, 31 Oct 2012)
New Revision: 4525

Modified:
   branches/7.7.x/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/SQLConversionVisitor.java
   branches/7.7.x/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleTranslator.java
Log:
TEIID-669: Support "pass though" SQL commands to sources - fix

Modified: branches/7.7.x/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/SQLConversionVisitor.java
===================================================================
--- branches/7.7.x/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/SQLConversionVisitor.java	2012-10-31 21:06:10 UTC (rev 4524)
+++ branches/7.7.x/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/SQLConversionVisitor.java	2012-10-31 21:31:09 UTC (rev 4525)
@@ -414,6 +414,9 @@
 		if (obj.getMetadataObject() != null) {
 			String nativeQuery = obj.getMetadataObject().getProperty(TEIID_NATIVE_QUERY, false);
 	    	if (nativeQuery != null) {
+	    		if (obj.getCorrelationName() == null) {
+	    			throw new IllegalArgumentException("alias needed. When native query is being used, then alias name must be defined for table in the query.");
+	    		}
 	    		buffer.append(Tokens.LPAREN).append(nativeQuery).append(Tokens.RPAREN);
 	    		if (obj.getCorrelationName() == null) {
 	                buffer.append(Tokens.SPACE);
@@ -421,6 +424,7 @@
 	                    buffer.append(AS).append(Tokens.SPACE);
 	                }
 	    		}
+	    		return;
 	    	}
 		}
 		super.appendBaseName(obj);

Modified: branches/7.7.x/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleTranslator.java
===================================================================
--- branches/7.7.x/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleTranslator.java	2012-10-31 21:06:10 UTC (rev 4524)
+++ branches/7.7.x/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleTranslator.java	2012-10-31 21:31:09 UTC (rev 4525)
@@ -896,7 +896,7 @@
 		Mockito.verify(cs, Mockito.times(1)).getObject(1);
 	}
 	
-	@Test public void testNativeQuery() throws Exception {
+	@Test (expected=IllegalArgumentException.class)public void testNativeQueryWithNoCorrelationName() throws Exception {
 		String input = "SELECT (DoubleNum * 1.0) FROM x"; //$NON-NLS-1$
         String output = "SELECT (x.DoubleNum * 1.0) FROM (select c from d) x"; //$NON-NLS-1$
 
@@ -905,6 +905,14 @@
         helpTestVisitor(metadata, input, EMPTY_CONTEXT, null, output);
 	}
 	
+	@Test public void testNativeQuery() throws Exception {
+		String input = "SELECT (DoubleNum * 1.0) FROM x as y"; //$NON-NLS-1$
+		String output = "SELECT (y.DoubleNum * 1.0) FROM (select c from d) y"; //$NON-NLS-1$
+		
+		QueryMetadataInterface metadata = getOracleSpecificMetadata();
+        helpTestVisitor(metadata, input, EMPTY_CONTEXT, null, output);
+	}
+	
 	@Test public void testNativeQueryProc() throws Exception {
 		String input = "call proc(2)"; //$NON-NLS-1$
         String output = "select x from y where z = ?"; //$NON-NLS-1$



More information about the teiid-commits mailing list