anchor.diff:      {A, Result1} = add_edge_join(Alias, "object_id", Result),
       Result2 = case Id of
                     undefined -> Result1;
  -                  _ -> {Arg1, R} = add_arg(Id, Result1),
  +                  _ -> {Arg1, R} = add_arg(m_rsc:rid(Id,Context), Result1),
                          add_where(A ++ ".subject_id = " ++ Arg1, R)
                 end,
       PredicateId = m_predicate:name_to_id_check(Predicate, Context),
  
positive.code:     Result4 = add_where(A ++ ".predicate_id = " ++ Arg2, Result3),
      parse_query(Rest, Context, Result4);
  parse_query([{hassubject, Id}|Rest], Context, Result) when is_list(Id) ->
      parse_query([{hassubject, [z_convert:to_integer(Id)]}|Rest], Context, Result);
  
  
  %% hasobject=[id]
  
negative.code:     parse_query([{hassubject, [Id]}|Rest], Context, Result);
  parse_query([{hassubject, [Id]}|Rest], Context, Result) ->
      {A, Result1} = add_edge_join("object_id", Result),
      {Arg, Result2} = add_arg(m_rsc:rid(Id,Context), Result1),
      Result3 = add_where(A ++ ".subject_id = " ++ Arg, Result2),
      parse_query(Rest, Context, Result3);
  
  