[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