anchor.diff:  
   update_prepare(IsSec, SKey, Tables, ColMap, ChangeList) ->
       TableTypes = [{Schema,Table,if_call_mfa(IsSec,table_type,[SKey,{Schema,Table}])} || {Schema,Table,_Alias} <- Tables],
  -    % ?Debug("received change list~n~p~n", [ChangeList]),
  +    ?Debug("received change list~n~p", [ChangeList]),
       %% transform a ChangeList
           % [1,nop,{{def,"2","'2'"},{}},"2"],                     %% no operation on this line
           % [5,ins,{},"99"],                                      %% insert {def,"99", undefined}
  
positive.code:         [{Ci,imem_datatype:io_to_db(Item,?nav,T,L,P,D,false,Value)} || 
              {#ddColMap{tind=Ti, cind=Ci, type=T, len=L, prec=P, default=D},Value} 
              <- lists:zip(ColMap,Values), Ti==1, Value/=<<"">>]),
      %?Debug("value map~n~p~n", [ValMap]),
      IndMap = lists:usort([Ci || {Ci,_} <- ValMap]),
      %?Debug("ind map~n~p~n", [IndMap]),
      HasKey = lists:member(2,IndMap),
      if 
          length(ValMap) /= length(IndMap) ->     ?ClientError({"Contradicting column insert",{Item,ValMap}});
  
negative.code:                     [setelement(Ti, Rec, I) || I <- L];
                  _ ->
                      MboundGuard = join_bind(Rec, FGuard, MBinds),
                      ?Debug("Join guard after MBind : ~p", [MboundGuard]),
                      Filter = make_filter_fun(Ti, MboundGuard, FBinds),
                      Recs = [setelement(Ti, Rec, I) || I <- L],
                      lists:filter(Filter,Recs)
  