You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by dj...@apache.org on 2006/08/04 22:29:29 UTC
svn commit: r428872 - in /db/derby/code/trunk/java:
engine/org/apache/derby/impl/sql/catalog/
testing/org/apache/derbyTesting/functionTests/master/
testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/
Author: djd
Date: Fri Aug 4 13:29:29 2006
New Revision: 428872
URL: http://svn.apache.org/viewvc?rev=428872&view=rev
Log:
DERBY-1544 (partial) Upgrading a database from 10.1 to 10.2 should automatically change database owner,
recorded as owner of system schemas in sysschemas, from pseudo user 'DBA' to authorizationID of the user
attempting upgrade. This was being done in DataDictionaryImpl.updateSchemaAuth method.
I think a wrong index was being used in the call to updateRow. Also the SCHEMAAID column which we are changing
is not part of any index in SYSSCHEMAS. So there is no need to update any index.
Patch contributed by Deepa Remesh
Modified:
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/Upgrade_10_1_10_2.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/UpgradeTester.java
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java?rev=428872&r1=428871&r2=428872&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java Fri Aug 4 13:29:29 2006
@@ -5607,12 +5607,12 @@
row.setColumn(SYSSCHEMASRowFactory.SYSSCHEMAS_SCHEMAAID,
dvf.getVarcharDataValue(authorizationId));
- boolean[] bArray = {false, true};
+ boolean[] bArray = {false, false};
int[] colsToUpdate = {SYSSCHEMASRowFactory.SYSSCHEMAS_SCHEMAAID};
ti.updateRow(keyRow, row,
- SYSSCHEMASRowFactory.SYSSCHEMAS_INDEX2_ID,
+ SYSSCHEMASRowFactory.SYSSCHEMAS_INDEX1_ID,
bArray,
colsToUpdate,
tc);
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/Upgrade_10_1_10_2.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/Upgrade_10_1_10_2.out?rev=428872&r1=428871&r2=428872&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/Upgrade_10_1_10_2.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/Upgrade_10_1_10_2.out Fri Aug 4 13:29:29 2006
@@ -2186,6 +2186,19 @@
Expected exception during shutdown: Database 'wombat' shutdown.
Test grant/revoke, Phase: UPGRADE; derby.database.sqlAuthorization=true
complete caseGrantRevoke - passed true
+Checking SYSSCHEMAS
+SCHEMANAME: SYSIBM , AUTHORIZATIONID: APP
+SCHEMANAME: SYS , AUTHORIZATIONID: APP
+SCHEMANAME: SYSCAT , AUTHORIZATIONID: APP
+SCHEMANAME: SYSFUN , AUTHORIZATIONID: APP
+SCHEMANAME: SYSPROC , AUTHORIZATIONID: APP
+SCHEMANAME: SYSSTAT , AUTHORIZATIONID: APP
+SCHEMANAME: NULLID , AUTHORIZATIONID: APP
+SCHEMANAME: SQLJ , AUTHORIZATIONID: APP
+SCHEMANAME: SYSCS_DIAG , AUTHORIZATIONID: APP
+SCHEMANAME: SYSCS_UTIL , AUTHORIZATIONID: APP
+SCHEMANAME: APP , AUTHORIZATIONID: APP
+SCHEMANAME: D438 , AUTHORIZATIONID: APP
Test metadata starting
Union Result -- precision: 10 scale: 2 display size: 13 type name: DECIMAL
dec(10,2) -- precision: 10 scale: 2 display size: 12 type name: DECIMAL
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/UpgradeTester.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/UpgradeTester.java?rev=428872&r1=428871&r2=428872&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/UpgradeTester.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/UpgradeTester.java Fri Aug 4 13:29:29 2006
@@ -370,6 +370,7 @@
setSQLAuthorization(conn, true);
conn = restartDatabase(classLoader);
passed = caseGrantRevoke(conn, phase, classLoader, true) && passed;
+ checkSysSchemas(conn);
}
runMetadataTest(classLoader, conn);
conn.close();
@@ -940,6 +941,29 @@
} catch (SQLException sqle) {
dumpSQLExceptions(sqle);
}
+ }
+
+ /**
+ * This method lists the schema names and authorization ids in
+ * SYS.SCHEMAS table. This is to test that the owner of system schemas is
+ * changed from pseudo user "DBA" to the user invoking upgrade.
+ *
+ * @param conn
+ * @throws SQLException
+ */
+ private void checkSysSchemas(Connection conn) throws SQLException{
+ System.out.println("Checking SYSSCHEMAS");
+
+ Statement s = conn.createStatement();
+ ResultSet rs = s.executeQuery("select * from SYS.SYSSCHEMAS");
+
+ while(rs.next()) {
+ System.out.println("SCHEMANAME: " + rs.getString(2) + " , "
+ + "AUTHORIZATIONID: " + rs.getString(3));
+ }
+
+ rs.close();
+ s.close();
}
/**