public class RIBulkChecker extends java.lang.Object
The comparision is done via a merge. Consequently, it is imperative that the scans are on keyed conglomerates (indexes) and that the referencedKeyScan is a unique scan.
Performance is no worse than N + M where N is foreign key rows and M is primary key rows.
Bulk fetch is used to further speed performance. The fetch size is LanguageProperties.BULK_FETCH_DEFAULT
|Constructor and Description|
Create a RIBulkChecker
public RIBulkChecker(GroupFetchScanController referencedKeyScan, GroupFetchScanController foreignKeyScan, ExecRow templateRow, boolean quitOnFirstFailure, ConglomerateController unreferencedCC, ExecRow firstRowToFail)
referencedKeyScan- scan of the referenced key's backing index. must be unique
foreignKeyScan- scan of the foreign key's backing index
templateRow- a template row for the indexes. Will be cloned when it is used. Must be a full index row.
quitOnFirstFailure- quit on first unreferenced key
unreferencedCC- put unreferenced keys here
firstRowToFail- the first row that fails the constraint is copied to this, if non-null