Return-Path: Delivered-To: apmail-db-ddlutils-dev-archive@www.apache.org Received: (qmail 15507 invoked from network); 18 May 2006 14:20:55 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 18 May 2006 14:20:55 -0000 Received: (qmail 15708 invoked by uid 500); 18 May 2006 14:20:54 -0000 Delivered-To: apmail-db-ddlutils-dev-archive@db.apache.org Received: (qmail 15652 invoked by uid 500); 18 May 2006 14:20:54 -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 15641 invoked by uid 500); 18 May 2006 14:20:54 -0000 Delivered-To: apmail-db-ddlutils-commits@db.apache.org Received: (qmail 15638 invoked by uid 99); 18 May 2006 14:20:54 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 18 May 2006 07:20:54 -0700 X-ASF-Spam-Status: No, hits=0.6 required=10.0 tests=NO_REAL_NAME X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [140.211.166.113] (HELO eris.apache.org) (140.211.166.113) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 18 May 2006 07:20:52 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 6039B1A9837; Thu, 18 May 2006 07:20:32 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r407558 - in /db/ddlutils/trunk/src: java/org/apache/ddlutils/alteration/ModelComparator.java java/org/apache/ddlutils/platform/SqlBuilder.java test/org/apache/ddlutils/io/TestAlteration.java Date: Thu, 18 May 2006 14:20:31 -0000 To: ddlutils-commits@db.apache.org From: tomdz@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20060518142032.6039B1A9837@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: tomdz Date: Thu May 18 07:20:30 2006 New Revision: 407558 URL: http://svn.apache.org/viewvc?rev=407558&view=rev Log: Addec new change object for the change of the column order Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ModelComparator.java db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/SqlBuilder.java db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestAlteration.java Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ModelComparator.java URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ModelComparator.java?rev=407558&r1=407557&r2=407558&view=diff ============================================================================== --- db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ModelComparator.java (original) +++ db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ModelComparator.java Thu May 18 07:20:30 2006 @@ -298,6 +298,8 @@ } } + HashMap columnPosChanges = new HashMap(); + for (int columnIdx = 0; columnIdx < sourceTable.getColumnCount(); columnIdx++) { Column sourceColumn = sourceTable.getColumn(columnIdx); @@ -311,6 +313,19 @@ } changes.add(new RemoveColumnChange(sourceTable, sourceColumn)); } + else + { + int targetColumnIdx = targetTable.getColumnIndex(targetColumn); + + if (targetColumnIdx != columnIdx) + { + columnPosChanges.put(sourceColumn, new Integer(targetColumnIdx)); + } + } + } + if (!columnPosChanges.isEmpty()) + { + changes.add(new ColumnOrderChange(sourceTable, columnPosChanges)); } return changes; 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?rev=407558&r1=407557&r2=407558&view=diff ============================================================================== --- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/SqlBuilder.java (original) +++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/SqlBuilder.java Thu May 18 07:20:30 2006 @@ -48,6 +48,7 @@ import org.apache.ddlutils.alteration.ColumnAutoIncrementChange; import org.apache.ddlutils.alteration.ColumnDataTypeChange; import org.apache.ddlutils.alteration.ColumnDefaultValueChange; +import org.apache.ddlutils.alteration.ColumnOrderChange; import org.apache.ddlutils.alteration.ColumnRequiredChange; import org.apache.ddlutils.alteration.ColumnSizeChange; import org.apache.ddlutils.alteration.ModelChange; @@ -453,6 +454,7 @@ PrimaryKeyChange.class, RemoveColumnChange.class, AddColumnChange.class, + ColumnOrderChange.class, ColumnAutoIncrementChange.class, ColumnDefaultValueChange.class, ColumnRequiredChange.class, Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestAlteration.java URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestAlteration.java?rev=407558&r1=407557&r2=407558&view=diff ============================================================================== --- db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestAlteration.java (original) +++ db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestAlteration.java Thu May 18 07:20:30 2006 @@ -492,8 +492,8 @@ /** * Tests the addition of several columns at the end of the table. This test - * is known to fail on MaxDB where a DEFAULT specification is applied to existing - * rows even if they are not defined as NOT NULL (column 'avalue3' in the + * is known to fail on MaxDB and Oracle where a DEFAULT specification is applied to + * existing rows even if they are not defined as NOT NULL (column 'avalue3' in the * target schema). */ public void testAddColumnsAtTheEnd() @@ -617,7 +617,7 @@ " \n"+ " \n"+ " \n"+ - " \n"+ + " \n"+ " \n"+ " \n"+ "
\n"+ @@ -630,7 +630,7 @@ " \n"+ " \n"+ " \n"+ - " \n"+ + " \n"+ " \n"+ "";