db-derby-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rhille...@apache.org
Subject svn commit: r1808600 - in /db/derby/code/trunk/java: build/org/apache/derbyBuild/lastgoodjarcontents/ engine/org/apache/derby/impl/sql/compile/ testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/
Date Sun, 17 Sep 2017 02:00:00 GMT
Author: rhillegas
Date: Sun Sep 17 02:00:00 2017
New Revision: 1808600

URL: http://svn.apache.org/viewvc?rev=1808600&view=rev
Log:
DERBY-6962: Forbid attempts to change the cycling behavior of identity columns in pre-10.11
databases; commit derby-6962-01-ab-forbidSetCycleOn10_10.diff.

Added:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Changes10_14.java
  (with props)
Modified:
    db/derby/code/trunk/java/build/org/apache/derbyBuild/lastgoodjarcontents/insane.derbyTesting.jar.lastcontents
    db/derby/code/trunk/java/build/org/apache/derbyBuild/lastgoodjarcontents/sane.derbyTesting.jar.lastcontents
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/UpgradeRun.java

Modified: db/derby/code/trunk/java/build/org/apache/derbyBuild/lastgoodjarcontents/insane.derbyTesting.jar.lastcontents
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/build/org/apache/derbyBuild/lastgoodjarcontents/insane.derbyTesting.jar.lastcontents?rev=1808600&r1=1808599&r2=1808600&view=diff
==============================================================================
--- db/derby/code/trunk/java/build/org/apache/derbyBuild/lastgoodjarcontents/insane.derbyTesting.jar.lastcontents
(original)
+++ db/derby/code/trunk/java/build/org/apache/derbyBuild/lastgoodjarcontents/insane.derbyTesting.jar.lastcontents
Sun Sep 17 02:00:00 2017
@@ -717,6 +717,7 @@ org.apache.derbyTesting.functionTests.te
 org.apache.derbyTesting.functionTests.tests.upgradeTests.Changes10_11.class
 org.apache.derbyTesting.functionTests.tests.upgradeTests.Changes10_12.class
 org.apache.derbyTesting.functionTests.tests.upgradeTests.Changes10_13.class
+org.apache.derbyTesting.functionTests.tests.upgradeTests.Changes10_14.class
 org.apache.derbyTesting.functionTests.tests.upgradeTests.Changes10_2.class
 org.apache.derbyTesting.functionTests.tests.upgradeTests.Changes10_3.class
 org.apache.derbyTesting.functionTests.tests.upgradeTests.Changes10_4.class

Modified: db/derby/code/trunk/java/build/org/apache/derbyBuild/lastgoodjarcontents/sane.derbyTesting.jar.lastcontents
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/build/org/apache/derbyBuild/lastgoodjarcontents/sane.derbyTesting.jar.lastcontents?rev=1808600&r1=1808599&r2=1808600&view=diff
==============================================================================
--- db/derby/code/trunk/java/build/org/apache/derbyBuild/lastgoodjarcontents/sane.derbyTesting.jar.lastcontents
(original)
+++ db/derby/code/trunk/java/build/org/apache/derbyBuild/lastgoodjarcontents/sane.derbyTesting.jar.lastcontents
Sun Sep 17 02:00:00 2017
@@ -717,6 +717,7 @@ org.apache.derbyTesting.functionTests.te
 org.apache.derbyTesting.functionTests.tests.upgradeTests.Changes10_11.class
 org.apache.derbyTesting.functionTests.tests.upgradeTests.Changes10_12.class
 org.apache.derbyTesting.functionTests.tests.upgradeTests.Changes10_13.class
+org.apache.derbyTesting.functionTests.tests.upgradeTests.Changes10_14.class
 org.apache.derbyTesting.functionTests.tests.upgradeTests.Changes10_2.class
 org.apache.derbyTesting.functionTests.tests.upgradeTests.Changes10_3.class
 org.apache.derbyTesting.functionTests.tests.upgradeTests.Changes10_4.class

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj?rev=1808600&r1=1808599&r2=1808600&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj Sun Sep
17 02:00:00 2017
@@ -13874,6 +13874,7 @@ columnAlterIdentityClause(String columnN
 |
 	<CYCLE> 
 	{
+        checkVersion(DataDictionary.DD_VERSION_DERBY_10_11, "ALTER TABLE ... SET CYCLE");
 		autoIncrementInfo[QueryTreeNode.AUTOINCREMENT_CYCLE] = 1;
 		autoIncrementInfo[QueryTreeNode.AUTOINCREMENT_CREATE_MODIFY] = ColumnDefinitionNode.MODIFY_AUTOINCREMENT_CYCLE_VALUE;
         return
@@ -13887,6 +13888,7 @@ columnAlterIdentityClause(String columnN
 |
 	<NO> <CYCLE> 
 	{
+        checkVersion(DataDictionary.DD_VERSION_DERBY_10_11, "ALTER TABLE ... SET NO CYCLE");
 		autoIncrementInfo[QueryTreeNode.AUTOINCREMENT_CYCLE] = 0;
 		autoIncrementInfo[QueryTreeNode.AUTOINCREMENT_CREATE_MODIFY] = ColumnDefinitionNode.MODIFY_AUTOINCREMENT_CYCLE_VALUE;
         return

Added: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Changes10_14.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Changes10_14.java?rev=1808600&view=auto
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Changes10_14.java
(added)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Changes10_14.java
Sun Sep 17 02:00:00 2017
@@ -0,0 +1,184 @@
+/*
+
+Derby - Class org.apache.derbyTesting.functionTests.tests.upgradeTests.Changes10_14
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+*/
+package org.apache.derbyTesting.functionTests.tests.upgradeTests;
+
+import java.sql.SQLException;
+import java.sql.Statement;
+import junit.framework.Test;
+import org.apache.derbyTesting.junit.BaseTestSuite;
+import org.apache.derbyTesting.junit.JDBC;
+import org.apache.derbyTesting.junit.SupportFilesSetup;
+
+
+/**
+ * Upgrade test cases for 10.14.
+ */
+public class Changes10_14 extends UpgradeChange
+{
+
+    //////////////////////////////////////////////////////////////////
+    //
+    // CONSTANTS
+    //
+    //////////////////////////////////////////////////////////////////
+
+    private static final String UPGRADE_REQUIRED = "XCL47";
+    private static final String LANG_AI_OVERFLOW = "42Z24";
+
+    //////////////////////////////////////////////////////////////////
+    //
+    // CONSTRUCTOR
+    //
+    //////////////////////////////////////////////////////////////////
+
+    public Changes10_14(String name) {
+        super(name);
+    }
+
+    //////////////////////////////////////////////////////////////////
+    //
+    // JUnit BEHAVIOR
+    //
+    //////////////////////////////////////////////////////////////////
+
+    /**
+     * Return the suite of tests to test the changes made in 10.13.
+     *
+     * @param phase an integer that indicates the current phase in
+     *              the upgrade test.
+     * @return the test suite created.
+     */
+    public static Test suite(int phase) {
+        return new BaseTestSuite(Changes10_14.class, "Upgrade test for 10.14");
+    }
+
+    //////////////////////////////////////////////////////////////////
+    //
+    // TESTS
+    //
+    //////////////////////////////////////////////////////////////////
+
+    /**
+     * Test the addition of support for changing the cycling
+     * behavior of identity columns. DERBY-6904.
+     */
+    public void testAlterTableSetCycle() throws SQLException {
+        Statement s = createStatement();
+
+        // 10.11 upgraded all identity columns to be backed by sequences
+        boolean atLeast10_11 = oldAtLeast(10,11);
+        
+        switch (getPhase()) {
+            case PH_CREATE:
+                s.execute
+                  (
+                   "create table t_cycle_6904_1\n" +
+                   "(a int generated always as identity (start with 2147483646), b int)"
+                   );
+                s.execute
+                  (
+                   "create table t_cycle_6904_2\n" +
+                   "(a int generated always as identity (start with 2147483646), b int)"
+                   );
+                break;
+
+            case PH_SOFT_UPGRADE:
+                // We only support the SET GENERATED clause if the database
+                // is at level 10.11 or higher.
+                if (atLeast10_11)
+                {
+                    s.execute("alter table t_cycle_6904_1 alter column a set no cycle");
+                    s.execute("alter table t_cycle_6904_1 alter column a set cycle");
+                    s.execute("insert into t_cycle_6904_1(b) values (1)");
+                    s.execute("insert into t_cycle_6904_1(b) values (2)");
+                    s.execute("insert into t_cycle_6904_1(b) values (3)");
+                    JDBC.assertFullResultSet(
+                        s.executeQuery("select * from t_cycle_6904_1 order by b"),
+                        new String[][]
+                        {
+                          { "2147483646", "1" },
+                          { "2147483647", "2" },
+                          { "-2147483648", "3" },
+                        });
+                }
+                else
+                {
+                    assertCompileError
+                      (
+                       UPGRADE_REQUIRED,
+                       "alter table t_cycle_6904_1 alter column a set no cycle"
+                       );
+                    assertCompileError
+                      (
+                       UPGRADE_REQUIRED,
+                       "alter table t_cycle_6904_1 alter column a set cycle"
+                       );
+                }
+                break;
+                
+            case PH_POST_SOFT_UPGRADE:
+
+                if (atLeast10_11)
+                {
+                    s.execute("insert into t_cycle_6904_1(b) values (4)");
+                    JDBC.assertFullResultSet(
+                        s.executeQuery("select * from t_cycle_6904_1 order by b"),
+                        new String[][]
+                        {
+                          { "2147483646", "1" },
+                          { "2147483647", "2" },
+                          { "-2147483648", "3" },
+                          { "-2147483647", "4" },
+                        });
+                }
+                else
+                {
+                    s.execute("insert into t_cycle_6904_1(b) values (1)");
+                    s.execute("insert into t_cycle_6904_1(b) values (2)");
+                    assertStatementError
+                      (
+                       LANG_AI_OVERFLOW,
+                         s, "insert into t_cycle_6904_1(b) values (3)"
+                       );
+                }
+                break;
+              
+            case PH_HARD_UPGRADE:
+                s.execute("alter table t_cycle_6904_2 alter column a set no cycle");
+                s.execute("alter table t_cycle_6904_2 alter column a set cycle");
+                s.execute("insert into t_cycle_6904_2(b) values (1)");
+                s.execute("insert into t_cycle_6904_2(b) values (2)");
+                s.execute("insert into t_cycle_6904_2(b) values (3)");
+
+                JDBC.assertFullResultSet
+                  (
+                   s.executeQuery("select * from t_cycle_6904_2 order by b"),
+                   new String[][]
+                   {
+                       { "2147483646", "1" },
+                       { "2147483647", "2" },
+                       { "-2147483648", "3" },
+                   });
+                break;
+        };
+    }
+
+}

Propchange: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Changes10_14.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/UpgradeRun.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/UpgradeRun.java?rev=1808600&r1=1808599&r2=1808600&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/UpgradeRun.java
(original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/UpgradeRun.java
Sun Sep 17 02:00:00 2017
@@ -197,6 +197,8 @@ class UpgradeRun extends UpgradeClassLoa
                     suite.addTest(Changes10_12.suite(phase));
                 if (oldMinor < 13)
                     suite.addTest(Changes10_13.suite(phase));
+                if (oldMinor < 14)
+                    suite.addTest(Changes10_14.suite(phase));
             }
             
             // Add DatabaseMetaData tests. Since metadata



Mime
View raw message