java.lang.Object
org.apache.derby.impl.sql.execute.GenericConstantAction
org.apache.derby.impl.sql.execute.DDLConstantAction
org.apache.derby.impl.sql.execute.DDLSingleTableConstantAction
org.apache.derby.impl.sql.execute.ConstraintConstantAction
- All Implemented Interfaces:
- org.apache.derby.iapi.sql.execute.ConstantAction
- Direct Known Subclasses:
- CreateConstraintConstantAction, DropConstraintConstantAction
- public abstract class ConstraintConstantAction
- extends DDLSingleTableConstantAction
This class describes actions that are ALWAYS performed for a
constraint creation at Execution time.
- Version:
- 0.1
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
constraintName
protected java.lang.String constraintName
constraintType
protected int constraintType
tableName
protected java.lang.String tableName
schemaName
protected java.lang.String schemaName
schemaId
protected org.apache.derby.catalog.UUID schemaId
indexAction
protected IndexConstantAction indexAction
tableId
protected org.apache.derby.catalog.UUID tableId
ConstraintConstantAction
ConstraintConstantAction(java.lang.String constraintName,
int constraintType,
java.lang.String tableName,
org.apache.derby.catalog.UUID tableId,
java.lang.String schemaName,
IndexConstantAction indexAction)
- Make one of these puppies.
getConstraintType
public int getConstraintType()
- Get the constraint type.
getConstraintName
public java.lang.String getConstraintName()
- Get the constraint name
getIndexAction
public IndexConstantAction getIndexAction()
- Get the associated index constant action.
validateFKConstraint
static void validateFKConstraint(org.apache.derby.iapi.store.access.TransactionController tc,
org.apache.derby.iapi.sql.dictionary.DataDictionary dd,
org.apache.derby.iapi.sql.dictionary.ForeignKeyConstraintDescriptor fk,
org.apache.derby.iapi.sql.dictionary.ReferencedKeyConstraintDescriptor refcd,
org.apache.derby.iapi.sql.execute.ExecRow indexTemplateRow)
throws org.apache.derby.iapi.error.StandardException
- Make sure that the foreign key constraint is valid
with the existing data in the target table. Open
the table, if there aren't any rows, ok. If there
are rows, open a scan on the referenced key with
table locking at level 2. Pass in the scans to
the BulkRIChecker. If any rows fail, barf.
validateConstraint
static boolean validateConstraint(java.lang.String constraintName,
java.lang.String constraintText,
org.apache.derby.iapi.sql.dictionary.TableDescriptor td,
org.apache.derby.iapi.sql.conn.LanguageConnectionContext lcc,
boolean isCheckConstraint)
throws org.apache.derby.iapi.error.StandardException
- Evaluate a check constraint or not null column constraint.
Generate a query of the
form SELECT COUNT(*) FROM t where NOT()
and run it by compiling and executing it. Will
work ok if the table is empty and query returns null.
modifiesTableId
public boolean modifiesTableId(org.apache.derby.catalog.UUID tableId)
- Does this constant action modify the passed in table
uuid? By modify we mean add or drop things tied to
this table (e.g. index, trigger, constraint). Things
like views or spses that reference this table don't
count.
- Specified by:
modifiesTableId in interface org.apache.derby.iapi.sql.execute.ConstantAction- Overrides:
modifiesTableId in class DDLConstantAction