| 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[] | |
| protected FKInfo | |
| protected StaticCompiledOpenConglomInfo[] | |
| protected int[] | |
| pack-priv final IndexRow | |
| protected LanguageConnectionContext | |
| protected final int | |
| protected DynamicCompiledOpenConglomInfo | |
| protected StaticCompiledOpenConglomInfo | |
| private final Hashtable | |
| protected TransactionController |
| Access | Constructor and Description |
|---|---|
| pack-priv | GenericRIChecker(LanguageConnectionContext
the language connection context lcc, TransactionController the xact controller tc, FKInfo the foreign key information fkinfo)
|
| Modifier and Type | Method and Description |
|---|---|
| pack-priv void | |
| pack-priv abstract void | doCheck(Activation
The activation a, ExecRow The row to check row, boolean true if the check is relevant only for RESTRICTED
referential action.For referenced keys: The required number of duplicates that
need to be present. Only used if deferredRowReq)postCheck==false.Check the validity of this row |
| pack-priv int | Returns: The isolation level for the scan for the RI check.Get the isolation level for the scan for the RI check. |
| protected ScanController | Returns: scan controllerthe particular conglomerate we
are interested in conglomNumber, StaticCompiledOpenConglomInfo scoci, DynamicCompiledOpenConglomInfo dcoci, ExecRow the row to match searchRow)Get a scan controller positioned using searchRow as the start/stop position. |
| pack-priv boolean | Returns: true if any are nullthe row to check for null fields baseRow)Are any of the fields null in the row passed in. The only fields that are checked are those corresponding to the colArray in fkInfo. |
| private void |
| deferredRowsHashTable | back to summary |
|---|---|
| protected BackingStoreHashtable deferredRowsHashTable Cached value (for efficiency) of the intermediate table of violations we use in the presence of deferred FK constraints. | |
| fkDcocis | back to summary |
|---|---|
| protected DynamicCompiledOpenConglomInfo[] fkDcocis | |
| fkInfo | back to summary |
|---|---|
| protected FKInfo fkInfo | |
| fkScocis | back to summary |
|---|---|
| protected StaticCompiledOpenConglomInfo[] fkScocis | |
| identityMap | back to summary |
|---|---|
| protected int[] identityMap | |
| indexQualifierRow | back to summary |
|---|---|
| pack-priv final IndexRow indexQualifierRow | |
| lcc | back to summary |
|---|---|
| protected LanguageConnectionContext lcc | |
| numColumns | back to summary |
|---|---|
| protected final int numColumns | |
| refDcoci | back to summary |
|---|---|
| protected DynamicCompiledOpenConglomInfo refDcoci | |
| refScoci | back to summary |
|---|---|
| protected StaticCompiledOpenConglomInfo refScoci | |
| scanControllers | back to summary |
|---|---|
| private final Hashtable<Long, ScanController> scanControllers | |
| tc | back to summary |
|---|---|
| protected TransactionController tc | |
| GenericRIChecker | back to summary |
|---|---|
pack-priv GenericRIChecker(LanguageConnectionContext lcc, TransactionController tc, FKInfo fkinfo) throws StandardException
| |
| close | back to summary |
|---|---|
| pack-priv void close() throws StandardException Clean up all scan controllers
| |
| doCheck | back to summary |
|---|---|
| pack-priv abstract void doCheck(Activation a, ExecRow row, boolean restrictCheckOnly, int deferredRowReq) throws StandardException Check the validity of this row
| |
| getRICheckIsolationLevel | back to summary |
|---|---|
| pack-priv int getRICheckIsolationLevel() Get the isolation level for the scan for the RI check. Note The level will eventually be instantaneous locking once the implementation changes.
| |
| getScanController | back to summary |
|---|---|
| protected ScanController getScanController(long conglomNumber, StaticCompiledOpenConglomInfo scoci, DynamicCompiledOpenConglomInfo dcoci, ExecRow searchRow) throws StandardException Get a scan controller positioned using searchRow as the start/stop position. The assumption is that searchRow is of the same format as the index being opened. The scan is set up to return no columns. Note We only need an instantaneous lock on the table that we are probing as we are just checking for the existence of a row. All updaters, whether to the primary or foreign key tables, will hold an X lock on the table that they are updating and will be probing the other table, so instantaneous locks will not change the semantics. Resolve Due to the current RI implementation we cannot always get instantaneous locks. We will call a method to find out what kind of locking to do until the implementation changes.
| |
| isAnyFieldNull | back to summary |
|---|---|
| pack-priv boolean isAnyFieldNull(ExecRow baseRow) Are any of the fields null in the row passed in. The only fields that are checked are those corresponding to the colArray in fkInfo.
| |
| setupQualifierRow | back to summary |
|---|---|
| private void setupQualifierRow(ExecRow baseRow) | |