Opened 11 years ago

Last modified 9 years ago

#2799 reopened enhancement

WFS: support paging

Reported by: bartvde Owned by: assefa
Priority: normal Milestone: 6.0 release
Component: WFS Server Version: svn-trunk (development)
Severity: normal Keywords: wfs paging
Cc: tomkralidis, sdlime

Description

I was wondering lately how difficult it would be to have Mapserver do paging for WFS requests using a vendor-specific parameter e.g. startposition next to maxfeatures (like the OGC catalog interface). I often limit my requests for OpenLayers? to 100 featurses, but every user asks how do I get the next 100 records .... and now I have to disappoint them.

Tom wrote: @bart: the next WFS revision (1.2, or 2.0, I can't remember offhand), which will be a joint OGC/ISO IS, will support paging of results.

For now, I agree that a vendor specific parameter would be the way to go in MapServer...filing a ticket is welcome!

Attachments (2)

bug2799.zip (2.8 KB) - added by assefa 10 years ago.
possible patch for wfs paging
bug_2799.zip (3.3 KB) - added by assefa 10 years ago.
patch using startindex parameter on a layer

Download all attachments as: .zip

Change History (33)

comment:1 Changed 11 years ago by tomkralidis

Cc: tomkralidis added
Version: unspecifiedsvn-trunk (development)

comment:2 Changed 11 years ago by dmorissette

Tom, could you please summarize how that paging mechanism works in WFS 1.2 so that the vendor-specific params can be based on the same thing?

comment:3 Changed 11 years ago by bartvde

Hi Daniel, there is a new parameter called startIndex, see:

https://www.seegrid.csiro.au/subversion/xmml/OGC/trunk/wfs/2.0.0/wfs.xsd

So the combination of startIndex and maxFeatures should do the paging.

comment:4 Changed 10 years ago by assefa

Milestone: 6.0 release
Owner: changed from mapserverbugs to assefa

Changed 10 years ago by assefa

Attachment: bug2799.zip added

possible patch for wfs paging

comment:5 Changed 10 years ago by assefa

Keywords: wfs paging added

The proposed patch uses a startindex parameter with a combination of maxfeatures to do the paging. Some initial notes on this:

  • paging applies to the total number of elements across all layers (same logic is used now for maxfeatures)
  • startindex starts at 0

comment:6 Changed 10 years ago by assefa

http://www.pvretano.com/schemas/wfs/2.0.0/ seems to be more recent

maxfeatures seems to be replaced by count.

comment:8 Changed 10 years ago by assefa

committed in r9590. msautotest r9592

comment:9 Changed 10 years ago by bartvde

This does not seem to be working for Oracle, the whole table is retrieved:

[Fri Dec 11 09:01:14 2009] [error] [client 145.50.90.204] msOracleSpatialLayerWhichShapes. Using this Sql to retrieve the data: SELECT OBJECTID, OBJECTID, VOOR, LETTER, CYFER, KALK, ACHTER, SCHOP, HEL, GWT, CODE, OMSCHR, EERSTE_BOD, EERSTE_GWT, KLEUR_BOD, KLEUR_GWT, AREA, PERIMETER, null, SHAPE FROM BODEM.BODEMKAART50 WHERE SDO_FILTER( SHAPE, MDSYS.SDO_GEOMETRY(2003, :srid, NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),:ordinates ),'querytype=window') = 'TRUE'
[Fri Dec 11 09:01:14 2009] [error] [client 145.50.90.204] msOracleSpatialLayerWhichShapes. Bind values: srid:-1   minx:10050.000000   miny:299950.000000  maxx:280050.000000   maxy:619650.000000

on a request like:

http://145.50.148.45:8081/cgi-bin/r9599/mapserv-core?map=/data/OGC_UMN_services/bodemkaart_assefa.map&service=WFS&request=GetFeature&typename=AAA35&maxfeatures=5&version=1.1.0&startindex=10

Assefa, do we not need to implement something like (section Pagination with ROWNUM):

http://www.oracle.com/technology/oramag/oracle/06-sep/o56asktom.html

comment:10 Changed 10 years ago by assefa

Cc: sdlime added

I reviewed this bug to be able to take advantage of DB level pagination when it is available.

some notes: The concept of maxfetures and startindex are passed for the entire wfs request (not per layer). It makes it a bit complicated when we do a query on more that one layer and mix in layers that support pagination and those that do not. Here is what I am proposing for now:

  • add a startindex element to the layer object (same concept that the already exiting maxfeatutes). If it is set and > 0, layers that can do pagination will use it (at least Oracle and Postgis).
  • from the wfs perspective
  • add the ability to verify if a layer supports or not pagination natively
  • if the wfs request contains only one layer and the layer supports pagination, set the startindex and let the layer use it.
  • if the wfs request contains more than one layer, let the layers select all features and do the pagination inside msGMLWriteWFSQuery

Is this an acceptable approach?

I will attach the current patch that I have that does what is specified above and uses the pagination for the Oracle driver. Note that the startindex for the first element is 1 in this patch which makes more sense from the user point of view.

Changed 10 years ago by assefa

Attachment: bug_2799.zip added

patch using startindex parameter on a layer

comment:11 Changed 10 years ago by bartvde

Hi Assefa, I think this approach makes sense in general. One question, would it be possible if all layers in the request support pagination, to use pagination as well on the database level?

comment:12 Changed 10 years ago by assefa

I think it would have make sense if the maxfeatures/count and startindex were per layer. But from what I can see in the specs (http://www.pvretano.com/schemas/wfs/2.0.0/, I am not sure if this is the latest but seems recent), the startindex/count parameters seems to be defined as positive numbers and not as a list (BTW: I saw your post on wms-dev asking this question) <xsd:attribute name="startIndex" type="xsd:nonNegativeInteger" default="0"> <xsd:attribute name="count" type="xsd:nonNegativeInteger">

comment:13 Changed 10 years ago by bartvde

Okay, wfs-dev confirms those params are not on a per layer basis. So this basically means we need to know the count as well or not Assefa to do proper paging for multiple layers?

comment:14 Changed 10 years ago by assefa

You can get the total count of the wfs request (for all layers queried) by using the resulttype parameter. That would allow to do a proper paging. It might be a waste of time in some cases to do a full query to get the count and then do a paging but that is what the spec provides.

comment:15 Changed 10 years ago by bartvde

Yeah but ideally it should be done using a count(*) query on the database, instead of a full database query :-) but that's out of scope. I'll need to open up a new ticket for that.

comment:16 Changed 10 years ago by assefa

committed changes in r9668

comment:17 Changed 9 years ago by bartvde

Resolution: fixed
Status: newclosed

Works fine now Assefa, thanks. I've opened up ticket:3264 for future reference for doing more DB friendly WFS hit counts.

comment:18 Changed 9 years ago by bartvde

Resolution: fixed
Status: closedreopened

Hmm, not sure if this works okay Assefa. I am using maxFeatures=10 and no startIndex, I am getting back only 9 features where I expect 10. There are hundreds in my result set, so this is not what I would expect.

comment:19 Changed 9 years ago by assefa

Is there any maxfeatures setting directly in the layer definition on the map?

Is it oracle? If that is the case, can you check what is the sql statements in the log file.

BTW if you change the maxFeatures=5 do you get 5 features?

comment:20 Changed 9 years ago by bartvde

Resolution: fixed
Status: reopenedclosed

My bad, there we only 9 apparantly, since with 5 I get 5 :-)

comment:21 Changed 9 years ago by bartvde

Resolution: fixed
Status: closedreopened

Something is still wrong.

My first request is for resultType hits:

<wfs:GetFeature xmlns:wfs="http://www.opengis.net/wfs" service="WFS" version="1.1.0" resultType="hits" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><wfs:Query typeName="feature:AAA35" srsName="EPSG:28992" xmlns:feature="http://mapserver.gis.umn.edu/mapserver"><ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"><ogc:BBOX><ogc:PropertyName>geometry</ogc:PropertyName><gml:Envelope xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:28992"><gml:lowerCorner>124222.609041 479955.38295137</gml:lowerCorner><gml:upperCorner>132851.41190592 483688.11435559</gml:upperCorner></gml:Envelope></ogc:BBOX></ogc:Filter></wfs:Query></wfs:GetFeature>

Mapserver's response: 48 hits:

<?xml version='1.0' encoding="ISO-8859-1" ?>
<wfs:FeatureCollection
   xmlns:rws="http://mapserver.gis.umn.edu/mapserver"
   xmlns:gml="http://www.opengis.net/gml"
   xmlns:wfs="http://www.opengis.net/wfs"
   xmlns:ogc="http://www.opengis.net/ogc"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://mapserver.gis.umn.edu/mapserver http://test.intranet.rijkswaterstaat.nl/services/geoservices/bodemkaart_assefa?SERVICE=WFS&amp;VERSION=1.1.0&amp;REQUEST=DescribeFeatureType&amp;TYPENAME=feature:AAA35&amp;OUTPUTFORMAT=text/xml; subtype=gml/3.1.1  http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" numberOfFeatures="48">
</wfs:FeatureCollection>

Then the actual query only returns 4 instead of 5. Request:

<wfs:GetFeature xmlns:wfs="http://www.opengis.net/wfs" service="WFS" version="1.1.0" maxFeatures="5" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><wfs:Query typeName="feature:AAA35" srsName="EPSG:28992" xmlns:feature="http://mapserver.gis.umn.edu/mapserver"><wfs:PropertyName>OBJECTID</wfs:PropertyName><wfs:PropertyName>VOOR</wfs:PropertyName><wfs:PropertyName>LETTER</wfs:PropertyName><wfs:PropertyName>CYFER</wfs:PropertyName><wfs:PropertyName>KALK</wfs:PropertyName><wfs:PropertyName>ACHTER</wfs:PropertyName><wfs:PropertyName>SCHOP</wfs:PropertyName><wfs:PropertyName>HEL</wfs:PropertyName><wfs:PropertyName>GWT</wfs:PropertyName><wfs:PropertyName>CODE</wfs:PropertyName><wfs:PropertyName>OMSCHR</wfs:PropertyName><wfs:PropertyName>EERSTE_BOD</wfs:PropertyName><wfs:PropertyName>EERSTE_GWT</wfs:PropertyName><wfs:PropertyName>KLEUR_BOD</wfs:PropertyName><wfs:PropertyName>KLEUR_GWT</wfs:PropertyName><wfs:PropertyName>AREA</wfs:PropertyName><wfs:PropertyName>PERIMETER</wfs:PropertyName><ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"><ogc:BBOX><ogc:PropertyName>geometry</ogc:PropertyName><gml:Envelope xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:28992"><gml:lowerCorner>124222.609041 479955.38295137</gml:lowerCorner><gml:upperCorner>132851.41190592 483688.11435559</gml:upperCorner></gml:Envelope></ogc:BBOX></ogc:Filter></wfs:Query></wfs:GetFeature>

Response:

<?xml version='1.0' encoding="ISO-8859-1" ?>
<wfs:FeatureCollection
   xmlns:rws="http://mapserver.gis.umn.edu/mapserver"
   xmlns:gml="http://www.opengis.net/gml"
   xmlns:wfs="http://www.opengis.net/wfs"
   xmlns:ogc="http://www.opengis.net/ogc"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://mapserver.gis.umn.edu/mapserver http://test.intranet.rijkswaterstaat.nl/services/geoservices/bodemkaart_assefa?SERVICE=WFS&amp;VERSION=1.1.0&amp;REQUEST=DescribeFeatureType&amp;TYPENAME=feature:AAA35&amp;OUTPUTFORMAT=text/xml; subtype=gml/3.1.1  http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" numberOfFeatures="4">
      <gml:boundedBy>
      	<gml:Envelope srsName="EPSG:28992">
      		<gml:lowerCorner>129767.000119 478213.000214</gml:lowerCorner>
      		<gml:upperCorner>134158.000187 483243.999770</gml:upperCorner>
      	</gml:Envelope>
      </gml:boundedBy>
    <gml:featureMember>
      <rws:AAA35 gml:id="AAA35.28894">
        <rws:OBJECTID>28894</rws:OBJECTID>
..

comment:22 Changed 9 years ago by bartvde

Assefa, what is the expected behaviour on SDE layers? I thought it would fall back to Mapserver's "internal" paging instead of the database-supported paging? I am getting back empty responses.

Request:

<wfs:GetFeature xmlns:wfs="http://www.opengis.net/wfs" service="WFS" version="1.1.0" startIndex="5" maxFeatures="5" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><wfs:Query typeName="feature:AAA64" srsName="EPSG:28992" xmlns:feature="http://mapserver.gis.umn.edu/mapserver"><ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"><ogc:BBOX><ogc:PropertyName>geometry</ogc:PropertyName><gml:Envelope xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:28992"><gml:lowerCorner>-277826.73267327 295000</gml:lowerCorner><gml:upperCorner>564326.73267327 625000</gml:upperCorner></gml:Envelope></ogc:BBOX></ogc:Filter></wfs:Query></wfs:GetFeature>

Response:

<?xml version='1.0' encoding="ISO-8859-1" ?>
<wfs:FeatureCollection
   xmlns:rws="http://mapserver.gis.umn.edu/mapserver"
   xmlns:gml="http://www.opengis.net/gml"
   xmlns:wfs="http://www.opengis.net/wfs"
   xmlns:ogc="http://www.opengis.net/ogc"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://mapserver.gis.umn.edu/mapserver http://145.50.148.45:8081/cgi-bin/trunk/mapserv-core?map=/data/OGC_UMN_services/bodemkaart_assefa.map&amp;SERVICE=WFS&amp;VERSION=1.1.0&amp;REQUEST=DescribeFeatureType&amp;TYPENAME=feature:AAA64&amp;OUTPUTFORMAT=text/xml; subtype=gml/3.1.1  http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" numberOfFeatures="5">
   <gml:boundedBy>
      <gml:null>missing</gml:null>
   </gml:boundedBy>
</wfs:FeatureCollection>

comment:23 Changed 9 years ago by assefa

checking to see if I can reproduce... yes SDE should fallback to MapServer pagination.

comment:24 Changed 9 years ago by assefa

committed fix in r9767. This should fix the 2nd issue reported where startindex = maxfeatures

comment:25 Changed 9 years ago by assefa

Bart,

Can you confirm that (for the first issue), if you remove the maxFeatures=5, you receive the full 48 elements. And also that changing the maxFeatures to another number such as 10, you also get a problem.

I was not able until now to reproduce this case locally.

comment:26 Changed 9 years ago by bartvde

If I remove maxFeatures I get the full 48 features. maxFeatures 10 gives me back 9. I'll see if I can come up with a reproducable testcase for you.

comment:27 Changed 9 years ago by bartvde

This is the debug output, maybe it will help identifying the issue:

[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].176022
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerOpen called with: SHAPE FROM BODEM.BODEMKAART50 USING UNIQUE OBJECTID (Layer pointer 0x846a5f0)
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].352615
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerOpen. Shared connection not available. Creating one.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].353443
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msConnPoolRegister(AAA35,RWS_LEZEN/RWS_LEZEN@geodatabase.ad.rws.nl:1521/PGPR.rws.nl,0x85ae250)
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].383368
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerFreeItemInfo was called.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].384346
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerGetItems was called.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].390349
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerInitItemInfo was called.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].393075
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerOpen called with: SHAPE FROM BODEM.BODEMKAART50 USING UNIQUE OBJECTID (Layer pointer 0x846a5f0)
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].393914
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerFreeItemInfo was called.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].394568
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerGetItems was called.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].398711
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerInitItemInfo was called.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].399442
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerFreeItemInfo was called.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].400291
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerClose was called. Layer: 0x846a5f0, Layer name: AAA35. Layer connection: RWS_LEZEN/RWS_LEZEN@geodatabase.ad.rws.nl:1521/PGPR.rws.nl
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].401923
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerClose. Cleaning layerinfo handlers.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].403089
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerClose. Release the Oracle Pool.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].403774
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msConnPoolRelease(AAA35,RWS_LEZEN/RWS_LEZEN@geodatabase.ad.rws.nl:1521/PGPR.rws.nl,0x85ae250)
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].405633
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerOpen called with: SHAPE FROM BODEM.BODEMKAART50 USING UNIQUE OBJECTID (Layer pointer 0x846a5f0)
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].406485
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msConnPoolRequest(AAA35,RWS_LEZEN/RWS_LEZEN@geodatabase.ad.rws.nl:1521/PGPR.rws.nl) -> got 0x85ae250
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].422339
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerFreeItemInfo was called.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].423077
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerGetItems was called.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].428555
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerInitItemInfo was called.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].429307
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerInitItemInfo was called.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].429961
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerWhichShapes was called.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].431053
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerWhichShapes. Using this Sql to retrieve the data: SELECT rownum,OBJECTID, VOOR, LETTER, CYFER, KALK, ACHTER, SCHOP, HEL, GWT, CODE, OMSCHR, EERSTE_BOD, EERSTE_GWT, KLEUR_BOD, KLEUR_GWT, AREA, PERIMETER, SHAPE FROM BODEM.BODEMKAART50 WHERE  ROWNUM<=5  AND SDO_FILTER( SHAPE, MDSYS.SDO_GEOMETRY(2003, :srid, NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),:ordinates ),'querytype=window') = 'TRUE'
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].432506
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerWhichShapes. Bind values: srid:-1   minx:124222.609041   miny:479955.382951  maxx:132851.411906   maxy:483688.114356
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].433990
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerWhichShapes getting ordinate definition.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].443385
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerWhichShapes converting to OCIColl.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].445670
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerWhichShapes bind by name and object.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].447145
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerWhichShapes name and object now bound.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].482557
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerNextShape on layer 0x846a5f0, row_num: 0
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].486536
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerNextShape on layer 0x846a5f0, row_num: 1
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].488644
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerNextShape on layer 0x846a5f0, row_num: 2
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].489514
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerNextShape on layer 0x846a5f0, row_num: 3
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].490411
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerNextShape on layer 0x846a5f0, row_num: 4
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].491223
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerNextShape on layer 0x846a5f0, row_num: 5
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].496443
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerNextShape on layer 0x846a5f0, Fetched 0 more rows (5 total)
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].499111
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerResultGetShape was called. Using the record = 0 of 4. (shape: 1 should equal pkey: 1)
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].499939
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerResultGetShape: Fetching result from DB start: 0 end:-1 record: 0
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].505817
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerResultGetShape was called. Using the record = 2 of 4. (shape: 4 should equal pkey: 3)
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].506880
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerResultGetShape was called. Using the record = 3 of 4. (shape: 5 should equal pkey: 4)
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].507848
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerResultGetShape was called. Using the record = 4 of 4. (shape: 0 should equal pkey: 5)
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].509012
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] mapserv request processing time (msLoadMap not incl.): 0.337s
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].509849
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msFreeMap(): freeing map at 0x8459730.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].510510
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerClose was called. Layer: 0x846a5f0, Layer name: AAA35. Layer connection: RWS_LEZEN/RWS_LEZEN@geodatabase.ad.rws.nl:1521/PGPR.rws.nl
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].514406
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerClose. Cleaning layerinfo handlers.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].515640
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msOracleSpatialLayerClose. Release the Oracle Pool.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].516353
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msConnPoolRelease(AAA35,RWS_LEZEN/RWS_LEZEN@geodatabase.ad.rws.nl:1521/PGPR.rws.nl,0x85ae250)
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].518883
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] freeLayer(): freeing layer at 0x846a5f0.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].519758
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] freeLayer(): freeing layer at 0x8475428.
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] [Tue Feb  2 09:25:16 2010].520663
[Tue Feb 02 09:25:16 2010] [error] [client 145.50.148.45] msConnPoolClose(RWS_LEZEN/RWS_LEZEN@geodatabase.ad.rws.nl:1521/PGPR.rws.nl,0x85ae250)

comment:28 Changed 9 years ago by bartvde

The database query results in 5 rows:

SELECT rownum,OBJECTID, VOOR, LETTER, CYFER, KALK, ACHTER, SCHOP, HEL, GWT, CODE, OMSCHR, EERSTE_BOD, EERSTE_GWT, KLEUR_BOD, KLEUR_GWT, AREA, PERIMETER, SHAPE FROM BODEM.BODEMKAART50 WHERE  ROWNUM<=5  AND SDO_FILTER( SHAPE, MDSYS.SDO_GEOMETRY(2003, -1, NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3), MDSYS.SDO_ORDINATE_ARRAY(124222.609041, 479955.382951, 132851.411906, 483688.114356) ),'querytype=window') = 'TRUE'
 ROWNUM     OBJECTID     VOOR     LETTER     CYFER     KALK     ACHTER     SCHOP     HEL     GWT     CODE         OMSCHR     EERSTE_BOD     EERSTE_GWT     KLEUR_BOD     KLEUR_GWT     AREA      PERIMETER     SHAPE                     
 ---------  -----------  -------  ---------  --------  -------  ---------  --------  ------  ------  -----------  ---------  -------------  -------------  ------------  ------------  --------  ------------  ------------------------- 
 1          28894                 |g WA      TER                                             -       |g WATER--              |g WATER       -              2             1             392539    9080,99       oracle.sql.STRUCT@1f2f60d 
 2          28919                 Wo                                                         II      Wo-II                   Wo             II             126           21            212999,5  2945,82       oracle.sql.STRUCT@1f808e6 
 3          27989                 |c OP      HOOG                                            -       |c OPHOOG--             |c OPHOOG      -              1             1             192902,7  1868,65       oracle.sql.STRUCT@11050be 
 4          28066                 kV         r                                               II      kVr-II                  kVr            II             42            21            323632,7  3180,33       oracle.sql.STRUCT@252a17  
 5          28054                 |c OP      HOOG                                            -       |c OPHOOG--             |c OPHOOG      -              1             1             96080,5   1475,15       oracle.sql.STRUCT@1ee69d3 

 5 record(s) selected [Fetch MetaData: 31/ms] [Fetch Data: 32/ms] 

 [Executed: 2-2-10 9:32:01 CET ] [Execution: 641/ms] 

comment:29 Changed 9 years ago by tomkralidis

FYI I've updated parts of msautotest to output this per trunk in r9722.

comment:30 in reply to:  29 ; Changed 9 years ago by bartvde

Replying to tomkralidis:

FYI I've updated parts of msautotest to output this per trunk in r9722.

I guess you meant r9772

comment:31 in reply to:  30 Changed 9 years ago by tomkralidis

Replying to bartvde:

Replying to tomkralidis:

FYI I've updated parts of msautotest to output this per trunk in r9722.

I guess you meant r9772

Oops, yes. /me shakes off rust.

Note: See TracTickets for help on using tickets.