diff --git a/org.adempiere.base/src/org/compiere/dbPort/Convert.java b/org.adempiere.base/src/org/compiere/dbPort/Convert.java index a5188ff911..9564056301 100644 --- a/org.adempiere.base/src/org/compiere/dbPort/Convert.java +++ b/org.adempiere.base/src/org/compiere/dbPort/Convert.java @@ -310,7 +310,9 @@ public abstract class Convert i++; } m.appendTail(retValue); - return retValue.toString(); + return retValue.toString() + .replace(quoteMarker, "''") // Put back quotes, if any + ; } /** diff --git a/org.compiere.db.postgresql.provider/src/org/compiere/dbPort/Convert_PostgreSQLTest.java b/org.compiere.db.postgresql.provider/src/org/compiere/dbPort/Convert_PostgreSQLTest.java index fe5d64059b..42722a7806 100644 --- a/org.compiere.db.postgresql.provider/src/org/compiere/dbPort/Convert_PostgreSQLTest.java +++ b/org.compiere.db.postgresql.provider/src/org/compiere/dbPort/Convert_PostgreSQLTest.java @@ -483,5 +483,11 @@ public final class Convert_PostgreSQLTest extends TestCase{ sqe = "INSERT INTO MyTable (a, b, c, d, xml) VALUES ('val1', 'val2', E'this ''is'' a string with ''quotes'' and backslashes ''\\\\''', 'val4')"; r = convert.convert(sql); assertEquals(sqe, r[0]); + + sql = "SELECT AD_Tab.AD_Tab_ID,NULL,COALESCE(AD_Tab.Name,'-1') ||'_'|| COALESCE((SELECT COALESCE(AD_Window.Name,'') FROM AD_Window WHERE AD_Tab.AD_Window_ID=AD_Window.AD_Window_ID),'-1'),AD_Tab.IsActive" + +" FROM AD_Tab WHERE AD_Tab.AD_Tab_ID=?"; + sqe = sql; + r = convert.convert(sql); + assertEquals(sqe, r[0]); } } \ No newline at end of file