Author: tomdz Date: Sat Oct 29 10:38:00 2005 New Revision: 329453 URL: http://svn.apache.org/viewcvs?rev=329453&view=rev Log: Fix for DDLUTILS-29 as suggested by Alexandre Borgoltz
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/JdbcModelReader.java Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/JdbcModelReader.java URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/JdbcModelReader.java?rev=329453&r1=329452&r2=329453&view=diff ============================================================================== --- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/JdbcModelReader.java (original) +++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/JdbcModelReader.java Sat Oct 29 10:38:00 2005 @@ -274,6 +274,22 @@ { Column col = new Column(); + // As suggested by Alexandre Borgoltz, we're reading the COLUMN_DEF first because Oracle + // has problems otherwise (it seemingly requires a LONG column to be the first to be read) + // See also DDLUTILS-29 + String columnDefaultValue = getValueAsString(columnData, "COLUMN_DEF", availableColumns, null); + + if (columnDefaultValue != null) + { + // Sometimes the default comes back with parenthesis around it (jTDS/mssql) + Matcher m = _defaultPattern.matcher(columnDefaultValue); + + if (m.matches()) + { + columnDefaultValue = m.group(1); + } + col.setDefaultValue(columnDefaultValue); + } col.setName(getValueAsString(columnData, "COLUMN_NAME", availableColumns, "UNKNOWN")); col.setTypeCode(getValueAsInt(columnData, "DATA_TYPE", availableColumns, java.sql.Types.OTHER)); col.setPrecisionRadix(getValueAsInt(columnData, "NUM_PREC_RADIX", availableColumns, 10)); @@ -291,19 +307,6 @@ col.setPrimaryKey(false); } - // sometimes the default comes back with parenthesis around it (jTDS/mssql) - String columnDefaultValue = getValueAsString(columnData, "COLUMN_DEF", availableColumns, null); - - if (columnDefaultValue != null) - { - Matcher m = _defaultPattern.matcher(columnDefaultValue); - - if (m.matches()) - { - columnDefaultValue = m.group(1); - } - col.setDefaultValue(columnDefaultValue); - } columns.add(col); } return columns;