[ http://issues.apache.org/jira/browse/DERBY-1495?page=comments#action_12436243 ] Bryan Pendleton commented on DERBY-1495: ----------------------------------------
Thanks Kristian for investigating this problem. My hunch is that all the fun happens in AlterTableConstantAction.modifyColumnDefault. The ALTER TABLE statement doesn't provide all the information about the column's auto-increment behaviors so the modifyColumnDefault() method has to merge the new behaviors specified on the ALTER TABLE statement with the existing behaviors that the column already has. My guess is that the problem lies in this merging process; the modifyColumnDefault() method is not being careful enough to use the previous column behaviors in those cases where the ALTER TABLE statement has not provided new behaviors. Hope this helps. > Attempt to modify an identity column error after resetting identity column > -------------------------------------------------------------------------- > > Key: DERBY-1495 > URL: http://issues.apache.org/jira/browse/DERBY-1495 > Project: Derby > Issue Type: Bug > Components: SQL > Affects Versions: 10.2.1.0 > Environment: Java 1.5.0_06-b05 on Linux Ubuntu 5.10. Derby version > 10.2.0.3-412239 > Reporter: Lars Gråmark > Priority: Minor > > When an identity counter is altered using the ALTER TABLE statement below, it > seems as if the GENERATED BY DEFAULT behavior is lost. > The following statements will reproduce the error. > CREATE TABLE MYTABLE ( > id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1) > NOT NULL > ,col2 INT NOT NULL > ) > -- Insert using an explicit value on the ID-field > INSERT INTO MYTABLE(ID, COL2) VALUES(2, 2) > -- Reset the identity field > ALTER TABLE mytable ALTER COLUMN id RESTART WITH 3 > -- Try inserting another explicit value and the error below is thrown. > INSERT INTO MYTABLE(ID, COL2) VALUES(4, 4) > Error: SQL Exception: Attempt to modify an identity column 'ID'. , SQL State: > 42Z23, Error Code: 30000 > -- Although, this works fine > INSERT INTO MYTABLE(COL2) VALUES(4) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
