[ 
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)

Reply via email to