ForeignKeyRIChecker
, ReferencedKeyRIChecker
public abstract class GenericRIChecker
extends java.lang.Object
Modifier and Type | Field | Description |
---|---|---|
protected BackingStoreHashtable |
deferredRowsHashTable |
Cached value (for efficiency) of the intermediate table of violations
we use in the presence of deferred FK constraints.
|
protected DynamicCompiledOpenConglomInfo[] |
fkDcocis |
|
protected FKInfo |
fkInfo |
|
protected StaticCompiledOpenConglomInfo[] |
fkScocis |
|
protected int[] |
identityMap |
|
(package private) IndexRow |
indexQualifierRow |
|
protected LanguageConnectionContext |
lcc |
|
protected int |
numColumns |
|
protected DynamicCompiledOpenConglomInfo |
refDcoci |
|
protected StaticCompiledOpenConglomInfo |
refScoci |
|
private java.util.Hashtable<java.lang.Long,ScanController> |
scanControllers |
|
protected TransactionController |
tc |
Constructor | Description |
---|---|
GenericRIChecker(LanguageConnectionContext lcc,
TransactionController tc,
FKInfo fkinfo) |
Modifier and Type | Method | Description |
---|---|---|
(package private) void |
close() |
Clean up all scan controllers
|
(package private) abstract void |
doCheck(Activation a,
ExecRow row,
boolean restrictCheckOnly,
int deferredRowReq) |
Check the validity of this row
|
(package private) int |
getRICheckIsolationLevel() |
Get the isolation level for the scan for
the RI check.
|
protected ScanController |
getScanController(long conglomNumber,
StaticCompiledOpenConglomInfo scoci,
DynamicCompiledOpenConglomInfo dcoci,
ExecRow searchRow) |
Get a scan controller positioned using searchRow as
the start/stop position.
|
(package private) boolean |
isAnyFieldNull(ExecRow baseRow) |
Are any of the fields null in the row passed
in.
|
private void |
setupQualifierRow(ExecRow baseRow) |
protected FKInfo fkInfo
protected DynamicCompiledOpenConglomInfo[] fkDcocis
protected StaticCompiledOpenConglomInfo[] fkScocis
protected DynamicCompiledOpenConglomInfo refDcoci
protected StaticCompiledOpenConglomInfo refScoci
protected TransactionController tc
protected LanguageConnectionContext lcc
protected BackingStoreHashtable deferredRowsHashTable
private final java.util.Hashtable<java.lang.Long,ScanController> scanControllers
protected final int numColumns
protected int[] identityMap
final IndexRow indexQualifierRow
GenericRIChecker(LanguageConnectionContext lcc, TransactionController tc, FKInfo fkinfo) throws StandardException
lcc
- the language connection contexttc
- the xact controllerfkinfo
- the foreign key informationStandardException
- Thrown on failureabstract void doCheck(Activation a, ExecRow row, boolean restrictCheckOnly, int deferredRowReq) throws StandardException
a
- The activationrow
- The row to checkrestrictCheckOnly
- true
if the check is relevant only for RESTRICTED
referential action.deferredRowReq
- For referenced keys: The required number of duplicates that
need to be present. Only used if postCheck==false
.StandardException
- on errorprotected ScanController getScanController(long conglomNumber, StaticCompiledOpenConglomInfo scoci, DynamicCompiledOpenConglomInfo dcoci, ExecRow searchRow) throws StandardException
conglomNumber
- the particular conglomerate we
are interested inscoci
- dcoci
- searchRow
- the row to matchStandardException
- on errorprivate void setupQualifierRow(ExecRow baseRow)
boolean isAnyFieldNull(ExecRow baseRow)
baseRow
- the row to check for null fieldstrue
if any are nullvoid close() throws StandardException
StandardException
- on errorint getRICheckIsolationLevel()
Apache Derby V10.14 Internals - Copyright © 2004,2018 The Apache Software Foundation. All Rights Reserved.