public void Delete1(int value1)
 {
     TernaryTable.Iter1 it = table.GetIter1(value1);
     while (!it.Done())
     {
         deleteIdxs = Array.Append(deleteIdxs, deleteCount, it.Index());
         deleteList = Array.Append3(deleteList, deleteCount++, value1, it.Get1(), it.Get2());
         it.Next();
     }
 }
        private ForeignKeyViolationException ForeignKeyViolation(int delSurr)
        {
            TernaryTable.Iter1 it = source.table.GetIter1(delSurr);
            Obj arg1 = source.store1.SurrToValue(delSurr);
            Obj arg2 = source.store2.SurrToValue(it.Get1());
            Obj arg3 = source.store3.SurrToValue(it.Get2());

            Obj[] tuple = new Obj[] { arg1, arg2, arg3 };
            return(ForeignKeyViolationException.TernaryUnary(source.relvarName, 1, target.relvarName, tuple, arg1));
        }