Bruce,<br><br>You can take a look at the GDAL/OGR&#39;s Oracle driver code at <a href="http://trac.osgeo.org/gdal/browser/branches/1.6/gdal/ogr/ogrsf_frmts/oci">http://trac.osgeo.org/gdal/browser/branches/1.6/gdal/ogr/ogrsf_frmts/oci</a><br>
Take a look at the implementation of the function at <a href="http://trac.osgeo.org/gdal/browser/branches/1.6/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp#L1189">http://trac.osgeo.org/gdal/browser/branches/1.6/gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp#L1189</a><br>
<br>Unless you are using a filter for that layer, it is executing another SQL command.<br><br><div class="gmail_quote">On Thu, Oct 15, 2009 at 1:12 AM, Clay, Bruce <span dir="ltr">&lt;<a href="mailto:bclay@ball.com">bclay@ball.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">












<div link="blue" vlink="blue" lang="EN-US">

<div>

<p class="MsoNormal"><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma;">Chaitany:</span></font></p>

<p class="MsoNormal"><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma;"> </span></font></p>

<p class="MsoNormal"><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma;">Thanks for your reply.</span></font></p>

<p class="MsoNormal"><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma;"> </span></font></p>

<p class="MsoNormal"><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma;">  I would expect to get one delay due to the
connection time but I did not expect one for both the GetFeatureCount and the
GetNextFeature.  Both of those calls are on the same layer variable. 
I originally had the GetFeatureCount before the ResetReading.  That gave
the same delay. As it turned out the code show below actually had 3
delays.  One for the GetNextFeature outside the loop, one for the GetFeatureCount
and another one for the first encounter of the GetNextFeature at the bottom of
the loop.  Apparently the GetFeatureCount is leaving the feature pointer
at the bottom of the loop and we have to take time to move back to the top.</span></font></p>

<p class="MsoNormal"><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma;"> </span></font></p>

<p class="MsoNormal"><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma;">I would step into the code but I can’t get Visual
Studio to dig down into gdal16.dll for some reason even though it was built as
a debug library.</span></font></p>

<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>

<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>

<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Bruce</span></font></p>

<div>

<div class="MsoNormal" style="text-align: center;" align="center"><font face="Times New Roman" size="3"><span style="font-size: 12pt;">

<hr align="center" size="2" width="100%">

</span></font></div>

<p class="MsoNormal"><b><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma; font-weight: bold;">From:</span></font></b><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma;"> Chaitanya kumar
CH [mailto:<a href="mailto:chaitanya.ch@gmail.com" target="_blank">chaitanya.ch@gmail.com</a>] <br>
<b><span style="font-weight: bold;">Sent:</span></b> Wednesday, October 14, 2009
2:34 PM<br>
<b><span style="font-weight: bold;">To:</span></b> Clay,
 Bruce<br>
<b><span style="font-weight: bold;">Cc:</span></b> <a href="mailto:gdal-dev@lists.osgeo.org" target="_blank">gdal-dev@lists.osgeo.org</a><br>
<b><span style="font-weight: bold;">Subject:</span></b> Re: [gdal-dev] double
delay getting feature count</span></font></p>

</div><div><div></div><div class="h5">

<p class="MsoNormal"><font face="Times New Roman" size="3"><span style="font-size: 12pt;"> </span></font></p>

<p class="MsoNormal" style="margin-bottom: 12pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;">Bruce,<br>
<br>
The GetFeatureCount function gets the value with an SQL query to the data
server. The bottleneck may be at the connection.</span></font></p>

<div>

<p class="MsoNormal"><font face="Times New Roman" size="3"><span style="font-size: 12pt;">On Wed, Oct 14, 2009 at 9:28 PM, Clay, Bruce
&lt;<a href="mailto:bclay@ball.com" target="_blank">bclay@ball.com</a>&gt; wrote:</span></font></p>

<div link="blue" vlink="purple">

<div>

<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">I have tried
several different arrangements trying to get the feature count from a user
selection and I am getting a delay two times for each query.</span></font></p>

<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"> </span></font></p>

<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">My current
arrangement is</span></font></p>

<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"> </span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;">OGRLayer
*queryLayer = dataSource-&gt;ExecuteSQL(fullQueryString, NULL, <font color="#a31515"><span style="color: rgb(163, 21, 21);">&quot;generic&quot;</span></font>);</span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> </span></font></p>

<p class="MsoNormal"><font color="blue" face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">if</span></font><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> (queryLayer != NULL)</span></font></p>


<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;">{</span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;">     
queryLayer-&gt;ResetReading();</span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;">     
OGRFeature *feature = queryLayer-&gt;GetNextFeature();</span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> </span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;">     
<font color="blue"><span style="color: blue;">int</span></font> numFeatures =
queryLayer-&gt;GetFeatureCount();</span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> </span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;">.
. .Display progress meter then loop reading the features from Oracle</span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> </span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> </span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> </span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> </span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;">I
have tried putting the call to GetFeatureCount first and there is no apparent
difference.</span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> </span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;">I
am reading data from an Oracle database and using GDAL version 1.6.2 on Windows
XP</span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> </span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;">The
call to ExecuteSql returns right away but the call to the first GetNextFeature
and the call to GetFeatureCount both have a long delay depending on the size of
the dataset.</span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> </span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;">I
need the feature count to use in a progress popup window to let the user know
what is happening.</span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> </span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;">Is
there a way to only pay for the query time once and still get the feature
count?</span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> </span></font></p>

<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> </span></font></p>

<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Bruce</span></font></p>

</div>

</div>

<pre><font face="Courier New" size="2"><span style="font-size: 10pt;">This message and any enclosures are intended only for the addressee.  Please  </span></font></pre><pre><font face="Courier New" size="2"><span style="font-size: 10pt;">notify the sender by email if you are not the intended recipient.  If you are  </span></font></pre>
<pre><font face="Courier New" size="2"><span style="font-size: 10pt;">not the intended recipient, you may not use, copy, disclose, or distribute this  </span></font></pre><pre><font face="Courier New" size="2"><span style="font-size: 10pt;">message or its contents or enclosures to any other person and any such actions  </span></font></pre>
<pre><font face="Courier New" size="2"><span style="font-size: 10pt;">may be unlawful.  Ball reserves the right to monitor and review all messages  </span></font></pre><pre><font face="Courier New" size="2"><span style="font-size: 10pt;">and enclosures sent to or from this email address.</span></font></pre>


<p class="MsoNormal"><font face="Times New Roman" size="3"><span style="font-size: 12pt;"><br>
_______________________________________________<br>
gdal-dev mailing list<br>
<a href="mailto:gdal-dev@lists.osgeo.org" target="_blank">gdal-dev@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/gdal-dev" target="_blank">http://lists.osgeo.org/mailman/listinfo/gdal-dev</a></span></font></p>

</div>

<p class="MsoNormal"><font face="Times New Roman" size="3"><span style="font-size: 12pt;"><br>
<br clear="all">
<br>
-- <br>
Best regards,<br>
Chaitanya kumar CH.</span></font></p>

</div></div></div>

</div><div><div></div><div class="h5">




<pre>This message and any enclosures are intended only for the addressee.  Please  
notify the sender by email if you are not the intended recipient.  If you are  
not the intended recipient, you may not use, copy, disclose, or distribute this  
message or its contents or enclosures to any other person and any such actions  
may be unlawful.  Ball reserves the right to monitor and review all messages  
and enclosures sent to or from this email address.</pre>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Best regards,<br>Chaitanya kumar CH.<br>