anchor.diff:  procedure TmBuiltInJoins.Clear;
   begin
     FList.Clear;
  +  FDictionary.Clear;
   end;
   
   function TmBuiltInJoins.Add: TmBuiltInJoin;
   begin
     Result := TmBuiltInJoin.Create;
     FList.Add(Result);
  +  FDictionary.Clear;
   end;
   
   function TmBuiltInJoins.Get(const aIndex: integer): TmBuiltInJoin;
   begin
     Result := FList.Items[aIndex] as TmBuiltInJoin;
  +  FDictionary.Clear;
   end;
   
   function TmBuiltInJoins.FindByPrefix(const aPrefix: string): TmBuiltInJoin;
  
positive.code: 
  uses
    Classes, contnrs, sysutils,
    mVirtualDataSetInterfaces;
  
  const
    PREFIX_JOIN_SEPARATOR = '$';
  
negative.code:   i : integer;
  begin
    Result := nil;
    if FDictionary.Count = 0 then
    begin
      for i := 0 to Count - 1 do
        FDictionary.Add(uppercase(Get(i).Prefix), Get(i));
    end;
    Result := FDictionary.Find(uppercase(aPrefix)) as TmBuiltInJoin;
  end;
  
  { TmBuiltInJoin }
  