anchor.diff:  filter_spec_where(?NoMoreFilter, _, WhereTree) -> 
       WhereTree;
   filter_spec_where({FType,[ColF|ColFs]}, ColMap, WhereTree) ->
  -    FCond = filter_condition(ColF, ColMap),
  +    FCond = filter_condition(filter_reorder(ColF), ColMap),
       % ?Info("Colf ~p FCond ~p",[ColF,FCond]),
       filter_spec_where({FType,ColFs}, ColMap, WhereTree, FCond). 
  +
  +filter_reorder({Idx,[Pref|Vals]}) -> 
  +    case Vals --[?NavString] of 
  +        Vals -> {Idx,[Pref|Vals]};
  +        V ->    [?NavString|V]
  +    end.
   
   filter_spec_where(?NoMoreFilter, _, ?EmptyWhere, LeftTree) ->
       LeftTree;
   filter_spec_where(?NoMoreFilter, _, WhereTree, LeftTree) ->
       {'and', LeftTree, WhereTree};
   filter_spec_where({FType,[ColF|ColFs]}, ColMap, WhereTree, LeftTree) ->
  -    FCond = filter_condition(ColF, ColMap),
  +    FCond = filter_condition(filter_reorder(ColF), ColMap),
       filter_spec_where({FType,ColFs}, ColMap, WhereTree, {FType,LeftTree,FCond}).    
   
  +filter_condition({Idx,[<<"$in$">>,?NavString]}, ColMap) ->
  +    {Name,_Value} = filter_name_value(in,Idx,?NavString,ColMap),
  +    {'is_nav',Name};
   filter_condition({Idx,[<<"$in$">>,Val]}, ColMap) ->
       {Name,Value} = filter_name_value(in,Idx,Val,ColMap),
       {'=',Name,Value};
  +filter_condition({Idx,[<<"$in$">>,?NavString|Vals]}, ColMap) ->
  +    {Name,_Values} = filter_name_values(in,Idx,?NavString,ColMap),
  +    {'or',{'is_nav',Name},filter_condition({Idx,[<<"$in$">>|Vals]}, ColMap)};
   filter_condition({Idx,[<<"$in$">>|Vals]}, ColMap) ->
       {Name,Values} = filter_name_values(in,Idx,Vals,ColMap),
       {'in',Name,{'list',Values}};
  +filter_condition({Idx,[<<"$not_in$">>,?NavString]}, ColMap) ->
  +    {Name,_Value} = filter_name_value(in,Idx,?NavString,ColMap),
  +    {'is_val',Name};
   filter_condition({Idx,[<<"$not_in$">>,Val]}, ColMap) ->
       {Name,Value} = filter_name_value(in,Idx,Val,ColMap),
       {'<>',Name,Value};
  +filter_condition({Idx,[<<"$not_in$">>,?NavString|Vals]}, ColMap) ->
  +    {Name,_Values} = filter_name_values(in,Idx,?NavString,ColMap),
  +    {'and',{'is_val',Name},filter_condition({Idx,[<<"$not_in$">>|Vals]}, ColMap)};
   filter_condition({Idx,[<<"$not_in$">>|Vals]}, ColMap) ->
       {Name,Values} = filter_name_values(in,Idx,Vals,ColMap),
       {'not',{'in',Name,{'list',Values}}};
  
positive.code:     #bind{tind=Ti,cind=Ci,schema=S,table=T,name=N,alias=A,type=Type,len=L,prec=P,default=D} = lists:nth(Idx,ColMap),
      Tag = "Col" ++ integer_to_list(Idx),
      Name = case {Ti,Ci} of
          {0,0} ->    A;
          _ ->        qname3_to_binstr({S,T,N})
      end,
      {Name,[filter_value_tree(F,Tag,Type,L,P,D,Val) || Val <- Vals]}.
  
negative.code: -define(ParamNameIdx,1).
  -define(ParamTypeIdx,2).
  -define(ParamPrecisionIdx,3).
  -define(NavString,<<"'$not_a_value'">>).
  
  -export([ column_map_tables/3
          , column_map_columns/2
  