Dependable
, Dependent
, Provider
CheckConstraintDescriptor
, KeyConstraintDescriptor
public abstract class ConstraintDescriptor extends UniqueTupleDescriptor implements Provider, Dependent
Modifier and Type | Field | Description |
---|---|---|
static int |
ALL |
|
private ColumnDescriptorList |
colDL |
|
(package private) UUID |
constraintId |
|
(package private) java.lang.String |
constraintName |
|
private boolean |
deferrable |
|
static int |
DISABLED |
|
static int |
ENABLED |
|
private boolean |
enforced |
|
private boolean |
initiallyDeferred |
|
private int[] |
referencedColumns |
|
private SchemaDescriptor |
schemaDesc |
|
static int |
SYSCONSTRAINTS_STATE_FIELD |
|
(package private) TableDescriptor |
table |
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 | Description |
---|---|
ConstraintDescriptor(DataDictionary dataDictionary,
TableDescriptor table,
java.lang.String constraintName,
boolean deferrable,
boolean initiallyDeferred,
int[] referencedColumns,
UUID constraintId,
SchemaDescriptor schemaDesc,
boolean enforced) |
Constructor for a ConstraintDescriptor
|
Modifier and Type | Method | Description |
---|---|---|
boolean |
areColumnsComparable(ColumnDescriptorList otherColumns) |
Indicates whether the column descriptor list is
type comparable with the constraints columns.
|
boolean |
columnIntersects(int[] columnArray) |
Does a column intersect with our referenced columns
|
boolean |
deferrable() |
Returns TRUE if the constraint is deferrable
|
(package private) static boolean |
doColumnsIntersect(int[] otherColumns,
int[] referencedColumns) |
Does a column in the input set intersect with
our referenced columns?
|
ConglomerateDescriptor |
drop(LanguageConnectionContext lcc,
boolean clearDependencies) |
Drop the constraint.
|
boolean |
enforced() |
Is this constraint enforced?
|
java.lang.String |
getClassType() |
Get the provider's type.
|
ColumnDescriptorList |
getColumnDescriptors() |
Get the column descriptors for all the columns
referenced by this constraint.
|
abstract UUID |
getConglomerateId() |
|
java.lang.String |
getConstraintName() |
Gets the name of the constraint.
|
java.lang.String |
getConstraintText() |
Get the text of the constraint.
|
abstract int |
getConstraintType() |
Gets an identifier telling what type of descriptor it is
(UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK).
|
DependableFinder |
getDependableFinder() |
Get an object which can be written to disk and which,
when read from disk, will find or reconstruct this in-memory
Dependable.
|
java.lang.String |
getDescriptorName() |
|
java.lang.String |
getDescriptorType() |
Each descriptor must identify itself with its type; i.e index, check
constraint whatever.
|
int[] |
getKeyColumns() |
RESOLVE: For now the ConstraintDescriptor code stores the array of key
columns in the field 'otherColumns'.
|
UUID |
getObjectID() |
Get the provider's UUID
|
java.lang.String |
getObjectName() |
Return the name of this Provider.
|
int |
getReferenceCount() |
Get the number of enforced fks that
reference this key.
|
int[] |
getReferencedColumns() |
Returns an array of column ids (i.e. ordinal positions) for
the columns referenced in this table for a primary key, unique
key, referential, or check constraint.
|
SchemaDescriptor |
getSchemaDescriptor() |
Get the SchemaDescriptor for the schema that this constraint
belongs to.
|
TableDescriptor |
getTableDescriptor() |
Get the table descriptor upon which this constraint
is declared.
|
UUID |
getTableId() |
Gets the UUID of the table the constraint is on.
|
UUID |
getUUID() |
Gets the UUID of the constraint.
|
abstract boolean |
hasBackingIndex() |
Does this constraint have a backing index?
|
boolean |
initiallyDeferred() |
Returns TRUE if the constraint is initially deferred
|
boolean |
isReferenced() |
Is this constraint referenced?
|
boolean |
isValid() |
Check that all of the dependent's dependencies are valid.
|
void |
makeInvalid(int action,
LanguageConnectionContext lcc) |
Mark the dependent as invalid (due to at least one of
its dependencies being invalid).
|
abstract boolean |
needsToFire(int stmtType,
int[] modifiedCols) |
Does this constraint need to fire on this type of
DML?
|
void |
prepareToInvalidate(Provider p,
int action,
LanguageConnectionContext lcc) |
Prepare to mark the dependent as invalid (due to at least one of
its dependencies being invalid).
|
void |
setDeferrable(boolean b) |
|
void |
setEnforced(boolean b) |
|
void |
setInitiallyDeferred(boolean b) |
|
java.lang.String |
toString() |
Convert the ColumnDescriptor to a String.
|
isPersistent
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getColumnDependableFinder, getDataDictionary, getDependableFinder, isPersistent, setDataDictionary
public static final int ENABLED
public static final int DISABLED
public static final int ALL
public static final int SYSCONSTRAINTS_STATE_FIELD
TableDescriptor table
final java.lang.String constraintName
private boolean deferrable
private boolean initiallyDeferred
private boolean enforced
private final int[] referencedColumns
final UUID constraintId
private final SchemaDescriptor schemaDesc
private ColumnDescriptorList colDL
ConstraintDescriptor(DataDictionary dataDictionary, TableDescriptor table, java.lang.String constraintName, boolean deferrable, boolean initiallyDeferred, int[] referencedColumns, UUID constraintId, SchemaDescriptor schemaDesc, boolean enforced)
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.referencedColumns
- columns that the constraint referencesconstraintId
- UUID of constraintschemaDesc
- SchemaDescriptorenforced
- Is the constraint enforced?public UUID getTableId()
public UUID getUUID()
getUUID
in class UniqueTupleDescriptor
public java.lang.String getConstraintName()
public abstract int getConstraintType()
public abstract UUID getConglomerateId()
public java.lang.String getConstraintText()
public boolean deferrable()
public void setDeferrable(boolean b)
public boolean initiallyDeferred()
public void setInitiallyDeferred(boolean b)
public int[] getReferencedColumns()
public abstract boolean hasBackingIndex()
public SchemaDescriptor getSchemaDescriptor()
public int[] getKeyColumns()
getKeyColumns()
public boolean enforced()
public void setEnforced(boolean b)
public boolean isReferenced()
public int getReferenceCount()
public abstract boolean needsToFire(int stmtType, int[] modifiedCols)
stmtType
- the type of DML
(StatementType.INSERT|StatementType.UPDATE|StatementType.DELETE)modifiedCols
- the columns modified, or null for allpublic TableDescriptor getTableDescriptor()
public ColumnDescriptorList getColumnDescriptors() throws StandardException
StandardException
- on errorpublic boolean areColumnsComparable(ColumnDescriptorList otherColumns) throws StandardException
otherColumns
- the columns to compareStandardException
- on errorpublic boolean columnIntersects(int[] columnArray)
columnArray
- columns to check
Note-- this is not a static method.static boolean doColumnsIntersect(int[] otherColumns, int[] referencedColumns)
otherColumns
- the columns to compare. If
null, asssumed to mean all columnsreferencedColumns
- the columns referenced by the callerpublic java.lang.String toString()
toString
in class java.lang.Object
public DependableFinder getDependableFinder()
Dependable
getDependableFinder
in interface Dependable
Dependable.getDependableFinder()
public java.lang.String getObjectName()
getObjectName
in interface Dependable
public UUID getObjectID()
getObjectID
in interface Dependable
public java.lang.String getClassType()
getClassType
in interface Dependable
public boolean isValid()
public void prepareToInvalidate(Provider p, int action, LanguageConnectionContext lcc) throws StandardException
prepareToInvalidate
in interface Dependent
action
- The action causing the invalidationp
- the providerlcc
- The LanguageConnectionContextStandardException
- thrown if unable to make it invalidpublic void makeInvalid(int action, LanguageConnectionContext lcc) throws StandardException
makeInvalid
in interface Dependent
action
- The action causing the invalidationlcc
- The LanguageConnectionContextStandardException
- thrown if called in sanity modepublic ConglomerateDescriptor drop(LanguageConnectionContext lcc, boolean clearDependencies) throws StandardException
StandardException
public java.lang.String getDescriptorName()
getDescriptorName
in class TupleDescriptor
TupleDescriptor.getDescriptorName()
public java.lang.String getDescriptorType()
TupleDescriptor
getDescriptorType
in class TupleDescriptor
Apache Derby V10.14 Internals - Copyright © 2004,2018 The Apache Software Foundation. All Rights Reserved.