org.apache.derby.iapi.sql.dictionary
Interface DataDictionary

All Known Implementing Classes:
DataDictionaryImpl

public interface DataDictionary

The DataDictionary interface is used with the data dictionary to get descriptors for binding and compilation. Some descriptors (such as table and column descriptors) are added to and deleted from the data dictionary by other modules (like the object store). Other descriptors are added and deleted by the language module itself (e.g. the language module adds and deletes views, because views are too high-level for modules like the object store to know about).

Version:
0.1

Field Summary
static TypeDescriptor CATALOG_TYPE_SYSTEM_IDENTIFIER
          An immutable catalog type that describes the type VARCHAR(128) NOT NULL with collation type UCS_BASIC.
static int CHECK_CONSTRAINT
           
static int COMPILE_ONLY_MODE
          Modes returned from startReading()
static java.lang.String CORE_DATA_DICTIONARY_VERSION
          DataDictionaryVersion property indicates the updgrade level of the system catalogs.
static java.lang.String CREATE_DATA_DICTIONARY_VERSION
          CreateDataDictionaryVersion property indicates the level of the system catalogs, at the time of database creation.
static java.lang.String DATABASE_ID
           
static int DD_VERSION_CS_10_0
          Cloudscape/Derby 10.0 (Gandalf) System Catalog version
static int DD_VERSION_CS_5_0
          Cloudscape 5.0 System Catalog version
static int DD_VERSION_CS_5_1
          Cloudscape 5.1 (Arwen) System Catalog version
static int DD_VERSION_CS_5_2
          Cloudscape 5.2 (Frodo) System Catalog version
static int DD_VERSION_CS_8_1
          Cloudscape 8.1 (Pre-Gandalf) System Catalog version
static int DD_VERSION_CURRENT
          Special version indicating the database must be upgraded to or created at the current engine level DatabaseMetaData will use this to determine if the data dictionary is at the latest System Catalog version number.
static int DD_VERSION_DERBY_10_1
          Derby 10.1 System Catalog version
static int DD_VERSION_DERBY_10_2
          Derby 10.2 System Catalog version
static int DD_VERSION_DERBY_10_3
          Derby 10.3 System Catalog version
static int DD_VERSION_DERBY_10_4
          Derby 10.4 System Catalog version
static int DD_VERSION_DERBY_10_5
          Derby 10.5 System Catalog version
static int DD_VERSION_DERBY_10_6
          Derby 10.6 System Catalog version
static int DDL_MODE
           
static int DROP_CONSTRAINT
           
static int FOREIGNKEY_CONSTRAINT
           
static java.lang.String MODULE
           
static int NOTNULL_CONSTRAINT
           
static int PRIMARYKEY_CONSTRAINT
           
static java.lang.String PROPERTY_CONGLOMERATE_VERSION
           
static java.lang.String SOFT_DATA_DICTIONARY_VERSION
          derby.softDataDictionaryVersion property indicates the soft upgrade level of the system catalogs.
static int SYSALIASES_CATALOG_NUM
           
static int SYSCHECKS_CATALOG_NUM
           
static int SYSCOLPERMS_CATALOG_NUM
           
static int SYSCOLUMNS_CATALOG_NUM
           
static int SYSCONGLOMERATES_CATALOG_NUM
           
static int SYSCONSTRAINTS_CATALOG_NUM
          Catalog numbers for non core system catalogs.
static int SYSDEPENDS_CATALOG_NUM
           
static int SYSDUMMY1_CATALOG_NUM
           
static int SYSFILES_CATALOG_NUM
           
static int SYSFOREIGNKEYS_CATALOG_NUM
           
static int SYSKEYS_CATALOG_NUM
           
static int SYSPERMS_CATALOG_NUM
           
static int SYSROLES_CATALOG_NUM
           
static int SYSROUTINEPERMS_CATALOG_NUM
           
static int SYSSCHEMAS_CATALOG_NUM
           
static int SYSSEQUENCES_CATALOG_NUM
           
static int SYSSTATEMENTS_CATALOG_NUM
           
static int SYSSTATISTICS_CATALOG_NUM
           
static int SYSTABLEPERMS_CATALOG_NUM
           
static int SYSTABLES_CATALOG_NUM
           
static int SYSTRIGGERS_CATALOG_NUM
           
static int SYSVIEWS_CATALOG_NUM
           
static DataTypeDescriptor TYPE_SYSTEM_IDENTIFIER
          An immutable runtime type that describes the type VARCHAR(128) NOT NULL with collation type UCS_BASIC and derivation IMPLICIT.
static int UNIQUE_CONSTRAINT
           
 
Method Summary
 boolean activeConstraint(ConstraintDescriptor constraint)
          Reports whether an individual constraint must be enforced.
 void addConstraintDescriptor(ConstraintDescriptor descriptor, TransactionController tc)
          Adds the given ConstraintDescriptor to the data dictionary, associated with the given table and constraint type.
 void addDescriptor(TupleDescriptor tuple, TupleDescriptor parent, int catalogNumber, boolean allowsDuplicates, TransactionController tc)
          Adds a descriptor to a system catalog identified by the catalogNumber.
 void addDescriptorArray(TupleDescriptor[] tuple, TupleDescriptor parent, int catalogNumber, boolean allowsDuplicates, TransactionController tc)
          array version of addDescriptor.
 boolean addRemovePermissionsDescriptor(boolean add, PermissionsDescriptor perm, java.lang.String grantee, TransactionController tc)
          Add or remove a permission to the permission database.
 void addSPSDescriptor(SPSDescriptor descriptor, TransactionController tc)
          Adds the given SPSDescriptor to the data dictionary, associated with the given table and constraint type.
 boolean checkVersion(int majorVersion, java.lang.String feature)
          Check to see if a database has been upgraded to the required level in order to use a langauge feature that is.
 void clearCaches()
          Clear all of the DataDictionary caches.
 RowLocation[] computeAutoincRowLocations(TransactionController tc, TableDescriptor td)
          returns an array of RowLocations corresponding to the autoincrement columns in the table.
 RoleClosureIterator createRoleClosureIterator(TransactionController tc, java.lang.String role, boolean inverse)
          This method creates a new iterator over the closure of role grants starting or ending with a given role.
 void doneReading(int mode, LanguageConnectionContext lcc)
          Inform this DataDictionary that we have finished reading it.
 void dropAliasDescriptor(AliasDescriptor ad, TransactionController tc)
          Drop an AliasDescriptor from the DataDictionary
 void dropAllColumnDescriptors(UUID tableID, TransactionController tc)
          Drops all column descriptors from the given table.
 void dropAllConglomerateDescriptors(TableDescriptor td, TransactionController tc)
          Drops all conglomerates associated with a table.
 void dropAllConstraintDescriptors(TableDescriptor table, TransactionController tc)
          Drops all ConstraintDescriptors from the data dictionary that are associated with the given table.
 void dropAllPermDescriptors(UUID objectID, TransactionController tc)
          Drops all permission descriptors for the given object
 void dropAllPermsByGrantee(java.lang.String authid, TransactionController tc)
          Drop all permission descriptors corresponding to a grant to the named authentication identifier
 void dropAllRoutinePermDescriptors(UUID routineID, TransactionController tc)
          Drops all routine permission descriptors for the given routine.
 void dropAllTableAndColPermDescriptors(UUID tableID, TransactionController tc)
          Drops all table and column permission descriptors for the given table.
 void dropColumnDescriptor(UUID tableID, java.lang.String columnName, TransactionController tc)
          Given a column name and a table ID, drops the column descriptor from the table.
 void dropConglomerateDescriptor(ConglomerateDescriptor conglomerate, TransactionController tc)
          Drops a conglomerate descriptor
 void dropConstraintDescriptor(ConstraintDescriptor descriptor, TransactionController tc)
          Drops the given ConstraintDescriptor from the data dictionary.
 void dropDependentsStoredDependencies(UUID dependentsUUID, TransactionController tc)
          Remove all of the stored dependencies for a given dependent's ID from the data dictionary.
 void dropDependentsStoredDependencies(UUID dependentsUUID, TransactionController tc, boolean wait)
          Remove all of the stored dependencies for a given dependent's ID from the data dictionary.
 void dropFileInfoDescriptor(FileInfoDescriptor fid)
          Drop a FileDescriptor from the datadictionary.
 void dropRoleGrant(java.lang.String roleName, java.lang.String grantee, java.lang.String grantor, TransactionController tc)
          Drop a role grant
 void dropRoleGrantsByGrantee(java.lang.String grantee, TransactionController tc)
          Drop all role grants corresponding to a grant of (any) role to a named authentication identifier
 void dropRoleGrantsByName(java.lang.String roleName, TransactionController tc)
          Drop all role grants corresponding to a grant of the named role to any authentication identifier
 void dropSchemaDescriptor(java.lang.String schemaName, TransactionController tc)
          Drop the descriptor for a schema, given the schema's name
 void dropSequenceDescriptor(SequenceDescriptor sequenceDescriptor, TransactionController tc)
          Drop a sequence descriptor.
 void dropSPSDescriptor(SPSDescriptor descriptor, TransactionController tc)
          Drops the given SPSDescriptor.
 void dropSPSDescriptor(UUID uuid, TransactionController tc)
          Drops the given SPSDescriptor.
 void dropStatisticsDescriptors(UUID tableUUID, UUID referenceUUID, TransactionController tc)
          Drops all statistics descriptors for a given table/index column combination.
 void dropStoredDependency(DependencyDescriptor dd, TransactionController tc)
          Drop a dependency from the data dictionary.
 void dropTableDescriptor(TableDescriptor td, SchemaDescriptor schema, TransactionController tc)
          Drop the table descriptor.
 void dropTriggerDescriptor(TriggerDescriptor descriptor, TransactionController tc)
          Drops the given TriggerDescriptor that is associated with the given table and constraint type from the data dictionary.
 void dropViewDescriptor(ViewDescriptor viewDescriptor, TransactionController tc)
          Drops the view descriptor from the data dictionary.
 boolean existsGrantToAuthid(java.lang.String authId, TransactionController tc)
          Check all dictionary tables and return true if there is any GRANT descriptor containing authId as its grantee.
 boolean existsSchemaOwnedBy(java.lang.String authid, TransactionController tc)
          Return true of there exists a schema whose authorizationId equals authid, i.e.
 ConstraintDescriptorList getActiveConstraintDescriptors(ConstraintDescriptorList cdl)
          Convert a constraint descriptor list into a list of active constraints, that is, constraints which must be enforced.
 AliasDescriptor getAliasDescriptor(java.lang.String schemaID, java.lang.String aliasName, char nameSpace)
          Get a AliasDescriptor by alias name and name space.
 AliasDescriptor getAliasDescriptor(UUID uuid)
          Get an AliasDescriptor given its UUID.
 AliasDescriptor getAliasDescriptorForUDT(TransactionController tc, DataTypeDescriptor dtd)
          Get the alias descriptor for an ANSI UDT.
 java.util.List getAllDependencyDescriptorsList()
          Build and return an List with DependencyDescriptors for all of the stored dependencies.
 java.util.List getAllSPSDescriptors()
          Get every statement in this database.
 java.lang.String getAuthorizationDatabaseOwner()
          Get authorizationID of Database Owner
 java.lang.String getBuiltinVTIClass(TableDescriptor td, boolean asTableFunction)
          Return the Java class to use for a builtin VTI to which the received table descriptor maps.
 int getCacheMode()
          Returns the cache mode of the data dictionary.
 int getCollationTypeOfSystemSchemas()
          Return the collation type for SYSTEM schemas.
 int getCollationTypeOfUserSchemas()
          Return the collation type for user schemas.
 ColumnDescriptor getColumnDescriptorByDefaultId(UUID uuid)
          Get a ColumnDescriptor given its Default ID.
 ColPermsDescriptor getColumnPermissions(UUID colPermsUUID)
          Get one user's column privileges on a table using colPermsUUID
 ColPermsDescriptor getColumnPermissions(UUID tableUUID, int privType, boolean forGrant, java.lang.String authorizationId)
          Get one user's column privileges for a table.
 ColPermsDescriptor getColumnPermissions(UUID tableUUID, java.lang.String privTypeStr, boolean forGrant, java.lang.String authorizationId)
          Get one user's column privileges for a table.
 ConglomerateDescriptor getConglomerateDescriptor(long conglomerateNumber)
          Get a ConglomerateDescriptor given its conglomerate number.
 ConglomerateDescriptor getConglomerateDescriptor(java.lang.String indexName, SchemaDescriptor sd, boolean forUpdate)
          Gets a conglomerate descriptor for the named index in the given schema, getting an exclusive row lock on the matching row in sys.sysconglomerates (for DDL concurrency) if requested.
 ConglomerateDescriptor getConglomerateDescriptor(UUID uuid)
          Get a ConglomerateDescriptor given its UUID.
 ConglomerateDescriptor[] getConglomerateDescriptors(long conglomerateNumber)
          Get an array of conglomerate descriptors for the given conglomerate number.
 ConglomerateDescriptor[] getConglomerateDescriptors(UUID uuid)
          Get an array of ConglomerateDescriptors given the UUID.
 ConstraintDescriptor getConstraintDescriptor(java.lang.String constraintName, UUID schemaID)
          Get a ConstraintDescriptor given its name and schema ID.
 ConstraintDescriptor getConstraintDescriptor(TableDescriptor td, UUID uuid)
          Get the constraint descriptor given a table and the UUID String of the backing index.
 ConstraintDescriptor getConstraintDescriptor(UUID uuid)
          Get a ConstraintDescriptor given its UUID.
 ConstraintDescriptor getConstraintDescriptorById(TableDescriptor td, UUID uuid)
          Get the constraint descriptor given a table and the UUID String of the constraint
 ConstraintDescriptor getConstraintDescriptorByName(TableDescriptor td, SchemaDescriptor sd, java.lang.String constraintName, boolean forUpdate)
          Get the constraint descriptor given a TableDescriptor and the constraint name.
 ConstraintDescriptorList getConstraintDescriptors(TableDescriptor td)
          Load up the constraint descriptor list for this table descriptor and return it.
 TableDescriptor getConstraintTableDescriptor(UUID constraintId)
          Return a table descriptor corresponding to the TABLEID field in SYSCONSTRAINTS where CONSTRAINTID matches the constraintId passed in.
 void getCurrentValueAndAdvance(java.lang.String sequenceUUIDstring, NumberDataValue returnValue)
          Get the next number from an ANSI/ISO sequence generator which was created with the CREATE SEQUENCE statement.
 DataDescriptorGenerator getDataDescriptorGenerator()
          Get a DataDescriptorGenerator, through which we can create objects to be stored in the DataDictionary.
 DataValueFactory getDataValueFactory()
          Get the DataValueFactory associated with this database.
 SchemaDescriptor getDeclaredGlobalTemporaryTablesSchemaDescriptor()
          Get the descriptor for the declared global temporary table schema which is always named "SESSION".
 DependencyManager getDependencyManager()
          Returns the dependency manager for this DataDictionary.
 java.util.List getDependentsDescriptorList(java.lang.String dependentID)
          Gets a list of the dependency descriptors for the given dependent's id.
 int getEngineType()
           
 ExecutionFactory getExecutionFactory()
          Get the ExecutionFactory associated with this database.
 FileInfoDescriptor getFileInfoDescriptor(SchemaDescriptor sd, java.lang.String name)
          Get a FileInfoDescriptor given its SQL name and schema name.
 FileInfoDescriptor getFileInfoDescriptor(UUID id)
          Get a FileInfoDescriptor given its id.
 ConstraintDescriptorList getForeignKeys(UUID constraintId)
          Return a list of foreign keys constraints referencing this constraint.
 PermDescriptor getGenericPermissions(UUID permUUID)
          Get one user's privileges for an object using the permUUID
 PermDescriptor getGenericPermissions(UUID objectUUID, java.lang.String objectType, java.lang.String privilege, java.lang.String granteeAuthId)
          Get permissions granted to one user for an object using the object's Id and the user's authorization Id.
 java.util.List getProvidersDescriptorList(java.lang.String providerID)
          Gets a list of the dependency descriptors for the given provider's id.
 RoleGrantDescriptor getRoleDefinitionDescriptor(java.lang.String roleName)
          Get a role grant descriptor for a role definition.
 RoleGrantDescriptor getRoleGrantDescriptor(java.lang.String roleName, java.lang.String grantee, java.lang.String grantor)
          Get a descriptor for a role grant
 RoleGrantDescriptor getRoleGrantDescriptor(UUID uuid)
          Get the role grant descriptor corresponding to the uuid provided
 java.util.List getRoutineList(java.lang.String schemaID, java.lang.String routineName, char nameSpace)
          Get the list of routines matching the schema and routine name.
 RoutinePermsDescriptor getRoutinePermissions(UUID routinePermsUUID)
          Get one user's privileges for a routine using routinePermsUUID
 RoutinePermsDescriptor getRoutinePermissions(UUID routineUUID, java.lang.String authorizationId)
          Get one user's permissions for a routine (function or procedure).
 RowLocation getRowLocationTemplate(LanguageConnectionContext lcc, TableDescriptor td)
           
 SchemaDescriptor getSchemaDescriptor(java.lang.String schemaName, TransactionController tc, boolean raiseError)
          Get the descriptor for the named schema.
 SchemaDescriptor getSchemaDescriptor(UUID schemaId, int isolationLevel, TransactionController tc)
          Get the SchemaDescriptor for the given schema identifier.
 SchemaDescriptor getSchemaDescriptor(UUID schemaId, TransactionController tc)
          Get the SchemaDescriptor for the given schema identifier.
 SequenceDescriptor getSequenceDescriptor(SchemaDescriptor sd, java.lang.String sequenceName)
          get a descriptor for a Sequence by sequence name
 SequenceDescriptor getSequenceDescriptor(UUID uuid)
          get a descriptor for a Sequence by uuid
 NumberDataValue getSetAutoincrementValue(RowLocation rl, TransactionController tc, boolean doUpdate, NumberDataValue newValue, boolean wait)
          getSetAutoincrementValue fetches the autoincrement value from SYSCOLUMNS given a row location.
 SPSDescriptor getSPSDescriptor(java.lang.String name, SchemaDescriptor sd)
          Get the stored prepared statement descriptor given a sps name.
 SPSDescriptor getSPSDescriptor(UUID uuid)
          Get a SPSDescriptor given its UUID.
 DataTypeDescriptor[] getSPSParams(SPSDescriptor spsd, java.util.Vector defaults)
          Get all the parameter descriptors for an SPS.
 java.util.List getStatisticsDescriptors(TableDescriptor td)
          Gets all statistics Descriptors for a given table.
 SubKeyConstraintDescriptor getSubKeyConstraint(UUID constraintId, int type)
          Get a SubKeyConstraintDescriptor from syskeys or sysforeignkeys for the specified constraint id.
 SchemaDescriptor getSysIBMSchemaDescriptor()
          Get the descriptor for the SYSIBM schema.
 SchemaDescriptor getSystemSchemaDescriptor()
          Get the descriptor for the system schema.
 java.lang.String getSystemSQLName()
          Returns a unique system generated name of the form SQLyymmddhhmmssxxn yy - year, mm - month, dd - day of month, hh - hour, mm - minute, ss - second, xx - the first 2 digits of millisec because we don't have enough space to keep the exact millisec value, n - number between 0-9
 TableDescriptor getTableDescriptor(java.lang.String tableName, SchemaDescriptor schema, TransactionController tc)
          Get the descriptor for the named table within the given schema.
 TableDescriptor getTableDescriptor(UUID tableID)
          Get the descriptor for the table with the given UUID.
 TablePermsDescriptor getTablePermissions(UUID tablePermsUUID)
          Get one user's privileges on a table using tablePermsUUID
 TablePermsDescriptor getTablePermissions(UUID tableUUID, java.lang.String authorizationId)
          Get one user's privileges on a table using tableUUID and authorizationid
 TriggerDescriptor getTriggerDescriptor(java.lang.String name, SchemaDescriptor sd)
          Get the stored prepared statement descriptor given a sps name.
 TriggerDescriptor getTriggerDescriptor(UUID uuid)
          Get a TriggerDescriptor given its UUID.
 GenericDescriptorList getTriggerDescriptors(TableDescriptor td)
          Load up the trigger descriptor list for this table descriptor and return it.
 UUIDFactory getUUIDFactory()
          Get the UUID Factory.
 ViewDescriptor getViewDescriptor(TableDescriptor td)
          Gets the viewDescriptor for the view given its TableDescriptor.
 ViewDescriptor getViewDescriptor(UUID uuid)
          Gets the viewDescriptor for the view with the given UUID.
 java.lang.String getVTIClass(TableDescriptor td, boolean asTableFunction)
          Return the Java class to use for the VTI to which the received table descriptor maps.
 java.util.Hashtable hashAllConglomerateDescriptorsByNumber(TransactionController tc)
          Get all of the ConglomerateDescriptors in the database and hash them by conglomerate number.
 java.util.Hashtable hashAllTableDescriptorsByTableId(TransactionController tc)
          Get all of the TableDescriptors in the database and hash them by TableId This is useful as a performance optimization for the locking VTIs.
 void invalidateAllSPSPlans()
          Invalidate all the stored plans in SYS.SYSSTATEMENTS.
 boolean isSchemaEmpty(SchemaDescriptor sd)
          Indicate whether there is anything in the particular schema.
 boolean isSystemSchemaName(java.lang.String name)
          Determine whether a string is the name of the system schema.
 void setAutoincrementValue(TransactionController tc, UUID tableUUID, java.lang.String columnName, long aiValue, boolean incrementNeeded)
          sets a new value in SYSCOLUMNS for a particular autoincrement column.
 int startReading(LanguageConnectionContext lcc)
          Inform this DataDictionary that we are about to start reading it.
 void startWriting(LanguageConnectionContext lcc)
          Inform this DataDictionary that we are about to start writing to it.
 void transactionFinished()
          Inform this DataDictionary that the transaction in which writes have been done (or may have been done) has been committed or rolled back.
 void updateConglomerateDescriptor(ConglomerateDescriptor[] cds, long conglomerateNumber, TransactionController tc)
          Update the conglomerateNumber for an array of ConglomerateDescriptors.
 void updateConglomerateDescriptor(ConglomerateDescriptor cd, long conglomerateNumber, TransactionController tc)
          Update the conglomerateNumber for a ConglomerateDescriptor.
 void updateConstraintDescriptor(ConstraintDescriptor cd, UUID formerUUID, int[] colsToSet, TransactionController tc)
          Update the constraint descriptor in question.
 void updateLockGranularity(TableDescriptor td, SchemaDescriptor schema, char lockGranularity, TransactionController tc)
          Update the lockGranularity for the specified table.
 void updateMetadataSPSes(TransactionController tc)
          Drop and recreate metadata stored prepared statements.
 void updateSPS(SPSDescriptor spsd, TransactionController tc, boolean recompile, boolean updateSYSCOLUMNS, boolean firstCompilation)
          Updates SYS.SYSSTATEMENTS with the info from the SPSD.
 void updateSYSCOLPERMSforAddColumnToUserTable(UUID tableID, TransactionController tc)
          Need to update SYSCOLPERMS for a given table because a new column has been added to that table.
 void updateSYSCOLPERMSforDropColumn(UUID tableID, TransactionController tc, ColumnDescriptor columnDescriptor)
          Update SYSCOLPERMS to reflect the dropping of a column from a table.
 void updateTriggerDescriptor(TriggerDescriptor triggerd, UUID formerUUID, int[] colsToSet, TransactionController tc)
          Update the trigger descriptor in question.
 boolean usesSqlAuthorization()
          Get authorization model in force, SqlStandard or legacy mode
 

Field Detail

MODULE

static final java.lang.String MODULE
See Also:
Constant Field Values

DD_VERSION_CURRENT

static final int DD_VERSION_CURRENT
Special version indicating the database must be upgraded to or created at the current engine level DatabaseMetaData will use this to determine if the data dictionary is at the latest System Catalog version number. A data dictionary version will not be at latest System Catalog version when the database is getting booted in soft upgrade mode. In soft upgrade mode, engine should goto metadata.properties to get the sql for the metadata calls rather than going to the system tables (and using stored versions of these queries). This is required because if the metadata sql has changed between the releases, we want to use the latest metadata sql rather than what is stored in the system catalogs. Had to introduce this behavior for EmbeddedDatabaseMetaData in 10.2 release where optimizer overrides syntax was changed. If 10.2 engine in soft upgrade mode for a pre-10.2 database went to system tables for stored metadata queires, the metadata calls would fail because 10.2 release doesn't recognize the pre-10.2 optimizer overrides syntax. To get around this, the 10.2 engine in soft upgrade mode should get the sql from metata.properties which has been changed to 10.2 syntax for optimizer overrides. To make this approach more generic for all soft upgrades, from 10.2 release onwards, DatabaseMetaData calls will always look at metadata.properties so it will get the compatible syntax for that release.

See Also:
Constant Field Values

DD_VERSION_CS_5_0

static final int DD_VERSION_CS_5_0
Cloudscape 5.0 System Catalog version

See Also:
Constant Field Values

DD_VERSION_CS_5_1

static final int DD_VERSION_CS_5_1
Cloudscape 5.1 (Arwen) System Catalog version

See Also:
Constant Field Values

DD_VERSION_CS_5_2

static final int DD_VERSION_CS_5_2
Cloudscape 5.2 (Frodo) System Catalog version

See Also:
Constant Field Values

DD_VERSION_CS_8_1

static final int DD_VERSION_CS_8_1
Cloudscape 8.1 (Pre-Gandalf) System Catalog version

See Also:
Constant Field Values

DD_VERSION_CS_10_0

static final int DD_VERSION_CS_10_0
Cloudscape/Derby 10.0 (Gandalf) System Catalog version

See Also:
Constant Field Values

DD_VERSION_DERBY_10_1

static final int DD_VERSION_DERBY_10_1
Derby 10.1 System Catalog version

See Also:
Constant Field Values

DD_VERSION_DERBY_10_2

static final int DD_VERSION_DERBY_10_2
Derby 10.2 System Catalog version

See Also:
Constant Field Values

DD_VERSION_DERBY_10_3

static final int DD_VERSION_DERBY_10_3
Derby 10.3 System Catalog version

See Also:
Constant Field Values

DD_VERSION_DERBY_10_4

static final int DD_VERSION_DERBY_10_4
Derby 10.4 System Catalog version

See Also:
Constant Field Values

DD_VERSION_DERBY_10_5

static final int DD_VERSION_DERBY_10_5
Derby 10.5 System Catalog version

See Also:
Constant Field Values

DD_VERSION_DERBY_10_6

static final int DD_VERSION_DERBY_10_6
Derby 10.6 System Catalog version

See Also:
Constant Field Values

DATABASE_ID

static final java.lang.String DATABASE_ID
See Also:
Constant Field Values

CORE_DATA_DICTIONARY_VERSION

static final java.lang.String CORE_DATA_DICTIONARY_VERSION
DataDictionaryVersion property indicates the updgrade level of the system catalogs. Stored as a database property. Set to an instance of DD_Version with the major number one of the DataDictionary.DD_* values.

See Also:
Constant Field Values

CREATE_DATA_DICTIONARY_VERSION

static final java.lang.String CREATE_DATA_DICTIONARY_VERSION
CreateDataDictionaryVersion property indicates the level of the system catalogs, at the time of database creation. Stored as a database property. Set to an instance of DD_Version.

See Also:
Constant Field Values

SOFT_DATA_DICTIONARY_VERSION

static final java.lang.String SOFT_DATA_DICTIONARY_VERSION
derby.softDataDictionaryVersion property indicates the soft upgrade level of the system catalogs. Soft upgrade will sometime make minor changes to the system catalogs that can be safely consumed by earlier versions, such as correcting values. Stored as a database property. Set to an instance of DD_Version.

See Also:
Constant Field Values

PROPERTY_CONGLOMERATE_VERSION

static final java.lang.String PROPERTY_CONGLOMERATE_VERSION
See Also:
Constant Field Values

TYPE_SYSTEM_IDENTIFIER

static final DataTypeDescriptor TYPE_SYSTEM_IDENTIFIER
An immutable runtime type that describes the type VARCHAR(128) NOT NULL with collation type UCS_BASIC and derivation IMPLICIT.


CATALOG_TYPE_SYSTEM_IDENTIFIER

static final TypeDescriptor CATALOG_TYPE_SYSTEM_IDENTIFIER
An immutable catalog type that describes the type VARCHAR(128) NOT NULL with collation type UCS_BASIC.


SYSCONGLOMERATES_CATALOG_NUM

static final int SYSCONGLOMERATES_CATALOG_NUM
See Also:
Constant Field Values

SYSTABLES_CATALOG_NUM

static final int SYSTABLES_CATALOG_NUM
See Also:
Constant Field Values

SYSCOLUMNS_CATALOG_NUM

static final int SYSCOLUMNS_CATALOG_NUM
See Also:
Constant Field Values

SYSSCHEMAS_CATALOG_NUM

static final int SYSSCHEMAS_CATALOG_NUM
See Also:
Constant Field Values

SYSCONSTRAINTS_CATALOG_NUM

static final int SYSCONSTRAINTS_CATALOG_NUM
Catalog numbers for non core system catalogs.

See Also:
Constant Field Values

SYSKEYS_CATALOG_NUM

static final int SYSKEYS_CATALOG_NUM
See Also:
Constant Field Values

SYSDEPENDS_CATALOG_NUM

static final int SYSDEPENDS_CATALOG_NUM
See Also:
Constant Field Values

SYSALIASES_CATALOG_NUM

static final int SYSALIASES_CATALOG_NUM
See Also:
Constant Field Values

SYSVIEWS_CATALOG_NUM

static final int SYSVIEWS_CATALOG_NUM
See Also:
Constant Field Values

SYSCHECKS_CATALOG_NUM

static final int SYSCHECKS_CATALOG_NUM
See Also:
Constant Field Values

SYSFOREIGNKEYS_CATALOG_NUM

static final int SYSFOREIGNKEYS_CATALOG_NUM
See Also:
Constant Field Values

SYSSTATEMENTS_CATALOG_NUM

static final int SYSSTATEMENTS_CATALOG_NUM
See Also:
Constant Field Values

SYSFILES_CATALOG_NUM

static final int SYSFILES_CATALOG_NUM
See Also:
Constant Field Values

SYSTRIGGERS_CATALOG_NUM

static final int SYSTRIGGERS_CATALOG_NUM
See Also:
Constant Field Values

SYSSTATISTICS_CATALOG_NUM

static final int SYSSTATISTICS_CATALOG_NUM
See Also:
Constant Field Values

SYSDUMMY1_CATALOG_NUM

static final int SYSDUMMY1_CATALOG_NUM
See Also:
Constant Field Values

SYSTABLEPERMS_CATALOG_NUM

static final int SYSTABLEPERMS_CATALOG_NUM
See Also:
Constant Field Values

SYSCOLPERMS_CATALOG_NUM

static final int SYSCOLPERMS_CATALOG_NUM
See Also:
Constant Field Values

SYSROUTINEPERMS_CATALOG_NUM

static final int SYSROUTINEPERMS_CATALOG_NUM
See Also:
Constant Field Values

SYSROLES_CATALOG_NUM

static final int SYSROLES_CATALOG_NUM
See Also:
Constant Field Values

SYSSEQUENCES_CATALOG_NUM

static final int SYSSEQUENCES_CATALOG_NUM
See Also:
Constant Field Values

SYSPERMS_CATALOG_NUM

static final int SYSPERMS_CATALOG_NUM
See Also:
Constant Field Values

NOTNULL_CONSTRAINT

static final int NOTNULL_CONSTRAINT
See Also:
Constant Field Values

PRIMARYKEY_CONSTRAINT

static final int PRIMARYKEY_CONSTRAINT
See Also:
Constant Field Values

UNIQUE_CONSTRAINT

static final int UNIQUE_CONSTRAINT
See Also:
Constant Field Values

CHECK_CONSTRAINT

static final int CHECK_CONSTRAINT
See Also:
Constant Field Values

DROP_CONSTRAINT

static final int DROP_CONSTRAINT
See Also:
Constant Field Values

FOREIGNKEY_CONSTRAINT

static final int FOREIGNKEY_CONSTRAINT
See Also:
Constant Field Values

COMPILE_ONLY_MODE

static final int COMPILE_ONLY_MODE
Modes returned from startReading()

See Also:
Constant Field Values

DDL_MODE

static final int DDL_MODE
See Also:
Constant Field Values
Method Detail

clearCaches

void clearCaches()
                 throws StandardException
Clear all of the DataDictionary caches.

Throws:
StandardException - Standard Derby error policy

startReading

int startReading(LanguageConnectionContext lcc)
                 throws StandardException
Inform this DataDictionary that we are about to start reading it. This means using the various get methods in the DataDictionary. Generally, this is done during query compilation.

Parameters:
lcc - The LanguageConnectionContext to use.
Returns:
The mode that the reader will use, to be passed to doneReading() Either COMPILE_ONLY_MODE or DDL_MODE.
Throws:
StandardException - Thrown on error

doneReading

void doneReading(int mode,
                 LanguageConnectionContext lcc)
                 throws StandardException
Inform this DataDictionary that we have finished reading it. This typically happens at the end of compilation.

Parameters:
mode - The mode that was returned by startReading().
lcc - The LanguageConnectionContext to use.
Throws:
StandardException - Thrown on error

startWriting

void startWriting(LanguageConnectionContext lcc)
                  throws StandardException
Inform this DataDictionary that we are about to start writing to it. This means using the various add and drop methods in the DataDictionary. Generally, this is done during execution of DDL.

Parameters:
lcc - The LanguageConnectionContext to use.
Throws:
StandardException - Thrown on error

transactionFinished

void transactionFinished()
                         throws StandardException
Inform this DataDictionary that the transaction in which writes have been done (or may have been done) has been committed or rolled back.

Throws:
StandardException - Thrown on error

getExecutionFactory

ExecutionFactory getExecutionFactory()
Get the ExecutionFactory associated with this database.

Returns:
The ExecutionFactory

getDataValueFactory

DataValueFactory getDataValueFactory()
Get the DataValueFactory associated with this database.

Returns:
The ExecutionFactory

getDataDescriptorGenerator

DataDescriptorGenerator getDataDescriptorGenerator()
Get a DataDescriptorGenerator, through which we can create objects to be stored in the DataDictionary.

Returns:
A DataDescriptorGenerator

getAuthorizationDatabaseOwner

java.lang.String getAuthorizationDatabaseOwner()
Get authorizationID of Database Owner

Returns:
authorizationID

usesSqlAuthorization

boolean usesSqlAuthorization()
Get authorization model in force, SqlStandard or legacy mode

Returns:
Whether sqlAuthorization is being used

getCollationTypeOfSystemSchemas

int getCollationTypeOfSystemSchemas()
Return the collation type for SYSTEM schemas. In Derby 10.3, this will always be UCS_BASIC

Returns:
the collation type for SYSTEM schemas

getCollationTypeOfUserSchemas

int getCollationTypeOfUserSchemas()
Return the collation type for user schemas. In Derby 10.3, this is either UCS_BASIC or TERRITORY_BASED. The exact value is decided by what has user asked for through JDBC url optional attribute COLLATION. If that atrribute is set to UCS_BASIC, the collation type for user schemas will be UCS_BASIC. If that attribute is set to TERRITORY_BASED, the collation type for user schemas will be TERRITORY_BASED. If the user has not provided COLLATION attribute value in the JDBC url at database create time, then collation type of user schemas will default to UCS_BASIC. Pre-10.3 databases after upgrade to Derby 10.3 will also use UCS_BASIC for collation type of user schemas.

Returns:
the collation type for user schemas

getSchemaDescriptor

SchemaDescriptor getSchemaDescriptor(java.lang.String schemaName,
                                     TransactionController tc,
                                     boolean raiseError)
                                     throws StandardException
Get the descriptor for the named schema. Schema descriptors include authorization ids and schema ids. SQL92 allows a schema to specify a default character set - we will not support this. Will check default schema for a match before scanning a system table.

Parameters:
schemaName - The name of the schema we're interested in. Must not be null.
tc - TransactionController
raiseError - whether an exception should be thrown if the schema does not exist.
Returns:
The descriptor for the schema. Can be null (not found) if raiseError is false.
Throws:
StandardException - Thrown on error

getSchemaDescriptor

SchemaDescriptor getSchemaDescriptor(UUID schemaId,
                                     TransactionController tc)
                                     throws StandardException
Get the SchemaDescriptor for the given schema identifier.

Parameters:
schemaId - The id of the schema we're interested in.
tc - The transaction controller to us when scanning SYSSCHEMAS
Returns:
The descriptor for the schema, null if no such schema exists.
Throws:
StandardException - Thrown on failure

getSchemaDescriptor

SchemaDescriptor getSchemaDescriptor(UUID schemaId,
                                     int isolationLevel,
                                     TransactionController tc)
                                     throws StandardException
Get the SchemaDescriptor for the given schema identifier.

Parameters:
schemaId - The id of the schema we're interested in.
isolationLevel - use this explicit isolation level
tc - The transaction controller to us when scanning SYSSCHEMAS
Returns:
The descriptor for the schema, null if no such schema exists.
Throws:
StandardException - Thrown on failure

existsSchemaOwnedBy

boolean existsSchemaOwnedBy(java.lang.String authid,
                            TransactionController tc)
                            throws StandardException
Return true of there exists a schema whose authorizationId equals authid, i.e. SYSSCHEMAS contains a row whose column AUTHORIZATIONID equals authid.

Parameters:
authid - authorizationId
tc - TransactionController
Returns:
true iff there is a matching schema
Throws:
StandardException

getSystemSchemaDescriptor

SchemaDescriptor getSystemSchemaDescriptor()
                                           throws StandardException
Get the descriptor for the system schema. Schema descriptors include authorization ids and schema ids. SQL92 allows a schema to specify a default character set - we will not support this.

Returns:
The descriptor for the schema.
Throws:
StandardException - Thrown on failure

getSysIBMSchemaDescriptor

SchemaDescriptor getSysIBMSchemaDescriptor()
                                           throws StandardException
Get the descriptor for the SYSIBM schema. Schema descriptors include authorization ids and schema ids. SQL92 allows a schema to specify a default character set - we will not support this.

Returns:
The descriptor for the schema.
Throws:
StandardException - Thrown on failure

getDeclaredGlobalTemporaryTablesSchemaDescriptor

SchemaDescriptor getDeclaredGlobalTemporaryTablesSchemaDescriptor()
                                                                  throws StandardException
Get the descriptor for the declared global temporary table schema which is always named "SESSION". SQL92 allows a schema to specify a default character set - we will not support this.

Returns:
The descriptor for the schema.
Throws:
StandardException - Thrown on failure

isSystemSchemaName

boolean isSystemSchemaName(java.lang.String name)
                           throws StandardException
Determine whether a string is the name of the system schema.

Parameters:
name -
Returns:
true or false
Throws:
StandardException - Thrown on failure

dropRoleGrant

void dropRoleGrant(java.lang.String roleName,
                   java.lang.String grantee,
                   java.lang.String grantor,
                   TransactionController tc)
                   throws StandardException
Drop a role grant

Parameters:
roleName - The name of the role to drop
grantee - The grantee
grantor - The grantor
tc - Transaction Controller
Throws:
StandardException - Thrown on failure

dropRoleGrantsByGrantee

void dropRoleGrantsByGrantee(java.lang.String grantee,
                             TransactionController tc)
                             throws StandardException
Drop all role grants corresponding to a grant of (any) role to a named authentication identifier

Parameters:
grantee - The grantee
tc - Transaction Controller
Throws:
StandardException - Thrown on failure

dropRoleGrantsByName

void dropRoleGrantsByName(java.lang.String roleName,
                          TransactionController tc)
                          throws StandardException
Drop all role grants corresponding to a grant of the named role to any authentication identifier

Parameters:
roleName - The role name granted
tc - Transaction Controller
Throws:
StandardException - Thrown on failure

createRoleClosureIterator

RoleClosureIterator createRoleClosureIterator(TransactionController tc,
                                              java.lang.String role,
                                              boolean inverse)
                                              throws StandardException
This method creates a new iterator over the closure of role grants starting or ending with a given role. This method will cause reading of dictionary, so should be called inside a transaction, after a dd.startReading() or dd.startWriting() call.

Parameters:
tc - transaction controller
role - name of starting point for closure
inverse - If true, compute closure on inverse of relation GRANT role-a TO role-b that is, we look at closure of all roles granted to role. If false, we look at closure of all roles that have been granted role.
Throws:
StandardException

dropAllPermsByGrantee

void dropAllPermsByGrantee(java.lang.String authid,
                           TransactionController tc)
                           throws StandardException
Drop all permission descriptors corresponding to a grant to the named authentication identifier

Parameters:
authid - The authentication identifier
tc - Transaction Controller
Throws:
StandardException - Thrown on failure

dropSchemaDescriptor

void dropSchemaDescriptor(java.lang.String schemaName,
                          TransactionController tc)
                          throws StandardException
Drop the descriptor for a schema, given the schema's name

Parameters:
schemaName - The name of the schema to drop
tc - Transaction Controller
Throws:
StandardException - Thrown on failure

isSchemaEmpty

boolean isSchemaEmpty(SchemaDescriptor sd)
                      throws StandardException
Indicate whether there is anything in the particular schema. Checks for tables in the the schema, on the assumption that there cannot be any other objects in a schema w/o a table.

Parameters:
sd - schema descriptor
Returns:
true/false
Throws:
StandardException - on error

getTableDescriptor

TableDescriptor getTableDescriptor(java.lang.String tableName,
                                   SchemaDescriptor schema,
                                   TransactionController tc)
                                   throws StandardException
Get the descriptor for the named table within the given schema. If the schema parameter is NULL, it looks for the table in the current (default) schema. Table descriptors include object ids, object types (table, view, etc.)

Parameters:
tableName - The name of the table to get the descriptor for
schema - The descriptor for the schema the table lives in. If null, use the current (default) schema.
tc - Transaction context.
Returns:
The descriptor for the table, null if table does not existe.
Throws:
StandardException - Thrown on failure

getTableDescriptor

TableDescriptor getTableDescriptor(UUID tableID)
                                   throws StandardException
Get the descriptor for the table with the given UUID. NOTE: I'm assuming that the object store will define an UUID for persistent objects. I'm also assuming that UUIDs are unique across schemas, and that the object store will be able to do efficient lookups across schemas (i.e. that no schema descriptor parameter is needed).

Parameters:
tableID - The UUID of the table to get the descriptor for
Returns:
The descriptor for the table, null if the table does not exist.
Throws:
StandardException - Thrown on failure

dropTableDescriptor

void dropTableDescriptor(TableDescriptor td,
                         SchemaDescriptor schema,
                         TransactionController tc)
                         throws StandardException
Drop the table descriptor.

Parameters:
td - The table descriptor to drop
schema - A descriptor for the schema the table is a part of. If this parameter is NULL, then the table is part of the current (default) schema
tc - TransactionController for the transaction
Throws:
StandardException - Thrown on error

updateLockGranularity

void updateLockGranularity(TableDescriptor td,
                           SchemaDescriptor schema,
                           char lockGranularity,
                           TransactionController tc)
                           throws StandardException
Update the lockGranularity for the specified table.

Parameters:
td - The TableDescriptor for the table
schema - The SchemaDescriptor for the table
lockGranularity - The new lockGranularity
tc - The TransactionController to use.
Throws:
StandardException - Thrown on error

getColumnDescriptorByDefaultId

ColumnDescriptor getColumnDescriptorByDefaultId(UUID uuid)
                                                throws StandardException
Get a ColumnDescriptor given its Default ID.

Parameters:
uuid - The UUID of the default
Returns:
The ColumnDescriptor for the column.
Throws:
StandardException - Thrown on failure

dropColumnDescriptor

void dropColumnDescriptor(UUID tableID,
                          java.lang.String columnName,
                          TransactionController tc)
                          throws StandardException
Given a column name and a table ID, drops the column descriptor from the table.

Parameters:
tableID - The UUID of the table to drop the column from
columnName - The name of the column to drop
tc - TransactionController for the transaction
Throws:
StandardException - Thrown on failure

dropAllColumnDescriptors

void dropAllColumnDescriptors(UUID tableID,
                              TransactionController tc)
                              throws StandardException
Drops all column descriptors from the given table. Useful for DROP TABLE.

Parameters:
tableID - The UUID of the table from which to drop all the column descriptors
tc - TransactionController for the transaction
Throws:
StandardException - Thrown on failure

dropAllTableAndColPermDescriptors

void dropAllTableAndColPermDescriptors(UUID tableID,
                                       TransactionController tc)
                                       throws StandardException
Drops all table and column permission descriptors for the given table.

Parameters:
tableID - The UUID of the table for which to drop all the table and column permission descriptors
tc - TransactionController for the transaction
Throws:
StandardException - Thrown on failure

updateSYSCOLPERMSforAddColumnToUserTable

void updateSYSCOLPERMSforAddColumnToUserTable(UUID tableID,
                                              TransactionController tc)
                                              throws StandardException
Need to update SYSCOLPERMS for a given table because a new column has been added to that table. SYSCOLPERMS has a column called "COLUMNS" which is a bit map for all the columns in a given user table. Since ALTER TABLE .. ADD COLUMN .. has added one more column, we need to expand "COLUMNS" for that new column Currently, this code gets called during execution phase of ALTER TABLE .. ADD COLUMN ..

Parameters:
tableID - The UUID of the table to which a column has been added
tc - TransactionController for the transaction
Throws:
StandardException - Thrown on error

updateSYSCOLPERMSforDropColumn

void updateSYSCOLPERMSforDropColumn(UUID tableID,
                                    TransactionController tc,
                                    ColumnDescriptor columnDescriptor)
                                    throws StandardException
Update SYSCOLPERMS to reflect the dropping of a column from a table. This method rewrites SYSCOLPERMS rows to update the COLUMNS bitmap to reflect the removal of a column from a table. Currently, this code gets called during execution phase of ALTER TABLE .. DROP COLUMN ..

Parameters:
tableID - The UUID of the table whose column has been dropped
tc - TransactionController for the transaction
columnDescriptor - Info about the dropped column
Throws:
StandardException - Thrown on error

dropAllRoutinePermDescriptors

void dropAllRoutinePermDescriptors(UUID routineID,
                                   TransactionController tc)
                                   throws StandardException
Drops all routine permission descriptors for the given routine.

Parameters:
routineID - The UUID of the routine for which to drop all the permission descriptors
tc - TransactionController for the transaction
Throws:
StandardException - Thrown on failure

getViewDescriptor

ViewDescriptor getViewDescriptor(UUID uuid)
                                 throws StandardException
Gets the viewDescriptor for the view with the given UUID.

Parameters:
uuid - The UUID for the view
Returns:
A descriptor for the view
Throws:
StandardException - Thrown on error

getViewDescriptor

ViewDescriptor getViewDescriptor(TableDescriptor td)
                                 throws StandardException
Gets the viewDescriptor for the view given its TableDescriptor.

Parameters:
td - The TableDescriptor for the view.
Returns:
A descriptor for the view
Throws:
StandardException - Thrown on error

dropViewDescriptor

void dropViewDescriptor(ViewDescriptor viewDescriptor,
                        TransactionController tc)
                        throws StandardException
Drops the view descriptor from the data dictionary.

Parameters:
viewDescriptor - A descriptor for the view to be dropped
tc - TransactionController to use
Throws:
StandardException - Thrown on failure

getConstraintDescriptor

ConstraintDescriptor getConstraintDescriptor(UUID uuid)
                                             throws StandardException
Get a ConstraintDescriptor given its UUID.

Parameters:
uuid - The UUID
Returns:
The ConstraintDescriptor for the constraint.
Throws:
StandardException - Thrown on failure

getConstraintDescriptor

ConstraintDescriptor getConstraintDescriptor(java.lang.String constraintName,
                                             UUID schemaID)
                                             throws StandardException
Get a ConstraintDescriptor given its name and schema ID.

Parameters:
constraintName - Constraint name.
schemaID - The schema UUID
Returns:
The ConstraintDescriptor for the constraint.
Throws:
StandardException - Thrown on failure

getConstraintDescriptors

ConstraintDescriptorList getConstraintDescriptors(TableDescriptor td)
                                                  throws StandardException
Load up the constraint descriptor list for this table descriptor and return it. If the descriptor list is already loaded up, it is retuned without further ado.

Parameters:
td - The table descriptor.
Returns:
The ConstraintDescriptorList for the table
Throws:
StandardException - Thrown on failure

getActiveConstraintDescriptors

ConstraintDescriptorList getActiveConstraintDescriptors(ConstraintDescriptorList cdl)
                                                        throws StandardException
Convert a constraint descriptor list into a list of active constraints, that is, constraints which must be enforced. For the Core product, these are just the constraints on the original list. However, during REFRESH we may have deferred some constraints until statement end. This method returns the corresponding list of constraints which AREN'T deferred.

Parameters:
cdl - The constraint descriptor list to wrap with an Active constraint descriptor list.
Returns:
The corresponding Active ConstraintDescriptorList
Throws:
StandardException - Thrown on failure

activeConstraint

boolean activeConstraint(ConstraintDescriptor constraint)
                         throws StandardException
Reports whether an individual constraint must be enforced. For the Core product, this routine always returns true. However, during REFRESH we may have deferred some constraints until statement end. This method returns false if the constraint deferred

Parameters:
constraint - the constraint to check
Returns:
The corresponding Active ConstraintDescriptorList
Throws:
StandardException - Thrown on failure

getConstraintDescriptor

ConstraintDescriptor getConstraintDescriptor(TableDescriptor td,
                                             UUID uuid)
                                             throws StandardException
Get the constraint descriptor given a table and the UUID String of the backing index.

Parameters:
td - The table descriptor.
uuid - The UUID for the backing index.
Returns:
The ConstraintDescriptor for the constraint.
Throws:
StandardException - Thrown on failure

getConstraintDescriptorById

ConstraintDescriptor getConstraintDescriptorById(TableDescriptor td,
                                                 UUID uuid)
                                                 throws StandardException
Get the constraint descriptor given a table and the UUID String of the constraint

Parameters:
td - The table descriptor.
uuid - The UUID for the constraint
Returns:
The ConstraintDescriptor for the constraint.
Throws:
StandardException - Thrown on failure

getConstraintDescriptorByName

ConstraintDescriptor getConstraintDescriptorByName(TableDescriptor td,
                                                   SchemaDescriptor sd,
                                                   java.lang.String constraintName,
                                                   boolean forUpdate)
                                                   throws StandardException
Get the constraint descriptor given a TableDescriptor and the constraint name.

Parameters:
td - The table descriptor.
sd - The schema descriptor for the constraint
constraintName - The constraint name.
forUpdate - Whether or not access is for update
Returns:
The ConstraintDescriptor for the constraint.
Throws:
StandardException - Thrown on failure

getConstraintTableDescriptor

TableDescriptor getConstraintTableDescriptor(UUID constraintId)
                                             throws StandardException
Return a table descriptor corresponding to the TABLEID field in SYSCONSTRAINTS where CONSTRAINTID matches the constraintId passed in.

Parameters:
constraintId - The id of the constraint
Returns:
the corresponding table descriptor
Throws:
StandardException - Thrown on error

getForeignKeys

ConstraintDescriptorList getForeignKeys(UUID constraintId)
                                        throws StandardException
Return a list of foreign keys constraints referencing this constraint. Returns both enabled and disabled constraints.

Parameters:
constraintId - The id of the referenced constraint
Returns:
list of constraints
Throws:
StandardException - Thrown on error

addConstraintDescriptor

void addConstraintDescriptor(ConstraintDescriptor descriptor,
                             TransactionController tc)
                             throws StandardException
Adds the given ConstraintDescriptor to the data dictionary, associated with the given table and constraint type.

Parameters:
descriptor - The descriptor to add
tc - The transaction controller
Throws:
StandardException - Thrown on error

dropConstraintDescriptor

void dropConstraintDescriptor(ConstraintDescriptor descriptor,
                              TransactionController tc)
                              throws StandardException
Drops the given ConstraintDescriptor from the data dictionary. NOTE: Caller is responsible for dropping any backing index

Parameters:
descriptor - The descriptor to drop
tc - The TransactionController.
Throws:
StandardException - Thrown on failure

dropAllConstraintDescriptors

void dropAllConstraintDescriptors(TableDescriptor table,
                                  TransactionController tc)
                                  throws StandardException
Drops all ConstraintDescriptors from the data dictionary that are associated with the given table. NOTE: Caller is responsible for dropping any backing index

Parameters:
table - The table from which to drop all constraint descriptors
tc - The TransactionController.
Throws:
StandardException - Thrown on failure

updateConstraintDescriptor

void updateConstraintDescriptor(ConstraintDescriptor cd,
                                UUID formerUUID,
                                int[] colsToSet,
                                TransactionController tc)
                                throws StandardException
Update the constraint descriptor in question. Updates every row in the base conglomerate.

Parameters:
cd - The Constraintescriptor
formerUUID - The UUID for this column in SYSCONSTRAINTS, may differ from what is in cd if this is the column that is being set.
colsToSet - Array of ints of columns to be modified, 1 based. May be null (all cols).
tc - The TransactionController to use
Throws:
StandardException - Thrown on failure

getSubKeyConstraint

SubKeyConstraintDescriptor getSubKeyConstraint(UUID constraintId,
                                               int type)
                                               throws StandardException
Get a SubKeyConstraintDescriptor from syskeys or sysforeignkeys for the specified constraint id. For primary foreign and and unique key constraints.

Parameters:
constraintId - The UUID for the constraint.
type - The type of the constraint (e.g. DataDictionary.FOREIGNKEY_CONSTRAINT)
Returns:
SubKeyConstraintDescriptor The Sub descriptor for the constraint.
Throws:
StandardException - Thrown on failure

getSPSDescriptor

SPSDescriptor getSPSDescriptor(UUID uuid)
                               throws StandardException
Get a SPSDescriptor given its UUID.

Parameters:
uuid - The UUID
Returns:
The SPSDescriptor for the constraint.
Throws:
StandardException - Thrown on failure

getSPSDescriptor

SPSDescriptor getSPSDescriptor(java.lang.String name,
                               SchemaDescriptor sd)
                               throws StandardException
Get the stored prepared statement descriptor given a sps name.

Parameters:
name - The sps name.
sd - The schema descriptor.
Returns:
The SPSDescriptor for the constraint.
Throws:
StandardException - Thrown on failure

getAllSPSDescriptors

java.util.List getAllSPSDescriptors()
                                    throws StandardException
Get every statement in this database. Return the SPSDescriptors in an list.

Returns:
the list of descriptors
Throws:
StandardException - Thrown on failure

getSPSParams

DataTypeDescriptor[] getSPSParams(SPSDescriptor spsd,
                                  java.util.Vector defaults)
                                  throws StandardException
Get all the parameter descriptors for an SPS. Look up the params in SYSCOLUMNS and turn them into parameter descriptors.

Parameters:
spsd - sps descriptor
defaults - the parameter defaults. If not null, all the parameter defaults will be stuffed in here.
Returns:
array of data type descriptors
Throws:
StandardException - Thrown on error

addSPSDescriptor

void addSPSDescriptor(SPSDescriptor descriptor,
                      TransactionController tc)
                      throws StandardException
Adds the given SPSDescriptor to the data dictionary, associated with the given table and constraint type.

Parameters:
descriptor - The descriptor to add
tc - The transaction controller
Throws:
StandardException - Thrown on error

updateSPS

void updateSPS(SPSDescriptor spsd,
               TransactionController tc,
               boolean recompile,
               boolean updateSYSCOLUMNS,
               boolean firstCompilation)
               throws StandardException
Updates SYS.SYSSTATEMENTS with the info from the SPSD.

Parameters:
spsd - The descriptor to add
tc - The transaction controller
recompile - whether to recompile or invalidate
updateSYSCOLUMNS - indicate whether syscolumns needs to be updated or not.
firstCompilation - first time SPS is getting compiled.
Throws:
StandardException - Thrown on error

dropSPSDescriptor

void dropSPSDescriptor(SPSDescriptor descriptor,
                       TransactionController tc)
                       throws StandardException
Drops the given SPSDescriptor.

Parameters:
descriptor - The descriptor to drop
tc - The TransactionController.
Throws:
StandardException - Thrown on failure

dropSPSDescriptor

void dropSPSDescriptor(UUID uuid,
                       TransactionController tc)
                       throws StandardException
Drops the given SPSDescriptor.

Parameters:
uuid - the statement uuid
tc - The TransactionController.
Throws:
StandardException - Thrown on failure

invalidateAllSPSPlans

void invalidateAllSPSPlans()
                           throws StandardException
Invalidate all the stored plans in SYS.SYSSTATEMENTS.

Throws:
StandardException - Thrown on error

getTriggerDescriptor

TriggerDescriptor getTriggerDescriptor(UUID uuid)
                                       throws StandardException
Get a TriggerDescriptor given its UUID.

Parameters:
uuid - The UUID
Returns:
The TriggerDescriptor for the constraint.
Throws:
StandardException - Thrown on failure

getTriggerDescriptor

TriggerDescriptor getTriggerDescriptor(java.lang.String name,
                                       SchemaDescriptor sd)
                                       throws StandardException
Get the stored prepared statement descriptor given a sps name.

Parameters:
name - The sps name.
sd - The schema descriptor.
Returns:
The TriggerDescriptor for the constraint.
Throws:
StandardException - Thrown on failure

getTriggerDescriptors

GenericDescriptorList getTriggerDescriptors(TableDescriptor td)
                                            throws StandardException
Load up the trigger descriptor list for this table descriptor and return it. If the descriptor list is already loaded up, it is retuned without further ado.

Parameters:
td - The table descriptor.
Returns:
The ConstraintDescriptorList for the table
Throws:
StandardException - Thrown on failure

updateTriggerDescriptor

void updateTriggerDescriptor(TriggerDescriptor triggerd,
                             UUID formerUUID,
                             int[] colsToSet,
                             TransactionController tc)
                             throws StandardException
Update the trigger descriptor in question. Updates every row in the base conglomerate.

Parameters:
triggerd - The Triggerescriptor
formerUUID - The UUID for this column in SYSTRIGGERS, may differ from what is in triggerd if this is the column that is being set.
colsToSet - Array of ints of columns to be modified, 1 based. May be null (all cols).
tc - The TransactionController to use
Throws:
StandardException - Thrown on failure

dropTriggerDescriptor

void dropTriggerDescriptor(TriggerDescriptor descriptor,
                           TransactionController tc)
                           throws StandardException
Drops the given TriggerDescriptor that is associated with the given table and constraint type from the data dictionary.

Parameters:
descriptor - The descriptor to drop
tc - The TransactionController.
Throws:
StandardException - Thrown on failure

hashAllConglomerateDescriptorsByNumber

java.util.Hashtable hashAllConglomerateDescriptorsByNumber(TransactionController tc)
                                                           throws StandardException
Get all of the ConglomerateDescriptors in the database and hash them by conglomerate number. This is useful as a performance optimization for the locking VTIs. NOTE: This method will scan SYS.SYSCONGLOMERATES at READ COMMITTED. It should really scan at READ UNCOMMITTED, but there is no such thing yet.

Parameters:
tc - TransactionController for the transaction
Returns:
A Hashtable with all of the ConglomerateDescriptors in the database hashed by conglomerate number.
Throws:
StandardException - Thrown on failure

hashAllTableDescriptorsByTableId

java.util.Hashtable hashAllTableDescriptorsByTableId(TransactionController tc)
                                                     throws StandardException
Get all of the TableDescriptors in the database and hash them by TableId This is useful as a performance optimization for the locking VTIs. NOTE: This method will scan SYS.SYSTABLES at READ COMMITTED. It should really scan at READ UNCOMMITTED, but there is no such thing yet.

Parameters:
tc - TransactionController for the transaction
Returns:
A Hashtable with all of the Table descriptors in the database hashed by TableId
Throws:
StandardException - Thrown on failure

getConglomerateDescriptor

ConglomerateDescriptor getConglomerateDescriptor(UUID uuid)
                                                 throws StandardException
Get a ConglomerateDescriptor given its UUID. If it is an index conglomerate shared by at least another duplicate index, this returns one of the ConglomerateDescriptors for those indexes.

Parameters:
uuid - The UUID
Returns:
A ConglomerateDescriptor for the conglomerate.
Throws:
StandardException - Thrown on failure

getConglomerateDescriptors

ConglomerateDescriptor[] getConglomerateDescriptors(UUID uuid)
                                                    throws StandardException
Get an array of ConglomerateDescriptors given the UUID. If it is a heap conglomerate or an index conglomerate not shared by a duplicate index, the size of the return array is 1.

Parameters:
uuid - The UUID
Returns:
An array of ConglomerateDescriptors for the conglomerate.
Throws:
StandardException - Thrown on failure

getConglomerateDescriptor

ConglomerateDescriptor getConglomerateDescriptor(long conglomerateNumber)
                                                 throws StandardException
Get a ConglomerateDescriptor given its conglomerate number. If it is an index conglomerate shared by at least another duplicate index, this returns one of the ConglomerateDescriptors for those indexes.

Parameters:
conglomerateNumber - The conglomerate number.
Returns:
A ConglomerateDescriptor for the conglomerate. Returns NULL if no such conglomerate.
Throws:
StandardException - Thrown on failure

getConglomerateDescriptors

ConglomerateDescriptor[] getConglomerateDescriptors(long conglomerateNumber)
                                                    throws StandardException
Get an array of conglomerate descriptors for the given conglomerate number. If it is a heap conglomerate or an index conglomerate not shared by a duplicate index, the size of the return array is 1.

Parameters:
conglomerateNumber - The number for the conglomerate we're interested in
Returns:
An array of ConglomerateDescriptors that share the requested conglomerate. Returns size 0 array if no such conglomerate.
Throws:
StandardException - Thrown on failure

getConglomerateDescriptor

ConglomerateDescriptor getConglomerateDescriptor(java.lang.String indexName,
                                                 SchemaDescriptor sd,
                                                 boolean forUpdate)
                                                 throws StandardException
Gets a conglomerate descriptor for the named index in the given schema, getting an exclusive row lock on the matching row in sys.sysconglomerates (for DDL concurrency) if requested.

Parameters:
indexName - The name of the index we're looking for
sd - The schema descriptor
forUpdate - Whether or not to get an exclusive row lock on the row in sys.sysconglomerates.
Returns:
A ConglomerateDescriptor describing the requested conglomerate. Returns NULL if no such conglomerate.
Throws:
StandardException - Thrown on failure

dropConglomerateDescriptor

void dropConglomerateDescriptor(ConglomerateDescriptor conglomerate,
                                TransactionController tc)
                                throws StandardException
Drops a conglomerate descriptor

Parameters:
conglomerate - The ConglomerateDescriptor for the conglomerate
tc - TransactionController for the transaction
Throws:
StandardException - Thrown on failure

dropAllConglomerateDescriptors

void dropAllConglomerateDescriptors(TableDescriptor td,
                                    TransactionController tc)
                                    throws StandardException
Drops all conglomerates associated with a table.

Parameters:
td - The TableDescriptor of the table
tc - TransactionController for the transaction
Throws:
StandardException - Thrown on failure

updateConglomerateDescriptor

void updateConglomerateDescriptor(ConglomerateDescriptor[] cds,
                                  long conglomerateNumber,
                                  TransactionController tc)
                                  throws StandardException
Update the conglomerateNumber for an array of ConglomerateDescriptors. In case of more than one ConglomerateDescriptor, they are for duplicate indexes sharing one conglomerate. This is useful, in 1.3, when doing a bulkInsert into an empty table where we insert into a new conglomerate. (This will go away in 1.4.)

Parameters:
cds - The array of ConglomerateDescriptors
conglomerateNumber - The new conglomerate number
tc - The TransactionController to use
Throws:
StandardException - Thrown on failure

updateConglomerateDescriptor

void updateConglomerateDescriptor(ConglomerateDescriptor cd,
                                  long conglomerateNumber,
                                  TransactionController tc)
                                  throws StandardException
Update the conglomerateNumber for a ConglomerateDescriptor. This is useful, in 1.3, when doing a bulkInsert into an empty table where we insert into a new conglomerate. (This will go away in 1.4.)

Parameters:
cd - The ConglomerateDescriptor
conglomerateNumber - The new conglomerate number
tc - The TransactionController to use
Throws:
StandardException - Thrown on failure

getDependentsDescriptorList

java.util.List getDependentsDescriptorList(java.lang.String dependentID)
                                           throws StandardException
Gets a list of the dependency descriptors for the given dependent's id.

Parameters:
dependentID - The ID of the dependent we're interested in
Returns:
List Returns a list of DependencyDescriptors. Returns an empty list if no stored dependencies for the dependent's ID.
Throws:
StandardException - Thrown on failure

getProvidersDescriptorList

java.util.List getProvidersDescriptorList(java.lang.String providerID)
                                          throws StandardException
Gets a list of the dependency descriptors for the given provider's id.

Parameters:
providerID - The ID of the provider we're interested in
Returns:
List Returns a list of DependencyDescriptors. Returns an empty List if no stored dependencies for the provider's ID.
Throws:
StandardException - Thrown on failure

getAllDependencyDescriptorsList

java.util.List getAllDependencyDescriptorsList()
                                               throws StandardException
Build and return an List with DependencyDescriptors for all of the stored dependencies. This is useful for consistency checking.

Returns:
List List of all DependencyDescriptors.
Throws:
StandardException - Thrown on failure

dropStoredDependency

void dropStoredDependency(DependencyDescriptor dd,
                          TransactionController tc)
                          throws StandardException
Drop a dependency from the data dictionary.

Parameters:
dd - The DependencyDescriptor.
tc - TransactionController for the transaction
Throws:
StandardException - Thrown on failure

dropDependentsStoredDependencies

void dropDependentsStoredDependencies(UUID dependentsUUID,
                                      TransactionController tc)
                                      throws StandardException
Remove all of the stored dependencies for a given dependent's ID from the data dictionary.

Parameters:
dependentsUUID - Dependent's uuid
tc - TransactionController for the transaction
Throws:
StandardException - Thrown on failure

getUUIDFactory

UUIDFactory getUUIDFactory()
Get the UUID Factory. (No need to make the UUIDFactory a module.)

Returns:
UUIDFactory The UUID Factory for this DataDictionary.

getAliasDescriptorForUDT

AliasDescriptor getAliasDescriptorForUDT(TransactionController tc,
                                         DataTypeDescriptor dtd)
                                         throws StandardException
Get the alias descriptor for an ANSI UDT.

Parameters:
tc - The transaction to use: if null, use the compilation transaction
dtd - The UDT's type descriptor
Returns:
The UDT's alias descriptor if it is an ANSI UDT; null otherwise.
Throws:
StandardException

getAliasDescriptor

AliasDescriptor getAliasDescriptor(UUID uuid)
                                   throws StandardException
Get an AliasDescriptor given its UUID.

Parameters:
uuid - The UUID
Returns:
The AliasDescriptor for method alias.
Throws:
StandardException - Thrown on failure

getAliasDescriptor

AliasDescriptor getAliasDescriptor(java.lang.String schemaID,
                                   java.lang.String aliasName,
                                   char nameSpace)
                                   throws StandardException
Get a AliasDescriptor by alias name and name space. NOTE: caller responsible for handling no match.

Parameters:
schemaID - schema identifier
aliasName - The alias name.
nameSpace - The alias name space.
Returns:
AliasDescriptor AliasDescriptor for the alias name and name space
Throws:
StandardException - Thrown on failure

getRoutineList

java.util.List getRoutineList(java.lang.String schemaID,
                              java.lang.String routineName,
                              char nameSpace)
                              throws StandardException
Get the list of routines matching the schema and routine name.

Throws:
StandardException

dropAliasDescriptor

void dropAliasDescriptor(AliasDescriptor ad,
                         TransactionController tc)
                         throws StandardException
Drop an AliasDescriptor from the DataDictionary

Parameters:
ad - The AliasDescriptor to drop
tc - The TransactionController
Throws:
StandardException - Thrown on failure

getEngineType

int getEngineType()

getFileInfoDescriptor

FileInfoDescriptor getFileInfoDescriptor(UUID id)
                                         throws StandardException
Get a FileInfoDescriptor given its id.

Parameters:
id - The descriptor's id.
Throws:
StandardException - Thrown on failure

getFileInfoDescriptor

FileInfoDescriptor getFileInfoDescriptor(SchemaDescriptor sd,
                                         java.lang.String name)
                                         throws StandardException
Get a FileInfoDescriptor given its SQL name and schema name.

Parameters:
sd - the schema that holds the FileInfoDescriptor.
name - SQL name of file.
Throws:
StandardException - Thrown on failure

dropFileInfoDescriptor

void dropFileInfoDescriptor(FileInfoDescriptor fid)
                            throws StandardException
Drop a FileDescriptor from the datadictionary.

Throws:
StandardException - Oops

computeAutoincRowLocations

RowLocation[] computeAutoincRowLocations(TransactionController tc,
                                         TableDescriptor td)
                                         throws StandardException
returns an array of RowLocations corresponding to the autoincrement columns in the table. The RowLocation points to the row in SYSCOLUMNS for this particular ai column. The array has as many elements as there are columns in the table. If a column is not an ai column, the entry is NULL.

Parameters:
tc - TransactionControler to use to compute the row location.
td - TableDescriptor
Returns:
array of row locations, null if table has no autoinc columns.
Throws:
standard - exception on error.
StandardException

getRowLocationTemplate

RowLocation getRowLocationTemplate(LanguageConnectionContext lcc,
                                   TableDescriptor td)
                                   throws StandardException
Throws:
StandardException

getSetAutoincrementValue

NumberDataValue getSetAutoincrementValue(RowLocation rl,
                                         TransactionController tc,
                                         boolean doUpdate,
                                         NumberDataValue newValue,
                                         boolean wait)
                                         throws StandardException
getSetAutoincrementValue fetches the autoincrement value from SYSCOLUMNS given a row location. If doUpdate is true it updates the autoincrement column with the new value. the value returned by this routine is the new value and *NOT* the value in the system catalogs.

Parameters:
rl - RowLocation of the entry in SYSCOLUMNS.
tc - TransactionController to use.
doUpdate - Write the new value to disk if TRUE.
newValue - A NumberDataValue to use to return incremented value. If null, then the caller simply wants the current value fromd disk.
wait - If true, then the caller wants to wait for locks. When using a nested user xaction we want to timeout right away if the parent holds the lock.
Throws:
StandardException

setAutoincrementValue

void setAutoincrementValue(TransactionController tc,
                           UUID tableUUID,
                           java.lang.String columnName,
                           long aiValue,
                           boolean incrementNeeded)
                           throws StandardException
sets a new value in SYSCOLUMNS for a particular autoincrement column.

Parameters:
tc - Transaction Controller to use.
tableUUID - Table Descriptor
columnName - Name of the column.
aiValue - Value to write to SYSCOLUMNS.
incrementNeeded - Whether we should increment the value passed in by the user (aiValue) before writing the value to SYSCOLUMNS.
Throws:
StandardException

getCurrentValueAndAdvance

void getCurrentValueAndAdvance(java.lang.String sequenceUUIDstring,
                               NumberDataValue returnValue)
                               throws StandardException
Get the next number from an ANSI/ISO sequence generator which was created with the CREATE SEQUENCE statement. May raise an exception if the sequence was defined as NO CYCLE and the range of the sequence is exhausted. May allocate a range of sequence numbers and update the CURRENTVALUE column of the corresponding row in SYSSEQUENCES. This work is done in the execution transaction of the current session.

Parameters:
sequenceUUIDstring - String value of the UUID which identifies the sequence
returnValue - This is a data value to be stuffed with the next sequence number.
Throws:
StandardException - if the sequence does not cycle and its range is exhausted

getStatisticsDescriptors

java.util.List getStatisticsDescriptors(TableDescriptor td)
                                        throws StandardException
Gets all statistics Descriptors for a given table.

Throws:
StandardException

dropStatisticsDescriptors

void dropStatisticsDescriptors(UUID tableUUID,
                               UUID referenceUUID,
                               TransactionController tc)
                               throws StandardException
Drops all statistics descriptors for a given table/index column combination. If the index is not specified, then all statistics for the table are dropped.

Parameters:
tableUUID - UUID of the table
referenceUUID - UUID of the index. This can be null.
tc - Transcation Controller to use.
Throws:
StandardException

getDependencyManager

DependencyManager getDependencyManager()
Returns the dependency manager for this DataDictionary. Associated with each DataDictionary object there is a DependencyManager object which keeps track of both persistent and stored dependencies.

See Also:
DependencyManager

getCacheMode

int getCacheMode()
Returns the cache mode of the data dictionary.


getSystemSQLName

java.lang.String getSystemSQLName()
Returns a unique system generated name of the form SQLyymmddhhmmssxxn yy - year, mm - month, dd - day of month, hh - hour, mm - minute, ss - second, xx - the first 2 digits of millisec because we don't have enough space to keep the exact millisec value, n - number between 0-9

Returns:
system generated unique name

addDescriptor

void addDescriptor(TupleDescriptor tuple,
                   TupleDescriptor parent,
                   int catalogNumber,
                   boolean allowsDuplicates,
                   TransactionController tc)
                   throws StandardException
Adds a descriptor to a system catalog identified by the catalogNumber.

Parameters:
tuple - descriptor to insert.
parent - parent descriptor; e.g for a column parent is the tabledescriptor to which the descriptor is beign inserted. for most other objects it is the schema descriptor.
catalogNumber - a value which identifies the catalog into which the descriptor should be inserted. It is the users responsibility to ensure that the catalogNumber is consistent with the tuple being inserted.
allowsDuplicates - whether an exception should be thrown if the insert results in a duplicate; if this parameter is FALSE then one of the following exception will be thrown; LANG_OBJECT_ALREADY_EXISTS (if parent is null) or LANG_OBJECT_ALREADY_EXISTS_IN_OBJECT (if parent is not null). The error message is created by getting the name and type of the tuple and parent.
tc - the transaction controller to use to do all of this.
Throws:
StandardException
See Also:
SYSCONGLOMERATES_CATALOG_NUM, DataDictionaryImpl.duplicateDescriptorException(org.apache.derby.iapi.sql.dictionary.TupleDescriptor, org.apache.derby.iapi.sql.dictionary.TupleDescriptor), addDescriptorArray(org.apache.derby.iapi.sql.dictionary.TupleDescriptor[], org.apache.derby.iapi.sql.dictionary.TupleDescriptor, int, boolean, org.apache.derby.iapi.store.access.TransactionController)

addDescriptorArray

void addDescriptorArray(TupleDescriptor[] tuple,
                        TupleDescriptor parent,
                        int catalogNumber,
                        boolean allowsDuplicates,
                        TransactionController tc)
                        throws StandardException
array version of addDescriptor.

Throws:
StandardException
See Also:
addDescriptor(org.apache.derby.iapi.sql.dictionary.TupleDescriptor, org.apache.derby.iapi.sql.dictionary.TupleDescriptor, int, boolean, org.apache.derby.iapi.store.access.TransactionController)

checkVersion

boolean checkVersion(int majorVersion,
                     java.lang.String feature)
                     throws StandardException
Check to see if a database has been upgraded to the required level in order to use a langauge feature that is.

This is used to ensure new functionality that would lead on disk information not understood by a previous release is not executed while in soft upgrade mode. Ideally this is called at compile time and the parser has a utility method to enable easy use at parse time.

To use this method, a feature implemented in a certain release (DataDictionary version) would call it with the constant matching the release. E.g. for a new feature added in 10.1, a call such as

                // check and throw an exception if the database is not at 10.1
                dd.checkVersion(DataDictionary.DD_VERSION_DERBY_10_1, "NEW FEATURE NAME");

                
This call would occur during the compile time, usually indirectly through the parser utility method, but direct calls can be made during QueryNode initialization, or even at bind time.
It is not expected that this method would be called at execution time.

Parameters:
majorVersion - Data Dictionary major version (DataDictionary.DD_ constant)
feature - Non-null to throw an error, null to return the state of the version match.
Returns:
True if the database has been upgraded to the required level, false otherwise.
Throws:
StandardException

addRemovePermissionsDescriptor

boolean addRemovePermissionsDescriptor(boolean add,
                                       PermissionsDescriptor perm,
                                       java.lang.String grantee,
                                       TransactionController tc)
                                       throws StandardException
Add or remove a permission to the permission database.

Parameters:
add - if true then add the permission, if false remove it.
perm -
grantee -
tc -
Returns:
True means revoke has removed a privilege from system table and hence the caller of this method should send invalidation actions to PermssionDescriptor's dependents.
Throws:
StandardException

getTablePermissions

TablePermsDescriptor getTablePermissions(UUID tableUUID,
                                         java.lang.String authorizationId)
                                         throws StandardException
Get one user's privileges on a table using tableUUID and authorizationid

Parameters:
tableUUID -
authorizationId - The user name
Returns:
a TablePermsDescriptor or null if the user has no permissions on the table.
Throws:
StandardException

getTablePermissions

TablePermsDescriptor getTablePermissions(UUID tablePermsUUID)
                                         throws StandardException
Get one user's privileges on a table using tablePermsUUID

Parameters:
tablePermsUUID -
Returns:
a TablePermsDescriptor
Throws:
StandardException

getColumnPermissions

ColPermsDescriptor getColumnPermissions(UUID tableUUID,
                                        int privType,
                                        boolean forGrant,
                                        java.lang.String authorizationId)
                                        throws StandardException
Get one user's column privileges for a table.

Parameters:
tableUUID -
privType - Authorizer.SELECT_PRIV, Authorizer.UPDATE_PRIV, or Authorizer.REFERENCES_PRIV
forGrant -
authorizationId - The user name
Returns:
a ColPermsDescriptor or null if the user has no separate column permissions of the specified type on the table. Note that the user may have been granted permission on all the columns of the table (no column list), in which case this routine will return null. You must also call getTablePermissions to see if the user has permission on a set of columns.
Throws:
StandardException

getColumnPermissions

ColPermsDescriptor getColumnPermissions(UUID tableUUID,
                                        java.lang.String privTypeStr,
                                        boolean forGrant,
                                        java.lang.String authorizationId)
                                        throws StandardException
Get one user's column privileges for a table. This routine gets called during revoke privilege processing

Parameters:
tableUUID -
privTypeStr - (as String) Authorizer.SELECT_PRIV, Authorizer.UPDATE_PRIV, or Authorizer.REFERENCES_PRIV
forGrant -
authorizationId - The user name
Returns:
a ColPermsDescriptor or null if the user has no separate column permissions of the specified type on the table. Note that the user may have been granted permission on all the columns of the table (no column list), in which case this routine will return null. You must also call getTablePermissions to see if the user has permission on a set of columns.
Throws:
StandardException

getColumnPermissions

ColPermsDescriptor getColumnPermissions(UUID colPermsUUID)
                                        throws StandardException
Get one user's column privileges on a table using colPermsUUID

Parameters:
colPermsUUID -
Returns:
a ColPermsDescriptor
Throws:
StandardException

getRoutinePermissions

RoutinePermsDescriptor getRoutinePermissions(UUID routineUUID,
                                             java.lang.String authorizationId)
                                             throws StandardException
Get one user's permissions for a routine (function or procedure).

Parameters:
routineUUID -
authorizationId - The user's name
Returns:
The descriptor of the users permissions for the routine.
Throws:
StandardException

getRoutinePermissions

RoutinePermsDescriptor getRoutinePermissions(UUID routinePermsUUID)
                                             throws StandardException
Get one user's privileges for a routine using routinePermsUUID

Parameters:
routinePermsUUID -
Returns:
a RoutinePermsDescriptor
Throws:
StandardException

getVTIClass

java.lang.String getVTIClass(TableDescriptor td,
                             boolean asTableFunction)
                             throws StandardException
Return the Java class to use for the VTI to which the received table descriptor maps. There are two kinds of VTI mappings that we do: the first is for "table names", the second is for "table function names". Table names can only be mapped to VTIs that do not accept any arguments; any VTI that has at least one constructor which accepts one or more arguments must be mapped from a table *function* name. An example of a VTI "table name" is the following: select * from SYSCS_DIAG.LOCK_TABLE In this case "SYSCS_DIAG.LOCK_TABLE" is the table name that we want to map. Since the corresonding VTI does not accept any arguments, this VTI table name can be used anywhere a normal base table name can be used. An example of a VTI "table function name" is the following: select * from TABLE(SYSCS_DIAG.SPACE_TABLE(?)) x In this case "SYSCS_DIAG.SPACE_TABLE" is the table function name that we want to map. Since the corresponding VTI can take either one or two arguments we have to use the TABLE constructor syntax to pass the argument(s) in as if we were making a function call. Hence the term "table function".

Parameters:
td - Table descriptor used for the VTI look-up.
asTableFunction - If false then treat td's descriptor name as a VTI "table name"; if true, treat the descriptor name as a VTI "table function name".
Returns:
Java class name to which "td" maps, or null if no mapping is found.
Throws:
StandardException

getBuiltinVTIClass

java.lang.String getBuiltinVTIClass(TableDescriptor td,
                                    boolean asTableFunction)
                                    throws StandardException
Return the Java class to use for a builtin VTI to which the received table descriptor maps.

Parameters:
td - Table descriptor used for the VTI look-up.
asTableFunction - If false then treat td's descriptor name as a VTI "table name"; if true, treat the descriptor name as a VTI "table function name".
Returns:
Java class name of builtin VTI to which "td" maps, or null if no mapping is found.
Throws:
StandardException

getRoleDefinitionDescriptor

RoleGrantDescriptor getRoleDefinitionDescriptor(java.lang.String roleName)
                                                throws StandardException
Get a role grant descriptor for a role definition.

Parameters:
roleName - The name of the role whose definition we seek
Throws:
StandardException - error

getRoleGrantDescriptor

RoleGrantDescriptor getRoleGrantDescriptor(UUID uuid)
                                           throws StandardException
Get the role grant descriptor corresponding to the uuid provided

Parameters:
uuid -
Returns:
The descriptor for the role grant descriptor
Throws:
StandardException - Thrown on error

getRoleGrantDescriptor

RoleGrantDescriptor getRoleGrantDescriptor(java.lang.String roleName,
                                           java.lang.String grantee,
                                           java.lang.String grantor)
                                           throws StandardException
Get a descriptor for a role grant

Parameters:
roleName - The name of the role whose definition we seek
grantee - The grantee
grantor - The grantor
Throws:
StandardException - error

dropDependentsStoredDependencies

void dropDependentsStoredDependencies(UUID dependentsUUID,
                                      TransactionController tc,
                                      boolean wait)
                                      throws StandardException
Remove all of the stored dependencies for a given dependent's ID from the data dictionary.

Parameters:
dependentsUUID - Dependent's uuid
tc - TransactionController for the transaction
wait - If true, then the caller wants to wait for locks. False will be when we using a nested user xaction - we want to timeout right away if the parent holds the lock.
Throws:
StandardException - Thrown on failure

existsGrantToAuthid

boolean existsGrantToAuthid(java.lang.String authId,
                            TransactionController tc)
                            throws StandardException
Check all dictionary tables and return true if there is any GRANT descriptor containing authId as its grantee.

Parameters:
authId - grantee for which a grant exists or not
tc - TransactionController for the transaction
Returns:
boolean true if such a grant exists
Throws:
StandardException

updateMetadataSPSes

void updateMetadataSPSes(TransactionController tc)
                         throws StandardException
Drop and recreate metadata stored prepared statements.

Parameters:
tc - the xact
Throws:
StandardException

dropSequenceDescriptor

void dropSequenceDescriptor(SequenceDescriptor sequenceDescriptor,
                            TransactionController tc)
                            throws StandardException
Drop a sequence descriptor.

Parameters:
sequenceDescriptor -
tc -
Throws:
StandardException

getSequenceDescriptor

SequenceDescriptor getSequenceDescriptor(UUID uuid)
                                         throws StandardException
get a descriptor for a Sequence by uuid

Parameters:
uuid - uuid of the sequence
Returns:
the SequenceDescriptor
Throws:
StandardException - error

getSequenceDescriptor

SequenceDescriptor getSequenceDescriptor(SchemaDescriptor sd,
                                         java.lang.String sequenceName)
                                         throws StandardException
get a descriptor for a Sequence by sequence name

Parameters:
sequenceName - Name of the sequence
sd - The scemadescriptor teh sequence belongs to
Returns:
The SequenceDescriptor
Throws:
StandardException - error

getGenericPermissions

PermDescriptor getGenericPermissions(UUID objectUUID,
                                     java.lang.String objectType,
                                     java.lang.String privilege,
                                     java.lang.String granteeAuthId)
                                     throws StandardException
Get permissions granted to one user for an object using the object's Id and the user's authorization Id.

Parameters:
objectUUID - ID of the object being protected
objectType - Type of the object (e.g., PermDescriptor.SEQUENCE_TYPE)
privilege - The kind of privilege needed (e.g., PermDescriptor.USAGE_PRIV)
granteeAuthId - The user who needs the permission
Returns:
The descriptor of the permissions for the object
Throws:
StandardException

getGenericPermissions

PermDescriptor getGenericPermissions(UUID permUUID)
                                     throws StandardException
Get one user's privileges for an object using the permUUID

Parameters:
permUUID -
Returns:
a PermDescriptor
Throws:
StandardException

dropAllPermDescriptors

void dropAllPermDescriptors(UUID objectID,
                            TransactionController tc)
                            throws StandardException
Drops all permission descriptors for the given object

Parameters:
objectID - The UUID of the object from which to drop all permissions
tc - TransactionController for the transaction
Throws:
StandardException - Thrown on error

Built on Thu 2010-12-23 20:49:13+0000, from revision ???

Apache Derby V10.6 Internals - Copyright © 2004,2007 The Apache Software Foundation. All Rights Reserved.