<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:D="DAV:" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle22
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><span style='color:#1F497D'>Hi Jason,<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>Yes, I think this might work
better in the standard select with regular forward-only reader.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>Orest.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<div>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>
<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
fdo-internals-bounces@lists.osgeo.org [mailto:fdo-internals-bounces@lists.osgeo.org]
<b>On Behalf Of </b>Jason Birch<br>
<b>Sent:</b> Monday, October 20, 2008 4:06 PM<br>
<b>To:</b> FDO Internals Mail List<br>
<b>Subject:</b> RE: [fdo-internals] RFC 26 - New Extended Select
commandandScrollable Reader - for review<o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'>I was thinking
something that limited the total records that were returned; everything outside
of the limit window (start record, num rows) would not be accessible via the
api at all. Additional results would require a second select. This
might be a better fit for the standard select than the scrollable reader?<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'>To clarify, in SQL I
would do something like this for the first page of results:<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'>SELECT id, name<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'>FROM tablename<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'>LIMIT 0,20<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'>And this for the second
page:<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'>SELECT id, name<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'>FROM tablename<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'>LIMIT 20,20<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'>Etc, etc,<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'>Because HTTP is
stateless, there is no reason to make rows outside of the selected set
available, unless there is some kind of feature cache at the FDO level that
would make subsequent selects more efficient.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'>Jason<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'><o:p> </o:p></span></p>
<div>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>
<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
fdo-internals-bounces@lists.osgeo.org
[mailto:fdo-internals-bounces@lists.osgeo.org] <b>On Behalf Of </b>Orest
Halustchak<br>
<b>Sent:</b> Monday, October 20, 2008 12:49<br>
<b>To:</b> FDO Internals Mail List<br>
<b>Subject:</b> RE: [fdo-internals] RFC 26 - New Extended Select
commandandScrollable Reader - for review<o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><span lang=EN-CA><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>Hi Jason,<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>So, this limit would be
something that would return an end of fetch after reading ‘limit’
number of records? But, then you can reset it I guess when you want to get the
next page (maybe just by calling ReadAtIndex() again). An issue with the
scrollable reader is that you can read forwards or backwards, and jump to a new
record index at any time. So, I think adding a limit would complicate this
mechanism – knowing when to reset it or what it means after jumping to a
new record.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>Thanks,<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>Orest.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<div>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>
<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
fdo-internals-bounces@lists.osgeo.org
[mailto:fdo-internals-bounces@lists.osgeo.org] <b>On Behalf Of </b>Jason Birch<br>
<b>Sent:</b> Monday, October 20, 2008 3:03 PM<br>
<b>To:</b> FDO Internals Mail List<br>
<b>Subject:</b> RE: [fdo-internals] RFC 26 - New Extended Select command
andScrollable Reader - for review<o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'>I don’t have
any direct experience with this because MapGuide doesn’t currently
doesn’t allow access to these commands. I certainly see value in
making these part of the common feature set though. Maybe I’ll
eventually be able to do sorting on SDF results via MapGuide </span><span
lang=EN-CA style='font-family:Wingdings;color:#1F497D'>J</span><span
lang=EN-CA style='color:#1F497D'><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'>One thing that
occurred to me when reading this RFC was that I’d like to see a mechanism
to “page” through results; similar to the LIMIT clause in
MySQL. When displaying result sets in a web environment, you often want
to give the user a small set of the data, and then page through the results N
records at a time. I can currently brute-force this, but it would be more
efficient to handle this on the FDO side, especially for providers where the
underlying storage format has optimized methods of dealing with it. The
current enhancements would make this more efficient to brute-force, but I wonder
if adding parameters to the initial selection (start record, number of results)
would make this even more efficient.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'>Jason<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-CA style='color:#1F497D'><o:p> </o:p></span></p>
<div>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>
<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
fdo-internals-bounces@lists.osgeo.org
[mailto:fdo-internals-bounces@lists.osgeo.org] <b>On Behalf Of </b>Orest
Halustchak<br>
<b>Sent:</b> Monday, October 20, 2008 11:24<br>
<b>To:</b> FDO Internals Mail List<br>
<b>Subject:</b> RE: [fdo-internals] RFC 26 - New Extended Select command
andScrollable Reader - for review<o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><span lang=EN-CA><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>Hi,<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>I wonder if anyone has any
comments on this. If nobody has any objections to it, I’d like to bring
it to a vote soon.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>Thanks,<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>Orest.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<div>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>
<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
fdo-internals-bounces@lists.osgeo.org
[mailto:fdo-internals-bounces@lists.osgeo.org] <b>On Behalf Of </b>Orest
Halustchak<br>
<b>Sent:</b> Friday, October 17, 2008 12:37 PM<br>
<b>To:</b> FDO Internals Mail List<br>
<b>Subject:</b> [fdo-internals] RFC 26 - New Extended Select command and
Scrollable Reader - for review<o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Hi,<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>I’d like to bring your attention to RFC 26 ( <a
href="http://trac.osgeo.org/fdo/wiki/FDORfc26">http://trac.osgeo.org/fdo/wiki/FDORfc26</a>
) which proposes to add a new Extended Select command with uses a Scrollable
feature reader. Basically, this takes what currently are custom commands in the
SDF, SHP, and recently SQLite providers and makes them generic FDO commands.
This will remove special case handling for applications that currently use
these and open the door for generic use by any application.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Please review and provide your feedback.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Thanks,<o:p></o:p></p>
<p class=MsoNormal>Orest.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
</div>
</body>
</html>