[
https://issues.apache.org/jira/browse/DERBY-6882?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rick Hillegas updated DERBY-6882:
---------------------------------
Attachment: derby-6882-01-aa-initialCode.diff
Attaching derby-6882-01-aa-initialCode.diff. This patch adds the new syntax.
This patch is not ready for commit. Tests need to be written and regression
tests need to be run. I have only bothered to implement this feature for the
new-style identity columns which were introduced in Derby 10.10. That is, the
ones which are backed by sequence generators.
With this patch, the following script runs correctly:
{noformat}
connect 'jdbc:derby:memory:db;create=true';
create table t
(
a int generated always as identity,
b int
);
create table s
(
a int generated by default as identity,
b int
);
insert into t(b) values (100);
insert into s(b) values (100);
-- fails
insert into t(a, b) values (-1, -100);
-- succeeds
insert into s(a, b) values (-1, -100);
alter table t alter column a set generated by default;
alter table s alter column a set generated always;
-- succeeds
insert into t(a, b) values (-2, -200);
-- fails
insert into s(a, b) values (-2, -200);
insert into t(b) values (200);
insert into s(b) values (200);
alter table t alter column a set generated always;
alter table s alter column a set generated by default;
-- fails
insert into t(a, b) values (-3, -300);
-- succeeds
insert into s(a, b) values (-3, -300);
insert into t(b) values (300);
insert into s(b) values (300);
select * from t order by a;
select * from s order by a;
{noformat}
> Add functionality to ALTER TABLE: switch from GENERATED ALWAYS to GENERATED
> BY DEFAULT
> --------------------------------------------------------------------------------------
>
> Key: DERBY-6882
> URL: https://issues.apache.org/jira/browse/DERBY-6882
> Project: Derby
> Issue Type: Improvement
> Components: SQL
> Affects Versions: 10.12.1.1
> Reporter: Aleksei Kovura
> Assignee: Rick Hillegas
> Labels: features
> Attachments: derby-6882-01-aa-initialCode.diff
>
>
> I'm trying to import data from another Derby database with foreignViews tool
> because system tables got corrupted somehow (see
> https://issues.apache.org/jira/browse/DERBY-6876). Tables contain generated
> ID columns (created as "GENERATED ALWAYS"). Importing data and allowing Derby
> to generate new IDs in generated columns will break relationships between
> tables (old tables have counter gaps there due to deletes - IDs won't match).
> For a clean import without breaking DDL information in DB version control I
> would like to be able to switch between generated types as follows:
>
> ALTER TABLE table1 ALTER COLUMN col1 SET GENERATED BY DEFAULT [ AS IDENTITY]
> ALTER TABLE table1 ALTER COLUMN col1 SET GENERATED ALWAYS [ AS IDENTITY]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)