diff --git a/base/src/org/compiere/dbPort/Convert_PostgreSQL.java b/base/src/org/compiere/dbPort/Convert_PostgreSQL.java index a0faa3f440..ea63abf8c2 100644 --- a/base/src/org/compiere/dbPort/Convert_PostgreSQL.java +++ b/base/src/org/compiere/dbPort/Convert_PostgreSQL.java @@ -217,7 +217,7 @@ public class Convert_PostgreSQL extends Convert_SQL92 { final String PATTERN_String = "\'([^']|(''))*\'"; final String PATTERN_DataType = "([\\w]+)(\\(\\d+\\))?"; final String pattern = - "CAST[\\s]*\\([\\s]*" // CAST( + "\\bCAST\\b[\\s]*\\([\\s]*" // CAST( +"(("+PATTERN_String+")|([^\\s]+))" // arg1 1(2,3) +"[\\s]*AS[\\s]*" // AS +"("+PATTERN_DataType+")" // arg2 (datatype) 4 diff --git a/base/src/org/compiere/dbPort/Convert_PostgreSQLTest.java b/base/src/org/compiere/dbPort/Convert_PostgreSQLTest.java index 16da23ae34..7736710416 100644 --- a/base/src/org/compiere/dbPort/Convert_PostgreSQLTest.java +++ b/base/src/org/compiere/dbPort/Convert_PostgreSQLTest.java @@ -462,4 +462,14 @@ public final class Convert_PostgreSQLTest extends TestCase{ String[] r = convert.convert(sql.toString()); assertEquals(sqle.toString(), r[0]); } + + /** + * Test BF [ 2521586 ] Postgres conversion error + */ + public void test2521586() { + sql = "INSERT INTO M_Forecast (M_Forecast_ID) VALUES (1000000)"; + sqe = "INSERT INTO M_Forecast (M_Forecast_ID) VALUES (1000000)"; + r = convert.convert(sql); + assertEquals(sqe, r[0]); + } } \ No newline at end of file