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/07/12 06:48:06 UTC
svn commit: r421118 - in /db/derby/code/trunk/java:
engine/org/apache/derby/iapi/sql/dictionary/
engine/org/apache/derby/impl/sql/catalog/
engine/org/apache/derby/impl/sql/execute/
testing/org/apache/derbyTesting/functionTests/master/ testing/org/apach...
Author: djd
Date: Tue Jul 11 21:48:05 2006
New Revision: 421118
URL: http://svn.apache.org/viewvc?rev=421118&view=rev
Log:
DERBY-1330 (partial) The patch gets rid of requirement of permission type along with the uuid to find a unique row.
Fixing this has in fact cleaned up the supporting code quite a bit. For instance, there is no need for special
class DDColumnPermissionDependableFinder or no need for a constructor in ColPermsDescriptor which takes permission
types in the form of an int. DDdependableFinder is much cleaner too with this patch. In addition, I have also created
a unique index on the uuid for these 3 system tables in order to quickly locate a row in those system tables.
Patch contributed by Mamta Satoor
Removed:
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DDColumnPermissionsDependableFinder.java
Modified:
db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/ColPermsDescriptor.java
db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java
db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/RoutinePermsDescriptor.java
db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/TablePermsDescriptor.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/CoreDDFinderClassInfo.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DDdependableFinder.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSCOLPERMSRowFactory.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSROUTINEPERMSRowFactory.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSTABLEPERMSRowFactory.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/RoutinePrivilegeInfo.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/TablePrivilegeInfo.java
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/syscat.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/syscat.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/syscat.out
Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/ColPermsDescriptor.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/ColPermsDescriptor.java?rev=421118&r1=421117&r2=421118&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/ColPermsDescriptor.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/ColPermsDescriptor.java Tue Jul 11 21:48:05 2006
@@ -28,8 +28,7 @@
import org.apache.derby.iapi.sql.dictionary.DataDictionary;
import org.apache.derby.iapi.services.io.FormatableBitSet;
import org.apache.derby.iapi.services.io.StoredFormatIds;
-import org.apache.derby.impl.sql.catalog.DDColumnPermissionsDependableFinder;
-//import org.apache.derby.impl.sql.catalog.DDdependableFinder;
+import org.apache.derby.impl.sql.catalog.DDdependableFinder;
/**
* This class describes a row in the SYS.SYSCOLPERMS system table, which keeps
@@ -37,10 +36,10 @@
*/
public class ColPermsDescriptor extends PermissionsDescriptor
{
- private final UUID tableUUID;
- private final String type;
- private final FormatableBitSet columns;
- private final String tableName;
+ private UUID tableUUID;
+ private String type;
+ private FormatableBitSet columns;
+ private String tableName;
public ColPermsDescriptor( DataDictionary dd,
String grantee,
@@ -53,7 +52,10 @@
this.tableUUID = tableUUID;
this.type = type;
this.columns = columns;
- tableName = dd.getTableDescriptor(tableUUID).getName();
+ //tableUUID can be null only if the constructor with colPermsUUID
+ //has been invoked.
+ if (tableUUID != null)
+ tableName = dd.getTableDescriptor(tableUUID).getName();
}
/**
@@ -66,7 +68,14 @@
String type) throws StandardException
{
this( dd, grantee, grantor, tableUUID, type, (FormatableBitSet) null);
- }
+ }
+
+ public ColPermsDescriptor( DataDictionary dd,
+ UUID colPermsUUID) throws StandardException
+ {
+ super(dd,null,null);
+ this.oid = colPermsUUID;
+ }
public int getCatalogNumber()
{
@@ -107,8 +116,8 @@
*/
public int hashCode()
{
- return super.keyHashCode() + tableUUID.hashCode() +
- ((type == null) ? 0 : type.hashCode());
+ return super.keyHashCode() + tableUUID.hashCode() +
+ ((type == null) ? 0 : type.hashCode());
}
/**
@@ -156,8 +165,7 @@
*/
public DependableFinder getDependableFinder()
{
- return new DDColumnPermissionsDependableFinder(StoredFormatIds.COLUMNS_PERMISSION_FINDER_V01_ID,
- type);
+ return new DDdependableFinder(StoredFormatIds.COLUMNS_PERMISSION_FINDER_V01_ID);
}
}
Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java?rev=421118&r1=421117&r2=421118&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java Tue Jul 11 21:48:05 2006
@@ -1570,7 +1570,7 @@
throws StandardException;
/**
- * Get one user's privileges on a table
+ * Get one user's privileges on a table using tableUUID and authorizationid
*
* @param tableUUID
* @param authorizationId The user name
@@ -1583,6 +1583,18 @@
throws StandardException;
/**
+ * Get one user's privileges on a table using tablePermsUUID
+ *
+ * @param tablePermsUUID
+ *
+ * @return a TablePermsDescriptor
+ *
+ * @exception StandardException
+ */
+ public TablePermsDescriptor getTablePermissions( UUID tablePermsUUID)
+ throws StandardException;
+
+ /**
* Get one user's column privileges for a table.
*
* @param tableUUID
@@ -1604,10 +1616,10 @@
String authorizationId)
throws StandardException;
+
/**
- * Get one user's column privileges for a table. This routine gets called by
- * ColPermsDescriptor.getDependableFinder and that method has hold of
- * privilege type in String form.
+ * Get one user's column privileges for a table. This routine gets called
+ * during revoke privilege processing
*
* @param tableUUID
* @param privType(as String) Authorizer.SELECT_PRIV, Authorizer.UPDATE_PRIV, or Authorizer.REFERENCES_PRIV
@@ -1627,6 +1639,17 @@
boolean forGrant,
String authorizationId)
throws StandardException;
+ /**
+ * Get one user's column privileges on a table using colPermsUUID
+ *
+ * @param colPermsUUID
+ *
+ * @return a ColPermsDescriptor
+ *
+ * @exception StandardException
+ */
+ public ColPermsDescriptor getColumnPermissions( UUID colPermsUUID)
+ throws StandardException;
/**
* Get one user's permissions for a routine (function or procedure).
@@ -1640,6 +1663,18 @@
*/
public RoutinePermsDescriptor getRoutinePermissions( UUID routineUUID, String authorizationId)
throws StandardException;
+
+ /**
+ * Get one user's privileges for a routine using routinePermsUUID
+ *
+ * @param routinePermsUUID
+ *
+ * @return a RoutinePermsDescriptor
+ *
+ * @exception StandardException
+ */
+ public RoutinePermsDescriptor getRoutinePermissions( UUID routinePermsUUID)
+ throws StandardException;
/**
* Return the Java class to use for the VTI for
Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/RoutinePermsDescriptor.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/RoutinePermsDescriptor.java?rev=421118&r1=421117&r2=421118&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/RoutinePermsDescriptor.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/RoutinePermsDescriptor.java Tue Jul 11 21:48:05 2006
@@ -35,9 +35,9 @@
*/
public class RoutinePermsDescriptor extends PermissionsDescriptor
{
- private final UUID routineUUID;
- private final String routineName;
- private final boolean hasExecutePermission;
+ private UUID routineUUID;
+ private String routineName;
+ private boolean hasExecutePermission;
public RoutinePermsDescriptor( DataDictionary dd,
String grantee,
@@ -48,7 +48,10 @@
super (dd, grantee, grantor);
this.routineUUID = routineUUID;
this.hasExecutePermission = hasExecutePermission;
- routineName = dd.getAliasDescriptor(routineUUID).getObjectName();
+ //routineUUID can be null only if the constructor with routineePermsUUID
+ //has been invoked.
+ if (routineUUID != null)
+ routineName = dd.getAliasDescriptor(routineUUID).getObjectName();
}
public RoutinePermsDescriptor( DataDictionary dd,
@@ -68,6 +71,13 @@
{
this( dd, grantee, grantor, (UUID) null);
}
+
+ public RoutinePermsDescriptor( DataDictionary dd, UUID routineePermsUUID)
+ throws StandardException
+ {
+ this( dd, null, null, null, true);
+ this.oid = routineePermsUUID;
+ }
public int getCatalogNumber()
{
Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/TablePermsDescriptor.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/TablePermsDescriptor.java?rev=421118&r1=421117&r2=421118&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/TablePermsDescriptor.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/TablePermsDescriptor.java Tue Jul 11 21:48:05 2006
@@ -35,14 +35,14 @@
*/
public class TablePermsDescriptor extends PermissionsDescriptor
{
- private final UUID tableUUID;
- private final String tableName;
- private final String selectPriv;
- private final String deletePriv;
- private final String insertPriv;
- private final String updatePriv;
- private final String referencesPriv;
- private final String triggerPriv;
+ private UUID tableUUID;
+ private String tableName;
+ private String selectPriv;
+ private String deletePriv;
+ private String insertPriv;
+ private String updatePriv;
+ private String referencesPriv;
+ private String triggerPriv;
public TablePermsDescriptor( DataDictionary dd,
String grantee,
@@ -63,7 +63,10 @@
this.updatePriv = updatePriv;
this.referencesPriv = referencesPriv;
this.triggerPriv = triggerPriv;
- tableName = dd.getTableDescriptor(tableUUID).getName();
+ //tableUUID can be null only if the constructor with tablePermsUUID
+ //has been invoked.
+ if (tableUUID != null)
+ tableName = dd.getTableDescriptor(tableUUID).getName();
}
/**
@@ -78,6 +81,14 @@
(String) null, (String) null, (String) null, (String) null, (String) null, (String) null);
}
+ public TablePermsDescriptor( DataDictionary dd,
+ UUID tablePermsUUID) throws StandardException
+ {
+ this( dd, null, null, null,
+ (String) null, (String) null, (String) null, (String) null, (String) null, (String) null);
+ this.oid = tablePermsUUID;
+ }
+
public int getCatalogNumber()
{
return DataDictionary.SYSTABLEPERMS_CATALOG_NUM;
@@ -123,7 +134,7 @@
*/
public int hashCode()
{
- return super.keyHashCode() + tableUUID.hashCode();
+ return super.keyHashCode() + tableUUID.hashCode();
}
/**
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/CoreDDFinderClassInfo.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/CoreDDFinderClassInfo.java?rev=421118&r1=421117&r2=421118&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/CoreDDFinderClassInfo.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/CoreDDFinderClassInfo.java Tue Jul 11 21:48:05 2006
@@ -42,11 +42,10 @@
case StoredFormatIds.VIEW_DESCRIPTOR_FINDER_V01_ID:
case StoredFormatIds.TABLE_PERMISSION_FINDER_V01_ID:
case StoredFormatIds.ROUTINE_PERMISSION_FINDER_V01_ID:
+ case StoredFormatIds.COLUMNS_PERMISSION_FINDER_V01_ID:
return new DDdependableFinder(fmtId);
case StoredFormatIds.COLUMN_DESCRIPTOR_FINDER_V01_ID:
return new DDColumnDependableFinder(fmtId);
- case StoredFormatIds.COLUMNS_PERMISSION_FINDER_V01_ID:
- return new DDColumnPermissionsDependableFinder(fmtId);
default:
return null;
}
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DDdependableFinder.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DDdependableFinder.java?rev=421118&r1=421117&r2=421118&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DDdependableFinder.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DDdependableFinder.java Tue Jul 11 21:48:05 2006
@@ -310,7 +310,6 @@
protected Dependable getDependable(DataDictionary dd, UUID dependableObjectID)
throws StandardException
{
- LanguageConnectionContext lcc;
switch (formatId)
{
case StoredFormatIds.ALIAS_DESCRIPTOR_FINDER_V01_ID:
@@ -348,17 +347,14 @@
case StoredFormatIds.VIEW_DESCRIPTOR_FINDER_V01_ID:
return dd.getViewDescriptor(dependableObjectID);
+ case StoredFormatIds.COLUMNS_PERMISSION_FINDER_V01_ID:
+ return dd.getColumnPermissions(dependableObjectID);
+
case StoredFormatIds.TABLE_PERMISSION_FINDER_V01_ID:
- lcc = (LanguageConnectionContext)
- ContextService.getContext(LanguageConnectionContext.CONTEXT_ID);
- return dd.getTablePermissions(dependableObjectID,
- lcc.getAuthorizationId());
+ return dd.getTablePermissions(dependableObjectID);
case StoredFormatIds.ROUTINE_PERMISSION_FINDER_V01_ID:
- lcc = (LanguageConnectionContext)
- ContextService.getContext(LanguageConnectionContext.CONTEXT_ID);
- return dd.getRoutinePermissions(dependableObjectID,
- lcc.getAuthorizationId());
+ return dd.getRoutinePermissions(dependableObjectID);
default:
if (SanityManager.DEBUG)
@@ -377,7 +373,6 @@
protected String getSQLObjectName(DataDictionary dd, UUID dependableObjectID)
throws StandardException
{
- LanguageConnectionContext lcc;
switch (formatId)
{
case StoredFormatIds.ALIAS_DESCRIPTOR_FINDER_V01_ID:
@@ -410,7 +405,6 @@
case StoredFormatIds.TABLE_DESCRIPTOR_FINDER_V01_ID:
case StoredFormatIds.COLUMN_DESCRIPTOR_FINDER_V01_ID:
- case StoredFormatIds.COLUMNS_PERMISSION_FINDER_V01_ID:
return getDependable(dd, dependableObjectID).getObjectName();
case StoredFormatIds.TRIGGER_DESCRIPTOR_FINDER_V01_ID:
@@ -419,17 +413,14 @@
case StoredFormatIds.VIEW_DESCRIPTOR_FINDER_V01_ID:
return dd.getTableDescriptor(dependableObjectID).getName();
+ case StoredFormatIds.COLUMNS_PERMISSION_FINDER_V01_ID:
+ return dd.getColumnPermissions(dependableObjectID).getObjectName();
+
case StoredFormatIds.TABLE_PERMISSION_FINDER_V01_ID:
- lcc = (LanguageConnectionContext)
- ContextService.getContext(LanguageConnectionContext.CONTEXT_ID);
- return dd.getTablePermissions(dependableObjectID,
- lcc.getAuthorizationId()).getObjectName();
+ return dd.getTablePermissions(dependableObjectID).getObjectName();
case StoredFormatIds.ROUTINE_PERMISSION_FINDER_V01_ID:
- lcc = (LanguageConnectionContext)
- ContextService.getContext(LanguageConnectionContext.CONTEXT_ID);
- return dd.getRoutinePermissions(dependableObjectID,
- lcc.getAuthorizationId()).getObjectName();
+ return dd.getRoutinePermissions(dependableObjectID).getObjectName();
default:
if (SanityManager.DEBUG)
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=421118&r1=421117&r2=421118&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 Tue Jul 11 21:48:05 2006
@@ -9782,6 +9782,14 @@
return (TablePermsDescriptor) getPermissions( key);
} // end of getTablePermissions
+ /* @see org.apache.derby.iapi.sql.dictionary.DataDictionary#getTablePermissions */
+ public TablePermsDescriptor getTablePermissions( UUID tablePermsUUID)
+ throws StandardException
+ {
+ TablePermsDescriptor key = new TablePermsDescriptor( this, tablePermsUUID);
+ return (TablePermsDescriptor) getPermissions( key);
+ }
+
private Object getPermissions( PermissionsDescriptor key) throws StandardException
{
// RESOLVE get a READ COMMITTED (shared) lock on the permission row
@@ -9793,6 +9801,14 @@
return perms;
}
+ /* @see org.apache.derby.iapi.sql.dictionary.DataDictionary#getColumnPermissions */
+ public ColPermsDescriptor getColumnPermissions( UUID colPermsUUID)
+ throws StandardException
+ {
+ ColPermsDescriptor key = new ColPermsDescriptor( this, colPermsUUID);
+ return (ColPermsDescriptor) getPermissions( key);
+ }
+
/**
* Get one user's column privileges for a table.
*
@@ -9828,9 +9844,8 @@
} // end of getColumnPermissions
/**
- * Get one user's column privileges for a table. This routine gets called by
- * ColPermsDescriptor.getDependableFinder and that method has hold of
- * privilege type in String form.
+ * Get one user's column privileges for a table. This routine gets called
+ * during revoke privilege processing
*
* @param tableUUID
* @param privType(as String) Authorizer.SELECT_PRIV, Authorizer.UPDATE_PRIV, or Authorizer.REFERENCES_PRIV
@@ -9890,6 +9905,14 @@
return (RoutinePermsDescriptor) getPermissions( key);
} // end of getRoutinePermissions
+
+ /* @see org.apache.derby.iapi.sql.dictionary.DataDictionary#getRoutinePermissions */
+ public RoutinePermsDescriptor getRoutinePermissions( UUID routinePermsUUID)
+ throws StandardException
+ {
+ RoutinePermsDescriptor key = new RoutinePermsDescriptor( this, routinePermsUUID);
+ return (RoutinePermsDescriptor) getPermissions( key);
+ }
/**
* Add or remove a permission to/from the permission database.
@@ -9993,10 +10016,22 @@
TablePermsDescriptor getUncachedTablePermsDescriptor( TablePermsDescriptor key)
throws StandardException
{
- return (TablePermsDescriptor)
- getUncachedPermissionsDescriptor( SYSTABLEPERMS_CATALOG_NUM,
- SYSTABLEPERMSRowFactory.GRANTEE_TABLE_GRANTOR_INDEX_NUM,
- key);
+ if (key.getObjectID() == null)
+ {
+ //the TABLEPERMSID for SYSTABLEPERMS is not known, so use
+ //table id, grantor and granteee to find TablePermsDescriptor
+ return (TablePermsDescriptor)
+ getUncachedPermissionsDescriptor( SYSTABLEPERMS_CATALOG_NUM,
+ SYSTABLEPERMSRowFactory.GRANTEE_TABLE_GRANTOR_INDEX_NUM,
+ key);
+ } else
+ {
+ //we know the TABLEPERMSID for SYSTABLEPERMS, so use that to
+ //find TablePermsDescriptor from the sytem table
+ return (TablePermsDescriptor)
+ getUncachedPermissionsDescriptor(SYSTABLEPERMS_CATALOG_NUM,
+ SYSTABLEPERMSRowFactory.TABLEPERMSID_INDEX_NUM,key);
+ }
} // end of getUncachedTablePermsDescriptor
@@ -10013,11 +10048,23 @@
ColPermsDescriptor getUncachedColPermsDescriptor( ColPermsDescriptor key)
throws StandardException
{
- return (ColPermsDescriptor)
- getUncachedPermissionsDescriptor( SYSCOLPERMS_CATALOG_NUM,
- SYSCOLPERMSRowFactory.GRANTEE_TABLE_TYPE_GRANTOR_INDEX_NUM,
- key);
-
+ if (key.getObjectID() == null)
+ {
+ //the COLPERMSID for SYSCOLPERMS is not known, so use tableid,
+ //privilege type, grantor and granteee to find ColPermsDescriptor
+ return (ColPermsDescriptor)
+ getUncachedPermissionsDescriptor( SYSCOLPERMS_CATALOG_NUM,
+ SYSCOLPERMSRowFactory.GRANTEE_TABLE_TYPE_GRANTOR_INDEX_NUM,
+ key);
+ }else
+ {
+ //we know the COLPERMSID for SYSCOLPERMS, so use that to
+ //find ColPermsDescriptor from the sytem table
+ return (ColPermsDescriptor)
+ getUncachedPermissionsDescriptor( SYSCOLPERMS_CATALOG_NUM,
+ SYSCOLPERMSRowFactory.COLPERMSID_INDEX_NUM,
+ key);
+ }
} // end of getUncachedColPermsDescriptor
private TupleDescriptor getUncachedPermissionsDescriptor( int catalogNumber,
@@ -10050,10 +10097,23 @@
RoutinePermsDescriptor getUncachedRoutinePermsDescriptor( RoutinePermsDescriptor key)
throws StandardException
{
- return (RoutinePermsDescriptor)
- getUncachedPermissionsDescriptor( SYSROUTINEPERMS_CATALOG_NUM,
- SYSROUTINEPERMSRowFactory.GRANTEE_ALIAS_GRANTOR_INDEX_NUM,
- key);
+ if (key.getObjectID() == null)
+ {
+ //the ROUTINEPERMSID for SYSROUTINEPERMS is not known, so use aliasid,
+ //grantor and granteee to find RoutinePermsDescriptor
+ return (RoutinePermsDescriptor)
+ getUncachedPermissionsDescriptor( SYSROUTINEPERMS_CATALOG_NUM,
+ SYSROUTINEPERMSRowFactory.GRANTEE_ALIAS_GRANTOR_INDEX_NUM,
+ key);
+ } else
+ {
+ //we know the ROUTINEPERMSID for SYSROUTINEPERMS, so use that to
+ //find RoutinePermsDescriptor from the sytem table
+ return (RoutinePermsDescriptor)
+ getUncachedPermissionsDescriptor(SYSROUTINEPERMS_CATALOG_NUM,
+ SYSROUTINEPERMSRowFactory.ROUTINEPERMSID_INDEX_NUM,key);
+
+ }
} // end of getUncachedRoutinePermsDescriptor
private String[][] DIAG_VTI_CLASSES =
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSCOLPERMSRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSCOLPERMSRowFactory.java?rev=421118&r1=421117&r2=421118&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSCOLPERMSRowFactory.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSCOLPERMSRowFactory.java Tue Jul 11 21:48:05 2006
@@ -59,7 +59,7 @@
static final String TABLENAME_STRING = "SYSCOLPERMS";
// Column numbers for the SYSCOLPERMS table. 1 based
- private static final int SYSCOLPERMS_COLPERMSID = 1;
+ private static final int COLPERMSID_COL_NUM = 1;
private static final int GRANTEE_COL_NUM = 2;
private static final int GRANTOR_COL_NUM = 3;
private static final int TABLEID_COL_NUM = 4;
@@ -68,21 +68,25 @@
private static final int COLUMN_COUNT = 6;
public static final int GRANTEE_TABLE_TYPE_GRANTOR_INDEX_NUM = 0;
+ public static final int COLPERMSID_INDEX_NUM = 1;
private static final int[][] indexColumnPositions =
{
- { GRANTEE_COL_NUM, TABLEID_COL_NUM, TYPE_COL_NUM, GRANTOR_COL_NUM}
+ { GRANTEE_COL_NUM, TABLEID_COL_NUM, TYPE_COL_NUM, GRANTOR_COL_NUM},
+ { COLPERMSID_COL_NUM }
};
private static final String[][] indexColumnNames =
{
- {"GRANTEE", "TABLEID", "TYPE", "GRANTOR"}
+ {"GRANTEE", "TABLEID", "TYPE", "GRANTOR"},
+ {"COLPERMSID"}
};
- private static final boolean[] indexUniqueness = { true};
+ private static final boolean[] indexUniqueness = { true, true};
private static final String[] uuids =
{
"286cc01e-0103-0e39-b8e7-00000010f010" // catalog UUID
,"6074401f-0103-0e39-b8e7-00000010f010" // heap UUID
- ,"787c0020-0103-0e39-b8e7-00000010f010" // index
+ ,"787c0020-0103-0e39-b8e7-00000010f010" // index1
+ ,"c9a3808d-010c-42a2-ae15-0000000f67f8" //index2
};
private SystemColumn[] columnList;
@@ -126,7 +130,7 @@
columns = cpd.getColumns();
}
ExecRow row = getExecutionFactory().getValueRow( COLUMN_COUNT);
- row.setColumn( SYSCOLPERMS_COLPERMSID, dvf.getCharDataValue(colPermID));
+ row.setColumn( COLPERMSID_COL_NUM, dvf.getCharDataValue(colPermID));
row.setColumn( GRANTEE_COL_NUM, grantee);
row.setColumn( GRANTOR_COL_NUM, grantor);
row.setColumn( TABLEID_COL_NUM, dvf.getCharDataValue( tableID));
@@ -145,7 +149,7 @@
SanityManager.ASSERT( row.nColumns() == COLUMN_COUNT,
"Wrong size row passed to SYSCOLPERMSRowFactory.buildDescriptor");
- String colPermsUUIDString = row.getColumn( SYSCOLPERMS_COLPERMSID).getString();
+ String colPermsUUIDString = row.getColumn( COLPERMSID_COL_NUM).getString();
UUID colPermsUUID = getUUIDFactory().recreateUUID(colPermsUUIDString);
String tableUUIDString = row.getColumn( TABLEID_COL_NUM).getString();
UUID tableUUID = getUUIDFactory().recreateUUID(tableUUIDString);
@@ -173,9 +177,9 @@
{
columnList = new SystemColumn[ COLUMN_COUNT];
- columnList[ SYSCOLPERMS_COLPERMSID - 1] =
+ columnList[ COLPERMSID_COL_NUM - 1] =
new SystemColumnImpl( convertIdCase( "COLPERMSID"),
- SYSCOLPERMS_COLPERMSID,
+ COLPERMSID_COL_NUM,
0, // precision
0, // scale
false, // nullability
@@ -250,6 +254,9 @@
row.setColumn(3, getDataValueFactory().getNullChar( (StringDataValue) null)); // type
row.setColumn(4, getNullAuthorizationID()); // grantor
break;
+ case COLPERMSID_INDEX_NUM:
+ row.setColumn(1, getDataValueFactory().getNullChar( (StringDataValue) null)); // COLPERMSID
+ break;
}
return row;
} // end of buildEmptyIndexRow
@@ -281,6 +288,11 @@
String tableUUIDStr = colPerms.getTableUUID().toString();
row.setColumn(2, getDataValueFactory().getCharDataValue( tableUUIDStr));
row.setColumn(3, getDataValueFactory().getCharDataValue( colPerms.getType()));
+ break;
+ case COLPERMSID_INDEX_NUM:
+ row = getExecutionFactory().getIndexableRow( 1);
+ String colPermsUUIDStr = perm.getObjectID().toString();
+ row.setColumn(1, getDataValueFactory().getCharDataValue( colPermsUUIDStr));
break;
}
return row;
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSROUTINEPERMSRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSROUTINEPERMSRowFactory.java?rev=421118&r1=421117&r2=421118&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSROUTINEPERMSRowFactory.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSROUTINEPERMSRowFactory.java Tue Jul 11 21:48:05 2006
@@ -50,7 +50,7 @@
static final String TABLENAME_STRING = "SYSROUTINEPERMS";
// Column numbers for the SYSROUTINEPERMS table. 1 based
- private static final int SYSROUTINEPERMS_ROUTINPERMSID = 1;
+ private static final int ROUTINPERMSID_COL_NUM = 1;
private static final int GRANTEE_COL_NUM = 2;
private static final int GRANTOR_COL_NUM = 3;
private static final int ALIASID_COL_NUM = 4;
@@ -58,21 +58,25 @@
private static final int COLUMN_COUNT = 5;
static final int GRANTEE_ALIAS_GRANTOR_INDEX_NUM = 0;
+ public static final int ROUTINEPERMSID_INDEX_NUM = 1;
private static final int[][] indexColumnPositions =
{
- { GRANTEE_COL_NUM, ALIASID_COL_NUM, GRANTOR_COL_NUM}
+ { GRANTEE_COL_NUM, ALIASID_COL_NUM, GRANTOR_COL_NUM},
+ { ROUTINPERMSID_COL_NUM }
};
private static final String[][] indexColumnNames =
{
- {"GRANTEE", "ALIASID", "GRANTOR"}
+ {"GRANTEE", "ALIASID", "GRANTOR"},
+ {"ROUTINEPERMSID"}
};
- private static final boolean[] indexUniqueness = { true};
+ private static final boolean[] indexUniqueness = { true, true };
private static final String[] uuids =
{
"2057c01b-0103-0e39-b8e7-00000010f010" // catalog UUID
,"185e801c-0103-0e39-b8e7-00000010f010" // heap UUID
- ,"c065801d-0103-0e39-b8e7-00000010f010" // index
+ ,"c065801d-0103-0e39-b8e7-00000010f010" // index1
+ ,"40f70088-010c-4c2f-c8de-0000000f43a0" // index2
};
private SystemColumn[] columnList;
@@ -113,7 +117,7 @@
routineID = rpd.getRoutineUUID().toString();
}
ExecRow row = getExecutionFactory().getValueRow( COLUMN_COUNT);
- row.setColumn( SYSROUTINEPERMS_ROUTINPERMSID, dvf.getCharDataValue(routinePermID));
+ row.setColumn( ROUTINPERMSID_COL_NUM, dvf.getCharDataValue(routinePermID));
row.setColumn( GRANTEE_COL_NUM, grantee);
row.setColumn( GRANTOR_COL_NUM, grantor);
row.setColumn( ALIASID_COL_NUM, dvf.getCharDataValue( routineID));
@@ -131,7 +135,7 @@
SanityManager.ASSERT( row.nColumns() == COLUMN_COUNT,
"Wrong size row passed to SYSROUTINEPERMSRowFactory.buildDescriptor");
- String routinePermsUUIDString = row.getColumn(SYSROUTINEPERMS_ROUTINPERMSID).getString();
+ String routinePermsUUIDString = row.getColumn(ROUTINPERMSID_COL_NUM).getString();
UUID routinePermsUUID = getUUIDFactory().recreateUUID(routinePermsUUIDString);
String aliasUUIDString = row.getColumn( ALIASID_COL_NUM).getString();
UUID aliasUUID = getUUIDFactory().recreateUUID(aliasUUIDString);
@@ -152,9 +156,9 @@
{
columnList = new SystemColumn[ COLUMN_COUNT];
- columnList[ SYSROUTINEPERMS_ROUTINPERMSID - 1] =
+ columnList[ ROUTINPERMSID_COL_NUM - 1] =
new SystemColumnImpl( convertIdCase( "ROUTINEPERMSID"),
- SYSROUTINEPERMS_ROUTINPERMSID,
+ ROUTINPERMSID_COL_NUM,
0, // precision
0, // scale
false, // nullability
@@ -218,6 +222,9 @@
row.setColumn(2, getDataValueFactory().getNullChar( (StringDataValue) null)); // table UUID
row.setColumn(3, getNullAuthorizationID()); // grantor
break;
+ case ROUTINEPERMSID_INDEX_NUM:
+ row.setColumn(1, getDataValueFactory().getNullChar( (StringDataValue) null)); // ROUTINEPERMSID
+ break;
}
return row;
} // end of buildEmptyIndexRow
@@ -249,6 +256,11 @@
row.setColumn(1, getAuthorizationID( perm.getGrantee()));
String routineUUIDStr = ((RoutinePermsDescriptor) perm).getRoutineUUID().toString();
row.setColumn(2, getDataValueFactory().getCharDataValue( routineUUIDStr));
+ break;
+ case ROUTINEPERMSID_INDEX_NUM:
+ row = getExecutionFactory().getIndexableRow( 1);
+ String routinePermsUUIDStr = perm.getObjectID().toString();
+ row.setColumn(1, getDataValueFactory().getCharDataValue( routinePermsUUIDStr));
break;
}
return row;
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSTABLEPERMSRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSTABLEPERMSRowFactory.java?rev=421118&r1=421117&r2=421118&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSTABLEPERMSRowFactory.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSTABLEPERMSRowFactory.java Tue Jul 11 21:48:05 2006
@@ -50,7 +50,7 @@
static final String TABLENAME_STRING = "SYSTABLEPERMS";
// Column numbers for the SYSTABLEPERMS table. 1 based
- private static final int SYSTABLEPERMS_TABLEPERMSID = 1;
+ private static final int TABLEPERMSID_COL_NUM = 1;
private static final int GRANTEE_COL_NUM = 2;
private static final int GRANTOR_COL_NUM = 3;
private static final int TABLEID_COL_NUM = 4;
@@ -63,21 +63,25 @@
private static final int COLUMN_COUNT = 10;
public static final int GRANTEE_TABLE_GRANTOR_INDEX_NUM = 0;
+ public static final int TABLEPERMSID_INDEX_NUM = 1;
private static final int[][] indexColumnPositions =
{
- { GRANTEE_COL_NUM, TABLEID_COL_NUM, GRANTOR_COL_NUM}
+ { GRANTEE_COL_NUM, TABLEID_COL_NUM, GRANTOR_COL_NUM},
+ { TABLEPERMSID_COL_NUM }
};
private static final String[][] indexColumnNames =
{
- {"GRANTEE", "TABLEID", "GRANTOR"}
+ {"GRANTEE", "TABLEID", "GRANTOR"},
+ {"TABLEPERMSID"}
};
- private static final boolean[] indexUniqueness = { true};
+ private static final boolean[] indexUniqueness = { true, true};
private static final String[] uuids =
{
"b8450018-0103-0e39-b8e7-00000010f010" // catalog UUID
,"004b0019-0103-0e39-b8e7-00000010f010" // heap UUID
- ,"c851401a-0103-0e39-b8e7-00000010f010" // index
+ ,"c851401a-0103-0e39-b8e7-00000010f010" // index1
+ ,"80220011-010c-426e-c599-0000000f1120" // index2
};
private SystemColumn[] columnList;
@@ -130,7 +134,7 @@
triggerPriv = tpd.getTriggerPriv();
}
ExecRow row = getExecutionFactory().getValueRow( COLUMN_COUNT);
- row.setColumn( SYSTABLEPERMS_TABLEPERMSID, dvf.getCharDataValue(tablePermID));
+ row.setColumn( TABLEPERMSID_COL_NUM, dvf.getCharDataValue(tablePermID));
row.setColumn( GRANTEE_COL_NUM, grantee);
row.setColumn( GRANTOR_COL_NUM, grantor);
row.setColumn( TABLEID_COL_NUM, dvf.getCharDataValue( tableID));
@@ -154,7 +158,7 @@
SanityManager.ASSERT( row.nColumns() == COLUMN_COUNT,
"Wrong size row passed to SYSTABLEPERMSRowFactory.buildDescriptor");
- String tablePermsUUIDString = row.getColumn(SYSTABLEPERMS_TABLEPERMSID).getString();
+ String tablePermsUUIDString = row.getColumn(TABLEPERMSID_COL_NUM).getString();
UUID tablePermsUUID = getUUIDFactory().recreateUUID(tablePermsUUIDString);
String tableUUIDString = row.getColumn( TABLEID_COL_NUM).getString();
UUID tableUUID = getUUIDFactory().recreateUUID(tableUUIDString);
@@ -198,9 +202,9 @@
{
columnList = new SystemColumn[ COLUMN_COUNT];
- columnList[ SYSTABLEPERMS_TABLEPERMSID - 1] =
+ columnList[ TABLEPERMSID_COL_NUM - 1] =
new SystemColumnImpl( convertIdCase( "TABLEPERMSID"),
- SYSTABLEPERMS_TABLEPERMSID,
+ TABLEPERMSID_COL_NUM,
0, // precision
0, // scale
false, // nullability
@@ -309,6 +313,9 @@
row.setColumn(2, getDataValueFactory().getNullChar( (StringDataValue) null)); // table UUID
row.setColumn(3, getNullAuthorizationID()); // grantor
break;
+ case TABLEPERMSID_INDEX_NUM:
+ row.setColumn(1, getDataValueFactory().getNullChar( (StringDataValue) null)); // TABLEPERMSID
+ break;
}
return row;
} // end of buildEmptyIndexRow
@@ -338,6 +345,11 @@
row.setColumn(1, getAuthorizationID( perm.getGrantee()));
String tableUUIDStr = ((TablePermsDescriptor) perm).getTableUUID().toString();
row.setColumn(2, getDataValueFactory().getCharDataValue( tableUUIDStr));
+ break;
+ case TABLEPERMSID_INDEX_NUM:
+ row = getExecutionFactory().getIndexableRow( 1);
+ String tablePermsUUIDStr = perm.getObjectID().toString();
+ row.setColumn(1, getDataValueFactory().getCharDataValue( tablePermsUUIDStr));
break;
}
return row;
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/RoutinePrivilegeInfo.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/RoutinePrivilegeInfo.java?rev=421118&r1=421117&r2=421118&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/RoutinePrivilegeInfo.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/RoutinePrivilegeInfo.java Tue Jul 11 21:48:05 2006
@@ -76,7 +76,21 @@
dd.startWriting(lcc);
for( Iterator itr = grantees.iterator(); itr.hasNext();)
{
+ // It is possible for grant statement to look like following
+ // grant execute on function f_abs to mamata2, mamata3;
+ // This means that dd.addRemovePermissionsDescriptor will be called
+ // twice for routinePermsDesc, once for each grantee.
+ // First it's called for mamta2. After a row is inserted for mamta2
+ // into SYS.SYSROUTINEPERMS, the routinePermsDesc's uuid will get
+ // populated with the uuid of the row that just got inserted into
+ // SYS.SYSROUTINEPERMS for mamta2
+ // Next, before dd.addRemovePermissionsDescriptor gets called for
+ // MAMTA3, we should set the routinePermsDesc's uuid to null or
+ // otherwise, we will think that there is a duplicate row getting
+ // inserted for the same uuid.
String grantee = (String) itr.next();
+ if(grant)
+ routinePermsDesc.setUUID(null);
dd.addRemovePermissionsDescriptor( grant, routinePermsDesc, grantee, tc);
}
} // end of executeConstantAction
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/TablePrivilegeInfo.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/TablePrivilegeInfo.java?rev=421118&r1=421117&r2=421118&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/TablePrivilegeInfo.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/TablePrivilegeInfo.java Tue Jul 11 21:48:05 2006
@@ -126,13 +126,46 @@
// Add or remove the privileges to/from the SYS.SYSTABLEPERMS and SYS.SYSCOLPERMS tables
for( Iterator itr = grantees.iterator(); itr.hasNext();)
{
+ // It is possible for grant statement to look like following
+ // grant all privileges on t11 to mamata2, mamata3;
+ // This means that dd.addRemovePermissionsDescriptor will be called
+ // twice for tablePermsDesc, once for each grantee.
+ // First it's called for mamta2. After a row is inserted for mamta2
+ // into SYS.SYSTABLEPERMS, the tablePermsDesc's uuid will get
+ // populated with the uuid of the row that just got inserted into
+ // SYS.SYSTABLEPERMS for mamta2
+ // Next, before dd.addRemovePermissionsDescriptor gets called for
+ // MAMTA3, we should set the tablePermsDesc's uuid to null or
+ // otherwise, we will think that there is a duplicate row getting
+ // inserted for the same uuid.
+ // Same logic applies to colPermsDescriptor
String grantee = (String) itr.next();
if( tablePermsDesc != null)
+ {
+ if (!grant)
+ {
+ TablePermsDescriptor tempTablePermsDesc =
+ dd.getTablePermissions(td.getUUID(), grantee);
+ tablePermsDesc.setUUID(tempTablePermsDesc.getUUID());
+
+ } else
+ tablePermsDesc.setUUID(null);
dd.addRemovePermissionsDescriptor( grant, tablePermsDesc, grantee, tc);
+ }
for( int i = 0; i < columnBitSets.length; i++)
{
if( colPermsDescs[i] != null)
- dd.addRemovePermissionsDescriptor( grant, colPermsDescs[i], grantee, tc);
+ {
+ if (!grant)
+ {
+ ColPermsDescriptor tempColPermsDescriptor =
+ dd.getColumnPermissions(td.getUUID(), colPermsDescs[i].getType() ,grant, grantee);
+ colPermsDescs[i].setUUID(tempColPermsDescriptor.getUUID());
+
+ } else
+ colPermsDescs[i].setUUID(null);
+ dd.addRemovePermissionsDescriptor( grant, colPermsDescs[i], grantee, tc);
+ }
}
}
} // end of executeConstantAction
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/syscat.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/syscat.out?rev=421118&r1=421117&r2=421118&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/syscat.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/syscat.out Tue Jul 11 21:48:05 2006
@@ -81,6 +81,7 @@
SYSALIASES_INDEX3 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSCHECKS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSCOLPERMS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
+SYSCOLPERMS_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSCOLUMNS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSCOLUMNS_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSCONGLOMERATES_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
@@ -98,12 +99,14 @@
SYSKEYS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSREQUIREDPERM_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSROUTINEPERMS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
+SYSROUTINEPERMS_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSSCHEMAS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSSCHEMAS_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSSTATEMENTS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSSTATEMENTS_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSSTATISTICS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSTABLEPERMS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
+SYSTABLEPERMS_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSTABLES_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSTABLES_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSTRIGGERS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
@@ -279,6 +282,7 @@
SYSCHECKS |1
SYSCOLPERMS |0
SYSCOLPERMS |1
+SYSCOLPERMS |1
SYSCOLUMNS |0
SYSCOLUMNS |1
SYSCOLUMNS |1
@@ -306,6 +310,7 @@
SYSREQUIREDPERM |1
SYSROUTINEPERMS |0
SYSROUTINEPERMS |1
+SYSROUTINEPERMS |1
SYSSCHEMAS |0
SYSSCHEMAS |1
SYSSCHEMAS |1
@@ -316,6 +321,7 @@
SYSSTATISTICS |1
SYSTABLEPERMS |0
SYSTABLEPERMS |1
+SYSTABLEPERMS |1
SYSTABLES |0
SYSTABLES |1
SYSTABLES |1
@@ -499,6 +505,7 @@
SYSCHECKS |1
SYSCOLPERMS |0
SYSCOLPERMS |1
+SYSCOLPERMS |1
SYSCOLUMNS |0
SYSCOLUMNS |1
SYSCOLUMNS |1
@@ -526,6 +533,7 @@
SYSREQUIREDPERM |1
SYSROUTINEPERMS |0
SYSROUTINEPERMS |1
+SYSROUTINEPERMS |1
SYSSCHEMAS |0
SYSSCHEMAS |1
SYSSCHEMAS |1
@@ -535,6 +543,7 @@
SYSSTATISTICS |0
SYSSTATISTICS |1
SYSTABLEPERMS |0
+SYSTABLEPERMS |1
SYSTABLEPERMS |1
SYSTABLES |0
SYSTABLES |1
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/syscat.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/syscat.out?rev=421118&r1=421117&r2=421118&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/syscat.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/syscat.out Tue Jul 11 21:48:05 2006
@@ -81,6 +81,7 @@
SYSALIASES_INDEX3 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSCHECKS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSCOLPERMS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
+SYSCOLPERMS_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSCOLUMNS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSCOLUMNS_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSCONGLOMERATES_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
@@ -98,12 +99,14 @@
SYSKEYS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSREQUIREDPERM_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSROUTINEPERMS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
+SYSROUTINEPERMS_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSSCHEMAS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSSCHEMAS_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSSTATEMENTS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSSTATEMENTS_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSSTATISTICS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSTABLEPERMS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
+SYSTABLEPERMS_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSTABLES_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSTABLES_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSTRIGGERS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
@@ -279,6 +282,7 @@
SYSCHECKS |true
SYSCOLPERMS |false
SYSCOLPERMS |true
+SYSCOLPERMS |true
SYSCOLUMNS |false
SYSCOLUMNS |true
SYSCOLUMNS |true
@@ -306,6 +310,7 @@
SYSREQUIREDPERM |true
SYSROUTINEPERMS |false
SYSROUTINEPERMS |true
+SYSROUTINEPERMS |true
SYSSCHEMAS |false
SYSSCHEMAS |true
SYSSCHEMAS |true
@@ -316,6 +321,7 @@
SYSSTATISTICS |true
SYSTABLEPERMS |false
SYSTABLEPERMS |true
+SYSTABLEPERMS |true
SYSTABLES |false
SYSTABLES |true
SYSTABLES |true
@@ -499,6 +505,7 @@
SYSCHECKS |true
SYSCOLPERMS |false
SYSCOLPERMS |true
+SYSCOLPERMS |true
SYSCOLUMNS |false
SYSCOLUMNS |true
SYSCOLUMNS |true
@@ -526,6 +533,7 @@
SYSREQUIREDPERM |true
SYSROUTINEPERMS |false
SYSROUTINEPERMS |true
+SYSROUTINEPERMS |true
SYSSCHEMAS |false
SYSSCHEMAS |true
SYSSCHEMAS |true
@@ -535,6 +543,7 @@
SYSSTATISTICS |false
SYSSTATISTICS |true
SYSTABLEPERMS |false
+SYSTABLEPERMS |true
SYSTABLEPERMS |true
SYSTABLES |false
SYSTABLES |true
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/syscat.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/syscat.out?rev=421118&r1=421117&r2=421118&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/syscat.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/syscat.out Tue Jul 11 21:48:05 2006
@@ -81,6 +81,7 @@
SYSALIASES_INDEX3 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSCHECKS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSCOLPERMS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
+SYSCOLPERMS_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSCOLUMNS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSCOLUMNS_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSCONGLOMERATES_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
@@ -98,12 +99,14 @@
SYSKEYS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSREQUIREDPERM_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSROUTINEPERMS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
+SYSROUTINEPERMS_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSSCHEMAS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSSCHEMAS_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSSTATEMENTS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSSTATEMENTS_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSSTATISTICS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSTABLEPERMS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
+SYSTABLEPERMS_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSTABLES_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSTABLES_INDEX2 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
SYSTRIGGERS_INDEX1 |{ derby.storage.initialPages=1, derby.storage.minimumRecordSize=1, derby.storage.pageReservedSpace=0, derby.storage.pageSize=4096, derby.storage.reusableRecordId=true }
@@ -279,6 +282,7 @@
SYSCHECKS |true
SYSCOLPERMS |false
SYSCOLPERMS |true
+SYSCOLPERMS |true
SYSCOLUMNS |false
SYSCOLUMNS |true
SYSCOLUMNS |true
@@ -306,6 +310,7 @@
SYSREQUIREDPERM |true
SYSROUTINEPERMS |false
SYSROUTINEPERMS |true
+SYSROUTINEPERMS |true
SYSSCHEMAS |false
SYSSCHEMAS |true
SYSSCHEMAS |true
@@ -316,6 +321,7 @@
SYSSTATISTICS |true
SYSTABLEPERMS |false
SYSTABLEPERMS |true
+SYSTABLEPERMS |true
SYSTABLES |false
SYSTABLES |true
SYSTABLES |true
@@ -499,6 +505,7 @@
SYSCHECKS |true
SYSCOLPERMS |false
SYSCOLPERMS |true
+SYSCOLPERMS |true
SYSCOLUMNS |false
SYSCOLUMNS |true
SYSCOLUMNS |true
@@ -526,6 +533,7 @@
SYSREQUIREDPERM |true
SYSROUTINEPERMS |false
SYSROUTINEPERMS |true
+SYSROUTINEPERMS |true
SYSSCHEMAS |false
SYSSCHEMAS |true
SYSSCHEMAS |true
@@ -535,6 +543,7 @@
SYSSTATISTICS |false
SYSSTATISTICS |true
SYSTABLEPERMS |false
+SYSTABLEPERMS |true
SYSTABLEPERMS |true
SYSTABLES |false
SYSTABLES |true