Opened 15 years ago
Last modified 14 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)
Change History (33)
comment:1 by , 15 years ago
Cc: | added |
---|---|
Version: | unspecified → svn-trunk (development) |
comment:2 by , 15 years ago
comment:3 by , 15 years ago
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 by , 14 years ago
Milestone: | → 6.0 release |
---|---|
Owner: | changed from | to
comment:5 by , 14 years ago
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 by , 14 years ago
http://www.pvretano.com/schemas/wfs/2.0.0/ seems to be more recent
maxfeatures seems to be replaced by count.
comment:9 by , 14 years ago
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:
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 by , 14 years ago
Cc: | 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.
comment:11 by , 14 years ago
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 by , 14 years ago
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 by , 14 years ago
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 by , 14 years ago
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 by , 14 years ago
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:17 by , 14 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Works fine now Assefa, thanks. I've opened up ticket:3264 for future reference for doing more DB friendly WFS hit counts.
comment:18 by , 14 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
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 by , 14 years ago
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 by , 14 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
My bad, there we only 9 apparantly, since with 5 I get 5 :-)
comment:21 by , 14 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
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&VERSION=1.1.0&REQUEST=DescribeFeatureType&TYPENAME=feature:AAA35&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&VERSION=1.1.0&REQUEST=DescribeFeatureType&TYPENAME=feature:AAA35&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 by , 14 years ago
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&SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&TYPENAME=feature:AAA64&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 by , 14 years ago
checking to see if I can reproduce... yes SDE should fallback to MapServer pagination.
comment:24 by , 14 years ago
committed fix in r9767. This should fix the 2nd issue reported where startindex = maxfeatures
comment:25 by , 14 years ago
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 by , 14 years ago
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 by , 14 years ago
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 by , 14 years ago
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]
follow-up: 30 comment:29 by , 14 years ago
FYI I've updated parts of msautotest to output this per trunk in r9722.
follow-up: 31 comment:30 by , 14 years ago
Replying to tomkralidis:
FYI I've updated parts of msautotest to output this per trunk in r9722.
I guess you meant r9772
comment:31 by , 14 years ago
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.
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?