public abstract class GenericRIChecker
extends java.lang.Object
Modifier and Type | Field and 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 and Description |
---|
GenericRIChecker(LanguageConnectionContext lcc,
TransactionController tc,
FKInfo fkinfo) |
Modifier and Type | Method and 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.13 Internals - Copyright © 2004,2016 The Apache Software Foundation. All Rights Reserved.