You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by rh...@apache.org on 2014/04/18 14:22:53 UTC

svn commit: r1588455 - in /db/derby/code/trunk/java: engine/org/apache/derby/impl/sql/compile/ModifyColumnNode.java engine/org/apache/derby/loc/messages.xml testing/org/apache/derbyTesting/functionTests/tests/lang/AutoIncrementTest.java

Author: rhillegas
Date: Fri Apr 18 12:22:53 2014
New Revision: 1588455

URL: http://svn.apache.org/r1588455
Log:
DERBY-6545: Prevent ALTER TABLE from adding a default to an identity column; commit derby-6545-01-aa-forbidDefaultOnIdentityColumn.diff.

Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ModifyColumnNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/AutoIncrementTest.java

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ModifyColumnNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ModifyColumnNode.java?rev=1588455&r1=1588454&r2=1588455&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ModifyColumnNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ModifyColumnNode.java Fri Apr 18 12:22:53 2014
@@ -372,7 +372,7 @@ class ModifyColumnNode extends ColumnDef
         { defaultInfo = (DefaultInfoImpl)cd.getDefaultInfo(); }
         else
         {
-            if ( cd.hasGenerationClause() )
+            if ( cd.hasGenerationClause() || cd.isAutoincrement() )
             {
 				throw StandardException.newException( SQLState.LANG_GEN_COL_DEFAULT, cd.getColumnName() );
             }

Modified: db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml?rev=1588455&r1=1588454&r2=1588455&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml Fri Apr 18 12:22:53 2014
@@ -2213,7 +2213,7 @@ Guide.
 
             <msg>
                 <name>42XA7</name>
-                <text>'{0}' is a generated column. You cannot change its default value.</text>
+                <text>'{0}' is a generated or identity column. You cannot change its default value.</text>
                 <arg>columnName</arg>
             </msg>
 

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/AutoIncrementTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/AutoIncrementTest.java?rev=1588455&r1=1588454&r2=1588455&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/AutoIncrementTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/AutoIncrementTest.java Fri Apr 18 12:22:53 2014
@@ -137,8 +137,6 @@ public class AutoIncrementTest extends B
 		st.execute("create table D1644_B (d1644_Bc1 int generated by default as identity)");
 		st.execute("create table d4006 (x varchar(5) default 'abc')");
 		st.execute("create table d4006_a (z int generated always as identity)");
-		st.execute("alter table d4006_a alter column z default 99");
-		st.execute("alter table d4006_a alter column z default null");
 		st.execute("create table d4419_t1(x int)");
 		st.execute("insert into d4419_t1 values 1,2");
 		st.execute("create table d4419_t2(x int)");
@@ -1157,6 +1155,8 @@ public class AutoIncrementTest extends B
 		assertStatementError("42XA7",s,"alter table d4006 alter column y default 42");
 		assertStatementError("42XA7",s,"alter table d4006 alter column y default null");
 
+		assertStatementError( "42XA7", s, "alter table d4006_a alter column z default 99" );
+		assertStatementError( "42XA7", s, "alter table d4006_a alter column z default null" );
 	}
 	
 	public static Test suite() {