private void CheckTargetClear() { Debug.Assert(target.WasCleared()); TernaryTable.Iter123 it = source.table.GetIter(); while (!it.Done()) { int arg1 = it.Get1(); int arg2 = it.Get2(); if (source.Contains12(arg1, arg2) && !target.Contains(arg1, arg2)) { throw DeletionForeignKeyViolation(arg1, arg2); } it.Next(); } }
public void Check() { if (source.HasInsertions()) { long[] buffer = source.Insertions(this.buffer, counter); int count = counter[0]; for (int i = 0; i < count; i++) { long entry = buffer[i]; int arg1 = BinaryTableUpdater.Arg1(entry); int arg2 = BinaryTableUpdater.Arg2(entry); if (!target.Contains12(arg1, arg2)) { throw InsertionForeignKeyViolation(arg1, arg2); } } } target.CheckDeletes123(this); }