anchor.diff:  begin
     aPrefix := '';
     aFieldName := aSource;
  -  i := Pos(PREFIX_JOIN_SEPARATOR, aSource);
  +  i := Pos(SEPARATOR_FIELDS_FROM_JOIN, aSource);
     if i > 0 then
     begin
       aPrefix := Copy(aSource, 1, i);
  
positive.code: 
  uses
    Classes, contnrs, sysutils,
    mVirtualDataSetInterfaces, mMaps, mVirtualFieldDefs, mLog;
  
  const
    PREFIX_JOIN_SEPARATOR = '$';
  
  type
    TBuildExternalEntityKeyFromDatumFunction = function (aSource : IVDDatum): string of object;
  
negative.code: begin
    if FPrefix=AValue then Exit;
    FPrefix:=Uppercase(AValue);
    if Copy(FPrefix, Length(FPrefix), 1) <> SEPARATOR_FIELDS_FROM_JOIN then
      FPrefix := FPrefix + SEPARATOR_FIELDS_FROM_JOIN;
  end;
  
  constructor TmBuiltInJoin.Create;
  