[
https://issues.apache.org/jira/browse/DERBY-6962?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rick Hillegas updated DERBY-6962:
---------------------------------
Attachment: derby-6962-01-ab-forbidSetCycleOn10_10.diff
Attaching derby-6962-01-ab-forbidSetCycleOn10_10.diff. Tests passed cleanly on
the previous patch, but I realized that the new test belonged in a new,
10.14-specific test class. The new patch has been tested against the same
battery of old releases. I am running full tests again.
Touches the following files:
-------------------------
M java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj
Parser changes, as before.
-------------------------
M
java/build/org/apache/derbyBuild/lastgoodjarcontents/insane.derbyTesting.jar.lastcontents
M
java/build/org/apache/derbyBuild/lastgoodjarcontents/sane.derbyTesting.jar.lastcontents
A
java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Changes10_14.java
M
java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/UpgradeRun.java
New class to hold the new tests.
> Forbid ALTER TABLE ... SET CYCLE on identity columns in pre-10.12 databases
> ---------------------------------------------------------------------------
>
> Key: DERBY-6962
> URL: https://issues.apache.org/jira/browse/DERBY-6962
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.14.0.0
> Reporter: Rick Hillegas
> Assignee: Rick Hillegas
> Fix For: 10.14.0.0
>
> Attachments: derby-6962-01-aa-forbidSetCycleOn10_10.diff,
> derby-6962-01-ab-forbidSetCycleOn10_10.diff
>
>
> The
> ALTER TABLE ALTER COLUMN $columnName SET CYCLE
> command does not raise an error even on identity columns in pre-10.12
> databases. Those identity columns are not backed by sequence generators.
> Afterwards, the columns do not cycle, even though the ALTER TABLE command
> appeared to run successfully. This should be easy to fix. The parser just
> needs to forbid the ALTER TABLE...SET CYCLE command in pre-10.12 databases.
> The following scripts show this behavior:
> {noformat}
> -- run the following script with version 10.10.1.1:
> connect 'jdbc:derby:db;create=true';
> create table t1(a int generated always as identity (start with 2147483646), b
> int);
> insert into t1(b) values (1);
> insert into t1(b) values (2);
> -- fails as expected
> insert into t1(b) values (3);
> select * from t1 order by b;
> create table t2(a int generated always as identity (start with 2147483646), b
> int);
> -- now run the following script with 10.14
> connect 'jdbc:derby:db';
> -- succeeds but should not
> alter table t2 alter column a set cycle;
> insert into t2(b) values (1);
> insert into t2(b) values (2);
> -- fails because the cycling behavior did not change
> insert into t2(b) values (3);
> select * from t2 order by b;
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)