[teiid-commits] teiid SVN: r1960 - in trunk/connectors/connector-jdbc/src: test/java/org/teiid/connector/jdbc/postgresql and 1 other directory.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Fri Mar 12 12:17:24 EST 2010


Author: shawkins
Date: 2010-03-12 12:17:23 -0500 (Fri, 12 Mar 2010)
New Revision: 1960

Modified:
   trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/postgresql/LocateFunctionModifier.java
   trunk/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/postgresql/TestPostgreSQLTranslator.java
Log:
TEIID-988 refining the fix for the 3 argument locate

Modified: trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/postgresql/LocateFunctionModifier.java
===================================================================
--- trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/postgresql/LocateFunctionModifier.java	2010-03-12 16:44:26 UTC (rev 1959)
+++ trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/postgresql/LocateFunctionModifier.java	2010-03-12 17:17:23 UTC (rev 1960)
@@ -50,9 +50,7 @@
 			useSubStr = true;
 			if (params.get(2) instanceof Literal && ((Literal)params.get(2)).getValue() instanceof Integer) {
 				Integer value = (Integer)((Literal)params.get(2)).getValue();
-				if (value > 1) {
-					((Literal)params.get(2)).setValue(value - 1);
-				} else {
+				if (value <= 1) {
 					useSubStr = false;
 				}
 			}
@@ -63,7 +61,8 @@
 			parts.add(")"); //$NON-NLS-1$
 			parts.add(" + "); //$NON-NLS-1$
 			if (params.get(2) instanceof Literal && ((Literal)params.get(2)).getValue() instanceof Integer) {
-				parts.add(params.get(2));
+				Integer value = (Integer)((Literal)params.get(2)).getValue();
+				parts.add(value - 1);
 			} else {
 				parts.add(params.get(2));
 				parts.add(" - 1"); //$NON-NLS-1$

Modified: trunk/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/postgresql/TestPostgreSQLTranslator.java
===================================================================
--- trunk/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/postgresql/TestPostgreSQLTranslator.java	2010-03-12 16:44:26 UTC (rev 1959)
+++ trunk/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/postgresql/TestPostgreSQLTranslator.java	2010-03-12 17:17:23 UTC (rev 1960)
@@ -483,7 +483,16 @@
                 input, output, 
                 TRANSLATOR);
     }
+    
+    @Test public void testLocate5a() throws Exception {
+        String input = "SELECT locate(STRINGNUM, 'chimp', 2) FROM BQT1.SMALLA"; //$NON-NLS-1$
+        String output = "SELECT (position(SmallA.StringNum in substr('chimp', 2)) + 1) FROM SmallA";  //$NON-NLS-1$
 
+        TranslationHelper.helpTestVisitor(TranslationHelper.BQT_VDB,
+                input, output, 
+                TRANSLATOR);
+    }
+
     /**
      * Test the translator's ability to rewrite the LOCATE() function in a form 
      * suitable for the data source.



More information about the teiid-commits mailing list