anchor.diff:                  true ->
                       ?UnimplementedException({"Unsupported virtual join filter guard", FGuard}); 
                   _ ->
  -                    % ?Debug("Rec used for join bind ~p~n", [Rec]),
  -                    % ?Debug("MBinds used for join bind ~p~n", [MBinds]),
  +                    ?Debug("Rec used for join bind ~p", [Rec]),
  +                    ?Debug("MBinds used for join bind ~p", [MBinds]),
                       case join_bind(Rec, FGuard, MBinds) of
                           {is_member,Tag, '$_'} when is_atom(Tag) ->
                               Items = element(1,Rec),
  -                            % ?Debug("generate_virtual table ~p from ~p~n~p~n", [Table,'$_',Items]),
  +                            ?Debug("generate_virtual table ~p from ~p~n~p", [Table,'$_',Items]),
                               Virt = generate_virtual(Table,tl(tuple_to_list(Items)),MaxSize),
  -                            % ?Debug("Generated virtual table ~p~n~p~n", [Table,Virt]),
  +                            ?Debug("Generated virtual table ~p~n~p", [Table,Virt]),
                               [setelement(Ti, Rec, {Table,I}) || I <- Virt];
                           {is_member,Tag, Items} when is_atom(Tag) ->
  -                            % ?Debug("generate_virtual table ~p from~n~p~n", [Table,Items]),
  +                            ?Debug("generate_virtual table ~p from~n~p", [Table,Items]),
                               Virt = generate_virtual(Table,Items,MaxSize),
  -                            % ?Debug("Generated virtual table ~p~n~p~n", [Table,Virt]),
  +                            ?Debug("Generated virtual table ~p~n~p", [Table,Virt]),
                               [setelement(Ti, Rec, {Table,I}) || I <- Virt];
                           BadFG ->
                               ?UnimplementedException({"Unsupported virtual join bound filter guard",BadFG})
  
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:         % [3,{table},{def,"5","'5'"},{}],                       %% delete {def,"5","'5'"}
          % [4,{table},{def,"12","'12'"},{def,"112","'12'"}]      %% failing update {def,"12","'12'"} to {def,"112","'12'"}
      UpdPlan = update_prepare(IsSec, SKey, TableTypes, ColMap, ChangeList, []),
      ?Debug("prepared table changes~n~p", [UpdPlan]),
      UpdPlan.
  
  update_prepare(_IsSec, _SKey, _Tables, _ColMap, [], Acc) -> Acc;
  