<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
<br>
I was hoping to avoid talking about history and the philosophy of this,
but it looks like I have no choice. The original implementation of
Joins in the new MapGuide architecture was written as an FDO provider.
>From the start conceptually it seemed like the right thing to do.
However a number of things became somewhat complex, with the following
two eventually leading to its demise:<br>
<br>
1. Configuring joins. The Join Provider wound up having a fairly
complex configuration document that could not be represented naturally
in the UI.<br>
2. Implementing update through the provider was just plain hard and the
reality is most use cases don't require it. As long as you can easily
determine the left and right hand sides, it is fairly straightforward
to update directly through the primary or secondary source.<br>
<br>
Instead we eventually decided to build a new level of service APIs on
top of FDO. Join became one of the first components in this new tier of
services. You can find separate component for implementing joins in the
MapGuide source tree. This same Join component is also used in some
other commercial software and could be used in any client outside of
MG. The other change in this newer architecture is that Joins are now
defined in the Feature Source XML of the primary (or left hand side)
data source. This makes in very natural in the client to navigate to
that Feature Source and then extend it via a Join to another Feature
Source. This model also makes it easy to determine the primary (LHS)
and secondary (RHS) Feature Sources for performing updates without
diving into the intricacies of provider configuration documents.<br>
<br>
Bob<br>
<br>
Haris Kurtagic wrote:
<blockquote
 cite="mid689794E3063F0544ABB40771AF8BA2290A1905@exchange2.sl-king.com"
 type="cite">
  <meta http-equiv="Content-Type" content="text/html; ">
  <meta content="MSHTML 6.00.2900.2963" name="GENERATOR">
  <style>@page Section1 {size: 8.5in 11.0in; margin: 1.0in 1.25in 1.0in 1.25in; }
P.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
LI.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
DIV.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline
}
A:visited {
        COLOR: purple; TEXT-DECORATION: underline
}
SPAN.MsoHyperlinkFollowed {
        COLOR: purple; TEXT-DECORATION: underline
}
SPAN.EmailStyle17 {
        COLOR: windowtext; FONT-FAMILY: Arial; mso-style-type: personal-compose
}
DIV.Section1 {
        page: Section1
}
  </style>
  <div dir="ltr" align="left"><span class="930462623-03112006"><font
 color="#0000ff" face="Arial" size="2">I suppose Join is most
interesting for file based data sources ?</font></span></div>
  <div dir="ltr" align="left"><span class="930462623-03112006"></span>&nbsp;</div>
  <div dir="ltr" align="left"><span class="930462623-03112006"><font
 color="#0000ff" face="Arial" size="2">It looks to me that for rdbms
data sources this is "natural" stuff to do.</font></span></div>
  <div dir="ltr" align="left"><span class="930462623-03112006"></span>&nbsp;</div>
  <div dir="ltr" align="left"><span class="930462623-03112006"><font
 color="#0000ff" face="Arial" size="2">In that context, I have a
feeling that this could be something for&nbsp;FDO level not MG.</font></span></div>
  <div dir="ltr" align="left"><span class="930462623-03112006"></span>&nbsp;</div>
  <div dir="ltr" align="left"><span class="930462623-03112006"><font
 color="#0000ff" face="Arial" size="2">One of advantages would be that
join functionality wouldn't be just to MG but other clients also.</font></span></div>
  <div dir="ltr" align="left"><span class="930462623-03112006"></span>&nbsp;</div>
  <div dir="ltr" align="left"><span class="930462623-03112006"><font
 color="#0000ff" face="Arial" size="2">Perhaps little crazy idea but I
also could imagine having a "join fdo provider" which will do the work
for join for classes across providers.</font></span></div>
  <div dir="ltr" align="left"><span class="930462623-03112006"></span>&nbsp;</div>
  <div dir="ltr" align="left"><span class="930462623-03112006"><font
 color="#0000ff" face="Arial" size="2">Haris</font></span></div>
  <br>
  <div class="OutlookMessageHeader" dir="ltr" align="left" lang="en-us">
  <hr tabindex="-1"><font face="Tahoma" size="2"><b>From:</b> Ronnie
Louie [<a class="moz-txt-link-freetext" href="mailto:ronnie.louie@autodesk.com">mailto:ronnie.louie@autodesk.com</a>] <br>
  <b>Sent:</b> Friday, November 03, 2006 11:48 PM<br>
  <b>To:</b> <a class="moz-txt-link-abbreviated" href="mailto:dev@mapguide.osgeo.org">dev@mapguide.osgeo.org</a><br>
  <b>Subject:</b> [mapguide-dev] Enhanced Join Support RFC<br>
  </font><br>
  </div>
  <div class="Section1">
  <p class="MsoNormal"><font face="Arial" size="2"><span
 style="font-size: 10pt; font-family: Arial;">Hi All,<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Arial" size="2"><span
 style="font-size: 10pt; font-family: Arial;"><o:p>&nbsp;</o:p></span></font></p>
  <p class="MsoNormal"><font face="Arial" size="2"><span
 style="font-size: 10pt; font-family: Arial;">A first draft of Enhanced
Join Support RFC for MGOS is posted at <a
 href="http://wiki.osgeo.org/index.php/MapGuide_RFC_5_-_Enhanced_Join_Support">http://wiki.osgeo.org/index.php/MapGuide_RFC_5_-_Enhanced_Join_Support</a>.<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Arial" size="2"><span
 style="font-size: 10pt; font-family: Arial;"><o:p>&nbsp;</o:p></span></font></p>
  <p class="MsoNormal"><font face="Arial" size="2"><span
 style="font-size: 10pt; font-family: Arial;">Please have a look and
post your feedback to this group.<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Arial" size="2"><span
 style="font-size: 10pt; font-family: Arial;"><o:p>&nbsp;</o:p></span></font></p>
  <p class="MsoNormal"><font face="Arial" size="2"><span
 style="font-size: 10pt; font-family: Arial;">Thanks<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Arial" size="2"><span
 style="font-size: 10pt; font-family: Arial;">Ronnie Louie<o:p></o:p></span></font></p>
  <p class="MsoNormal"><font face="Arial" size="2"><span
 style="font-size: 10pt; font-family: Arial;"><o:p>&nbsp;</o:p></span></font></p>
  <p class="MsoNormal"><font face="Arial" size="2"><span
 style="font-size: 10pt; font-family: Arial;"><o:p>&nbsp;</o:p></span></font></p>
  <p class="MsoNormal"><font face="Arial" size="2"><span
 style="font-size: 10pt; font-family: Arial;"><o:p>&nbsp;</o:p></span></font></p>
  </div>
</blockquote>
<br>
</body>
</html>