You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ddlutils-dev@db.apache.org by to...@apache.org on 2008/11/03 23:48:36 UTC

svn commit: r710206 - in /db/ddlutils/trunk/src: main/java/org/apache/ddlutils/platform/postgresql/PostgreSqlBuilder.java test/java/org/apache/ddlutils/io/TestConstraints.java test/java/org/apache/ddlutils/platform/TestPostgresqlPlatform.java

Author: tomdz
Date: Mon Nov  3 14:48:36 2008
New Revision: 710206

URL: http://svn.apache.org/viewvc?rev=710206&view=rev
Log:
Fix for DDLUTILS-199: Postgress AutoIncrement fails

Modified:
    db/ddlutils/trunk/src/main/java/org/apache/ddlutils/platform/postgresql/PostgreSqlBuilder.java
    db/ddlutils/trunk/src/test/java/org/apache/ddlutils/io/TestConstraints.java
    db/ddlutils/trunk/src/test/java/org/apache/ddlutils/platform/TestPostgresqlPlatform.java

Modified: db/ddlutils/trunk/src/main/java/org/apache/ddlutils/platform/postgresql/PostgreSqlBuilder.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/main/java/org/apache/ddlutils/platform/postgresql/PostgreSqlBuilder.java?rev=710206&r1=710205&r2=710206&view=diff
==============================================================================
--- db/ddlutils/trunk/src/main/java/org/apache/ddlutils/platform/postgresql/PostgreSqlBuilder.java (original)
+++ db/ddlutils/trunk/src/main/java/org/apache/ddlutils/platform/postgresql/PostgreSqlBuilder.java Mon Nov  3 14:48:36 2008
@@ -133,7 +133,13 @@
     protected void writeColumnAutoIncrementStmt(Table table, Column column) throws IOException
     {
         print("UNIQUE DEFAULT nextval('");
+        if (getPlatform().isDelimitedIdentifierModeOn()) {
+            print("\"");
+        }
         print(getConstraintName(null, table, column.getName(), "seq"));
+        if (getPlatform().isDelimitedIdentifierModeOn()) {
+            print("\"");
+        }
         print("')");
     }
 
@@ -160,7 +166,13 @@
                     result.append(", ");
                 }
                 result.append("currval('");
+                if (getPlatform().isDelimitedIdentifierModeOn()) {
+                    result.append("\"");
+                }
                 result.append(getConstraintName(null, table, columns[idx].getName(), "seq"));
+                if (getPlatform().isDelimitedIdentifierModeOn()) {
+                    result.append("\"");
+                }
                 result.append("') AS ");
                 result.append(getDelimitedIdentifier(columns[idx].getName()));
             }

Modified: db/ddlutils/trunk/src/test/java/org/apache/ddlutils/io/TestConstraints.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/java/org/apache/ddlutils/io/TestConstraints.java?rev=710206&r1=710205&r2=710206&view=diff
==============================================================================
--- db/ddlutils/trunk/src/test/java/org/apache/ddlutils/io/TestConstraints.java (original)
+++ db/ddlutils/trunk/src/test/java/org/apache/ddlutils/io/TestConstraints.java Mon Nov  3 14:48:36 2008
@@ -284,6 +284,37 @@
     }
 
     /**
+     * Test for DDLUTILS-199. 
+     */
+    public void testAutoIncrementPrimaryKeyWithUnderscoreInName()
+    {
+        // we need special catering for Sybase which does not support identity for INTEGER columns
+        final String modelXml; 
+
+        if (SybasePlatform.DATABASENAME.equals(getPlatform().getName()))
+        {
+            modelXml = "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+                       "<database xmlns='" + DatabaseIO.DDLUTILS_NAMESPACE + "' name='roundtriptest'>\n"+
+                       "  <table name='roundtrip'>\n"+
+                       "    <column name='PK_Column' type='NUMERIC' size='12,0' primaryKey='true' required='true' autoIncrement='true'/>\n"+
+                       "  </table>\n"+
+                       "</database>";
+        }
+        else
+        {
+            modelXml = "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+                       "<database xmlns='" + DatabaseIO.DDLUTILS_NAMESPACE + "' name='roundtriptest'>\n"+
+                       "  <table name='roundtrip'>\n"+
+                       "    <column name='PK_Column' type='INTEGER' primaryKey='true' required='true' autoIncrement='true'/>\n"+
+                       "  </table>\n"+
+                       "</database>";
+        }
+
+        performConstraintsTest(modelXml,
+                               getPlatformInfo().getIdentityStatusReadingSupported());
+    }
+
+    /**
      * Tests a simple index. 
      */
     public void testIndex()

Modified: db/ddlutils/trunk/src/test/java/org/apache/ddlutils/platform/TestPostgresqlPlatform.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/java/org/apache/ddlutils/platform/TestPostgresqlPlatform.java?rev=710206&r1=710205&r2=710206&view=diff
==============================================================================
--- db/ddlutils/trunk/src/test/java/org/apache/ddlutils/platform/TestPostgresqlPlatform.java (original)
+++ db/ddlutils/trunk/src/test/java/org/apache/ddlutils/platform/TestPostgresqlPlatform.java Mon Nov  3 14:48:36 2008
@@ -96,11 +96,11 @@
             "CREATE TABLE \"constraints\"\n"+
             "(\n"+
             "    \"COL_PK\"               VARCHAR(32),\n"+
-            "    \"COL_PK_AUTO_INCR\"     INTEGER UNIQUE DEFAULT nextval('constraints_COL_K_AUTO_INCR_seq'),\n"+
+            "    \"COL_PK_AUTO_INCR\"     INTEGER UNIQUE DEFAULT nextval('\"constraints_COL_K_AUTO_INCR_seq\"'),\n"+
             "    \"COL_NOT_NULL\"         BYTEA NOT NULL,\n"+
             "    \"COL_NOT_NULL_DEFAULT\" DOUBLE PRECISION DEFAULT -2.0 NOT NULL,\n"+
             "    \"COL_DEFAULT\"          CHAR(4) DEFAULT 'test',\n"+
-            "    \"COL_AUTO_INCR\"        BIGINT UNIQUE DEFAULT nextval('constraints_COL_AUTO_INCR_seq'),\n"+
+            "    \"COL_AUTO_INCR\"        BIGINT UNIQUE DEFAULT nextval('\"constraints_COL_AUTO_INCR_seq\"'),\n"+
             "    PRIMARY KEY (\"COL_PK\", \"COL_PK_AUTO_INCR\")\n"+
             ");\n",
             getConstraintTestDatabaseCreationSql());