| Modifier and Type | Field and Description |
|---|---|
| private BackingStoreHashtable | deletedKeys
We save away keys with a counter in this hash table, so we know how many
instances of a key (duplicates) have been deleted/modified, cf usage
in |
| private final DataValueDescriptor[] | refKey
Key mapping used when storing referenced (PK, unique) keys under deferred row processing and deferred key constraint (PK, unique). |
| private ScanController |
| Access | Constructor and Description |
|---|---|
| pack-priv | ReferencedKeyRIChecker(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 | close()
Overrides org. Clean up all scan controllers and other resources |
| pack-priv 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.Implements abstract org. Check that the row either has a null column(s), or has no corresponding foreign keys. |
| private boolean | |
| private boolean | |
| public void | postCheck()
Check that we have at least one more row in the referenced table table containing a key than the number of projected deletes of that key. |
| private void | rememberKey(ExecRow rememberRow)
Remember the deletion of this key, it may cause a RESTRICT foreign key violation, cf. logic in @{link #postCheck}. |
| deletedKeys | back to summary |
|---|---|
| private BackingStoreHashtable deletedKeys We save away keys with a counter in this hash table, so we know how many
instances of a key (duplicates) have been deleted/modified, cf usage
in | |
| refKey | back to summary |
|---|---|
| private final DataValueDescriptor[] refKey Key mapping used when storing referenced (PK, unique) keys under deferred row processing and deferred key constraint (PK, unique). | |
| refKeyIndexScan | back to summary |
|---|---|
| private ScanController refKeyIndexScan | |
| ReferencedKeyRIChecker | back to summary |
|---|---|
pack-priv ReferencedKeyRIChecker(LanguageConnectionContext lcc, TransactionController tc, FKInfo fkinfo) throws StandardException
| |
| close | back to summary |
|---|---|
| pack-priv void close() throws StandardException Overrides org. Clean up all scan controllers and other resources
| |
| doCheck | back to summary |
|---|---|
| pack-priv void doCheck(Activation a, ExecRow row, boolean restrictCheckOnly, int deferredRowReq) throws StandardException Implements abstract org. Check that the row either has a null column(s), or has no corresponding foreign keys. If a foreign key is found, an exception is thrown. If not, the scan is closed.
| |
| isDuplicated | back to summary |
|---|---|
| private boolean isDuplicated(ExecRow row, int deferredRowReq) throws StandardException | |
| isDuplicated | back to summary |
|---|---|
| private boolean isDuplicated(DataValueDescriptor[] key, long deferredRowReq) throws StandardException | |
| postCheck | back to summary |
|---|---|
| public void postCheck() throws StandardException Check that we have at least one more row in the referenced table table containing a key than the number of projected deletes of that key. Only used when the referenced constraint id deferred and with RESTRICT mode
| |
| rememberKey | back to summary |
|---|---|
| private void rememberKey(ExecRow rememberRow) throws StandardException Remember the deletion of this key, it may cause a RESTRICT foreign key violation, cf. logic in @{link #postCheck}. | |