[ 
https://issues.apache.org/jira/browse/DERBY-3888?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Knut Anders Hatlen updated DERBY-3888:
--------------------------------------
    Attachment: d3888-1a.diff

Thanks, Mamta. It looks like the patch for DERBY-6414 has been checked in, and 
it indeed helps with this issue.

The attached patch [^d3888-1a.diff] is a refreshed version of 
[^reenable-v3.diff], in which the conflicts with DERBY-6542 have been resolved.

DERBY-6542 removed the code that generated identity values for databases at 
version 10.10 and earlier. The patch instead uses the code added by DERBY-6414 
to generate the identity values. Now ALTER TABLE will generate an UPDATE 
statement that looks like {{UPDATE <table> SET <col> = DEFAULT}} to populate 
the new column.

I don't want to revive the code that generates identity values for older 
database versions (it's not worth the maintenance cost to have two code paths 
for generating identity values), so adding an identity will only work if the 
database format is 10.11 or higher. If it's lower, you'll get an error such as 
this:

{noformat}
ij> alter table t1 add column id int generated always as identity;
ERROR XCL47: Use of 'ADD IDENTITY COLUMN' requires database to be upgraded from 
version 10.10 to version 10.11 or later.
{noformat}

All the regression tests passed with the patch. The patch is ready for review.

> ALTER TABLE ... ADD COLUMN cannot add identity columns
> ------------------------------------------------------
>
>                 Key: DERBY-3888
>                 URL: https://issues.apache.org/jira/browse/DERBY-3888
>             Project: Derby
>          Issue Type: Improvement
>          Components: SQL
>    Affects Versions: 10.4.2.0
>            Reporter: Knut Anders Hatlen
>            Priority: Minor
>              Labels: derby_triage10_10
>         Attachments: d3888-1a.diff, reenable-v2.diff, reenable-v3.diff, 
> reenable.diff
>
>
> ALTER TABLE .. ADD COLUMN cannot be used to add an identity column. There is 
> code to handle identity columns, but it is disabled in the parser. See this 
> thread on derby-user:
> http://mail-archives.apache.org/mod_mbox/db-derby-user/200708.mbox/%[email protected]%3E
> The code was disabled for DB2 compatibility. Since DB2 compatibility is not a 
> goal for Derby, we should see if we could re-enable it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to