From ddlutils-dev-return-1392-apmail-db-ddlutils-dev-archive=db.apache.org@db.apache.org Thu Mar 15 06:57:35 2007 Return-Path: Delivered-To: apmail-db-ddlutils-dev-archive@www.apache.org Received: (qmail 76729 invoked from network); 15 Mar 2007 06:57:34 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 15 Mar 2007 06:57:34 -0000 Received: (qmail 63844 invoked by uid 500); 15 Mar 2007 06:57:43 -0000 Delivered-To: apmail-db-ddlutils-dev-archive@db.apache.org Received: (qmail 63771 invoked by uid 500); 15 Mar 2007 06:57:43 -0000 Mailing-List: contact ddlutils-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ddlutils-dev@db.apache.org Delivered-To: mailing list ddlutils-dev@db.apache.org Received: (qmail 63760 invoked by uid 500); 15 Mar 2007 06:57:43 -0000 Delivered-To: apmail-db-ddlutils-commits@db.apache.org Received: (qmail 63757 invoked by uid 99); 15 Mar 2007 06:57:43 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Mar 2007 23:57:43 -0700 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Mar 2007 23:57:34 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id E58641A9838; Wed, 14 Mar 2007 23:57:13 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r518498 - in /db/ddlutils/trunk/src/java/org/apache/ddlutils/platform: SqlBuilder.java mysql/MySqlBuilder.java Date: Thu, 15 Mar 2007 06:57:13 -0000 To: ddlutils-commits@db.apache.org From: tomdz@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070315065713.E58641A9838@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: tomdz Date: Wed Mar 14 23:57:13 2007 New Revision: 518498 URL: http://svn.apache.org/viewvc?view=rev&rev=518498 Log: Final fix for DDLUTILS-159 Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/SqlBuilder.java db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mysql/MySqlBuilder.java Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/SqlBuilder.java URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/SqlBuilder.java?view=diff&rev=518498&r1=518497&r2=518498 ============================================================================== --- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/SqlBuilder.java (original) +++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/SqlBuilder.java Wed Mar 14 23:57:13 2007 @@ -911,7 +911,30 @@ Table sourceTable = currentModel.findTable(tableName, getPlatform().isDelimitedIdentifierModeOn()); Table targetTable = desiredModel.findTable(tableName, getPlatform().isDelimitedIdentifierModeOn()); - processTableStructureChanges(currentModel, desiredModel, sourceTable, targetTable, parameters, changes); + // we're enforcing a full rebuild in case of the addition of a required + // column without a default value that is not autoincrement + boolean requiresFullRebuild = false; + + for (Iterator changeIt = changes.iterator(); !requiresFullRebuild && changeIt.hasNext();) + { + TableChange change = (TableChange)changeIt.next(); + + if (change instanceof AddColumnChange) + { + AddColumnChange addColumnChange = (AddColumnChange)change; + + if (addColumnChange.getNewColumn().isRequired() && + (addColumnChange.getNewColumn().getDefaultValue() == null) && + !addColumnChange.getNewColumn().isAutoIncrement()) + { + requiresFullRebuild = true; + } + } + } + if (!requiresFullRebuild) + { + processTableStructureChanges(currentModel, desiredModel, sourceTable, targetTable, parameters, changes); + } if (!changes.isEmpty()) { Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mysql/MySqlBuilder.java URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mysql/MySqlBuilder.java?view=diff&rev=518498&r1=518497&r2=518498 ============================================================================== --- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mysql/MySqlBuilder.java (original) +++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mysql/MySqlBuilder.java Wed Mar 14 23:57:13 2007 @@ -183,17 +183,7 @@ if (change instanceof AddColumnChange) { - AddColumnChange addColumnChange = (AddColumnChange)change; - - if (addColumnChange.getNewColumn().isRequired() && - (addColumnChange.getNewColumn().getDefaultValue() == null) && - !addColumnChange.getNewColumn().isAutoIncrement()) - { - // we're enforcing a full rebuild in case of the addition of a required - // column without a default value that is not autoincrement - return; - } - addColumnChanges.add(change); + addColumnChanges.add((AddColumnChange)change); changeIt.remove(); } }