public void Check()
        {
            int count = source.insertCount;

            if (count > 0)
            {
                int[] inserts = source.insertList;
                for (int i = 0; i < count; i++)
                {
                    if (!target.Contains1(inserts[i]))
                    {
                        throw ForeignKeyViolation(inserts[i]);
                    }
                }
            }

            target.CheckDeletes123(this);
        }
        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);
        }