From 7cd703ce8e528da2724fb2c7d40bfde1778260d6 Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Thu, 26 Apr 2007 01:05:25 +0000 Subject: [PATCH] * [ 1707611 ] Column synchronization for mandatory columns doesn't work --- .../compiere/dbPort/Convert_PostgreSQL.java | 28 +++++++++++++------ .../dbPort/Convert_PostgreSQLTest.java | 6 ++++ 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/dbPort/src/org/compiere/dbPort/Convert_PostgreSQL.java b/dbPort/src/org/compiere/dbPort/Convert_PostgreSQL.java index 59c7e29418..07b44ee8cd 100644 --- a/dbPort/src/org/compiere/dbPort/Convert_PostgreSQL.java +++ b/dbPort/src/org/compiere/dbPort/Convert_PostgreSQL.java @@ -1009,10 +1009,10 @@ public class Convert_PostgreSQL extends Convert_SQL92 { // Check if default value is already quoted, no need to double quote if(defaultvalue.startsWith("'") && defaultvalue.endsWith("'")) { - DDL += sqlStatement.substring(0, begin_col - - action.length()) - + " ALTER COLUMN " - + column + DDL += sqlStatement.substring(0, begin_col + - action.length()) + + " ALTER COLUMN " + + column + " SET DEFAULT " + defaultvalue + "; "; } @@ -1022,16 +1022,26 @@ public class Convert_PostgreSQL extends Convert_SQL92 { - action.length()) + " ALTER COLUMN " + column - + " SET DEFAULT '" - + defaultvalue + "'; "; + + " SET DEFAULT '" + + defaultvalue + "'; "; } } - if (rest != null && rest.indexOf(" NOT NULL ") == 0) - DDL += sqlStatement.substring(0, begin_col) - + " ALTER COLUMN " + column + " SET " + rest + if (rest != null && rest.toUpperCase().indexOf("NOT NULL") >= 0) + DDL += sqlStatement.substring(0, begin_col - action.length()) + + " ALTER COLUMN " + column + " SET " + rest.trim() + ";"; // return DDL; } + else if ( rest.toUpperCase().indexOf("NOT NULL") >= 0 ) { + DDL += sqlStatement.substring(0, begin_col - action.length()) + + " ALTER COLUMN " + column + " SET " + rest.trim() + + ";"; + } + else if ( rest.toUpperCase().indexOf("NULL") >= 0) { + DDL += sqlStatement.substring(0, begin_col - action.length()) + + " ALTER COLUMN " + column + " SET " + rest.trim() + + ";"; + } // System.out.println("DDL" + DDL); } diff --git a/dbPort/src/org/compiere/dbPort/Convert_PostgreSQLTest.java b/dbPort/src/org/compiere/dbPort/Convert_PostgreSQLTest.java index de2518d483..ce84b0421b 100644 --- a/dbPort/src/org/compiere/dbPort/Convert_PostgreSQLTest.java +++ b/dbPort/src/org/compiere/dbPort/Convert_PostgreSQLTest.java @@ -28,6 +28,12 @@ public final class Convert_PostgreSQLTest { String sqe; String[] r; + //[ 1707611 ] Column synchronization for mandatory columns doesn't work + sql = "ALTER TABLE Test MODIFY T_Integer NUMBER(10) NOT NULL"; + sqe = "ALTER TABLE Test ALTER COLUMN T_Integer TYPE NUMERIC(10); ALTER TABLE Test ALTER COLUMN T_Integer SET NOT NULL;"; + r = convert.convert(sql); + verify(sql, r, sqe); + // Convert.recoverQuotedStrings() error on strings with "<-->" - teo_sarca [ 1705768 ] // http://sourceforge.net/tracker/index.php?func=detail&aid=1705768&group_id=176962&atid=879332 sql = "SELECT 'Partner <--> Organization', 's2\\$', 's3' FROM DUAL";