Class ForeignKeyConstraintDescriptor
- java.lang.Object
-
- org.apache.derby.iapi.sql.dictionary.TupleDescriptor
-
- org.apache.derby.iapi.sql.dictionary.UniqueTupleDescriptor
-
- org.apache.derby.iapi.sql.dictionary.ConstraintDescriptor
-
- org.apache.derby.iapi.sql.dictionary.KeyConstraintDescriptor
-
- org.apache.derby.iapi.sql.dictionary.ForeignKeyConstraintDescriptor
-
- All Implemented Interfaces:
Dependable
,Dependent
,Provider
public class ForeignKeyConstraintDescriptor extends KeyConstraintDescriptor
A foreign key.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) int
raDeleteRule
(package private) int
raUpdateRule
(package private) ReferencedKeyConstraintDescriptor
referencedConstraintDescriptor
interface to this descriptor public ReferencedKeyConstraintDescriptor getReferencedConstraint() throws StandardException; public UUID getReferencedConstraintId() throws StandardException; public boolean isSelfReferencingFK() throws StandardException;(package private) UUID
referencedConstraintId
-
Fields inherited from class org.apache.derby.iapi.sql.dictionary.KeyConstraintDescriptor
indexId
-
Fields inherited from class org.apache.derby.iapi.sql.dictionary.ConstraintDescriptor
ALL, constraintId, constraintName, DISABLED, ENABLED, SYSCONSTRAINTS_STATE_FIELD, table
-
Fields inherited from interface org.apache.derby.catalog.Dependable
ACTIVATION, ALIAS, COLUMNS_IN_TABLE, COLUMNS_PERMISSION, CONGLOMERATE, CONSTRAINT, DEFAULT, FILE, HEAP, INDEX, PERM, PREPARED_STATEMENT, ROLE_GRANT, ROUTINE_PERMISSION, SCHEMA, SEQUENCE, STORED_PREPARED_STATEMENT, TABLE, TABLE_PERMISSION, TRIGGER, VIEW
-
-
Constructor Summary
Constructors Modifier Constructor Description (package private)
ForeignKeyConstraintDescriptor(DataDictionary dataDictionary, TableDescriptor table, java.lang.String constraintName, boolean deferrable, boolean initiallyDeferred, int[] fkColumns, UUID constraintId, UUID indexId, SchemaDescriptor schemaDesc, UUID referencedConstraintId, boolean enforced, int raDeleteRule, int raUpdateRule)
Constructor for a ForeignKeyConstraintDescriptorprotected
ForeignKeyConstraintDescriptor(DataDictionary dataDictionary, TableDescriptor table, java.lang.String constraintName, boolean deferrable, boolean initiallyDeferred, int[] fkColumns, UUID constraintId, UUID indexId, SchemaDescriptor schemaDesc, ReferencedKeyConstraintDescriptor referencedConstraintDescriptor, boolean enforced, int raDeleteRule, int raUpdateRule)
Constructor for a ForeignKeyConstraintDescriptor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getConstraintType()
Gets an identifier telling what type of descriptor it is (UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK).int
getRaDeleteRule()
Gets a referential action rule on a DELETEint
getRaUpdateRule()
Gets a referential action rule on a UPDATEReferencedKeyConstraintDescriptor
getReferencedConstraint()
Get the constraint that this FK references.UUID
getReferencedConstraintId()
Get the constraint id for the constraint that this FK references.boolean
isSelfReferencingFK()
Am I a self-referencing FK?boolean
needsToFire(int stmtType, int[] modifiedCols)
Does this constraint need to fire on this type of DML?-
Methods inherited from class org.apache.derby.iapi.sql.dictionary.KeyConstraintDescriptor
getConglomerateId, getIndexConglomerateDescriptor, getIndexId, getIndexUUIDString, hasBackingIndex, toString
-
Methods inherited from class org.apache.derby.iapi.sql.dictionary.ConstraintDescriptor
areColumnsComparable, columnIntersects, deferrable, doColumnsIntersect, drop, enforced, getClassType, getColumnDescriptors, getConstraintName, getConstraintText, getDependableFinder, getDescriptorName, getDescriptorType, getKeyColumns, getObjectID, getObjectName, getReferenceCount, getReferencedColumns, getSchemaDescriptor, getTableDescriptor, getTableId, getUUID, initiallyDeferred, isReferenced, isValid, makeInvalid, prepareToInvalidate, setDeferrable, setEnforced, setInitiallyDeferred
-
Methods inherited from class org.apache.derby.iapi.sql.dictionary.TupleDescriptor
getColumnDependableFinder, getDataDictionary, getDependableFinder, isPersistent, setDataDictionary
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.derby.catalog.Dependable
isPersistent
-
-
-
-
Field Detail
-
referencedConstraintDescriptor
ReferencedKeyConstraintDescriptor referencedConstraintDescriptor
interface to this descriptor- public ReferencedKeyConstraintDescriptor getReferencedConstraint() throws StandardException;
- public UUID getReferencedConstraintId() throws StandardException;
- public boolean isSelfReferencingFK() throws StandardException;
-
referencedConstraintId
UUID referencedConstraintId
-
raDeleteRule
int raDeleteRule
-
raUpdateRule
int raUpdateRule
-
-
Constructor Detail
-
ForeignKeyConstraintDescriptor
protected ForeignKeyConstraintDescriptor(DataDictionary dataDictionary, TableDescriptor table, java.lang.String constraintName, boolean deferrable, boolean initiallyDeferred, int[] fkColumns, UUID constraintId, UUID indexId, SchemaDescriptor schemaDesc, ReferencedKeyConstraintDescriptor referencedConstraintDescriptor, boolean enforced, int raDeleteRule, int raUpdateRule)
Constructor for a ForeignKeyConstraintDescriptor- Parameters:
dataDictionary
- The data dictionary that this descriptor lives intable
- The descriptor of the table the constraint is onconstraintName
- The name of the constraint.deferrable
- If the constraint can be deferred.initiallyDeferred
- If the constraint starts life deferred.fkColumns
- columns in the foreign keyconstraintId
- UUID of constraintindexId
- The UUID for the backing indexschemaDesc
- The SchemaDescriptor for the constraintreferencedConstraintDescriptor
- is referenced constraint descriptorenforced
- is the constraint enforced?raDeleteRule
- TheON DELETE
action ruleraUpdateRule
- TheON UPDATE
action rule
-
ForeignKeyConstraintDescriptor
ForeignKeyConstraintDescriptor(DataDictionary dataDictionary, TableDescriptor table, java.lang.String constraintName, boolean deferrable, boolean initiallyDeferred, int[] fkColumns, UUID constraintId, UUID indexId, SchemaDescriptor schemaDesc, UUID referencedConstraintId, boolean enforced, int raDeleteRule, int raUpdateRule)
Constructor for a ForeignKeyConstraintDescriptor- Parameters:
dataDictionary
- The data dictionary that this descriptor lives intable
- The descriptor of the table the constraint is onconstraintName
- The name of the constraint.deferrable
- If the constraint can be deferred.initiallyDeferred
- If the constraint starts life deferred.fkColumns
- columns in the foreign keyconstraintId
- UUID of constraintindexId
- The UUID for the backing indexschemaDesc
- The SchemaDescriptor for the constraintreferencedConstraintId
- is referenced constraint idenforced
-true
if this constraint is enforcedraDeleteRule
- TheON DELETE
action ruleraUpdateRule
- TheON UPDATE
action rule
-
-
Method Detail
-
getReferencedConstraint
public ReferencedKeyConstraintDescriptor getReferencedConstraint() throws StandardException
Get the constraint that this FK references. Will return either a primary key or a unique key constraint.- Returns:
- the constraint
- Throws:
StandardException
- on error
-
getReferencedConstraintId
public UUID getReferencedConstraintId() throws StandardException
Get the constraint id for the constraint that this FK references. Will return either a primary key or a unique key constriant.- Returns:
- the constraint id
- Throws:
StandardException
- on error
-
getConstraintType
public int getConstraintType()
Gets an identifier telling what type of descriptor it is (UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK).- Specified by:
getConstraintType
in classConstraintDescriptor
- Returns:
- An identifier telling what type of descriptor it is (UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK).
-
needsToFire
public boolean needsToFire(int stmtType, int[] modifiedCols)
Does this constraint need to fire on this type of DML? True if insert or update and columns intersect- Specified by:
needsToFire
in classConstraintDescriptor
- Parameters:
stmtType
- the type of DML (StatementType.INSERT|StatementType.UPDATE|StatementType.DELETE)modifiedCols
- the columns modified, or null for all- Returns:
- true/false
-
isSelfReferencingFK
public boolean isSelfReferencingFK() throws StandardException
Am I a self-referencing FK? True if my referenced constraint is on the same table as me.- Returns:
- true/false
- Throws:
StandardException
- on error
-
getRaDeleteRule
public int getRaDeleteRule()
Gets a referential action rule on a DELETE- Returns:
- referential rule defined by the user during foreign key creattion for a delete (like CASCDE , RESTRICT ..etc)
-
getRaUpdateRule
public int getRaUpdateRule()
Gets a referential action rule on a UPDATE- Returns:
- referential rule defined by the user during foreign key creattion for an UPDATE (like CASCDE , RESTRICT ..etc)
-
-