anchor.diff:      generate_virtual(tuple,{const,Val},MaxSize);
   generate_virtual_data(Table,_Rec,{'==',Tag,Val},MaxSize) when is_atom(Tag) ->
       generate_virtual(Table,Val,MaxSize);
  +generate_virtual_data(Table,_Rec,{'or',{'==',Tag,V1},OrEqual},MaxSize) when is_atom(Tag) ->
  +    generate_virtual(Table,[V1|vals_from_or_equal(Tag,OrEqual)],MaxSize);
  +% generate_virtual_data(Table,_Rec,{'and',{'or',{'==',Tag,V1},OrEqual},_},MaxSize) when is_atom(Tag) ->
  +%     generate_virtual(Table,[V1|vals_from_or_equal(Tag,OrEqual)],MaxSize);
  +% generate_virtual_data(Table,_Rec,{'and',{'and',{'or',{'==',Tag,V1},OrEqual},_},_},MaxSize) when is_atom(Tag) ->
  +%     generate_virtual(Table,[V1|vals_from_or_equal(Tag,OrEqual)],MaxSize);
   generate_virtual_data(integer,_Rec,{'and',{'>=',Tag,Min},{'=<',Tag,Max}},MaxSize) ->
       generate_virtual_integers(Min,Max,MaxSize);
   generate_virtual_data(integer,_Rec,{'and',{'>',Tag,Min},{'=<',Tag,Max}},MaxSize) ->
  
positive.code:     ?UnimplementedException({"Unsupported virtual integer bound filter guard",SGuard});
  generate_virtual_data(Table,_Rec,SGuard,_MaxSize) ->
      ?UnimplementedException({"Unsupported virtual join bound filter guard",{Table,SGuard}}).
  
  generate_virtual_integers(Min,Max,MaxSize) when (Max>=Min),(MaxSize>Max-Min) ->
      [{I,imem_datatype:integer_to_io(I)} || I <- lists:seq(Min,Max)];
  
negative.code:             #bind{tind=0,cind=0} ->  
                  ?SystemException({"Internal update error, constant projection binding",{Item,CMap}});
              #bind{tind=?MainIdx,cind=0,type=tuple} ->
                  Fx = fun(_X) ->
                      NewVal = imem_datatype:io_to_db(Item,{},tuple,undefined,undefined,<<>>,false,Value),
                      % setelement(?MainIdx,X,NewVal)
                      NewVal 
  